diff --git a/data.txt b/data.txt
new file mode 100644
index 00000000..de83340c
--- /dev/null
+++ b/data.txt
@@ -0,0 +1 @@
+{"distance": 13878, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "\n from speedcoach2v2.15 via rowsandall.com", "heart_rate": {"max": 158, "average": 156}, "source": "rowingdata", "date_utc": "2018-06-30 05:31:01", "time_formatted": "1:21:16.7", "time": 48767, "date": "2018-06-30 07:31:01", "timezone": "Europe/Prague", "type": "water", "id": 33991243, "stroke_data": true}
\ No newline at end of file
diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py
index 41201a7e..600e70e1 100644
--- a/rowers/c2stuff.py
+++ b/rowers/c2stuff.py
@@ -3,42 +3,15 @@
# (There is still some stuff defined directly in views.py. Need to
# move that here.)
-# Python
-import oauth2 as oauth
-import cgi
-import requests
-import arrow
-import requests.auth
-import json
-import iso8601
-from django.utils import timezone
-from datetime import datetime
-from datetime import timedelta
-import time
-
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
-import dataprep
-import pytz
-from rowingdata import rowingdata
-import pandas as pd
-import numpy as np
-from rowers.models import Rower,Workout
-from rowers.models import checkworkoutuser
-import sys
-import urllib
+from rowers.imports import *
+import datetime
from requests import Request, Session
-from utils import myqueue,uniqify,isprorower, custom_exception_handler, NoTokenError
-
from rowers.types import otwtypes
-from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET
+from rowsandall_app.settings import (
+ C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET
+ )
from rowers.tasks import handle_c2_import_stroke_data
import django_rq
@@ -46,6 +19,18 @@ queue = django_rq.get_queue('default')
queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
+oauth_data = {
+ 'client_id': C2_CLIENT_ID,
+ 'client_secret': C2_CLIENT_SECRET,
+ 'redirect_uri': C2_REDIRECT_URI,
+ 'autorization_uri': "https://log.concept2.com/oauth/authorize",
+ 'content_type': 'application/x-www-form-urlencoded',
+ 'tokenname': 'c2token',
+ 'refreshtokenname': 'c2refreshtoken',
+ 'expirydatename': 'tokenexpirydate',
+ 'bearer_auth': True,
+ 'base_url': "https://log.concept2.com/oauth/access_token",
+ }
# Checks if user has Concept2 tokens, resets tokens if they are
@@ -337,9 +322,9 @@ def createc2workoutdata_as_splits(w):
split_data.append(thisrecord)
try:
- durationstr = datetime.strptime(str(w.duration),"%H:%M:%S.%f")
+ durationstr = datetime.datetime.strptime(str(w.duration),"%H:%M:%S.%f")
except ValueError:
- durationstr = datetime.strptime(str(w.duration),"%H:%M:%S")
+ durationstr = datetime.datetime.strptime(str(w.duration),"%H:%M:%S")
try:
newnotes = w.notes+'\n from '+w.workoutsource+' via rowsandall.com'
@@ -406,13 +391,18 @@ def createc2workoutdata(w):
stroke_data.append(thisrecord)
try:
- durationstr = datetime.strptime(str(w.duration),"%H:%M:%S.%f")
+ durationstr = datetime.datetime.strptime(str(w.duration),"%H:%M:%S.%f")
except ValueError:
- durationstr = datetime.strptime(str(w.duration),"%H:%M:%S")
+ durationstr = datetime.datetime.strptime(str(w.duration),"%H:%M:%S")
workouttype = w.workouttype
if workouttype in otwtypes:
workouttype = 'water'
+
+ try:
+ startdatetime = w.startdatetime.isoformat()
+ except AttributeError:
+ startdate = datetime.datetime.combine(w.date,datetime.time())
data = {
"type": workouttype,
@@ -451,6 +441,7 @@ def do_refresh_token(refreshtoken):
prepped.body+=scope
response = s.send(prepped)
+
token_json = response.json()
try:
thetoken = token_json['access_token']
@@ -488,19 +479,8 @@ def get_token(code):
prepped.body+="&scope="
prepped.body+=scope
- print prepped.body
-
response = s.send(prepped)
- with open("media/c2authorize.log","a") as f:
- try:
- f.write(reponse.status_code+"\n")
- f.write(reponse.text+"\n")
- f.write(response.json+"\n\n")
- except:
- pass
-
-
token_json = response.json()
try:
@@ -540,14 +520,14 @@ def make_authorization_url(request):
return HttpResponseRedirect(url)
# Get workout from C2 ID
-def get_c2_workout(user,c2id):
+def get_workout(user,c2id):
r = Rower.objects.get(user=user)
if (r.c2token == '') or (r.c2token is None):
s = "Token doesn't exist. Need to authorize"
- return custom_exception_handler(401,s)
+ return custom_exception_handler(401,s) ,0
elif (timezone.now()>r.tokenexpirydate):
s = "Token expired. Needs to refresh."
- return custom_exception_handler(401,s)
+ return custom_exception_handler(401,s),0
else:
# ready to fetch. Hurray
authorizationstring = str('Bearer ' + r.c2token)
@@ -557,7 +537,28 @@ def get_c2_workout(user,c2id):
url = "https://log.concept2.com/api/users/me/results/"+str(c2id)
s = requests.get(url,headers=headers)
- return s
+
+ data = s.json()['data']
+ splitdata = None
+
+ if 'workout' in data:
+ if 'splits' in data['workout']:
+ splitdata = data['workout']['splits']
+ if 'intervals' in data['workout']:
+ splitdata = data['workout']['intervals']
+
+ # Check if workout has stroke data, and get the stroke data
+
+ if data['stroke_data']:
+ res2 = get_c2_workout_strokes(user,c2id)
+ if res2.status_code == 200:
+ strokedata = pd.DataFrame.from_dict(res2.json()['data'])
+ else:
+ strokedata = pd.DataFrame()
+ else:
+ strokedata = pd.DataFrame()
+
+ return data,strokedata
# Get stroke data belonging to C2 ID
def get_c2_workout_strokes(user,c2id):
@@ -689,7 +690,8 @@ def workout_c2_upload(user,w):
w.save()
elif (response.status_code == 201 or response.status_code == 200):
try:
- s= json.loads(response.text)
+# s= json.loads(response.text)
+ s = response.json()
c2id = s['data']['id']
w.uploadedtoc2 = c2id
w.save()
@@ -699,7 +701,6 @@ def workout_c2_upload(user,w):
c2id = 0
else:
- print response.status_code
message = "Something went wrong in workout_c2_upload_view. Response code 200/201 but C2 sync failed: "+response.text
c2id = 0
@@ -713,7 +714,7 @@ def rower_c2_token_refresh(user):
access_token = res[0]
expires_in = res[1]
refresh_token = res[2]
- expirydatetime = timezone.now()+timedelta(seconds=expires_in)
+ expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=user)
r.c2token = access_token
@@ -725,3 +726,154 @@ def rower_c2_token_refresh(user):
else:
return None
+# Create workout data from Strava or Concept2
+# data and create the associated Workout object and save it
+def add_workout_from_data(user,importid,data,strokedata,
+ source='c2',splitdata=None,
+ workoutsource='concept2'):
+ try:
+ workouttype = data['type']
+ except KeyError:
+ workouttype = 'rower'
+
+ if workouttype not in [x[0] for x in Workout.workouttypes]:
+ workouttype = 'other'
+ try:
+ comments = data['comments']
+ except:
+ comments = ' '
+
+ try:
+ thetimezone = tz(data['timezone'])
+ except:
+ thetimezone = 'UTC'
+
+ r = Rower.objects.get(user=user)
+ try:
+ rowdatetime = iso8601.parse_date(data['date_utc'])
+ except KeyError:
+ rowdatetime = iso8601.parse_date(data['start_date'])
+ except ParseError:
+ rowdatetime = iso8601.parse_date(data['date'])
+
+
+ try:
+ c2intervaltype = data['workout_type']
+
+ except KeyError:
+ c2intervaltype = ''
+
+ try:
+ title = data['name']
+ except KeyError:
+ title = ""
+ try:
+ t = data['comments'].split('\n', 1)[0]
+ title += t[:20]
+ except:
+ title = 'Imported'
+
+ starttimeunix = arrow.get(rowdatetime).timestamp
+
+ res = make_cumvalues(0.1*strokedata['t'])
+ cum_time = res[0]
+ lapidx = res[1]
+
+ unixtime = cum_time+starttimeunix
+ # unixtime[0] = starttimeunix
+ seconds = 0.1*strokedata.ix[:,'t']
+
+ nr_rows = len(unixtime)
+
+ try:
+ latcoord = strokedata.ix[:,'lat']
+ loncoord = strokedata.ix[:,'lon']
+ except:
+ latcoord = np.zeros(nr_rows)
+ loncoord = np.zeros(nr_rows)
+
+
+ try:
+ strokelength = strokedata.ix[:,'strokelength']
+ except:
+ strokelength = np.zeros(nr_rows)
+
+ dist2 = 0.1*strokedata.ix[:,'d']
+
+ try:
+ spm = strokedata.ix[:,'spm']
+ except KeyError:
+ spm = 0*dist2
+
+ try:
+ hr = strokedata.ix[:,'hr']
+ except KeyError:
+ hr = 0*spm
+ pace = strokedata.ix[:,'p']/10.
+ pace = np.clip(pace,0,1e4)
+ pace = pace.replace(0,300)
+
+ velo = 500./pace
+
+ power = 2.8*velo**3
+
+ # save csv
+ # Create data frame with all necessary data to write to csv
+ df = pd.DataFrame({'TimeStamp (sec)':unixtime,
+ ' Horizontal (meters)': dist2,
+ ' Cadence (stokes/min)':spm,
+ ' HRCur (bpm)':hr,
+ ' longitude':loncoord,
+ ' latitude':latcoord,
+ ' Stroke500mPace (sec/500m)':pace,
+ ' Power (watts)':power,
+ ' DragFactor':np.zeros(nr_rows),
+ ' DriveLength (meters)':np.zeros(nr_rows),
+ ' StrokeDistance (meters)':strokelength,
+ ' DriveTime (ms)':np.zeros(nr_rows),
+ ' StrokeRecoveryTime (ms)':np.zeros(nr_rows),
+ ' AverageDriveForce (lbs)':np.zeros(nr_rows),
+ ' PeakDriveForce (lbs)':np.zeros(nr_rows),
+ ' lapIdx':lapidx,
+ ' ElapsedTime (sec)':seconds
+ })
+
+
+ df.sort_values(by='TimeStamp (sec)',ascending=True)
+
+ timestr = strftime("%Y%m%d-%H%M%S")
+
+
+ # Create CSV file name and save data to CSV file
+ csvfilename ='media/{code}_{importid}.csv'.format(
+ importid=importid,
+ code = uuid4().hex[:16]
+ )
+
+ res = df.to_csv(csvfilename+'.gz',index_label='index',
+ compression='gzip')
+
+
+ # with Concept2
+ if source=='c2':
+ try:
+ totaldist = data['distance']
+ totaltime = data['time']/10.
+ except KeyError:
+ totaldist = 0
+ totaltime = 0
+ else:
+ totaldist = 0
+ totaltime = 0
+
+ id,message = dataprep.save_workout_database(
+ csvfilename,r,
+ workouttype=workouttype,
+ title=title,notes=comments,
+ workoutsource=workoutsource,
+ dosummary=True
+ )
+
+
+
+ return id,message
diff --git a/rowers/dataprep.py b/rowers/dataprep.py
index 8e346aba..0f5e03ab 100644
--- a/rowers/dataprep.py
+++ b/rowers/dataprep.py
@@ -34,7 +34,7 @@ from rowingdata import (
MysteryParser, BoatCoachOTWParser,QuiskeParser,
painsledDesktopParser, speedcoachParser, ErgStickParser,
SpeedCoach2Parser, FITParser, fitsummarydata,
- RitmoTimeParser,
+ RitmoTimeParser,KinoMapParser,
make_cumvalues,cumcpdata,ExcelTemplate,
summarydata, get_file_type,
)
@@ -1073,6 +1073,7 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
return (w.id, message)
parsers = {
+ 'kinomap': KinoMapParser,
'xls': ExcelTemplate,
'rp': RowProParser,
'tcx':TCXParser,
@@ -1173,6 +1174,7 @@ def new_workout_from_file(r, f2,
message = None
try:
fileformat = get_file_type(f2)
+ print fileformat,'aap'
except IOError:
os.remove(f2)
message = "Rowsandall could not process this file. The extension is supported but the file seems corrupt. Contact info@rowsandall.com if you think this is incorrect."
diff --git a/rowers/imports.py b/rowers/imports.py
new file mode 100644
index 00000000..502b007b
--- /dev/null
+++ b/rowers/imports.py
@@ -0,0 +1,244 @@
+# All the functionality to connect to SportTracks
+
+# Python
+import oauth2 as oauth
+import cgi
+import pytz
+import requests
+import requests.auth
+import json
+from django.utils import timezone
+from datetime import datetime
+from datetime import timedelta
+import arrow
+import numpy as np
+from dateutil import parser
+import time
+from time import strftime
+
+import dataprep
+import math
+from math import sin,cos,atan2,sqrt
+import os,sys
+import urllib
+import iso8601
+from uuid import uuid4
+
+# Django
+from django.shortcuts import render_to_response
+from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
+from django.conf import settings
+from django.contrib.auth import authenticate, login, logout
+from django.contrib.auth.models import User
+from django.contrib.auth.decorators import login_required
+
+# Project
+# from .models import Profile
+from rowingdata import rowingdata, make_cumvalues
+import pandas as pd
+from rowers.models import Rower,Workout,checkworkoutuser
+from rowers import types
+from rowsandall_app.settings import (
+ C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
+ STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI,
+ STRAVA_CLIENT_SECRET, SPORTTRACKS_CLIENT_SECRET,
+ SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI
+ )
+
+from utils import (
+ NoTokenError, custom_exception_handler, ewmovingaverage,
+ geo_distance
+ )
+
+
+# Splits SportTracks data which is one long sequence of
+# [t,[lat,lon],t2,[lat2,lon2] ...]
+# to [t,t2,t3, ...], [[lat,long],[lat2,long2],...
+def splitstdata(lijst):
+ t = []
+ latlong = []
+ while len(lijst)>=2:
+ t.append(lijst[0])
+ latlong.append(lijst[1])
+ lijst = lijst[2:]
+
+ return [np.array(t),np.array(latlong)]
+
+def splituadata(lijst):
+ t = []
+ y = []
+ for d in lijst:
+ t.append(d[0])
+ y.append(d[1])
+
+ return np.array(t),np.array(y)
+
+def imports_open(user,oauth_data):
+ r = Rower.objects.get(user=user)
+ token = getattr(r,oauth_data['tokenname'])
+ try:
+ refreshtoken = getattr(r,oauth_data['refreshtokenname'])
+ except (AttributeError,KeyError):
+ refreshtoken = None
+
+ try:
+ tokenexpirydate = getattr(r,oauth_data['expirydatename'])
+ except (AttributeError,KeyError):
+ tokenexpirydate = None
+
+ if (token == '') or (token is None):
+ s = "Token doesn't exist. Need to authorize"
+ raise NoTokenError("User has no token")
+ else:
+ if tokenexpirydate and timezone.now()>tokenexpirydate:
+ token = imports_token_refresh(
+ user,oauth_data,
+ )
+
+ return token
+
+
+# Refresh token using refresh token
+def imports_do_refresh_token(refreshtoken,oauth_data,access_token=''):
+ client_auth = requests.auth.HTTPBasicAuth(
+ oauth_data['client_id'],
+ oauth_data['client_secret']
+ )
+
+ post_data = {"grant_type": "refresh_token",
+ "client_secret": oauth_data['client_secret'],
+ "client_id": oauth_data['client_id'],
+ "refresh_token": refreshtoken,
+ }
+ headers = {'user-agent': 'sanderroosendaal',
+ 'Accept': 'application/json',
+ 'Content-Type': oauth_data['content_type']}
+
+ if oauth_data['bearer_auth']:
+ headers['authorization'] = 'Bearer %s' % access_token
+
+ baseurl = oauth_data['base_url']
+
+ if 'json' in oauth_data['content_type']:
+ response = requests.post(baseurl,
+ data=json.dumps(post_data),
+ headers=headers)
+ else:
+ response = requests.post(baseurl,
+ data=post_data,
+ headers=headers)
+
+ token_json = response.json()
+
+ thetoken = token_json['access_token']
+ expires_in = token_json['expires_in']
+ try:
+ refresh_token = token_json['refresh_token']
+ except KeyError:
+ refresh_token = refreshtoken
+ try:
+ expires_in = int(expires_in)
+ except (TypeError,ValueError):
+ expires_in = 0
+
+
+ return [thetoken,expires_in,refresh_token]
+
+# Exchange ST access code for long-lived ST access token
+def imports_get_token(
+ code,oauth_data
+ ):
+
+ redirect_uri = oauth_data['redirect_uri']
+ client_secret = oauth_data['client_secret']
+ client_id = oauth_data['client_id']
+ base_uri = oauth_data['base_url']
+
+
+ client_auth = requests.auth.HTTPBasicAuth(
+ client_id,client_secret
+ )
+
+ post_data = {"grant_type": "authorization_code",
+ "code": code,
+ "redirect_uri": redirect_uri,
+ "client_secret": client_secret,
+ "client_id": client_id,
+ }
+
+ headers = {'Accept': 'application/json',
+ 'Api-Key': client_id,
+ 'Content-Type': 'application/json',
+ 'user-agent': 'sanderroosendaal'}
+
+
+ if 'json' in oauth_data['content_type']:
+ response = requests.post(
+ base_uri,
+ data=json.dumps(post_data),
+ headers=headers)
+ else:
+ response = requests.post(
+ base_uri,
+ data=post_data,
+ headers=headers)
+
+ if response.status_code == 200 or response.status_code == 201:
+ token_json = response.json()
+ thetoken = token_json['access_token']
+ try:
+ refresh_token = token_json['refresh_token']
+ except KeyError:
+ refresh_token = ''
+ try:
+ expires_in = token_json['expires_in']
+ except KeyError:
+ expires_in = 0
+ try:
+ expires_in = int(expires_in)
+ except (ValueError,TypeError):
+ expires_in = 0
+ else:
+ return [0,0,0]
+
+
+ return [thetoken,expires_in,refresh_token]
+
+# Make authorization URL including random string
+def imports_make_authorization_url(oauth_data):
+ # Generate a random string for the state parameter
+ # Save it for use later to prevent xsrf attacks
+
+ state = str(uuid4())
+
+ params = {"client_id": oauth_data['client_id'],
+ "response_type": "code",
+ "redirect_uri": oauth_data['redirect_uri'],
+ "scope":"write",
+ "state":state}
+
+
+ import urllib
+ url = oauth_data['authorizaton_uri']+urllib.urlencode(params)
+
+ return HttpResponseRedirect(url)
+
+# This is token refresh. Looks for tokens in our database, then refreshes
+def imports_token_refresh(user,tokenname,refreshtokenname,expirydatename):
+ r = Rower.objects.get(user=user)
+
+ refreshtoken = getattr(r,refreshtokennname)
+
+ res = imports_do_refresh_token(refreshtoken)
+ access_token = res[0]
+ expires_in = res[1]
+ refresh_token = res[2]
+ expirydatetime = timezone.now()+timedelta(seconds=expires_in)
+
+ setattr(r,tokenname,access_token)
+ setattr(r,expirydatename,expirydatetime)
+ setattr(r,refreshtokenname,refresh_token)
+
+ r.save()
+ return r.sporttrackstoken
+
diff --git a/rowers/models.py b/rowers/models.py
index efeb24b2..5519af85 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -1836,10 +1836,12 @@ class RowerExportForm(ModelForm):
'stravaexportas',
'polar_auto_import',
'c2_auto_export',
+ 'c2_auto_import',
'mapmyfitness_auto_export',
'runkeeper_auto_export',
'sporttracks_auto_export',
'strava_auto_export',
+ 'strava_auto_import',
'trainingpeaks_auto_export',
]
diff --git a/rowers/runkeeperstuff.py b/rowers/runkeeperstuff.py
index 8f8afb71..0ef8967e 100644
--- a/rowers/runkeeperstuff.py
+++ b/rowers/runkeeperstuff.py
@@ -1,34 +1,6 @@
# All the functionality needed to connect to Runkeeper
-
-# Python
-import oauth2 as oauth
-import pytz
-import cgi
-import requests
-import requests.auth
-import json
-from django.utils import timezone
-from datetime import datetime
-import numpy as np
-from dateutil import parser
-import time
-import math
-from math import sin,cos,atan2,sqrt
-import os,sys
-
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
-
-# Project
-# from .models import Profile
-from rowingdata import rowingdata
-import pandas as pd
-from rowers.models import Rower,Workout,checkworkoutuser
+from rowers.imports import *
+import re
from rowsandall_app.settings import (
C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
@@ -36,56 +8,50 @@ from rowsandall_app.settings import (
RUNKEEPER_CLIENT_ID, RUNKEEPER_CLIENT_SECRET,RUNKEEPER_REDIRECT_URI,
)
-from utils import geo_distance,ewmovingaverage,NoTokenError, custom_exception_handler
+oauth_data = {
+ 'client_id': RUNKEEPER_CLIENT_ID,
+ 'client_secret': RUNKEEPER_CLIENT_SECRET,
+ 'redirect_uri': RUNKEEPER_REDIRECT_URI,
+ 'autorization_uri': "https://www.runkeeper.com/opps/authorize",
+ 'content_type': 'application/x-www-form-urlencoded',
+ 'tokenname': 'runkeepertoken',
+ 'bearer_auth': True,
+ 'base_url': "https://runkeeper.com/apps/token",
+ }
+
+
+def splitrunkeeperlatlongdata(lijst,tname,latname,lonname):
+ t = []
+ lat = []
+ lon = []
+ for d in lijst:
+ t.append(d[tname])
+ lat.append(d[latname])
+ lon.append(d[lonname])
+
+ return [np.array(t),np.array(lat),np.array(lon)]
+
+def splitrunkeeperdata(lijst,xname,yname):
+ x = []
+ y = []
+ for d in lijst:
+ x.append(d[xname])
+ y.append(d[yname])
+
+ return [np.array(x),np.array(y)]
# Checks if user has SportTracks token, renews them if they are expired
def runkeeper_open(user):
- r = Rower.objects.get(user=user)
- if (r.runkeepertoken == '') or (r.runkeepertoken is None):
- s = "Token doesn't exist. Need to authorize"
- raise NoTokenError("User has no token")
- else:
- thetoken = r.runkeepertoken
-
- return thetoken
+ return imports_open(user,oauth_data)
# Exchange access code for long-lived access token
def get_token(code):
- client_auth = requests.auth.HTTPBasicAuth(RUNKEEPER_CLIENT_ID, RUNKEEPER_CLIENT_SECRET)
- post_data = {"grant_type": "authorization_code",
- "code": code,
- "redirect_uri": RUNKEEPER_REDIRECT_URI,
- "client_secret": RUNKEEPER_CLIENT_SECRET,
- "client_id":RUNKEEPER_CLIENT_ID,
- }
- headers = {'user-agent': 'sanderroosendaal'}
- response = requests.post("https://runkeeper.com/apps/token",
- data=post_data,
- headers=headers)
- try:
- token_json = response.json()
- thetoken = token_json['access_token']
- except KeyError:
- thetoken = 0
-
- return thetoken
+ return imports_get_token(code,oauth_data)
# Make authorization URL including random string
def make_authorization_url(request):
- # Generate a random string for the state parameter
- # Save it for use later to prevent xsrf attacks
- from uuid import uuid4
- state = str(uuid4())
-
- params = {"client_id": RUNKEEPER_CLIENT_ID,
- "response_type": "code",
- "redirect_uri": RUNKEEPER_REDIRECT_URI,
- }
- import urllib
- url = "https://www.runkeeper.com/opps/authorize" +urllib.urlencode(params)
-
- return HttpResponseRedirect(url)
+ return imports_make_authorization_url(oauth_data)
# Get list of workouts available on Runkeeper
def get_runkeeper_workout_list(user):
@@ -105,7 +71,7 @@ def get_runkeeper_workout_list(user):
return s
# Get workout summary data by Runkeeper ID
-def get_runkeeper_workout(user,runkeeperid):
+def get_workout(user,runkeeperid):
r = Rower.objects.get(user=user)
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
return custom_exception_handler(401,s)
@@ -119,7 +85,16 @@ def get_runkeeper_workout(user,runkeeperid):
url = "https://api.runkeeper.com/fitnessActivities/"+str(runkeeperid)
s = requests.get(url,headers=headers)
- return s
+ try:
+ data = s.json()
+ except ValueError:
+ data = {}
+
+ strokedata = pd.DataFrame.from_dict({
+ key: pd.Series(value) for key, value in data.items()
+ })
+
+ return data,strokedata
# Create Workout Data for upload to SportTracks
def createrunkeeperworkoutdata(w):
@@ -227,8 +202,10 @@ def createrunkeeperworkoutdata(w):
# upload
def getidfromresponse(response):
uri = response.headers["Location"]
- id = uri[len(uri)-9:]
-
+
+ tester = re.compile('^\/fitnessActivities\/(\d+)$')
+ id = int(tester.match(uri).group(1))
+
return int(id)
def geturifromid(access_token,id):
@@ -328,3 +305,183 @@ def workout_runkeeper_upload(user,w):
return message, rkid
return message,rkid
+
+# Create workout from RunKeeper Data
+def add_workout_from_data(user,importid,data,strokedata,source='runkeeper',
+ workoutsource='runkeeper'):
+ # To Do - add utcoffset to time
+ workouttype = data['type']
+ if workouttype not in [x[0] for x in Workout.workouttypes]:
+ workouttype = 'other'
+ try:
+ comments = data['notes']
+ except:
+ comments = ''
+
+ try:
+ utcoffset = tz(data['utcoffset'])
+ except:
+ utcoffset = 0
+
+ r = Rower.objects.get(user=user)
+
+ try:
+ rowdatetime = iso8601.parse_date(data['start_time'])
+ except iso8601.ParseError:
+ try:
+ rowdatetime = datetime.strptime(data['start_time'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except ValueError:
+ try:
+ rowdatetime = parser.parse(data['start_time'])
+ #rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except:
+ rowdatetime = datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ starttimeunix = arrow.get(rowdatetime).timestamp
+ #starttimeunix = mktime(rowdatetime.utctimetuple())
+ starttimeunix += utcoffset*3600
+
+
+ try:
+ title = data['name']
+ except:
+ title = "Imported data"
+
+
+
+ res = splitrunkeeperdata(data['distance'],'timestamp','distance')
+
+ distance = res[1]
+ times_distance = res[0]
+
+ try:
+ l = data['path']
+
+ res = splitrunkeeperlatlongdata(l,'timestamp','latitude','longitude')
+ times_location = res[0]
+ latcoord = res[1]
+ loncoord = res[2]
+
+ except:
+ times_location = times_distance
+ latcoord = np.zeros(len(times_distance))
+ loncoord = np.zeros(len(times_distance))
+ if workouttype in types.otwtypes:
+ workouttype = 'rower'
+
+ try:
+ res = splitrunkeeperdata(data['cadence'],'timestamp','cadence')
+ times_spm = res[0]
+ spm = res[1]
+ except KeyError:
+ times_spm = times_distance
+ spm = 0*times_distance
+
+ try:
+ res = splitrunkeeperdata(data['heart_rate'],'timestamp','heart_rate')
+ hr = res[1]
+ times_hr = res[0]
+ except KeyError:
+ times_hr = times_distance
+ hr = 0*times_distance
+
+
+ # create data series and remove duplicates
+ distseries = pd.Series(distance,index=times_distance)
+ distseries = distseries.groupby(distseries.index).first()
+ latseries = pd.Series(latcoord,index=times_location)
+ try:
+ latseries = latseries.groupby(latseries.index).first()
+ except TypeError:
+ latseries = 0.0*distseries
+
+ lonseries = pd.Series(loncoord,index=times_location)
+ try:
+ lonseries = lonseries.groupby(lonseries.index).first()
+ except TypeError:
+ lonseries = 0.0*distseries
+
+ spmseries = pd.Series(spm,index=times_spm)
+ spmseries = spmseries.groupby(spmseries.index).first()
+ hrseries = pd.Series(hr,index=times_hr)
+ try:
+ hrseries = hrseries.groupby(hrseries.index).first()
+ except TypeError:
+ hrseries = 0*distseries
+
+
+ # Create dicts and big dataframe
+ d = {
+ ' Horizontal (meters)': distseries,
+ ' latitude': latseries,
+ ' longitude': lonseries,
+ ' Cadence (stokes/min)': spmseries,
+ ' HRCur (bpm)' : hrseries,
+ }
+
+
+
+ df = pd.DataFrame(d)
+
+ df = df.groupby(level=0).last()
+
+ cum_time = df.index.values
+ df[' ElapsedTime (sec)'] = cum_time
+
+ velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
+
+ df[' Power (watts)'] = 0.0*velo
+
+ nr_rows = len(velo.values)
+
+ df[' DriveLength (meters)'] = np.zeros(nr_rows)
+ df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
+ df[' DriveTime (ms)'] = np.zeros(nr_rows)
+ df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
+ df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' lapIdx'] = np.zeros(nr_rows)
+
+
+
+ unixtime = cum_time+starttimeunix
+ try:
+ unixtime[0] = starttimeunix
+ except IndexError:
+ return (0,'No data to import')
+
+ df['TimeStamp (sec)'] = unixtime
+
+
+ dt = np.diff(cum_time).mean()
+ wsize = round(5./dt)
+
+ # velo2 = stravastuff.ewmovingaverage(velo,wsize)
+
+ # df[' Stroke500mPace (sec/500m)'] = 500./velo2
+
+
+ df = df.fillna(0)
+
+ df.sort_values(by='TimeStamp (sec)',ascending=True)
+
+ timestr = strftime("%Y%m%d-%H%M%S")
+
+# csvfilename ='media/Import_'+str(importid)+'.csv'
+ csvfilename ='media/{code}_{importid}.csv'.format(
+ importid=importid,
+ code = uuid4().hex[:16]
+ )
+
+ res = df.to_csv(csvfilename+'.gz',index_label='index',
+ compression='gzip')
+
+ id,message = dataprep.save_workout_database(csvfilename,r,
+ workouttype=workouttype,
+ workoutsource='runkeeper',
+ title=title,
+ notes=comments)
+
+ return (id,message)
+
diff --git a/rowers/sporttracksstuff.py b/rowers/sporttracksstuff.py
index 8190cbdb..16751f82 100644
--- a/rowers/sporttracksstuff.py
+++ b/rowers/sporttracksstuff.py
@@ -1,144 +1,42 @@
# All the functionality to connect to SportTracks
-# Python
-import oauth2 as oauth
-import cgi
-import requests
-import requests.auth
-import json
-from django.utils import timezone
-from datetime import datetime
-import numpy as np
-from dateutil import parser
-import time
-import math
-from math import sin,cos,atan2,sqrt
-
-import urllib
-import c2stuff
-import pytz
-
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
-
-# Project
-# from .models import Profile
-from rowingdata import rowingdata
-import pandas as pd
-from rowers.models import Rower,Workout,checkworkoutuser
-
-from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET, STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET, SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI
-
-from utils import NoTokenError, custom_exception_handler
+from rowers.imports import *
+import re
+from rowsandall_app.settings import (
+ C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
+ STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
+ SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI
+ )
+oauth_data = {
+ 'client_id': SPORTTRACKS_CLIENT_ID,
+ 'client_secret': SPORTTRACKS_CLIENT_SECRET,
+ 'redirect_uri': SPORTTRACKS_REDIRECT_URI,
+ 'autorization_uri': "https://api.sporttracks.mobi/oauth2/authorize",
+ 'content_type': 'application/json',
+ 'tokenname': 'sporttrackstoken',
+ 'refreshtokenname': 'sporttracksrefreshtoken',
+ 'expirydatename': 'sporttrackstokenexpirydate',
+ 'bearer_auth': False,
+ 'base_url': "https://api.sporttracks.mobi/oauth2/token",
+ }
# Checks if user has SportTracks token, renews them if they are expired
def sporttracks_open(user):
- r = Rower.objects.get(user=user)
- if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
- s = "Token doesn't exist. Need to authorize"
- raise NoTokenError("User has no token")
- else:
- if (timezone.now()>r.sporttrackstokenexpirydate):
- thetoken = rower_sporttracks_token_refresh(user)
- else:
- thetoken = r.sporttrackstoken
-
- return thetoken
+ return imports_open(user, oauth_data)
# Refresh ST token using refresh token
def do_refresh_token(refreshtoken):
- client_auth = requests.auth.HTTPBasicAuth(SPORTTRACKS_CLIENT_ID, SPORTTRACKS_CLIENT_SECRET)
- post_data = {"grant_type": "refresh_token",
- "client_secret": SPORTTRACKS_CLIENT_SECRET,
- "client_id":SPORTTRACKS_CLIENT_ID,
- "refresh_token": refreshtoken,
- }
- headers = {'user-agent': 'sanderroosendaal',
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'}
-
- url = "https://api.sporttracks.mobi/oauth2/token"
-
- response = requests.post(url,
- data=json.dumps(post_data),
- headers=headers)
-
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- try:
- refresh_token = token_json['refresh_token']
- except KeyError:
- refresh_token = refreshtoken
- try:
- expires_in = int(expires_in)
- except (TypeError,ValueError):
- expires_in = 0
-
-
- return [thetoken,expires_in,refresh_token]
+ return imports_do_refresh_token(refreshtoken, oauth_data)
# Exchange ST access code for long-lived ST access token
def get_token(code):
- client_auth = requests.auth.HTTPBasicAuth(SPORTTRACKS_CLIENT_ID, SPORTTRACKS_CLIENT_SECRET)
- post_data = {"grant_type": "authorization_code",
- "code": code,
- "redirect_uri": SPORTTRACKS_REDIRECT_URI,
- "client_secret": SPORTTRACKS_CLIENT_SECRET,
- "client_id":SPORTTRACKS_CLIENT_ID,
- }
- headers = {'Accept': 'application/json',
- 'Content-Type': 'application/json'}
-
- url = "https://api.sporttracks.mobi/oauth2/token"
-
-
- response = requests.post(url,
- data=json.dumps(post_data),
- headers=headers)
- if response.status_code == 200 or response.status_code == 201:
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- try:
- refresh_token = token_json['refresh_token']
- except KeyError:
- refresh_token = refreshtoken
- try:
- expires_in = int(expires_in)
- except (ValueError,TypeError):
- expires_in = 0
- else:
- return [0,0,0]
-
-
- return [thetoken,expires_in,refresh_token]
+ return imports_get_token(code,oauth_data)
# Make authorization URL including random string
def make_authorization_url(request):
- # Generate a random string for the state parameter
- # Save it for use later to prevent xsrf attacks
- from uuid import uuid4
- state = str(uuid4())
-
- params = {"client_id": SPORTTRACKS_CLIENT_ID,
- "response_type": "code",
- "redirect_uri": SPORTTRACKS_REDIRECT_URI,
- "scope":"write",
- "state":state}
-
-
- import urllib
- url = "https://api.sporttracks.mobi/oauth2/authorize" +urllib.urlencode(params)
-
- return HttpResponseRedirect(url)
+ return imports_make_authorization_url(oauth_data)
# This is token refresh. Looks for tokens in our database, then refreshes
def rower_sporttracks_token_refresh(user):
@@ -155,6 +53,7 @@ def rower_sporttracks_token_refresh(user):
r.sporttracksrefreshtoken = refresh_token
r.save()
+
return r.sporttrackstoken
# Get list of workouts available on SportTracks
@@ -178,7 +77,7 @@ def get_sporttracks_workout_list(user):
return s
# Get workout summary data by SportTracks ID
-def get_sporttracks_workout(user,sporttracksid):
+def get_workout(user,sporttracksid):
r = Rower.objects.get(user=user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
return custom_exception_handler(401,s)
@@ -195,7 +94,13 @@ def get_sporttracks_workout(user,sporttracksid):
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities/"+str(sporttracksid)
s = requests.get(url,headers=headers)
- return s
+ data = s.json()
+
+ strokedata = pd.DataFrame.from_dict({
+ key: pd.Series(value) for key, value in data.items()
+ })
+
+ return data,strokedata
# Create Workout Data for upload to SportTracks
def createsporttracksworkoutdata(w):
@@ -223,9 +128,9 @@ def createsporttracksworkoutdata(w):
d[0] = d[1]
t = t.astype(int)
d = d.astype(int)
- spm = row.df[' Cadence (stokes/min)'].astype(int)
+ spm = row.df[' Cadence (stokes/min)'].astype(int).values
spm[0] = spm[1]
- hr = row.df[' HRCur (bpm)'].astype(int)
+ hr = row.df[' HRCur (bpm)'].astype(int).values
haslatlon=1
@@ -240,7 +145,7 @@ def createsporttracksworkoutdata(w):
haspower = 1
try:
- power = row.df[' Power (watts)'].values
+ power = row.df[' Power (watts)'].astype(int).values
except KeyError:
haspower = 0
@@ -311,9 +216,12 @@ def createsporttracksworkoutdata(w):
# Obtain SportTracks Workout ID from the response returned on successful
# upload
def getidfromresponse(response):
- t = json.loads(response.text)
+ t = response.json()
uri = t['uris'][0]
- id = uri[len(uri)-13:len(uri)-5]
+ regex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivity/(\d+)$'
+ m = re.compile(regex).match(uri).group(1)
+
+ id = int(m)
return int(id)
@@ -324,7 +232,8 @@ def workout_sporttracks_upload(user,w):
# ready to upload. Hurray
r = w.user
- thetoken = sporttracks_open(user)
+ res = sporttracks_open(user)
+ thetoken = res[0]
if (checkworkoutuser(user,w)):
data = createsporttracksworkoutdata(w)
@@ -332,7 +241,7 @@ def workout_sporttracks_upload(user,w):
message = "Data error"
stid = 0
return message,stid
-
+
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
@@ -349,7 +258,7 @@ def workout_sporttracks_upload(user,w):
w.save()
return message, stid
elif (response.status_code == 201 or response.status_code==200):
- s= json.loads(response.text)
+ s= response.json()
stid = getidfromresponse(response)
w.uploadedtosporttracks = stid
w.save()
@@ -366,3 +275,176 @@ def workout_sporttracks_upload(user,w):
return message,stid
return message,stid
+
+# Create workout from SportTracks Data, which are slightly different
+# than Strava or Concept2 data
+def add_workout_from_data(user,importid,data,strokedata,source='sporttracks',
+ workoutsource='sporttracks'):
+ try:
+ workouttype = data['type']
+ except KeyError:
+ workouttype = 'other'
+
+ if workouttype not in [x[0] for x in Workout.workouttypes]:
+ workouttype = 'other'
+ try:
+ comments = data['comments']
+ except:
+ comments = ''
+
+
+ r = Rower.objects.get(user=user)
+ try:
+ rowdatetime = iso8601.parse_date(data['start_time'])
+ except iso8601.ParseError:
+ try:
+ rowdatetime = datetime.datetime.strptime(data['start_time'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except:
+ try:
+ rowdatetime = dateutil.parser.parse(data['start_time'])
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except:
+ rowdatetime = datetime.datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ starttimeunix = arrow.get(rowdatetime).timestamp
+
+ try:
+ title = data['name']
+ except:
+ title = "Imported data"
+
+ try:
+ res = splitstdata(data['distance'])
+ distance = res[1]
+ times_distance = res[0]
+ except KeyError:
+ try:
+ res = splitstdata(data['heartrate'])
+ times_distance = res[0]
+ distance = 0*times_distance
+ except KeyError:
+ return (0,"No distance or heart rate data in the workout")
+
+
+ try:
+ l = data['location']
+
+ res = splitstdata(l)
+ times_location = res[0]
+ latlong = res[1]
+ latcoord = []
+ loncoord = []
+
+ for coord in latlong:
+ lat = coord[0]
+ lon = coord[1]
+ latcoord.append(lat)
+ loncoord.append(lon)
+ except:
+ times_location = times_distance
+ latcoord = np.zeros(len(times_distance))
+ loncoord = np.zeros(len(times_distance))
+ if workouttype in types.otwtypes:
+ workouttype = 'rower'
+
+ try:
+ res = splitstdata(data['cadence'])
+ times_spm = res[0]
+ spm = res[1]
+ except KeyError:
+ times_spm = times_distance
+ spm = 0*times_distance
+
+ try:
+ res = splitstdata(data['heartrate'])
+ hr = res[1]
+ times_hr = res[0]
+ except KeyError:
+ times_hr = times_distance
+ hr = 0*times_distance
+
+
+ # create data series and remove duplicates
+ distseries = pd.Series(distance,index=times_distance)
+ distseries = distseries.groupby(distseries.index).first()
+ latseries = pd.Series(latcoord,index=times_location)
+ latseries = latseries.groupby(latseries.index).first()
+ lonseries = pd.Series(loncoord,index=times_location)
+ lonseries = lonseries.groupby(lonseries.index).first()
+ spmseries = pd.Series(spm,index=times_spm)
+ spmseries = spmseries.groupby(spmseries.index).first()
+ hrseries = pd.Series(hr,index=times_hr)
+ hrseries = hrseries.groupby(hrseries.index).first()
+
+
+ # Create dicts and big dataframe
+ d = {
+ ' Horizontal (meters)': distseries,
+ ' latitude': latseries,
+ ' longitude': lonseries,
+ ' Cadence (stokes/min)': spmseries,
+ ' HRCur (bpm)' : hrseries,
+ }
+
+
+
+ df = pd.DataFrame(d)
+
+ df = df.groupby(level=0).last()
+
+ cum_time = df.index.values
+ df[' ElapsedTime (sec)'] = cum_time
+
+ velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
+
+ df[' Power (watts)'] = 0.0*velo
+
+ nr_rows = len(velo.values)
+
+ df[' DriveLength (meters)'] = np.zeros(nr_rows)
+ df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
+ df[' DriveTime (ms)'] = np.zeros(nr_rows)
+ df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
+ df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' lapIdx'] = np.zeros(nr_rows)
+
+
+
+ unixtime = cum_time+starttimeunix
+ unixtime[0] = starttimeunix
+
+ df['TimeStamp (sec)'] = unixtime
+
+
+ dt = np.diff(cum_time).mean()
+ wsize = round(5./dt)
+
+ velo2 = ewmovingaverage(velo,wsize)
+
+ df[' Stroke500mPace (sec/500m)'] = 500./velo2
+
+
+ df = df.fillna(0)
+
+ df.sort_values(by='TimeStamp (sec)',ascending=True)
+
+ timestr = strftime("%Y%m%d-%H%M%S")
+
+# csvfilename ='media/Import_'+str(importid)+'.csv'
+ csvfilename ='media/{code}_{importid}.csv'.format(
+ importid=importid,
+ code = uuid4().hex[:16]
+ )
+
+ res = df.to_csv(csvfilename+'.gz',index_label='index',
+ compression='gzip')
+
+ id,message = dataprep.save_workout_database(csvfilename,r,
+ workouttype=workouttype,
+ title=title,
+ notes=comments,
+ workoutsource='sporttracks')
+
+ return (id,message)
diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py
index 36ed8486..347fabe1 100644
--- a/rowers/stravastuff.py
+++ b/rowers/stravastuff.py
@@ -1,33 +1,7 @@
# All the functionality needed to connect to Strava
-
-# Python
-import oauth2 as oauth
-import cgi
-import requests
-import requests.auth
-import json
-import yaml
-from django.utils import timezone
-from datetime import datetime
-import numpy as np
-from dateutil import parser
-import time
-import math
-from math import sin,cos,atan2,sqrt
-import os,sys
-import gzip
from scipy import optimize
from scipy.signal import savgol_filter
-from pytz import timezone as tz,utc
-
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
from django_mailbox.models import Message,Mailbox,MessageAttachment
@@ -36,76 +10,49 @@ queue = django_rq.get_queue('default')
queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
-
-# Project
-# from .models import Profile
-from rowingdata import rowingdata
-import pandas as pd
-from rowers.models import Rower,Workout
-from rowers.models import checkworkoutuser
-import dataprep
from dataprep import columndict
-from utils import uniqify,isprorower,myqueue,NoTokenError, custom_exception_handler
-from uuid import uuid4
+
import stravalib
from stravalib.exc import ActivityUploadFailed,TimeoutExceeded
-import iso8601
+
from iso8601 import ParseError
-import pytz
-import arrow
-from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET, STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET
+from rowsandall_app.settings import (
+ C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
+ STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET
+ )
try:
from json.decoder import JSONDecodeError
except ImportError:
JSONDecodeError = ValueError
+from rowers.imports import *
-from utils import geo_distance,ewmovingaverage
-
-
+oauth_data = {
+ 'client_id': STRAVA_CLIENT_ID,
+ 'client_secret': STRAVA_CLIENT_SECRET,
+ 'redirect_uri': STRAVA_REDIRECT_URI,
+ 'autorization_uri': "https://www.strava.com/oauth/authorize",
+ 'content_type': 'application/json',
+ 'tokenname': 'stravatoken',
+ 'refreshtokenname': '',
+ 'expirydatename': '',
+ 'bearer_auth': True,
+ 'base_url': "https://www.strava.com/oauth/token",
+ }
# Exchange access code for long-lived access token
def get_token(code):
- client_auth = requests.auth.HTTPBasicAuth(STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET)
- post_data = {"grant_type": "authorization_code",
- "code": code,
- "redirect_uri": STRAVA_REDIRECT_URI,
- "client_secret": STRAVA_CLIENT_SECRET,
- "client_id":STRAVA_CLIENT_ID,
- }
- headers = {'user-agent': 'sanderroosendaal'}
- response = requests.post("https://www.strava.com/oauth/token",
- data=post_data,
- headers=headers)
- try:
- token_json = response.json()
- thetoken = token_json['access_token']
- except (KeyError,JSONDecodeError):
- thetoken = 0
-
- return [thetoken]
+ return imports_get_token(code, oauth_data)
# Make authorization URL including random string
def make_authorization_url(request):
- # Generate a random string for the state parameter
- # Save it for use later to prevent xsrf attacks
-
- state = str(uuid4())
-
- params = {"client_id": STRAVA_CLIENT_ID,
- "response_type": "code",
- "redirect_uri": STRAVA_REDIRECT_URI,
- "scope":"write"}
- import urllib
- url = "https://www.strava.com/oauth/authorize" +urllib.urlencode(params)
-
- return HttpResponseRedirect(url)
+ return imports_make_authorization_url(oauth_data)
# Get list of workouts available on Strava
def get_strava_workout_list(user,limit_n=0):
@@ -242,10 +189,12 @@ def create_async_workout(alldata,user,stravaid,debug=False):
return 1
-from utils import get_strava_stream
+from utils import get_strava_stream
+
+
# Get a Strava workout summary data and stroke data by ID
-def get_strava_workout(user,stravaid):
+def get_workout(user,stravaid):
r = Rower.objects.get(user=user)
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
@@ -272,12 +221,15 @@ def get_strava_workout(user,stravaid):
distancejson = get_strava_stream(r,'distance',stravaid)
latlongjson = get_strava_stream(r,'latlng',stravaid)
+
+
try:
t = np.array(timejson.json()[0]['data'])
nr_rows = len(t)
d = np.array(distancejson.json()[1]['data'])
if nr_rows == 0:
return (0,"Error: Time data had zero length")
+
except IndexError:
d = 0*t
# return (0,"Error: No Distance information in the Strava data")
@@ -324,6 +276,7 @@ def get_strava_workout(user,stravaid):
strokelength = velo*60./(spm)
strokelength[np.isinf(strokelength)] = 0.0
+
pace = 500./(1.0*velo2)
pace[np.isinf(pace)] = 0.0
@@ -337,10 +290,11 @@ def get_strava_workout(user,stravaid):
'strokelength':strokelength,
})
+
# startdatetime = datetime.datetime.strptime(startdatetime,"%Y-%m-%d-%H:%M:%S")
return [workoutsummary,df]
-
+
# Generate Workout data for Strava (a TCX file)
def createstravaworkoutdata(w,dozip=True):
filename = w.csvfilename
@@ -421,6 +375,144 @@ def handle_stravaexport(f2,workoutname,stravatoken,description='',
return (res.id,message)
+# Create workout data from Strava or Concept2
+# data and create the associated Workout object and save it
+def add_workout_from_data(user,importid,data,strokedata,
+ source='strava',splitdata=None,
+ workoutsource='strava'):
+ try:
+ workouttype = data['type']
+ except KeyError:
+ workouttype = 'rower'
+
+ if workouttype not in [x[0] for x in Workout.workouttypes]:
+ workouttype = 'other'
+ try:
+ comments = data['comments']
+ except:
+ comments = ' '
+
+ try:
+ thetimezone = tz(data['timezone'])
+ except:
+ thetimezone = 'UTC'
+
+ r = Rower.objects.get(user=user)
+ try:
+ rowdatetime = iso8601.parse_date(data['date_utc'])
+ except KeyError:
+ rowdatetime = iso8601.parse_date(data['start_date'])
+ except ParseError:
+ rowdatetime = iso8601.parse_date(data['date'])
+
+
+ try:
+ intervaltype = data['workout_type']
+
+ except KeyError:
+ intervaltype = ''
+
+ try:
+ title = data['name']
+ except KeyError:
+ title = ""
+ try:
+ t = data['comments'].split('\n', 1)[0]
+ title += t[:20]
+ except:
+ title = 'Imported'
+
+ starttimeunix = arrow.get(rowdatetime).timestamp
+
+ res = make_cumvalues(0.1*strokedata['t'])
+ cum_time = res[0]
+ lapidx = res[1]
+
+ unixtime = cum_time+starttimeunix
+ seconds = 0.1*strokedata.ix[:,'t']
+
+ nr_rows = len(unixtime)
+
+ try:
+ latcoord = strokedata.ix[:,'lat']
+ loncoord = strokedata.ix[:,'lon']
+ except:
+ latcoord = np.zeros(nr_rows)
+ loncoord = np.zeros(nr_rows)
+
+
+ try:
+ strokelength = strokedata.ix[:,'strokelength']
+ except:
+ strokelength = np.zeros(nr_rows)
+
+ dist2 = 0.1*strokedata.ix[:,'d']
+
+ try:
+ spm = strokedata.ix[:,'spm']
+ except KeyError:
+ spm = 0*dist2
+
+ try:
+ hr = strokedata.ix[:,'hr']
+ except KeyError:
+ hr = 0*spm
+ pace = strokedata.ix[:,'p']/10.
+ pace = np.clip(pace,0,1e4)
+ pace = pace.replace(0,300)
+
+ velo = 500./pace
+
+ power = 2.8*velo**3
+
+ # save csv
+ # Create data frame with all necessary data to write to csv
+ df = pd.DataFrame({'TimeStamp (sec)':unixtime,
+ ' Horizontal (meters)': dist2,
+ ' Cadence (stokes/min)':spm,
+ ' HRCur (bpm)':hr,
+ ' longitude':loncoord,
+ ' latitude':latcoord,
+ ' Stroke500mPace (sec/500m)':pace,
+ ' Power (watts)':power,
+ ' DragFactor':np.zeros(nr_rows),
+ ' DriveLength (meters)':np.zeros(nr_rows),
+ ' StrokeDistance (meters)':strokelength,
+ ' DriveTime (ms)':np.zeros(nr_rows),
+ ' StrokeRecoveryTime (ms)':np.zeros(nr_rows),
+ ' AverageDriveForce (lbs)':np.zeros(nr_rows),
+ ' PeakDriveForce (lbs)':np.zeros(nr_rows),
+ ' lapIdx':lapidx,
+ ' ElapsedTime (sec)':seconds
+ })
+
+
+ df.sort_values(by='TimeStamp (sec)',ascending=True)
+
+
+ timestr = strftime("%Y%m%d-%H%M%S")
+
+
+ # Create CSV file name and save data to CSV file
+ csvfilename ='media/{code}_{importid}.csv'.format(
+ importid=importid,
+ code = uuid4().hex[:16]
+ )
+
+ res = df.to_csv(csvfilename+'.gz',index_label='index',
+ compression='gzip')
+
+
+ id,message = dataprep.save_workout_database(
+ csvfilename,r,
+ workouttype=workouttype,
+ title=title,notes=comments,
+ workoutsource=workoutsource,
+ dosummary=True
+ )
+
+
+ return id,message
def workout_strava_upload(user,w):
message = "Uploading to Strava"
@@ -436,9 +528,10 @@ def workout_strava_upload(user,w):
tcxfile,tcxmesg = createstravaworkoutdata(w)
if tcxfile:
with open(tcxfile,'rb') as f:
- res,mes = handle_stravaexport(f,w.name,
- r.stravatoken,
- description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com')
+ res,mes = handle_stravaexport(
+ f,w.name,
+ r.stravatoken,
+ description=w.notes+'\n from '+w.workoutsource+' via rowsandall.com')
if res==0:
message = mes
w.uploadedtostrava = -1
diff --git a/rowers/templates/export.html b/rowers/templates/export.html
index b01ee514..086e56e4 100644
--- a/rowers/templates/export.html
+++ b/rowers/templates/export.html
@@ -111,7 +111,7 @@
{% endif %}
{% else %}
{% endif %}
diff --git a/rowers/testdata/c2jsonstrokedata.txt b/rowers/testdata/c2jsonstrokedata.txt
new file mode 100644
index 00000000..aaef347d
--- /dev/null
+++ b/rowers/testdata/c2jsonstrokedata.txt
@@ -0,0 +1 @@
+{"data": [{"hr": 110, "p": 3600, "spm": 53, "d": 6, "t": 12}, {"hr": 111, "p": 3600, "spm": 53, "d": 6, "t": 12}, {"hr": 111, "p": 3600, "spm": 64, "d": 6, "t": 22}, {"hr": 110, "p": 3600, "spm": 16, "d": 14, "t": 55}, {"hr": 110, "p": 3600, "spm": 16, "d": 14, "t": 82}, {"hr": 107, "p": 3600, "spm": 12, "d": 22, "t": 109}, {"hr": 107, "p": 3600, "spm": 12, "d": 22, "t": 133}, {"hr": 108, "p": 3600, "spm": 12, "d": 32, "t": 157}, {"hr": 108, "p": 3577, "spm": 12, "d": 32, "t": 157}, {"hr": 108, "p": 3411, "spm": 12, "d": 32, "t": 157}, {"hr": 108, "p": 2649, "spm": 12, "d": 32, "t": 157}, {"hr": 108, "p": 3099, "spm": 12, "d": 32, "t": 157}, {"hr": 108, "p": 3600, "spm": 12, "d": 32, "t": 157}, {"hr": 100, "p": 3600, "spm": 44, "d": 115, "t": 292}, {"hr": 99, "p": 3600, "spm": 27, "d": 129, "t": 305}, {"hr": 97, "p": 3600, "spm": 34, "d": 161, "t": 330}, {"hr": 96, "p": 3600, "spm": 25, "d": 177, "t": 344}, {"hr": 96, "p": 3494, "spm": 43, "d": 196, "t": 357}, {"hr": 98, "p": 2927, "spm": 26, "d": 235, "t": 377}, {"hr": 102, "p": 2718, "spm": 27, "d": 380, "t": 455}, {"hr": 102, "p": 2753, "spm": 9, "d": 398, "t": 472}, {"hr": 102, "p": 2864, "spm": 61, "d": 406, "t": 477}, {"hr": 101, "p": 2780, "spm": 15, "d": 484, "t": 515}, {"hr": 101, "p": 2365, "spm": 16, "d": 583, "t": 554}, {"hr": 103, "p": 1965, "spm": 16, "d": 681, "t": 592}, {"hr": 104, "p": 1771, "spm": 18, "d": 777, "t": 624}, {"hr": 106, "p": 1712, "spm": 16, "d": 885, "t": 660}, {"hr": 107, "p": 1675, "spm": 19, "d": 980, "t": 692}, {"hr": 107, "p": 1640, "spm": 19, "d": 1072, "t": 722}, {"hr": 109, "p": 1605, "spm": 18, "d": 1173, "t": 755}, {"hr": 112, "p": 1564, "spm": 19, "d": 1277, "t": 787}, {"hr": 115, "p": 1550, "spm": 18, "d": 1380, "t": 819}, {"hr": 117, "p": 1576, "spm": 18, "d": 1487, "t": 852}, {"hr": 118, "p": 1616, "spm": 17, "d": 1590, "t": 889}, {"hr": 120, "p": 1644, "spm": 18, "d": 1692, "t": 922}, {"hr": 124, "p": 1645, "spm": 18, "d": 1785, "t": 952}, {"hr": 126, "p": 1576, "spm": 18, "d": 1887, "t": 985}, {"hr": 125, "p": 1745, "spm": 18, "d": 1994, "t": 1020}, {"hr": 125, "p": 1904, "spm": 17, "d": 2087, "t": 1052}, {"hr": 125, "p": 1946, "spm": 17, "d": 2087, "t": 1070}, {"hr": 125, "p": 2170, "spm": 17, "d": 2188, "t": 1089}, {"hr": 127, "p": 2202, "spm": 17, "d": 2278, "t": 1122}, {"hr": 127, "p": 2057, "spm": 17, "d": 2278, "t": 1145}, {"hr": 132, "p": 2187, "spm": 13, "d": 2396, "t": 1167}, {"hr": 135, "p": 2082, "spm": 17, "d": 2480, "t": 1202}, {"hr": 137, "p": 1829, "spm": 17, "d": 2572, "t": 1237}, {"hr": 141, "p": 2039, "spm": 18, "d": 2665, "t": 1272}, {"hr": 142, "p": 2118, "spm": 16, "d": 2757, "t": 1305}, {"hr": 142, "p": 2187, "spm": 16, "d": 2757, "t": 1327}, {"hr": 142, "p": 2189, "spm": 14, "d": 2860, "t": 1349}, {"hr": 143, "p": 2311, "spm": 17, "d": 2939, "t": 1382}, {"hr": 143, "p": 2261, "spm": 18, "d": 3015, "t": 1417}, {"hr": 143, "p": 2425, "spm": 18, "d": 3015, "t": 1435}, {"hr": 142, "p": 2367, "spm": 16, "d": 3104, "t": 1455}, {"hr": 143, "p": 2224, "spm": 17, "d": 3187, "t": 1489}, {"hr": 142, "p": 2048, "spm": 15, "d": 3283, "t": 1529}, {"hr": 142, "p": 2076, "spm": 17, "d": 3367, "t": 1562}, {"hr": 142, "p": 2092, "spm": 17, "d": 3449, "t": 1599}, {"hr": 142, "p": 2124, "spm": 17, "d": 3528, "t": 1632}, {"hr": 144, "p": 2150, "spm": 15, "d": 3618, "t": 1672}, {"hr": 147, "p": 2154, "spm": 17, "d": 3704, "t": 1709}, {"hr": 148, "p": 2138, "spm": 16, "d": 3789, "t": 1745}, {"hr": 149, "p": 2135, "spm": 17, "d": 3867, "t": 1779}, {"hr": 147, "p": 2139, "spm": 15, "d": 3959, "t": 1819}, {"hr": 146, "p": 2144, "spm": 16, "d": 4044, "t": 1855}, {"hr": 145, "p": 2085, "spm": 16, "d": 4131, "t": 1890}, {"hr": 145, "p": 2234, "spm": 16, "d": 4219, "t": 1930}, {"hr": 145, "p": 2327, "spm": 17, "d": 4300, "t": 1962}, {"hr": 145, "p": 2372, "spm": 17, "d": 4300, "t": 1982}, {"hr": 145, "p": 2318, "spm": 15, "d": 4391, "t": 2002}, {"hr": 145, "p": 2159, "spm": 18, "d": 4473, "t": 2037}, {"hr": 145, "p": 1956, "spm": 18, "d": 4556, "t": 2069}, {"hr": 144, "p": 1949, "spm": 18, "d": 4646, "t": 2102}, {"hr": 144, "p": 1886, "spm": 18, "d": 4730, "t": 2135}, {"hr": 145, "p": 1832, "spm": 18, "d": 4822, "t": 2169}, {"hr": 146, "p": 1810, "spm": 18, "d": 4912, "t": 2200}, {"hr": 147, "p": 1828, "spm": 17, "d": 5011, "t": 2237}, {"hr": 148, "p": 1875, "spm": 16, "d": 5099, "t": 2272}, {"hr": 148, "p": 1920, "spm": 17, "d": 5184, "t": 2305}, {"hr": 147, "p": 1916, "spm": 17, "d": 5273, "t": 2339}, {"hr": 147, "p": 1864, "spm": 19, "d": 5364, "t": 2370}, {"hr": 148, "p": 1808, "spm": 16, "d": 5462, "t": 2407}, {"hr": 148, "p": 1787, "spm": 18, "d": 5558, "t": 2440}, {"hr": 148, "p": 1807, "spm": 17, "d": 5653, "t": 2475}, {"hr": 149, "p": 1874, "spm": 18, "d": 5740, "t": 2507}, {"hr": 149, "p": 1960, "spm": 14, "d": 5840, "t": 2549}, {"hr": 149, "p": 2017, "spm": 18, "d": 5917, "t": 2580}, {"hr": 149, "p": 2008, "spm": 18, "d": 6004, "t": 2615}, {"hr": 149, "p": 1932, "spm": 18, "d": 6090, "t": 2647}, {"hr": 150, "p": 1833, "spm": 18, "d": 6178, "t": 2679}, {"hr": 151, "p": 1763, "spm": 19, "d": 6272, "t": 2710}, {"hr": 151, "p": 1725, "spm": 18, "d": 6365, "t": 2742}, {"hr": 152, "p": 1714, "spm": 19, "d": 6454, "t": 2772}, {"hr": 152, "p": 1733, "spm": 18, "d": 6551, "t": 2807}, {"hr": 152, "p": 1757, "spm": 18, "d": 6643, "t": 2839}, {"hr": 153, "p": 1757, "spm": 19, "d": 6737, "t": 2872}, {"hr": 153, "p": 1722, "spm": 19, "d": 6828, "t": 2902}, {"hr": 155, "p": 1667, "spm": 19, "d": 6921, "t": 2932}, {"hr": 156, "p": 1626, "spm": 19, "d": 7020, "t": 2965}, {"hr": 157, "p": 1617, "spm": 20, "d": 7111, "t": 2994}, {"hr": 158, "p": 1635, "spm": 19, "d": 7210, "t": 3027}, {"hr": 158, "p": 1657, "spm": 20, "d": 7299, "t": 3057}, {"hr": 158, "p": 1672, "spm": 19, "d": 7393, "t": 3089}, {"hr": 158, "p": 1686, "spm": 19, "d": 7483, "t": 3119}, {"hr": 158, "p": 1695, "spm": 18, "d": 7580, "t": 3152}, {"hr": 158, "p": 1700, "spm": 20, "d": 7668, "t": 3182}, {"hr": 158, "p": 1705, "spm": 19, "d": 7764, "t": 3215}, {"hr": 158, "p": 1711, "spm": 18, "d": 7858, "t": 3247}, {"hr": 158, "p": 1733, "spm": 18, "d": 7954, "t": 3280}, {"hr": 158, "p": 1775, "spm": 18, "d": 8043, "t": 3312}, {"hr": 158, "p": 1807, "spm": 18, "d": 8132, "t": 3345}, {"hr": 158, "p": 1796, "spm": 18, "d": 8229, "t": 3379}, {"hr": 158, "p": 1751, "spm": 19, "d": 8320, "t": 3409}, {"hr": 158, "p": 1703, "spm": 19, "d": 8418, "t": 3442}, {"hr": 158, "p": 1666, "spm": 19, "d": 8509, "t": 3472}, {"hr": 158, "p": 1643, "spm": 19, "d": 8600, "t": 3502}, {"hr": 158, "p": 1637, "spm": 19, "d": 8697, "t": 3534}, {"hr": 158, "p": 1631, "spm": 19, "d": 8794, "t": 3565}, {"hr": 158, "p": 1625, "spm": 20, "d": 8884, "t": 3595}, {"hr": 158, "p": 1626, "spm": 20, "d": 8976, "t": 3625}, {"hr": 158, "p": 1628, "spm": 20, "d": 9066, "t": 3655}, {"hr": 158, "p": 1636, "spm": 20, "d": 9153, "t": 3685}, {"hr": 158, "p": 1660, "spm": 19, "d": 9249, "t": 3717}, {"hr": 158, "p": 1692, "spm": 20, "d": 9336, "t": 3747}, {"hr": 158, "p": 1710, "spm": 19, "d": 9427, "t": 3779}, {"hr": 158, "p": 1711, "spm": 19, "d": 9521, "t": 3810}, {"hr": 158, "p": 1691, "spm": 19, "d": 9612, "t": 3840}, {"hr": 158, "p": 1661, "spm": 19, "d": 9702, "t": 3870}, {"hr": 158, "p": 1641, "spm": 19, "d": 9802, "t": 3902}, {"hr": 158, "p": 1638, "spm": 19, "d": 9894, "t": 3932}, {"hr": 158, "p": 1638, "spm": 19, "d": 9989, "t": 3965}, {"hr": 158, "p": 1645, "spm": 20, "d": 10080, "t": 3995}, {"hr": 158, "p": 1660, "spm": 19, "d": 10177, "t": 4027}, {"hr": 158, "p": 1669, "spm": 20, "d": 10265, "t": 4057}, {"hr": 158, "p": 1678, "spm": 20, "d": 10355, "t": 4087}, {"hr": 158, "p": 1689, "spm": 20, "d": 10443, "t": 4117}, {"hr": 158, "p": 1700, "spm": 20, "d": 10532, "t": 4147}, {"hr": 158, "p": 1720, "spm": 20, "d": 10619, "t": 4177}, {"hr": 158, "p": 1755, "spm": 19, "d": 10707, "t": 4209}, {"hr": 158, "p": 1804, "spm": 19, "d": 10792, "t": 4240}, {"hr": 158, "p": 1859, "spm": 19, "d": 10878, "t": 4272}, {"hr": 158, "p": 1891, "spm": 18, "d": 10962, "t": 4305}, {"hr": 158, "p": 1877, "spm": 19, "d": 11048, "t": 4337}, {"hr": 158, "p": 1859, "spm": 19, "d": 11135, "t": 4367}, {"hr": 158, "p": 1880, "spm": 19, "d": 11223, "t": 4399}, {"hr": 158, "p": 1983, "spm": 17, "d": 11301, "t": 4432}, {"hr": 158, "p": 2182, "spm": 18, "d": 11376, "t": 4467}, {"hr": 158, "p": 2350, "spm": 16, "d": 11447, "t": 4505}, {"hr": 158, "p": 2353, "spm": 17, "d": 11524, "t": 4540}, {"hr": 158, "p": 2252, "spm": 17, "d": 11607, "t": 4575}, {"hr": 158, "p": 2127, "spm": 18, "d": 11688, "t": 4607}, {"hr": 158, "p": 2038, "spm": 19, "d": 11768, "t": 4639}, {"hr": 158, "p": 2017, "spm": 18, "d": 11852, "t": 4672}, {"hr": 158, "p": 2038, "spm": 18, "d": 11932, "t": 4704}, {"hr": 158, "p": 2075, "spm": 17, "d": 12015, "t": 4739}, {"hr": 158, "p": 2100, "spm": 16, "d": 12095, "t": 4775}, {"hr": 158, "p": 2103, "spm": 18, "d": 12175, "t": 4807}, {"hr": 158, "p": 2092, "spm": 19, "d": 12257, "t": 4840}, {"hr": 158, "p": 2083, "spm": 17, "d": 12333, "t": 4872}, {"hr": 158, "p": 2087, "spm": 17, "d": 12419, "t": 4909}, {"hr": 158, "p": 2091, "spm": 18, "d": 12498, "t": 4942}, {"hr": 158, "p": 2061, "spm": 17, "d": 12583, "t": 4975}, {"hr": 158, "p": 2022, "spm": 17, "d": 12670, "t": 5010}, {"hr": 158, "p": 2035, "spm": 17, "d": 12757, "t": 5047}, {"hr": 158, "p": 2091, "spm": 17, "d": 12834, "t": 5079}, {"hr": 158, "p": 2116, "spm": 18, "d": 12909, "t": 5112}, {"hr": 158, "p": 2073, "spm": 17, "d": 13002, "t": 5149}, {"hr": 158, "p": 1974, "spm": 17, "d": 13091, "t": 5184}, {"hr": 158, "p": 1863, "spm": 17, "d": 13187, "t": 5217}, {"hr": 158, "p": 1805, "spm": 17, "d": 13281, "t": 5250}, {"hr": 158, "p": 1804, "spm": 16, "d": 13380, "t": 5287}, {"hr": 158, "p": 1830, "spm": 17, "d": 13472, "t": 5320}, {"hr": 158, "p": 1849, "spm": 17, "d": 13568, "t": 5357}, {"hr": 158, "p": 1835, "spm": 19, "d": 13660, "t": 5389}, {"hr": 158, "p": 1786, "spm": 18, "d": 13753, "t": 5424}, {"hr": 158, "p": 1718, "spm": 19, "d": 13844, "t": 5454}, {"hr": 158, "p": 1653, "spm": 19, "d": 13938, "t": 5484}, {"hr": 158, "p": 1606, "spm": 19, "d": 14033, "t": 5512}, {"hr": 158, "p": 1586, "spm": 20, "d": 14128, "t": 5542}, {"hr": 158, "p": 1595, "spm": 19, "d": 14226, "t": 5575}, {"hr": 158, "p": 1633, "spm": 19, "d": 14321, "t": 5605}, {"hr": 158, "p": 1693, "spm": 18, "d": 14414, "t": 5639}, {"hr": 158, "p": 1770, "spm": 19, "d": 14502, "t": 5670}, {"hr": 158, "p": 1847, "spm": 18, "d": 14585, "t": 5702}, {"hr": 158, "p": 1888, "spm": 18, "d": 14667, "t": 5735}, {"hr": 158, "p": 1887, "spm": 19, "d": 14753, "t": 5767}, {"hr": 158, "p": 1865, "spm": 19, "d": 14843, "t": 5799}, {"hr": 158, "p": 1830, "spm": 19, "d": 14929, "t": 5830}, {"hr": 158, "p": 1797, "spm": 18, "d": 15020, "t": 5862}, {"hr": 158, "p": 1771, "spm": 19, "d": 15109, "t": 5892}, {"hr": 158, "p": 1738, "spm": 20, "d": 15198, "t": 5922}, {"hr": 158, "p": 1699, "spm": 20, "d": 15287, "t": 5952}, {"hr": 158, "p": 1659, "spm": 20, "d": 15380, "t": 5982}, {"hr": 158, "p": 1618, "spm": 20, "d": 15475, "t": 6012}, {"hr": 158, "p": 1582, "spm": 20, "d": 15573, "t": 6042}, {"hr": 158, "p": 1560, "spm": 20, "d": 15669, "t": 6072}, {"hr": 158, "p": 1557, "spm": 20, "d": 15765, "t": 6102}, {"hr": 158, "p": 1566, "spm": 20, "d": 15860, "t": 6132}, {"hr": 158, "p": 1572, "spm": 20, "d": 15957, "t": 6162}, {"hr": 158, "p": 1563, "spm": 20, "d": 16054, "t": 6192}, {"hr": 158, "p": 1543, "spm": 21, "d": 16147, "t": 6220}, {"hr": 158, "p": 1516, "spm": 20, "d": 16248, "t": 6250}, {"hr": 158, "p": 1495, "spm": 20, "d": 16349, "t": 6280}, {"hr": 158, "p": 1494, "spm": 20, "d": 16445, "t": 6309}, {"hr": 158, "p": 1511, "spm": 19, "d": 16549, "t": 6340}, {"hr": 158, "p": 1532, "spm": 19, "d": 16645, "t": 6370}, {"hr": 158, "p": 1545, "spm": 20, "d": 16742, "t": 6400}, {"hr": 158, "p": 1546, "spm": 20, "d": 16845, "t": 6432}, {"hr": 158, "p": 1532, "spm": 20, "d": 16939, "t": 6460}, {"hr": 158, "p": 1517, "spm": 20, "d": 17039, "t": 6490}, {"hr": 158, "p": 1499, "spm": 20, "d": 17140, "t": 6520}, {"hr": 158, "p": 1473, "spm": 21, "d": 17236, "t": 6549}, {"hr": 158, "p": 1453, "spm": 20, "d": 17340, "t": 6579}, {"hr": 158, "p": 1448, "spm": 20, "d": 17440, "t": 6607}, {"hr": 158, "p": 1454, "spm": 20, "d": 17540, "t": 6637}, {"hr": 158, "p": 1468, "spm": 20, "d": 17641, "t": 6667}, {"hr": 158, "p": 1482, "spm": 20, "d": 17738, "t": 6695}, {"hr": 158, "p": 1483, "spm": 21, "d": 17837, "t": 6725}, {"hr": 158, "p": 1473, "spm": 21, "d": 17932, "t": 6752}, {"hr": 158, "p": 1469, "spm": 21, "d": 18028, "t": 6780}, {"hr": 158, "p": 1473, "spm": 20, "d": 18128, "t": 6810}, {"hr": 158, "p": 1482, "spm": 20, "d": 18228, "t": 6840}, {"hr": 158, "p": 1487, "spm": 20, "d": 18324, "t": 6869}, {"hr": 158, "p": 1481, "spm": 20, "d": 18427, "t": 6899}, {"hr": 158, "p": 1468, "spm": 20, "d": 18531, "t": 6929}, {"hr": 158, "p": 1454, "spm": 21, "d": 18626, "t": 6957}, {"hr": 158, "p": 1444, "spm": 20, "d": 18726, "t": 6987}, {"hr": 158, "p": 1441, "spm": 20, "d": 18831, "t": 7017}, {"hr": 158, "p": 1442, "spm": 20, "d": 18929, "t": 7045}, {"hr": 158, "p": 1459, "spm": 20, "d": 19029, "t": 7075}, {"hr": 158, "p": 1494, "spm": 21, "d": 19116, "t": 7102}, {"hr": 158, "p": 1527, "spm": 21, "d": 19206, "t": 7132}, {"hr": 158, "p": 1552, "spm": 21, "d": 19300, "t": 7162}, {"hr": 158, "p": 1571, "spm": 21, "d": 19390, "t": 7189}, {"hr": 158, "p": 1583, "spm": 20, "d": 19485, "t": 7219}, {"hr": 158, "p": 1600, "spm": 21, "d": 19574, "t": 7247}, {"hr": 158, "p": 1618, "spm": 21, "d": 19667, "t": 7277}, {"hr": 158, "p": 1610, "spm": 21, "d": 19755, "t": 7305}, {"hr": 158, "p": 1573, "spm": 21, "d": 19847, "t": 7332}, {"hr": 158, "p": 1517, "spm": 21, "d": 19941, "t": 7360}, {"hr": 158, "p": 1465, "spm": 22, "d": 20032, "t": 7387}, {"hr": 158, "p": 1434, "spm": 22, "d": 20130, "t": 7415}, {"hr": 158, "p": 1432, "spm": 22, "d": 20219, "t": 7440}, {"hr": 158, "p": 1453, "spm": 23, "d": 20307, "t": 7467}, {"hr": 158, "p": 1475, "spm": 22, "d": 20389, "t": 7492}, {"hr": 158, "p": 1485, "spm": 22, "d": 20485, "t": 7524}, {"hr": 158, "p": 1480, "spm": 21, "d": 20581, "t": 7549}, {"hr": 158, "p": 1455, "spm": 22, "d": 20672, "t": 7575}, {"hr": 158, "p": 1423, "spm": 22, "d": 20773, "t": 7602}, {"hr": 158, "p": 1399, "spm": 22, "d": 20866, "t": 7629}, {"hr": 158, "p": 1388, "spm": 22, "d": 20960, "t": 7655}, {"hr": 158, "p": 1397, "spm": 22, "d": 21051, "t": 7680}, {"hr": 158, "p": 1416, "spm": 22, "d": 21147, "t": 7709}, {"hr": 158, "p": 1430, "spm": 22, "d": 21230, "t": 7735}, {"hr": 158, "p": 1451, "spm": 22, "d": 21325, "t": 7764}, {"hr": 158, "p": 1485, "spm": 21, "d": 21416, "t": 7789}, {"hr": 158, "p": 1525, "spm": 21, "d": 21505, "t": 7817}, {"hr": 158, "p": 1568, "spm": 21, "d": 21596, "t": 7845}, {"hr": 158, "p": 1614, "spm": 22, "d": 21683, "t": 7872}, {"hr": 158, "p": 1643, "spm": 23, "d": 21762, "t": 7899}, {"hr": 158, "p": 1651, "spm": 22, "d": 21838, "t": 7925}, {"hr": 158, "p": 1643, "spm": 21, "d": 21925, "t": 7952}, {"hr": 158, "p": 1620, "spm": 22, "d": 22005, "t": 7979}, {"hr": 158, "p": 1598, "spm": 22, "d": 22091, "t": 8007}, {"hr": 158, "p": 1608, "spm": 21, "d": 22172, "t": 8035}, {"hr": 158, "p": 1638, "spm": 21, "d": 22254, "t": 8064}, {"hr": 158, "p": 1650, "spm": 21, "d": 22339, "t": 8094}, {"hr": 158, "p": 1646, "spm": 21, "d": 22426, "t": 8119}, {"hr": 158, "p": 1623, "spm": 21, "d": 22515, "t": 8147}, {"hr": 158, "p": 1582, "spm": 21, "d": 22606, "t": 8175}, {"hr": 158, "p": 1550, "spm": 21, "d": 22699, "t": 8202}, {"hr": 158, "p": 1532, "spm": 22, "d": 22790, "t": 8230}, {"hr": 158, "p": 1520, "spm": 21, "d": 22875, "t": 8257}, {"hr": 158, "p": 1528, "spm": 21, "d": 22968, "t": 8285}, {"hr": 158, "p": 1552, "spm": 21, "d": 23062, "t": 8315}, {"hr": 158, "p": 1576, "spm": 21, "d": 23144, "t": 8340}, {"hr": 158, "p": 1603, "spm": 21, "d": 23235, "t": 8370}, {"hr": 158, "p": 1628, "spm": 21, "d": 23322, "t": 8399}, {"hr": 158, "p": 1624, "spm": 21, "d": 23407, "t": 8427}, {"hr": 158, "p": 1597, "spm": 21, "d": 23490, "t": 8455}, {"hr": 158, "p": 1565, "spm": 21, "d": 23579, "t": 8484}, {"hr": 158, "p": 1546, "spm": 21, "d": 23674, "t": 8514}, {"hr": 158, "p": 1562, "spm": 21, "d": 23761, "t": 8539}, {"hr": 158, "p": 1613, "spm": 21, "d": 23848, "t": 8567}, {"hr": 158, "p": 1662, "spm": 21, "d": 23934, "t": 8595}, {"hr": 158, "p": 1671, "spm": 20, "d": 24024, "t": 8625}, {"hr": 158, "p": 1641, "spm": 20, "d": 24116, "t": 8652}, {"hr": 158, "p": 1597, "spm": 20, "d": 24213, "t": 8682}, {"hr": 158, "p": 1566, "spm": 21, "d": 24303, "t": 8710}, {"hr": 158, "p": 1556, "spm": 22, "d": 24386, "t": 8737}, {"hr": 158, "p": 1560, "spm": 23, "d": 24468, "t": 8762}, {"hr": 158, "p": 1575, "spm": 21, "d": 24556, "t": 8790}, {"hr": 158, "p": 1604, "spm": 23, "d": 24643, "t": 8819}, {"hr": 158, "p": 1639, "spm": 21, "d": 24720, "t": 8845}, {"hr": 158, "p": 1654, "spm": 22, "d": 24801, "t": 8874}, {"hr": 158, "p": 1638, "spm": 21, "d": 24890, "t": 8904}, {"hr": 158, "p": 1605, "spm": 21, "d": 24981, "t": 8929}, {"hr": 158, "p": 1575, "spm": 21, "d": 25073, "t": 8957}, {"hr": 158, "p": 1560, "spm": 21, "d": 25166, "t": 8985}, {"hr": 158, "p": 1553, "spm": 21, "d": 25264, "t": 9015}, {"hr": 158, "p": 1540, "spm": 21, "d": 25352, "t": 9040}, {"hr": 158, "p": 1526, "spm": 21, "d": 25444, "t": 9069}, {"hr": 158, "p": 1521, "spm": 21, "d": 25535, "t": 9097}, {"hr": 158, "p": 1534, "spm": 22, "d": 25626, "t": 9125}, {"hr": 158, "p": 1556, "spm": 22, "d": 25708, "t": 9150}, {"hr": 158, "p": 1570, "spm": 22, "d": 25795, "t": 9179}, {"hr": 158, "p": 1569, "spm": 22, "d": 25873, "t": 9205}, {"hr": 158, "p": 1564, "spm": 21, "d": 25960, "t": 9234}, {"hr": 158, "p": 1568, "spm": 21, "d": 26052, "t": 9264}, {"hr": 158, "p": 1593, "spm": 21, "d": 26140, "t": 9289}, {"hr": 158, "p": 1630, "spm": 21, "d": 26227, "t": 9317}, {"hr": 158, "p": 1669, "spm": 21, "d": 26309, "t": 9345}, {"hr": 158, "p": 1703, "spm": 21, "d": 26392, "t": 9372}, {"hr": 158, "p": 1730, "spm": 21, "d": 26473, "t": 9400}, {"hr": 158, "p": 1752, "spm": 20, "d": 26556, "t": 9430}, {"hr": 158, "p": 1752, "spm": 20, "d": 26644, "t": 9460}, {"hr": 158, "p": 1714, "spm": 21, "d": 26724, "t": 9489}, {"hr": 158, "p": 1661, "spm": 21, "d": 26813, "t": 9517}, {"hr": 158, "p": 1623, "spm": 21, "d": 26899, "t": 9545}, {"hr": 158, "p": 1611, "spm": 21, "d": 26984, "t": 9572}, {"hr": 158, "p": 1614, "spm": 21, "d": 27068, "t": 9600}, {"hr": 158, "p": 1623, "spm": 22, "d": 27154, "t": 9629}, {"hr": 158, "p": 1626, "spm": 20, "d": 27234, "t": 9655}, {"hr": 158, "p": 1613, "spm": 20, "d": 27325, "t": 9685}, {"hr": 158, "p": 1591, "spm": 20, "d": 27412, "t": 9715}, {"hr": 158, "p": 1572, "spm": 20, "d": 27503, "t": 9744}, {"hr": 158, "p": 1574, "spm": 20, "d": 27595, "t": 9774}, {"hr": 158, "p": 1608, "spm": 20, "d": 27681, "t": 9804}, {"hr": 158, "p": 1655, "spm": 20, "d": 27766, "t": 9834}, {"hr": 158, "p": 1703, "spm": 21, "d": 27853, "t": 9864}, {"hr": 158, "p": 1745, "spm": 21, "d": 27936, "t": 9889}, {"hr": 158, "p": 1782, "spm": 20, "d": 28019, "t": 9917}, {"hr": 158, "p": 1830, "spm": 20, "d": 28105, "t": 9947}, {"hr": 158, "p": 1859, "spm": 21, "d": 28191, "t": 9975}, {"hr": 158, "p": 1821, "spm": 21, "d": 28275, "t": 10002}, {"hr": 158, "p": 1678, "spm": 21, "d": 28364, "t": 10030}, {"hr": 158, "p": 1740, "spm": 20, "d": 28459, "t": 10060}, {"hr": 158, "p": 1893, "spm": 21, "d": 28546, "t": 10089}, {"hr": 158, "p": 2431, "spm": 21, "d": 28546, "t": 10147}, {"hr": 158, "p": 3167, "spm": 30, "d": 28740, "t": 10207}, {"hr": 158, "p": 3335, "spm": 19, "d": 28803, "t": 10240}, {"hr": 158, "p": 2583, "spm": 20, "d": 28878, "t": 10270}, {"hr": 158, "p": 2115, "spm": 20, "d": 28962, "t": 10300}, {"hr": 158, "p": 1745, "spm": 20, "d": 29045, "t": 10329}, {"hr": 158, "p": 1682, "spm": 20, "d": 29136, "t": 10359}, {"hr": 158, "p": 1693, "spm": 20, "d": 29222, "t": 10389}, {"hr": 158, "p": 1727, "spm": 20, "d": 29304, "t": 10419}, {"hr": 158, "p": 1754, "spm": 19, "d": 29393, "t": 10450}, {"hr": 158, "p": 1747, "spm": 19, "d": 29479, "t": 10480}, {"hr": 158, "p": 1723, "spm": 19, "d": 29566, "t": 10510}, {"hr": 158, "p": 1738, "spm": 20, "d": 29659, "t": 10542}, {"hr": 158, "p": 1783, "spm": 20, "d": 29734, "t": 10570}, {"hr": 158, "p": 1801, "spm": 20, "d": 29814, "t": 10600}, {"hr": 158, "p": 1789, "spm": 20, "d": 29897, "t": 10629}, {"hr": 158, "p": 1778, "spm": 20, "d": 29988, "t": 10660}, {"hr": 158, "p": 1793, "spm": 20, "d": 30063, "t": 10689}, {"hr": 158, "p": 1864, "spm": 19, "d": 30143, "t": 10720}, {"hr": 158, "p": 1966, "spm": 19, "d": 30220, "t": 10750}, {"hr": 158, "p": 2054, "spm": 20, "d": 30298, "t": 10782}, {"hr": 158, "p": 2127, "spm": 19, "d": 30368, "t": 10812}, {"hr": 158, "p": 2173, "spm": 20, "d": 30437, "t": 10842}, {"hr": 158, "p": 2148, "spm": 20, "d": 30511, "t": 10872}, {"hr": 158, "p": 2060, "spm": 20, "d": 30588, "t": 10902}, {"hr": 158, "p": 1950, "spm": 19, "d": 30668, "t": 10932}, {"hr": 158, "p": 1861, "spm": 19, "d": 30751, "t": 10964}, {"hr": 158, "p": 1833, "spm": 19, "d": 30838, "t": 10995}, {"hr": 158, "p": 1867, "spm": 20, "d": 30914, "t": 11024}, {"hr": 158, "p": 1914, "spm": 20, "d": 30989, "t": 11052}, {"hr": 158, "p": 1939, "spm": 20, "d": 31067, "t": 11082}, {"hr": 158, "p": 1933, "spm": 20, "d": 31154, "t": 11115}, {"hr": 158, "p": 1895, "spm": 20, "d": 31237, "t": 11145}, {"hr": 158, "p": 1860, "spm": 20, "d": 31318, "t": 11175}, {"hr": 158, "p": 1855, "spm": 20, "d": 31401, "t": 11205}, {"hr": 158, "p": 1851, "spm": 20, "d": 31484, "t": 11235}, {"hr": 158, "p": 1831, "spm": 20, "d": 31571, "t": 11265}, {"hr": 158, "p": 1796, "spm": 20, "d": 31652, "t": 11292}, {"hr": 158, "p": 1762, "spm": 21, "d": 31742, "t": 11322}, {"hr": 158, "p": 1728, "spm": 20, "d": 31830, "t": 11352}, {"hr": 158, "p": 1691, "spm": 20, "d": 31919, "t": 11382}, {"hr": 158, "p": 1660, "spm": 21, "d": 32008, "t": 11410}, {"hr": 158, "p": 1622, "spm": 20, "d": 32102, "t": 11440}, {"hr": 158, "p": 1582, "spm": 21, "d": 32193, "t": 11469}, {"hr": 158, "p": 1556, "spm": 20, "d": 32287, "t": 11497}, {"hr": 158, "p": 1538, "spm": 21, "d": 32384, "t": 11527}, {"hr": 158, "p": 1529, "spm": 21, "d": 32478, "t": 11555}, {"hr": 158, "p": 1535, "spm": 21, "d": 32568, "t": 11582}, {"hr": 158, "p": 1554, "spm": 20, "d": 32658, "t": 11612}, {"hr": 158, "p": 1584, "spm": 20, "d": 32751, "t": 11640}, {"hr": 158, "p": 1615, "spm": 21, "d": 32841, "t": 11670}, {"hr": 158, "p": 1638, "spm": 21, "d": 32930, "t": 11699}, {"hr": 158, "p": 1665, "spm": 20, "d": 33015, "t": 11727}, {"hr": 158, "p": 1695, "spm": 21, "d": 33099, "t": 11755}, {"hr": 158, "p": 1704, "spm": 20, "d": 33182, "t": 11785}, {"hr": 158, "p": 1690, "spm": 21, "d": 33269, "t": 11815}, {"hr": 158, "p": 1667, "spm": 21, "d": 33357, "t": 11844}, {"hr": 158, "p": 1650, "spm": 20, "d": 33443, "t": 11874}, {"hr": 158, "p": 1638, "spm": 21, "d": 33534, "t": 11904}, {"hr": 158, "p": 1624, "spm": 22, "d": 33617, "t": 11927}, {"hr": 158, "p": 1599, "spm": 22, "d": 33709, "t": 11955}, {"hr": 158, "p": 1560, "spm": 22, "d": 33793, "t": 11980}, {"hr": 158, "p": 1503, "spm": 26, "d": 33869, "t": 12004}, {"hr": 158, "p": 1443, "spm": 27, "d": 33945, "t": 12025}, {"hr": 158, "p": 1387, "spm": 28, "d": 34032, "t": 12047}, {"hr": 158, "p": 1345, "spm": 27, "d": 34115, "t": 12070}, {"hr": 158, "p": 1318, "spm": 27, "d": 34198, "t": 12090}, {"hr": 158, "p": 1307, "spm": 27, "d": 34278, "t": 12114}, {"hr": 158, "p": 1304, "spm": 27, "d": 34368, "t": 12135}, {"hr": 158, "p": 1302, "spm": 28, "d": 34451, "t": 12157}, {"hr": 158, "p": 1308, "spm": 27, "d": 34528, "t": 12177}, {"hr": 158, "p": 1312, "spm": 29, "d": 34612, "t": 12200}, {"hr": 158, "p": 1300, "spm": 29, "d": 34690, "t": 12219}, {"hr": 158, "p": 1289, "spm": 28, "d": 34770, "t": 12239}, {"hr": 158, "p": 1294, "spm": 29, "d": 34856, "t": 12264}, {"hr": 158, "p": 1310, "spm": 28, "d": 34930, "t": 12280}, {"hr": 158, "p": 1327, "spm": 28, "d": 35012, "t": 12302}, {"hr": 158, "p": 1339, "spm": 28, "d": 35082, "t": 12324}, {"hr": 158, "p": 1341, "spm": 27, "d": 35168, "t": 12345}, {"hr": 158, "p": 1330, "spm": 28, "d": 35251, "t": 12367}, {"hr": 158, "p": 1332, "spm": 29, "d": 35333, "t": 12389}, {"hr": 158, "p": 1359, "spm": 27, "d": 35408, "t": 12409}, {"hr": 158, "p": 1392, "spm": 28, "d": 35486, "t": 12430}, {"hr": 158, "p": 1416, "spm": 27, "d": 35564, "t": 12452}, {"hr": 158, "p": 1435, "spm": 27, "d": 35636, "t": 12475}, {"hr": 158, "p": 1429, "spm": 27, "d": 35718, "t": 12497}, {"hr": 158, "p": 1406, "spm": 26, "d": 35798, "t": 12519}, {"hr": 158, "p": 1384, "spm": 27, "d": 35879, "t": 12540}, {"hr": 158, "p": 1371, "spm": 27, "d": 35957, "t": 12564}, {"hr": 158, "p": 1367, "spm": 27, "d": 36045, "t": 12587}, {"hr": 158, "p": 1370, "spm": 27, "d": 36126, "t": 12609}, {"hr": 158, "p": 1367, "spm": 26, "d": 36207, "t": 12630}, {"hr": 158, "p": 1351, "spm": 28, "d": 36284, "t": 12654}, {"hr": 158, "p": 1335, "spm": 27, "d": 36364, "t": 12672}, {"hr": 158, "p": 1325, "spm": 28, "d": 36445, "t": 12695}, {"hr": 158, "p": 1326, "spm": 27, "d": 36527, "t": 12717}, {"hr": 158, "p": 1323, "spm": 28, "d": 36610, "t": 12739}, {"hr": 158, "p": 1311, "spm": 28, "d": 36688, "t": 12759}, {"hr": 158, "p": 1291, "spm": 28, "d": 36773, "t": 12782}, {"hr": 158, "p": 1274, "spm": 28, "d": 36851, "t": 12804}, {"hr": 158, "p": 1266, "spm": 28, "d": 36936, "t": 12822}, {"hr": 158, "p": 1260, "spm": 29, "d": 37019, "t": 12845}, {"hr": 158, "p": 1259, "spm": 28, "d": 37091, "t": 12865}, {"hr": 158, "p": 1273, "spm": 28, "d": 37184, "t": 12887}, {"hr": 158, "p": 1285, "spm": 29, "d": 37260, "t": 12907}, {"hr": 158, "p": 1297, "spm": 28, "d": 37343, "t": 12929}, {"hr": 158, "p": 1312, "spm": 27, "d": 37421, "t": 12949}, {"hr": 158, "p": 1311, "spm": 27, "d": 37506, "t": 12972}, {"hr": 158, "p": 1299, "spm": 28, "d": 37591, "t": 12992}, {"hr": 158, "p": 1299, "spm": 27, "d": 37669, "t": 13015}, {"hr": 158, "p": 1308, "spm": 27, "d": 37757, "t": 13037}, {"hr": 158, "p": 1319, "spm": 28, "d": 37841, "t": 13060}, {"hr": 158, "p": 1325, "spm": 27, "d": 37924, "t": 13080}, {"hr": 158, "p": 1321, "spm": 28, "d": 37999, "t": 13104}, {"hr": 158, "p": 1304, "spm": 28, "d": 38084, "t": 13122}, {"hr": 158, "p": 1286, "spm": 28, "d": 38162, "t": 13144}, {"hr": 158, "p": 1282, "spm": 28, "d": 38242, "t": 13165}, {"hr": 158, "p": 1284, "spm": 28, "d": 38331, "t": 13187}, {"hr": 158, "p": 1283, "spm": 29, "d": 38410, "t": 13207}, {"hr": 158, "p": 1289, "spm": 28, "d": 38488, "t": 13227}, {"hr": 158, "p": 1300, "spm": 29, "d": 38570, "t": 13250}, {"hr": 158, "p": 1300, "spm": 28, "d": 38648, "t": 13269}, {"hr": 158, "p": 1292, "spm": 28, "d": 38734, "t": 13292}, {"hr": 158, "p": 1280, "spm": 28, "d": 38812, "t": 13314}, {"hr": 158, "p": 1270, "spm": 28, "d": 38899, "t": 13334}, {"hr": 158, "p": 1265, "spm": 29, "d": 38976, "t": 13352}, {"hr": 158, "p": 1269, "spm": 28, "d": 39055, "t": 13375}, {"hr": 158, "p": 1279, "spm": 28, "d": 39144, "t": 13397}, {"hr": 158, "p": 1275, "spm": 27, "d": 39225, "t": 13417}, {"hr": 158, "p": 1267, "spm": 29, "d": 39312, "t": 13440}, {"hr": 158, "p": 1275, "spm": 28, "d": 39390, "t": 13460}, {"hr": 158, "p": 1288, "spm": 29, "d": 39468, "t": 13480}, {"hr": 158, "p": 1307, "spm": 28, "d": 39550, "t": 13502}, {"hr": 158, "p": 1329, "spm": 28, "d": 39624, "t": 13524}, {"hr": 158, "p": 1334, "spm": 27, "d": 39712, "t": 13545}, {"hr": 158, "p": 1323, "spm": 28, "d": 39789, "t": 13565}, {"hr": 158, "p": 1316, "spm": 28, "d": 39873, "t": 13587}, {"hr": 158, "p": 1316, "spm": 28, "d": 39958, "t": 13610}, {"hr": 158, "p": 1311, "spm": 29, "d": 40036, "t": 13630}, {"hr": 158, "p": 1301, "spm": 28, "d": 40115, "t": 13650}, {"hr": 158, "p": 1294, "spm": 28, "d": 40200, "t": 13674}, {"hr": 158, "p": 1289, "spm": 28, "d": 40278, "t": 13692}, {"hr": 158, "p": 1284, "spm": 29, "d": 40363, "t": 13714}, {"hr": 158, "p": 1281, "spm": 28, "d": 40435, "t": 13734}, {"hr": 158, "p": 1281, "spm": 29, "d": 40524, "t": 13755}, {"hr": 158, "p": 1274, "spm": 28, "d": 40603, "t": 13775}, {"hr": 158, "p": 1270, "spm": 28, "d": 40683, "t": 13795}, {"hr": 158, "p": 1278, "spm": 29, "d": 40769, "t": 13817}, {"hr": 158, "p": 1283, "spm": 28, "d": 40845, "t": 13837}, {"hr": 158, "p": 1293, "spm": 29, "d": 40929, "t": 13860}, {"hr": 158, "p": 1317, "spm": 28, "d": 41004, "t": 13880}, {"hr": 158, "p": 1337, "spm": 28, "d": 41088, "t": 13902}, {"hr": 158, "p": 1342, "spm": 28, "d": 41161, "t": 13922}, {"hr": 158, "p": 1336, "spm": 28, "d": 41237, "t": 13944}, {"hr": 158, "p": 1331, "spm": 28, "d": 41326, "t": 13965}, {"hr": 158, "p": 1329, "spm": 28, "d": 41409, "t": 13987}, {"hr": 158, "p": 1337, "spm": 27, "d": 41482, "t": 14007}, {"hr": 158, "p": 1353, "spm": 28, "d": 41563, "t": 14030}, {"hr": 158, "p": 1366, "spm": 27, "d": 41643, "t": 14052}, {"hr": 158, "p": 1366, "spm": 28, "d": 41723, "t": 14074}, {"hr": 158, "p": 1369, "spm": 28, "d": 41790, "t": 14094}, {"hr": 158, "p": 1379, "spm": 28, "d": 41873, "t": 14115}, {"hr": 158, "p": 1384, "spm": 27, "d": 41951, "t": 14137}, {"hr": 158, "p": 1391, "spm": 28, "d": 42024, "t": 14157}, {"hr": 158, "p": 1398, "spm": 28, "d": 42101, "t": 14180}, {"hr": 158, "p": 1407, "spm": 28, "d": 42178, "t": 14202}, {"hr": 158, "p": 1421, "spm": 27, "d": 42251, "t": 14222}, {"hr": 158, "p": 1440, "spm": 28, "d": 42318, "t": 14244}, {"hr": 158, "p": 1458, "spm": 27, "d": 42398, "t": 14265}, {"hr": 158, "p": 1470, "spm": 27, "d": 42471, "t": 14287}, {"hr": 158, "p": 1466, "spm": 28, "d": 42546, "t": 14310}, {"hr": 158, "p": 1450, "spm": 27, "d": 42623, "t": 14334}, {"hr": 158, "p": 1442, "spm": 27, "d": 42702, "t": 14354}, {"hr": 158, "p": 1494, "spm": 24, "d": 42789, "t": 14380}, {"hr": 158, "p": 1658, "spm": 18, "d": 42873, "t": 14412}, {"hr": 158, "p": 1929, "spm": 18, "d": 42951, "t": 14445}, {"hr": 158, "p": 2242, "spm": 18, "d": 43013, "t": 14475}, {"hr": 158, "p": 2413, "spm": 18, "d": 43084, "t": 14510}, {"hr": 158, "p": 2362, "spm": 18, "d": 43155, "t": 14544}, {"hr": 158, "p": 2260, "spm": 18, "d": 43224, "t": 14574}, {"hr": 158, "p": 2203, "spm": 18, "d": 43303, "t": 14607}, {"hr": 158, "p": 2185, "spm": 18, "d": 43376, "t": 14640}, {"hr": 158, "p": 2181, "spm": 18, "d": 43456, "t": 14674}, {"hr": 158, "p": 2160, "spm": 18, "d": 43533, "t": 14705}, {"hr": 158, "p": 2108, "spm": 19, "d": 43610, "t": 14737}, {"hr": 158, "p": 2017, "spm": 19, "d": 43691, "t": 14770}, {"hr": 158, "p": 1920, "spm": 19, "d": 43773, "t": 14800}, {"hr": 158, "p": 1836, "spm": 19, "d": 43863, "t": 14832}, {"hr": 158, "p": 1777, "spm": 19, "d": 43948, "t": 14862}, {"hr": 158, "p": 1752, "spm": 19, "d": 44041, "t": 14894}, {"hr": 158, "p": 1756, "spm": 20, "d": 44128, "t": 14924}, {"hr": 158, "p": 1766, "spm": 19, "d": 44214, "t": 14954}, {"hr": 158, "p": 1800, "spm": 19, "d": 44305, "t": 14985}, {"hr": 158, "p": 1852, "spm": 19, "d": 44392, "t": 15017}, {"hr": 158, "p": 1891, "spm": 19, "d": 44469, "t": 15047}, {"hr": 158, "p": 1919, "spm": 19, "d": 44553, "t": 15080}, {"hr": 158, "p": 1931, "spm": 19, "d": 44634, "t": 15110}, {"hr": 158, "p": 1929, "spm": 19, "d": 44716, "t": 15144}, {"hr": 158, "p": 1907, "spm": 19, "d": 44797, "t": 15174}, {"hr": 158, "p": 1835, "spm": 19, "d": 44881, "t": 15204}, {"hr": 158, "p": 1733, "spm": 20, "d": 44973, "t": 15234}, {"hr": 158, "p": 1645, "spm": 20, "d": 45066, "t": 15264}, {"hr": 158, "p": 1585, "spm": 20, "d": 45161, "t": 15294}, {"hr": 158, "p": 1559, "spm": 20, "d": 45261, "t": 15325}, {"hr": 158, "p": 1544, "spm": 21, "d": 45351, "t": 15354}, {"hr": 158, "p": 1526, "spm": 20, "d": 45450, "t": 15384}, {"hr": 158, "p": 1518, "spm": 20, "d": 45548, "t": 15414}, {"hr": 158, "p": 1525, "spm": 21, "d": 45644, "t": 15444}, {"hr": 158, "p": 1539, "spm": 20, "d": 45740, "t": 15474}, {"hr": 158, "p": 1553, "spm": 20, "d": 45833, "t": 15500}, {"hr": 158, "p": 1556, "spm": 20, "d": 45931, "t": 15530}, {"hr": 158, "p": 1556, "spm": 20, "d": 46024, "t": 15557}, {"hr": 158, "p": 1565, "spm": 20, "d": 46123, "t": 15587}, {"hr": 158, "p": 1588, "spm": 20, "d": 46216, "t": 15617}, {"hr": 158, "p": 1612, "spm": 20, "d": 46303, "t": 15645}, {"hr": 158, "p": 1633, "spm": 20, "d": 46395, "t": 15675}, {"hr": 158, "p": 1654, "spm": 21, "d": 46488, "t": 15705}, {"hr": 158, "p": 1688, "spm": 20, "d": 46575, "t": 15735}, {"hr": 158, "p": 1753, "spm": 19, "d": 46660, "t": 15765}, {"hr": 158, "p": 1841, "spm": 19, "d": 46738, "t": 15795}, {"hr": 158, "p": 1906, "spm": 20, "d": 46818, "t": 15825}, {"hr": 158, "p": 1910, "spm": 19, "d": 46902, "t": 15857}, {"hr": 158, "p": 1850, "spm": 20, "d": 46990, "t": 15887}, {"hr": 158, "p": 1762, "spm": 20, "d": 47082, "t": 15917}, {"hr": 158, "p": 1688, "spm": 20, "d": 47175, "t": 15947}, {"hr": 158, "p": 1569, "spm": 20, "d": 47269, "t": 15977}, {"hr": 158, "p": 1653, "spm": 20, "d": 47367, "t": 16007}, {"hr": 158, "p": 1902, "spm": 20, "d": 47456, "t": 16035}, {"hr": 158, "p": 2406, "spm": 20, "d": 47456, "t": 16035}, {"hr": 158, "p": 2728, "spm": 20, "d": 47456, "t": 16035}, {"hr": 158, "p": 2913, "spm": 20, "d": 47456, "t": 16035}, {"hr": 158, "p": 2538, "spm": 20, "d": 47757, "t": 16165}, {"hr": 158, "p": 2285, "spm": 18, "d": 47829, "t": 16200}, {"hr": 158, "p": 2028, "spm": 19, "d": 47917, "t": 16232}, {"hr": 158, "p": 1859, "spm": 19, "d": 48011, "t": 16262}, {"hr": 158, "p": 1628, "spm": 21, "d": 48100, "t": 16290}, {"hr": 158, "p": 1552, "spm": 20, "d": 48197, "t": 16320}, {"hr": 158, "p": 1530, "spm": 20, "d": 48294, "t": 16350}, {"hr": 158, "p": 1515, "spm": 20, "d": 48393, "t": 16380}, {"hr": 158, "p": 1501, "spm": 20, "d": 48494, "t": 16410}, {"hr": 158, "p": 1494, "spm": 20, "d": 48594, "t": 16440}, {"hr": 158, "p": 1499, "spm": 20, "d": 48693, "t": 16470}, {"hr": 158, "p": 1515, "spm": 20, "d": 48784, "t": 16497}, {"hr": 158, "p": 1539, "spm": 20, "d": 48885, "t": 16530}, {"hr": 158, "p": 1559, "spm": 20, "d": 48975, "t": 16557}, {"hr": 158, "p": 1572, "spm": 20, "d": 49063, "t": 16587}, {"hr": 158, "p": 1581, "spm": 20, "d": 49157, "t": 16617}, {"hr": 158, "p": 1582, "spm": 20, "d": 49244, "t": 16645}, {"hr": 158, "p": 1576, "spm": 20, "d": 49339, "t": 16675}, {"hr": 158, "p": 1566, "spm": 19, "d": 49439, "t": 16707}, {"hr": 158, "p": 1554, "spm": 20, "d": 49529, "t": 16735}, {"hr": 158, "p": 1547, "spm": 20, "d": 49627, "t": 16765}, {"hr": 158, "p": 1547, "spm": 19, "d": 49731, "t": 16797}, {"hr": 158, "p": 1544, "spm": 19, "d": 49828, "t": 16827}, {"hr": 158, "p": 1547, "spm": 19, "d": 49931, "t": 16857}, {"hr": 158, "p": 1552, "spm": 19, "d": 50029, "t": 16887}, {"hr": 158, "p": 1556, "spm": 20, "d": 50124, "t": 16917}, {"hr": 158, "p": 1563, "spm": 20, "d": 50221, "t": 16947}, {"hr": 158, "p": 1577, "spm": 20, "d": 50316, "t": 16977}, {"hr": 158, "p": 1598, "spm": 20, "d": 50409, "t": 17007}, {"hr": 158, "p": 1627, "spm": 19, "d": 50499, "t": 17037}, {"hr": 158, "p": 1649, "spm": 19, "d": 50596, "t": 17070}, {"hr": 158, "p": 1655, "spm": 19, "d": 50688, "t": 17100}, {"hr": 158, "p": 1639, "spm": 19, "d": 50786, "t": 17132}, {"hr": 158, "p": 1616, "spm": 20, "d": 50883, "t": 17162}, {"hr": 158, "p": 1593, "spm": 20, "d": 50977, "t": 17192}, {"hr": 158, "p": 1575, "spm": 20, "d": 51072, "t": 17222}, {"hr": 158, "p": 1557, "spm": 20, "d": 51174, "t": 17254}, {"hr": 158, "p": 1534, "spm": 20, "d": 51276, "t": 17284}, {"hr": 158, "p": 1516, "spm": 20, "d": 51368, "t": 17312}, {"hr": 158, "p": 1508, "spm": 20, "d": 51464, "t": 17342}, {"hr": 158, "p": 1533, "spm": 20, "d": 51558, "t": 17372}, {"hr": 158, "p": 1600, "spm": 20, "d": 51652, "t": 17402}, {"hr": 158, "p": 1680, "spm": 19, "d": 51738, "t": 17434}, {"hr": 158, "p": 1728, "spm": 20, "d": 51823, "t": 17464}, {"hr": 158, "p": 1723, "spm": 20, "d": 51906, "t": 17492}, {"hr": 158, "p": 1662, "spm": 20, "d": 52011, "t": 17524}, {"hr": 158, "p": 1595, "spm": 20, "d": 52109, "t": 17554}, {"hr": 158, "p": 1553, "spm": 20, "d": 52205, "t": 17582}, {"hr": 158, "p": 1542, "spm": 19, "d": 52310, "t": 17614}, {"hr": 158, "p": 1559, "spm": 20, "d": 52408, "t": 17644}, {"hr": 158, "p": 1590, "spm": 20, "d": 52500, "t": 17674}, {"hr": 158, "p": 1622, "spm": 20, "d": 52592, "t": 17704}, {"hr": 158, "p": 1625, "spm": 21, "d": 52681, "t": 17732}, {"hr": 158, "p": 1597, "spm": 21, "d": 52770, "t": 17760}, {"hr": 158, "p": 1574, "spm": 20, "d": 52870, "t": 17790}, {"hr": 158, "p": 1572, "spm": 20, "d": 52964, "t": 17820}, {"hr": 158, "p": 1588, "spm": 20, "d": 53054, "t": 17850}, {"hr": 158, "p": 1606, "spm": 20, "d": 53145, "t": 17877}, {"hr": 158, "p": 1603, "spm": 20, "d": 53240, "t": 17907}, {"hr": 158, "p": 1592, "spm": 20, "d": 53334, "t": 17937}, {"hr": 158, "p": 1579, "spm": 20, "d": 53432, "t": 17967}, {"hr": 158, "p": 1542, "spm": 23, "d": 53510, "t": 17995}, {"hr": 158, "p": 1475, "spm": 28, "d": 53588, "t": 18014}, {"hr": 158, "p": 1377, "spm": 30, "d": 53667, "t": 18034}, {"hr": 158, "p": 1284, "spm": 32, "d": 53740, "t": 18055}, {"hr": 158, "p": 1229, "spm": 31, "d": 53821, "t": 18072}, {"hr": 158, "p": 1210, "spm": 31, "d": 53905, "t": 18092}, {"hr": 158, "p": 1217, "spm": 31, "d": 53986, "t": 18115}, {"hr": 158, "p": 1228, "spm": 30, "d": 54062, "t": 18130}, {"hr": 158, "p": 1226, "spm": 30, "d": 54146, "t": 18150}, {"hr": 158, "p": 1219, "spm": 31, "d": 54229, "t": 18170}, {"hr": 158, "p": 1202, "spm": 31, "d": 54307, "t": 18187}, {"hr": 158, "p": 1188, "spm": 32, "d": 54385, "t": 18207}, {"hr": 158, "p": 1195, "spm": 32, "d": 54467, "t": 18225}, {"hr": 158, "p": 1198, "spm": 32, "d": 54542, "t": 18244}, {"hr": 158, "p": 1198, "spm": 32, "d": 54618, "t": 18265}, {"hr": 158, "p": 1197, "spm": 32, "d": 54700, "t": 18282}, {"hr": 158, "p": 1190, "spm": 33, "d": 54776, "t": 18300}, {"hr": 158, "p": 1188, "spm": 32, "d": 54859, "t": 18320}, {"hr": 158, "p": 1189, "spm": 31, "d": 54934, "t": 18337}, {"hr": 158, "p": 1181, "spm": 32, "d": 55011, "t": 18357}, {"hr": 158, "p": 1176, "spm": 32, "d": 55096, "t": 18375}, {"hr": 158, "p": 1175, "spm": 32, "d": 55172, "t": 18394}, {"hr": 158, "p": 1180, "spm": 31, "d": 55248, "t": 18415}, {"hr": 158, "p": 1199, "spm": 31, "d": 55329, "t": 18432}, {"hr": 158, "p": 1214, "spm": 32, "d": 55410, "t": 18452}, {"hr": 158, "p": 1230, "spm": 32, "d": 55483, "t": 18470}, {"hr": 158, "p": 1247, "spm": 32, "d": 55565, "t": 18490}, {"hr": 158, "p": 1257, "spm": 31, "d": 55637, "t": 18507}, {"hr": 158, "p": 1265, "spm": 30, "d": 55716, "t": 18527}, {"hr": 158, "p": 1259, "spm": 30, "d": 55797, "t": 18547}, {"hr": 158, "p": 1245, "spm": 29, "d": 55881, "t": 18567}, {"hr": 158, "p": 1234, "spm": 31, "d": 55963, "t": 18587}, {"hr": 158, "p": 1216, "spm": 30, "d": 56046, "t": 18607}, {"hr": 158, "p": 1221, "spm": 30, "d": 56121, "t": 18627}, {"hr": 158, "p": 1252, "spm": 28, "d": 56206, "t": 18647}, {"hr": 158, "p": 1281, "spm": 29, "d": 56281, "t": 18667}, {"hr": 158, "p": 1331, "spm": 29, "d": 56362, "t": 18690}, {"hr": 158, "p": 1429, "spm": 22, "d": 56459, "t": 18720}, {"hr": 158, "p": 1579, "spm": 18, "d": 56544, "t": 18750}, {"hr": 158, "p": 1786, "spm": 19, "d": 56619, "t": 18780}, {"hr": 158, "p": 1987, "spm": 18, "d": 56700, "t": 18814}, {"hr": 158, "p": 2071, "spm": 18, "d": 56783, "t": 18847}, {"hr": 158, "p": 2047, "spm": 17, "d": 56869, "t": 18882}, {"hr": 158, "p": 2004, "spm": 18, "d": 56948, "t": 18914}, {"hr": 158, "p": 1984, "spm": 19, "d": 57031, "t": 18945}, {"hr": 158, "p": 1971, "spm": 18, "d": 57108, "t": 18977}, {"hr": 158, "p": 1932, "spm": 19, "d": 57191, "t": 19010}, {"hr": 158, "p": 1807, "spm": 18, "d": 57280, "t": 19045}, {"hr": 158, "p": 1901, "spm": 20, "d": 57364, "t": 19074}, {"hr": 158, "p": 1996, "spm": 24, "d": 57429, "t": 19095}, {"hr": 158, "p": 2318, "spm": 24, "d": 57429, "t": 19134}, {"hr": 158, "p": 2777, "spm": 8, "d": 57551, "t": 19172}, {"hr": 158, "p": 2971, "spm": 30, "d": 57584, "t": 19195}, {"hr": 158, "p": 2558, "spm": 49, "d": 57603, "t": 19202}, {"hr": 158, "p": 2612, "spm": 18, "d": 57675, "t": 19235}, {"hr": 158, "p": 2384, "spm": 18, "d": 57751, "t": 19267}, {"hr": 158, "p": 2394, "spm": 18, "d": 57751, "t": 19291}, {"hr": 158, "p": 2431, "spm": 13, "d": 57842, "t": 19315}, {"hr": 158, "p": 2325, "spm": 17, "d": 57913, "t": 19345}, {"hr": 158, "p": 2117, "spm": 18, "d": 58000, "t": 19380}, {"hr": 158, "p": 2073, "spm": 19, "d": 58081, "t": 19412}, {"hr": 158, "p": 1972, "spm": 18, "d": 58163, "t": 19444}, {"hr": 158, "p": 1918, "spm": 19, "d": 58249, "t": 19475}, {"hr": 158, "p": 1882, "spm": 19, "d": 58334, "t": 19507}, {"hr": 158, "p": 1846, "spm": 19, "d": 58421, "t": 19540}, {"hr": 158, "p": 1838, "spm": 19, "d": 58507, "t": 19572}, {"hr": 158, "p": 1897, "spm": 18, "d": 58593, "t": 19604}, {"hr": 158, "p": 2020, "spm": 18, "d": 58669, "t": 19635}, {"hr": 158, "p": 2157, "spm": 19, "d": 58737, "t": 19667}, {"hr": 158, "p": 2272, "spm": 19, "d": 58808, "t": 19697}, {"hr": 158, "p": 2309, "spm": 18, "d": 58878, "t": 19730}, {"hr": 158, "p": 2286, "spm": 18, "d": 58950, "t": 19765}, {"hr": 158, "p": 2257, "spm": 18, "d": 59023, "t": 19797}, {"hr": 158, "p": 2217, "spm": 19, "d": 59091, "t": 19827}, {"hr": 158, "p": 2209, "spm": 19, "d": 59167, "t": 19860}, {"hr": 158, "p": 2264, "spm": 18, "d": 59241, "t": 19894}, {"hr": 158, "p": 2332, "spm": 18, "d": 59308, "t": 19925}, {"hr": 158, "p": 2365, "spm": 18, "d": 59379, "t": 19960}, {"hr": 158, "p": 2331, "spm": 18, "d": 59455, "t": 19994}, {"hr": 158, "p": 2249, "spm": 18, "d": 59531, "t": 20025}, {"hr": 158, "p": 2205, "spm": 18, "d": 59606, "t": 20057}, {"hr": 158, "p": 2190, "spm": 19, "d": 59681, "t": 20090}, {"hr": 158, "p": 2145, "spm": 19, "d": 59756, "t": 20124}, {"hr": 158, "p": 2073, "spm": 18, "d": 59833, "t": 20155}, {"hr": 158, "p": 1991, "spm": 19, "d": 59916, "t": 20187}, {"hr": 158, "p": 1923, "spm": 19, "d": 59999, "t": 20217}, {"hr": 158, "p": 1897, "spm": 19, "d": 60085, "t": 20250}, {"hr": 158, "p": 1908, "spm": 19, "d": 60163, "t": 20280}, {"hr": 158, "p": 1930, "spm": 19, "d": 60245, "t": 20312}, {"hr": 158, "p": 1951, "spm": 19, "d": 60323, "t": 20342}, {"hr": 158, "p": 1930, "spm": 20, "d": 60404, "t": 20372}, {"hr": 158, "p": 1825, "spm": 22, "d": 60475, "t": 20397}, {"hr": 158, "p": 1655, "spm": 30, "d": 60542, "t": 20417}, {"hr": 158, "p": 1477, "spm": 32, "d": 60611, "t": 20435}, {"hr": 158, "p": 1340, "spm": 34, "d": 60677, "t": 20455}, {"hr": 158, "p": 1271, "spm": 32, "d": 60752, "t": 20472}, {"hr": 158, "p": 1275, "spm": 32, "d": 60828, "t": 20492}, {"hr": 158, "p": 1327, "spm": 32, "d": 60894, "t": 20510}, {"hr": 158, "p": 1376, "spm": 32, "d": 60958, "t": 20527}, {"hr": 158, "p": 1390, "spm": 31, "d": 61031, "t": 20547}, {"hr": 158, "p": 1378, "spm": 31, "d": 61105, "t": 20567}, {"hr": 158, "p": 1359, "spm": 30, "d": 61172, "t": 20585}, {"hr": 158, "p": 1369, "spm": 32, "d": 61239, "t": 20605}, {"hr": 158, "p": 1414, "spm": 32, "d": 61311, "t": 20625}, {"hr": 158, "p": 1450, "spm": 30, "d": 61372, "t": 20644}, {"hr": 158, "p": 1466, "spm": 29, "d": 61436, "t": 20665}, {"hr": 158, "p": 1468, "spm": 30, "d": 61506, "t": 20684}, {"hr": 158, "p": 1435, "spm": 29, "d": 61578, "t": 20704}, {"hr": 158, "p": 1394, "spm": 29, "d": 61645, "t": 20725}, {"hr": 158, "p": 1384, "spm": 29, "d": 61723, "t": 20744}, {"hr": 158, "p": 1314, "spm": 30, "d": 61794, "t": 20764}, {"hr": 158, "p": 1421, "spm": 30, "d": 61860, "t": 20785}, {"hr": 158, "p": 1705, "spm": 29, "d": 61936, "t": 20804}, {"hr": 158, "p": 2263, "spm": 29, "d": 61936, "t": 20804}, {"hr": 158, "p": 2626, "spm": 29, "d": 61936, "t": 20804}, {"hr": 158, "p": 2938, "spm": 29, "d": 61936, "t": 20804}, {"hr": 158, "p": 2654, "spm": 16, "d": 62197, "t": 20927}, {"hr": 158, "p": 2695, "spm": 15, "d": 62255, "t": 20965}, {"hr": 158, "p": 2798, "spm": 17, "d": 62324, "t": 21002}, {"hr": 158, "p": 2946, "spm": 17, "d": 62389, "t": 21035}, {"hr": 158, "p": 2548, "spm": 18, "d": 62459, "t": 21070}, {"hr": 158, "p": 2357, "spm": 18, "d": 62534, "t": 21102}, {"hr": 158, "p": 2204, "spm": 19, "d": 62610, "t": 21134}, {"hr": 158, "p": 2090, "spm": 19, "d": 62689, "t": 21165}, {"hr": 158, "p": 2033, "spm": 19, "d": 62765, "t": 21195}, {"hr": 158, "p": 2014, "spm": 19, "d": 62844, "t": 21225}, {"hr": 158, "p": 2014, "spm": 20, "d": 62925, "t": 21257}, {"hr": 158, "p": 2020, "spm": 19, "d": 63002, "t": 21287}, {"hr": 158, "p": 2025, "spm": 18, "d": 63082, "t": 21320}, {"hr": 158, "p": 2021, "spm": 19, "d": 63163, "t": 21355}, {"hr": 158, "p": 2013, "spm": 19, "d": 63242, "t": 21385}, {"hr": 158, "p": 2018, "spm": 19, "d": 63317, "t": 21415}, {"hr": 158, "p": 2039, "spm": 18, "d": 63394, "t": 21447}, {"hr": 158, "p": 2084, "spm": 19, "d": 63470, "t": 21477}, {"hr": 158, "p": 2112, "spm": 18, "d": 63544, "t": 21510}, {"hr": 158, "p": 2115, "spm": 19, "d": 63621, "t": 21542}, {"hr": 158, "p": 2119, "spm": 19, "d": 63697, "t": 21574}, {"hr": 158, "p": 2116, "spm": 19, "d": 63771, "t": 21605}, {"hr": 158, "p": 2104, "spm": 18, "d": 63852, "t": 21637}, {"hr": 158, "p": 2086, "spm": 19, "d": 63926, "t": 21667}, {"hr": 158, "p": 2027, "spm": 19, "d": 64006, "t": 21700}, {"hr": 158, "p": 1942, "spm": 19, "d": 64086, "t": 21730}, {"hr": 158, "p": 1866, "spm": 21, "d": 64171, "t": 21760}, {"hr": 158, "p": 1813, "spm": 20, "d": 64255, "t": 21790}, {"hr": 158, "p": 1804, "spm": 20, "d": 64336, "t": 21817}, {"hr": 158, "p": 1781, "spm": 20, "d": 64416, "t": 21847}, {"hr": 158, "p": 1918, "spm": 21, "d": 64488, "t": 21875}, {"hr": 158, "p": 2241, "spm": 21, "d": 64563, "t": 21905}, {"hr": 158, "p": 2461, "spm": 21, "d": 64563, "t": 21905}, {"hr": 158, "p": 2633, "spm": 21, "d": 64563, "t": 21905}, {"hr": 158, "p": 2647, "spm": 9, "d": 64696, "t": 21970}, {"hr": 158, "p": 2366, "spm": 19, "d": 64759, "t": 22002}, {"hr": 158, "p": 2268, "spm": 18, "d": 64837, "t": 22035}, {"hr": 158, "p": 2273, "spm": 19, "d": 64910, "t": 22065}, {"hr": 158, "p": 2141, "spm": 19, "d": 64987, "t": 22097}, {"hr": 158, "p": 2086, "spm": 19, "d": 65062, "t": 22127}, {"hr": 158, "p": 2043, "spm": 22, "d": 65137, "t": 22155}, {"hr": 158, "p": 1924, "spm": 23, "d": 65201, "t": 22180}, {"hr": 158, "p": 1761, "spm": 27, "d": 65269, "t": 22202}, {"hr": 158, "p": 1607, "spm": 29, "d": 65337, "t": 22225}, {"hr": 158, "p": 1503, "spm": 30, "d": 65406, "t": 22242}, {"hr": 158, "p": 1443, "spm": 30, "d": 65481, "t": 22264}, {"hr": 158, "p": 1421, "spm": 28, "d": 65548, "t": 22285}, {"hr": 158, "p": 1422, "spm": 29, "d": 65623, "t": 22304}, {"hr": 158, "p": 1395, "spm": 28, "d": 65701, "t": 22325}, {"hr": 158, "p": 1365, "spm": 29, "d": 65770, "t": 22345}, {"hr": 158, "p": 1368, "spm": 28, "d": 65856, "t": 22367}, {"hr": 158, "p": 1373, "spm": 28, "d": 65929, "t": 22387}, {"hr": 158, "p": 1383, "spm": 29, "d": 66002, "t": 22407}, {"hr": 158, "p": 1406, "spm": 29, "d": 66080, "t": 22430}, {"hr": 158, "p": 1403, "spm": 29, "d": 66152, "t": 22450}, {"hr": 158, "p": 1394, "spm": 28, "d": 66224, "t": 22470}, {"hr": 158, "p": 1398, "spm": 29, "d": 66303, "t": 22495}, {"hr": 158, "p": 1395, "spm": 29, "d": 66377, "t": 22512}, {"hr": 158, "p": 1385, "spm": 28, "d": 66449, "t": 22532}, {"hr": 158, "p": 1370, "spm": 30, "d": 66523, "t": 22555}, {"hr": 158, "p": 1363, "spm": 30, "d": 66596, "t": 22572}, {"hr": 158, "p": 1370, "spm": 30, "d": 66668, "t": 22592}, {"hr": 158, "p": 1379, "spm": 30, "d": 66739, "t": 22615}, {"hr": 158, "p": 1385, "spm": 30, "d": 66806, "t": 22630}, {"hr": 158, "p": 1387, "spm": 30, "d": 66879, "t": 22650}, {"hr": 158, "p": 1382, "spm": 30, "d": 66950, "t": 22670}, {"hr": 158, "p": 1365, "spm": 32, "d": 67018, "t": 22687}, {"hr": 158, "p": 1340, "spm": 31, "d": 67094, "t": 22707}, {"hr": 158, "p": 1321, "spm": 32, "d": 67164, "t": 22725}, {"hr": 158, "p": 1308, "spm": 31, "d": 67240, "t": 22745}, {"hr": 158, "p": 1313, "spm": 30, "d": 67304, "t": 22765}, {"hr": 158, "p": 1331, "spm": 32, "d": 67383, "t": 22784}, {"hr": 158, "p": 1336, "spm": 30, "d": 67457, "t": 22804}, {"hr": 158, "p": 1332, "spm": 32, "d": 67524, "t": 22825}, {"hr": 158, "p": 1336, "spm": 31, "d": 67598, "t": 22842}, {"hr": 158, "p": 1341, "spm": 32, "d": 67665, "t": 22860}, {"hr": 158, "p": 1352, "spm": 30, "d": 67738, "t": 22880}, {"hr": 158, "p": 1354, "spm": 31, "d": 67811, "t": 22900}, {"hr": 158, "p": 1355, "spm": 31, "d": 67877, "t": 22917}, {"hr": 158, "p": 1423, "spm": 29, "d": 67954, "t": 22940}, {"hr": 158, "p": 1606, "spm": 21, "d": 68028, "t": 22967}, {"hr": 158, "p": 1921, "spm": 19, "d": 68092, "t": 22997}, {"hr": 158, "p": 2331, "spm": 19, "d": 68153, "t": 23030}, {"hr": 158, "p": 2595, "spm": 18, "d": 68217, "t": 23065}, {"hr": 158, "p": 2583, "spm": 18, "d": 68285, "t": 23097}, {"hr": 158, "p": 2491, "spm": 17, "d": 68356, "t": 23132}, {"hr": 158, "p": 2423, "spm": 18, "d": 68421, "t": 23164}, {"hr": 158, "p": 2401, "spm": 16, "d": 68495, "t": 23200}, {"hr": 158, "p": 2417, "spm": 18, "d": 68564, "t": 23232}, {"hr": 158, "p": 2424, "spm": 19, "d": 68627, "t": 23264}, {"hr": 158, "p": 2418, "spm": 19, "d": 68693, "t": 23295}, {"hr": 158, "p": 2395, "spm": 19, "d": 68757, "t": 23325}, {"hr": 158, "p": 2337, "spm": 19, "d": 68823, "t": 23357}, {"hr": 158, "p": 2275, "spm": 20, "d": 68888, "t": 23387}, {"hr": 158, "p": 2255, "spm": 19, "d": 68957, "t": 23417}, {"hr": 158, "p": 2251, "spm": 14, "d": 69050, "t": 23460}, {"hr": 158, "p": 2253, "spm": 19, "d": 69117, "t": 23492}, {"hr": 158, "p": 2291, "spm": 19, "d": 69183, "t": 23522}, {"hr": 158, "p": 2371, "spm": 17, "d": 69251, "t": 23555}, {"hr": 158, "p": 2597, "spm": 18, "d": 69311, "t": 23590}, {"hr": 158, "p": 2858, "spm": 8, "d": 69430, "t": 23660}, {"hr": 158, "p": 3067, "spm": 30, "d": 69507, "t": 23725}, {"hr": 158, "p": 2883, "spm": 30, "d": 69507, "t": 23725}, {"hr": 158, "p": 3223, "spm": 30, "d": 69507, "t": 23725}, {"hr": 158, "p": 3600, "spm": 30, "d": 69507, "t": 23725}, {"hr": 158, "p": 3600, "spm": 32, "d": 69537, "t": 23830}, {"hr": 158, "p": 3600, "spm": 23, "d": 69541, "t": 23845}, {"hr": 158, "p": 3600, "spm": 34, "d": 69552, "t": 23865}, {"hr": 158, "p": 3600, "spm": 27, "d": 69561, "t": 23882}, {"hr": 158, "p": 3600, "spm": 81, "d": 69565, "t": 23887}, {"hr": 158, "p": 3600, "spm": 23, "d": 69571, "t": 23914}, {"hr": 158, "p": 3600, "spm": 93, "d": 69571, "t": 23917}, {"hr": 158, "p": 3600, "spm": 33, "d": 69571, "t": 23937}, {"hr": 158, "p": 3600, "spm": 30, "d": 69571, "t": 23957}, {"hr": 158, "p": 3600, "spm": 32, "d": 69571, "t": 23975}, {"hr": 158, "p": 3281, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 3055, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 2986, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 2973, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 2999, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 2999, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 2826, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 3171, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 3600, "spm": 33, "d": 69575, "t": 23995}, {"hr": 158, "p": 3600, "spm": 26, "d": 69648, "t": 24127}, {"hr": 158, "p": 3600, "spm": 30, "d": 69660, "t": 24147}, {"hr": 158, "p": 3600, "spm": 36, "d": 69680, "t": 24170}, {"hr": 158, "p": 3600, "spm": 26, "d": 69691, "t": 24184}, {"hr": 158, "p": 3600, "spm": 26, "d": 69718, "t": 24220}, {"hr": 158, "p": 3600, "spm": 27, "d": 69728, "t": 24235}, {"hr": 158, "p": 3600, "spm": 18, "d": 69745, "t": 24265}, {"hr": 158, "p": 3600, "spm": 56, "d": 69749, "t": 24272}, {"hr": 158, "p": 3600, "spm": 17, "d": 69765, "t": 24307}, {"hr": 158, "p": 3600, "spm": 15, "d": 69783, "t": 24355}, {"hr": 158, "p": 3600, "spm": 16, "d": 69793, "t": 24385}, {"hr": 158, "p": 3600, "spm": 32, "d": 69795, "t": 24402}, {"hr": 158, "p": 3600, "spm": 32, "d": 69795, "t": 24423}, {"hr": 158, "p": 3600, "spm": 20, "d": 69796, "t": 24445}, {"hr": 158, "p": 3600, "spm": 13, "d": 69796, "t": 24475}, {"hr": 158, "p": 3600, "spm": 13, "d": 69796, "t": 24498}, {"hr": 158, "p": 3600, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 3600, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 3475, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 2538, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 3472, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 3600, "spm": 23, "d": 69796, "t": 24522}, {"hr": 158, "p": 3600, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 3600, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 3472, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 2750, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 2999, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 2747, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 3140, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 3600, "spm": 16, "d": 69828, "t": 24800}, {"hr": 158, "p": 3600, "spm": 30, "d": 69867, "t": 25682}, {"hr": 158, "p": 3600, "spm": 22, "d": 69867, "t": 25697}, {"hr": 158, "p": 3600, "spm": 22, "d": 69867, "t": 25702}, {"hr": 158, "p": 3600, "spm": 28, "d": 69867, "t": 25707}, {"hr": 158, "p": 3600, "spm": 52, "d": 69867, "t": 25729}, {"hr": 158, "p": 3600, "spm": 24, "d": 69867, "t": 25744}, {"hr": 158, "p": 3600, "spm": 21, "d": 69867, "t": 25795}, {"hr": 158, "p": 3600, "spm": 13, "d": 69867, "t": 25825}, {"hr": 158, "p": 3600, "spm": 43, "d": 69867, "t": 25832}, {"hr": 158, "p": 3600, "spm": 28, "d": 69867, "t": 25855}, {"hr": 158, "p": 3600, "spm": 29, "d": 69867, "t": 25875}, {"hr": 158, "p": 3600, "spm": 41, "d": 69867, "t": 25887}, {"hr": 158, "p": 3600, "spm": 33, "d": 69867, "t": 25910}, {"hr": 158, "p": 3600, "spm": 33, "d": 69867, "t": 25910}, {"hr": 158, "p": 3600, "spm": 33, "d": 69867, "t": 25910}, {"hr": 158, "p": 3600, "spm": 8, "d": 69961, "t": 26079}, {"hr": 158, "p": 3600, "spm": 35, "d": 69992, "t": 26125}, {"hr": 158, "p": 3600, "spm": 35, "d": 69992, "t": 26125}, {"hr": 158, "p": 2884, "spm": 35, "d": 69992, "t": 26125}, {"hr": 158, "p": 2940, "spm": 35, "d": 69992, "t": 26125}, {"hr": 158, "p": 3600, "spm": 35, "d": 69992, "t": 26125}, {"hr": 158, "p": 3600, "spm": 23, "d": 70105, "t": 26282}, {"hr": 158, "p": 3600, "spm": 34, "d": 70123, "t": 26300}, {"hr": 158, "p": 3600, "spm": 42, "d": 70141, "t": 26315}, {"hr": 158, "p": 3600, "spm": 44, "d": 70163, "t": 26329}, {"hr": 158, "p": 3364, "spm": 54, "d": 70175, "t": 26337}, {"hr": 158, "p": 2713, "spm": 20, "d": 70238, "t": 26370}, {"hr": 158, "p": 2096, "spm": 19, "d": 70323, "t": 26402}, {"hr": 158, "p": 1934, "spm": 20, "d": 70406, "t": 26430}, {"hr": 158, "p": 2066, "spm": 20, "d": 70489, "t": 26459}, {"hr": 158, "p": 2300, "spm": 20, "d": 70489, "t": 26459}, {"hr": 158, "p": 2709, "spm": 20, "d": 70489, "t": 26459}, {"hr": 158, "p": 2763, "spm": 30, "d": 70714, "t": 26580}, {"hr": 158, "p": 2245, "spm": 45, "d": 70735, "t": 26590}, {"hr": 158, "p": 1918, "spm": 19, "d": 70829, "t": 26622}, {"hr": 158, "p": 1742, "spm": 20, "d": 70927, "t": 26652}, {"hr": 158, "p": 1615, "spm": 30, "d": 71025, "t": 26685}, {"hr": 158, "p": 1621, "spm": 19, "d": 71075, "t": 26702}, {"hr": 158, "p": 1632, "spm": 20, "d": 71172, "t": 26735}, {"hr": 158, "p": 1616, "spm": 21, "d": 71260, "t": 26762}, {"hr": 158, "p": 1567, "spm": 20, "d": 71367, "t": 26795}, {"hr": 158, "p": 1531, "spm": 21, "d": 71452, "t": 26820}, {"hr": 158, "p": 1518, "spm": 20, "d": 71550, "t": 26850}, {"hr": 158, "p": 1516, "spm": 20, "d": 71648, "t": 26880}, {"hr": 158, "p": 1510, "spm": 21, "d": 71750, "t": 26910}, {"hr": 158, "p": 1498, "spm": 20, "d": 71844, "t": 26939}, {"hr": 158, "p": 1492, "spm": 20, "d": 71938, "t": 26967}, {"hr": 158, "p": 1484, "spm": 21, "d": 72038, "t": 26997}, {"hr": 158, "p": 1474, "spm": 21, "d": 72124, "t": 27025}, {"hr": 158, "p": 1470, "spm": 20, "d": 72226, "t": 27055}, {"hr": 158, "p": 1471, "spm": 21, "d": 72324, "t": 27085}, {"hr": 158, "p": 1480, "spm": 18, "d": 72427, "t": 27115}, {"hr": 158, "p": 1504, "spm": 21, "d": 72524, "t": 27145}, {"hr": 158, "p": 1525, "spm": 21, "d": 72619, "t": 27175}, {"hr": 158, "p": 1535, "spm": 20, "d": 72719, "t": 27205}, {"hr": 158, "p": 1550, "spm": 20, "d": 72812, "t": 27230}, {"hr": 158, "p": 1564, "spm": 20, "d": 72908, "t": 27260}, {"hr": 158, "p": 1575, "spm": 20, "d": 73002, "t": 27290}, {"hr": 158, "p": 1584, "spm": 20, "d": 73101, "t": 27320}, {"hr": 158, "p": 1589, "spm": 20, "d": 73196, "t": 27350}, {"hr": 158, "p": 1592, "spm": 20, "d": 73286, "t": 27379}, {"hr": 158, "p": 1609, "spm": 20, "d": 73379, "t": 27409}, {"hr": 158, "p": 1630, "spm": 18, "d": 73477, "t": 27440}, {"hr": 158, "p": 1638, "spm": 16, "d": 73587, "t": 27477}, {"hr": 158, "p": 1637, "spm": 19, "d": 73685, "t": 27509}, {"hr": 158, "p": 1630, "spm": 19, "d": 73778, "t": 27539}, {"hr": 158, "p": 1610, "spm": 18, "d": 73882, "t": 27572}, {"hr": 158, "p": 1590, "spm": 19, "d": 73983, "t": 27605}, {"hr": 158, "p": 1570, "spm": 20, "d": 74081, "t": 27635}, {"hr": 158, "p": 1549, "spm": 20, "d": 74179, "t": 27665}, {"hr": 158, "p": 1539, "spm": 20, "d": 74277, "t": 27695}, {"hr": 158, "p": 1541, "spm": 20, "d": 74368, "t": 27722}, {"hr": 158, "p": 1551, "spm": 21, "d": 74459, "t": 27750}, {"hr": 158, "p": 1563, "spm": 21, "d": 74549, "t": 27779}, {"hr": 158, "p": 1568, "spm": 21, "d": 74634, "t": 27805}, {"hr": 158, "p": 1564, "spm": 21, "d": 74727, "t": 27835}, {"hr": 158, "p": 1534, "spm": 22, "d": 74818, "t": 27860}, {"hr": 158, "p": 1456, "spm": 27, "d": 74904, "t": 27885}, {"hr": 158, "p": 1350, "spm": 30, "d": 74986, "t": 27905}, {"hr": 158, "p": 1252, "spm": 32, "d": 75064, "t": 27925}, {"hr": 158, "p": 1182, "spm": 31, "d": 75144, "t": 27940}, {"hr": 158, "p": 1152, "spm": 32, "d": 75229, "t": 27960}, {"hr": 158, "p": 1152, "spm": 33, "d": 75309, "t": 27979}, {"hr": 158, "p": 1153, "spm": 31, "d": 75390, "t": 27997}, {"hr": 158, "p": 1146, "spm": 32, "d": 75464, "t": 28015}, {"hr": 158, "p": 1140, "spm": 32, "d": 75557, "t": 28035}, {"hr": 158, "p": 1139, "spm": 33, "d": 75636, "t": 28052}, {"hr": 158, "p": 1145, "spm": 32, "d": 75717, "t": 28070}, {"hr": 158, "p": 1152, "spm": 33, "d": 75805, "t": 28090}, {"hr": 158, "p": 1155, "spm": 30, "d": 75886, "t": 28109}, {"hr": 158, "p": 1163, "spm": 32, "d": 75972, "t": 28129}, {"hr": 158, "p": 1167, "spm": 31, "d": 76051, "t": 28147}, {"hr": 158, "p": 1170, "spm": 32, "d": 76127, "t": 28165}, {"hr": 158, "p": 1178, "spm": 31, "d": 76216, "t": 28187}, {"hr": 158, "p": 1171, "spm": 31, "d": 76294, "t": 28205}, {"hr": 158, "p": 1160, "spm": 32, "d": 76373, "t": 28225}, {"hr": 158, "p": 1156, "spm": 32, "d": 76459, "t": 28242}, {"hr": 158, "p": 1152, "spm": 32, "d": 76538, "t": 28260}, {"hr": 158, "p": 1152, "spm": 32, "d": 76624, "t": 28280}, {"hr": 158, "p": 1156, "spm": 32, "d": 76701, "t": 28299}, {"hr": 158, "p": 1155, "spm": 31, "d": 76780, "t": 28317}, {"hr": 158, "p": 1154, "spm": 33, "d": 76866, "t": 28337}, {"hr": 158, "p": 1144, "spm": 32, "d": 76945, "t": 28355}, {"hr": 158, "p": 1130, "spm": 32, "d": 77025, "t": 28375}, {"hr": 158, "p": 1123, "spm": 32, "d": 77112, "t": 28392}, {"hr": 158, "p": 1120, "spm": 33, "d": 77193, "t": 28410}, {"hr": 158, "p": 1130, "spm": 32, "d": 77273, "t": 28429}, {"hr": 158, "p": 1144, "spm": 32, "d": 77360, "t": 28449}, {"hr": 158, "p": 1146, "spm": 32, "d": 77434, "t": 28465}, {"hr": 158, "p": 1145, "spm": 32, "d": 77526, "t": 28487}, {"hr": 158, "p": 1138, "spm": 32, "d": 77606, "t": 28505}, {"hr": 158, "p": 1130, "spm": 30, "d": 77686, "t": 28525}, {"hr": 158, "p": 1130, "spm": 32, "d": 77773, "t": 28542}, {"hr": 158, "p": 1130, "spm": 32, "d": 77853, "t": 28560}, {"hr": 158, "p": 1139, "spm": 32, "d": 77940, "t": 28580}, {"hr": 158, "p": 1151, "spm": 32, "d": 78018, "t": 28599}, {"hr": 158, "p": 1155, "spm": 32, "d": 78097, "t": 28617}, {"hr": 158, "p": 1156, "spm": 32, "d": 78184, "t": 28637}, {"hr": 158, "p": 1149, "spm": 32, "d": 78264, "t": 28655}, {"hr": 158, "p": 1142, "spm": 32, "d": 78344, "t": 28675}, {"hr": 158, "p": 1145, "spm": 31, "d": 78429, "t": 28692}, {"hr": 158, "p": 1151, "spm": 31, "d": 78515, "t": 28712}, {"hr": 158, "p": 1160, "spm": 32, "d": 78593, "t": 28730}, {"hr": 158, "p": 1168, "spm": 32, "d": 78671, "t": 28749}, {"hr": 158, "p": 1166, "spm": 32, "d": 78756, "t": 28769}, {"hr": 158, "p": 1163, "spm": 32, "d": 78843, "t": 28789}, {"hr": 158, "p": 1154, "spm": 31, "d": 78922, "t": 28807}, {"hr": 158, "p": 1137, "spm": 32, "d": 78995, "t": 28825}, {"hr": 158, "p": 1124, "spm": 33, "d": 79083, "t": 28842}, {"hr": 158, "p": 1120, "spm": 32, "d": 79163, "t": 28860}, {"hr": 158, "p": 1062, "spm": 33, "d": 79243, "t": 28879}, {"hr": 158, "p": 1172, "spm": 33, "d": 79330, "t": 28899}, {"hr": 158, "p": 1443, "spm": 32, "d": 79396, "t": 28915}, {"hr": 158, "p": 1948, "spm": 32, "d": 79396, "t": 28915}, {"hr": 158, "p": 2905, "spm": 32, "d": 79396, "t": 28915}, {"hr": 158, "p": 3441, "spm": 32, "d": 79396, "t": 28915}, {"hr": 158, "p": 2590, "spm": 32, "d": 79396, "t": 28915}, {"hr": 158, "p": 2276, "spm": 16, "d": 79762, "t": 29037}, {"hr": 158, "p": 2028, "spm": 17, "d": 79852, "t": 29072}, {"hr": 158, "p": 1887, "spm": 18, "d": 79943, "t": 29107}, {"hr": 158, "p": 1904, "spm": 16, "d": 80039, "t": 29142}, {"hr": 158, "p": 1869, "spm": 16, "d": 80140, "t": 29180}, {"hr": 158, "p": 1865, "spm": 16, "d": 80225, "t": 29215}, {"hr": 158, "p": 1885, "spm": 16, "d": 80326, "t": 29250}, {"hr": 158, "p": 1894, "spm": 17, "d": 80421, "t": 29287}, {"hr": 158, "p": 1885, "spm": 17, "d": 80509, "t": 29320}, {"hr": 158, "p": 1869, "spm": 17, "d": 80606, "t": 29355}, {"hr": 158, "p": 1835, "spm": 19, "d": 80696, "t": 29387}, {"hr": 158, "p": 1795, "spm": 18, "d": 80794, "t": 29420}, {"hr": 158, "p": 1766, "spm": 19, "d": 80886, "t": 29455}, {"hr": 158, "p": 1743, "spm": 19, "d": 80973, "t": 29485}, {"hr": 158, "p": 1731, "spm": 18, "d": 81066, "t": 29515}, {"hr": 158, "p": 1735, "spm": 19, "d": 81157, "t": 29547}, {"hr": 158, "p": 1685, "spm": 19, "d": 81244, "t": 29579}, {"hr": 158, "p": 1827, "spm": 19, "d": 81326, "t": 29609}, {"hr": 158, "p": 2003, "spm": 19, "d": 81413, "t": 29640}, {"hr": 158, "p": 2357, "spm": 19, "d": 81413, "t": 29700}, {"hr": 158, "p": 2771, "spm": 36, "d": 81630, "t": 29760}, {"hr": 158, "p": 3090, "spm": 32, "d": 81665, "t": 29785}, {"hr": 158, "p": 3164, "spm": 32, "d": 81665, "t": 29817}, {"hr": 158, "p": 3600, "spm": 8, "d": 81750, "t": 29850}, {"hr": 158, "p": 3525, "spm": 22, "d": 81776, "t": 29875}, {"hr": 158, "p": 3174, "spm": 16, "d": 81844, "t": 29910}, {"hr": 158, "p": 2603, "spm": 18, "d": 81923, "t": 29945}, {"hr": 158, "p": 2140, "spm": 18, "d": 82008, "t": 29979}, {"hr": 158, "p": 1896, "spm": 18, "d": 82095, "t": 30010}, {"hr": 158, "p": 1791, "spm": 18, "d": 82189, "t": 30042}, {"hr": 158, "p": 1724, "spm": 19, "d": 82284, "t": 30075}, {"hr": 158, "p": 1675, "spm": 19, "d": 82374, "t": 30105}, {"hr": 158, "p": 1649, "spm": 19, "d": 82472, "t": 30137}, {"hr": 158, "p": 1639, "spm": 19, "d": 82571, "t": 30169}, {"hr": 158, "p": 1639, "spm": 19, "d": 82663, "t": 30199}, {"hr": 158, "p": 1656, "spm": 20, "d": 82754, "t": 30229}, {"hr": 158, "p": 1685, "spm": 19, "d": 82850, "t": 30260}, {"hr": 158, "p": 1703, "spm": 20, "d": 82938, "t": 30290}, {"hr": 158, "p": 1700, "spm": 20, "d": 83025, "t": 30319}, {"hr": 158, "p": 1679, "spm": 21, "d": 83115, "t": 30349}, {"hr": 158, "p": 1644, "spm": 21, "d": 83204, "t": 30377}, {"hr": 158, "p": 1624, "spm": 20, "d": 83298, "t": 30407}, {"hr": 158, "p": 1617, "spm": 21, "d": 83389, "t": 30435}, {"hr": 158, "p": 1553, "spm": 23, "d": 83466, "t": 30459}, {"hr": 158, "p": 1425, "spm": 32, "d": 83530, "t": 30477}, {"hr": 158, "p": 1285, "spm": 36, "d": 83604, "t": 30492}, {"hr": 158, "p": 1175, "spm": 36, "d": 83684, "t": 30510}, {"hr": 158, "p": 1113, "spm": 36, "d": 83757, "t": 30527}, {"hr": 158, "p": 1097, "spm": 35, "d": 83831, "t": 30542}, {"hr": 158, "p": 1103, "spm": 35, "d": 83913, "t": 30560}, {"hr": 158, "p": 1100, "spm": 35, "d": 83987, "t": 30577}, {"hr": 158, "p": 1091, "spm": 36, "d": 84060, "t": 30595}, {"hr": 158, "p": 1087, "spm": 34, "d": 84140, "t": 30610}, {"hr": 158, "p": 1089, "spm": 34, "d": 84220, "t": 30629}, {"hr": 158, "p": 1098, "spm": 35, "d": 84300, "t": 30647}, {"hr": 158, "p": 1123, "spm": 35, "d": 84380, "t": 30665}, {"hr": 158, "p": 1147, "spm": 33, "d": 84451, "t": 30680}, {"hr": 158, "p": 1147, "spm": 35, "d": 84529, "t": 30699}, {"hr": 158, "p": 1135, "spm": 33, "d": 84603, "t": 30717}, {"hr": 158, "p": 1063, "spm": 33, "d": 84690, "t": 30735}, {"hr": 158, "p": 1211, "spm": 34, "d": 84771, "t": 30752}, {"hr": 158, "p": 1337, "spm": 33, "d": 84847, "t": 30770}, {"hr": 158, "p": 1491, "spm": 33, "d": 84847, "t": 30800}, {"hr": 158, "p": 1675, "spm": 11, "d": 85036, "t": 30829}, {"hr": 158, "p": 1837, "spm": 20, "d": 85098, "t": 30852}, {"hr": 158, "p": 1831, "spm": 18, "d": 85165, "t": 30885}, {"hr": 158, "p": 2380, "spm": 17, "d": 85238, "t": 30920}, {"hr": 158, "p": 2452, "spm": 19, "d": 85300, "t": 30950}, {"hr": 158, "p": 2355, "spm": 19, "d": 85372, "t": 30985}, {"hr": 158, "p": 2235, "spm": 19, "d": 85442, "t": 31015}, {"hr": 158, "p": 2130, "spm": 18, "d": 85519, "t": 31047}, {"hr": 158, "p": 2047, "spm": 19, "d": 85597, "t": 31079}, {"hr": 158, "p": 1995, "spm": 18, "d": 85680, "t": 31110}, {"hr": 158, "p": 1974, "spm": 18, "d": 85765, "t": 31145}, {"hr": 158, "p": 1970, "spm": 19, "d": 85847, "t": 31177}, {"hr": 158, "p": 1965, "spm": 19, "d": 85926, "t": 31209}, {"hr": 158, "p": 1946, "spm": 19, "d": 86012, "t": 31240}, {"hr": 158, "p": 1919, "spm": 18, "d": 86096, "t": 31272}, {"hr": 158, "p": 1896, "spm": 19, "d": 86181, "t": 31305}, {"hr": 158, "p": 1876, "spm": 19, "d": 86262, "t": 31335}, {"hr": 158, "p": 1844, "spm": 19, "d": 86351, "t": 31367}, {"hr": 158, "p": 1793, "spm": 19, "d": 86442, "t": 31399}, {"hr": 158, "p": 1737, "spm": 20, "d": 86527, "t": 31427}, {"hr": 158, "p": 1693, "spm": 20, "d": 86617, "t": 31457}, {"hr": 158, "p": 1666, "spm": 20, "d": 86710, "t": 31487}, {"hr": 158, "p": 1651, "spm": 19, "d": 86800, "t": 31517}, {"hr": 158, "p": 1640, "spm": 20, "d": 86894, "t": 31547}, {"hr": 158, "p": 1629, "spm": 20, "d": 86988, "t": 31577}, {"hr": 158, "p": 1621, "spm": 20, "d": 87083, "t": 31607}, {"hr": 158, "p": 1618, "spm": 20, "d": 87170, "t": 31635}, {"hr": 158, "p": 1621, "spm": 20, "d": 87263, "t": 31665}, {"hr": 158, "p": 1637, "spm": 21, "d": 87356, "t": 31695}, {"hr": 158, "p": 1660, "spm": 21, "d": 87436, "t": 31720}, {"hr": 158, "p": 1687, "spm": 20, "d": 87522, "t": 31750}, {"hr": 158, "p": 1722, "spm": 21, "d": 87608, "t": 31780}, {"hr": 158, "p": 1749, "spm": 20, "d": 87689, "t": 31809}, {"hr": 158, "p": 1767, "spm": 20, "d": 87767, "t": 31837}, {"hr": 158, "p": 1783, "spm": 20, "d": 87856, "t": 31869}, {"hr": 158, "p": 1786, "spm": 20, "d": 87933, "t": 31897}, {"hr": 158, "p": 1776, "spm": 20, "d": 88024, "t": 31929}, {"hr": 158, "p": 1757, "spm": 20, "d": 88105, "t": 31957}, {"hr": 158, "p": 1737, "spm": 19, "d": 88195, "t": 31989}, {"hr": 158, "p": 1732, "spm": 19, "d": 88279, "t": 32019}, {"hr": 158, "p": 1746, "spm": 20, "d": 88365, "t": 32049}, {"hr": 158, "p": 1784, "spm": 19, "d": 88451, "t": 32080}, {"hr": 158, "p": 1827, "spm": 18, "d": 88535, "t": 32112}, {"hr": 158, "p": 1841, "spm": 19, "d": 88620, "t": 32145}, {"hr": 158, "p": 1820, "spm": 19, "d": 88706, "t": 32175}, {"hr": 158, "p": 1770, "spm": 19, "d": 88800, "t": 32207}, {"hr": 158, "p": 1718, "spm": 20, "d": 88889, "t": 32237}, {"hr": 158, "p": 1691, "spm": 20, "d": 88980, "t": 32267}, {"hr": 158, "p": 1683, "spm": 20, "d": 89070, "t": 32297}, {"hr": 158, "p": 1672, "spm": 20, "d": 89161, "t": 32327}, {"hr": 158, "p": 1664, "spm": 20, "d": 89253, "t": 32357}, {"hr": 158, "p": 1668, "spm": 20, "d": 89345, "t": 32387}, {"hr": 158, "p": 1677, "spm": 20, "d": 89433, "t": 32417}, {"hr": 158, "p": 1691, "spm": 20, "d": 89517, "t": 32445}, {"hr": 158, "p": 1706, "spm": 20, "d": 89611, "t": 32477}, {"hr": 158, "p": 1708, "spm": 20, "d": 89700, "t": 32507}, {"hr": 158, "p": 1701, "spm": 20, "d": 89788, "t": 32537}, {"hr": 158, "p": 1688, "spm": 20, "d": 89880, "t": 32567}, {"hr": 158, "p": 1653, "spm": 20, "d": 89974, "t": 32597}, {"hr": 158, "p": 1606, "spm": 20, "d": 90071, "t": 32627}, {"hr": 158, "p": 1571, "spm": 20, "d": 90169, "t": 32657}, {"hr": 158, "p": 1566, "spm": 20, "d": 90265, "t": 32687}, {"hr": 158, "p": 1588, "spm": 20, "d": 90354, "t": 32715}, {"hr": 158, "p": 1628, "spm": 20, "d": 90445, "t": 32745}, {"hr": 158, "p": 1669, "spm": 20, "d": 90535, "t": 32775}, {"hr": 158, "p": 1699, "spm": 20, "d": 90624, "t": 32805}, {"hr": 158, "p": 1704, "spm": 19, "d": 90714, "t": 32835}, {"hr": 158, "p": 1688, "spm": 20, "d": 90805, "t": 32865}, {"hr": 158, "p": 1667, "spm": 20, "d": 90903, "t": 32897}, {"hr": 158, "p": 1646, "spm": 20, "d": 90998, "t": 32927}, {"hr": 158, "p": 1623, "spm": 20, "d": 91086, "t": 32955}, {"hr": 158, "p": 1605, "spm": 20, "d": 91184, "t": 32985}, {"hr": 158, "p": 1590, "spm": 20, "d": 91281, "t": 33015}, {"hr": 158, "p": 1582, "spm": 20, "d": 91377, "t": 33045}, {"hr": 158, "p": 1583, "spm": 20, "d": 91472, "t": 33075}, {"hr": 158, "p": 1582, "spm": 20, "d": 91569, "t": 33105}, {"hr": 158, "p": 1573, "spm": 20, "d": 91669, "t": 33135}, {"hr": 158, "p": 1557, "spm": 20, "d": 91768, "t": 33165}, {"hr": 158, "p": 1547, "spm": 21, "d": 91866, "t": 33195}, {"hr": 158, "p": 1549, "spm": 20, "d": 91965, "t": 33225}, {"hr": 158, "p": 1556, "spm": 20, "d": 92062, "t": 33255}, {"hr": 158, "p": 1559, "spm": 20, "d": 92153, "t": 33282}, {"hr": 158, "p": 1558, "spm": 20, "d": 92250, "t": 33312}, {"hr": 158, "p": 1549, "spm": 20, "d": 92353, "t": 33345}, {"hr": 158, "p": 1539, "spm": 19, "d": 92451, "t": 33375}, {"hr": 158, "p": 1533, "spm": 20, "d": 92549, "t": 33405}, {"hr": 158, "p": 1531, "spm": 20, "d": 92641, "t": 33432}, {"hr": 158, "p": 1527, "spm": 20, "d": 92739, "t": 33462}, {"hr": 158, "p": 1526, "spm": 21, "d": 92831, "t": 33490}, {"hr": 158, "p": 1532, "spm": 21, "d": 92923, "t": 33519}, {"hr": 158, "p": 1545, "spm": 22, "d": 93013, "t": 33547}, {"hr": 158, "p": 1536, "spm": 23, "d": 93099, "t": 33572}, {"hr": 158, "p": 1479, "spm": 25, "d": 93169, "t": 33595}, {"hr": 158, "p": 1394, "spm": 29, "d": 93256, "t": 33617}, {"hr": 158, "p": 1305, "spm": 29, "d": 93336, "t": 33637}, {"hr": 158, "p": 1245, "spm": 29, "d": 93412, "t": 33657}, {"hr": 158, "p": 1229, "spm": 29, "d": 93505, "t": 33679}, {"hr": 158, "p": 1236, "spm": 28, "d": 93585, "t": 33699}, {"hr": 158, "p": 1259, "spm": 29, "d": 93664, "t": 33719}, {"hr": 158, "p": 1292, "spm": 28, "d": 93748, "t": 33740}, {"hr": 158, "p": 1309, "spm": 29, "d": 93824, "t": 33760}, {"hr": 158, "p": 1316, "spm": 30, "d": 93903, "t": 33780}, {"hr": 158, "p": 1319, "spm": 28, "d": 93980, "t": 33800}, {"hr": 158, "p": 1304, "spm": 29, "d": 94065, "t": 33822}, {"hr": 158, "p": 1290, "spm": 29, "d": 94145, "t": 33842}, {"hr": 158, "p": 1276, "spm": 30, "d": 94225, "t": 33865}, {"hr": 158, "p": 1254, "spm": 29, "d": 94308, "t": 33882}, {"hr": 158, "p": 1232, "spm": 28, "d": 94390, "t": 33902}, {"hr": 158, "p": 1218, "spm": 29, "d": 94473, "t": 33925}, {"hr": 158, "p": 1217, "spm": 29, "d": 94561, "t": 33945}, {"hr": 158, "p": 1224, "spm": 28, "d": 94643, "t": 33965}, {"hr": 158, "p": 1234, "spm": 29, "d": 94717, "t": 33985}, {"hr": 158, "p": 1246, "spm": 28, "d": 94809, "t": 34007}, {"hr": 158, "p": 1242, "spm": 29, "d": 94889, "t": 34027}, {"hr": 158, "p": 1236, "spm": 29, "d": 94970, "t": 34047}, {"hr": 158, "p": 1239, "spm": 29, "d": 95059, "t": 34069}, {"hr": 158, "p": 1245, "spm": 28, "d": 95139, "t": 34089}, {"hr": 158, "p": 1263, "spm": 28, "d": 95225, "t": 34110}, {"hr": 158, "p": 1291, "spm": 29, "d": 95302, "t": 34130}, {"hr": 158, "p": 1312, "spm": 28, "d": 95386, "t": 34152}, {"hr": 158, "p": 1314, "spm": 28, "d": 95462, "t": 34172}, {"hr": 158, "p": 1299, "spm": 28, "d": 95541, "t": 34195}, {"hr": 158, "p": 1286, "spm": 28, "d": 95625, "t": 34215}, {"hr": 158, "p": 1275, "spm": 29, "d": 95710, "t": 34237}, {"hr": 158, "p": 1278, "spm": 29, "d": 95781, "t": 34257}, {"hr": 158, "p": 1296, "spm": 28, "d": 95863, "t": 34277}, {"hr": 158, "p": 1301, "spm": 29, "d": 95946, "t": 34299}, {"hr": 158, "p": 1300, "spm": 28, "d": 96025, "t": 34319}, {"hr": 158, "p": 1302, "spm": 28, "d": 96109, "t": 34340}, {"hr": 158, "p": 1286, "spm": 29, "d": 96188, "t": 34360}, {"hr": 158, "p": 1268, "spm": 29, "d": 96268, "t": 34380}, {"hr": 158, "p": 1261, "spm": 29, "d": 96350, "t": 34400}, {"hr": 158, "p": 1254, "spm": 29, "d": 96437, "t": 34422}, {"hr": 158, "p": 1249, "spm": 29, "d": 96517, "t": 34442}, {"hr": 158, "p": 1247, "spm": 29, "d": 96597, "t": 34465}, {"hr": 158, "p": 1245, "spm": 28, "d": 96679, "t": 34482}, {"hr": 158, "p": 1245, "spm": 30, "d": 96759, "t": 34502}, {"hr": 158, "p": 1247, "spm": 30, "d": 96836, "t": 34525}, {"hr": 158, "p": 1183, "spm": 29, "d": 96918, "t": 34542}, {"hr": 158, "p": 1282, "spm": 29, "d": 97004, "t": 34565}, {"hr": 158, "p": 1543, "spm": 29, "d": 97079, "t": 34585}, {"hr": 158, "p": 2154, "spm": 29, "d": 97079, "t": 34585}, {"hr": 158, "p": 2590, "spm": 29, "d": 97079, "t": 34585}, {"hr": 158, "p": 2684, "spm": 29, "d": 97079, "t": 34585}, {"hr": 158, "p": 2163, "spm": 28, "d": 97399, "t": 34700}, {"hr": 158, "p": 2080, "spm": 35, "d": 97420, "t": 34710}, {"hr": 158, "p": 2131, "spm": 14, "d": 97509, "t": 34752}, {"hr": 158, "p": 2353, "spm": 14, "d": 97602, "t": 34797}, {"hr": 158, "p": 2168, "spm": 17, "d": 97692, "t": 34832}, {"hr": 158, "p": 2038, "spm": 18, "d": 97771, "t": 34862}, {"hr": 158, "p": 1899, "spm": 19, "d": 97862, "t": 34897}, {"hr": 158, "p": 1809, "spm": 18, "d": 97953, "t": 34929}, {"hr": 158, "p": 1753, "spm": 19, "d": 98041, "t": 34959}, {"hr": 158, "p": 1711, "spm": 19, "d": 98136, "t": 34990}, {"hr": 158, "p": 1676, "spm": 19, "d": 98226, "t": 35020}, {"hr": 158, "p": 1645, "spm": 19, "d": 98325, "t": 35052}, {"hr": 158, "p": 1626, "spm": 19, "d": 98418, "t": 35082}, {"hr": 158, "p": 1621, "spm": 19, "d": 98518, "t": 35115}, {"hr": 158, "p": 1637, "spm": 20, "d": 98609, "t": 35145}, {"hr": 158, "p": 1659, "spm": 18, "d": 98706, "t": 35177}, {"hr": 158, "p": 1679, "spm": 19, "d": 98801, "t": 35210}, {"hr": 158, "p": 1693, "spm": 19, "d": 98899, "t": 35240}, {"hr": 158, "p": 1692, "spm": 19, "d": 98988, "t": 35270}, {"hr": 158, "p": 1679, "spm": 19, "d": 99081, "t": 35300}, {"hr": 158, "p": 1661, "spm": 19, "d": 99172, "t": 35330}, {"hr": 158, "p": 1644, "spm": 20, "d": 99270, "t": 35365}, {"hr": 158, "p": 1632, "spm": 20, "d": 99363, "t": 35395}, {"hr": 158, "p": 1632, "spm": 21, "d": 99451, "t": 35420}, {"hr": 158, "p": 1635, "spm": 20, "d": 99540, "t": 35450}, {"hr": 158, "p": 1637, "spm": 20, "d": 99634, "t": 35480}, {"hr": 158, "p": 1638, "spm": 20, "d": 99727, "t": 35510}, {"hr": 158, "p": 1644, "spm": 19, "d": 99818, "t": 35540}, {"hr": 158, "p": 1656, "spm": 19, "d": 99915, "t": 35575}, {"hr": 158, "p": 1675, "spm": 18, "d": 100005, "t": 35605}, {"hr": 158, "p": 1690, "spm": 19, "d": 100094, "t": 35635}, {"hr": 158, "p": 1710, "spm": 19, "d": 100184, "t": 35667}, {"hr": 158, "p": 1764, "spm": 18, "d": 100278, "t": 35699}, {"hr": 158, "p": 1862, "spm": 17, "d": 100369, "t": 35735}, {"hr": 158, "p": 1971, "spm": 16, "d": 100460, "t": 35772}, {"hr": 158, "p": 2043, "spm": 18, "d": 100543, "t": 35807}, {"hr": 158, "p": 2018, "spm": 18, "d": 100627, "t": 35839}, {"hr": 158, "p": 1907, "spm": 19, "d": 100709, "t": 35869}, {"hr": 158, "p": 1789, "spm": 19, "d": 100805, "t": 35900}, {"hr": 158, "p": 1695, "spm": 19, "d": 100904, "t": 35935}, {"hr": 158, "p": 1631, "spm": 20, "d": 101000, "t": 35965}, {"hr": 158, "p": 1605, "spm": 20, "d": 101095, "t": 35995}, {"hr": 158, "p": 1605, "spm": 20, "d": 101187, "t": 36025}, {"hr": 158, "p": 1629, "spm": 19, "d": 101278, "t": 36055}, {"hr": 158, "p": 1664, "spm": 19, "d": 101365, "t": 36085}, {"hr": 158, "p": 1686, "spm": 19, "d": 101453, "t": 36115}, {"hr": 158, "p": 1694, "spm": 19, "d": 101541, "t": 36145}, {"hr": 158, "p": 1688, "spm": 19, "d": 101633, "t": 36177}, {"hr": 158, "p": 1668, "spm": 20, "d": 101720, "t": 36207}, {"hr": 158, "p": 1654, "spm": 19, "d": 101816, "t": 36237}, {"hr": 158, "p": 1653, "spm": 19, "d": 101911, "t": 36269}, {"hr": 158, "p": 1661, "spm": 19, "d": 102001, "t": 36299}, {"hr": 158, "p": 1690, "spm": 19, "d": 102094, "t": 36330}, {"hr": 158, "p": 1724, "spm": 19, "d": 102185, "t": 36362}, {"hr": 158, "p": 1743, "spm": 19, "d": 102276, "t": 36395}, {"hr": 158, "p": 1741, "spm": 19, "d": 102366, "t": 36425}, {"hr": 158, "p": 1715, "spm": 20, "d": 102454, "t": 36455}, {"hr": 158, "p": 1680, "spm": 20, "d": 102551, "t": 36487}, {"hr": 158, "p": 1650, "spm": 20, "d": 102643, "t": 36517}, {"hr": 158, "p": 1631, "spm": 20, "d": 102735, "t": 36547}, {"hr": 158, "p": 1626, "spm": 20, "d": 102829, "t": 36577}, {"hr": 158, "p": 1627, "spm": 19, "d": 102920, "t": 36607}, {"hr": 158, "p": 1635, "spm": 19, "d": 103018, "t": 36640}, {"hr": 158, "p": 1656, "spm": 19, "d": 103114, "t": 36670}, {"hr": 158, "p": 1676, "spm": 19, "d": 103204, "t": 36702}, {"hr": 158, "p": 1615, "spm": 19, "d": 103298, "t": 36732}, {"hr": 158, "p": 1719, "spm": 19, "d": 103392, "t": 36764}, {"hr": 158, "p": 2010, "spm": 20, "d": 103483, "t": 36792}, {"hr": 158, "p": 2276, "spm": 20, "d": 103483, "t": 36792}, {"hr": 158, "p": 2681, "spm": 20, "d": 103483, "t": 36792}, {"hr": 158, "p": 2825, "spm": 18, "d": 103780, "t": 36930}, {"hr": 158, "p": 2357, "spm": 17, "d": 103855, "t": 36967}, {"hr": 158, "p": 2069, "spm": 18, "d": 103948, "t": 37000}, {"hr": 158, "p": 1873, "spm": 19, "d": 104045, "t": 37034}, {"hr": 158, "p": 1657, "spm": 20, "d": 104139, "t": 37062}, {"hr": 158, "p": 1613, "spm": 18, "d": 104236, "t": 37095}, {"hr": 158, "p": 1616, "spm": 18, "d": 104337, "t": 37127}, {"hr": 158, "p": 1622, "spm": 18, "d": 104438, "t": 37160}, {"hr": 158, "p": 1619, "spm": 18, "d": 104541, "t": 37190}, {"hr": 158, "p": 1596, "spm": 19, "d": 104641, "t": 37225}, {"hr": 158, "p": 1555, "spm": 19, "d": 104742, "t": 37255}, {"hr": 158, "p": 1428, "spm": 19, "d": 104843, "t": 37285}, {"hr": 158, "p": 1496, "spm": 19, "d": 104947, "t": 37315}, {"hr": 158, "p": 1834, "spm": 19, "d": 105063, "t": 37347}, {"hr": 158, "p": 2086, "spm": 19, "d": 105063, "t": 37347}, {"hr": 158, "p": 2192, "spm": 19, "d": 105063, "t": 37347}, {"hr": 158, "p": 2043, "spm": 10, "d": 105234, "t": 37407}, {"hr": 158, "p": 1670, "spm": 20, "d": 105322, "t": 37437}, {"hr": 158, "p": 1574, "spm": 20, "d": 105409, "t": 37465}, {"hr": 158, "p": 1637, "spm": 20, "d": 105504, "t": 37495}, {"hr": 158, "p": 1576, "spm": 19, "d": 105607, "t": 37527}, {"hr": 158, "p": 1549, "spm": 20, "d": 105708, "t": 37557}, {"hr": 158, "p": 1546, "spm": 20, "d": 105801, "t": 37585}, {"hr": 158, "p": 1561, "spm": 19, "d": 105909, "t": 37617}, {"hr": 158, "p": 1586, "spm": 20, "d": 105999, "t": 37647}, {"hr": 158, "p": 1599, "spm": 20, "d": 106091, "t": 37677}, {"hr": 158, "p": 1599, "spm": 20, "d": 106190, "t": 37707}, {"hr": 158, "p": 1599, "spm": 20, "d": 106285, "t": 37737}, {"hr": 158, "p": 1595, "spm": 20, "d": 106374, "t": 37767}, {"hr": 158, "p": 1597, "spm": 22, "d": 106461, "t": 37795}, {"hr": 158, "p": 1604, "spm": 21, "d": 106552, "t": 37825}, {"hr": 158, "p": 1601, "spm": 21, "d": 106637, "t": 37850}, {"hr": 158, "p": 1595, "spm": 21, "d": 106730, "t": 37882}, {"hr": 158, "p": 1590, "spm": 21, "d": 106814, "t": 37907}, {"hr": 158, "p": 1576, "spm": 20, "d": 106911, "t": 37937}, {"hr": 158, "p": 1564, "spm": 21, "d": 107005, "t": 37965}, {"hr": 158, "p": 1556, "spm": 21, "d": 107097, "t": 37994}, {"hr": 158, "p": 1549, "spm": 21, "d": 107187, "t": 38022}, {"hr": 158, "p": 1546, "spm": 20, "d": 107284, "t": 38052}, {"hr": 158, "p": 1544, "spm": 21, "d": 107375, "t": 38080}, {"hr": 158, "p": 1536, "spm": 21, "d": 107466, "t": 38107}, {"hr": 158, "p": 1531, "spm": 21, "d": 107556, "t": 38135}, {"hr": 158, "p": 1531, "spm": 20, "d": 107655, "t": 38165}, {"hr": 158, "p": 1534, "spm": 20, "d": 107746, "t": 38194}, {"hr": 158, "p": 1547, "spm": 21, "d": 107843, "t": 38224}, {"hr": 158, "p": 1563, "spm": 21, "d": 107931, "t": 38252}, {"hr": 158, "p": 1577, "spm": 21, "d": 108020, "t": 38280}, {"hr": 158, "p": 1581, "spm": 21, "d": 108107, "t": 38307}, {"hr": 158, "p": 1573, "spm": 21, "d": 108186, "t": 38335}, {"hr": 158, "p": 1558, "spm": 21, "d": 108280, "t": 38365}, {"hr": 158, "p": 1543, "spm": 21, "d": 108371, "t": 38392}, {"hr": 158, "p": 1536, "spm": 21, "d": 108466, "t": 38420}, {"hr": 158, "p": 1550, "spm": 21, "d": 108558, "t": 38447}, {"hr": 158, "p": 1580, "spm": 21, "d": 108646, "t": 38475}, {"hr": 158, "p": 1623, "spm": 21, "d": 108732, "t": 38504}, {"hr": 158, "p": 1656, "spm": 21, "d": 108817, "t": 38532}, {"hr": 158, "p": 1644, "spm": 21, "d": 108900, "t": 38560}, {"hr": 158, "p": 1603, "spm": 20, "d": 108997, "t": 38590}, {"hr": 158, "p": 1561, "spm": 20, "d": 109096, "t": 38620}, {"hr": 158, "p": 1533, "spm": 21, "d": 109186, "t": 38647}, {"hr": 158, "p": 1527, "spm": 21, "d": 109284, "t": 38677}, {"hr": 158, "p": 1525, "spm": 20, "d": 109376, "t": 38705}, {"hr": 158, "p": 1453, "spm": 21, "d": 109476, "t": 38735}, {"hr": 158, "p": 1554, "spm": 20, "d": 109569, "t": 38764}, {"hr": 158, "p": 1913, "spm": 20, "d": 109660, "t": 38792}, {"hr": 158, "p": 2192, "spm": 20, "d": 109660, "t": 38792}, {"hr": 158, "p": 2265, "spm": 20, "d": 109660, "t": 38792}, {"hr": 158, "p": 2041, "spm": 11, "d": 109815, "t": 38845}, {"hr": 158, "p": 1649, "spm": 20, "d": 109905, "t": 38875}, {"hr": 158, "p": 1527, "spm": 21, "d": 110001, "t": 38905}, {"hr": 158, "p": 1574, "spm": 21, "d": 110092, "t": 38932}, {"hr": 158, "p": 1554, "spm": 21, "d": 110182, "t": 38960}, {"hr": 158, "p": 1554, "spm": 21, "d": 110274, "t": 38987}, {"hr": 158, "p": 1553, "spm": 21, "d": 110366, "t": 39015}, {"hr": 158, "p": 1545, "spm": 22, "d": 110455, "t": 39042}, {"hr": 158, "p": 1540, "spm": 21, "d": 110542, "t": 39070}, {"hr": 158, "p": 1535, "spm": 22, "d": 110631, "t": 39097}, {"hr": 158, "p": 1527, "spm": 21, "d": 110725, "t": 39125}, {"hr": 158, "p": 1515, "spm": 21, "d": 110817, "t": 39154}, {"hr": 158, "p": 1501, "spm": 23, "d": 110907, "t": 39180}, {"hr": 158, "p": 1503, "spm": 22, "d": 110988, "t": 39205}, {"hr": 158, "p": 1516, "spm": 23, "d": 111077, "t": 39232}, {"hr": 158, "p": 1528, "spm": 22, "d": 111168, "t": 39260}, {"hr": 158, "p": 1536, "spm": 21, "d": 111262, "t": 39287}, {"hr": 158, "p": 1536, "spm": 22, "d": 111349, "t": 39314}, {"hr": 158, "p": 1521, "spm": 22, "d": 111435, "t": 39340}, {"hr": 158, "p": 1509, "spm": 21, "d": 111534, "t": 39370}, {"hr": 158, "p": 1507, "spm": 22, "d": 111623, "t": 39395}, {"hr": 158, "p": 1506, "spm": 22, "d": 111714, "t": 39424}, {"hr": 158, "p": 1511, "spm": 21, "d": 111801, "t": 39450}, {"hr": 158, "p": 1516, "spm": 21, "d": 111895, "t": 39477}, {"hr": 158, "p": 1507, "spm": 21, "d": 111980, "t": 39505}, {"hr": 158, "p": 1499, "spm": 21, "d": 112077, "t": 39535}, {"hr": 158, "p": 1511, "spm": 21, "d": 112176, "t": 39565}, {"hr": 158, "p": 1534, "spm": 21, "d": 112265, "t": 39592}, {"hr": 158, "p": 1559, "spm": 21, "d": 112355, "t": 39620}, {"hr": 158, "p": 1574, "spm": 21, "d": 112444, "t": 39647}, {"hr": 158, "p": 1571, "spm": 21, "d": 112542, "t": 39677}, {"hr": 158, "p": 1487, "spm": 21, "d": 112628, "t": 39704}, {"hr": 158, "p": 1599, "spm": 21, "d": 112719, "t": 39732}, {"hr": 158, "p": 1746, "spm": 21, "d": 112816, "t": 39762}, {"hr": 158, "p": 2195, "spm": 21, "d": 112816, "t": 39830}, {"hr": 158, "p": 3257, "spm": 16, "d": 113062, "t": 39900}, {"hr": 158, "p": 3600, "spm": 25, "d": 113073, "t": 39925}, {"hr": 158, "p": 3600, "spm": 30, "d": 113078, "t": 39944}, {"hr": 158, "p": 3600, "spm": 35, "d": 113081, "t": 39957}, {"hr": 158, "p": 3600, "spm": 60, "d": 113085, "t": 39967}, {"hr": 158, "p": 3600, "spm": 25, "d": 113092, "t": 39995}, {"hr": 158, "p": 3600, "spm": 60, "d": 113093, "t": 40002}, {"hr": 158, "p": 3600, "spm": 22, "d": 113099, "t": 40037}, {"hr": 158, "p": 3600, "spm": 21, "d": 113101, "t": 40055}, {"hr": 158, "p": 3600, "spm": 21, "d": 113101, "t": 40062}, {"hr": 158, "p": 3600, "spm": 61, "d": 113103, "t": 40067}, {"hr": 158, "p": 3600, "spm": 33, "d": 113133, "t": 40084}, {"hr": 158, "p": 2690, "spm": 43, "d": 113184, "t": 40100}, {"hr": 158, "p": 1591, "spm": 43, "d": 113240, "t": 40114}, {"hr": 158, "p": 1243, "spm": 42, "d": 113304, "t": 40127}, {"hr": 158, "p": 1121, "spm": 41, "d": 113371, "t": 40142}, {"hr": 158, "p": 1076, "spm": 38, "d": 113444, "t": 40157}, {"hr": 158, "p": 1055, "spm": 37, "d": 113522, "t": 40174}, {"hr": 158, "p": 1048, "spm": 38, "d": 113600, "t": 40190}, {"hr": 158, "p": 1044, "spm": 37, "d": 113678, "t": 40205}, {"hr": 158, "p": 1045, "spm": 38, "d": 113746, "t": 40220}, {"hr": 158, "p": 1051, "spm": 38, "d": 113821, "t": 40235}, {"hr": 158, "p": 1056, "spm": 36, "d": 113907, "t": 40255}, {"hr": 158, "p": 1044, "spm": 35, "d": 113986, "t": 40270}, {"hr": 158, "p": 1039, "spm": 36, "d": 114055, "t": 40285}, {"hr": 158, "p": 1078, "spm": 29, "d": 114164, "t": 40310}, {"hr": 158, "p": 1172, "spm": 24, "d": 114247, "t": 40332}, {"hr": 158, "p": 1305, "spm": 23, "d": 114328, "t": 40355}, {"hr": 158, "p": 1444, "spm": 23, "d": 114413, "t": 40382}, {"hr": 158, "p": 1520, "spm": 22, "d": 114504, "t": 40410}, {"hr": 158, "p": 1538, "spm": 22, "d": 114585, "t": 40435}, {"hr": 158, "p": 1560, "spm": 22, "d": 114676, "t": 40465}, {"hr": 158, "p": 1598, "spm": 21, "d": 114762, "t": 40492}, {"hr": 158, "p": 1639, "spm": 21, "d": 114848, "t": 40520}, {"hr": 158, "p": 1671, "spm": 20, "d": 114940, "t": 40550}, {"hr": 158, "p": 1686, "spm": 20, "d": 115031, "t": 40580}, {"hr": 158, "p": 1674, "spm": 23, "d": 115113, "t": 40605}, {"hr": 158, "p": 1642, "spm": 21, "d": 115199, "t": 40634}, {"hr": 158, "p": 1614, "spm": 22, "d": 115282, "t": 40660}, {"hr": 158, "p": 1609, "spm": 21, "d": 115366, "t": 40687}, {"hr": 158, "p": 1623, "spm": 20, "d": 115455, "t": 40717}, {"hr": 158, "p": 1645, "spm": 21, "d": 115541, "t": 40745}, {"hr": 158, "p": 1670, "spm": 20, "d": 115630, "t": 40775}, {"hr": 158, "p": 1682, "spm": 20, "d": 115720, "t": 40805}, {"hr": 158, "p": 1672, "spm": 20, "d": 115808, "t": 40835}, {"hr": 158, "p": 1646, "spm": 20, "d": 115903, "t": 40865}, {"hr": 158, "p": 1612, "spm": 19, "d": 115999, "t": 40895}, {"hr": 158, "p": 1588, "spm": 20, "d": 116099, "t": 40927}, {"hr": 158, "p": 1588, "spm": 20, "d": 116185, "t": 40955}, {"hr": 158, "p": 1611, "spm": 19, "d": 116279, "t": 40985}, {"hr": 158, "p": 1632, "spm": 19, "d": 116376, "t": 41017}, {"hr": 158, "p": 1634, "spm": 20, "d": 116467, "t": 41047}, {"hr": 158, "p": 1610, "spm": 20, "d": 116561, "t": 41077}, {"hr": 158, "p": 1567, "spm": 19, "d": 116665, "t": 41110}, {"hr": 158, "p": 1525, "spm": 21, "d": 116760, "t": 41137}, {"hr": 158, "p": 1503, "spm": 19, "d": 116867, "t": 41170}, {"hr": 158, "p": 1511, "spm": 21, "d": 116959, "t": 41197}, {"hr": 158, "p": 1544, "spm": 20, "d": 117050, "t": 41225}, {"hr": 158, "p": 1574, "spm": 19, "d": 117147, "t": 41257}, {"hr": 158, "p": 1599, "spm": 20, "d": 117240, "t": 41287}, {"hr": 158, "p": 1636, "spm": 20, "d": 117328, "t": 41315}, {"hr": 158, "p": 1669, "spm": 20, "d": 117413, "t": 41345}, {"hr": 158, "p": 1697, "spm": 19, "d": 117505, "t": 41377}, {"hr": 158, "p": 1718, "spm": 19, "d": 117594, "t": 41407}, {"hr": 158, "p": 1703, "spm": 20, "d": 117683, "t": 41437}, {"hr": 158, "p": 1667, "spm": 20, "d": 117771, "t": 41465}, {"hr": 158, "p": 1634, "spm": 20, "d": 117864, "t": 41495}, {"hr": 158, "p": 1603, "spm": 20, "d": 117958, "t": 41525}, {"hr": 158, "p": 1580, "spm": 20, "d": 118058, "t": 41557}, {"hr": 158, "p": 1581, "spm": 20, "d": 118154, "t": 41587}, {"hr": 158, "p": 1600, "spm": 16, "d": 118266, "t": 41624}, {"hr": 158, "p": 1616, "spm": 14, "d": 118386, "t": 41665}, {"hr": 158, "p": 1616, "spm": 20, "d": 118479, "t": 41695}, {"hr": 158, "p": 1599, "spm": 20, "d": 118571, "t": 41725}, {"hr": 158, "p": 1571, "spm": 19, "d": 118672, "t": 41757}, {"hr": 158, "p": 1552, "spm": 19, "d": 118779, "t": 41790}, {"hr": 158, "p": 1541, "spm": 19, "d": 118881, "t": 41822}, {"hr": 158, "p": 1528, "spm": 20, "d": 118976, "t": 41850}, {"hr": 158, "p": 1506, "spm": 19, "d": 119081, "t": 41882}, {"hr": 158, "p": 1482, "spm": 20, "d": 119182, "t": 41912}, {"hr": 158, "p": 1466, "spm": 20, "d": 119286, "t": 41942}, {"hr": 158, "p": 1465, "spm": 20, "d": 119380, "t": 41970}, {"hr": 158, "p": 1477, "spm": 20, "d": 119486, "t": 42002}, {"hr": 158, "p": 1497, "spm": 19, "d": 119586, "t": 42032}, {"hr": 158, "p": 1517, "spm": 19, "d": 119691, "t": 42064}, {"hr": 158, "p": 1476, "spm": 19, "d": 119797, "t": 42095}, {"hr": 158, "p": 1596, "spm": 19, "d": 119891, "t": 42125}, {"hr": 158, "p": 1868, "spm": 18, "d": 119998, "t": 42160}, {"hr": 158, "p": 2400, "spm": 18, "d": 119998, "t": 42160}, {"hr": 158, "p": 2749, "spm": 18, "d": 119998, "t": 42160}, {"hr": 158, "p": 2888, "spm": 18, "d": 119998, "t": 42160}, {"hr": 158, "p": 2487, "spm": 19, "d": 120285, "t": 42282}, {"hr": 158, "p": 2251, "spm": 16, "d": 120364, "t": 42317}, {"hr": 158, "p": 2018, "spm": 16, "d": 120461, "t": 42357}, {"hr": 158, "p": 1873, "spm": 18, "d": 120557, "t": 42387}, {"hr": 158, "p": 1667, "spm": 18, "d": 120662, "t": 42420}, {"hr": 158, "p": 1602, "spm": 18, "d": 120763, "t": 42454}, {"hr": 158, "p": 1526, "spm": 19, "d": 120865, "t": 42485}, {"hr": 158, "p": 1635, "spm": 18, "d": 120965, "t": 42517}, {"hr": 158, "p": 1895, "spm": 17, "d": 121070, "t": 42552}, {"hr": 158, "p": 2321, "spm": 17, "d": 121070, "t": 42552}, {"hr": 158, "p": 3001, "spm": 17, "d": 121070, "t": 42552}, {"hr": 158, "p": 3114, "spm": 17, "d": 121070, "t": 42552}, {"hr": 158, "p": 2716, "spm": 17, "d": 121070, "t": 42552}, {"hr": 158, "p": 2508, "spm": 19, "d": 121375, "t": 42687}, {"hr": 158, "p": 2261, "spm": 18, "d": 121456, "t": 42722}, {"hr": 158, "p": 2038, "spm": 18, "d": 121547, "t": 42755}, {"hr": 158, "p": 1907, "spm": 18, "d": 121640, "t": 42787}, {"hr": 158, "p": 1717, "spm": 18, "d": 121742, "t": 42822}, {"hr": 158, "p": 1661, "spm": 18, "d": 121838, "t": 42854}, {"hr": 158, "p": 1641, "spm": 19, "d": 121937, "t": 42885}, {"hr": 158, "p": 1641, "spm": 19, "d": 122034, "t": 42917}, {"hr": 158, "p": 1638, "spm": 18, "d": 122132, "t": 42950}, {"hr": 158, "p": 1622, "spm": 18, "d": 122240, "t": 42985}, {"hr": 158, "p": 1593, "spm": 18, "d": 122338, "t": 43015}, {"hr": 158, "p": 1562, "spm": 19, "d": 122442, "t": 43047}, {"hr": 158, "p": 1547, "spm": 18, "d": 122548, "t": 43080}, {"hr": 158, "p": 1560, "spm": 18, "d": 122656, "t": 43114}, {"hr": 158, "p": 1588, "spm": 16, "d": 122768, "t": 43150}, {"hr": 158, "p": 1613, "spm": 18, "d": 122865, "t": 43182}, {"hr": 158, "p": 1638, "spm": 18, "d": 122969, "t": 43215}, {"hr": 158, "p": 1653, "spm": 17, "d": 123076, "t": 43252}, {"hr": 158, "p": 1653, "spm": 17, "d": 123175, "t": 43285}, {"hr": 158, "p": 1652, "spm": 18, "d": 123284, "t": 43320}, {"hr": 158, "p": 1649, "spm": 17, "d": 123381, "t": 43352}, {"hr": 158, "p": 1644, "spm": 17, "d": 123489, "t": 43387}, {"hr": 158, "p": 1660, "spm": 17, "d": 123591, "t": 43422}, {"hr": 158, "p": 1684, "spm": 17, "d": 123696, "t": 43457}, {"hr": 158, "p": 1699, "spm": 18, "d": 123790, "t": 43490}, {"hr": 158, "p": 1708, "spm": 18, "d": 123887, "t": 43522}, {"hr": 158, "p": 1704, "spm": 19, "d": 123977, "t": 43552}, {"hr": 158, "p": 1680, "spm": 18, "d": 124073, "t": 43585}, {"hr": 158, "p": 1651, "spm": 18, "d": 124171, "t": 43617}, {"hr": 158, "p": 1625, "spm": 19, "d": 124268, "t": 43649}, {"hr": 158, "p": 1607, "spm": 18, "d": 124374, "t": 43682}, {"hr": 158, "p": 1604, "spm": 19, "d": 124468, "t": 43712}, {"hr": 158, "p": 1604, "spm": 19, "d": 124565, "t": 43744}, {"hr": 158, "p": 1599, "spm": 19, "d": 124665, "t": 43775}, {"hr": 158, "p": 1590, "spm": 18, "d": 124771, "t": 43810}, {"hr": 158, "p": 1577, "spm": 19, "d": 124866, "t": 43840}, {"hr": 158, "p": 1586, "spm": 19, "d": 124965, "t": 43872}, {"hr": 158, "p": 1631, "spm": 18, "d": 125070, "t": 43905}, {"hr": 158, "p": 1716, "spm": 35, "d": 125180, "t": 43945}, {"hr": 158, "p": 1803, "spm": 12, "d": 125236, "t": 43967}, {"hr": 158, "p": 1821, "spm": 17, "d": 125333, "t": 44005}, {"hr": 158, "p": 1761, "spm": 18, "d": 125433, "t": 44037}, {"hr": 158, "p": 1677, "spm": 19, "d": 125536, "t": 44070}, {"hr": 158, "p": 1613, "spm": 19, "d": 125635, "t": 44102}, {"hr": 158, "p": 1591, "spm": 19, "d": 125727, "t": 44132}, {"hr": 158, "p": 1589, "spm": 19, "d": 125826, "t": 44164}, {"hr": 158, "p": 1583, "spm": 19, "d": 125923, "t": 44194}, {"hr": 158, "p": 1571, "spm": 20, "d": 126026, "t": 44225}, {"hr": 158, "p": 1550, "spm": 20, "d": 126115, "t": 44254}, {"hr": 158, "p": 1531, "spm": 20, "d": 126219, "t": 44285}, {"hr": 158, "p": 1526, "spm": 19, "d": 126325, "t": 44317}, {"hr": 158, "p": 1530, "spm": 20, "d": 126415, "t": 44345}, {"hr": 158, "p": 1536, "spm": 20, "d": 126511, "t": 44375}, {"hr": 158, "p": 1536, "spm": 20, "d": 126610, "t": 44405}, {"hr": 158, "p": 1527, "spm": 20, "d": 126712, "t": 44435}, {"hr": 158, "p": 1521, "spm": 20, "d": 126810, "t": 44465}, {"hr": 158, "p": 1531, "spm": 19, "d": 126909, "t": 44495}, {"hr": 158, "p": 1546, "spm": 19, "d": 127012, "t": 44527}, {"hr": 158, "p": 1557, "spm": 19, "d": 127115, "t": 44560}, {"hr": 158, "p": 1560, "spm": 20, "d": 127211, "t": 44590}, {"hr": 158, "p": 1563, "spm": 19, "d": 127308, "t": 44620}, {"hr": 158, "p": 1565, "spm": 20, "d": 127405, "t": 44650}, {"hr": 158, "p": 1562, "spm": 20, "d": 127500, "t": 44680}, {"hr": 158, "p": 1561, "spm": 19, "d": 127602, "t": 44712}, {"hr": 158, "p": 1565, "spm": 19, "d": 127700, "t": 44742}, {"hr": 158, "p": 1567, "spm": 19, "d": 127796, "t": 44772}, {"hr": 158, "p": 1563, "spm": 20, "d": 127890, "t": 44802}, {"hr": 158, "p": 1554, "spm": 19, "d": 127994, "t": 44834}, {"hr": 158, "p": 1542, "spm": 19, "d": 128095, "t": 44864}, {"hr": 158, "p": 1537, "spm": 19, "d": 128192, "t": 44894}, {"hr": 158, "p": 1542, "spm": 19, "d": 128295, "t": 44925}, {"hr": 158, "p": 1549, "spm": 20, "d": 128392, "t": 44955}, {"hr": 158, "p": 1545, "spm": 20, "d": 128491, "t": 44985}, {"hr": 158, "p": 1540, "spm": 19, "d": 128595, "t": 45017}, {"hr": 158, "p": 1542, "spm": 19, "d": 128700, "t": 45050}, {"hr": 158, "p": 1548, "spm": 19, "d": 128805, "t": 45082}, {"hr": 158, "p": 1558, "spm": 18, "d": 128911, "t": 45115}, {"hr": 158, "p": 1564, "spm": 19, "d": 129007, "t": 45147}, {"hr": 158, "p": 1566, "spm": 19, "d": 129103, "t": 45175}, {"hr": 158, "p": 1572, "spm": 19, "d": 129208, "t": 45209}, {"hr": 158, "p": 1579, "spm": 19, "d": 129301, "t": 45239}, {"hr": 158, "p": 1589, "spm": 19, "d": 129405, "t": 45272}, {"hr": 158, "p": 1601, "spm": 18, "d": 129504, "t": 45304}, {"hr": 158, "p": 1606, "spm": 18, "d": 129604, "t": 45335}, {"hr": 158, "p": 1601, "spm": 19, "d": 129705, "t": 45367}, {"hr": 158, "p": 1586, "spm": 19, "d": 129806, "t": 45400}, {"hr": 158, "p": 1568, "spm": 18, "d": 129909, "t": 45432}, {"hr": 158, "p": 1556, "spm": 19, "d": 130012, "t": 45464}, {"hr": 158, "p": 1556, "spm": 19, "d": 130113, "t": 45495}, {"hr": 158, "p": 1565, "spm": 19, "d": 130217, "t": 45527}, {"hr": 158, "p": 1570, "spm": 19, "d": 130312, "t": 45557}, {"hr": 158, "p": 1565, "spm": 19, "d": 130415, "t": 45590}, {"hr": 158, "p": 1558, "spm": 18, "d": 130521, "t": 45622}, {"hr": 158, "p": 1544, "spm": 19, "d": 130627, "t": 45657}, {"hr": 158, "p": 1535, "spm": 19, "d": 130725, "t": 45687}, {"hr": 158, "p": 1530, "spm": 19, "d": 130823, "t": 45717}, {"hr": 158, "p": 1517, "spm": 18, "d": 130923, "t": 45747}, {"hr": 158, "p": 1501, "spm": 18, "d": 131039, "t": 45780}, {"hr": 158, "p": 1495, "spm": 18, "d": 131146, "t": 45812}, {"hr": 158, "p": 1499, "spm": 19, "d": 131252, "t": 45844}, {"hr": 158, "p": 1517, "spm": 19, "d": 131350, "t": 45874}, {"hr": 158, "p": 1541, "spm": 19, "d": 131446, "t": 45904}, {"hr": 158, "p": 1550, "spm": 19, "d": 131548, "t": 45935}, {"hr": 158, "p": 1554, "spm": 19, "d": 131652, "t": 45967}, {"hr": 158, "p": 1487, "spm": 20, "d": 131748, "t": 45997}, {"hr": 158, "p": 1591, "spm": 19, "d": 131844, "t": 46027}, {"hr": 158, "p": 1853, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 2296, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 2871, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 3460, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 2851, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 2705, "spm": 19, "d": 131947, "t": 46060}, {"hr": 158, "p": 2497, "spm": 12, "d": 132305, "t": 46222}, {"hr": 158, "p": 2208, "spm": 16, "d": 132386, "t": 46257}, {"hr": 158, "p": 1951, "spm": 18, "d": 132480, "t": 46290}, {"hr": 158, "p": 1799, "spm": 17, "d": 132585, "t": 46324}, {"hr": 158, "p": 1608, "spm": 19, "d": 132686, "t": 46355}, {"hr": 158, "p": 1575, "spm": 18, "d": 132789, "t": 46387}, {"hr": 158, "p": 1581, "spm": 19, "d": 132889, "t": 46420}, {"hr": 158, "p": 1587, "spm": 20, "d": 132982, "t": 46450}, {"hr": 158, "p": 1587, "spm": 19, "d": 133085, "t": 46482}, {"hr": 158, "p": 1582, "spm": 19, "d": 133186, "t": 46514}, {"hr": 158, "p": 1575, "spm": 19, "d": 133282, "t": 46544}, {"hr": 158, "p": 1589, "spm": 19, "d": 133382, "t": 46575}, {"hr": 158, "p": 1571, "spm": 19, "d": 133479, "t": 46607}, {"hr": 158, "p": 1776, "spm": 18, "d": 133571, "t": 46640}, {"hr": 158, "p": 1938, "spm": 18, "d": 133668, "t": 46677}, {"hr": 158, "p": 2067, "spm": 18, "d": 133668, "t": 46713}, {"hr": 158, "p": 2130, "spm": 8, "d": 133867, "t": 46750}, {"hr": 158, "p": 2068, "spm": 17, "d": 133943, "t": 46782}, {"hr": 158, "p": 1910, "spm": 17, "d": 134035, "t": 46817}, {"hr": 158, "p": 2011, "spm": 18, "d": 134124, "t": 46852}, {"hr": 158, "p": 1960, "spm": 16, "d": 134213, "t": 46889}, {"hr": 158, "p": 1924, "spm": 17, "d": 134315, "t": 46925}, {"hr": 158, "p": 1913, "spm": 17, "d": 134404, "t": 46960}, {"hr": 158, "p": 1898, "spm": 16, "d": 134506, "t": 46997}, {"hr": 158, "p": 1891, "spm": 18, "d": 134593, "t": 47030}, {"hr": 158, "p": 1869, "spm": 16, "d": 134693, "t": 47067}, {"hr": 158, "p": 1818, "spm": 17, "d": 134793, "t": 47102}, {"hr": 158, "p": 1763, "spm": 17, "d": 134898, "t": 47137}, {"hr": 158, "p": 1728, "spm": 16, "d": 135003, "t": 47174}, {"hr": 158, "p": 1736, "spm": 18, "d": 135100, "t": 47207}, {"hr": 158, "p": 1689, "spm": 17, "d": 135200, "t": 47247}, {"hr": 158, "p": 1809, "spm": 18, "d": 135285, "t": 47277}, {"hr": 158, "p": 2063, "spm": 19, "d": 135379, "t": 47307}, {"hr": 158, "p": 2441, "spm": 19, "d": 135379, "t": 47307}, {"hr": 158, "p": 3028, "spm": 19, "d": 135379, "t": 47307}, {"hr": 158, "p": 3092, "spm": 19, "d": 135379, "t": 47307}, {"hr": 158, "p": 2627, "spm": 19, "d": 135379, "t": 47307}, {"hr": 158, "p": 2241, "spm": 30, "d": 135649, "t": 47422}, {"hr": 158, "p": 2221, "spm": 37, "d": 135676, "t": 47434}, {"hr": 158, "p": 2209, "spm": 16, "d": 135777, "t": 47472}, {"hr": 158, "p": 2239, "spm": 16, "d": 135777, "t": 47494}, {"hr": 158, "p": 1918, "spm": 14, "d": 135891, "t": 47517}, {"hr": 158, "p": 1971, "spm": 18, "d": 135995, "t": 47549}, {"hr": 158, "p": 1857, "spm": 18, "d": 136098, "t": 47582}, {"hr": 158, "p": 1904, "spm": 18, "d": 136098, "t": 47600}, {"hr": 158, "p": 1852, "spm": 15, "d": 136214, "t": 47620}, {"hr": 158, "p": 1747, "spm": 18, "d": 136325, "t": 47655}, {"hr": 158, "p": 1580, "spm": 18, "d": 136416, "t": 47687}, {"hr": 158, "p": 1674, "spm": 16, "d": 136528, "t": 47727}, {"hr": 158, "p": 1690, "spm": 17, "d": 136626, "t": 47759}, {"hr": 158, "p": 1708, "spm": 17, "d": 136725, "t": 47792}, {"hr": 158, "p": 1723, "spm": 19, "d": 136818, "t": 47824}, {"hr": 158, "p": 1737, "spm": 16, "d": 136916, "t": 47860}, {"hr": 158, "p": 1699, "spm": 18, "d": 137013, "t": 47894}, {"hr": 158, "p": 1887, "spm": 18, "d": 137101, "t": 47925}, {"hr": 158, "p": 2022, "spm": 18, "d": 137197, "t": 47960}, {"hr": 158, "p": 2108, "spm": 18, "d": 137197, "t": 47987}, {"hr": 158, "p": 2109, "spm": 11, "d": 137338, "t": 48015}, {"hr": 158, "p": 2005, "spm": 17, "d": 137431, "t": 48050}, {"hr": 158, "p": 1823, "spm": 17, "d": 137518, "t": 48082}, {"hr": 158, "p": 1857, "spm": 17, "d": 137612, "t": 48117}, {"hr": 158, "p": 1800, "spm": 18, "d": 137707, "t": 48150}, {"hr": 158, "p": 1771, "spm": 18, "d": 137805, "t": 48184}, {"hr": 158, "p": 1779, "spm": 18, "d": 137894, "t": 48215}, {"hr": 158, "p": 1750, "spm": 17, "d": 137988, "t": 48250}, {"hr": 158, "p": 1887, "spm": 18, "d": 138075, "t": 48282}, {"hr": 158, "p": 2156, "spm": 18, "d": 138160, "t": 48314}, {"hr": 158, "p": 2480, "spm": 18, "d": 138160, "t": 48314}, {"hr": 158, "p": 2740, "spm": 18, "d": 138160, "t": 48314}, {"hr": 158, "p": 3158, "spm": 21, "d": 138383, "t": 48440}, {"hr": 158, "p": 3452, "spm": 21, "d": 138383, "t": 48452}, {"hr": 158, "p": 3600, "spm": 33, "d": 138405, "t": 48464}, {"hr": 158, "p": 3600, "spm": 35, "d": 138418, "t": 48479}, {"hr": 158, "p": 3600, "spm": 35, "d": 138431, "t": 48492}, {"hr": 158, "p": 3600, "spm": 36, "d": 138445, "t": 48507}, {"hr": 158, "p": 3600, "spm": 32, "d": 138465, "t": 48525}, {"hr": 158, "p": 3600, "spm": 16, "d": 138519, "t": 48569}, {"hr": 158, "p": 3600, "spm": 40, "d": 138537, "t": 48582}, {"hr": 158, "p": 3597, "spm": 27, "d": 138557, "t": 48600}, {"hr": 158, "p": 3600, "spm": 27, "d": 138557, "t": 48625}, {"hr": 158, "p": 3600, "spm": 37, "d": 138612, "t": 48650}, {"hr": 158, "p": 3600, "spm": 11, "d": 138624, "t": 48670}, {"hr": 158, "p": 3600, "spm": 18, "d": 138665, "t": 48704}, {"hr": 158, "p": 3575, "spm": 19, "d": 138720, "t": 48735}, {"hr": 158, "p": 3021, "spm": 19, "d": 138720, "t": 48752}, {"hr": 158, "p": 2802, "spm": 33, "d": 138783, "t": 48767}, {"hr": 158, "p": 3021, "spm": 33, "d": 138783, "t": 48767}]}
\ No newline at end of file
diff --git a/rowers/testdata/c2jsonworkoutdata.txt b/rowers/testdata/c2jsonworkoutdata.txt
new file mode 100644
index 00000000..199e25a2
--- /dev/null
+++ b/rowers/testdata/c2jsonworkoutdata.txt
@@ -0,0 +1 @@
+{"data": {"distance": 13878, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "\n from speedcoach2v2.15 via rowsandall.com", "heart_rate": {"max": 158, "average": 156}, "source": "rowingdata", "date_utc": "2018-06-30 05:31:01", "time_formatted": "1:21:16.7", "time": 48767, "date": "2018-06-30 07:31:01", "timezone": "Europe/Prague", "type": "water", "id": 33991243, "stroke_data": true}}
\ No newline at end of file
diff --git a/rowers/testdata/c2strokedata.csv b/rowers/testdata/c2strokedata.csv
new file mode 100644
index 00000000..02e6ce5d
--- /dev/null
+++ b/rowers/testdata/c2strokedata.csv
@@ -0,0 +1,1720 @@
+,d,hr,p,spm,t
+0,6,110,3600,53,12
+1,6,111,3600,53,12
+2,6,111,3600,64,22
+3,14,110,3600,16,55
+4,14,110,3600,16,82
+5,22,107,3600,12,109
+6,22,107,3600,12,133
+7,32,108,3600,12,157
+8,32,108,3577,12,157
+9,32,108,3411,12,157
+10,32,108,2649,12,157
+11,32,108,3099,12,157
+12,32,108,3600,12,157
+13,115,100,3600,44,292
+14,129,99,3600,27,305
+15,161,97,3600,34,330
+16,177,96,3600,25,344
+17,196,96,3494,43,357
+18,235,98,2927,26,377
+19,380,102,2718,27,455
+20,398,102,2753,9,472
+21,406,102,2864,61,477
+22,484,101,2780,15,515
+23,583,101,2365,16,554
+24,681,103,1965,16,592
+25,777,104,1771,18,624
+26,885,106,1712,16,660
+27,980,107,1675,19,692
+28,1072,107,1640,19,722
+29,1173,109,1605,18,755
+30,1277,112,1564,19,787
+31,1380,115,1550,18,819
+32,1487,117,1576,18,852
+33,1590,118,1616,17,889
+34,1692,120,1644,18,922
+35,1785,124,1645,18,952
+36,1887,126,1576,18,985
+37,1994,125,1745,18,1020
+38,2087,125,1904,17,1052
+39,2087,125,1946,17,1070
+40,2188,125,2170,17,1089
+41,2278,127,2202,17,1122
+42,2278,127,2057,17,1145
+43,2396,132,2187,13,1167
+44,2480,135,2082,17,1202
+45,2572,137,1829,17,1237
+46,2665,141,2039,18,1272
+47,2757,142,2118,16,1305
+48,2757,142,2187,16,1327
+49,2860,142,2189,14,1349
+50,2939,143,2311,17,1382
+51,3015,143,2261,18,1417
+52,3015,143,2425,18,1435
+53,3104,142,2367,16,1455
+54,3187,143,2224,17,1489
+55,3283,142,2048,15,1529
+56,3367,142,2076,17,1562
+57,3449,142,2092,17,1599
+58,3528,142,2124,17,1632
+59,3618,144,2150,15,1672
+60,3704,147,2154,17,1709
+61,3789,148,2138,16,1745
+62,3867,149,2135,17,1779
+63,3959,147,2139,15,1819
+64,4044,146,2144,16,1855
+65,4131,145,2085,16,1890
+66,4219,145,2234,16,1930
+67,4300,145,2327,17,1962
+68,4300,145,2372,17,1982
+69,4391,145,2318,15,2002
+70,4473,145,2159,18,2037
+71,4556,145,1956,18,2069
+72,4646,144,1949,18,2102
+73,4730,144,1886,18,2135
+74,4822,145,1832,18,2169
+75,4912,146,1810,18,2200
+76,5011,147,1828,17,2237
+77,5099,148,1875,16,2272
+78,5184,148,1920,17,2305
+79,5273,147,1916,17,2339
+80,5364,147,1864,19,2370
+81,5462,148,1808,16,2407
+82,5558,148,1787,18,2440
+83,5653,148,1807,17,2475
+84,5740,149,1874,18,2507
+85,5840,149,1960,14,2549
+86,5917,149,2017,18,2580
+87,6004,149,2008,18,2615
+88,6090,149,1932,18,2647
+89,6178,150,1833,18,2679
+90,6272,151,1763,19,2710
+91,6365,151,1725,18,2742
+92,6454,152,1714,19,2772
+93,6551,152,1733,18,2807
+94,6643,152,1757,18,2839
+95,6737,153,1757,19,2872
+96,6828,153,1722,19,2902
+97,6921,155,1667,19,2932
+98,7020,156,1626,19,2965
+99,7111,157,1617,20,2994
+100,7210,158,1635,19,3027
+101,7299,158,1657,20,3057
+102,7393,158,1672,19,3089
+103,7483,158,1686,19,3119
+104,7580,158,1695,18,3152
+105,7668,158,1700,20,3182
+106,7764,158,1705,19,3215
+107,7858,158,1711,18,3247
+108,7954,158,1733,18,3280
+109,8043,158,1775,18,3312
+110,8132,158,1807,18,3345
+111,8229,158,1796,18,3379
+112,8320,158,1751,19,3409
+113,8418,158,1703,19,3442
+114,8509,158,1666,19,3472
+115,8600,158,1643,19,3502
+116,8697,158,1637,19,3534
+117,8794,158,1631,19,3565
+118,8884,158,1625,20,3595
+119,8976,158,1626,20,3625
+120,9066,158,1628,20,3655
+121,9153,158,1636,20,3685
+122,9249,158,1660,19,3717
+123,9336,158,1692,20,3747
+124,9427,158,1710,19,3779
+125,9521,158,1711,19,3810
+126,9612,158,1691,19,3840
+127,9702,158,1661,19,3870
+128,9802,158,1641,19,3902
+129,9894,158,1638,19,3932
+130,9989,158,1638,19,3965
+131,10080,158,1645,20,3995
+132,10177,158,1660,19,4027
+133,10265,158,1669,20,4057
+134,10355,158,1678,20,4087
+135,10443,158,1689,20,4117
+136,10532,158,1700,20,4147
+137,10619,158,1720,20,4177
+138,10707,158,1755,19,4209
+139,10792,158,1804,19,4240
+140,10878,158,1859,19,4272
+141,10962,158,1891,18,4305
+142,11048,158,1877,19,4337
+143,11135,158,1859,19,4367
+144,11223,158,1880,19,4399
+145,11301,158,1983,17,4432
+146,11376,158,2182,18,4467
+147,11447,158,2350,16,4505
+148,11524,158,2353,17,4540
+149,11607,158,2252,17,4575
+150,11688,158,2127,18,4607
+151,11768,158,2038,19,4639
+152,11852,158,2017,18,4672
+153,11932,158,2038,18,4704
+154,12015,158,2075,17,4739
+155,12095,158,2100,16,4775
+156,12175,158,2103,18,4807
+157,12257,158,2092,19,4840
+158,12333,158,2083,17,4872
+159,12419,158,2087,17,4909
+160,12498,158,2091,18,4942
+161,12583,158,2061,17,4975
+162,12670,158,2022,17,5010
+163,12757,158,2035,17,5047
+164,12834,158,2091,17,5079
+165,12909,158,2116,18,5112
+166,13002,158,2073,17,5149
+167,13091,158,1974,17,5184
+168,13187,158,1863,17,5217
+169,13281,158,1805,17,5250
+170,13380,158,1804,16,5287
+171,13472,158,1830,17,5320
+172,13568,158,1849,17,5357
+173,13660,158,1835,19,5389
+174,13753,158,1786,18,5424
+175,13844,158,1718,19,5454
+176,13938,158,1653,19,5484
+177,14033,158,1606,19,5512
+178,14128,158,1586,20,5542
+179,14226,158,1595,19,5575
+180,14321,158,1633,19,5605
+181,14414,158,1693,18,5639
+182,14502,158,1770,19,5670
+183,14585,158,1847,18,5702
+184,14667,158,1888,18,5735
+185,14753,158,1887,19,5767
+186,14843,158,1865,19,5799
+187,14929,158,1830,19,5830
+188,15020,158,1797,18,5862
+189,15109,158,1771,19,5892
+190,15198,158,1738,20,5922
+191,15287,158,1699,20,5952
+192,15380,158,1659,20,5982
+193,15475,158,1618,20,6012
+194,15573,158,1582,20,6042
+195,15669,158,1560,20,6072
+196,15765,158,1557,20,6102
+197,15860,158,1566,20,6132
+198,15957,158,1572,20,6162
+199,16054,158,1563,20,6192
+200,16147,158,1543,21,6220
+201,16248,158,1516,20,6250
+202,16349,158,1495,20,6280
+203,16445,158,1494,20,6309
+204,16549,158,1511,19,6340
+205,16645,158,1532,19,6370
+206,16742,158,1545,20,6400
+207,16845,158,1546,20,6432
+208,16939,158,1532,20,6460
+209,17039,158,1517,20,6490
+210,17140,158,1499,20,6520
+211,17236,158,1473,21,6549
+212,17340,158,1453,20,6579
+213,17440,158,1448,20,6607
+214,17540,158,1454,20,6637
+215,17641,158,1468,20,6667
+216,17738,158,1482,20,6695
+217,17837,158,1483,21,6725
+218,17932,158,1473,21,6752
+219,18028,158,1469,21,6780
+220,18128,158,1473,20,6810
+221,18228,158,1482,20,6840
+222,18324,158,1487,20,6869
+223,18427,158,1481,20,6899
+224,18531,158,1468,20,6929
+225,18626,158,1454,21,6957
+226,18726,158,1444,20,6987
+227,18831,158,1441,20,7017
+228,18929,158,1442,20,7045
+229,19029,158,1459,20,7075
+230,19116,158,1494,21,7102
+231,19206,158,1527,21,7132
+232,19300,158,1552,21,7162
+233,19390,158,1571,21,7189
+234,19485,158,1583,20,7219
+235,19574,158,1600,21,7247
+236,19667,158,1618,21,7277
+237,19755,158,1610,21,7305
+238,19847,158,1573,21,7332
+239,19941,158,1517,21,7360
+240,20032,158,1465,22,7387
+241,20130,158,1434,22,7415
+242,20219,158,1432,22,7440
+243,20307,158,1453,23,7467
+244,20389,158,1475,22,7492
+245,20485,158,1485,22,7524
+246,20581,158,1480,21,7549
+247,20672,158,1455,22,7575
+248,20773,158,1423,22,7602
+249,20866,158,1399,22,7629
+250,20960,158,1388,22,7655
+251,21051,158,1397,22,7680
+252,21147,158,1416,22,7709
+253,21230,158,1430,22,7735
+254,21325,158,1451,22,7764
+255,21416,158,1485,21,7789
+256,21505,158,1525,21,7817
+257,21596,158,1568,21,7845
+258,21683,158,1614,22,7872
+259,21762,158,1643,23,7899
+260,21838,158,1651,22,7925
+261,21925,158,1643,21,7952
+262,22005,158,1620,22,7979
+263,22091,158,1598,22,8007
+264,22172,158,1608,21,8035
+265,22254,158,1638,21,8064
+266,22339,158,1650,21,8094
+267,22426,158,1646,21,8119
+268,22515,158,1623,21,8147
+269,22606,158,1582,21,8175
+270,22699,158,1550,21,8202
+271,22790,158,1532,22,8230
+272,22875,158,1520,21,8257
+273,22968,158,1528,21,8285
+274,23062,158,1552,21,8315
+275,23144,158,1576,21,8340
+276,23235,158,1603,21,8370
+277,23322,158,1628,21,8399
+278,23407,158,1624,21,8427
+279,23490,158,1597,21,8455
+280,23579,158,1565,21,8484
+281,23674,158,1546,21,8514
+282,23761,158,1562,21,8539
+283,23848,158,1613,21,8567
+284,23934,158,1662,21,8595
+285,24024,158,1671,20,8625
+286,24116,158,1641,20,8652
+287,24213,158,1597,20,8682
+288,24303,158,1566,21,8710
+289,24386,158,1556,22,8737
+290,24468,158,1560,23,8762
+291,24556,158,1575,21,8790
+292,24643,158,1604,23,8819
+293,24720,158,1639,21,8845
+294,24801,158,1654,22,8874
+295,24890,158,1638,21,8904
+296,24981,158,1605,21,8929
+297,25073,158,1575,21,8957
+298,25166,158,1560,21,8985
+299,25264,158,1553,21,9015
+300,25352,158,1540,21,9040
+301,25444,158,1526,21,9069
+302,25535,158,1521,21,9097
+303,25626,158,1534,22,9125
+304,25708,158,1556,22,9150
+305,25795,158,1570,22,9179
+306,25873,158,1569,22,9205
+307,25960,158,1564,21,9234
+308,26052,158,1568,21,9264
+309,26140,158,1593,21,9289
+310,26227,158,1630,21,9317
+311,26309,158,1669,21,9345
+312,26392,158,1703,21,9372
+313,26473,158,1730,21,9400
+314,26556,158,1752,20,9430
+315,26644,158,1752,20,9460
+316,26724,158,1714,21,9489
+317,26813,158,1661,21,9517
+318,26899,158,1623,21,9545
+319,26984,158,1611,21,9572
+320,27068,158,1614,21,9600
+321,27154,158,1623,22,9629
+322,27234,158,1626,20,9655
+323,27325,158,1613,20,9685
+324,27412,158,1591,20,9715
+325,27503,158,1572,20,9744
+326,27595,158,1574,20,9774
+327,27681,158,1608,20,9804
+328,27766,158,1655,20,9834
+329,27853,158,1703,21,9864
+330,27936,158,1745,21,9889
+331,28019,158,1782,20,9917
+332,28105,158,1830,20,9947
+333,28191,158,1859,21,9975
+334,28275,158,1821,21,10002
+335,28364,158,1678,21,10030
+336,28459,158,1740,20,10060
+337,28546,158,1893,21,10089
+338,28546,158,2431,21,10147
+339,28740,158,3167,30,10207
+340,28803,158,3335,19,10240
+341,28878,158,2583,20,10270
+342,28962,158,2115,20,10300
+343,29045,158,1745,20,10329
+344,29136,158,1682,20,10359
+345,29222,158,1693,20,10389
+346,29304,158,1727,20,10419
+347,29393,158,1754,19,10450
+348,29479,158,1747,19,10480
+349,29566,158,1723,19,10510
+350,29659,158,1738,20,10542
+351,29734,158,1783,20,10570
+352,29814,158,1801,20,10600
+353,29897,158,1789,20,10629
+354,29988,158,1778,20,10660
+355,30063,158,1793,20,10689
+356,30143,158,1864,19,10720
+357,30220,158,1966,19,10750
+358,30298,158,2054,20,10782
+359,30368,158,2127,19,10812
+360,30437,158,2173,20,10842
+361,30511,158,2148,20,10872
+362,30588,158,2060,20,10902
+363,30668,158,1950,19,10932
+364,30751,158,1861,19,10964
+365,30838,158,1833,19,10995
+366,30914,158,1867,20,11024
+367,30989,158,1914,20,11052
+368,31067,158,1939,20,11082
+369,31154,158,1933,20,11115
+370,31237,158,1895,20,11145
+371,31318,158,1860,20,11175
+372,31401,158,1855,20,11205
+373,31484,158,1851,20,11235
+374,31571,158,1831,20,11265
+375,31652,158,1796,20,11292
+376,31742,158,1762,21,11322
+377,31830,158,1728,20,11352
+378,31919,158,1691,20,11382
+379,32008,158,1660,21,11410
+380,32102,158,1622,20,11440
+381,32193,158,1582,21,11469
+382,32287,158,1556,20,11497
+383,32384,158,1538,21,11527
+384,32478,158,1529,21,11555
+385,32568,158,1535,21,11582
+386,32658,158,1554,20,11612
+387,32751,158,1584,20,11640
+388,32841,158,1615,21,11670
+389,32930,158,1638,21,11699
+390,33015,158,1665,20,11727
+391,33099,158,1695,21,11755
+392,33182,158,1704,20,11785
+393,33269,158,1690,21,11815
+394,33357,158,1667,21,11844
+395,33443,158,1650,20,11874
+396,33534,158,1638,21,11904
+397,33617,158,1624,22,11927
+398,33709,158,1599,22,11955
+399,33793,158,1560,22,11980
+400,33869,158,1503,26,12004
+401,33945,158,1443,27,12025
+402,34032,158,1387,28,12047
+403,34115,158,1345,27,12070
+404,34198,158,1318,27,12090
+405,34278,158,1307,27,12114
+406,34368,158,1304,27,12135
+407,34451,158,1302,28,12157
+408,34528,158,1308,27,12177
+409,34612,158,1312,29,12200
+410,34690,158,1300,29,12219
+411,34770,158,1289,28,12239
+412,34856,158,1294,29,12264
+413,34930,158,1310,28,12280
+414,35012,158,1327,28,12302
+415,35082,158,1339,28,12324
+416,35168,158,1341,27,12345
+417,35251,158,1330,28,12367
+418,35333,158,1332,29,12389
+419,35408,158,1359,27,12409
+420,35486,158,1392,28,12430
+421,35564,158,1416,27,12452
+422,35636,158,1435,27,12475
+423,35718,158,1429,27,12497
+424,35798,158,1406,26,12519
+425,35879,158,1384,27,12540
+426,35957,158,1371,27,12564
+427,36045,158,1367,27,12587
+428,36126,158,1370,27,12609
+429,36207,158,1367,26,12630
+430,36284,158,1351,28,12654
+431,36364,158,1335,27,12672
+432,36445,158,1325,28,12695
+433,36527,158,1326,27,12717
+434,36610,158,1323,28,12739
+435,36688,158,1311,28,12759
+436,36773,158,1291,28,12782
+437,36851,158,1274,28,12804
+438,36936,158,1266,28,12822
+439,37019,158,1260,29,12845
+440,37091,158,1259,28,12865
+441,37184,158,1273,28,12887
+442,37260,158,1285,29,12907
+443,37343,158,1297,28,12929
+444,37421,158,1312,27,12949
+445,37506,158,1311,27,12972
+446,37591,158,1299,28,12992
+447,37669,158,1299,27,13015
+448,37757,158,1308,27,13037
+449,37841,158,1319,28,13060
+450,37924,158,1325,27,13080
+451,37999,158,1321,28,13104
+452,38084,158,1304,28,13122
+453,38162,158,1286,28,13144
+454,38242,158,1282,28,13165
+455,38331,158,1284,28,13187
+456,38410,158,1283,29,13207
+457,38488,158,1289,28,13227
+458,38570,158,1300,29,13250
+459,38648,158,1300,28,13269
+460,38734,158,1292,28,13292
+461,38812,158,1280,28,13314
+462,38899,158,1270,28,13334
+463,38976,158,1265,29,13352
+464,39055,158,1269,28,13375
+465,39144,158,1279,28,13397
+466,39225,158,1275,27,13417
+467,39312,158,1267,29,13440
+468,39390,158,1275,28,13460
+469,39468,158,1288,29,13480
+470,39550,158,1307,28,13502
+471,39624,158,1329,28,13524
+472,39712,158,1334,27,13545
+473,39789,158,1323,28,13565
+474,39873,158,1316,28,13587
+475,39958,158,1316,28,13610
+476,40036,158,1311,29,13630
+477,40115,158,1301,28,13650
+478,40200,158,1294,28,13674
+479,40278,158,1289,28,13692
+480,40363,158,1284,29,13714
+481,40435,158,1281,28,13734
+482,40524,158,1281,29,13755
+483,40603,158,1274,28,13775
+484,40683,158,1270,28,13795
+485,40769,158,1278,29,13817
+486,40845,158,1283,28,13837
+487,40929,158,1293,29,13860
+488,41004,158,1317,28,13880
+489,41088,158,1337,28,13902
+490,41161,158,1342,28,13922
+491,41237,158,1336,28,13944
+492,41326,158,1331,28,13965
+493,41409,158,1329,28,13987
+494,41482,158,1337,27,14007
+495,41563,158,1353,28,14030
+496,41643,158,1366,27,14052
+497,41723,158,1366,28,14074
+498,41790,158,1369,28,14094
+499,41873,158,1379,28,14115
+500,41951,158,1384,27,14137
+501,42024,158,1391,28,14157
+502,42101,158,1398,28,14180
+503,42178,158,1407,28,14202
+504,42251,158,1421,27,14222
+505,42318,158,1440,28,14244
+506,42398,158,1458,27,14265
+507,42471,158,1470,27,14287
+508,42546,158,1466,28,14310
+509,42623,158,1450,27,14334
+510,42702,158,1442,27,14354
+511,42789,158,1494,24,14380
+512,42873,158,1658,18,14412
+513,42951,158,1929,18,14445
+514,43013,158,2242,18,14475
+515,43084,158,2413,18,14510
+516,43155,158,2362,18,14544
+517,43224,158,2260,18,14574
+518,43303,158,2203,18,14607
+519,43376,158,2185,18,14640
+520,43456,158,2181,18,14674
+521,43533,158,2160,18,14705
+522,43610,158,2108,19,14737
+523,43691,158,2017,19,14770
+524,43773,158,1920,19,14800
+525,43863,158,1836,19,14832
+526,43948,158,1777,19,14862
+527,44041,158,1752,19,14894
+528,44128,158,1756,20,14924
+529,44214,158,1766,19,14954
+530,44305,158,1800,19,14985
+531,44392,158,1852,19,15017
+532,44469,158,1891,19,15047
+533,44553,158,1919,19,15080
+534,44634,158,1931,19,15110
+535,44716,158,1929,19,15144
+536,44797,158,1907,19,15174
+537,44881,158,1835,19,15204
+538,44973,158,1733,20,15234
+539,45066,158,1645,20,15264
+540,45161,158,1585,20,15294
+541,45261,158,1559,20,15325
+542,45351,158,1544,21,15354
+543,45450,158,1526,20,15384
+544,45548,158,1518,20,15414
+545,45644,158,1525,21,15444
+546,45740,158,1539,20,15474
+547,45833,158,1553,20,15500
+548,45931,158,1556,20,15530
+549,46024,158,1556,20,15557
+550,46123,158,1565,20,15587
+551,46216,158,1588,20,15617
+552,46303,158,1612,20,15645
+553,46395,158,1633,20,15675
+554,46488,158,1654,21,15705
+555,46575,158,1688,20,15735
+556,46660,158,1753,19,15765
+557,46738,158,1841,19,15795
+558,46818,158,1906,20,15825
+559,46902,158,1910,19,15857
+560,46990,158,1850,20,15887
+561,47082,158,1762,20,15917
+562,47175,158,1688,20,15947
+563,47269,158,1569,20,15977
+564,47367,158,1653,20,16007
+565,47456,158,1902,20,16035
+566,47456,158,2406,20,16035
+567,47456,158,2728,20,16035
+568,47456,158,2913,20,16035
+569,47757,158,2538,20,16165
+570,47829,158,2285,18,16200
+571,47917,158,2028,19,16232
+572,48011,158,1859,19,16262
+573,48100,158,1628,21,16290
+574,48197,158,1552,20,16320
+575,48294,158,1530,20,16350
+576,48393,158,1515,20,16380
+577,48494,158,1501,20,16410
+578,48594,158,1494,20,16440
+579,48693,158,1499,20,16470
+580,48784,158,1515,20,16497
+581,48885,158,1539,20,16530
+582,48975,158,1559,20,16557
+583,49063,158,1572,20,16587
+584,49157,158,1581,20,16617
+585,49244,158,1582,20,16645
+586,49339,158,1576,20,16675
+587,49439,158,1566,19,16707
+588,49529,158,1554,20,16735
+589,49627,158,1547,20,16765
+590,49731,158,1547,19,16797
+591,49828,158,1544,19,16827
+592,49931,158,1547,19,16857
+593,50029,158,1552,19,16887
+594,50124,158,1556,20,16917
+595,50221,158,1563,20,16947
+596,50316,158,1577,20,16977
+597,50409,158,1598,20,17007
+598,50499,158,1627,19,17037
+599,50596,158,1649,19,17070
+600,50688,158,1655,19,17100
+601,50786,158,1639,19,17132
+602,50883,158,1616,20,17162
+603,50977,158,1593,20,17192
+604,51072,158,1575,20,17222
+605,51174,158,1557,20,17254
+606,51276,158,1534,20,17284
+607,51368,158,1516,20,17312
+608,51464,158,1508,20,17342
+609,51558,158,1533,20,17372
+610,51652,158,1600,20,17402
+611,51738,158,1680,19,17434
+612,51823,158,1728,20,17464
+613,51906,158,1723,20,17492
+614,52011,158,1662,20,17524
+615,52109,158,1595,20,17554
+616,52205,158,1553,20,17582
+617,52310,158,1542,19,17614
+618,52408,158,1559,20,17644
+619,52500,158,1590,20,17674
+620,52592,158,1622,20,17704
+621,52681,158,1625,21,17732
+622,52770,158,1597,21,17760
+623,52870,158,1574,20,17790
+624,52964,158,1572,20,17820
+625,53054,158,1588,20,17850
+626,53145,158,1606,20,17877
+627,53240,158,1603,20,17907
+628,53334,158,1592,20,17937
+629,53432,158,1579,20,17967
+630,53510,158,1542,23,17995
+631,53588,158,1475,28,18014
+632,53667,158,1377,30,18034
+633,53740,158,1284,32,18055
+634,53821,158,1229,31,18072
+635,53905,158,1210,31,18092
+636,53986,158,1217,31,18115
+637,54062,158,1228,30,18130
+638,54146,158,1226,30,18150
+639,54229,158,1219,31,18170
+640,54307,158,1202,31,18187
+641,54385,158,1188,32,18207
+642,54467,158,1195,32,18225
+643,54542,158,1198,32,18244
+644,54618,158,1198,32,18265
+645,54700,158,1197,32,18282
+646,54776,158,1190,33,18300
+647,54859,158,1188,32,18320
+648,54934,158,1189,31,18337
+649,55011,158,1181,32,18357
+650,55096,158,1176,32,18375
+651,55172,158,1175,32,18394
+652,55248,158,1180,31,18415
+653,55329,158,1199,31,18432
+654,55410,158,1214,32,18452
+655,55483,158,1230,32,18470
+656,55565,158,1247,32,18490
+657,55637,158,1257,31,18507
+658,55716,158,1265,30,18527
+659,55797,158,1259,30,18547
+660,55881,158,1245,29,18567
+661,55963,158,1234,31,18587
+662,56046,158,1216,30,18607
+663,56121,158,1221,30,18627
+664,56206,158,1252,28,18647
+665,56281,158,1281,29,18667
+666,56362,158,1331,29,18690
+667,56459,158,1429,22,18720
+668,56544,158,1579,18,18750
+669,56619,158,1786,19,18780
+670,56700,158,1987,18,18814
+671,56783,158,2071,18,18847
+672,56869,158,2047,17,18882
+673,56948,158,2004,18,18914
+674,57031,158,1984,19,18945
+675,57108,158,1971,18,18977
+676,57191,158,1932,19,19010
+677,57280,158,1807,18,19045
+678,57364,158,1901,20,19074
+679,57429,158,1996,24,19095
+680,57429,158,2318,24,19134
+681,57551,158,2777,8,19172
+682,57584,158,2971,30,19195
+683,57603,158,2558,49,19202
+684,57675,158,2612,18,19235
+685,57751,158,2384,18,19267
+686,57751,158,2394,18,19291
+687,57842,158,2431,13,19315
+688,57913,158,2325,17,19345
+689,58000,158,2117,18,19380
+690,58081,158,2073,19,19412
+691,58163,158,1972,18,19444
+692,58249,158,1918,19,19475
+693,58334,158,1882,19,19507
+694,58421,158,1846,19,19540
+695,58507,158,1838,19,19572
+696,58593,158,1897,18,19604
+697,58669,158,2020,18,19635
+698,58737,158,2157,19,19667
+699,58808,158,2272,19,19697
+700,58878,158,2309,18,19730
+701,58950,158,2286,18,19765
+702,59023,158,2257,18,19797
+703,59091,158,2217,19,19827
+704,59167,158,2209,19,19860
+705,59241,158,2264,18,19894
+706,59308,158,2332,18,19925
+707,59379,158,2365,18,19960
+708,59455,158,2331,18,19994
+709,59531,158,2249,18,20025
+710,59606,158,2205,18,20057
+711,59681,158,2190,19,20090
+712,59756,158,2145,19,20124
+713,59833,158,2073,18,20155
+714,59916,158,1991,19,20187
+715,59999,158,1923,19,20217
+716,60085,158,1897,19,20250
+717,60163,158,1908,19,20280
+718,60245,158,1930,19,20312
+719,60323,158,1951,19,20342
+720,60404,158,1930,20,20372
+721,60475,158,1825,22,20397
+722,60542,158,1655,30,20417
+723,60611,158,1477,32,20435
+724,60677,158,1340,34,20455
+725,60752,158,1271,32,20472
+726,60828,158,1275,32,20492
+727,60894,158,1327,32,20510
+728,60958,158,1376,32,20527
+729,61031,158,1390,31,20547
+730,61105,158,1378,31,20567
+731,61172,158,1359,30,20585
+732,61239,158,1369,32,20605
+733,61311,158,1414,32,20625
+734,61372,158,1450,30,20644
+735,61436,158,1466,29,20665
+736,61506,158,1468,30,20684
+737,61578,158,1435,29,20704
+738,61645,158,1394,29,20725
+739,61723,158,1384,29,20744
+740,61794,158,1314,30,20764
+741,61860,158,1421,30,20785
+742,61936,158,1705,29,20804
+743,61936,158,2263,29,20804
+744,61936,158,2626,29,20804
+745,61936,158,2938,29,20804
+746,62197,158,2654,16,20927
+747,62255,158,2695,15,20965
+748,62324,158,2798,17,21002
+749,62389,158,2946,17,21035
+750,62459,158,2548,18,21070
+751,62534,158,2357,18,21102
+752,62610,158,2204,19,21134
+753,62689,158,2090,19,21165
+754,62765,158,2033,19,21195
+755,62844,158,2014,19,21225
+756,62925,158,2014,20,21257
+757,63002,158,2020,19,21287
+758,63082,158,2025,18,21320
+759,63163,158,2021,19,21355
+760,63242,158,2013,19,21385
+761,63317,158,2018,19,21415
+762,63394,158,2039,18,21447
+763,63470,158,2084,19,21477
+764,63544,158,2112,18,21510
+765,63621,158,2115,19,21542
+766,63697,158,2119,19,21574
+767,63771,158,2116,19,21605
+768,63852,158,2104,18,21637
+769,63926,158,2086,19,21667
+770,64006,158,2027,19,21700
+771,64086,158,1942,19,21730
+772,64171,158,1866,21,21760
+773,64255,158,1813,20,21790
+774,64336,158,1804,20,21817
+775,64416,158,1781,20,21847
+776,64488,158,1918,21,21875
+777,64563,158,2241,21,21905
+778,64563,158,2461,21,21905
+779,64563,158,2633,21,21905
+780,64696,158,2647,9,21970
+781,64759,158,2366,19,22002
+782,64837,158,2268,18,22035
+783,64910,158,2273,19,22065
+784,64987,158,2141,19,22097
+785,65062,158,2086,19,22127
+786,65137,158,2043,22,22155
+787,65201,158,1924,23,22180
+788,65269,158,1761,27,22202
+789,65337,158,1607,29,22225
+790,65406,158,1503,30,22242
+791,65481,158,1443,30,22264
+792,65548,158,1421,28,22285
+793,65623,158,1422,29,22304
+794,65701,158,1395,28,22325
+795,65770,158,1365,29,22345
+796,65856,158,1368,28,22367
+797,65929,158,1373,28,22387
+798,66002,158,1383,29,22407
+799,66080,158,1406,29,22430
+800,66152,158,1403,29,22450
+801,66224,158,1394,28,22470
+802,66303,158,1398,29,22495
+803,66377,158,1395,29,22512
+804,66449,158,1385,28,22532
+805,66523,158,1370,30,22555
+806,66596,158,1363,30,22572
+807,66668,158,1370,30,22592
+808,66739,158,1379,30,22615
+809,66806,158,1385,30,22630
+810,66879,158,1387,30,22650
+811,66950,158,1382,30,22670
+812,67018,158,1365,32,22687
+813,67094,158,1340,31,22707
+814,67164,158,1321,32,22725
+815,67240,158,1308,31,22745
+816,67304,158,1313,30,22765
+817,67383,158,1331,32,22784
+818,67457,158,1336,30,22804
+819,67524,158,1332,32,22825
+820,67598,158,1336,31,22842
+821,67665,158,1341,32,22860
+822,67738,158,1352,30,22880
+823,67811,158,1354,31,22900
+824,67877,158,1355,31,22917
+825,67954,158,1423,29,22940
+826,68028,158,1606,21,22967
+827,68092,158,1921,19,22997
+828,68153,158,2331,19,23030
+829,68217,158,2595,18,23065
+830,68285,158,2583,18,23097
+831,68356,158,2491,17,23132
+832,68421,158,2423,18,23164
+833,68495,158,2401,16,23200
+834,68564,158,2417,18,23232
+835,68627,158,2424,19,23264
+836,68693,158,2418,19,23295
+837,68757,158,2395,19,23325
+838,68823,158,2337,19,23357
+839,68888,158,2275,20,23387
+840,68957,158,2255,19,23417
+841,69050,158,2251,14,23460
+842,69117,158,2253,19,23492
+843,69183,158,2291,19,23522
+844,69251,158,2371,17,23555
+845,69311,158,2597,18,23590
+846,69430,158,2858,8,23660
+847,69507,158,3067,30,23725
+848,69507,158,2883,30,23725
+849,69507,158,3223,30,23725
+850,69507,158,3600,30,23725
+851,69537,158,3600,32,23830
+852,69541,158,3600,23,23845
+853,69552,158,3600,34,23865
+854,69561,158,3600,27,23882
+855,69565,158,3600,81,23887
+856,69571,158,3600,23,23914
+857,69571,158,3600,93,23917
+858,69571,158,3600,33,23937
+859,69571,158,3600,30,23957
+860,69571,158,3600,32,23975
+861,69575,158,3281,33,23995
+862,69575,158,3055,33,23995
+863,69575,158,2986,33,23995
+864,69575,158,2973,33,23995
+865,69575,158,2999,33,23995
+866,69575,158,2999,33,23995
+867,69575,158,2826,33,23995
+868,69575,158,3171,33,23995
+869,69575,158,3600,33,23995
+870,69648,158,3600,26,24127
+871,69660,158,3600,30,24147
+872,69680,158,3600,36,24170
+873,69691,158,3600,26,24184
+874,69718,158,3600,26,24220
+875,69728,158,3600,27,24235
+876,69745,158,3600,18,24265
+877,69749,158,3600,56,24272
+878,69765,158,3600,17,24307
+879,69783,158,3600,15,24355
+880,69793,158,3600,16,24385
+881,69795,158,3600,32,24402
+882,69795,158,3600,32,24423
+883,69796,158,3600,20,24445
+884,69796,158,3600,13,24475
+885,69796,158,3600,13,24498
+886,69796,158,3600,23,24522
+887,69796,158,3600,23,24522
+888,69796,158,3475,23,24522
+889,69796,158,2538,23,24522
+890,69796,158,3472,23,24522
+891,69796,158,3600,23,24522
+892,69828,158,3600,16,24800
+893,69828,158,3600,16,24800
+894,69828,158,3472,16,24800
+895,69828,158,2750,16,24800
+896,69828,158,2999,16,24800
+897,69828,158,2747,16,24800
+898,69828,158,3140,16,24800
+899,69828,158,3600,16,24800
+900,69867,158,3600,30,25682
+901,69867,158,3600,22,25697
+902,69867,158,3600,22,25702
+903,69867,158,3600,28,25707
+904,69867,158,3600,52,25729
+905,69867,158,3600,24,25744
+906,69867,158,3600,21,25795
+907,69867,158,3600,13,25825
+908,69867,158,3600,43,25832
+909,69867,158,3600,28,25855
+910,69867,158,3600,29,25875
+911,69867,158,3600,41,25887
+912,69867,158,3600,33,25910
+913,69867,158,3600,33,25910
+914,69867,158,3600,33,25910
+915,69961,158,3600,8,26079
+916,69992,158,3600,35,26125
+917,69992,158,3600,35,26125
+918,69992,158,2884,35,26125
+919,69992,158,2940,35,26125
+920,69992,158,3600,35,26125
+921,70105,158,3600,23,26282
+922,70123,158,3600,34,26300
+923,70141,158,3600,42,26315
+924,70163,158,3600,44,26329
+925,70175,158,3364,54,26337
+926,70238,158,2713,20,26370
+927,70323,158,2096,19,26402
+928,70406,158,1934,20,26430
+929,70489,158,2066,20,26459
+930,70489,158,2300,20,26459
+931,70489,158,2709,20,26459
+932,70714,158,2763,30,26580
+933,70735,158,2245,45,26590
+934,70829,158,1918,19,26622
+935,70927,158,1742,20,26652
+936,71025,158,1615,30,26685
+937,71075,158,1621,19,26702
+938,71172,158,1632,20,26735
+939,71260,158,1616,21,26762
+940,71367,158,1567,20,26795
+941,71452,158,1531,21,26820
+942,71550,158,1518,20,26850
+943,71648,158,1516,20,26880
+944,71750,158,1510,21,26910
+945,71844,158,1498,20,26939
+946,71938,158,1492,20,26967
+947,72038,158,1484,21,26997
+948,72124,158,1474,21,27025
+949,72226,158,1470,20,27055
+950,72324,158,1471,21,27085
+951,72427,158,1480,18,27115
+952,72524,158,1504,21,27145
+953,72619,158,1525,21,27175
+954,72719,158,1535,20,27205
+955,72812,158,1550,20,27230
+956,72908,158,1564,20,27260
+957,73002,158,1575,20,27290
+958,73101,158,1584,20,27320
+959,73196,158,1589,20,27350
+960,73286,158,1592,20,27379
+961,73379,158,1609,20,27409
+962,73477,158,1630,18,27440
+963,73587,158,1638,16,27477
+964,73685,158,1637,19,27509
+965,73778,158,1630,19,27539
+966,73882,158,1610,18,27572
+967,73983,158,1590,19,27605
+968,74081,158,1570,20,27635
+969,74179,158,1549,20,27665
+970,74277,158,1539,20,27695
+971,74368,158,1541,20,27722
+972,74459,158,1551,21,27750
+973,74549,158,1563,21,27779
+974,74634,158,1568,21,27805
+975,74727,158,1564,21,27835
+976,74818,158,1534,22,27860
+977,74904,158,1456,27,27885
+978,74986,158,1350,30,27905
+979,75064,158,1252,32,27925
+980,75144,158,1182,31,27940
+981,75229,158,1152,32,27960
+982,75309,158,1152,33,27979
+983,75390,158,1153,31,27997
+984,75464,158,1146,32,28015
+985,75557,158,1140,32,28035
+986,75636,158,1139,33,28052
+987,75717,158,1145,32,28070
+988,75805,158,1152,33,28090
+989,75886,158,1155,30,28109
+990,75972,158,1163,32,28129
+991,76051,158,1167,31,28147
+992,76127,158,1170,32,28165
+993,76216,158,1178,31,28187
+994,76294,158,1171,31,28205
+995,76373,158,1160,32,28225
+996,76459,158,1156,32,28242
+997,76538,158,1152,32,28260
+998,76624,158,1152,32,28280
+999,76701,158,1156,32,28299
+1000,76780,158,1155,31,28317
+1001,76866,158,1154,33,28337
+1002,76945,158,1144,32,28355
+1003,77025,158,1130,32,28375
+1004,77112,158,1123,32,28392
+1005,77193,158,1120,33,28410
+1006,77273,158,1130,32,28429
+1007,77360,158,1144,32,28449
+1008,77434,158,1146,32,28465
+1009,77526,158,1145,32,28487
+1010,77606,158,1138,32,28505
+1011,77686,158,1130,30,28525
+1012,77773,158,1130,32,28542
+1013,77853,158,1130,32,28560
+1014,77940,158,1139,32,28580
+1015,78018,158,1151,32,28599
+1016,78097,158,1155,32,28617
+1017,78184,158,1156,32,28637
+1018,78264,158,1149,32,28655
+1019,78344,158,1142,32,28675
+1020,78429,158,1145,31,28692
+1021,78515,158,1151,31,28712
+1022,78593,158,1160,32,28730
+1023,78671,158,1168,32,28749
+1024,78756,158,1166,32,28769
+1025,78843,158,1163,32,28789
+1026,78922,158,1154,31,28807
+1027,78995,158,1137,32,28825
+1028,79083,158,1124,33,28842
+1029,79163,158,1120,32,28860
+1030,79243,158,1062,33,28879
+1031,79330,158,1172,33,28899
+1032,79396,158,1443,32,28915
+1033,79396,158,1948,32,28915
+1034,79396,158,2905,32,28915
+1035,79396,158,3441,32,28915
+1036,79396,158,2590,32,28915
+1037,79762,158,2276,16,29037
+1038,79852,158,2028,17,29072
+1039,79943,158,1887,18,29107
+1040,80039,158,1904,16,29142
+1041,80140,158,1869,16,29180
+1042,80225,158,1865,16,29215
+1043,80326,158,1885,16,29250
+1044,80421,158,1894,17,29287
+1045,80509,158,1885,17,29320
+1046,80606,158,1869,17,29355
+1047,80696,158,1835,19,29387
+1048,80794,158,1795,18,29420
+1049,80886,158,1766,19,29455
+1050,80973,158,1743,19,29485
+1051,81066,158,1731,18,29515
+1052,81157,158,1735,19,29547
+1053,81244,158,1685,19,29579
+1054,81326,158,1827,19,29609
+1055,81413,158,2003,19,29640
+1056,81413,158,2357,19,29700
+1057,81630,158,2771,36,29760
+1058,81665,158,3090,32,29785
+1059,81665,158,3164,32,29817
+1060,81750,158,3600,8,29850
+1061,81776,158,3525,22,29875
+1062,81844,158,3174,16,29910
+1063,81923,158,2603,18,29945
+1064,82008,158,2140,18,29979
+1065,82095,158,1896,18,30010
+1066,82189,158,1791,18,30042
+1067,82284,158,1724,19,30075
+1068,82374,158,1675,19,30105
+1069,82472,158,1649,19,30137
+1070,82571,158,1639,19,30169
+1071,82663,158,1639,19,30199
+1072,82754,158,1656,20,30229
+1073,82850,158,1685,19,30260
+1074,82938,158,1703,20,30290
+1075,83025,158,1700,20,30319
+1076,83115,158,1679,21,30349
+1077,83204,158,1644,21,30377
+1078,83298,158,1624,20,30407
+1079,83389,158,1617,21,30435
+1080,83466,158,1553,23,30459
+1081,83530,158,1425,32,30477
+1082,83604,158,1285,36,30492
+1083,83684,158,1175,36,30510
+1084,83757,158,1113,36,30527
+1085,83831,158,1097,35,30542
+1086,83913,158,1103,35,30560
+1087,83987,158,1100,35,30577
+1088,84060,158,1091,36,30595
+1089,84140,158,1087,34,30610
+1090,84220,158,1089,34,30629
+1091,84300,158,1098,35,30647
+1092,84380,158,1123,35,30665
+1093,84451,158,1147,33,30680
+1094,84529,158,1147,35,30699
+1095,84603,158,1135,33,30717
+1096,84690,158,1063,33,30735
+1097,84771,158,1211,34,30752
+1098,84847,158,1337,33,30770
+1099,84847,158,1491,33,30800
+1100,85036,158,1675,11,30829
+1101,85098,158,1837,20,30852
+1102,85165,158,1831,18,30885
+1103,85238,158,2380,17,30920
+1104,85300,158,2452,19,30950
+1105,85372,158,2355,19,30985
+1106,85442,158,2235,19,31015
+1107,85519,158,2130,18,31047
+1108,85597,158,2047,19,31079
+1109,85680,158,1995,18,31110
+1110,85765,158,1974,18,31145
+1111,85847,158,1970,19,31177
+1112,85926,158,1965,19,31209
+1113,86012,158,1946,19,31240
+1114,86096,158,1919,18,31272
+1115,86181,158,1896,19,31305
+1116,86262,158,1876,19,31335
+1117,86351,158,1844,19,31367
+1118,86442,158,1793,19,31399
+1119,86527,158,1737,20,31427
+1120,86617,158,1693,20,31457
+1121,86710,158,1666,20,31487
+1122,86800,158,1651,19,31517
+1123,86894,158,1640,20,31547
+1124,86988,158,1629,20,31577
+1125,87083,158,1621,20,31607
+1126,87170,158,1618,20,31635
+1127,87263,158,1621,20,31665
+1128,87356,158,1637,21,31695
+1129,87436,158,1660,21,31720
+1130,87522,158,1687,20,31750
+1131,87608,158,1722,21,31780
+1132,87689,158,1749,20,31809
+1133,87767,158,1767,20,31837
+1134,87856,158,1783,20,31869
+1135,87933,158,1786,20,31897
+1136,88024,158,1776,20,31929
+1137,88105,158,1757,20,31957
+1138,88195,158,1737,19,31989
+1139,88279,158,1732,19,32019
+1140,88365,158,1746,20,32049
+1141,88451,158,1784,19,32080
+1142,88535,158,1827,18,32112
+1143,88620,158,1841,19,32145
+1144,88706,158,1820,19,32175
+1145,88800,158,1770,19,32207
+1146,88889,158,1718,20,32237
+1147,88980,158,1691,20,32267
+1148,89070,158,1683,20,32297
+1149,89161,158,1672,20,32327
+1150,89253,158,1664,20,32357
+1151,89345,158,1668,20,32387
+1152,89433,158,1677,20,32417
+1153,89517,158,1691,20,32445
+1154,89611,158,1706,20,32477
+1155,89700,158,1708,20,32507
+1156,89788,158,1701,20,32537
+1157,89880,158,1688,20,32567
+1158,89974,158,1653,20,32597
+1159,90071,158,1606,20,32627
+1160,90169,158,1571,20,32657
+1161,90265,158,1566,20,32687
+1162,90354,158,1588,20,32715
+1163,90445,158,1628,20,32745
+1164,90535,158,1669,20,32775
+1165,90624,158,1699,20,32805
+1166,90714,158,1704,19,32835
+1167,90805,158,1688,20,32865
+1168,90903,158,1667,20,32897
+1169,90998,158,1646,20,32927
+1170,91086,158,1623,20,32955
+1171,91184,158,1605,20,32985
+1172,91281,158,1590,20,33015
+1173,91377,158,1582,20,33045
+1174,91472,158,1583,20,33075
+1175,91569,158,1582,20,33105
+1176,91669,158,1573,20,33135
+1177,91768,158,1557,20,33165
+1178,91866,158,1547,21,33195
+1179,91965,158,1549,20,33225
+1180,92062,158,1556,20,33255
+1181,92153,158,1559,20,33282
+1182,92250,158,1558,20,33312
+1183,92353,158,1549,20,33345
+1184,92451,158,1539,19,33375
+1185,92549,158,1533,20,33405
+1186,92641,158,1531,20,33432
+1187,92739,158,1527,20,33462
+1188,92831,158,1526,21,33490
+1189,92923,158,1532,21,33519
+1190,93013,158,1545,22,33547
+1191,93099,158,1536,23,33572
+1192,93169,158,1479,25,33595
+1193,93256,158,1394,29,33617
+1194,93336,158,1305,29,33637
+1195,93412,158,1245,29,33657
+1196,93505,158,1229,29,33679
+1197,93585,158,1236,28,33699
+1198,93664,158,1259,29,33719
+1199,93748,158,1292,28,33740
+1200,93824,158,1309,29,33760
+1201,93903,158,1316,30,33780
+1202,93980,158,1319,28,33800
+1203,94065,158,1304,29,33822
+1204,94145,158,1290,29,33842
+1205,94225,158,1276,30,33865
+1206,94308,158,1254,29,33882
+1207,94390,158,1232,28,33902
+1208,94473,158,1218,29,33925
+1209,94561,158,1217,29,33945
+1210,94643,158,1224,28,33965
+1211,94717,158,1234,29,33985
+1212,94809,158,1246,28,34007
+1213,94889,158,1242,29,34027
+1214,94970,158,1236,29,34047
+1215,95059,158,1239,29,34069
+1216,95139,158,1245,28,34089
+1217,95225,158,1263,28,34110
+1218,95302,158,1291,29,34130
+1219,95386,158,1312,28,34152
+1220,95462,158,1314,28,34172
+1221,95541,158,1299,28,34195
+1222,95625,158,1286,28,34215
+1223,95710,158,1275,29,34237
+1224,95781,158,1278,29,34257
+1225,95863,158,1296,28,34277
+1226,95946,158,1301,29,34299
+1227,96025,158,1300,28,34319
+1228,96109,158,1302,28,34340
+1229,96188,158,1286,29,34360
+1230,96268,158,1268,29,34380
+1231,96350,158,1261,29,34400
+1232,96437,158,1254,29,34422
+1233,96517,158,1249,29,34442
+1234,96597,158,1247,29,34465
+1235,96679,158,1245,28,34482
+1236,96759,158,1245,30,34502
+1237,96836,158,1247,30,34525
+1238,96918,158,1183,29,34542
+1239,97004,158,1282,29,34565
+1240,97079,158,1543,29,34585
+1241,97079,158,2154,29,34585
+1242,97079,158,2590,29,34585
+1243,97079,158,2684,29,34585
+1244,97399,158,2163,28,34700
+1245,97420,158,2080,35,34710
+1246,97509,158,2131,14,34752
+1247,97602,158,2353,14,34797
+1248,97692,158,2168,17,34832
+1249,97771,158,2038,18,34862
+1250,97862,158,1899,19,34897
+1251,97953,158,1809,18,34929
+1252,98041,158,1753,19,34959
+1253,98136,158,1711,19,34990
+1254,98226,158,1676,19,35020
+1255,98325,158,1645,19,35052
+1256,98418,158,1626,19,35082
+1257,98518,158,1621,19,35115
+1258,98609,158,1637,20,35145
+1259,98706,158,1659,18,35177
+1260,98801,158,1679,19,35210
+1261,98899,158,1693,19,35240
+1262,98988,158,1692,19,35270
+1263,99081,158,1679,19,35300
+1264,99172,158,1661,19,35330
+1265,99270,158,1644,20,35365
+1266,99363,158,1632,20,35395
+1267,99451,158,1632,21,35420
+1268,99540,158,1635,20,35450
+1269,99634,158,1637,20,35480
+1270,99727,158,1638,20,35510
+1271,99818,158,1644,19,35540
+1272,99915,158,1656,19,35575
+1273,100005,158,1675,18,35605
+1274,100094,158,1690,19,35635
+1275,100184,158,1710,19,35667
+1276,100278,158,1764,18,35699
+1277,100369,158,1862,17,35735
+1278,100460,158,1971,16,35772
+1279,100543,158,2043,18,35807
+1280,100627,158,2018,18,35839
+1281,100709,158,1907,19,35869
+1282,100805,158,1789,19,35900
+1283,100904,158,1695,19,35935
+1284,101000,158,1631,20,35965
+1285,101095,158,1605,20,35995
+1286,101187,158,1605,20,36025
+1287,101278,158,1629,19,36055
+1288,101365,158,1664,19,36085
+1289,101453,158,1686,19,36115
+1290,101541,158,1694,19,36145
+1291,101633,158,1688,19,36177
+1292,101720,158,1668,20,36207
+1293,101816,158,1654,19,36237
+1294,101911,158,1653,19,36269
+1295,102001,158,1661,19,36299
+1296,102094,158,1690,19,36330
+1297,102185,158,1724,19,36362
+1298,102276,158,1743,19,36395
+1299,102366,158,1741,19,36425
+1300,102454,158,1715,20,36455
+1301,102551,158,1680,20,36487
+1302,102643,158,1650,20,36517
+1303,102735,158,1631,20,36547
+1304,102829,158,1626,20,36577
+1305,102920,158,1627,19,36607
+1306,103018,158,1635,19,36640
+1307,103114,158,1656,19,36670
+1308,103204,158,1676,19,36702
+1309,103298,158,1615,19,36732
+1310,103392,158,1719,19,36764
+1311,103483,158,2010,20,36792
+1312,103483,158,2276,20,36792
+1313,103483,158,2681,20,36792
+1314,103780,158,2825,18,36930
+1315,103855,158,2357,17,36967
+1316,103948,158,2069,18,37000
+1317,104045,158,1873,19,37034
+1318,104139,158,1657,20,37062
+1319,104236,158,1613,18,37095
+1320,104337,158,1616,18,37127
+1321,104438,158,1622,18,37160
+1322,104541,158,1619,18,37190
+1323,104641,158,1596,19,37225
+1324,104742,158,1555,19,37255
+1325,104843,158,1428,19,37285
+1326,104947,158,1496,19,37315
+1327,105063,158,1834,19,37347
+1328,105063,158,2086,19,37347
+1329,105063,158,2192,19,37347
+1330,105234,158,2043,10,37407
+1331,105322,158,1670,20,37437
+1332,105409,158,1574,20,37465
+1333,105504,158,1637,20,37495
+1334,105607,158,1576,19,37527
+1335,105708,158,1549,20,37557
+1336,105801,158,1546,20,37585
+1337,105909,158,1561,19,37617
+1338,105999,158,1586,20,37647
+1339,106091,158,1599,20,37677
+1340,106190,158,1599,20,37707
+1341,106285,158,1599,20,37737
+1342,106374,158,1595,20,37767
+1343,106461,158,1597,22,37795
+1344,106552,158,1604,21,37825
+1345,106637,158,1601,21,37850
+1346,106730,158,1595,21,37882
+1347,106814,158,1590,21,37907
+1348,106911,158,1576,20,37937
+1349,107005,158,1564,21,37965
+1350,107097,158,1556,21,37994
+1351,107187,158,1549,21,38022
+1352,107284,158,1546,20,38052
+1353,107375,158,1544,21,38080
+1354,107466,158,1536,21,38107
+1355,107556,158,1531,21,38135
+1356,107655,158,1531,20,38165
+1357,107746,158,1534,20,38194
+1358,107843,158,1547,21,38224
+1359,107931,158,1563,21,38252
+1360,108020,158,1577,21,38280
+1361,108107,158,1581,21,38307
+1362,108186,158,1573,21,38335
+1363,108280,158,1558,21,38365
+1364,108371,158,1543,21,38392
+1365,108466,158,1536,21,38420
+1366,108558,158,1550,21,38447
+1367,108646,158,1580,21,38475
+1368,108732,158,1623,21,38504
+1369,108817,158,1656,21,38532
+1370,108900,158,1644,21,38560
+1371,108997,158,1603,20,38590
+1372,109096,158,1561,20,38620
+1373,109186,158,1533,21,38647
+1374,109284,158,1527,21,38677
+1375,109376,158,1525,20,38705
+1376,109476,158,1453,21,38735
+1377,109569,158,1554,20,38764
+1378,109660,158,1913,20,38792
+1379,109660,158,2192,20,38792
+1380,109660,158,2265,20,38792
+1381,109815,158,2041,11,38845
+1382,109905,158,1649,20,38875
+1383,110001,158,1527,21,38905
+1384,110092,158,1574,21,38932
+1385,110182,158,1554,21,38960
+1386,110274,158,1554,21,38987
+1387,110366,158,1553,21,39015
+1388,110455,158,1545,22,39042
+1389,110542,158,1540,21,39070
+1390,110631,158,1535,22,39097
+1391,110725,158,1527,21,39125
+1392,110817,158,1515,21,39154
+1393,110907,158,1501,23,39180
+1394,110988,158,1503,22,39205
+1395,111077,158,1516,23,39232
+1396,111168,158,1528,22,39260
+1397,111262,158,1536,21,39287
+1398,111349,158,1536,22,39314
+1399,111435,158,1521,22,39340
+1400,111534,158,1509,21,39370
+1401,111623,158,1507,22,39395
+1402,111714,158,1506,22,39424
+1403,111801,158,1511,21,39450
+1404,111895,158,1516,21,39477
+1405,111980,158,1507,21,39505
+1406,112077,158,1499,21,39535
+1407,112176,158,1511,21,39565
+1408,112265,158,1534,21,39592
+1409,112355,158,1559,21,39620
+1410,112444,158,1574,21,39647
+1411,112542,158,1571,21,39677
+1412,112628,158,1487,21,39704
+1413,112719,158,1599,21,39732
+1414,112816,158,1746,21,39762
+1415,112816,158,2195,21,39830
+1416,113062,158,3257,16,39900
+1417,113073,158,3600,25,39925
+1418,113078,158,3600,30,39944
+1419,113081,158,3600,35,39957
+1420,113085,158,3600,60,39967
+1421,113092,158,3600,25,39995
+1422,113093,158,3600,60,40002
+1423,113099,158,3600,22,40037
+1424,113101,158,3600,21,40055
+1425,113101,158,3600,21,40062
+1426,113103,158,3600,61,40067
+1427,113133,158,3600,33,40084
+1428,113184,158,2690,43,40100
+1429,113240,158,1591,43,40114
+1430,113304,158,1243,42,40127
+1431,113371,158,1121,41,40142
+1432,113444,158,1076,38,40157
+1433,113522,158,1055,37,40174
+1434,113600,158,1048,38,40190
+1435,113678,158,1044,37,40205
+1436,113746,158,1045,38,40220
+1437,113821,158,1051,38,40235
+1438,113907,158,1056,36,40255
+1439,113986,158,1044,35,40270
+1440,114055,158,1039,36,40285
+1441,114164,158,1078,29,40310
+1442,114247,158,1172,24,40332
+1443,114328,158,1305,23,40355
+1444,114413,158,1444,23,40382
+1445,114504,158,1520,22,40410
+1446,114585,158,1538,22,40435
+1447,114676,158,1560,22,40465
+1448,114762,158,1598,21,40492
+1449,114848,158,1639,21,40520
+1450,114940,158,1671,20,40550
+1451,115031,158,1686,20,40580
+1452,115113,158,1674,23,40605
+1453,115199,158,1642,21,40634
+1454,115282,158,1614,22,40660
+1455,115366,158,1609,21,40687
+1456,115455,158,1623,20,40717
+1457,115541,158,1645,21,40745
+1458,115630,158,1670,20,40775
+1459,115720,158,1682,20,40805
+1460,115808,158,1672,20,40835
+1461,115903,158,1646,20,40865
+1462,115999,158,1612,19,40895
+1463,116099,158,1588,20,40927
+1464,116185,158,1588,20,40955
+1465,116279,158,1611,19,40985
+1466,116376,158,1632,19,41017
+1467,116467,158,1634,20,41047
+1468,116561,158,1610,20,41077
+1469,116665,158,1567,19,41110
+1470,116760,158,1525,21,41137
+1471,116867,158,1503,19,41170
+1472,116959,158,1511,21,41197
+1473,117050,158,1544,20,41225
+1474,117147,158,1574,19,41257
+1475,117240,158,1599,20,41287
+1476,117328,158,1636,20,41315
+1477,117413,158,1669,20,41345
+1478,117505,158,1697,19,41377
+1479,117594,158,1718,19,41407
+1480,117683,158,1703,20,41437
+1481,117771,158,1667,20,41465
+1482,117864,158,1634,20,41495
+1483,117958,158,1603,20,41525
+1484,118058,158,1580,20,41557
+1485,118154,158,1581,20,41587
+1486,118266,158,1600,16,41624
+1487,118386,158,1616,14,41665
+1488,118479,158,1616,20,41695
+1489,118571,158,1599,20,41725
+1490,118672,158,1571,19,41757
+1491,118779,158,1552,19,41790
+1492,118881,158,1541,19,41822
+1493,118976,158,1528,20,41850
+1494,119081,158,1506,19,41882
+1495,119182,158,1482,20,41912
+1496,119286,158,1466,20,41942
+1497,119380,158,1465,20,41970
+1498,119486,158,1477,20,42002
+1499,119586,158,1497,19,42032
+1500,119691,158,1517,19,42064
+1501,119797,158,1476,19,42095
+1502,119891,158,1596,19,42125
+1503,119998,158,1868,18,42160
+1504,119998,158,2400,18,42160
+1505,119998,158,2749,18,42160
+1506,119998,158,2888,18,42160
+1507,120285,158,2487,19,42282
+1508,120364,158,2251,16,42317
+1509,120461,158,2018,16,42357
+1510,120557,158,1873,18,42387
+1511,120662,158,1667,18,42420
+1512,120763,158,1602,18,42454
+1513,120865,158,1526,19,42485
+1514,120965,158,1635,18,42517
+1515,121070,158,1895,17,42552
+1516,121070,158,2321,17,42552
+1517,121070,158,3001,17,42552
+1518,121070,158,3114,17,42552
+1519,121070,158,2716,17,42552
+1520,121375,158,2508,19,42687
+1521,121456,158,2261,18,42722
+1522,121547,158,2038,18,42755
+1523,121640,158,1907,18,42787
+1524,121742,158,1717,18,42822
+1525,121838,158,1661,18,42854
+1526,121937,158,1641,19,42885
+1527,122034,158,1641,19,42917
+1528,122132,158,1638,18,42950
+1529,122240,158,1622,18,42985
+1530,122338,158,1593,18,43015
+1531,122442,158,1562,19,43047
+1532,122548,158,1547,18,43080
+1533,122656,158,1560,18,43114
+1534,122768,158,1588,16,43150
+1535,122865,158,1613,18,43182
+1536,122969,158,1638,18,43215
+1537,123076,158,1653,17,43252
+1538,123175,158,1653,17,43285
+1539,123284,158,1652,18,43320
+1540,123381,158,1649,17,43352
+1541,123489,158,1644,17,43387
+1542,123591,158,1660,17,43422
+1543,123696,158,1684,17,43457
+1544,123790,158,1699,18,43490
+1545,123887,158,1708,18,43522
+1546,123977,158,1704,19,43552
+1547,124073,158,1680,18,43585
+1548,124171,158,1651,18,43617
+1549,124268,158,1625,19,43649
+1550,124374,158,1607,18,43682
+1551,124468,158,1604,19,43712
+1552,124565,158,1604,19,43744
+1553,124665,158,1599,19,43775
+1554,124771,158,1590,18,43810
+1555,124866,158,1577,19,43840
+1556,124965,158,1586,19,43872
+1557,125070,158,1631,18,43905
+1558,125180,158,1716,35,43945
+1559,125236,158,1803,12,43967
+1560,125333,158,1821,17,44005
+1561,125433,158,1761,18,44037
+1562,125536,158,1677,19,44070
+1563,125635,158,1613,19,44102
+1564,125727,158,1591,19,44132
+1565,125826,158,1589,19,44164
+1566,125923,158,1583,19,44194
+1567,126026,158,1571,20,44225
+1568,126115,158,1550,20,44254
+1569,126219,158,1531,20,44285
+1570,126325,158,1526,19,44317
+1571,126415,158,1530,20,44345
+1572,126511,158,1536,20,44375
+1573,126610,158,1536,20,44405
+1574,126712,158,1527,20,44435
+1575,126810,158,1521,20,44465
+1576,126909,158,1531,19,44495
+1577,127012,158,1546,19,44527
+1578,127115,158,1557,19,44560
+1579,127211,158,1560,20,44590
+1580,127308,158,1563,19,44620
+1581,127405,158,1565,20,44650
+1582,127500,158,1562,20,44680
+1583,127602,158,1561,19,44712
+1584,127700,158,1565,19,44742
+1585,127796,158,1567,19,44772
+1586,127890,158,1563,20,44802
+1587,127994,158,1554,19,44834
+1588,128095,158,1542,19,44864
+1589,128192,158,1537,19,44894
+1590,128295,158,1542,19,44925
+1591,128392,158,1549,20,44955
+1592,128491,158,1545,20,44985
+1593,128595,158,1540,19,45017
+1594,128700,158,1542,19,45050
+1595,128805,158,1548,19,45082
+1596,128911,158,1558,18,45115
+1597,129007,158,1564,19,45147
+1598,129103,158,1566,19,45175
+1599,129208,158,1572,19,45209
+1600,129301,158,1579,19,45239
+1601,129405,158,1589,19,45272
+1602,129504,158,1601,18,45304
+1603,129604,158,1606,18,45335
+1604,129705,158,1601,19,45367
+1605,129806,158,1586,19,45400
+1606,129909,158,1568,18,45432
+1607,130012,158,1556,19,45464
+1608,130113,158,1556,19,45495
+1609,130217,158,1565,19,45527
+1610,130312,158,1570,19,45557
+1611,130415,158,1565,19,45590
+1612,130521,158,1558,18,45622
+1613,130627,158,1544,19,45657
+1614,130725,158,1535,19,45687
+1615,130823,158,1530,19,45717
+1616,130923,158,1517,18,45747
+1617,131039,158,1501,18,45780
+1618,131146,158,1495,18,45812
+1619,131252,158,1499,19,45844
+1620,131350,158,1517,19,45874
+1621,131446,158,1541,19,45904
+1622,131548,158,1550,19,45935
+1623,131652,158,1554,19,45967
+1624,131748,158,1487,20,45997
+1625,131844,158,1591,19,46027
+1626,131947,158,1853,19,46060
+1627,131947,158,2296,19,46060
+1628,131947,158,2871,19,46060
+1629,131947,158,3460,19,46060
+1630,131947,158,2851,19,46060
+1631,131947,158,2705,19,46060
+1632,132305,158,2497,12,46222
+1633,132386,158,2208,16,46257
+1634,132480,158,1951,18,46290
+1635,132585,158,1799,17,46324
+1636,132686,158,1608,19,46355
+1637,132789,158,1575,18,46387
+1638,132889,158,1581,19,46420
+1639,132982,158,1587,20,46450
+1640,133085,158,1587,19,46482
+1641,133186,158,1582,19,46514
+1642,133282,158,1575,19,46544
+1643,133382,158,1589,19,46575
+1644,133479,158,1571,19,46607
+1645,133571,158,1776,18,46640
+1646,133668,158,1938,18,46677
+1647,133668,158,2067,18,46713
+1648,133867,158,2130,8,46750
+1649,133943,158,2068,17,46782
+1650,134035,158,1910,17,46817
+1651,134124,158,2011,18,46852
+1652,134213,158,1960,16,46889
+1653,134315,158,1924,17,46925
+1654,134404,158,1913,17,46960
+1655,134506,158,1898,16,46997
+1656,134593,158,1891,18,47030
+1657,134693,158,1869,16,47067
+1658,134793,158,1818,17,47102
+1659,134898,158,1763,17,47137
+1660,135003,158,1728,16,47174
+1661,135100,158,1736,18,47207
+1662,135200,158,1689,17,47247
+1663,135285,158,1809,18,47277
+1664,135379,158,2063,19,47307
+1665,135379,158,2441,19,47307
+1666,135379,158,3028,19,47307
+1667,135379,158,3092,19,47307
+1668,135379,158,2627,19,47307
+1669,135649,158,2241,30,47422
+1670,135676,158,2221,37,47434
+1671,135777,158,2209,16,47472
+1672,135777,158,2239,16,47494
+1673,135891,158,1918,14,47517
+1674,135995,158,1971,18,47549
+1675,136098,158,1857,18,47582
+1676,136098,158,1904,18,47600
+1677,136214,158,1852,15,47620
+1678,136325,158,1747,18,47655
+1679,136416,158,1580,18,47687
+1680,136528,158,1674,16,47727
+1681,136626,158,1690,17,47759
+1682,136725,158,1708,17,47792
+1683,136818,158,1723,19,47824
+1684,136916,158,1737,16,47860
+1685,137013,158,1699,18,47894
+1686,137101,158,1887,18,47925
+1687,137197,158,2022,18,47960
+1688,137197,158,2108,18,47987
+1689,137338,158,2109,11,48015
+1690,137431,158,2005,17,48050
+1691,137518,158,1823,17,48082
+1692,137612,158,1857,17,48117
+1693,137707,158,1800,18,48150
+1694,137805,158,1771,18,48184
+1695,137894,158,1779,18,48215
+1696,137988,158,1750,17,48250
+1697,138075,158,1887,18,48282
+1698,138160,158,2156,18,48314
+1699,138160,158,2480,18,48314
+1700,138160,158,2740,18,48314
+1701,138383,158,3158,21,48440
+1702,138383,158,3452,21,48452
+1703,138405,158,3600,33,48464
+1704,138418,158,3600,35,48479
+1705,138431,158,3600,35,48492
+1706,138445,158,3600,36,48507
+1707,138465,158,3600,32,48525
+1708,138519,158,3600,16,48569
+1709,138537,158,3600,40,48582
+1710,138557,158,3597,27,48600
+1711,138557,158,3600,27,48625
+1712,138612,158,3600,37,48650
+1713,138624,158,3600,11,48670
+1714,138665,158,3600,18,48704
+1715,138720,158,3575,19,48735
+1716,138720,158,3021,19,48752
+1717,138783,158,2802,33,48767
+1718,138783,158,3021,33,48767
diff --git a/rowers/testdata/c2workoutlist.txt b/rowers/testdata/c2workoutlist.txt
new file mode 100644
index 00000000..3ae078a7
--- /dev/null
+++ b/rowers/testdata/c2workoutlist.txt
@@ -0,0 +1 @@
+{"meta": {"pagination": {"count": 50, "links": {"next": "https://log.concept2.com/api/users/me/results?page=2"}, "current_page": 1, "total_pages": 45, "per_page": 50, "total": 2208}}, "data": [{"distance": 13878, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "\n from speedcoach2v2.15 via rowsandall.com", "heart_rate": {"max": 158, "average": 156}, "source": "rowingdata", "date_utc": "2018-06-30 05:31:01", "time_formatted": "1:21:16.7", "time": 48767, "date": "2018-06-30 07:31:01", "timezone": "Europe/Prague", "type": "water", "id": 33991243, "stroke_data": true}, {"distance": 10393, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "\n from speedcoach2v2.15 via rowsandall.com\nSummary for your location at 2018-06-26T16:30:00Z: Temperature 19.0C/66.2F. Wind: 2.0 m/s (4.0 kt). Wind Bearing: 30.0 degrees", "heart_rate": {"max": 186, "average": 145}, "source": "rowingdata", "date_utc": "2018-06-26 13:06:01", "time_formatted": "1:00:55.9", "time": 36559, "date": "2018-06-26 15:06:01", "timezone": "Europe/Prague", "type": "water", "id": 33991239, "stroke_data": true}, {"distance": 10194, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": null, "heart_rate": {"max": 155, "average": 129}, "source": "rowingdata", "date_utc": "2018-06-24 05:34:01", "time_formatted": "57:49.0", "time": 34690, "date": "2018-06-24 07:34:01", "timezone": "Europe/Prague", "type": "water", "id": 33932560, "stroke_data": true}, {"distance": 3344, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 156, "average": 146}, "source": "rowingdata", "date_utc": "2018-06-22 04:33:01", "time_formatted": "16:55.7", "time": 10157, "date": "2018-06-22 06:33:01", "timezone": "Europe/Prague", "type": "water", "id": 33917067, "stroke_data": true}, {"distance": 9298, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 167, "average": 150}, "source": "rowingdata", "date_utc": "2018-06-22 03:41:04", "time_formatted": "50:44.0", "time": 30440, "date": "2018-06-22 05:41:04", "timezone": "Europe/Prague", "type": "water", "id": 33917065, "stroke_data": true}, {"distance": 10437, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 187, "average": 152}, "source": "rowingdata", "date_utc": "2018-06-19 03:57:02", "time_formatted": "56:06.9", "time": 33669, "date": "2018-06-19 05:57:02", "timezone": "Europe/Prague", "type": "water", "id": 33887139, "stroke_data": true}, {"distance": 10313, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 163, "average": 143}, "source": "rowingdata", "date_utc": "2018-06-18 14:05:05", "time_formatted": "55:54.9", "time": 33549, "date": "2018-06-18 16:05:05", "timezone": "Europe/Prague", "type": "water", "id": 33882203, "stroke_data": true}, {"distance": 8196, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-06-16 11:17:06", "time_formatted": "52:10.5", "time": 31305, "date": "2018-06-16 13:17:06", "timezone": "Europe/Vienna", "type": "water", "id": 33864823, "stroke_data": true}, {"distance": 5182, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-06-16 06:04:00", "time_formatted": "40:48.2", "time": 24482, "date": "2018-06-16 08:04:00", "timezone": "Europe/Vienna", "type": "water", "id": 33864818, "stroke_data": true}, {"distance": 7301, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-06-15 06:05:04", "time_formatted": "39:44.2", "time": 23842, "date": "2018-06-15 08:05:04", "timezone": "Europe/Vienna", "type": "water", "id": 33864810, "stroke_data": true}, {"distance": 4191, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 182, "average": 136}, "source": "rowingdata", "date_utc": "2018-06-13 14:11:02", "time_formatted": "23:36.4", "time": 14164, "date": "2018-06-13 16:11:02", "timezone": "Europe/Prague", "type": "water", "id": 33839438, "stroke_data": true}, {"distance": 10369, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-06-11 13:21:01", "time_formatted": "56:21.4", "time": 33814, "date": "2018-06-11 15:21:01", "timezone": "Europe/Prague", "type": "water", "id": 33819736, "stroke_data": true}, {"distance": 5273, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 179, "average": 122}, "source": "rowingdata", "date_utc": "2018-06-06 15:40:24", "time_formatted": "42:59.0", "time": 25790, "date": "2018-06-06 17:40:24", "timezone": "Europe/Vienna", "type": "rower", "id": 33778128, "stroke_data": true}, {"distance": 12744, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 177, "average": 153}, "source": "rowingdata", "date_utc": "2018-06-05 13:51:01", "time_formatted": "1:08:22.2", "time": 41022, "date": "2018-06-05 15:51:01", "timezone": "Europe/Prague", "type": "water", "id": 33768992, "stroke_data": true}, {"distance": 6125, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 171, "average": 131}, "source": "rowingdata", "date_utc": "2018-06-03 13:50:25", "time_formatted": "48:38.7", "time": 29187, "date": "2018-06-03 15:50:25", "timezone": "Europe/Prague", "type": "rower", "id": 33748824, "stroke_data": true}, {"distance": 10830, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 181, "average": 137}, "source": "rowingdata", "date_utc": "2018-06-03 05:57:02", "time_formatted": "1:04:35.9", "time": 38759, "date": "2018-06-03 07:57:02", "timezone": "Europe/Prague", "type": "water", "id": 33750811, "stroke_data": true}, {"distance": 12511, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 184, "average": 154}, "source": "rowingdata", "date_utc": "2018-06-02 15:00:07", "time_formatted": "1:07:58.0", "time": 40780, "date": "2018-06-02 17:00:07", "timezone": "Europe/Prague", "type": "water", "id": 33745766, "stroke_data": true}, {"distance": 8837, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 173, "average": 158}, "source": "rowingdata", "date_utc": "2018-05-31 14:30:07", "time_formatted": "47:42.5", "time": 28625, "date": "2018-05-31 16:30:07", "timezone": "Europe/Prague", "type": "water", "id": 33726032, "stroke_data": true}, {"distance": 11237, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 186, "average": 143}, "source": "rowingdata", "date_utc": "2018-05-30 16:05:25", "time_formatted": "1:04:45.5", "time": 38855, "date": "2018-05-30 18:05:25", "timezone": "Europe/Prague", "type": "rower", "id": 33716392, "stroke_data": true}, {"distance": 9642, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 168, "average": 145}, "source": "rowingdata", "date_utc": "2018-05-28 13:11:01", "time_formatted": "56:16.2", "time": 33762, "date": "2018-05-28 15:11:01", "timezone": "Europe/Prague", "type": "water", "id": 33697689, "stroke_data": true}, {"distance": 10663, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 172, "average": 156}, "source": "rowingdata", "date_utc": "2018-05-27 08:17:01", "time_formatted": "59:29.7", "time": 35697, "date": "2018-05-27 10:17:01", "timezone": "Europe/Prague", "type": "water", "id": 33687972, "stroke_data": true}, {"distance": 5929, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-05-13 14:51:01", "time_formatted": "43:44.5", "time": 26245, "date": "2018-05-13 16:51:01", "timezone": "Europe/Bratislava", "type": "rower", "id": 33561968, "stroke_data": true}, {"distance": 2723, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-05-13 14:50:32", "time_formatted": "27:17.2", "time": 16372, "date": "2018-05-13 16:50:32", "timezone": "Europe/Bratislava", "type": "rower", "id": 33561963, "stroke_data": true}, {"distance": 4605, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 156, "average": 126}, "source": "rowingdata", "date_utc": "2018-05-13 05:57:02", "time_formatted": "35:11.7", "time": 21117, "date": "2018-05-13 07:57:02", "timezone": "Europe/Bratislava", "type": "water", "id": 33561979, "stroke_data": true}, {"distance": 11983, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 0, "average": 0}, "source": "rowingdata", "date_utc": "2018-05-10 14:15:02", "time_formatted": "1:01:26.0", "time": 36860, "date": "2018-05-10 16:15:02", "timezone": "Europe/Prague", "type": "water", "id": 33561976, "stroke_data": true}, {"distance": 11019, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 183, "average": 156}, "source": "rowingdata", "date_utc": "2018-05-07 13:41:06", "time_formatted": "1:00:40.5", "time": 36405, "date": "2018-05-07 15:41:06", "timezone": "Europe/Prague", "type": "water", "id": 33504617, "stroke_data": true}, {"distance": 1152, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 143, "average": 133}, "source": "rowingdata", "date_utc": "2018-05-05 06:11:04", "time_formatted": "6:56.2", "time": 4162, "date": "2018-05-05 08:11:04", "timezone": "Europe/Prague", "type": "water", "id": 33483794, "stroke_data": true}, {"distance": 11180, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 177, "average": 143}, "source": "rowingdata", "date_utc": "2018-05-05 05:06:02", "time_formatted": "1:01:01.7", "time": 36617, "date": "2018-05-05 07:06:02", "timezone": "Europe/Prague", "type": "water", "id": 33483792, "stroke_data": true}, {"distance": 1009, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 151, "average": 141}, "source": "rowingdata", "date_utc": "2018-05-04 04:35:04", "time_formatted": "6:44.5", "time": 4045, "date": "2018-05-04 06:35:04", "timezone": "Europe/Prague", "type": "water", "id": 33474608, "stroke_data": true}, {"distance": 5997, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 183, "average": 173}, "source": "rowingdata", "date_utc": "2018-05-04 04:07:04", "time_formatted": "25:53.9", "time": 15539, "date": "2018-05-04 06:07:04", "timezone": "Europe/Prague", "type": "water", "id": 33474605, "stroke_data": true}, {"distance": 3472, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 169, "average": 152}, "source": "rowingdata", "date_utc": "2018-05-04 03:47:04", "time_formatted": "18:53.7", "time": 11337, "date": "2018-05-04 05:47:04", "timezone": "Europe/Prague", "type": "water", "id": 33474604, "stroke_data": true}, {"distance": 8040, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 151, "average": 126}, "source": "rowingdata", "date_utc": "2018-04-29 05:22:01", "time_formatted": "50:05.5", "time": 30055, "date": "2018-04-29 07:22:01", "timezone": "Europe/Prague", "type": "water", "id": 33415283, "stroke_data": true}, {"distance": 11924, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 173, "average": 136}, "source": "rowingdata", "date_utc": "2018-04-28 06:02:01", "time_formatted": "1:18:20.5", "time": 47005, "date": "2018-04-28 08:02:01", "timezone": "Europe/Prague", "type": "water", "id": 33404848, "stroke_data": true}, {"distance": 1301, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 178, "average": 147}, "source": "rowingdata", "date_utc": "2018-04-26 14:56:03", "time_formatted": "7:07.2", "time": 4272, "date": "2018-04-26 16:56:03", "timezone": "Europe/Prague", "type": "water", "id": 33387500, "stroke_data": true}, {"distance": 4605, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 186, "average": 160}, "source": "rowingdata", "date_utc": "2018-04-26 14:33:00", "time_formatted": "22:35.7", "time": 13557, "date": "2018-04-26 16:33:00", "timezone": "Europe/Prague", "type": "water", "id": 33387495, "stroke_data": true}, {"distance": 2016, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 154, "average": 116}, "source": "rowingdata", "date_utc": "2018-04-26 14:18:01", "time_formatted": "12:30.5", "time": 7505, "date": "2018-04-26 16:18:01", "timezone": "Europe/Prague", "type": "water", "id": 33387492, "stroke_data": true}, {"distance": 10171, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": null, "heart_rate": {"max": 182, "average": 118}, "source": "rowingdata", "date_utc": "2018-04-25 15:50:26", "time_formatted": "1:12:33.6", "time": 43536, "date": "2018-04-25 17:50:26", "timezone": "Europe/Prague", "type": "rower", "id": 33376721, "stroke_data": true}, {"distance": 7516, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 180, "average": 156}, "source": "rowingdata", "date_utc": "2018-04-24 10:32:00", "time_formatted": "38:49.5", "time": 23295, "date": "2018-04-24 12:32:00", "timezone": "Europe/Prague", "type": "water", "id": 33363345, "stroke_data": true}, {"distance": 2959, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 157, "average": 144}, "source": "rowingdata", "date_utc": "2018-04-24 10:12:03", "time_formatted": "16:42.7", "time": 10027, "date": "2018-04-24 12:12:03", "timezone": "Europe/Prague", "type": "water", "id": 33363343, "stroke_data": true}, {"distance": 13558, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": "imported through email", "heart_rate": {"max": 162, "average": 148}, "source": "rowingdata", "date_utc": "2018-04-23 15:46:25", "time_formatted": "58:11.9", "time": 34919, "date": "2018-04-23 17:46:25", "timezone": "Europe/Prague", "type": "rower", "id": 33354872, "stroke_data": true}, {"distance": 12282, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 181, "average": 144}, "source": "rowingdata", "date_utc": "2018-04-22 05:15:01", "time_formatted": "1:08:28.7", "time": 41087, "date": "2018-04-22 07:15:01", "timezone": "Europe/Prague", "type": "water", "id": 33340433, "stroke_data": true}, {"distance": 5254, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email\nSummary for your location at 2018-04-21T16:30:00Z: Temperature 24.0C/75.2F. Wind: 2.5 m/s (5.0 kt). Wind Bearing: 170.0 degrees", "heart_rate": {"max": 147, "average": 131}, "source": "rowingdata", "date_utc": "2018-04-21 13:38:04", "time_formatted": "27:02.7", "time": 16227, "date": "2018-04-21 15:38:04", "timezone": "Europe/Prague", "type": "water", "id": 33339889, "stroke_data": true}, {"distance": 9748, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email\nSummary for your location at 2018-04-20T16:30:00Z: Temperature 23.0C/73.4F. Wind: 2.0 m/s (4.0 kt). Wind Bearing: 120.0 degrees", "heart_rate": {"max": 173, "average": 117}, "source": "rowingdata", "date_utc": "2018-04-20 13:51:41", "time_formatted": "1:06:50.2", "time": 40102, "date": "2018-04-20 15:51:41", "timezone": "Europe/Prague", "type": "water", "id": 33326929, "stroke_data": true}, {"distance": 1512, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 163, "average": 140}, "source": "rowingdata", "date_utc": "2018-04-18 12:49:06", "time_formatted": "8:27.7", "time": 5077, "date": "2018-04-18 14:49:06", "timezone": "Europe/Prague", "type": "water", "id": 33305856, "stroke_data": true}, {"distance": 7979, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 183, "average": 173}, "source": "rowingdata", "date_utc": "2018-04-18 11:57:01", "time_formatted": "36:10.7", "time": 21707, "date": "2018-04-18 13:57:01", "timezone": "Europe/Prague", "type": "water", "id": 33305853, "stroke_data": true}, {"distance": 1942, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 150, "average": 136}, "source": "rowingdata", "date_utc": "2018-04-18 11:43:04", "time_formatted": "10:55.4", "time": 6554, "date": "2018-04-18 13:43:04", "timezone": "Europe/Prague", "type": "water", "id": 33305852, "stroke_data": true}, {"distance": 11129, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 183, "average": 151}, "source": "rowingdata", "date_utc": "2018-04-15 06:34:05", "time_formatted": "1:03:38.0", "time": 38180, "date": "2018-04-15 08:34:05", "timezone": "Europe/Prague", "type": "water", "id": 33268721, "stroke_data": true}, {"distance": 10408, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "imported through email", "heart_rate": {"max": 176, "average": 151}, "source": "rowingdata", "date_utc": "2018-04-12 14:17:02", "time_formatted": "53:45.2", "time": 32252, "date": "2018-04-12 16:17:02", "timezone": "Europe/Prague", "type": "water", "id": 33241099, "stroke_data": true}, {"distance": 10122, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": false, "comments": "\nFailed to download METAR data\nSummary for your location at 2018-04-11T19:15:25+00:00: Clear. Temperature 58.26F/14.5C. Wind: 1.97 m/s. Wind Bearing: 145 degrees\n from unknown via rowsandall.com", "heart_rate": {"max": 150, "average": 110}, "source": "rowingdata", "date_utc": "2018-04-11 16:37:27", "time_formatted": "1:15:44.2", "time": 45442, "date": "2018-04-11 18:37:27", "timezone": "Europe/Prague", "type": "water", "id": 33229660, "stroke_data": true}, {"distance": 17284, "user_id": 457764, "ranked": false, "weight_class": "L", "verified": false, "workout_type": "unknown", "comments": "imported through email", "heart_rate": {"max": 167, "average": 161}, "source": "rowingdata", "date_utc": "2018-04-10 16:27:53", "time_formatted": "1:11:55.5", "time": 43155, "date": "2018-04-10 18:27:53", "timezone": "Europe/Prague", "type": "rower", "id": 33216705, "stroke_data": true}]}
\ No newline at end of file
diff --git a/rowers/testdata/rkstrokes.txt b/rowers/testdata/rkstrokes.txt
new file mode 100644
index 00000000..9ee02165
--- /dev/null
+++ b/rowers/testdata/rkstrokes.txt
@@ -0,0 +1 @@
+{"entry_mode": "API", "nearest_teammate_diabetes": ["/nearestMeasurement/DIABETES/4034650/1530351061000"], "average_heart_rate": 156, "share": "Everyone", "images": [], "nearest_general_measurement": "/nearestMeasurement/GENERAL/4034650/1530351061000", "nearest_strength_training_activity": "/nearestStrengthTrainingActivity/4034650/1530351061000", "duration": 4875, "nearest_teammate_fitness_activities": ["/nearestFitnessActivity/4034650/1530351061000"], "previous": "/prevFitnessActivity/4034650/1530351061000", "nearest_background_activity": "/nearestMeasurement/BACKGROUND_ACTIVITY/4034650/1530351061000", "equipment": "None", "nearest_diabetes": "/nearestMeasurement/DIABETES/4034650/1530351061000", "total_calories": 757.036959250791, "userID": 4034650, "comments": "/fitnessActivities/1189208384/comments", "next": "/nextFitnessActivity/4034650/1530351061000", "source": "tapiriik", "heart_rate": [{"timestamp": 0, "heart_rate": 110}, {"timestamp": 1, "heart_rate": 111}, {"timestamp": 4, "heart_rate": 110}, {"timestamp": 7, "heart_rate": 110}, {"timestamp": 9, "heart_rate": 107}, {"timestamp": 12, "heart_rate": 107}, {"timestamp": 14, "heart_rate": 108}, {"timestamp": 28, "heart_rate": 100}, {"timestamp": 29, "heart_rate": 99}, {"timestamp": 32, "heart_rate": 97}, {"timestamp": 33, "heart_rate": 96}, {"timestamp": 34, "heart_rate": 96}, {"timestamp": 36, "heart_rate": 98}, {"timestamp": 44, "heart_rate": 102}, {"timestamp": 46, "heart_rate": 102}, {"timestamp": 50, "heart_rate": 101}, {"timestamp": 54, "heart_rate": 101}, {"timestamp": 58, "heart_rate": 103}, {"timestamp": 61, "heart_rate": 104}, {"timestamp": 65, "heart_rate": 106}, {"timestamp": 68, "heart_rate": 107}, {"timestamp": 71, "heart_rate": 107}, {"timestamp": 74, "heart_rate": 109}, {"timestamp": 77, "heart_rate": 112}, {"timestamp": 80, "heart_rate": 115}, {"timestamp": 84, "heart_rate": 117}, {"timestamp": 87, "heart_rate": 118}, {"timestamp": 91, "heart_rate": 120}, {"timestamp": 94, "heart_rate": 124}, {"timestamp": 97, "heart_rate": 126}, {"timestamp": 101, "heart_rate": 125}, {"timestamp": 104, "heart_rate": 125}, {"timestamp": 106, "heart_rate": 125}, {"timestamp": 107, "heart_rate": 125}, {"timestamp": 111, "heart_rate": 127}, {"timestamp": 113, "heart_rate": 127}, {"timestamp": 115, "heart_rate": 132}, {"timestamp": 119, "heart_rate": 135}, {"timestamp": 122, "heart_rate": 137}, {"timestamp": 126, "heart_rate": 141}, {"timestamp": 129, "heart_rate": 142}, {"timestamp": 131, "heart_rate": 142}, {"timestamp": 133, "heart_rate": 142}, {"timestamp": 137, "heart_rate": 143}, {"timestamp": 140, "heart_rate": 143}, {"timestamp": 142, "heart_rate": 143}, {"timestamp": 144, "heart_rate": 142}, {"timestamp": 147, "heart_rate": 143}, {"timestamp": 151, "heart_rate": 142}, {"timestamp": 155, "heart_rate": 142}, {"timestamp": 158, "heart_rate": 142}, {"timestamp": 162, "heart_rate": 142}, {"timestamp": 166, "heart_rate": 144}, {"timestamp": 169, "heart_rate": 147}, {"timestamp": 173, "heart_rate": 148}, {"timestamp": 176, "heart_rate": 149}, {"timestamp": 180, "heart_rate": 147}, {"timestamp": 184, "heart_rate": 146}, {"timestamp": 188, "heart_rate": 145}, {"timestamp": 192, "heart_rate": 145}, {"timestamp": 195, "heart_rate": 145}, {"timestamp": 197, "heart_rate": 145}, {"timestamp": 199, "heart_rate": 145}, {"timestamp": 202, "heart_rate": 145}, {"timestamp": 205, "heart_rate": 145}, {"timestamp": 209, "heart_rate": 144}, {"timestamp": 212, "heart_rate": 144}, {"timestamp": 215, "heart_rate": 145}, {"timestamp": 219, "heart_rate": 146}, {"timestamp": 222, "heart_rate": 147}, {"timestamp": 226, "heart_rate": 148}, {"timestamp": 229, "heart_rate": 148}, {"timestamp": 232, "heart_rate": 147}, {"timestamp": 236, "heart_rate": 147}, {"timestamp": 239, "heart_rate": 148}, {"timestamp": 243, "heart_rate": 148}, {"timestamp": 246, "heart_rate": 148}, {"timestamp": 249, "heart_rate": 149}, {"timestamp": 253, "heart_rate": 149}, {"timestamp": 257, "heart_rate": 149}, {"timestamp": 260, "heart_rate": 149}, {"timestamp": 263, "heart_rate": 149}, {"timestamp": 266, "heart_rate": 150}, {"timestamp": 270, "heart_rate": 151}, {"timestamp": 273, "heart_rate": 151}, {"timestamp": 276, "heart_rate": 152}, {"timestamp": 279, "heart_rate": 152}, {"timestamp": 282, "heart_rate": 152}, {"timestamp": 286, "heart_rate": 153}, {"timestamp": 289, "heart_rate": 153}, {"timestamp": 292, "heart_rate": 155}, {"timestamp": 295, "heart_rate": 156}, {"timestamp": 298, "heart_rate": 157}, {"timestamp": 301, "heart_rate": 158}, {"timestamp": 304, "heart_rate": 158}, {"timestamp": 307, "heart_rate": 158}, {"timestamp": 310, "heart_rate": 158}, {"timestamp": 314, "heart_rate": 158}, {"timestamp": 317, "heart_rate": 158}, {"timestamp": 320, "heart_rate": 158}, {"timestamp": 323, "heart_rate": 158}, {"timestamp": 327, "heart_rate": 158}, {"timestamp": 330, "heart_rate": 158}, {"timestamp": 333, "heart_rate": 158}, {"timestamp": 336, "heart_rate": 158}, {"timestamp": 339, "heart_rate": 158}, {"timestamp": 343, "heart_rate": 158}, {"timestamp": 346, "heart_rate": 158}, {"timestamp": 349, "heart_rate": 158}, {"timestamp": 352, "heart_rate": 158}, {"timestamp": 355, "heart_rate": 158}, {"timestamp": 358, "heart_rate": 158}, {"timestamp": 361, "heart_rate": 158}, {"timestamp": 364, "heart_rate": 158}, {"timestamp": 367, "heart_rate": 158}, {"timestamp": 370, "heart_rate": 158}, {"timestamp": 373, "heart_rate": 158}, {"timestamp": 376, "heart_rate": 158}, {"timestamp": 380, "heart_rate": 158}, {"timestamp": 383, "heart_rate": 158}, {"timestamp": 386, "heart_rate": 158}, {"timestamp": 389, "heart_rate": 158}, {"timestamp": 392, "heart_rate": 158}, {"timestamp": 395, "heart_rate": 158}, {"timestamp": 398, "heart_rate": 158}, {"timestamp": 401, "heart_rate": 158}, {"timestamp": 404, "heart_rate": 158}, {"timestamp": 407, "heart_rate": 158}, {"timestamp": 410, "heart_rate": 158}, {"timestamp": 413, "heart_rate": 158}, {"timestamp": 416, "heart_rate": 158}, {"timestamp": 419, "heart_rate": 158}, {"timestamp": 423, "heart_rate": 158}, {"timestamp": 426, "heart_rate": 158}, {"timestamp": 429, "heart_rate": 158}, {"timestamp": 432, "heart_rate": 158}, {"timestamp": 435, "heart_rate": 158}, {"timestamp": 438, "heart_rate": 158}, {"timestamp": 442, "heart_rate": 158}, {"timestamp": 445, "heart_rate": 158}, {"timestamp": 449, "heart_rate": 158}, {"timestamp": 453, "heart_rate": 158}, {"timestamp": 456, "heart_rate": 158}, {"timestamp": 459, "heart_rate": 158}, {"timestamp": 462, "heart_rate": 158}, {"timestamp": 466, "heart_rate": 158}, {"timestamp": 469, "heart_rate": 158}, {"timestamp": 472, "heart_rate": 158}, {"timestamp": 476, "heart_rate": 158}, {"timestamp": 479, "heart_rate": 158}, {"timestamp": 483, "heart_rate": 158}, {"timestamp": 486, "heart_rate": 158}, {"timestamp": 489, "heart_rate": 158}, {"timestamp": 493, "heart_rate": 158}, {"timestamp": 496, "heart_rate": 158}, {"timestamp": 500, "heart_rate": 158}, {"timestamp": 503, "heart_rate": 158}, {"timestamp": 506, "heart_rate": 158}, {"timestamp": 510, "heart_rate": 158}, {"timestamp": 513, "heart_rate": 158}, {"timestamp": 517, "heart_rate": 158}, {"timestamp": 520, "heart_rate": 158}, {"timestamp": 524, "heart_rate": 158}, {"timestamp": 527, "heart_rate": 158}, {"timestamp": 531, "heart_rate": 158}, {"timestamp": 534, "heart_rate": 158}, {"timestamp": 537, "heart_rate": 158}, {"timestamp": 541, "heart_rate": 158}, {"timestamp": 544, "heart_rate": 158}, {"timestamp": 547, "heart_rate": 158}, {"timestamp": 550, "heart_rate": 158}, {"timestamp": 553, "heart_rate": 158}, {"timestamp": 556, "heart_rate": 158}, {"timestamp": 559, "heart_rate": 158}, {"timestamp": 562, "heart_rate": 158}, {"timestamp": 566, "heart_rate": 158}, {"timestamp": 569, "heart_rate": 158}, {"timestamp": 572, "heart_rate": 158}, {"timestamp": 575, "heart_rate": 158}, {"timestamp": 578, "heart_rate": 158}, {"timestamp": 582, "heart_rate": 158}, {"timestamp": 585, "heart_rate": 158}, {"timestamp": 588, "heart_rate": 158}, {"timestamp": 591, "heart_rate": 158}, {"timestamp": 594, "heart_rate": 158}, {"timestamp": 597, "heart_rate": 158}, {"timestamp": 600, "heart_rate": 158}, {"timestamp": 603, "heart_rate": 158}, {"timestamp": 606, "heart_rate": 158}, {"timestamp": 609, "heart_rate": 158}, {"timestamp": 612, "heart_rate": 158}, {"timestamp": 615, "heart_rate": 158}, {"timestamp": 618, "heart_rate": 158}, {"timestamp": 621, "heart_rate": 158}, {"timestamp": 624, "heart_rate": 158}, {"timestamp": 627, "heart_rate": 158}, {"timestamp": 629, "heart_rate": 158}, {"timestamp": 633, "heart_rate": 158}, {"timestamp": 636, "heart_rate": 158}, {"timestamp": 639, "heart_rate": 158}, {"timestamp": 642, "heart_rate": 158}, {"timestamp": 645, "heart_rate": 158}, {"timestamp": 648, "heart_rate": 158}, {"timestamp": 651, "heart_rate": 158}, {"timestamp": 653, "heart_rate": 158}, {"timestamp": 656, "heart_rate": 158}, {"timestamp": 659, "heart_rate": 158}, {"timestamp": 662, "heart_rate": 158}, {"timestamp": 665, "heart_rate": 158}, {"timestamp": 668, "heart_rate": 158}, {"timestamp": 671, "heart_rate": 158}, {"timestamp": 674, "heart_rate": 158}, {"timestamp": 677, "heart_rate": 158}, {"timestamp": 680, "heart_rate": 158}, {"timestamp": 683, "heart_rate": 158}, {"timestamp": 685, "heart_rate": 158}, {"timestamp": 688, "heart_rate": 158}, {"timestamp": 691, "heart_rate": 158}, {"timestamp": 694, "heart_rate": 158}, {"timestamp": 697, "heart_rate": 158}, {"timestamp": 700, "heart_rate": 158}, {"timestamp": 703, "heart_rate": 158}, {"timestamp": 706, "heart_rate": 158}, {"timestamp": 709, "heart_rate": 158}, {"timestamp": 712, "heart_rate": 158}, {"timestamp": 715, "heart_rate": 158}, {"timestamp": 717, "heart_rate": 158}, {"timestamp": 720, "heart_rate": 158}, {"timestamp": 723, "heart_rate": 158}, {"timestamp": 726, "heart_rate": 158}, {"timestamp": 729, "heart_rate": 158}, {"timestamp": 732, "heart_rate": 158}, {"timestamp": 735, "heart_rate": 158}, {"timestamp": 737, "heart_rate": 158}, {"timestamp": 740, "heart_rate": 158}, {"timestamp": 743, "heart_rate": 158}, {"timestamp": 745, "heart_rate": 158}, {"timestamp": 748, "heart_rate": 158}, {"timestamp": 751, "heart_rate": 158}, {"timestamp": 753, "heart_rate": 158}, {"timestamp": 756, "heart_rate": 158}, {"timestamp": 759, "heart_rate": 158}, {"timestamp": 761, "heart_rate": 158}, {"timestamp": 764, "heart_rate": 158}, {"timestamp": 767, "heart_rate": 158}, {"timestamp": 769, "heart_rate": 158}, {"timestamp": 772, "heart_rate": 158}, {"timestamp": 775, "heart_rate": 158}, {"timestamp": 777, "heart_rate": 158}, {"timestamp": 780, "heart_rate": 158}, {"timestamp": 783, "heart_rate": 158}, {"timestamp": 786, "heart_rate": 158}, {"timestamp": 788, "heart_rate": 158}, {"timestamp": 791, "heart_rate": 158}, {"timestamp": 794, "heart_rate": 158}, {"timestamp": 796, "heart_rate": 158}, {"timestamp": 799, "heart_rate": 158}, {"timestamp": 802, "heart_rate": 158}, {"timestamp": 805, "heart_rate": 158}, {"timestamp": 808, "heart_rate": 158}, {"timestamp": 810, "heart_rate": 158}, {"timestamp": 813, "heart_rate": 158}, {"timestamp": 816, "heart_rate": 158}, {"timestamp": 819, "heart_rate": 158}, {"timestamp": 822, "heart_rate": 158}, {"timestamp": 824, "heart_rate": 158}, {"timestamp": 827, "heart_rate": 158}, {"timestamp": 830, "heart_rate": 158}, {"timestamp": 833, "heart_rate": 158}, {"timestamp": 836, "heart_rate": 158}, {"timestamp": 838, "heart_rate": 158}, {"timestamp": 841, "heart_rate": 158}, {"timestamp": 844, "heart_rate": 158}, {"timestamp": 847, "heart_rate": 158}, {"timestamp": 850, "heart_rate": 158}, {"timestamp": 852, "heart_rate": 158}, {"timestamp": 855, "heart_rate": 158}, {"timestamp": 858, "heart_rate": 158}, {"timestamp": 861, "heart_rate": 158}, {"timestamp": 864, "heart_rate": 158}, {"timestamp": 867, "heart_rate": 158}, {"timestamp": 870, "heart_rate": 158}, {"timestamp": 872, "heart_rate": 158}, {"timestamp": 875, "heart_rate": 158}, {"timestamp": 878, "heart_rate": 158}, {"timestamp": 880, "heart_rate": 158}, {"timestamp": 883, "heart_rate": 158}, {"timestamp": 886, "heart_rate": 158}, {"timestamp": 889, "heart_rate": 158}, {"timestamp": 891, "heart_rate": 158}, {"timestamp": 894, "heart_rate": 158}, {"timestamp": 897, "heart_rate": 158}, {"timestamp": 900, "heart_rate": 158}, {"timestamp": 903, "heart_rate": 158}, {"timestamp": 905, "heart_rate": 158}, {"timestamp": 908, "heart_rate": 158}, {"timestamp": 911, "heart_rate": 158}, {"timestamp": 914, "heart_rate": 158}, {"timestamp": 916, "heart_rate": 158}, {"timestamp": 919, "heart_rate": 158}, {"timestamp": 922, "heart_rate": 158}, {"timestamp": 925, "heart_rate": 158}, {"timestamp": 927, "heart_rate": 158}, {"timestamp": 930, "heart_rate": 158}, {"timestamp": 933, "heart_rate": 158}, {"timestamp": 936, "heart_rate": 158}, {"timestamp": 939, "heart_rate": 158}, {"timestamp": 942, "heart_rate": 158}, {"timestamp": 945, "heart_rate": 158}, {"timestamp": 947, "heart_rate": 158}, {"timestamp": 950, "heart_rate": 158}, {"timestamp": 953, "heart_rate": 158}, {"timestamp": 956, "heart_rate": 158}, {"timestamp": 959, "heart_rate": 158}, {"timestamp": 961, "heart_rate": 158}, {"timestamp": 964, "heart_rate": 158}, {"timestamp": 967, "heart_rate": 158}, {"timestamp": 970, "heart_rate": 158}, {"timestamp": 973, "heart_rate": 158}, {"timestamp": 976, "heart_rate": 158}, {"timestamp": 979, "heart_rate": 158}, {"timestamp": 982, "heart_rate": 158}, {"timestamp": 985, "heart_rate": 158}, {"timestamp": 987, "heart_rate": 158}, {"timestamp": 990, "heart_rate": 158}, {"timestamp": 993, "heart_rate": 158}, {"timestamp": 996, "heart_rate": 158}, {"timestamp": 999, "heart_rate": 158}, {"timestamp": 1002, "heart_rate": 158}, {"timestamp": 1005, "heart_rate": 158}, {"timestamp": 1007, "heart_rate": 158}, {"timestamp": 1013, "heart_rate": 158}, {"timestamp": 1019, "heart_rate": 158}, {"timestamp": 1023, "heart_rate": 158}, {"timestamp": 1026, "heart_rate": 158}, {"timestamp": 1029, "heart_rate": 158}, {"timestamp": 1031, "heart_rate": 158}, {"timestamp": 1034, "heart_rate": 158}, {"timestamp": 1037, "heart_rate": 158}, {"timestamp": 1040, "heart_rate": 158}, {"timestamp": 1044, "heart_rate": 158}, {"timestamp": 1047, "heart_rate": 158}, {"timestamp": 1050, "heart_rate": 158}, {"timestamp": 1053, "heart_rate": 158}, {"timestamp": 1056, "heart_rate": 158}, {"timestamp": 1059, "heart_rate": 158}, {"timestamp": 1061, "heart_rate": 158}, {"timestamp": 1065, "heart_rate": 158}, {"timestamp": 1067, "heart_rate": 158}, {"timestamp": 1071, "heart_rate": 158}, {"timestamp": 1074, "heart_rate": 158}, {"timestamp": 1077, "heart_rate": 158}, {"timestamp": 1080, "heart_rate": 158}, {"timestamp": 1083, "heart_rate": 158}, {"timestamp": 1086, "heart_rate": 158}, {"timestamp": 1089, "heart_rate": 158}, {"timestamp": 1092, "heart_rate": 158}, {"timestamp": 1095, "heart_rate": 158}, {"timestamp": 1098, "heart_rate": 158}, {"timestamp": 1101, "heart_rate": 158}, {"timestamp": 1104, "heart_rate": 158}, {"timestamp": 1107, "heart_rate": 158}, {"timestamp": 1110, "heart_rate": 158}, {"timestamp": 1113, "heart_rate": 158}, {"timestamp": 1116, "heart_rate": 158}, {"timestamp": 1119, "heart_rate": 158}, {"timestamp": 1122, "heart_rate": 158}, {"timestamp": 1125, "heart_rate": 158}, {"timestamp": 1128, "heart_rate": 158}, {"timestamp": 1131, "heart_rate": 158}, {"timestamp": 1134, "heart_rate": 158}, {"timestamp": 1137, "heart_rate": 158}, {"timestamp": 1140, "heart_rate": 158}, {"timestamp": 1143, "heart_rate": 158}, {"timestamp": 1145, "heart_rate": 158}, {"timestamp": 1148, "heart_rate": 158}, {"timestamp": 1151, "heart_rate": 158}, {"timestamp": 1154, "heart_rate": 158}, {"timestamp": 1157, "heart_rate": 158}, {"timestamp": 1160, "heart_rate": 158}, {"timestamp": 1163, "heart_rate": 158}, {"timestamp": 1166, "heart_rate": 158}, {"timestamp": 1168, "heart_rate": 158}, {"timestamp": 1171, "heart_rate": 158}, {"timestamp": 1174, "heart_rate": 158}, {"timestamp": 1177, "heart_rate": 158}, {"timestamp": 1180, "heart_rate": 158}, {"timestamp": 1183, "heart_rate": 158}, {"timestamp": 1186, "heart_rate": 158}, {"timestamp": 1189, "heart_rate": 158}, {"timestamp": 1191, "heart_rate": 158}, {"timestamp": 1194, "heart_rate": 158}, {"timestamp": 1197, "heart_rate": 158}, {"timestamp": 1199, "heart_rate": 158}, {"timestamp": 1201, "heart_rate": 158}, {"timestamp": 1203, "heart_rate": 158}, {"timestamp": 1206, "heart_rate": 158}, {"timestamp": 1208, "heart_rate": 158}, {"timestamp": 1210, "heart_rate": 158}, {"timestamp": 1212, "heart_rate": 158}, {"timestamp": 1214, "heart_rate": 158}, {"timestamp": 1216, "heart_rate": 158}, {"timestamp": 1219, "heart_rate": 158}, {"timestamp": 1220, "heart_rate": 158}, {"timestamp": 1222, "heart_rate": 158}, {"timestamp": 1225, "heart_rate": 158}, {"timestamp": 1227, "heart_rate": 158}, {"timestamp": 1229, "heart_rate": 158}, {"timestamp": 1231, "heart_rate": 158}, {"timestamp": 1233, "heart_rate": 158}, {"timestamp": 1235, "heart_rate": 158}, {"timestamp": 1237, "heart_rate": 158}, {"timestamp": 1239, "heart_rate": 158}, {"timestamp": 1242, "heart_rate": 158}, {"timestamp": 1244, "heart_rate": 158}, {"timestamp": 1246, "heart_rate": 158}, {"timestamp": 1248, "heart_rate": 158}, {"timestamp": 1250, "heart_rate": 158}, {"timestamp": 1253, "heart_rate": 158}, {"timestamp": 1255, "heart_rate": 158}, {"timestamp": 1257, "heart_rate": 158}, {"timestamp": 1259, "heart_rate": 158}, {"timestamp": 1262, "heart_rate": 158}, {"timestamp": 1264, "heart_rate": 158}, {"timestamp": 1266, "heart_rate": 158}, {"timestamp": 1268, "heart_rate": 158}, {"timestamp": 1270, "heart_rate": 158}, {"timestamp": 1272, "heart_rate": 158}, {"timestamp": 1274, "heart_rate": 158}, {"timestamp": 1277, "heart_rate": 158}, {"timestamp": 1279, "heart_rate": 158}, {"timestamp": 1281, "heart_rate": 158}, {"timestamp": 1283, "heart_rate": 158}, {"timestamp": 1285, "heart_rate": 158}, {"timestamp": 1287, "heart_rate": 158}, {"timestamp": 1289, "heart_rate": 158}, {"timestamp": 1291, "heart_rate": 158}, {"timestamp": 1293, "heart_rate": 158}, {"timestamp": 1296, "heart_rate": 158}, {"timestamp": 1298, "heart_rate": 158}, {"timestamp": 1300, "heart_rate": 158}, {"timestamp": 1302, "heart_rate": 158}, {"timestamp": 1305, "heart_rate": 158}, {"timestamp": 1307, "heart_rate": 158}, {"timestamp": 1309, "heart_rate": 158}, {"timestamp": 1311, "heart_rate": 158}, {"timestamp": 1313, "heart_rate": 158}, {"timestamp": 1315, "heart_rate": 158}, {"timestamp": 1317, "heart_rate": 158}, {"timestamp": 1319, "heart_rate": 158}, {"timestamp": 1321, "heart_rate": 158}, {"timestamp": 1324, "heart_rate": 158}, {"timestamp": 1325, "heart_rate": 158}, {"timestamp": 1328, "heart_rate": 158}, {"timestamp": 1330, "heart_rate": 158}, {"timestamp": 1332, "heart_rate": 158}, {"timestamp": 1334, "heart_rate": 158}, {"timestamp": 1336, "heart_rate": 158}, {"timestamp": 1338, "heart_rate": 158}, {"timestamp": 1340, "heart_rate": 158}, {"timestamp": 1343, "heart_rate": 158}, {"timestamp": 1345, "heart_rate": 158}, {"timestamp": 1347, "heart_rate": 158}, {"timestamp": 1349, "heart_rate": 158}, {"timestamp": 1351, "heart_rate": 158}, {"timestamp": 1353, "heart_rate": 158}, {"timestamp": 1355, "heart_rate": 158}, {"timestamp": 1357, "heart_rate": 158}, {"timestamp": 1360, "heart_rate": 158}, {"timestamp": 1362, "heart_rate": 158}, {"timestamp": 1364, "heart_rate": 158}, {"timestamp": 1366, "heart_rate": 158}, {"timestamp": 1368, "heart_rate": 158}, {"timestamp": 1370, "heart_rate": 158}, {"timestamp": 1372, "heart_rate": 158}, {"timestamp": 1374, "heart_rate": 158}, {"timestamp": 1376, "heart_rate": 158}, {"timestamp": 1378, "heart_rate": 158}, {"timestamp": 1380, "heart_rate": 158}, {"timestamp": 1382, "heart_rate": 158}, {"timestamp": 1385, "heart_rate": 158}, {"timestamp": 1387, "heart_rate": 158}, {"timestamp": 1389, "heart_rate": 158}, {"timestamp": 1391, "heart_rate": 158}, {"timestamp": 1393, "heart_rate": 158}, {"timestamp": 1395, "heart_rate": 158}, {"timestamp": 1397, "heart_rate": 158}, {"timestamp": 1399, "heart_rate": 158}, {"timestamp": 1402, "heart_rate": 158}, {"timestamp": 1404, "heart_rate": 158}, {"timestamp": 1406, "heart_rate": 158}, {"timestamp": 1408, "heart_rate": 158}, {"timestamp": 1410, "heart_rate": 158}, {"timestamp": 1412, "heart_rate": 158}, {"timestamp": 1414, "heart_rate": 158}, {"timestamp": 1417, "heart_rate": 158}, {"timestamp": 1419, "heart_rate": 158}, {"timestamp": 1421, "heart_rate": 158}, {"timestamp": 1423, "heart_rate": 158}, {"timestamp": 1425, "heart_rate": 158}, {"timestamp": 1427, "heart_rate": 158}, {"timestamp": 1430, "heart_rate": 158}, {"timestamp": 1432, "heart_rate": 158}, {"timestamp": 1434, "heart_rate": 158}, {"timestamp": 1437, "heart_rate": 158}, {"timestamp": 1440, "heart_rate": 158}, {"timestamp": 1443, "heart_rate": 158}, {"timestamp": 1446, "heart_rate": 158}, {"timestamp": 1450, "heart_rate": 158}, {"timestamp": 1453, "heart_rate": 158}, {"timestamp": 1456, "heart_rate": 158}, {"timestamp": 1459, "heart_rate": 158}, {"timestamp": 1463, "heart_rate": 158}, {"timestamp": 1466, "heart_rate": 158}, {"timestamp": 1469, "heart_rate": 158}, {"timestamp": 1472, "heart_rate": 158}, {"timestamp": 1476, "heart_rate": 158}, {"timestamp": 1479, "heart_rate": 158}, {"timestamp": 1482, "heart_rate": 158}, {"timestamp": 1485, "heart_rate": 158}, {"timestamp": 1488, "heart_rate": 158}, {"timestamp": 1491, "heart_rate": 158}, {"timestamp": 1494, "heart_rate": 158}, {"timestamp": 1497, "heart_rate": 158}, {"timestamp": 1500, "heart_rate": 158}, {"timestamp": 1503, "heart_rate": 158}, {"timestamp": 1507, "heart_rate": 158}, {"timestamp": 1510, "heart_rate": 158}, {"timestamp": 1513, "heart_rate": 158}, {"timestamp": 1516, "heart_rate": 158}, {"timestamp": 1519, "heart_rate": 158}, {"timestamp": 1522, "heart_rate": 158}, {"timestamp": 1525, "heart_rate": 158}, {"timestamp": 1528, "heart_rate": 158}, {"timestamp": 1531, "heart_rate": 158}, {"timestamp": 1534, "heart_rate": 158}, {"timestamp": 1537, "heart_rate": 158}, {"timestamp": 1540, "heart_rate": 158}, {"timestamp": 1543, "heart_rate": 158}, {"timestamp": 1546, "heart_rate": 158}, {"timestamp": 1549, "heart_rate": 158}, {"timestamp": 1552, "heart_rate": 158}, {"timestamp": 1554, "heart_rate": 158}, {"timestamp": 1557, "heart_rate": 158}, {"timestamp": 1560, "heart_rate": 158}, {"timestamp": 1563, "heart_rate": 158}, {"timestamp": 1566, "heart_rate": 158}, {"timestamp": 1569, "heart_rate": 158}, {"timestamp": 1572, "heart_rate": 158}, {"timestamp": 1575, "heart_rate": 158}, {"timestamp": 1578, "heart_rate": 158}, {"timestamp": 1581, "heart_rate": 158}, {"timestamp": 1584, "heart_rate": 158}, {"timestamp": 1587, "heart_rate": 158}, {"timestamp": 1590, "heart_rate": 158}, {"timestamp": 1593, "heart_rate": 158}, {"timestamp": 1596, "heart_rate": 158}, {"timestamp": 1599, "heart_rate": 158}, {"timestamp": 1602, "heart_rate": 158}, {"timestamp": 1615, "heart_rate": 158}, {"timestamp": 1619, "heart_rate": 158}, {"timestamp": 1622, "heart_rate": 158}, {"timestamp": 1625, "heart_rate": 158}, {"timestamp": 1628, "heart_rate": 158}, {"timestamp": 1631, "heart_rate": 158}, {"timestamp": 1634, "heart_rate": 158}, {"timestamp": 1637, "heart_rate": 158}, {"timestamp": 1640, "heart_rate": 158}, {"timestamp": 1643, "heart_rate": 158}, {"timestamp": 1646, "heart_rate": 158}, {"timestamp": 1648, "heart_rate": 158}, {"timestamp": 1652, "heart_rate": 158}, {"timestamp": 1654, "heart_rate": 158}, {"timestamp": 1657, "heart_rate": 158}, {"timestamp": 1660, "heart_rate": 158}, {"timestamp": 1663, "heart_rate": 158}, {"timestamp": 1666, "heart_rate": 158}, {"timestamp": 1669, "heart_rate": 158}, {"timestamp": 1672, "heart_rate": 158}, {"timestamp": 1675, "heart_rate": 158}, {"timestamp": 1678, "heart_rate": 158}, {"timestamp": 1681, "heart_rate": 158}, {"timestamp": 1684, "heart_rate": 158}, {"timestamp": 1687, "heart_rate": 158}, {"timestamp": 1690, "heart_rate": 158}, {"timestamp": 1693, "heart_rate": 158}, {"timestamp": 1696, "heart_rate": 158}, {"timestamp": 1699, "heart_rate": 158}, {"timestamp": 1702, "heart_rate": 158}, {"timestamp": 1706, "heart_rate": 158}, {"timestamp": 1709, "heart_rate": 158}, {"timestamp": 1712, "heart_rate": 158}, {"timestamp": 1715, "heart_rate": 158}, {"timestamp": 1718, "heart_rate": 158}, {"timestamp": 1721, "heart_rate": 158}, {"timestamp": 1724, "heart_rate": 158}, {"timestamp": 1727, "heart_rate": 158}, {"timestamp": 1730, "heart_rate": 158}, {"timestamp": 1733, "heart_rate": 158}, {"timestamp": 1736, "heart_rate": 158}, {"timestamp": 1739, "heart_rate": 158}, {"timestamp": 1742, "heart_rate": 158}, {"timestamp": 1745, "heart_rate": 158}, {"timestamp": 1748, "heart_rate": 158}, {"timestamp": 1751, "heart_rate": 158}, {"timestamp": 1754, "heart_rate": 158}, {"timestamp": 1757, "heart_rate": 158}, {"timestamp": 1760, "heart_rate": 158}, {"timestamp": 1763, "heart_rate": 158}, {"timestamp": 1766, "heart_rate": 158}, {"timestamp": 1769, "heart_rate": 158}, {"timestamp": 1772, "heart_rate": 158}, {"timestamp": 1775, "heart_rate": 158}, {"timestamp": 1778, "heart_rate": 158}, {"timestamp": 1781, "heart_rate": 158}, {"timestamp": 1784, "heart_rate": 158}, {"timestamp": 1786, "heart_rate": 158}, {"timestamp": 1789, "heart_rate": 158}, {"timestamp": 1792, "heart_rate": 158}, {"timestamp": 1795, "heart_rate": 158}, {"timestamp": 1798, "heart_rate": 158}, {"timestamp": 1800, "heart_rate": 158}, {"timestamp": 1802, "heart_rate": 158}, {"timestamp": 1804, "heart_rate": 158}, {"timestamp": 1806, "heart_rate": 158}, {"timestamp": 1808, "heart_rate": 158}, {"timestamp": 1810, "heart_rate": 158}, {"timestamp": 1812, "heart_rate": 158}, {"timestamp": 1814, "heart_rate": 158}, {"timestamp": 1816, "heart_rate": 158}, {"timestamp": 1817, "heart_rate": 158}, {"timestamp": 1819, "heart_rate": 158}, {"timestamp": 1821, "heart_rate": 158}, {"timestamp": 1823, "heart_rate": 158}, {"timestamp": 1825, "heart_rate": 158}, {"timestamp": 1827, "heart_rate": 158}, {"timestamp": 1829, "heart_rate": 158}, {"timestamp": 1831, "heart_rate": 158}, {"timestamp": 1832, "heart_rate": 158}, {"timestamp": 1834, "heart_rate": 158}, {"timestamp": 1836, "heart_rate": 158}, {"timestamp": 1838, "heart_rate": 158}, {"timestamp": 1840, "heart_rate": 158}, {"timestamp": 1842, "heart_rate": 158}, {"timestamp": 1844, "heart_rate": 158}, {"timestamp": 1846, "heart_rate": 158}, {"timestamp": 1848, "heart_rate": 158}, {"timestamp": 1849, "heart_rate": 158}, {"timestamp": 1851, "heart_rate": 158}, {"timestamp": 1853, "heart_rate": 158}, {"timestamp": 1855, "heart_rate": 158}, {"timestamp": 1857, "heart_rate": 158}, {"timestamp": 1859, "heart_rate": 158}, {"timestamp": 1861, "heart_rate": 158}, {"timestamp": 1863, "heart_rate": 158}, {"timestamp": 1865, "heart_rate": 158}, {"timestamp": 1868, "heart_rate": 158}, {"timestamp": 1871, "heart_rate": 158}, {"timestamp": 1874, "heart_rate": 158}, {"timestamp": 1877, "heart_rate": 158}, {"timestamp": 1880, "heart_rate": 158}, {"timestamp": 1883, "heart_rate": 158}, {"timestamp": 1887, "heart_rate": 158}, {"timestamp": 1890, "heart_rate": 158}, {"timestamp": 1893, "heart_rate": 158}, {"timestamp": 1896, "heart_rate": 158}, {"timestamp": 1900, "heart_rate": 158}, {"timestamp": 1903, "heart_rate": 158}, {"timestamp": 1906, "heart_rate": 158}, {"timestamp": 1908, "heart_rate": 158}, {"timestamp": 1912, "heart_rate": 158}, {"timestamp": 1916, "heart_rate": 158}, {"timestamp": 1918, "heart_rate": 158}, {"timestamp": 1919, "heart_rate": 158}, {"timestamp": 1922, "heart_rate": 158}, {"timestamp": 1925, "heart_rate": 158}, {"timestamp": 1928, "heart_rate": 158}, {"timestamp": 1930, "heart_rate": 158}, {"timestamp": 1933, "heart_rate": 158}, {"timestamp": 1937, "heart_rate": 158}, {"timestamp": 1940, "heart_rate": 158}, {"timestamp": 1943, "heart_rate": 158}, {"timestamp": 1946, "heart_rate": 158}, {"timestamp": 1949, "heart_rate": 158}, {"timestamp": 1953, "heart_rate": 158}, {"timestamp": 1956, "heart_rate": 158}, {"timestamp": 1959, "heart_rate": 158}, {"timestamp": 1962, "heart_rate": 158}, {"timestamp": 1965, "heart_rate": 158}, {"timestamp": 1968, "heart_rate": 158}, {"timestamp": 1972, "heart_rate": 158}, {"timestamp": 1975, "heart_rate": 158}, {"timestamp": 1978, "heart_rate": 158}, {"timestamp": 1981, "heart_rate": 158}, {"timestamp": 1985, "heart_rate": 158}, {"timestamp": 1988, "heart_rate": 158}, {"timestamp": 1991, "heart_rate": 158}, {"timestamp": 1995, "heart_rate": 158}, {"timestamp": 1998, "heart_rate": 158}, {"timestamp": 2001, "heart_rate": 158}, {"timestamp": 2004, "heart_rate": 158}, {"timestamp": 2008, "heart_rate": 158}, {"timestamp": 2011, "heart_rate": 158}, {"timestamp": 2014, "heart_rate": 158}, {"timestamp": 2017, "heart_rate": 158}, {"timestamp": 2020, "heart_rate": 158}, {"timestamp": 2024, "heart_rate": 158}, {"timestamp": 2027, "heart_rate": 158}, {"timestamp": 2030, "heart_rate": 158}, {"timestamp": 2033, "heart_rate": 158}, {"timestamp": 2036, "heart_rate": 158}, {"timestamp": 2038, "heart_rate": 158}, {"timestamp": 2040, "heart_rate": 158}, {"timestamp": 2042, "heart_rate": 158}, {"timestamp": 2044, "heart_rate": 158}, {"timestamp": 2046, "heart_rate": 158}, {"timestamp": 2048, "heart_rate": 158}, {"timestamp": 2050, "heart_rate": 158}, {"timestamp": 2051, "heart_rate": 158}, {"timestamp": 2053, "heart_rate": 158}, {"timestamp": 2055, "heart_rate": 158}, {"timestamp": 2057, "heart_rate": 158}, {"timestamp": 2059, "heart_rate": 158}, {"timestamp": 2061, "heart_rate": 158}, {"timestamp": 2063, "heart_rate": 158}, {"timestamp": 2065, "heart_rate": 158}, {"timestamp": 2067, "heart_rate": 158}, {"timestamp": 2069, "heart_rate": 158}, {"timestamp": 2071, "heart_rate": 158}, {"timestamp": 2073, "heart_rate": 158}, {"timestamp": 2075, "heart_rate": 158}, {"timestamp": 2077, "heart_rate": 158}, {"timestamp": 2079, "heart_rate": 158}, {"timestamp": 2091, "heart_rate": 158}, {"timestamp": 2095, "heart_rate": 158}, {"timestamp": 2099, "heart_rate": 158}, {"timestamp": 2102, "heart_rate": 158}, {"timestamp": 2106, "heart_rate": 158}, {"timestamp": 2109, "heart_rate": 158}, {"timestamp": 2112, "heart_rate": 158}, {"timestamp": 2115, "heart_rate": 158}, {"timestamp": 2118, "heart_rate": 158}, {"timestamp": 2121, "heart_rate": 158}, {"timestamp": 2124, "heart_rate": 158}, {"timestamp": 2127, "heart_rate": 158}, {"timestamp": 2131, "heart_rate": 158}, {"timestamp": 2134, "heart_rate": 158}, {"timestamp": 2137, "heart_rate": 158}, {"timestamp": 2140, "heart_rate": 158}, {"timestamp": 2143, "heart_rate": 158}, {"timestamp": 2146, "heart_rate": 158}, {"timestamp": 2150, "heart_rate": 158}, {"timestamp": 2153, "heart_rate": 158}, {"timestamp": 2156, "heart_rate": 158}, {"timestamp": 2159, "heart_rate": 158}, {"timestamp": 2162, "heart_rate": 158}, {"timestamp": 2165, "heart_rate": 158}, {"timestamp": 2169, "heart_rate": 158}, {"timestamp": 2172, "heart_rate": 158}, {"timestamp": 2175, "heart_rate": 158}, {"timestamp": 2178, "heart_rate": 158}, {"timestamp": 2180, "heart_rate": 158}, {"timestamp": 2183, "heart_rate": 158}, {"timestamp": 2186, "heart_rate": 158}, {"timestamp": 2189, "heart_rate": 158}, {"timestamp": 2196, "heart_rate": 158}, {"timestamp": 2199, "heart_rate": 158}, {"timestamp": 2202, "heart_rate": 158}, {"timestamp": 2205, "heart_rate": 158}, {"timestamp": 2208, "heart_rate": 158}, {"timestamp": 2211, "heart_rate": 158}, {"timestamp": 2214, "heart_rate": 158}, {"timestamp": 2217, "heart_rate": 158}, {"timestamp": 2219, "heart_rate": 158}, {"timestamp": 2221, "heart_rate": 158}, {"timestamp": 2223, "heart_rate": 158}, {"timestamp": 2225, "heart_rate": 158}, {"timestamp": 2227, "heart_rate": 158}, {"timestamp": 2229, "heart_rate": 158}, {"timestamp": 2231, "heart_rate": 158}, {"timestamp": 2233, "heart_rate": 158}, {"timestamp": 2235, "heart_rate": 158}, {"timestamp": 2237, "heart_rate": 158}, {"timestamp": 2239, "heart_rate": 158}, {"timestamp": 2242, "heart_rate": 158}, {"timestamp": 2244, "heart_rate": 158}, {"timestamp": 2246, "heart_rate": 158}, {"timestamp": 2248, "heart_rate": 158}, {"timestamp": 2250, "heart_rate": 158}, {"timestamp": 2252, "heart_rate": 158}, {"timestamp": 2254, "heart_rate": 158}, {"timestamp": 2256, "heart_rate": 158}, {"timestamp": 2258, "heart_rate": 158}, {"timestamp": 2260, "heart_rate": 158}, {"timestamp": 2262, "heart_rate": 158}, {"timestamp": 2264, "heart_rate": 158}, {"timestamp": 2266, "heart_rate": 158}, {"timestamp": 2267, "heart_rate": 158}, {"timestamp": 2269, "heart_rate": 158}, {"timestamp": 2271, "heart_rate": 158}, {"timestamp": 2273, "heart_rate": 158}, {"timestamp": 2275, "heart_rate": 158}, {"timestamp": 2277, "heart_rate": 158}, {"timestamp": 2279, "heart_rate": 158}, {"timestamp": 2281, "heart_rate": 158}, {"timestamp": 2283, "heart_rate": 158}, {"timestamp": 2285, "heart_rate": 158}, {"timestamp": 2287, "heart_rate": 158}, {"timestamp": 2289, "heart_rate": 158}, {"timestamp": 2290, "heart_rate": 158}, {"timestamp": 2293, "heart_rate": 158}, {"timestamp": 2295, "heart_rate": 158}, {"timestamp": 2298, "heart_rate": 158}, {"timestamp": 2302, "heart_rate": 158}, {"timestamp": 2305, "heart_rate": 158}, {"timestamp": 2308, "heart_rate": 158}, {"timestamp": 2312, "heart_rate": 158}, {"timestamp": 2315, "heart_rate": 158}, {"timestamp": 2319, "heart_rate": 158}, {"timestamp": 2322, "heart_rate": 158}, {"timestamp": 2325, "heart_rate": 158}, {"timestamp": 2328, "heart_rate": 158}, {"timestamp": 2331, "heart_rate": 158}, {"timestamp": 2334, "heart_rate": 158}, {"timestamp": 2337, "heart_rate": 158}, {"timestamp": 2340, "heart_rate": 158}, {"timestamp": 2345, "heart_rate": 158}, {"timestamp": 2348, "heart_rate": 158}, {"timestamp": 2351, "heart_rate": 158}, {"timestamp": 2354, "heart_rate": 158}, {"timestamp": 2358, "heart_rate": 158}, {"timestamp": 2365, "heart_rate": 158}, {"timestamp": 2371, "heart_rate": 158}, {"timestamp": 2382, "heart_rate": 158}, {"timestamp": 2383, "heart_rate": 158}, {"timestamp": 2385, "heart_rate": 158}, {"timestamp": 2387, "heart_rate": 158}, {"timestamp": 2390, "heart_rate": 158}, {"timestamp": 2392, "heart_rate": 158}, {"timestamp": 2394, "heart_rate": 158}, {"timestamp": 2396, "heart_rate": 158}, {"timestamp": 2398, "heart_rate": 158}, {"timestamp": 2411, "heart_rate": 158}, {"timestamp": 2413, "heart_rate": 158}, {"timestamp": 2416, "heart_rate": 158}, {"timestamp": 2417, "heart_rate": 158}, {"timestamp": 2421, "heart_rate": 158}, {"timestamp": 2422, "heart_rate": 158}, {"timestamp": 2425, "heart_rate": 158}, {"timestamp": 2426, "heart_rate": 158}, {"timestamp": 2429, "heart_rate": 158}, {"timestamp": 2434, "heart_rate": 158}, {"timestamp": 2437, "heart_rate": 158}, {"timestamp": 2439, "heart_rate": 158}, {"timestamp": 2441, "heart_rate": 158}, {"timestamp": 2443, "heart_rate": 158}, {"timestamp": 2446, "heart_rate": 158}, {"timestamp": 2448, "heart_rate": 158}, {"timestamp": 2451, "heart_rate": 158}, {"timestamp": 2479, "heart_rate": 158}, {"timestamp": 2567, "heart_rate": 158}, {"timestamp": 2568, "heart_rate": 158}, {"timestamp": 2569, "heart_rate": 158}, {"timestamp": 2571, "heart_rate": 158}, {"timestamp": 2573, "heart_rate": 158}, {"timestamp": 2578, "heart_rate": 158}, {"timestamp": 2581, "heart_rate": 158}, {"timestamp": 2582, "heart_rate": 158}, {"timestamp": 2584, "heart_rate": 158}, {"timestamp": 2586, "heart_rate": 158}, {"timestamp": 2587, "heart_rate": 158}, {"timestamp": 2590, "heart_rate": 158}, {"timestamp": 2606, "heart_rate": 158}, {"timestamp": 2611, "heart_rate": 158}, {"timestamp": 2627, "heart_rate": 158}, {"timestamp": 2629, "heart_rate": 158}, {"timestamp": 2630, "heart_rate": 158}, {"timestamp": 2631, "heart_rate": 158}, {"timestamp": 2632, "heart_rate": 158}, {"timestamp": 2636, "heart_rate": 158}, {"timestamp": 2639, "heart_rate": 158}, {"timestamp": 2642, "heart_rate": 158}, {"timestamp": 2644, "heart_rate": 158}, {"timestamp": 2657, "heart_rate": 158}, {"timestamp": 2658, "heart_rate": 158}, {"timestamp": 2661, "heart_rate": 158}, {"timestamp": 2664, "heart_rate": 158}, {"timestamp": 2667, "heart_rate": 158}, {"timestamp": 2669, "heart_rate": 158}, {"timestamp": 2672, "heart_rate": 158}, {"timestamp": 2675, "heart_rate": 158}, {"timestamp": 2678, "heart_rate": 158}, {"timestamp": 2681, "heart_rate": 158}, {"timestamp": 2684, "heart_rate": 158}, {"timestamp": 2687, "heart_rate": 158}, {"timestamp": 2690, "heart_rate": 158}, {"timestamp": 2692, "heart_rate": 158}, {"timestamp": 2695, "heart_rate": 158}, {"timestamp": 2698, "heart_rate": 158}, {"timestamp": 2701, "heart_rate": 158}, {"timestamp": 2704, "heart_rate": 158}, {"timestamp": 2707, "heart_rate": 158}, {"timestamp": 2710, "heart_rate": 158}, {"timestamp": 2713, "heart_rate": 158}, {"timestamp": 2716, "heart_rate": 158}, {"timestamp": 2719, "heart_rate": 158}, {"timestamp": 2722, "heart_rate": 158}, {"timestamp": 2725, "heart_rate": 158}, {"timestamp": 2728, "heart_rate": 158}, {"timestamp": 2731, "heart_rate": 158}, {"timestamp": 2734, "heart_rate": 158}, {"timestamp": 2736, "heart_rate": 158}, {"timestamp": 2739, "heart_rate": 158}, {"timestamp": 2743, "heart_rate": 158}, {"timestamp": 2746, "heart_rate": 158}, {"timestamp": 2749, "heart_rate": 158}, {"timestamp": 2752, "heart_rate": 158}, {"timestamp": 2756, "heart_rate": 158}, {"timestamp": 2759, "heart_rate": 158}, {"timestamp": 2762, "heart_rate": 158}, {"timestamp": 2765, "heart_rate": 158}, {"timestamp": 2768, "heart_rate": 158}, {"timestamp": 2771, "heart_rate": 158}, {"timestamp": 2774, "heart_rate": 158}, {"timestamp": 2776, "heart_rate": 158}, {"timestamp": 2779, "heart_rate": 158}, {"timestamp": 2782, "heart_rate": 158}, {"timestamp": 2785, "heart_rate": 158}, {"timestamp": 2787, "heart_rate": 158}, {"timestamp": 2789, "heart_rate": 158}, {"timestamp": 2791, "heart_rate": 158}, {"timestamp": 2793, "heart_rate": 158}, {"timestamp": 2795, "heart_rate": 158}, {"timestamp": 2796, "heart_rate": 158}, {"timestamp": 2798, "heart_rate": 158}, {"timestamp": 2800, "heart_rate": 158}, {"timestamp": 2802, "heart_rate": 158}, {"timestamp": 2804, "heart_rate": 158}, {"timestamp": 2806, "heart_rate": 158}, {"timestamp": 2808, "heart_rate": 158}, {"timestamp": 2809, "heart_rate": 158}, {"timestamp": 2811, "heart_rate": 158}, {"timestamp": 2813, "heart_rate": 158}, {"timestamp": 2815, "heart_rate": 158}, {"timestamp": 2817, "heart_rate": 158}, {"timestamp": 2819, "heart_rate": 158}, {"timestamp": 2821, "heart_rate": 158}, {"timestamp": 2823, "heart_rate": 158}, {"timestamp": 2825, "heart_rate": 158}, {"timestamp": 2827, "heart_rate": 158}, {"timestamp": 2828, "heart_rate": 158}, {"timestamp": 2830, "heart_rate": 158}, {"timestamp": 2832, "heart_rate": 158}, {"timestamp": 2834, "heart_rate": 158}, {"timestamp": 2836, "heart_rate": 158}, {"timestamp": 2838, "heart_rate": 158}, {"timestamp": 2840, "heart_rate": 158}, {"timestamp": 2841, "heart_rate": 158}, {"timestamp": 2843, "heart_rate": 158}, {"timestamp": 2845, "heart_rate": 158}, {"timestamp": 2847, "heart_rate": 158}, {"timestamp": 2849, "heart_rate": 158}, {"timestamp": 2851, "heart_rate": 158}, {"timestamp": 2853, "heart_rate": 158}, {"timestamp": 2855, "heart_rate": 158}, {"timestamp": 2857, "heart_rate": 158}, {"timestamp": 2858, "heart_rate": 158}, {"timestamp": 2860, "heart_rate": 158}, {"timestamp": 2862, "heart_rate": 158}, {"timestamp": 2864, "heart_rate": 158}, {"timestamp": 2866, "heart_rate": 158}, {"timestamp": 2868, "heart_rate": 158}, {"timestamp": 2870, "heart_rate": 158}, {"timestamp": 2872, "heart_rate": 158}, {"timestamp": 2873, "heart_rate": 158}, {"timestamp": 2875, "heart_rate": 158}, {"timestamp": 2877, "heart_rate": 158}, {"timestamp": 2879, "heart_rate": 158}, {"timestamp": 2881, "heart_rate": 158}, {"timestamp": 2883, "heart_rate": 158}, {"timestamp": 2885, "heart_rate": 158}, {"timestamp": 2886, "heart_rate": 158}, {"timestamp": 2888, "heart_rate": 158}, {"timestamp": 2890, "heart_rate": 158}, {"timestamp": 2902, "heart_rate": 158}, {"timestamp": 2906, "heart_rate": 158}, {"timestamp": 2909, "heart_rate": 158}, {"timestamp": 2913, "heart_rate": 158}, {"timestamp": 2917, "heart_rate": 158}, {"timestamp": 2920, "heart_rate": 158}, {"timestamp": 2924, "heart_rate": 158}, {"timestamp": 2927, "heart_rate": 158}, {"timestamp": 2931, "heart_rate": 158}, {"timestamp": 2934, "heart_rate": 158}, {"timestamp": 2937, "heart_rate": 158}, {"timestamp": 2941, "heart_rate": 158}, {"timestamp": 2944, "heart_rate": 158}, {"timestamp": 2947, "heart_rate": 158}, {"timestamp": 2950, "heart_rate": 158}, {"timestamp": 2953, "heart_rate": 158}, {"timestamp": 2956, "heart_rate": 158}, {"timestamp": 2959, "heart_rate": 158}, {"timestamp": 2963, "heart_rate": 158}, {"timestamp": 2969, "heart_rate": 158}, {"timestamp": 2975, "heart_rate": 158}, {"timestamp": 2977, "heart_rate": 158}, {"timestamp": 2980, "heart_rate": 158}, {"timestamp": 2984, "heart_rate": 158}, {"timestamp": 2986, "heart_rate": 158}, {"timestamp": 2990, "heart_rate": 158}, {"timestamp": 2993, "heart_rate": 158}, {"timestamp": 2996, "heart_rate": 158}, {"timestamp": 3000, "heart_rate": 158}, {"timestamp": 3003, "heart_rate": 158}, {"timestamp": 3006, "heart_rate": 158}, {"timestamp": 3009, "heart_rate": 158}, {"timestamp": 3012, "heart_rate": 158}, {"timestamp": 3015, "heart_rate": 158}, {"timestamp": 3018, "heart_rate": 158}, {"timestamp": 3021, "heart_rate": 158}, {"timestamp": 3025, "heart_rate": 158}, {"timestamp": 3028, "heart_rate": 158}, {"timestamp": 3030, "heart_rate": 158}, {"timestamp": 3033, "heart_rate": 158}, {"timestamp": 3036, "heart_rate": 158}, {"timestamp": 3039, "heart_rate": 158}, {"timestamp": 3042, "heart_rate": 158}, {"timestamp": 3044, "heart_rate": 158}, {"timestamp": 3046, "heart_rate": 158}, {"timestamp": 3048, "heart_rate": 158}, {"timestamp": 3050, "heart_rate": 158}, {"timestamp": 3051, "heart_rate": 158}, {"timestamp": 3053, "heart_rate": 158}, {"timestamp": 3055, "heart_rate": 158}, {"timestamp": 3056, "heart_rate": 158}, {"timestamp": 3058, "heart_rate": 158}, {"timestamp": 3060, "heart_rate": 158}, {"timestamp": 3061, "heart_rate": 158}, {"timestamp": 3063, "heart_rate": 158}, {"timestamp": 3065, "heart_rate": 158}, {"timestamp": 3067, "heart_rate": 158}, {"timestamp": 3068, "heart_rate": 158}, {"timestamp": 3070, "heart_rate": 158}, {"timestamp": 3072, "heart_rate": 158}, {"timestamp": 3074, "heart_rate": 158}, {"timestamp": 3076, "heart_rate": 158}, {"timestamp": 3079, "heart_rate": 158}, {"timestamp": 3081, "heart_rate": 158}, {"timestamp": 3084, "heart_rate": 158}, {"timestamp": 3087, "heart_rate": 158}, {"timestamp": 3091, "heart_rate": 158}, {"timestamp": 3094, "heart_rate": 158}, {"timestamp": 3097, "heart_rate": 158}, {"timestamp": 3100, "heart_rate": 158}, {"timestamp": 3103, "heart_rate": 158}, {"timestamp": 3106, "heart_rate": 158}, {"timestamp": 3110, "heart_rate": 158}, {"timestamp": 3113, "heart_rate": 158}, {"timestamp": 3116, "heart_rate": 158}, {"timestamp": 3119, "heart_rate": 158}, {"timestamp": 3123, "heart_rate": 158}, {"timestamp": 3126, "heart_rate": 158}, {"timestamp": 3129, "heart_rate": 158}, {"timestamp": 3132, "heart_rate": 158}, {"timestamp": 3135, "heart_rate": 158}, {"timestamp": 3138, "heart_rate": 158}, {"timestamp": 3141, "heart_rate": 158}, {"timestamp": 3144, "heart_rate": 158}, {"timestamp": 3147, "heart_rate": 158}, {"timestamp": 3150, "heart_rate": 158}, {"timestamp": 3153, "heart_rate": 158}, {"timestamp": 3156, "heart_rate": 158}, {"timestamp": 3159, "heart_rate": 158}, {"timestamp": 3162, "heart_rate": 158}, {"timestamp": 3165, "heart_rate": 158}, {"timestamp": 3168, "heart_rate": 158}, {"timestamp": 3171, "heart_rate": 158}, {"timestamp": 3174, "heart_rate": 158}, {"timestamp": 3177, "heart_rate": 158}, {"timestamp": 3179, "heart_rate": 158}, {"timestamp": 3182, "heart_rate": 158}, {"timestamp": 3185, "heart_rate": 158}, {"timestamp": 3188, "heart_rate": 158}, {"timestamp": 3191, "heart_rate": 158}, {"timestamp": 3194, "heart_rate": 158}, {"timestamp": 3197, "heart_rate": 158}, {"timestamp": 3200, "heart_rate": 158}, {"timestamp": 3203, "heart_rate": 158}, {"timestamp": 3207, "heart_rate": 158}, {"timestamp": 3210, "heart_rate": 158}, {"timestamp": 3213, "heart_rate": 158}, {"timestamp": 3216, "heart_rate": 158}, {"timestamp": 3219, "heart_rate": 158}, {"timestamp": 3222, "heart_rate": 158}, {"timestamp": 3225, "heart_rate": 158}, {"timestamp": 3228, "heart_rate": 158}, {"timestamp": 3231, "heart_rate": 158}, {"timestamp": 3234, "heart_rate": 158}, {"timestamp": 3237, "heart_rate": 158}, {"timestamp": 3240, "heart_rate": 158}, {"timestamp": 3243, "heart_rate": 158}, {"timestamp": 3246, "heart_rate": 158}, {"timestamp": 3249, "heart_rate": 158}, {"timestamp": 3252, "heart_rate": 158}, {"timestamp": 3255, "heart_rate": 158}, {"timestamp": 3258, "heart_rate": 158}, {"timestamp": 3261, "heart_rate": 158}, {"timestamp": 3264, "heart_rate": 158}, {"timestamp": 3267, "heart_rate": 158}, {"timestamp": 3270, "heart_rate": 158}, {"timestamp": 3273, "heart_rate": 158}, {"timestamp": 3276, "heart_rate": 158}, {"timestamp": 3279, "heart_rate": 158}, {"timestamp": 3282, "heart_rate": 158}, {"timestamp": 3285, "heart_rate": 158}, {"timestamp": 3288, "heart_rate": 158}, {"timestamp": 3291, "heart_rate": 158}, {"timestamp": 3294, "heart_rate": 158}, {"timestamp": 3297, "heart_rate": 158}, {"timestamp": 3300, "heart_rate": 158}, {"timestamp": 3303, "heart_rate": 158}, {"timestamp": 3306, "heart_rate": 158}, {"timestamp": 3309, "heart_rate": 158}, {"timestamp": 3312, "heart_rate": 158}, {"timestamp": 3315, "heart_rate": 158}, {"timestamp": 3318, "heart_rate": 158}, {"timestamp": 3321, "heart_rate": 158}, {"timestamp": 3324, "heart_rate": 158}, {"timestamp": 3327, "heart_rate": 158}, {"timestamp": 3330, "heart_rate": 158}, {"timestamp": 3333, "heart_rate": 158}, {"timestamp": 3336, "heart_rate": 158}, {"timestamp": 3339, "heart_rate": 158}, {"timestamp": 3342, "heart_rate": 158}, {"timestamp": 3345, "heart_rate": 158}, {"timestamp": 3348, "heart_rate": 158}, {"timestamp": 3350, "heart_rate": 158}, {"timestamp": 3353, "heart_rate": 158}, {"timestamp": 3356, "heart_rate": 158}, {"timestamp": 3358, "heart_rate": 158}, {"timestamp": 3360, "heart_rate": 158}, {"timestamp": 3362, "heart_rate": 158}, {"timestamp": 3364, "heart_rate": 158}, {"timestamp": 3366, "heart_rate": 158}, {"timestamp": 3368, "heart_rate": 158}, {"timestamp": 3370, "heart_rate": 158}, {"timestamp": 3373, "heart_rate": 158}, {"timestamp": 3375, "heart_rate": 158}, {"timestamp": 3377, "heart_rate": 158}, {"timestamp": 3379, "heart_rate": 158}, {"timestamp": 3381, "heart_rate": 158}, {"timestamp": 3383, "heart_rate": 158}, {"timestamp": 3385, "heart_rate": 158}, {"timestamp": 3387, "heart_rate": 158}, {"timestamp": 3389, "heart_rate": 158}, {"timestamp": 3391, "heart_rate": 158}, {"timestamp": 3393, "heart_rate": 158}, {"timestamp": 3395, "heart_rate": 158}, {"timestamp": 3397, "heart_rate": 158}, {"timestamp": 3399, "heart_rate": 158}, {"timestamp": 3401, "heart_rate": 158}, {"timestamp": 3403, "heart_rate": 158}, {"timestamp": 3405, "heart_rate": 158}, {"timestamp": 3407, "heart_rate": 158}, {"timestamp": 3410, "heart_rate": 158}, {"timestamp": 3412, "heart_rate": 158}, {"timestamp": 3414, "heart_rate": 158}, {"timestamp": 3416, "heart_rate": 158}, {"timestamp": 3418, "heart_rate": 158}, {"timestamp": 3420, "heart_rate": 158}, {"timestamp": 3422, "heart_rate": 158}, {"timestamp": 3424, "heart_rate": 158}, {"timestamp": 3426, "heart_rate": 158}, {"timestamp": 3428, "heart_rate": 158}, {"timestamp": 3430, "heart_rate": 158}, {"timestamp": 3433, "heart_rate": 158}, {"timestamp": 3435, "heart_rate": 158}, {"timestamp": 3437, "heart_rate": 158}, {"timestamp": 3439, "heart_rate": 158}, {"timestamp": 3441, "heart_rate": 158}, {"timestamp": 3443, "heart_rate": 158}, {"timestamp": 3445, "heart_rate": 158}, {"timestamp": 3447, "heart_rate": 158}, {"timestamp": 3449, "heart_rate": 158}, {"timestamp": 3451, "heart_rate": 158}, {"timestamp": 3453, "heart_rate": 158}, {"timestamp": 3455, "heart_rate": 158}, {"timestamp": 3457, "heart_rate": 158}, {"timestamp": 3469, "heart_rate": 158}, {"timestamp": 3470, "heart_rate": 158}, {"timestamp": 3474, "heart_rate": 158}, {"timestamp": 3478, "heart_rate": 158}, {"timestamp": 3482, "heart_rate": 158}, {"timestamp": 3485, "heart_rate": 158}, {"timestamp": 3488, "heart_rate": 158}, {"timestamp": 3491, "heart_rate": 158}, {"timestamp": 3494, "heart_rate": 158}, {"timestamp": 3498, "heart_rate": 158}, {"timestamp": 3501, "heart_rate": 158}, {"timestamp": 3504, "heart_rate": 158}, {"timestamp": 3507, "heart_rate": 158}, {"timestamp": 3510, "heart_rate": 158}, {"timestamp": 3513, "heart_rate": 158}, {"timestamp": 3516, "heart_rate": 158}, {"timestamp": 3520, "heart_rate": 158}, {"timestamp": 3523, "heart_rate": 158}, {"timestamp": 3526, "heart_rate": 158}, {"timestamp": 3529, "heart_rate": 158}, {"timestamp": 3532, "heart_rate": 158}, {"timestamp": 3535, "heart_rate": 158}, {"timestamp": 3538, "heart_rate": 158}, {"timestamp": 3541, "heart_rate": 158}, {"timestamp": 3544, "heart_rate": 158}, {"timestamp": 3547, "heart_rate": 158}, {"timestamp": 3550, "heart_rate": 158}, {"timestamp": 3553, "heart_rate": 158}, {"timestamp": 3556, "heart_rate": 158}, {"timestamp": 3559, "heart_rate": 158}, {"timestamp": 3562, "heart_rate": 158}, {"timestamp": 3565, "heart_rate": 158}, {"timestamp": 3568, "heart_rate": 158}, {"timestamp": 3572, "heart_rate": 158}, {"timestamp": 3576, "heart_rate": 158}, {"timestamp": 3579, "heart_rate": 158}, {"timestamp": 3582, "heart_rate": 158}, {"timestamp": 3585, "heart_rate": 158}, {"timestamp": 3589, "heart_rate": 158}, {"timestamp": 3592, "heart_rate": 158}, {"timestamp": 3595, "heart_rate": 158}, {"timestamp": 3598, "heart_rate": 158}, {"timestamp": 3601, "heart_rate": 158}, {"timestamp": 3604, "heart_rate": 158}, {"timestamp": 3607, "heart_rate": 158}, {"timestamp": 3610, "heart_rate": 158}, {"timestamp": 3613, "heart_rate": 158}, {"timestamp": 3616, "heart_rate": 158}, {"timestamp": 3619, "heart_rate": 158}, {"timestamp": 3622, "heart_rate": 158}, {"timestamp": 3625, "heart_rate": 158}, {"timestamp": 3628, "heart_rate": 158}, {"timestamp": 3632, "heart_rate": 158}, {"timestamp": 3635, "heart_rate": 158}, {"timestamp": 3638, "heart_rate": 158}, {"timestamp": 3641, "heart_rate": 158}, {"timestamp": 3644, "heart_rate": 158}, {"timestamp": 3647, "heart_rate": 158}, {"timestamp": 3650, "heart_rate": 158}, {"timestamp": 3653, "heart_rate": 158}, {"timestamp": 3656, "heart_rate": 158}, {"timestamp": 3659, "heart_rate": 158}, {"timestamp": 3663, "heart_rate": 158}, {"timestamp": 3666, "heart_rate": 158}, {"timestamp": 3669, "heart_rate": 158}, {"timestamp": 3672, "heart_rate": 158}, {"timestamp": 3675, "heart_rate": 158}, {"timestamp": 3678, "heart_rate": 158}, {"timestamp": 3692, "heart_rate": 158}, {"timestamp": 3695, "heart_rate": 158}, {"timestamp": 3699, "heart_rate": 158}, {"timestamp": 3702, "heart_rate": 158}, {"timestamp": 3705, "heart_rate": 158}, {"timestamp": 3708, "heart_rate": 158}, {"timestamp": 3711, "heart_rate": 158}, {"timestamp": 3715, "heart_rate": 158}, {"timestamp": 3718, "heart_rate": 158}, {"timestamp": 3721, "heart_rate": 158}, {"timestamp": 3724, "heart_rate": 158}, {"timestamp": 3727, "heart_rate": 158}, {"timestamp": 3730, "heart_rate": 158}, {"timestamp": 3733, "heart_rate": 158}, {"timestamp": 3739, "heart_rate": 158}, {"timestamp": 3742, "heart_rate": 158}, {"timestamp": 3745, "heart_rate": 158}, {"timestamp": 3748, "heart_rate": 158}, {"timestamp": 3751, "heart_rate": 158}, {"timestamp": 3754, "heart_rate": 158}, {"timestamp": 3757, "heart_rate": 158}, {"timestamp": 3760, "heart_rate": 158}, {"timestamp": 3763, "heart_rate": 158}, {"timestamp": 3766, "heart_rate": 158}, {"timestamp": 3769, "heart_rate": 158}, {"timestamp": 3772, "heart_rate": 158}, {"timestamp": 3775, "heart_rate": 158}, {"timestamp": 3778, "heart_rate": 158}, {"timestamp": 3781, "heart_rate": 158}, {"timestamp": 3784, "heart_rate": 158}, {"timestamp": 3787, "heart_rate": 158}, {"timestamp": 3789, "heart_rate": 158}, {"timestamp": 3792, "heart_rate": 158}, {"timestamp": 3795, "heart_rate": 158}, {"timestamp": 3798, "heart_rate": 158}, {"timestamp": 3801, "heart_rate": 158}, {"timestamp": 3804, "heart_rate": 158}, {"timestamp": 3807, "heart_rate": 158}, {"timestamp": 3809, "heart_rate": 158}, {"timestamp": 3812, "heart_rate": 158}, {"timestamp": 3815, "heart_rate": 158}, {"timestamp": 3818, "heart_rate": 158}, {"timestamp": 3821, "heart_rate": 158}, {"timestamp": 3824, "heart_rate": 158}, {"timestamp": 3827, "heart_rate": 158}, {"timestamp": 3829, "heart_rate": 158}, {"timestamp": 3832, "heart_rate": 158}, {"timestamp": 3835, "heart_rate": 158}, {"timestamp": 3838, "heart_rate": 158}, {"timestamp": 3841, "heart_rate": 158}, {"timestamp": 3843, "heart_rate": 158}, {"timestamp": 3846, "heart_rate": 158}, {"timestamp": 3849, "heart_rate": 158}, {"timestamp": 3852, "heart_rate": 158}, {"timestamp": 3855, "heart_rate": 158}, {"timestamp": 3858, "heart_rate": 158}, {"timestamp": 3861, "heart_rate": 158}, {"timestamp": 3863, "heart_rate": 158}, {"timestamp": 3866, "heart_rate": 158}, {"timestamp": 3869, "heart_rate": 158}, {"timestamp": 3872, "heart_rate": 158}, {"timestamp": 3875, "heart_rate": 158}, {"timestamp": 3878, "heart_rate": 158}, {"timestamp": 3883, "heart_rate": 158}, {"timestamp": 3886, "heart_rate": 158}, {"timestamp": 3889, "heart_rate": 158}, {"timestamp": 3892, "heart_rate": 158}, {"timestamp": 3895, "heart_rate": 158}, {"timestamp": 3897, "heart_rate": 158}, {"timestamp": 3900, "heart_rate": 158}, {"timestamp": 3903, "heart_rate": 158}, {"timestamp": 3906, "heart_rate": 158}, {"timestamp": 3908, "heart_rate": 158}, {"timestamp": 3911, "heart_rate": 158}, {"timestamp": 3914, "heart_rate": 158}, {"timestamp": 3917, "heart_rate": 158}, {"timestamp": 3919, "heart_rate": 158}, {"timestamp": 3922, "heart_rate": 158}, {"timestamp": 3925, "heart_rate": 158}, {"timestamp": 3927, "heart_rate": 158}, {"timestamp": 3930, "heart_rate": 158}, {"timestamp": 3933, "heart_rate": 158}, {"timestamp": 3936, "heart_rate": 158}, {"timestamp": 3938, "heart_rate": 158}, {"timestamp": 3941, "heart_rate": 158}, {"timestamp": 3944, "heart_rate": 158}, {"timestamp": 3946, "heart_rate": 158}, {"timestamp": 3949, "heart_rate": 158}, {"timestamp": 3952, "heart_rate": 158}, {"timestamp": 3955, "heart_rate": 158}, {"timestamp": 3958, "heart_rate": 158}, {"timestamp": 3961, "heart_rate": 158}, {"timestamp": 3963, "heart_rate": 158}, {"timestamp": 3966, "heart_rate": 158}, {"timestamp": 3969, "heart_rate": 158}, {"timestamp": 3972, "heart_rate": 158}, {"timestamp": 3975, "heart_rate": 158}, {"timestamp": 3982, "heart_rate": 158}, {"timestamp": 3989, "heart_rate": 158}, {"timestamp": 3991, "heart_rate": 158}, {"timestamp": 3993, "heart_rate": 158}, {"timestamp": 3994, "heart_rate": 158}, {"timestamp": 3995, "heart_rate": 158}, {"timestamp": 3998, "heart_rate": 158}, {"timestamp": 3999, "heart_rate": 158}, {"timestamp": 4002, "heart_rate": 158}, {"timestamp": 4004, "heart_rate": 158}, {"timestamp": 4005, "heart_rate": 158}, {"timestamp": 4007, "heart_rate": 158}, {"timestamp": 4009, "heart_rate": 158}, {"timestamp": 4010, "heart_rate": 158}, {"timestamp": 4011, "heart_rate": 158}, {"timestamp": 4013, "heart_rate": 158}, {"timestamp": 4014, "heart_rate": 158}, {"timestamp": 4016, "heart_rate": 158}, {"timestamp": 4018, "heart_rate": 158}, {"timestamp": 4019, "heart_rate": 158}, {"timestamp": 4021, "heart_rate": 158}, {"timestamp": 4022, "heart_rate": 158}, {"timestamp": 4024, "heart_rate": 158}, {"timestamp": 4026, "heart_rate": 158}, {"timestamp": 4027, "heart_rate": 158}, {"timestamp": 4030, "heart_rate": 158}, {"timestamp": 4032, "heart_rate": 158}, {"timestamp": 4034, "heart_rate": 158}, {"timestamp": 4037, "heart_rate": 158}, {"timestamp": 4040, "heart_rate": 158}, {"timestamp": 4042, "heart_rate": 158}, {"timestamp": 4045, "heart_rate": 158}, {"timestamp": 4048, "heart_rate": 158}, {"timestamp": 4051, "heart_rate": 158}, {"timestamp": 4054, "heart_rate": 158}, {"timestamp": 4057, "heart_rate": 158}, {"timestamp": 4059, "heart_rate": 158}, {"timestamp": 4062, "heart_rate": 158}, {"timestamp": 4065, "heart_rate": 158}, {"timestamp": 4067, "heart_rate": 158}, {"timestamp": 4070, "heart_rate": 158}, {"timestamp": 4073, "heart_rate": 158}, {"timestamp": 4076, "heart_rate": 158}, {"timestamp": 4079, "heart_rate": 158}, {"timestamp": 4082, "heart_rate": 158}, {"timestamp": 4085, "heart_rate": 158}, {"timestamp": 4088, "heart_rate": 158}, {"timestamp": 4091, "heart_rate": 158}, {"timestamp": 4094, "heart_rate": 158}, {"timestamp": 4097, "heart_rate": 158}, {"timestamp": 4100, "heart_rate": 158}, {"timestamp": 4103, "heart_rate": 158}, {"timestamp": 4106, "heart_rate": 158}, {"timestamp": 4110, "heart_rate": 158}, {"timestamp": 4112, "heart_rate": 158}, {"timestamp": 4116, "heart_rate": 158}, {"timestamp": 4118, "heart_rate": 158}, {"timestamp": 4121, "heart_rate": 158}, {"timestamp": 4124, "heart_rate": 158}, {"timestamp": 4127, "heart_rate": 158}, {"timestamp": 4130, "heart_rate": 158}, {"timestamp": 4133, "heart_rate": 158}, {"timestamp": 4136, "heart_rate": 158}, {"timestamp": 4139, "heart_rate": 158}, {"timestamp": 4142, "heart_rate": 158}, {"timestamp": 4145, "heart_rate": 158}, {"timestamp": 4148, "heart_rate": 158}, {"timestamp": 4151, "heart_rate": 158}, {"timestamp": 4154, "heart_rate": 158}, {"timestamp": 4157, "heart_rate": 158}, {"timestamp": 4161, "heart_rate": 158}, {"timestamp": 4165, "heart_rate": 158}, {"timestamp": 4168, "heart_rate": 158}, {"timestamp": 4171, "heart_rate": 158}, {"timestamp": 4174, "heart_rate": 158}, {"timestamp": 4178, "heart_rate": 158}, {"timestamp": 4181, "heart_rate": 158}, {"timestamp": 4184, "heart_rate": 158}, {"timestamp": 4187, "heart_rate": 158}, {"timestamp": 4190, "heart_rate": 158}, {"timestamp": 4193, "heart_rate": 158}, {"timestamp": 4196, "heart_rate": 158}, {"timestamp": 4199, "heart_rate": 158}, {"timestamp": 4202, "heart_rate": 158}, {"timestamp": 4205, "heart_rate": 158}, {"timestamp": 4208, "heart_rate": 158}, {"timestamp": 4211, "heart_rate": 158}, {"timestamp": 4215, "heart_rate": 158}, {"timestamp": 4227, "heart_rate": 158}, {"timestamp": 4230, "heart_rate": 158}, {"timestamp": 4234, "heart_rate": 158}, {"timestamp": 4237, "heart_rate": 158}, {"timestamp": 4241, "heart_rate": 158}, {"timestamp": 4244, "heart_rate": 158}, {"timestamp": 4247, "heart_rate": 158}, {"timestamp": 4250, "heart_rate": 158}, {"timestamp": 4254, "heart_rate": 158}, {"timestamp": 4267, "heart_rate": 158}, {"timestamp": 4271, "heart_rate": 158}, {"timestamp": 4274, "heart_rate": 158}, {"timestamp": 4277, "heart_rate": 158}, {"timestamp": 4281, "heart_rate": 158}, {"timestamp": 4284, "heart_rate": 158}, {"timestamp": 4287, "heart_rate": 158}, {"timestamp": 4290, "heart_rate": 158}, {"timestamp": 4294, "heart_rate": 158}, {"timestamp": 4297, "heart_rate": 158}, {"timestamp": 4300, "heart_rate": 158}, {"timestamp": 4303, "heart_rate": 158}, {"timestamp": 4307, "heart_rate": 158}, {"timestamp": 4310, "heart_rate": 158}, {"timestamp": 4314, "heart_rate": 158}, {"timestamp": 4317, "heart_rate": 158}, {"timestamp": 4320, "heart_rate": 158}, {"timestamp": 4324, "heart_rate": 158}, {"timestamp": 4327, "heart_rate": 158}, {"timestamp": 4331, "heart_rate": 158}, {"timestamp": 4334, "heart_rate": 158}, {"timestamp": 4337, "heart_rate": 158}, {"timestamp": 4341, "heart_rate": 158}, {"timestamp": 4344, "heart_rate": 158}, {"timestamp": 4348, "heart_rate": 158}, {"timestamp": 4351, "heart_rate": 158}, {"timestamp": 4354, "heart_rate": 158}, {"timestamp": 4357, "heart_rate": 158}, {"timestamp": 4360, "heart_rate": 158}, {"timestamp": 4363, "heart_rate": 158}, {"timestamp": 4367, "heart_rate": 158}, {"timestamp": 4370, "heart_rate": 158}, {"timestamp": 4373, "heart_rate": 158}, {"timestamp": 4376, "heart_rate": 158}, {"timestamp": 4380, "heart_rate": 158}, {"timestamp": 4383, "heart_rate": 158}, {"timestamp": 4386, "heart_rate": 158}, {"timestamp": 4389, "heart_rate": 158}, {"timestamp": 4393, "heart_rate": 158}, {"timestamp": 4395, "heart_rate": 158}, {"timestamp": 4399, "heart_rate": 158}, {"timestamp": 4402, "heart_rate": 158}, {"timestamp": 4406, "heart_rate": 158}, {"timestamp": 4409, "heart_rate": 158}, {"timestamp": 4412, "heart_rate": 158}, {"timestamp": 4415, "heart_rate": 158}, {"timestamp": 4418, "heart_rate": 158}, {"timestamp": 4421, "heart_rate": 158}, {"timestamp": 4424, "heart_rate": 158}, {"timestamp": 4427, "heart_rate": 158}, {"timestamp": 4430, "heart_rate": 158}, {"timestamp": 4433, "heart_rate": 158}, {"timestamp": 4436, "heart_rate": 158}, {"timestamp": 4439, "heart_rate": 158}, {"timestamp": 4442, "heart_rate": 158}, {"timestamp": 4445, "heart_rate": 158}, {"timestamp": 4448, "heart_rate": 158}, {"timestamp": 4451, "heart_rate": 158}, {"timestamp": 4455, "heart_rate": 158}, {"timestamp": 4458, "heart_rate": 158}, {"timestamp": 4461, "heart_rate": 158}, {"timestamp": 4464, "heart_rate": 158}, {"timestamp": 4467, "heart_rate": 158}, {"timestamp": 4470, "heart_rate": 158}, {"timestamp": 4473, "heart_rate": 158}, {"timestamp": 4476, "heart_rate": 158}, {"timestamp": 4479, "heart_rate": 158}, {"timestamp": 4482, "heart_rate": 158}, {"timestamp": 4485, "heart_rate": 158}, {"timestamp": 4488, "heart_rate": 158}, {"timestamp": 4491, "heart_rate": 158}, {"timestamp": 4494, "heart_rate": 158}, {"timestamp": 4497, "heart_rate": 158}, {"timestamp": 4500, "heart_rate": 158}, {"timestamp": 4504, "heart_rate": 158}, {"timestamp": 4507, "heart_rate": 158}, {"timestamp": 4510, "heart_rate": 158}, {"timestamp": 4513, "heart_rate": 158}, {"timestamp": 4516, "heart_rate": 158}, {"timestamp": 4519, "heart_rate": 158}, {"timestamp": 4522, "heart_rate": 158}, {"timestamp": 4526, "heart_rate": 158}, {"timestamp": 4529, "heart_rate": 158}, {"timestamp": 4532, "heart_rate": 158}, {"timestamp": 4535, "heart_rate": 158}, {"timestamp": 4539, "heart_rate": 158}, {"timestamp": 4542, "heart_rate": 158}, {"timestamp": 4545, "heart_rate": 158}, {"timestamp": 4548, "heart_rate": 158}, {"timestamp": 4551, "heart_rate": 158}, {"timestamp": 4554, "heart_rate": 158}, {"timestamp": 4558, "heart_rate": 158}, {"timestamp": 4561, "heart_rate": 158}, {"timestamp": 4564, "heart_rate": 158}, {"timestamp": 4567, "heart_rate": 158}, {"timestamp": 4570, "heart_rate": 158}, {"timestamp": 4573, "heart_rate": 158}, {"timestamp": 4577, "heart_rate": 158}, {"timestamp": 4580, "heart_rate": 158}, {"timestamp": 4583, "heart_rate": 158}, {"timestamp": 4586, "heart_rate": 158}, {"timestamp": 4589, "heart_rate": 158}, {"timestamp": 4592, "heart_rate": 158}, {"timestamp": 4595, "heart_rate": 158}, {"timestamp": 4598, "heart_rate": 158}, {"timestamp": 4601, "heart_rate": 158}, {"timestamp": 4605, "heart_rate": 158}, {"timestamp": 4621, "heart_rate": 158}, {"timestamp": 4624, "heart_rate": 158}, {"timestamp": 4628, "heart_rate": 158}, {"timestamp": 4631, "heart_rate": 158}, {"timestamp": 4634, "heart_rate": 158}, {"timestamp": 4637, "heart_rate": 158}, {"timestamp": 4641, "heart_rate": 158}, {"timestamp": 4644, "heart_rate": 158}, {"timestamp": 4647, "heart_rate": 158}, {"timestamp": 4650, "heart_rate": 158}, {"timestamp": 4653, "heart_rate": 158}, {"timestamp": 4656, "heart_rate": 158}, {"timestamp": 4659, "heart_rate": 158}, {"timestamp": 4663, "heart_rate": 158}, {"timestamp": 4666, "heart_rate": 158}, {"timestamp": 4670, "heart_rate": 158}, {"timestamp": 4674, "heart_rate": 158}, {"timestamp": 4677, "heart_rate": 158}, {"timestamp": 4680, "heart_rate": 158}, {"timestamp": 4684, "heart_rate": 158}, {"timestamp": 4687, "heart_rate": 158}, {"timestamp": 4691, "heart_rate": 158}, {"timestamp": 4695, "heart_rate": 158}, {"timestamp": 4698, "heart_rate": 158}, {"timestamp": 4702, "heart_rate": 158}, {"timestamp": 4705, "heart_rate": 158}, {"timestamp": 4709, "heart_rate": 158}, {"timestamp": 4712, "heart_rate": 158}, {"timestamp": 4716, "heart_rate": 158}, {"timestamp": 4719, "heart_rate": 158}, {"timestamp": 4723, "heart_rate": 158}, {"timestamp": 4726, "heart_rate": 158}, {"timestamp": 4729, "heart_rate": 158}, {"timestamp": 4741, "heart_rate": 158}, {"timestamp": 4742, "heart_rate": 158}, {"timestamp": 4746, "heart_rate": 158}, {"timestamp": 4748, "heart_rate": 158}, {"timestamp": 4750, "heart_rate": 158}, {"timestamp": 4753, "heart_rate": 158}, {"timestamp": 4757, "heart_rate": 158}, {"timestamp": 4759, "heart_rate": 158}, {"timestamp": 4761, "heart_rate": 158}, {"timestamp": 4764, "heart_rate": 158}, {"timestamp": 4767, "heart_rate": 158}, {"timestamp": 4771, "heart_rate": 158}, {"timestamp": 4774, "heart_rate": 158}, {"timestamp": 4778, "heart_rate": 158}, {"timestamp": 4781, "heart_rate": 158}, {"timestamp": 4785, "heart_rate": 158}, {"timestamp": 4788, "heart_rate": 158}, {"timestamp": 4791, "heart_rate": 158}, {"timestamp": 4795, "heart_rate": 158}, {"timestamp": 4797, "heart_rate": 158}, {"timestamp": 4800, "heart_rate": 158}, {"timestamp": 4804, "heart_rate": 158}, {"timestamp": 4807, "heart_rate": 158}, {"timestamp": 4810, "heart_rate": 158}, {"timestamp": 4814, "heart_rate": 158}, {"timestamp": 4817, "heart_rate": 158}, {"timestamp": 4820, "heart_rate": 158}, {"timestamp": 4824, "heart_rate": 158}, {"timestamp": 4827, "heart_rate": 158}, {"timestamp": 4830, "heart_rate": 158}, {"timestamp": 4843, "heart_rate": 158}, {"timestamp": 4844, "heart_rate": 158}, {"timestamp": 4845, "heart_rate": 158}, {"timestamp": 4846, "heart_rate": 158}, {"timestamp": 4848, "heart_rate": 158}, {"timestamp": 4849, "heart_rate": 158}, {"timestamp": 4851, "heart_rate": 158}, {"timestamp": 4855, "heart_rate": 158}, {"timestamp": 4857, "heart_rate": 158}, {"timestamp": 4859, "heart_rate": 158}, {"timestamp": 4861, "heart_rate": 158}, {"timestamp": 4864, "heart_rate": 158}, {"timestamp": 4866, "heart_rate": 158}, {"timestamp": 4869, "heart_rate": 158}, {"timestamp": 4872, "heart_rate": 158}, {"timestamp": 4874, "heart_rate": 158}, {"timestamp": 4875, "heart_rate": 158}], "type": "Rowing", "nearest_teammate_nutrition": ["/nearestMeasurement/NUTRITION/4034650/1530351061000"], "nearest_sleep": "/nearestMeasurement/SLEEP/4034650/1530351061000", "tracking_mode": "outdoor", "nearest_teammate_general_measurements": ["/nearestMeasurement/GENERAL/4034650/1530351061000"], "start_time": "Sat, 30 Jun 2018 09:31:01", "nearest_nutrition": "/nearestMeasurement/NUTRITION/4034650/1530351061000", "total_distance": 13877.95, "path": [{"latitude": 49.23867, "timestamp": 0, "altitude": 232, "type": "start", "longitude": 16.514057}, {"latitude": 49.23867, "timestamp": 1, "altitude": 232, "type": "gps", "longitude": 16.514057}, {"latitude": 49.238662, "timestamp": 4, "altitude": 231.875, "type": "gps", "longitude": 16.514051}, {"latitude": 49.238662, "timestamp": 7, "altitude": 231.77777777777777, "type": "gps", "longitude": 16.514051}, {"latitude": 49.238655, "timestamp": 9, "altitude": 231.7, "type": "gps", "longitude": 16.514059}, {"latitude": 49.238655, "timestamp": 12, "altitude": 231.63636363636363, "type": "gps", "longitude": 16.514059}, {"latitude": 49.238647, "timestamp": 14, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.514055}, {"latitude": 49.238574, "timestamp": 28, "altitude": 231.45454545454547, "type": "gps", "longitude": 16.51408}, {"latitude": 49.238563, "timestamp": 29, "altitude": 231.36363636363637, "type": "gps", "longitude": 16.514068}, {"latitude": 49.238544, "timestamp": 32, "altitude": 231.27272727272728, "type": "gps", "longitude": 16.514034}, {"latitude": 49.238536, "timestamp": 33, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.514017}, {"latitude": 49.238529, "timestamp": 34, "altitude": 231, "type": "gps", "longitude": 16.513994}, {"latitude": 49.23851, "timestamp": 36, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.513948}, {"latitude": 49.238452, "timestamp": 44, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.513769}, {"latitude": 49.238441, "timestamp": 46, "altitude": 230.36363636363637, "type": "gps", "longitude": 16.513738}, {"latitude": 49.238414, "timestamp": 50, "altitude": 230.1818181818182, "type": "gps", "longitude": 16.513639}, {"latitude": 49.238384, "timestamp": 54, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.513511}, {"latitude": 49.238361, "timestamp": 58, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.51338}, {"latitude": 49.238346, "timestamp": 61, "altitude": 229.36363636363637, "type": "gps", "longitude": 16.51325}, {"latitude": 49.23833, "timestamp": 65, "altitude": 229.0909090909091, "type": "gps", "longitude": 16.513103}, {"latitude": 49.238323, "timestamp": 68, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.512973}, {"latitude": 49.238315, "timestamp": 71, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.512847}, {"latitude": 49.238307, "timestamp": 74, "altitude": 228.36363636363637, "type": "gps", "longitude": 16.512708}, {"latitude": 49.238307, "timestamp": 77, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.512565}, {"latitude": 49.238311, "timestamp": 80, "altitude": 228.0909090909091, "type": "gps", "longitude": 16.512424}, {"latitude": 49.238311, "timestamp": 84, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.512277}, {"latitude": 49.238311, "timestamp": 87, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.512134}, {"latitude": 49.238311, "timestamp": 91, "altitude": 227.63636363636363, "type": "gps", "longitude": 16.511995}, {"latitude": 49.238319, "timestamp": 94, "altitude": 227.54545454545453, "type": "gps", "longitude": 16.511867}, {"latitude": 49.238327, "timestamp": 97, "altitude": 227.45454545454547, "type": "gps", "longitude": 16.511726}, {"latitude": 49.238342, "timestamp": 101, "altitude": 227.36363636363637, "type": "gps", "longitude": 16.511581}, {"latitude": 49.238357, "timestamp": 104, "altitude": 227.27272727272728, "type": "gps", "longitude": 16.511455}, {"latitude": 49.238357, "timestamp": 106, "altitude": 227.1818181818182, "type": "gps", "longitude": 16.511455}, {"latitude": 49.23838, "timestamp": 107, "altitude": 227.0909090909091, "type": "gps", "longitude": 16.511322}, {"latitude": 49.238403, "timestamp": 111, "altitude": 227, "type": "gps", "longitude": 16.511203}, {"latitude": 49.238403, "timestamp": 113, "altitude": 227, "type": "gps", "longitude": 16.511203}, {"latitude": 49.238437, "timestamp": 115, "altitude": 227, "type": "gps", "longitude": 16.511049}, {"latitude": 49.238464, "timestamp": 119, "altitude": 227, "type": "gps", "longitude": 16.51094}, {"latitude": 49.238498, "timestamp": 122, "altitude": 227, "type": "gps", "longitude": 16.510826}, {"latitude": 49.238536, "timestamp": 126, "altitude": 227, "type": "gps", "longitude": 16.510711}, {"latitude": 49.238578, "timestamp": 129, "altitude": 227, "type": "gps", "longitude": 16.510602}, {"latitude": 49.238578, "timestamp": 131, "altitude": 227, "type": "gps", "longitude": 16.510602}, {"latitude": 49.238628, "timestamp": 133, "altitude": 227, "type": "gps", "longitude": 16.510484}, {"latitude": 49.238666, "timestamp": 137, "altitude": 227, "type": "gps", "longitude": 16.510391}, {"latitude": 49.2387, "timestamp": 140, "altitude": 227, "type": "gps", "longitude": 16.510301}, {"latitude": 49.2387, "timestamp": 142, "altitude": 227, "type": "gps", "longitude": 16.510301}, {"latitude": 49.238738, "timestamp": 144, "altitude": 227, "type": "gps", "longitude": 16.510192}, {"latitude": 49.238773, "timestamp": 147, "altitude": 227, "type": "gps", "longitude": 16.510091}, {"latitude": 49.238811, "timestamp": 151, "altitude": 227, "type": "gps", "longitude": 16.509975}, {"latitude": 49.238849, "timestamp": 155, "altitude": 227, "type": "gps", "longitude": 16.509872}, {"latitude": 49.238884, "timestamp": 158, "altitude": 227, "type": "gps", "longitude": 16.509775}, {"latitude": 49.238922, "timestamp": 162, "altitude": 227, "type": "gps", "longitude": 16.509681}, {"latitude": 49.23896, "timestamp": 166, "altitude": 227, "type": "gps", "longitude": 16.509571}, {"latitude": 49.238998, "timestamp": 169, "altitude": 227, "type": "gps", "longitude": 16.509468}, {"latitude": 49.239032, "timestamp": 173, "altitude": 227, "type": "gps", "longitude": 16.509366}, {"latitude": 49.23907, "timestamp": 176, "altitude": 227, "type": "gps", "longitude": 16.509275}, {"latitude": 49.239112, "timestamp": 180, "altitude": 227, "type": "gps", "longitude": 16.509166}, {"latitude": 49.239154, "timestamp": 184, "altitude": 227, "type": "gps", "longitude": 16.509067}, {"latitude": 49.239196, "timestamp": 188, "altitude": 227, "type": "gps", "longitude": 16.508966}, {"latitude": 49.239242, "timestamp": 192, "altitude": 227, "type": "gps", "longitude": 16.508871}, {"latitude": 49.239288, "timestamp": 195, "altitude": 227, "type": "gps", "longitude": 16.508781}, {"latitude": 49.239288, "timestamp": 197, "altitude": 227, "type": "gps", "longitude": 16.508781}, {"latitude": 49.239334, "timestamp": 199, "altitude": 227, "type": "gps", "longitude": 16.50868}, {"latitude": 49.239372, "timestamp": 202, "altitude": 227, "type": "gps", "longitude": 16.508583}, {"latitude": 49.239406, "timestamp": 205, "altitude": 227, "type": "gps", "longitude": 16.508482}, {"latitude": 49.239444, "timestamp": 209, "altitude": 227, "type": "gps", "longitude": 16.508371}, {"latitude": 49.239479, "timestamp": 212, "altitude": 227, "type": "gps", "longitude": 16.508268}, {"latitude": 49.239513, "timestamp": 215, "altitude": 227, "type": "gps", "longitude": 16.508155}, {"latitude": 49.239551, "timestamp": 219, "altitude": 227, "type": "gps", "longitude": 16.508043}, {"latitude": 49.239589, "timestamp": 222, "altitude": 227, "type": "gps", "longitude": 16.507923}, {"latitude": 49.23962, "timestamp": 226, "altitude": 227, "type": "gps", "longitude": 16.50781}, {"latitude": 49.239646, "timestamp": 229, "altitude": 227, "type": "gps", "longitude": 16.507699}, {"latitude": 49.239681, "timestamp": 232, "altitude": 227, "type": "gps", "longitude": 16.507587}, {"latitude": 49.239719, "timestamp": 236, "altitude": 227, "type": "gps", "longitude": 16.507478}, {"latitude": 49.239761, "timestamp": 239, "altitude": 227, "type": "gps", "longitude": 16.507358}, {"latitude": 49.239803, "timestamp": 243, "altitude": 227.0909090909091, "type": "gps", "longitude": 16.507244}, {"latitude": 49.239841, "timestamp": 246, "altitude": 227.1818181818182, "type": "gps", "longitude": 16.507129}, {"latitude": 49.239883, "timestamp": 249, "altitude": 227.27272727272728, "type": "gps", "longitude": 16.507026}, {"latitude": 49.239925, "timestamp": 253, "altitude": 227.36363636363637, "type": "gps", "longitude": 16.506904}, {"latitude": 49.239963, "timestamp": 257, "altitude": 227.45454545454547, "type": "gps", "longitude": 16.506816}, {"latitude": 49.240009, "timestamp": 260, "altitude": 227.54545454545453, "type": "gps", "longitude": 16.506717}, {"latitude": 49.240051, "timestamp": 263, "altitude": 227.63636363636363, "type": "gps", "longitude": 16.50662}, {"latitude": 49.240097, "timestamp": 266, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.506523}, {"latitude": 49.240146, "timestamp": 270, "altitude": 227.8181818181818, "type": "gps", "longitude": 16.506418}, {"latitude": 49.240196, "timestamp": 273, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.506315}, {"latitude": 49.240242, "timestamp": 276, "altitude": 228, "type": "gps", "longitude": 16.506216}, {"latitude": 49.240295, "timestamp": 279, "altitude": 228, "type": "gps", "longitude": 16.506105}, {"latitude": 49.240344, "timestamp": 282, "altitude": 228, "type": "gps", "longitude": 16.506004}, {"latitude": 49.240394, "timestamp": 286, "altitude": 228, "type": "gps", "longitude": 16.505901}, {"latitude": 49.240444, "timestamp": 289, "altitude": 228, "type": "gps", "longitude": 16.505804}, {"latitude": 49.240497, "timestamp": 292, "altitude": 228, "type": "gps", "longitude": 16.505702}, {"latitude": 49.240554, "timestamp": 295, "altitude": 228, "type": "gps", "longitude": 16.505599}, {"latitude": 49.240608, "timestamp": 298, "altitude": 228, "type": "gps", "longitude": 16.505504}, {"latitude": 49.240665, "timestamp": 301, "altitude": 228, "type": "gps", "longitude": 16.505401}, {"latitude": 49.240718, "timestamp": 304, "altitude": 228.0909090909091, "type": "gps", "longitude": 16.505308}, {"latitude": 49.240768, "timestamp": 307, "altitude": 228.1818181818182, "type": "gps", "longitude": 16.505205}, {"latitude": 49.240818, "timestamp": 310, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.505107}, {"latitude": 49.240871, "timestamp": 314, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.505003}, {"latitude": 49.240924, "timestamp": 317, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.504909}, {"latitude": 49.240978, "timestamp": 320, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.50481}, {"latitude": 49.241039, "timestamp": 323, "altitude": 229.0909090909091, "type": "gps", "longitude": 16.504716}, {"latitude": 49.241096, "timestamp": 327, "altitude": 229.36363636363637, "type": "gps", "longitude": 16.504621}, {"latitude": 49.241149, "timestamp": 330, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.504529}, {"latitude": 49.241207, "timestamp": 333, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.50444}, {"latitude": 49.241264, "timestamp": 336, "altitude": 230.0909090909091, "type": "gps", "longitude": 16.504343}, {"latitude": 49.241321, "timestamp": 339, "altitude": 230.27272727272728, "type": "gps", "longitude": 16.504249}, {"latitude": 49.241378, "timestamp": 343, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.50415}, {"latitude": 49.241436, "timestamp": 346, "altitude": 230.63636363636363, "type": "gps", "longitude": 16.50406}, {"latitude": 49.241493, "timestamp": 349, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.503969}, {"latitude": 49.241554, "timestamp": 352, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.503871}, {"latitude": 49.241611, "timestamp": 355, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.503776}, {"latitude": 49.241668, "timestamp": 358, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.503686}, {"latitude": 49.241725, "timestamp": 361, "altitude": 230.63636363636363, "type": "gps", "longitude": 16.503595}, {"latitude": 49.241783, "timestamp": 364, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.503507}, {"latitude": 49.24184, "timestamp": 367, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.503425}, {"latitude": 49.241901, "timestamp": 370, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.503334}, {"latitude": 49.241958, "timestamp": 373, "altitude": 230.27272727272728, "type": "gps", "longitude": 16.503253}, {"latitude": 49.242019, "timestamp": 376, "altitude": 230.0909090909091, "type": "gps", "longitude": 16.503169}, {"latitude": 49.242084, "timestamp": 380, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.503082}, {"latitude": 49.242145, "timestamp": 383, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.502998}, {"latitude": 49.242202, "timestamp": 386, "altitude": 229.36363636363637, "type": "gps", "longitude": 16.502914}, {"latitude": 49.242271, "timestamp": 389, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.502822}, {"latitude": 49.242332, "timestamp": 392, "altitude": 229, "type": "gps", "longitude": 16.502738}, {"latitude": 49.242393, "timestamp": 395, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.502649}, {"latitude": 49.242454, "timestamp": 398, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.502561}, {"latitude": 49.242515, "timestamp": 401, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.502471}, {"latitude": 49.242576, "timestamp": 404, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.502389}, {"latitude": 49.242633, "timestamp": 407, "altitude": 228.1818181818182, "type": "gps", "longitude": 16.502307}, {"latitude": 49.242691, "timestamp": 410, "altitude": 228.0909090909091, "type": "gps", "longitude": 16.502223}, {"latitude": 49.242748, "timestamp": 413, "altitude": 228, "type": "gps", "longitude": 16.502138}, {"latitude": 49.242805, "timestamp": 416, "altitude": 228, "type": "gps", "longitude": 16.502056}, {"latitude": 49.242866, "timestamp": 419, "altitude": 228, "type": "gps", "longitude": 16.501977}, {"latitude": 49.242923, "timestamp": 423, "altitude": 228, "type": "gps", "longitude": 16.501899}, {"latitude": 49.24298, "timestamp": 426, "altitude": 228, "type": "gps", "longitude": 16.501821}, {"latitude": 49.243038, "timestamp": 429, "altitude": 228, "type": "gps", "longitude": 16.501743}, {"latitude": 49.243091, "timestamp": 432, "altitude": 228, "type": "gps", "longitude": 16.501661}, {"latitude": 49.243152, "timestamp": 435, "altitude": 228, "type": "gps", "longitude": 16.501583}, {"latitude": 49.243213, "timestamp": 438, "altitude": 228, "type": "gps", "longitude": 16.501506}, {"latitude": 49.243267, "timestamp": 442, "altitude": 228, "type": "gps", "longitude": 16.501441}, {"latitude": 49.243316, "timestamp": 445, "altitude": 228, "type": "gps", "longitude": 16.501371}, {"latitude": 49.243358, "timestamp": 449, "altitude": 228, "type": "gps", "longitude": 16.501295}, {"latitude": 49.243404, "timestamp": 453, "altitude": 228, "type": "gps", "longitude": 16.501213}, {"latitude": 49.243453, "timestamp": 456, "altitude": 228, "type": "gps", "longitude": 16.501131}, {"latitude": 49.243507, "timestamp": 459, "altitude": 228.0909090909091, "type": "gps", "longitude": 16.50105}, {"latitude": 49.243556, "timestamp": 462, "altitude": 228.1818181818182, "type": "gps", "longitude": 16.500974}, {"latitude": 49.243614, "timestamp": 466, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.500896}, {"latitude": 49.243663, "timestamp": 469, "altitude": 228.36363636363637, "type": "gps", "longitude": 16.50082}, {"latitude": 49.243717, "timestamp": 472, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.500741}, {"latitude": 49.24377, "timestamp": 476, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.500663}, {"latitude": 49.243824, "timestamp": 479, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.500591}, {"latitude": 49.243881, "timestamp": 483, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.500518}, {"latitude": 49.24393, "timestamp": 486, "altitude": 228.72727272727272, "type": "gps", "longitude": 16.500448}, {"latitude": 49.243984, "timestamp": 489, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.500366}, {"latitude": 49.244033, "timestamp": 493, "altitude": 228.9090909090909, "type": "gps", "longitude": 16.500288}, {"latitude": 49.244087, "timestamp": 496, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.500204}, {"latitude": 49.24414, "timestamp": 500, "altitude": 228.72727272727272, "type": "gps", "longitude": 16.500116}, {"latitude": 49.244194, "timestamp": 503, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.500026}, {"latitude": 49.244239, "timestamp": 506, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.499948}, {"latitude": 49.244285, "timestamp": 510, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.499872}, {"latitude": 49.244342, "timestamp": 513, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.499778}, {"latitude": 49.2444, "timestamp": 517, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.49969}, {"latitude": 49.244461, "timestamp": 520, "altitude": 228.36363636363637, "type": "gps", "longitude": 16.499601}, {"latitude": 49.244522, "timestamp": 524, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.499513}, {"latitude": 49.24459, "timestamp": 527, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.499424}, {"latitude": 49.244651, "timestamp": 531, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.49934}, {"latitude": 49.244716, "timestamp": 534, "altitude": 228.36363636363637, "type": "gps", "longitude": 16.499254}, {"latitude": 49.244777, "timestamp": 537, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.499166}, {"latitude": 49.244838, "timestamp": 541, "altitude": 228.72727272727272, "type": "gps", "longitude": 16.499078}, {"latitude": 49.244899, "timestamp": 544, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.498994}, {"latitude": 49.24496, "timestamp": 547, "altitude": 229.0909090909091, "type": "gps", "longitude": 16.498907}, {"latitude": 49.245021, "timestamp": 550, "altitude": 229.36363636363637, "type": "gps", "longitude": 16.498817}, {"latitude": 49.245086, "timestamp": 553, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.498729}, {"latitude": 49.245151, "timestamp": 556, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.498638}, {"latitude": 49.245212, "timestamp": 559, "altitude": 230.27272727272728, "type": "gps", "longitude": 16.498548}, {"latitude": 49.245273, "timestamp": 562, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.49846}, {"latitude": 49.245334, "timestamp": 566, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.498382}, {"latitude": 49.245391, "timestamp": 569, "altitude": 231.0909090909091, "type": "gps", "longitude": 16.498308}, {"latitude": 49.245449, "timestamp": 572, "altitude": 231.27272727272728, "type": "gps", "longitude": 16.498237}, {"latitude": 49.245506, "timestamp": 575, "altitude": 231.45454545454547, "type": "gps", "longitude": 16.498157}, {"latitude": 49.245567, "timestamp": 578, "altitude": 231.63636363636363, "type": "gps", "longitude": 16.498075}, {"latitude": 49.24562, "timestamp": 582, "altitude": 231.72727272727272, "type": "gps", "longitude": 16.497993}, {"latitude": 49.245681, "timestamp": 585, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.497905}, {"latitude": 49.245742, "timestamp": 588, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.497825}, {"latitude": 49.245803, "timestamp": 591, "altitude": 232, "type": "gps", "longitude": 16.497751}, {"latitude": 49.245868, "timestamp": 594, "altitude": 232, "type": "gps", "longitude": 16.497678}, {"latitude": 49.245937, "timestamp": 597, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.497604}, {"latitude": 49.246006, "timestamp": 600, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.497528}, {"latitude": 49.246074, "timestamp": 603, "altitude": 231.72727272727272, "type": "gps", "longitude": 16.497447}, {"latitude": 49.246147, "timestamp": 606, "altitude": 231.63636363636363, "type": "gps", "longitude": 16.497369}, {"latitude": 49.246215, "timestamp": 609, "altitude": 231.45454545454547, "type": "gps", "longitude": 16.497293}, {"latitude": 49.246288, "timestamp": 612, "altitude": 231.27272727272728, "type": "gps", "longitude": 16.497221}, {"latitude": 49.24636, "timestamp": 615, "altitude": 231.0909090909091, "type": "gps", "longitude": 16.497148}, {"latitude": 49.246433, "timestamp": 618, "altitude": 231, "type": "gps", "longitude": 16.497074}, {"latitude": 49.246501, "timestamp": 621, "altitude": 230.9090909090909, "type": "gps", "longitude": 16.497003}, {"latitude": 49.246578, "timestamp": 624, "altitude": 230.9090909090909, "type": "gps", "longitude": 16.496927}, {"latitude": 49.246654, "timestamp": 627, "altitude": 231, "type": "gps", "longitude": 16.49685}, {"latitude": 49.246726, "timestamp": 629, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.49678}, {"latitude": 49.246807, "timestamp": 633, "altitude": 231.45454545454547, "type": "gps", "longitude": 16.496702}, {"latitude": 49.246879, "timestamp": 636, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.496631}, {"latitude": 49.246952, "timestamp": 639, "altitude": 232.1818181818182, "type": "gps", "longitude": 16.496561}, {"latitude": 49.247032, "timestamp": 642, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.496492}, {"latitude": 49.247108, "timestamp": 645, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.496429}, {"latitude": 49.247184, "timestamp": 648, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.496362}, {"latitude": 49.247264, "timestamp": 651, "altitude": 234.45454545454547, "type": "gps", "longitude": 16.496294}, {"latitude": 49.247341, "timestamp": 653, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.496231}, {"latitude": 49.247421, "timestamp": 656, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.496164}, {"latitude": 49.247501, "timestamp": 659, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.496101}, {"latitude": 49.247581, "timestamp": 662, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.496038}, {"latitude": 49.247665, "timestamp": 665, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.495977}, {"latitude": 49.247741, "timestamp": 668, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.495914}, {"latitude": 49.247818, "timestamp": 671, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.495851}, {"latitude": 49.247894, "timestamp": 674, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.495786}, {"latitude": 49.247966, "timestamp": 677, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.495719}, {"latitude": 49.248046, "timestamp": 680, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.495651}, {"latitude": 49.248126, "timestamp": 683, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.495584}, {"latitude": 49.248199, "timestamp": 685, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.495517}, {"latitude": 49.248279, "timestamp": 688, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.495447}, {"latitude": 49.248359, "timestamp": 691, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.495374}, {"latitude": 49.248432, "timestamp": 694, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.495305}, {"latitude": 49.248508, "timestamp": 697, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.495229}, {"latitude": 49.248584, "timestamp": 700, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.495151}, {"latitude": 49.248661, "timestamp": 703, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.495079}, {"latitude": 49.248737, "timestamp": 706, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.495004}, {"latitude": 49.248802, "timestamp": 709, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.494941}, {"latitude": 49.24887, "timestamp": 712, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.494871}, {"latitude": 49.248935, "timestamp": 715, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.494792}, {"latitude": 49.249, "timestamp": 717, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.494716}, {"latitude": 49.249069, "timestamp": 720, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.494636}, {"latitude": 49.24913, "timestamp": 723, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.494556}, {"latitude": 49.249191, "timestamp": 726, "altitude": 234, "type": "gps", "longitude": 16.494472}, {"latitude": 49.249248, "timestamp": 729, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.494388}, {"latitude": 49.249305, "timestamp": 732, "altitude": 234.63636363636363, "type": "gps", "longitude": 16.494295}, {"latitude": 49.249359, "timestamp": 735, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.494197}, {"latitude": 49.249412, "timestamp": 737, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.4941}, {"latitude": 49.249465, "timestamp": 740, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.493997}, {"latitude": 49.249515, "timestamp": 743, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.493898}, {"latitude": 49.249561, "timestamp": 745, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.493799}, {"latitude": 49.249599, "timestamp": 748, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.493705}, {"latitude": 49.249641, "timestamp": 751, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.493589}, {"latitude": 49.249679, "timestamp": 753, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.493469}, {"latitude": 49.24971, "timestamp": 756, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.493352}, {"latitude": 49.249744, "timestamp": 759, "altitude": 241.1818181818182, "type": "gps", "longitude": 16.493225}, {"latitude": 49.249771, "timestamp": 761, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.493103}, {"latitude": 49.249797, "timestamp": 764, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.492979}, {"latitude": 49.249816, "timestamp": 767, "altitude": 241.72727272727272, "type": "gps", "longitude": 16.492858}, {"latitude": 49.249835, "timestamp": 769, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.492731}, {"latitude": 49.249851, "timestamp": 772, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.492616}, {"latitude": 49.249866, "timestamp": 775, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.492488}, {"latitude": 49.249874, "timestamp": 777, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.492364}, {"latitude": 49.249877, "timestamp": 780, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.492242}, {"latitude": 49.249881, "timestamp": 783, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.492116}, {"latitude": 49.249881, "timestamp": 786, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.491996}, {"latitude": 49.249881, "timestamp": 788, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.491889}, {"latitude": 49.249874, "timestamp": 791, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.491785}, {"latitude": 49.249858, "timestamp": 794, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.491666}, {"latitude": 49.249843, "timestamp": 796, "altitude": 240, "type": "gps", "longitude": 16.491558}, {"latitude": 49.249824, "timestamp": 799, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.491443}, {"latitude": 49.249805, "timestamp": 802, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.491336}, {"latitude": 49.249786, "timestamp": 805, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.491228}, {"latitude": 49.249759, "timestamp": 808, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.491117}, {"latitude": 49.249732, "timestamp": 810, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.491006}, {"latitude": 49.249698, "timestamp": 813, "altitude": 238, "type": "gps", "longitude": 16.490894}, {"latitude": 49.249668, "timestamp": 816, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.490778}, {"latitude": 49.249637, "timestamp": 819, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.490657}, {"latitude": 49.24961, "timestamp": 822, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.490541}, {"latitude": 49.249584, "timestamp": 824, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.49043}, {"latitude": 49.249557, "timestamp": 827, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.49031}, {"latitude": 49.249534, "timestamp": 830, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.490184}, {"latitude": 49.249515, "timestamp": 833, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.490076}, {"latitude": 49.2495, "timestamp": 836, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.489953}, {"latitude": 49.249492, "timestamp": 838, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.489833}, {"latitude": 49.249485, "timestamp": 841, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.489717}, {"latitude": 49.249485, "timestamp": 844, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.489603}, {"latitude": 49.249492, "timestamp": 847, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.48948}, {"latitude": 49.249507, "timestamp": 850, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.489353}, {"latitude": 49.24953, "timestamp": 852, "altitude": 237, "type": "gps", "longitude": 16.489238}, {"latitude": 49.249561, "timestamp": 855, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.489128}, {"latitude": 49.249599, "timestamp": 858, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.489023}, {"latitude": 49.249641, "timestamp": 861, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.488916}, {"latitude": 49.249683, "timestamp": 864, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.488807}, {"latitude": 49.249729, "timestamp": 867, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.488695}, {"latitude": 49.249774, "timestamp": 870, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.488594}, {"latitude": 49.24982, "timestamp": 872, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.488502}, {"latitude": 49.249866, "timestamp": 875, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.488416}, {"latitude": 49.249927, "timestamp": 878, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.488338}, {"latitude": 49.249988, "timestamp": 880, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.488266}, {"latitude": 49.250049, "timestamp": 883, "altitude": 238, "type": "gps", "longitude": 16.488214}, {"latitude": 49.250118, "timestamp": 886, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.488172}, {"latitude": 49.250194, "timestamp": 889, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.488141}, {"latitude": 49.250274, "timestamp": 891, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.488117}, {"latitude": 49.250358, "timestamp": 894, "altitude": 240, "type": "gps", "longitude": 16.488098}, {"latitude": 49.250438, "timestamp": 897, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.48808}, {"latitude": 49.250526, "timestamp": 900, "altitude": 241.1818181818182, "type": "gps", "longitude": 16.488069}, {"latitude": 49.250606, "timestamp": 903, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.488054}, {"latitude": 49.250686, "timestamp": 905, "altitude": 242.0909090909091, "type": "gps", "longitude": 16.488035}, {"latitude": 49.250766, "timestamp": 908, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.488012}, {"latitude": 49.25085, "timestamp": 911, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487991}, {"latitude": 49.250919, "timestamp": 914, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487956}, {"latitude": 49.250991, "timestamp": 916, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487915}, {"latitude": 49.251056, "timestamp": 919, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487869}, {"latitude": 49.251121, "timestamp": 922, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487808}, {"latitude": 49.25119, "timestamp": 925, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.487735}, {"latitude": 49.251255, "timestamp": 927, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487661}, {"latitude": 49.251312, "timestamp": 930, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.487583}, {"latitude": 49.251365, "timestamp": 933, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.487504}, {"latitude": 49.251419, "timestamp": 936, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.487422}, {"latitude": 49.251468, "timestamp": 939, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.487342}, {"latitude": 49.251518, "timestamp": 942, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.487258}, {"latitude": 49.251567, "timestamp": 945, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487163}, {"latitude": 49.251602, "timestamp": 947, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487066}, {"latitude": 49.25164, "timestamp": 950, "altitude": 243, "type": "gps", "longitude": 16.486959}, {"latitude": 49.251674, "timestamp": 953, "altitude": 243.1818181818182, "type": "gps", "longitude": 16.486852}, {"latitude": 49.251705, "timestamp": 956, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.486743}, {"latitude": 49.251728, "timestamp": 959, "altitude": 243.8181818181818, "type": "gps", "longitude": 16.486635}, {"latitude": 49.251739, "timestamp": 961, "altitude": 244, "type": "gps", "longitude": 16.486516}, {"latitude": 49.25175, "timestamp": 964, "altitude": 244, "type": "gps", "longitude": 16.486408}, {"latitude": 49.251758, "timestamp": 967, "altitude": 243.8181818181818, "type": "gps", "longitude": 16.486284}, {"latitude": 49.251766, "timestamp": 970, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.486164}, {"latitude": 49.25177, "timestamp": 973, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.48604}, {"latitude": 49.251777, "timestamp": 976, "altitude": 242.0909090909091, "type": "gps", "longitude": 16.485914}, {"latitude": 49.251789, "timestamp": 979, "altitude": 241.1818181818182, "type": "gps", "longitude": 16.485795}, {"latitude": 49.251796, "timestamp": 982, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.485681}, {"latitude": 49.251804, "timestamp": 985, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.485561}, {"latitude": 49.251811, "timestamp": 987, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.485448}, {"latitude": 49.251827, "timestamp": 990, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.485336}, {"latitude": 49.251853, "timestamp": 993, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.485223}, {"latitude": 49.251884, "timestamp": 996, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.485116}, {"latitude": 49.251922, "timestamp": 999, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.485015}, {"latitude": 49.251964, "timestamp": 1002, "altitude": 235.72727272727272, "type": "gps", "longitude": 16.484912}, {"latitude": 49.252021, "timestamp": 1005, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.484813}, {"latitude": 49.252075, "timestamp": 1007, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.484727}, {"latitude": 49.252075, "timestamp": 1013, "altitude": 235.72727272727272, "type": "gps", "longitude": 16.484727}, {"latitude": 49.252204, "timestamp": 1019, "altitude": 236, "type": "gps", "longitude": 16.484548}, {"latitude": 49.25225, "timestamp": 1023, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.484495}, {"latitude": 49.2523, "timestamp": 1026, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.48443}, {"latitude": 49.252357, "timestamp": 1029, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.48435}, {"latitude": 49.25241, "timestamp": 1031, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.48427}, {"latitude": 49.252468, "timestamp": 1034, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.484182}, {"latitude": 49.252517, "timestamp": 1037, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.48409}, {"latitude": 49.252563, "timestamp": 1040, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.484003}, {"latitude": 49.252609, "timestamp": 1044, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.483905}, {"latitude": 49.252655, "timestamp": 1047, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.483806}, {"latitude": 49.252693, "timestamp": 1050, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.483703}, {"latitude": 49.252738, "timestamp": 1053, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.483594}, {"latitude": 49.252773, "timestamp": 1056, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.483509}, {"latitude": 49.252811, "timestamp": 1059, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.483411}, {"latitude": 49.252841, "timestamp": 1061, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.483308}, {"latitude": 49.252876, "timestamp": 1065, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.483198}, {"latitude": 49.25291, "timestamp": 1067, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.483104}, {"latitude": 49.252948, "timestamp": 1071, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.483011}, {"latitude": 49.25299, "timestamp": 1074, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.482929}, {"latitude": 49.253036, "timestamp": 1077, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.482849}, {"latitude": 49.253082, "timestamp": 1080, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.482778}, {"latitude": 49.253128, "timestamp": 1083, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.482719}, {"latitude": 49.253185, "timestamp": 1086, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.482665}, {"latitude": 49.253246, "timestamp": 1089, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.48262}, {"latitude": 49.253314, "timestamp": 1092, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.482574}, {"latitude": 49.253379, "timestamp": 1095, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.48253}, {"latitude": 49.253456, "timestamp": 1098, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.482486}, {"latitude": 49.253517, "timestamp": 1101, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.482448}, {"latitude": 49.253582, "timestamp": 1104, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.482419}, {"latitude": 49.25365, "timestamp": 1107, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.482395}, {"latitude": 49.253726, "timestamp": 1110, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.482376}, {"latitude": 49.253803, "timestamp": 1113, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.482362}, {"latitude": 49.253875, "timestamp": 1116, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.482347}, {"latitude": 49.253948, "timestamp": 1119, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.482334}, {"latitude": 49.254024, "timestamp": 1122, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.482322}, {"latitude": 49.2541, "timestamp": 1125, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.482315}, {"latitude": 49.254173, "timestamp": 1128, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.482309}, {"latitude": 49.254253, "timestamp": 1131, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.482309}, {"latitude": 49.254333, "timestamp": 1134, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.482307}, {"latitude": 49.254413, "timestamp": 1137, "altitude": 240, "type": "gps", "longitude": 16.482307}, {"latitude": 49.254493, "timestamp": 1140, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.482309}, {"latitude": 49.254577, "timestamp": 1143, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.482311}, {"latitude": 49.254661, "timestamp": 1145, "altitude": 239, "type": "gps", "longitude": 16.482315}, {"latitude": 49.254745, "timestamp": 1148, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.482315}, {"latitude": 49.254829, "timestamp": 1151, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.482311}, {"latitude": 49.254917, "timestamp": 1154, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.482307}, {"latitude": 49.254997, "timestamp": 1157, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.482301}, {"latitude": 49.255077, "timestamp": 1160, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.482297}, {"latitude": 49.255161, "timestamp": 1163, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.482292}, {"latitude": 49.255241, "timestamp": 1166, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.482282}, {"latitude": 49.255321, "timestamp": 1168, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.482265}, {"latitude": 49.255394, "timestamp": 1171, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.482244}, {"latitude": 49.25547, "timestamp": 1174, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.482225}, {"latitude": 49.255542, "timestamp": 1177, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.482204}, {"latitude": 49.255619, "timestamp": 1180, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.482179}, {"latitude": 49.255695, "timestamp": 1183, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.482154}, {"latitude": 49.255771, "timestamp": 1186, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.482124}, {"latitude": 49.255847, "timestamp": 1189, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.482084}, {"latitude": 49.255916, "timestamp": 1191, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.48204}, {"latitude": 49.255992, "timestamp": 1194, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.481992}, {"latitude": 49.256061, "timestamp": 1197, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.481945}, {"latitude": 49.256126, "timestamp": 1199, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.481903}, {"latitude": 49.256187, "timestamp": 1201, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.481863}, {"latitude": 49.256259, "timestamp": 1203, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.481817}, {"latitude": 49.256328, "timestamp": 1206, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.481771}, {"latitude": 49.256397, "timestamp": 1208, "altitude": 239, "type": "gps", "longitude": 16.481723}, {"latitude": 49.256462, "timestamp": 1210, "altitude": 239, "type": "gps", "longitude": 16.481679}, {"latitude": 49.256538, "timestamp": 1212, "altitude": 239, "type": "gps", "longitude": 16.48163}, {"latitude": 49.256607, "timestamp": 1214, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.481584}, {"latitude": 49.256668, "timestamp": 1216, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.48154}, {"latitude": 49.256736, "timestamp": 1219, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.481494}, {"latitude": 49.256801, "timestamp": 1220, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.481451}, {"latitude": 49.256866, "timestamp": 1222, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.481407}, {"latitude": 49.256938, "timestamp": 1225, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.481359}, {"latitude": 49.256999, "timestamp": 1227, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.481317}, {"latitude": 49.257064, "timestamp": 1229, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.481271}, {"latitude": 49.257122, "timestamp": 1231, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.481233}, {"latitude": 49.257194, "timestamp": 1233, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.481182}, {"latitude": 49.257259, "timestamp": 1235, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.481134}, {"latitude": 49.257328, "timestamp": 1237, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.481086}, {"latitude": 49.257389, "timestamp": 1239, "altitude": 240, "type": "gps", "longitude": 16.48104}, {"latitude": 49.25745, "timestamp": 1242, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.480991}, {"latitude": 49.257511, "timestamp": 1244, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.480941}, {"latitude": 49.257568, "timestamp": 1246, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.480892}, {"latitude": 49.257633, "timestamp": 1248, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.480833}, {"latitude": 49.25769, "timestamp": 1250, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.480773}, {"latitude": 49.257751, "timestamp": 1253, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.480711}, {"latitude": 49.257808, "timestamp": 1255, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.480649}, {"latitude": 49.257873, "timestamp": 1257, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.480577}, {"latitude": 49.25793, "timestamp": 1259, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.480508}, {"latitude": 49.257984, "timestamp": 1262, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.480436}, {"latitude": 49.258037, "timestamp": 1264, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.480367}, {"latitude": 49.258087, "timestamp": 1266, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.480287}, {"latitude": 49.258136, "timestamp": 1268, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.480203}, {"latitude": 49.258182, "timestamp": 1270, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.480115}, {"latitude": 49.258228, "timestamp": 1272, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.480028}, {"latitude": 49.25827, "timestamp": 1274, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.479944}, {"latitude": 49.258319, "timestamp": 1277, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.479848}, {"latitude": 49.258361, "timestamp": 1279, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.479764}, {"latitude": 49.258403, "timestamp": 1281, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.479669}, {"latitude": 49.258453, "timestamp": 1283, "altitude": 236, "type": "gps", "longitude": 16.479579}, {"latitude": 49.258491, "timestamp": 1285, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.479499}, {"latitude": 49.258541, "timestamp": 1287, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.4794}, {"latitude": 49.258583, "timestamp": 1289, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.479316}, {"latitude": 49.258628, "timestamp": 1291, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.479223}, {"latitude": 49.258663, "timestamp": 1293, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.479131}, {"latitude": 49.258697, "timestamp": 1296, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.479028}, {"latitude": 49.258735, "timestamp": 1298, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.478925}, {"latitude": 49.258766, "timestamp": 1300, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.478828}, {"latitude": 49.2588, "timestamp": 1302, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.478719}, {"latitude": 49.258831, "timestamp": 1305, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.478614}, {"latitude": 49.258861, "timestamp": 1307, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.478509}, {"latitude": 49.258888, "timestamp": 1309, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.478414}, {"latitude": 49.258918, "timestamp": 1311, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.478307}, {"latitude": 49.258945, "timestamp": 1313, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.478208}, {"latitude": 49.258976, "timestamp": 1315, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.478107}, {"latitude": 49.259006, "timestamp": 1317, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.477998}, {"latitude": 49.259037, "timestamp": 1319, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.477897}, {"latitude": 49.259063, "timestamp": 1321, "altitude": 239, "type": "gps", "longitude": 16.477796}, {"latitude": 49.25909, "timestamp": 1324, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.477691}, {"latitude": 49.259113, "timestamp": 1325, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.477592}, {"latitude": 49.259143, "timestamp": 1328, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.477481}, {"latitude": 49.25917, "timestamp": 1330, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.477382}, {"latitude": 49.259197, "timestamp": 1332, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.477271}, {"latitude": 49.259223, "timestamp": 1334, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.477172}, {"latitude": 49.25925, "timestamp": 1336, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.477071}, {"latitude": 49.259281, "timestamp": 1338, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.476959}, {"latitude": 49.259307, "timestamp": 1340, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.476856}, {"latitude": 49.259338, "timestamp": 1343, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.476743}, {"latitude": 49.259365, "timestamp": 1345, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.476644}, {"latitude": 49.259391, "timestamp": 1347, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.476547}, {"latitude": 49.259418, "timestamp": 1349, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.476444}, {"latitude": 49.259445, "timestamp": 1351, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.476348}, {"latitude": 49.259479, "timestamp": 1353, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.476238}, {"latitude": 49.259506, "timestamp": 1355, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.476141}, {"latitude": 49.259536, "timestamp": 1357, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.476036}, {"latitude": 49.259567, "timestamp": 1360, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.475929}, {"latitude": 49.259597, "timestamp": 1362, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.47583}, {"latitude": 49.259628, "timestamp": 1364, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.475732}, {"latitude": 49.259662, "timestamp": 1366, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.475629}, {"latitude": 49.259693, "timestamp": 1368, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.475532}, {"latitude": 49.259727, "timestamp": 1370, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.475427}, {"latitude": 49.259757, "timestamp": 1372, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.475339}, {"latitude": 49.259792, "timestamp": 1374, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.475231}, {"latitude": 49.259826, "timestamp": 1376, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.475133}, {"latitude": 49.25986, "timestamp": 1378, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.475036}, {"latitude": 49.259891, "timestamp": 1380, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.474929}, {"latitude": 49.259921, "timestamp": 1382, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.474836}, {"latitude": 49.259956, "timestamp": 1385, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.474731}, {"latitude": 49.259986, "timestamp": 1387, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.474637}, {"latitude": 49.260017, "timestamp": 1389, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.474534}, {"latitude": 49.260044, "timestamp": 1391, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.474443}, {"latitude": 49.260074, "timestamp": 1393, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.474349}, {"latitude": 49.260108, "timestamp": 1395, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.474237}, {"latitude": 49.260135, "timestamp": 1397, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.474132}, {"latitude": 49.260162, "timestamp": 1399, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.474041}, {"latitude": 49.260192, "timestamp": 1402, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.473938}, {"latitude": 49.260219, "timestamp": 1404, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.473834}, {"latitude": 49.260246, "timestamp": 1406, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.473733}, {"latitude": 49.260269, "timestamp": 1408, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.473648}, {"latitude": 49.260292, "timestamp": 1410, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.473541}, {"latitude": 49.260314, "timestamp": 1412, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.473438}, {"latitude": 49.260334, "timestamp": 1414, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.473344}, {"latitude": 49.260356, "timestamp": 1417, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.473243}, {"latitude": 49.260379, "timestamp": 1419, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.473142}, {"latitude": 49.260398, "timestamp": 1421, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.473045}, {"latitude": 49.260414, "timestamp": 1423, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.472955}, {"latitude": 49.260433, "timestamp": 1425, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.47285}, {"latitude": 49.260448, "timestamp": 1427, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.472753}, {"latitude": 49.260471, "timestamp": 1430, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.472654}, {"latitude": 49.26049, "timestamp": 1432, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.472553}, {"latitude": 49.260509, "timestamp": 1434, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.472448}, {"latitude": 49.260528, "timestamp": 1437, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.472332}, {"latitude": 49.260547, "timestamp": 1440, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.472219}, {"latitude": 49.260566, "timestamp": 1443, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.472118}, {"latitude": 49.260581, "timestamp": 1446, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.472034}, {"latitude": 49.260604, "timestamp": 1450, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.471944}, {"latitude": 49.260627, "timestamp": 1453, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.471853}, {"latitude": 49.26065, "timestamp": 1456, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.471765}, {"latitude": 49.260673, "timestamp": 1459, "altitude": 237, "type": "gps", "longitude": 16.471662}, {"latitude": 49.260696, "timestamp": 1463, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.471569}, {"latitude": 49.260723, "timestamp": 1466, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.471466}, {"latitude": 49.260746, "timestamp": 1469, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.471366}, {"latitude": 49.260768, "timestamp": 1472, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.471265}, {"latitude": 49.260791, "timestamp": 1476, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.471158}, {"latitude": 49.260814, "timestamp": 1479, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.471052}, {"latitude": 49.260841, "timestamp": 1482, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.470935}, {"latitude": 49.260868, "timestamp": 1485, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.470825}, {"latitude": 49.260894, "timestamp": 1488, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.470703}, {"latitude": 49.260917, "timestamp": 1491, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.47059}, {"latitude": 49.260948, "timestamp": 1494, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.470479}, {"latitude": 49.260978, "timestamp": 1497, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.470365}, {"latitude": 49.261009, "timestamp": 1500, "altitude": 240, "type": "gps", "longitude": 16.470254}, {"latitude": 49.261039, "timestamp": 1503, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.470159}, {"latitude": 49.261066, "timestamp": 1507, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.470052}, {"latitude": 49.261093, "timestamp": 1510, "altitude": 242, "type": "gps", "longitude": 16.469947}, {"latitude": 49.261119, "timestamp": 1513, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.469842}, {"latitude": 49.261142, "timestamp": 1516, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.469737}, {"latitude": 49.261161, "timestamp": 1519, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.469625}, {"latitude": 49.26118, "timestamp": 1522, "altitude": 244.27272727272728, "type": "gps", "longitude": 16.469501}, {"latitude": 49.261199, "timestamp": 1525, "altitude": 244.63636363636363, "type": "gps", "longitude": 16.469375}, {"latitude": 49.261219, "timestamp": 1528, "altitude": 244.8181818181818, "type": "gps", "longitude": 16.469249}, {"latitude": 49.261238, "timestamp": 1531, "altitude": 244.9090909090909, "type": "gps", "longitude": 16.469114}, {"latitude": 49.261257, "timestamp": 1534, "altitude": 244.72727272727272, "type": "gps", "longitude": 16.468994}, {"latitude": 49.26128, "timestamp": 1537, "altitude": 244.27272727272728, "type": "gps", "longitude": 16.468862}, {"latitude": 49.261302, "timestamp": 1540, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.468732}, {"latitude": 49.261325, "timestamp": 1543, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.468605}, {"latitude": 49.261348, "timestamp": 1546, "altitude": 241.9090909090909, "type": "gps", "longitude": 16.468479}, {"latitude": 49.261375, "timestamp": 1549, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.468357}, {"latitude": 49.261402, "timestamp": 1552, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.468229}, {"latitude": 49.261428, "timestamp": 1554, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.468107}, {"latitude": 49.261459, "timestamp": 1557, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.467979}, {"latitude": 49.261486, "timestamp": 1560, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.467859}, {"latitude": 49.261512, "timestamp": 1563, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.467744}, {"latitude": 49.261535, "timestamp": 1566, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.467622}, {"latitude": 49.261562, "timestamp": 1569, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.467502}, {"latitude": 49.261585, "timestamp": 1572, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.467386}, {"latitude": 49.2616, "timestamp": 1575, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.467273}, {"latitude": 49.261615, "timestamp": 1578, "altitude": 234.45454545454547, "type": "gps", "longitude": 16.467166}, {"latitude": 49.261623, "timestamp": 1581, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.467058}, {"latitude": 49.261623, "timestamp": 1584, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.466941}, {"latitude": 49.261623, "timestamp": 1587, "altitude": 232, "type": "gps", "longitude": 16.466821}, {"latitude": 49.261619, "timestamp": 1590, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.466693}, {"latitude": 49.261608, "timestamp": 1593, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.466567}, {"latitude": 49.261596, "timestamp": 1596, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.466438}, {"latitude": 49.261585, "timestamp": 1599, "altitude": 226.72727272727272, "type": "gps", "longitude": 16.466306}, {"latitude": 49.261569, "timestamp": 1602, "altitude": 226.1818181818182, "type": "gps", "longitude": 16.466186}, {"latitude": 49.261512, "timestamp": 1615, "altitude": 226.45454545454547, "type": "gps", "longitude": 16.46578}, {"latitude": 49.261497, "timestamp": 1619, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.465683}, {"latitude": 49.261474, "timestamp": 1622, "altitude": 229.54545454545453, "type": "gps", "longitude": 16.465568}, {"latitude": 49.261447, "timestamp": 1625, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.465446}, {"latitude": 49.261417, "timestamp": 1628, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.465333}, {"latitude": 49.261379, "timestamp": 1631, "altitude": 234.72727272727272, "type": "gps", "longitude": 16.465211}, {"latitude": 49.261341, "timestamp": 1634, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.465091}, {"latitude": 49.261299, "timestamp": 1637, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.464971}, {"latitude": 49.261253, "timestamp": 1640, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.464851}, {"latitude": 49.261207, "timestamp": 1643, "altitude": 245.72727272727272, "type": "gps", "longitude": 16.464733}, {"latitude": 49.261161, "timestamp": 1646, "altitude": 247.54545454545453, "type": "gps", "longitude": 16.464616}, {"latitude": 49.261115, "timestamp": 1648, "altitude": 248.72727272727272, "type": "gps", "longitude": 16.464513}, {"latitude": 49.261058, "timestamp": 1652, "altitude": 249, "type": "gps", "longitude": 16.464405}, {"latitude": 49.261005, "timestamp": 1654, "altitude": 248.63636363636363, "type": "gps", "longitude": 16.464311}, {"latitude": 49.260948, "timestamp": 1657, "altitude": 248.36363636363637, "type": "gps", "longitude": 16.464227}, {"latitude": 49.260887, "timestamp": 1660, "altitude": 248.0909090909091, "type": "gps", "longitude": 16.464141}, {"latitude": 49.260822, "timestamp": 1663, "altitude": 247.8181818181818, "type": "gps", "longitude": 16.464069}, {"latitude": 49.260753, "timestamp": 1666, "altitude": 247.45454545454547, "type": "gps", "longitude": 16.463996}, {"latitude": 49.260677, "timestamp": 1669, "altitude": 247.0909090909091, "type": "gps", "longitude": 16.463918}, {"latitude": 49.260608, "timestamp": 1672, "altitude": 246.72727272727272, "type": "gps", "longitude": 16.463851}, {"latitude": 49.260532, "timestamp": 1675, "altitude": 246.45454545454547, "type": "gps", "longitude": 16.463785}, {"latitude": 49.260452, "timestamp": 1678, "altitude": 246.27272727272728, "type": "gps", "longitude": 16.463712}, {"latitude": 49.260375, "timestamp": 1681, "altitude": 246.0909090909091, "type": "gps", "longitude": 16.463649}, {"latitude": 49.260295, "timestamp": 1684, "altitude": 245.9090909090909, "type": "gps", "longitude": 16.463579}, {"latitude": 49.260215, "timestamp": 1687, "altitude": 245.8181818181818, "type": "gps", "longitude": 16.46352}, {"latitude": 49.260139, "timestamp": 1690, "altitude": 245.72727272727272, "type": "gps", "longitude": 16.463462}, {"latitude": 49.260059, "timestamp": 1693, "altitude": 245.54545454545453, "type": "gps", "longitude": 16.463407}, {"latitude": 49.259983, "timestamp": 1696, "altitude": 245.27272727272728, "type": "gps", "longitude": 16.463354}, {"latitude": 49.259906, "timestamp": 1699, "altitude": 245, "type": "gps", "longitude": 16.463304}, {"latitude": 49.25983, "timestamp": 1702, "altitude": 244.63636363636363, "type": "gps", "longitude": 16.463256}, {"latitude": 49.25975, "timestamp": 1706, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.463211}, {"latitude": 49.259674, "timestamp": 1709, "altitude": 243.63636363636363, "type": "gps", "longitude": 16.463163}, {"latitude": 49.25959, "timestamp": 1712, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.463113}, {"latitude": 49.259506, "timestamp": 1715, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.463071}, {"latitude": 49.259426, "timestamp": 1718, "altitude": 242, "type": "gps", "longitude": 16.463035}, {"latitude": 49.259345, "timestamp": 1721, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.462999}, {"latitude": 49.259258, "timestamp": 1724, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.462959}, {"latitude": 49.25917, "timestamp": 1727, "altitude": 240, "type": "gps", "longitude": 16.462923}, {"latitude": 49.25909, "timestamp": 1730, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.462881}, {"latitude": 49.25901, "timestamp": 1733, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.462831}, {"latitude": 49.258937, "timestamp": 1736, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.46277}, {"latitude": 49.258857, "timestamp": 1739, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.462717}, {"latitude": 49.2588, "timestamp": 1742, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.462644}, {"latitude": 49.258747, "timestamp": 1745, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.462558}, {"latitude": 49.258693, "timestamp": 1748, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.462476}, {"latitude": 49.25864, "timestamp": 1751, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.462358}, {"latitude": 49.25859, "timestamp": 1754, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.462247}, {"latitude": 49.258541, "timestamp": 1757, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.462141}, {"latitude": 49.258491, "timestamp": 1760, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.462017}, {"latitude": 49.258453, "timestamp": 1763, "altitude": 237, "type": "gps", "longitude": 16.461894}, {"latitude": 49.258422, "timestamp": 1766, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.461776}, {"latitude": 49.258403, "timestamp": 1769, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.461652}, {"latitude": 49.258388, "timestamp": 1772, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.461534}, {"latitude": 49.258377, "timestamp": 1775, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.461412}, {"latitude": 49.258365, "timestamp": 1778, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.461276}, {"latitude": 49.258358, "timestamp": 1781, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.461147}, {"latitude": 49.258346, "timestamp": 1784, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.461023}, {"latitude": 49.258338, "timestamp": 1786, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.460901}, {"latitude": 49.258331, "timestamp": 1789, "altitude": 238, "type": "gps", "longitude": 16.460769}, {"latitude": 49.258327, "timestamp": 1792, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.460639}, {"latitude": 49.258323, "timestamp": 1795, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.460506}, {"latitude": 49.258319, "timestamp": 1798, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.460399}, {"latitude": 49.258316, "timestamp": 1800, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.46029}, {"latitude": 49.258316, "timestamp": 1802, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.460182}, {"latitude": 49.258316, "timestamp": 1804, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.460081}, {"latitude": 49.258316, "timestamp": 1806, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.45997}, {"latitude": 49.258316, "timestamp": 1808, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.459854}, {"latitude": 49.258316, "timestamp": 1810, "altitude": 232, "type": "gps", "longitude": 16.459743}, {"latitude": 49.258319, "timestamp": 1812, "altitude": 231.36363636363637, "type": "gps", "longitude": 16.459638}, {"latitude": 49.258323, "timestamp": 1814, "altitude": 231, "type": "gps", "longitude": 16.459524}, {"latitude": 49.258327, "timestamp": 1816, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.459407}, {"latitude": 49.258331, "timestamp": 1817, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.459301}, {"latitude": 49.258335, "timestamp": 1819, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.459194}, {"latitude": 49.258342, "timestamp": 1821, "altitude": 229.45454545454547, "type": "gps", "longitude": 16.459081}, {"latitude": 49.258346, "timestamp": 1823, "altitude": 229, "type": "gps", "longitude": 16.45898}, {"latitude": 49.258358, "timestamp": 1825, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.458875}, {"latitude": 49.258369, "timestamp": 1827, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.458764}, {"latitude": 49.258377, "timestamp": 1829, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.45866}, {"latitude": 49.258388, "timestamp": 1831, "altitude": 228.9090909090909, "type": "gps", "longitude": 16.458547}, {"latitude": 49.258399, "timestamp": 1832, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.458444}, {"latitude": 49.258411, "timestamp": 1834, "altitude": 229.27272727272728, "type": "gps", "longitude": 16.458339}, {"latitude": 49.258422, "timestamp": 1836, "altitude": 229.27272727272728, "type": "gps", "longitude": 16.458225}, {"latitude": 49.25843, "timestamp": 1838, "altitude": 229.54545454545453, "type": "gps", "longitude": 16.458122}, {"latitude": 49.258438, "timestamp": 1840, "altitude": 230.0909090909091, "type": "gps", "longitude": 16.458019}, {"latitude": 49.258449, "timestamp": 1842, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.457908}, {"latitude": 49.258457, "timestamp": 1844, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.457796}, {"latitude": 49.258464, "timestamp": 1846, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.457696}, {"latitude": 49.258468, "timestamp": 1848, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.457584}, {"latitude": 49.258472, "timestamp": 1849, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.457485}, {"latitude": 49.258472, "timestamp": 1851, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.457376}, {"latitude": 49.258472, "timestamp": 1853, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.457265}, {"latitude": 49.258472, "timestamp": 1855, "altitude": 231.63636363636363, "type": "gps", "longitude": 16.457149}, {"latitude": 49.258472, "timestamp": 1857, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.457036}, {"latitude": 49.258472, "timestamp": 1859, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.456922}, {"latitude": 49.258476, "timestamp": 1861, "altitude": 229.27272727272728, "type": "gps", "longitude": 16.456819}, {"latitude": 49.258476, "timestamp": 1863, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.456703}, {"latitude": 49.25848, "timestamp": 1865, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.456598}, {"latitude": 49.25848, "timestamp": 1868, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.456487}, {"latitude": 49.258476, "timestamp": 1871, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.456354}, {"latitude": 49.258476, "timestamp": 1874, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.456237}, {"latitude": 49.258468, "timestamp": 1877, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.456134}, {"latitude": 49.258468, "timestamp": 1880, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.456022}, {"latitude": 49.258468, "timestamp": 1883, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.455907}, {"latitude": 49.258472, "timestamp": 1887, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.455791}, {"latitude": 49.25848, "timestamp": 1890, "altitude": 233, "type": "gps", "longitude": 16.455682}, {"latitude": 49.258491, "timestamp": 1893, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.45557}, {"latitude": 49.25851, "timestamp": 1896, "altitude": 235, "type": "gps", "longitude": 16.455465}, {"latitude": 49.258529, "timestamp": 1900, "altitude": 236, "type": "gps", "longitude": 16.455356}, {"latitude": 49.258552, "timestamp": 1903, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.45524}, {"latitude": 49.258571, "timestamp": 1906, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.455127}, {"latitude": 49.258594, "timestamp": 1908, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.455045}, {"latitude": 49.258594, "timestamp": 1912, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.455045}, {"latitude": 49.258663, "timestamp": 1916, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.454916}, {"latitude": 49.258693, "timestamp": 1918, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.45491}, {"latitude": 49.258712, "timestamp": 1919, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.454908}, {"latitude": 49.258773, "timestamp": 1922, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.454896}, {"latitude": 49.258842, "timestamp": 1925, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.454887}, {"latitude": 49.258842, "timestamp": 1928, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.454887}, {"latitude": 49.258926, "timestamp": 1930, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.454877}, {"latitude": 49.258987, "timestamp": 1933, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.454872}, {"latitude": 49.259067, "timestamp": 1937, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.454866}, {"latitude": 49.25914, "timestamp": 1940, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.454866}, {"latitude": 49.259212, "timestamp": 1943, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.454864}, {"latitude": 49.259288, "timestamp": 1946, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.454864}, {"latitude": 49.259365, "timestamp": 1949, "altitude": 231.27272727272728, "type": "gps", "longitude": 16.454862}, {"latitude": 49.259445, "timestamp": 1953, "altitude": 230.9090909090909, "type": "gps", "longitude": 16.454858}, {"latitude": 49.259521, "timestamp": 1956, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.45486}, {"latitude": 49.259597, "timestamp": 1959, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.454856}, {"latitude": 49.259666, "timestamp": 1962, "altitude": 231, "type": "gps", "longitude": 16.454853}, {"latitude": 49.259727, "timestamp": 1965, "altitude": 231.36363636363637, "type": "gps", "longitude": 16.454856}, {"latitude": 49.259792, "timestamp": 1968, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.454866}, {"latitude": 49.259853, "timestamp": 1972, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.454875}, {"latitude": 49.259918, "timestamp": 1975, "altitude": 233, "type": "gps", "longitude": 16.454891}, {"latitude": 49.259983, "timestamp": 1978, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.454906}, {"latitude": 49.260044, "timestamp": 1981, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.454927}, {"latitude": 49.260108, "timestamp": 1985, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.454957}, {"latitude": 49.26017, "timestamp": 1988, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.454988}, {"latitude": 49.260227, "timestamp": 1991, "altitude": 235.36363636363637, "type": "gps", "longitude": 16.455022}, {"latitude": 49.260284, "timestamp": 1995, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.455068}, {"latitude": 49.260341, "timestamp": 1998, "altitude": 235.36363636363637, "type": "gps", "longitude": 16.455127}, {"latitude": 49.260398, "timestamp": 2001, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.455184}, {"latitude": 49.260456, "timestamp": 2004, "altitude": 235, "type": "gps", "longitude": 16.455238}, {"latitude": 49.260513, "timestamp": 2008, "altitude": 234.63636363636363, "type": "gps", "longitude": 16.455289}, {"latitude": 49.26057, "timestamp": 2011, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.455343}, {"latitude": 49.260631, "timestamp": 2014, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.455394}, {"latitude": 49.260696, "timestamp": 2017, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.455448}, {"latitude": 49.260761, "timestamp": 2020, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.455501}, {"latitude": 49.260829, "timestamp": 2024, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.45556}, {"latitude": 49.26089, "timestamp": 2027, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.45561}, {"latitude": 49.260955, "timestamp": 2030, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455661}, {"latitude": 49.261016, "timestamp": 2033, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455715}, {"latitude": 49.261081, "timestamp": 2036, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455768}, {"latitude": 49.261138, "timestamp": 2038, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455812}, {"latitude": 49.261196, "timestamp": 2040, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.45585}, {"latitude": 49.261249, "timestamp": 2042, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.455888}, {"latitude": 49.261306, "timestamp": 2044, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.455923}, {"latitude": 49.261367, "timestamp": 2046, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.455961}, {"latitude": 49.261432, "timestamp": 2048, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.455997}, {"latitude": 49.261489, "timestamp": 2050, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.456027}, {"latitude": 49.261543, "timestamp": 2051, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.45606}, {"latitude": 49.261604, "timestamp": 2053, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.456098}, {"latitude": 49.261665, "timestamp": 2055, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.456138}, {"latitude": 49.261718, "timestamp": 2057, "altitude": 235.36363636363637, "type": "gps", "longitude": 16.456172}, {"latitude": 49.261775, "timestamp": 2059, "altitude": 235.72727272727272, "type": "gps", "longitude": 16.456205}, {"latitude": 49.261837, "timestamp": 2061, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.456241}, {"latitude": 49.26189, "timestamp": 2063, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.456266}, {"latitude": 49.261943, "timestamp": 2065, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.456289}, {"latitude": 49.262004, "timestamp": 2067, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.45631}, {"latitude": 49.262069, "timestamp": 2069, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.456329}, {"latitude": 49.262126, "timestamp": 2071, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.456344}, {"latitude": 49.262195, "timestamp": 2073, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.456365}, {"latitude": 49.26226, "timestamp": 2075, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.456384}, {"latitude": 49.262317, "timestamp": 2077, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.456403}, {"latitude": 49.262382, "timestamp": 2079, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.456424}, {"latitude": 49.262611, "timestamp": 2091, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.456508}, {"latitude": 49.262664, "timestamp": 2095, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.456527}, {"latitude": 49.262722, "timestamp": 2099, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.456548}, {"latitude": 49.262783, "timestamp": 2102, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.456563}, {"latitude": 49.262844, "timestamp": 2106, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.456581}, {"latitude": 49.262908, "timestamp": 2109, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.456598}, {"latitude": 49.262977, "timestamp": 2112, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.456617}, {"latitude": 49.263046, "timestamp": 2115, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.456636}, {"latitude": 49.263114, "timestamp": 2118, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456651}, {"latitude": 49.263183, "timestamp": 2121, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456663}, {"latitude": 49.263256, "timestamp": 2124, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456672}, {"latitude": 49.263324, "timestamp": 2127, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456676}, {"latitude": 49.263397, "timestamp": 2131, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.45668}, {"latitude": 49.263469, "timestamp": 2134, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.456686}, {"latitude": 49.263542, "timestamp": 2137, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.456687}, {"latitude": 49.263607, "timestamp": 2140, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.456686}, {"latitude": 49.263679, "timestamp": 2143, "altitude": 237, "type": "gps", "longitude": 16.456682}, {"latitude": 49.263744, "timestamp": 2146, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.456672}, {"latitude": 49.263813, "timestamp": 2150, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.456665}, {"latitude": 49.263881, "timestamp": 2153, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.456651}, {"latitude": 49.26395, "timestamp": 2156, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.45664}, {"latitude": 49.264015, "timestamp": 2159, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.45663}, {"latitude": 49.264087, "timestamp": 2162, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.456621}, {"latitude": 49.264152, "timestamp": 2165, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.456613}, {"latitude": 49.264225, "timestamp": 2169, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.4566}, {"latitude": 49.264297, "timestamp": 2172, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.456592}, {"latitude": 49.264373, "timestamp": 2175, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.45659}, {"latitude": 49.26445, "timestamp": 2178, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.456588}, {"latitude": 49.264522, "timestamp": 2180, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.456588}, {"latitude": 49.264595, "timestamp": 2183, "altitude": 235.27272727272728, "type": "gps", "longitude": 16.456583}, {"latitude": 49.264656, "timestamp": 2186, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.456569}, {"latitude": 49.26472, "timestamp": 2189, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.456546}, {"latitude": 49.264835, "timestamp": 2196, "altitude": 235, "type": "gps", "longitude": 16.456485}, {"latitude": 49.264888, "timestamp": 2199, "altitude": 235, "type": "gps", "longitude": 16.456455}, {"latitude": 49.264953, "timestamp": 2202, "altitude": 235, "type": "gps", "longitude": 16.456417}, {"latitude": 49.265014, "timestamp": 2205, "altitude": 235, "type": "gps", "longitude": 16.456378}, {"latitude": 49.265079, "timestamp": 2208, "altitude": 234.9090909090909, "type": "gps", "longitude": 16.456338}, {"latitude": 49.26514, "timestamp": 2211, "altitude": 234.72727272727272, "type": "gps", "longitude": 16.456293}, {"latitude": 49.265197, "timestamp": 2214, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.456245}, {"latitude": 49.265251, "timestamp": 2217, "altitude": 234.36363636363637, "type": "gps", "longitude": 16.456203}, {"latitude": 49.265304, "timestamp": 2219, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.456159}, {"latitude": 49.265357, "timestamp": 2221, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.456117}, {"latitude": 49.265415, "timestamp": 2223, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.456075}, {"latitude": 49.265472, "timestamp": 2225, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.456029}, {"latitude": 49.265529, "timestamp": 2227, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.455989}, {"latitude": 49.265586, "timestamp": 2229, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455944}, {"latitude": 49.265651, "timestamp": 2231, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.455892}, {"latitude": 49.265705, "timestamp": 2233, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.455844}, {"latitude": 49.265773, "timestamp": 2235, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.455789}, {"latitude": 49.26583, "timestamp": 2237, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.455741}, {"latitude": 49.265888, "timestamp": 2239, "altitude": 230.27272727272728, "type": "gps", "longitude": 16.455694}, {"latitude": 49.265949, "timestamp": 2242, "altitude": 230, "type": "gps", "longitude": 16.455642}, {"latitude": 49.266006, "timestamp": 2244, "altitude": 229.72727272727272, "type": "gps", "longitude": 16.455593}, {"latitude": 49.266059, "timestamp": 2246, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.455543}, {"latitude": 49.26612, "timestamp": 2248, "altitude": 229.54545454545453, "type": "gps", "longitude": 16.455486}, {"latitude": 49.266178, "timestamp": 2250, "altitude": 229.45454545454547, "type": "gps", "longitude": 16.455432}, {"latitude": 49.266231, "timestamp": 2252, "altitude": 229.45454545454547, "type": "gps", "longitude": 16.455379}, {"latitude": 49.266288, "timestamp": 2254, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.455326}, {"latitude": 49.266345, "timestamp": 2256, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.455272}, {"latitude": 49.266399, "timestamp": 2258, "altitude": 230.36363636363637, "type": "gps", "longitude": 16.455217}, {"latitude": 49.266452, "timestamp": 2260, "altitude": 230.9090909090909, "type": "gps", "longitude": 16.455163}, {"latitude": 49.266502, "timestamp": 2262, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.455112}, {"latitude": 49.266555, "timestamp": 2264, "altitude": 232.0909090909091, "type": "gps", "longitude": 16.455053}, {"latitude": 49.266605, "timestamp": 2266, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.454994}, {"latitude": 49.266655, "timestamp": 2267, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.454936}, {"latitude": 49.266708, "timestamp": 2269, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.454872}, {"latitude": 49.266754, "timestamp": 2271, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.454811}, {"latitude": 49.266807, "timestamp": 2273, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.454744}, {"latitude": 49.266853, "timestamp": 2275, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.454687}, {"latitude": 49.266906, "timestamp": 2277, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.454616}, {"latitude": 49.266956, "timestamp": 2279, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.454547}, {"latitude": 49.266998, "timestamp": 2281, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.454483}, {"latitude": 49.267047, "timestamp": 2283, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.454412}, {"latitude": 49.267089, "timestamp": 2285, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.454347}, {"latitude": 49.267135, "timestamp": 2287, "altitude": 233, "type": "gps", "longitude": 16.454275}, {"latitude": 49.267181, "timestamp": 2289, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.454202}, {"latitude": 49.267219, "timestamp": 2290, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.454137}, {"latitude": 49.267269, "timestamp": 2293, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.454057}, {"latitude": 49.267311, "timestamp": 2295, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.453983}, {"latitude": 49.267353, "timestamp": 2298, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.453922}, {"latitude": 49.267395, "timestamp": 2302, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.453866}, {"latitude": 49.26744, "timestamp": 2305, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.453815}, {"latitude": 49.267494, "timestamp": 2308, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453762}, {"latitude": 49.267547, "timestamp": 2312, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.453712}, {"latitude": 49.267597, "timestamp": 2315, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.45367}, {"latitude": 49.267658, "timestamp": 2319, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.453632}, {"latitude": 49.267715, "timestamp": 2322, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.453594}, {"latitude": 49.267768, "timestamp": 2325, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.453557}, {"latitude": 49.267822, "timestamp": 2328, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.453523}, {"latitude": 49.267879, "timestamp": 2331, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453498}, {"latitude": 49.267936, "timestamp": 2334, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.453479}, {"latitude": 49.267993, "timestamp": 2337, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.453474}, {"latitude": 49.268054, "timestamp": 2340, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.453479}, {"latitude": 49.268138, "timestamp": 2345, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.45351}, {"latitude": 49.268196, "timestamp": 2348, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.45354}, {"latitude": 49.268249, "timestamp": 2351, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.453577}, {"latitude": 49.268302, "timestamp": 2354, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.453615}, {"latitude": 49.268352, "timestamp": 2358, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.453655}, {"latitude": 49.26844, "timestamp": 2365, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.453746}, {"latitude": 49.268497, "timestamp": 2371, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453807}, {"latitude": 49.268512, "timestamp": 2382, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.453842}, {"latitude": 49.268508, "timestamp": 2383, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.453851}, {"latitude": 49.268501, "timestamp": 2385, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.453866}, {"latitude": 49.268489, "timestamp": 2387, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.453886}, {"latitude": 49.268486, "timestamp": 2390, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.453884}, {"latitude": 49.268493, "timestamp": 2392, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.453859}, {"latitude": 49.268512, "timestamp": 2394, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.453832}, {"latitude": 49.268535, "timestamp": 2396, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.453807}, {"latitude": 49.268558, "timestamp": 2398, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.453792}, {"latitude": 49.268592, "timestamp": 2411, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.453834}, {"latitude": 49.268581, "timestamp": 2413, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.453851}, {"latitude": 49.268566, "timestamp": 2416, "altitude": 234, "type": "gps", "longitude": 16.453872}, {"latitude": 49.268558, "timestamp": 2417, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.453884}, {"latitude": 49.268539, "timestamp": 2421, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.453912}, {"latitude": 49.268535, "timestamp": 2422, "altitude": 234.45454545454547, "type": "gps", "longitude": 16.45392}, {"latitude": 49.268524, "timestamp": 2425, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.453937}, {"latitude": 49.26852, "timestamp": 2426, "altitude": 234.63636363636363, "type": "gps", "longitude": 16.453941}, {"latitude": 49.268508, "timestamp": 2429, "altitude": 234.72727272727272, "type": "gps", "longitude": 16.453954}, {"latitude": 49.268497, "timestamp": 2434, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.453968}, {"latitude": 49.268489, "timestamp": 2437, "altitude": 234.9090909090909, "type": "gps", "longitude": 16.453977}, {"latitude": 49.268489, "timestamp": 2439, "altitude": 235, "type": "gps", "longitude": 16.453981}, {"latitude": 49.268489, "timestamp": 2441, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.453981}, {"latitude": 49.268489, "timestamp": 2443, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.453979}, {"latitude": 49.268489, "timestamp": 2446, "altitude": 235.27272727272728, "type": "gps", "longitude": 16.453977}, {"latitude": 49.268489, "timestamp": 2448, "altitude": 235.36363636363637, "type": "gps", "longitude": 16.453977}, {"latitude": 49.268486, "timestamp": 2451, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.453971}, {"latitude": 49.26847, "timestamp": 2479, "altitude": 235.54545454545453, "type": "gps", "longitude": 16.454017}, {"latitude": 49.268505, "timestamp": 2567, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.454025}, {"latitude": 49.268505, "timestamp": 2568, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.454025}, {"latitude": 49.268505, "timestamp": 2569, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.454025}, {"latitude": 49.268501, "timestamp": 2571, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.454023}, {"latitude": 49.268501, "timestamp": 2573, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.454021}, {"latitude": 49.268489, "timestamp": 2578, "altitude": 235.54545454545453, "type": "gps", "longitude": 16.45401}, {"latitude": 49.268489, "timestamp": 2581, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.454002}, {"latitude": 49.268493, "timestamp": 2582, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.454}, {"latitude": 49.268497, "timestamp": 2584, "altitude": 234.9090909090909, "type": "gps", "longitude": 16.454002}, {"latitude": 49.268497, "timestamp": 2586, "altitude": 234.63636363636363, "type": "gps", "longitude": 16.453996}, {"latitude": 49.268497, "timestamp": 2587, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.45399}, {"latitude": 49.268508, "timestamp": 2590, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.453949}, {"latitude": 49.268466, "timestamp": 2606, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.453813}, {"latitude": 49.268447, "timestamp": 2611, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.453783}, {"latitude": 49.268363, "timestamp": 2627, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453691}, {"latitude": 49.268352, "timestamp": 2629, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.453678}, {"latitude": 49.268337, "timestamp": 2630, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.453664}, {"latitude": 49.268322, "timestamp": 2631, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.453651}, {"latitude": 49.26831, "timestamp": 2632, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.453645}, {"latitude": 49.268257, "timestamp": 2636, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.453622}, {"latitude": 49.26818, "timestamp": 2639, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.453594}, {"latitude": 49.268108, "timestamp": 2642, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.453569}, {"latitude": 49.268035, "timestamp": 2644, "altitude": 233, "type": "gps", "longitude": 16.453554}, {"latitude": 49.267833, "timestamp": 2657, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453567}, {"latitude": 49.267818, "timestamp": 2658, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453578}, {"latitude": 49.267742, "timestamp": 2661, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453634}, {"latitude": 49.267662, "timestamp": 2664, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.453693}, {"latitude": 49.267585, "timestamp": 2667, "altitude": 233, "type": "gps", "longitude": 16.453758}, {"latitude": 49.267543, "timestamp": 2669, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.453792}, {"latitude": 49.267467, "timestamp": 2672, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.453855}, {"latitude": 49.267398, "timestamp": 2675, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.453914}, {"latitude": 49.267314, "timestamp": 2678, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.453985}, {"latitude": 49.26725, "timestamp": 2681, "altitude": 233, "type": "gps", "longitude": 16.454044}, {"latitude": 49.267173, "timestamp": 2684, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.454116}, {"latitude": 49.267105, "timestamp": 2687, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.454195}, {"latitude": 49.267028, "timestamp": 2690, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.454277}, {"latitude": 49.266963, "timestamp": 2692, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.454357}, {"latitude": 49.266899, "timestamp": 2695, "altitude": 234, "type": "gps", "longitude": 16.454441}, {"latitude": 49.26683, "timestamp": 2698, "altitude": 234, "type": "gps", "longitude": 16.454528}, {"latitude": 49.266769, "timestamp": 2701, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.454603}, {"latitude": 49.266693, "timestamp": 2704, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.454685}, {"latitude": 49.266624, "timestamp": 2707, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.454767}, {"latitude": 49.266548, "timestamp": 2710, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.454845}, {"latitude": 49.266471, "timestamp": 2713, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.454908}, {"latitude": 49.266391, "timestamp": 2716, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.454965}, {"latitude": 49.266311, "timestamp": 2719, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.45502}, {"latitude": 49.266235, "timestamp": 2722, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.455072}, {"latitude": 49.266155, "timestamp": 2725, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.455123}, {"latitude": 49.266078, "timestamp": 2728, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.455181}, {"latitude": 49.265998, "timestamp": 2731, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.455242}, {"latitude": 49.265926, "timestamp": 2734, "altitude": 233, "type": "gps", "longitude": 16.455307}, {"latitude": 49.265857, "timestamp": 2736, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.455373}, {"latitude": 49.265788, "timestamp": 2739, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.455446}, {"latitude": 49.26572, "timestamp": 2743, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.455526}, {"latitude": 49.26564, "timestamp": 2746, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.455614}, {"latitude": 49.265567, "timestamp": 2749, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.455694}, {"latitude": 49.265499, "timestamp": 2752, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.45577}, {"latitude": 49.265422, "timestamp": 2756, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.455854}, {"latitude": 49.26535, "timestamp": 2759, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.455934}, {"latitude": 49.265277, "timestamp": 2762, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.456012}, {"latitude": 49.265205, "timestamp": 2765, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.456088}, {"latitude": 49.265132, "timestamp": 2768, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.456167}, {"latitude": 49.265068, "timestamp": 2771, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.456239}, {"latitude": 49.264995, "timestamp": 2774, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.456302}, {"latitude": 49.264923, "timestamp": 2776, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.456354}, {"latitude": 49.26485, "timestamp": 2779, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.45639}, {"latitude": 49.26477, "timestamp": 2782, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.456417}, {"latitude": 49.264686, "timestamp": 2785, "altitude": 234, "type": "gps", "longitude": 16.456434}, {"latitude": 49.26461, "timestamp": 2787, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.456443}, {"latitude": 49.264537, "timestamp": 2789, "altitude": 234.36363636363637, "type": "gps", "longitude": 16.456447}, {"latitude": 49.264465, "timestamp": 2791, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.456451}, {"latitude": 49.264396, "timestamp": 2793, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.456455}, {"latitude": 49.26432, "timestamp": 2795, "altitude": 235.0909090909091, "type": "gps", "longitude": 16.456457}, {"latitude": 49.264247, "timestamp": 2796, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.456457}, {"latitude": 49.264175, "timestamp": 2798, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.456453}, {"latitude": 49.264106, "timestamp": 2800, "altitude": 235.72727272727272, "type": "gps", "longitude": 16.456449}, {"latitude": 49.264026, "timestamp": 2802, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.456439}, {"latitude": 49.263954, "timestamp": 2804, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.456434}, {"latitude": 49.263881, "timestamp": 2806, "altitude": 235.63636363636363, "type": "gps", "longitude": 16.456428}, {"latitude": 49.263801, "timestamp": 2808, "altitude": 235.27272727272728, "type": "gps", "longitude": 16.456418}, {"latitude": 49.263729, "timestamp": 2809, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.456411}, {"latitude": 49.263652, "timestamp": 2811, "altitude": 234.36363636363637, "type": "gps", "longitude": 16.456399}, {"latitude": 49.26358, "timestamp": 2813, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.456394}, {"latitude": 49.263515, "timestamp": 2815, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.45639}, {"latitude": 49.263435, "timestamp": 2817, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.456384}, {"latitude": 49.263362, "timestamp": 2819, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.45638}, {"latitude": 49.263294, "timestamp": 2821, "altitude": 232.27272727272728, "type": "gps", "longitude": 16.456373}, {"latitude": 49.263214, "timestamp": 2823, "altitude": 232.1818181818182, "type": "gps", "longitude": 16.456367}, {"latitude": 49.263145, "timestamp": 2825, "altitude": 232.1818181818182, "type": "gps", "longitude": 16.456361}, {"latitude": 49.263069, "timestamp": 2827, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.456352}, {"latitude": 49.263, "timestamp": 2828, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.456346}, {"latitude": 49.262927, "timestamp": 2830, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.456338}, {"latitude": 49.262851, "timestamp": 2832, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.456327}, {"latitude": 49.262779, "timestamp": 2834, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.456315}, {"latitude": 49.26271, "timestamp": 2836, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.4563}, {"latitude": 49.26263, "timestamp": 2838, "altitude": 235.27272727272728, "type": "gps", "longitude": 16.456283}, {"latitude": 49.262561, "timestamp": 2840, "altitude": 235.72727272727272, "type": "gps", "longitude": 16.45627}, {"latitude": 49.262489, "timestamp": 2841, "altitude": 236, "type": "gps", "longitude": 16.456251}, {"latitude": 49.262413, "timestamp": 2843, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456232}, {"latitude": 49.262348, "timestamp": 2845, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.456212}, {"latitude": 49.262264, "timestamp": 2847, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.45619}, {"latitude": 49.262195, "timestamp": 2849, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.456169}, {"latitude": 49.262126, "timestamp": 2851, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.456144}, {"latitude": 49.26205, "timestamp": 2853, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.456117}, {"latitude": 49.261978, "timestamp": 2855, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.456092}, {"latitude": 49.261901, "timestamp": 2857, "altitude": 235.54545454545453, "type": "gps", "longitude": 16.456062}, {"latitude": 49.261837, "timestamp": 2858, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.456037}, {"latitude": 49.261768, "timestamp": 2860, "altitude": 234.72727272727272, "type": "gps", "longitude": 16.456008}, {"latitude": 49.261692, "timestamp": 2862, "altitude": 234.36363636363637, "type": "gps", "longitude": 16.455976}, {"latitude": 49.261623, "timestamp": 2864, "altitude": 234, "type": "gps", "longitude": 16.455944}, {"latitude": 49.261554, "timestamp": 2866, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.455911}, {"latitude": 49.261482, "timestamp": 2868, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.455873}, {"latitude": 49.261409, "timestamp": 2870, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.455833}, {"latitude": 49.261344, "timestamp": 2872, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455795}, {"latitude": 49.26128, "timestamp": 2873, "altitude": 232.0909090909091, "type": "gps", "longitude": 16.455753}, {"latitude": 49.261211, "timestamp": 2875, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.455705}, {"latitude": 49.261138, "timestamp": 2877, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.455656}, {"latitude": 49.261074, "timestamp": 2879, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.455608}, {"latitude": 49.261013, "timestamp": 2881, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.455566}, {"latitude": 49.260944, "timestamp": 2883, "altitude": 232.36363636363637, "type": "gps", "longitude": 16.455512}, {"latitude": 49.260879, "timestamp": 2885, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.455463}, {"latitude": 49.260818, "timestamp": 2886, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.455411}, {"latitude": 49.260746, "timestamp": 2888, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.455354}, {"latitude": 49.260696, "timestamp": 2890, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.45531}, {"latitude": 49.26041, "timestamp": 2902, "altitude": 235.36363636363637, "type": "gps", "longitude": 16.455064}, {"latitude": 49.260341, "timestamp": 2906, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.454999}, {"latitude": 49.260272, "timestamp": 2909, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.454933}, {"latitude": 49.2602, "timestamp": 2913, "altitude": 237, "type": "gps", "longitude": 16.454858}, {"latitude": 49.260124, "timestamp": 2917, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.454782}, {"latitude": 49.260059, "timestamp": 2920, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.454721}, {"latitude": 49.259975, "timestamp": 2924, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.454658}, {"latitude": 49.259899, "timestamp": 2927, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.454605}, {"latitude": 49.259826, "timestamp": 2931, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.454561}, {"latitude": 49.259742, "timestamp": 2934, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.454515}, {"latitude": 49.259666, "timestamp": 2937, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.454479}, {"latitude": 49.259582, "timestamp": 2941, "altitude": 244.36363636363637, "type": "gps", "longitude": 16.454442}, {"latitude": 49.259502, "timestamp": 2944, "altitude": 245.45454545454547, "type": "gps", "longitude": 16.454416}, {"latitude": 49.259422, "timestamp": 2947, "altitude": 246.54545454545453, "type": "gps", "longitude": 16.454395}, {"latitude": 49.259342, "timestamp": 2950, "altitude": 247.54545454545453, "type": "gps", "longitude": 16.454383}, {"latitude": 49.259258, "timestamp": 2953, "altitude": 248.36363636363637, "type": "gps", "longitude": 16.454378}, {"latitude": 49.259181, "timestamp": 2956, "altitude": 248.9090909090909, "type": "gps", "longitude": 16.454385}, {"latitude": 49.259109, "timestamp": 2959, "altitude": 249.1818181818182, "type": "gps", "longitude": 16.454402}, {"latitude": 49.259033, "timestamp": 2963, "altitude": 249.1818181818182, "type": "gps", "longitude": 16.454425}, {"latitude": 49.259033, "timestamp": 2969, "altitude": 249, "type": "gps", "longitude": 16.454425}, {"latitude": 49.258846, "timestamp": 2975, "altitude": 248.72727272727272, "type": "gps", "longitude": 16.454519}, {"latitude": 49.258827, "timestamp": 2977, "altitude": 248.27272727272728, "type": "gps", "longitude": 16.454555}, {"latitude": 49.258827, "timestamp": 2980, "altitude": 247.54545454545453, "type": "gps", "longitude": 16.454555}, {"latitude": 49.258773, "timestamp": 2984, "altitude": 246.63636363636363, "type": "gps", "longitude": 16.454641}, {"latitude": 49.258758, "timestamp": 2986, "altitude": 245.36363636363637, "type": "gps", "longitude": 16.454668}, {"latitude": 49.25872, "timestamp": 2990, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.454742}, {"latitude": 49.258686, "timestamp": 2993, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.454835}, {"latitude": 49.258651, "timestamp": 2996, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.45494}, {"latitude": 49.258621, "timestamp": 3000, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.455051}, {"latitude": 49.25859, "timestamp": 3003, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.455173}, {"latitude": 49.258564, "timestamp": 3006, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.455295}, {"latitude": 49.258541, "timestamp": 3009, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.455415}, {"latitude": 49.258514, "timestamp": 3012, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.455543}, {"latitude": 49.258495, "timestamp": 3015, "altitude": 233.36363636363637, "type": "gps", "longitude": 16.455675}, {"latitude": 49.258476, "timestamp": 3018, "altitude": 232.0909090909091, "type": "gps", "longitude": 16.455799}, {"latitude": 49.258457, "timestamp": 3021, "altitude": 231, "type": "gps", "longitude": 16.455921}, {"latitude": 49.258438, "timestamp": 3025, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.45605}, {"latitude": 49.258422, "timestamp": 3028, "altitude": 229.45454545454547, "type": "gps", "longitude": 16.456169}, {"latitude": 49.258407, "timestamp": 3030, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.456285}, {"latitude": 49.258388, "timestamp": 3033, "altitude": 230.1818181818182, "type": "gps", "longitude": 16.456407}, {"latitude": 49.258373, "timestamp": 3036, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.456527}, {"latitude": 49.258358, "timestamp": 3039, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.456655}, {"latitude": 49.258338, "timestamp": 3042, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.456777}, {"latitude": 49.258327, "timestamp": 3044, "altitude": 231.8181818181818, "type": "gps", "longitude": 16.456882}, {"latitude": 49.258316, "timestamp": 3046, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.456968}, {"latitude": 49.258304, "timestamp": 3048, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.457067}, {"latitude": 49.258289, "timestamp": 3050, "altitude": 234.9090909090909, "type": "gps", "longitude": 16.457176}, {"latitude": 49.258277, "timestamp": 3051, "altitude": 236.0909090909091, "type": "gps", "longitude": 16.457275}, {"latitude": 49.258266, "timestamp": 3053, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.457374}, {"latitude": 49.258251, "timestamp": 3055, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.457485}, {"latitude": 49.258239, "timestamp": 3056, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.457586}, {"latitude": 49.258224, "timestamp": 3058, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.457685}, {"latitude": 49.258209, "timestamp": 3060, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.457792}, {"latitude": 49.258193, "timestamp": 3061, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.457899}, {"latitude": 49.258178, "timestamp": 3063, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.458005}, {"latitude": 49.258163, "timestamp": 3065, "altitude": 236.27272727272728, "type": "gps", "longitude": 16.458112}, {"latitude": 49.258148, "timestamp": 3067, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.458208}, {"latitude": 49.258132, "timestamp": 3068, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.458314}, {"latitude": 49.258117, "timestamp": 3070, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.458414}, {"latitude": 49.258102, "timestamp": 3072, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.458528}, {"latitude": 49.258083, "timestamp": 3074, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.458637}, {"latitude": 49.258068, "timestamp": 3076, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.45874}, {"latitude": 49.258068, "timestamp": 3079, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.45874}, {"latitude": 49.258041, "timestamp": 3081, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.458995}, {"latitude": 49.258037, "timestamp": 3084, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.459081}, {"latitude": 49.258033, "timestamp": 3087, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.459173}, {"latitude": 49.258037, "timestamp": 3091, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.459274}, {"latitude": 49.258037, "timestamp": 3094, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.45936}, {"latitude": 49.258037, "timestamp": 3097, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.459459}, {"latitude": 49.258033, "timestamp": 3100, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.459554}, {"latitude": 49.258029, "timestamp": 3103, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.459661}, {"latitude": 49.258029, "timestamp": 3106, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.459768}, {"latitude": 49.258026, "timestamp": 3110, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.45988}, {"latitude": 49.258026, "timestamp": 3113, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.459999}, {"latitude": 49.258026, "timestamp": 3116, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.460111}, {"latitude": 49.258029, "timestamp": 3119, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.46022}, {"latitude": 49.258029, "timestamp": 3123, "altitude": 241.72727272727272, "type": "gps", "longitude": 16.460338}, {"latitude": 49.258029, "timestamp": 3126, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.460454}, {"latitude": 49.258026, "timestamp": 3129, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.460571}, {"latitude": 49.258026, "timestamp": 3132, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.460681}, {"latitude": 49.258026, "timestamp": 3135, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.460805}, {"latitude": 49.258026, "timestamp": 3138, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.460929}, {"latitude": 49.258026, "timestamp": 3141, "altitude": 242, "type": "gps", "longitude": 16.461048}, {"latitude": 49.258029, "timestamp": 3144, "altitude": 241.54545454545453, "type": "gps", "longitude": 16.461172}, {"latitude": 49.258037, "timestamp": 3147, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.461298}, {"latitude": 49.258048, "timestamp": 3150, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.461421}, {"latitude": 49.258064, "timestamp": 3153, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.461549}, {"latitude": 49.258083, "timestamp": 3156, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.461675}, {"latitude": 49.258102, "timestamp": 3159, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.461803}, {"latitude": 49.258121, "timestamp": 3162, "altitude": 239, "type": "gps", "longitude": 16.461917}, {"latitude": 49.258144, "timestamp": 3165, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.462041}, {"latitude": 49.258167, "timestamp": 3168, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.462163}, {"latitude": 49.258193, "timestamp": 3171, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.462266}, {"latitude": 49.258224, "timestamp": 3174, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.462375}, {"latitude": 49.258262, "timestamp": 3177, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.462478}, {"latitude": 49.258304, "timestamp": 3179, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.462568}, {"latitude": 49.25835, "timestamp": 3182, "altitude": 238, "type": "gps", "longitude": 16.46265}, {"latitude": 49.258407, "timestamp": 3185, "altitude": 237.8181818181818, "type": "gps", "longitude": 16.462736}, {"latitude": 49.258461, "timestamp": 3188, "altitude": 237.63636363636363, "type": "gps", "longitude": 16.4628}, {"latitude": 49.258529, "timestamp": 3191, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.462871}, {"latitude": 49.258594, "timestamp": 3194, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.462926}, {"latitude": 49.258663, "timestamp": 3197, "altitude": 237, "type": "gps", "longitude": 16.462984}, {"latitude": 49.258735, "timestamp": 3200, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.463033}, {"latitude": 49.258804, "timestamp": 3203, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.463079}, {"latitude": 49.258876, "timestamp": 3207, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.463121}, {"latitude": 49.258949, "timestamp": 3210, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.463157}, {"latitude": 49.259021, "timestamp": 3213, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.463195}, {"latitude": 49.259094, "timestamp": 3216, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.463226}, {"latitude": 49.259178, "timestamp": 3219, "altitude": 237.0909090909091, "type": "gps", "longitude": 16.46326}, {"latitude": 49.259254, "timestamp": 3222, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.463291}, {"latitude": 49.259334, "timestamp": 3225, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.463323}, {"latitude": 49.25941, "timestamp": 3228, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.463354}, {"latitude": 49.25949, "timestamp": 3231, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.463384}, {"latitude": 49.259571, "timestamp": 3234, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.463417}, {"latitude": 49.259651, "timestamp": 3237, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.463453}, {"latitude": 49.259723, "timestamp": 3240, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.463491}, {"latitude": 49.259796, "timestamp": 3243, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.463531}, {"latitude": 49.259872, "timestamp": 3246, "altitude": 241, "type": "gps", "longitude": 16.463583}, {"latitude": 49.259944, "timestamp": 3249, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.46363}, {"latitude": 49.260017, "timestamp": 3252, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.463682}, {"latitude": 49.260093, "timestamp": 3255, "altitude": 241.9090909090909, "type": "gps", "longitude": 16.463739}, {"latitude": 49.260166, "timestamp": 3258, "altitude": 242.1818181818182, "type": "gps", "longitude": 16.4638}, {"latitude": 49.260242, "timestamp": 3261, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.463865}, {"latitude": 49.260318, "timestamp": 3264, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.463932}, {"latitude": 49.260391, "timestamp": 3267, "altitude": 243, "type": "gps", "longitude": 16.464}, {"latitude": 49.260459, "timestamp": 3270, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.464065}, {"latitude": 49.260524, "timestamp": 3273, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.464139}, {"latitude": 49.260589, "timestamp": 3276, "altitude": 243.8181818181818, "type": "gps", "longitude": 16.46422}, {"latitude": 49.260646, "timestamp": 3279, "altitude": 244, "type": "gps", "longitude": 16.464302}, {"latitude": 49.260704, "timestamp": 3282, "altitude": 244.0909090909091, "type": "gps", "longitude": 16.464391}, {"latitude": 49.260757, "timestamp": 3285, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.464483}, {"latitude": 49.260814, "timestamp": 3288, "altitude": 244.27272727272728, "type": "gps", "longitude": 16.464586}, {"latitude": 49.260871, "timestamp": 3291, "altitude": 244.27272727272728, "type": "gps", "longitude": 16.464685}, {"latitude": 49.260917, "timestamp": 3294, "altitude": 243.8181818181818, "type": "gps", "longitude": 16.464782}, {"latitude": 49.260967, "timestamp": 3297, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.464893}, {"latitude": 49.261016, "timestamp": 3300, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.465005}, {"latitude": 49.261062, "timestamp": 3303, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.465116}, {"latitude": 49.261108, "timestamp": 3306, "altitude": 238.0909090909091, "type": "gps", "longitude": 16.465227}, {"latitude": 49.261154, "timestamp": 3309, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.465343}, {"latitude": 49.261196, "timestamp": 3312, "altitude": 234.8181818181818, "type": "gps", "longitude": 16.465463}, {"latitude": 49.261234, "timestamp": 3315, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.465585}, {"latitude": 49.261264, "timestamp": 3318, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.465713}, {"latitude": 49.261295, "timestamp": 3321, "altitude": 231.36363636363637, "type": "gps", "longitude": 16.465841}, {"latitude": 49.261318, "timestamp": 3324, "altitude": 230.0909090909091, "type": "gps", "longitude": 16.465969}, {"latitude": 49.261337, "timestamp": 3327, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.466091}, {"latitude": 49.261352, "timestamp": 3330, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.466222}, {"latitude": 49.261371, "timestamp": 3333, "altitude": 229, "type": "gps", "longitude": 16.466362}, {"latitude": 49.261383, "timestamp": 3336, "altitude": 229.1818181818182, "type": "gps", "longitude": 16.466495}, {"latitude": 49.26139, "timestamp": 3339, "altitude": 229.36363636363637, "type": "gps", "longitude": 16.46663}, {"latitude": 49.261398, "timestamp": 3342, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.466756}, {"latitude": 49.261402, "timestamp": 3345, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.46689}, {"latitude": 49.261405, "timestamp": 3348, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.467018}, {"latitude": 49.261398, "timestamp": 3350, "altitude": 231.9090909090909, "type": "gps", "longitude": 16.467144}, {"latitude": 49.261386, "timestamp": 3353, "altitude": 232.27272727272728, "type": "gps", "longitude": 16.467266}, {"latitude": 49.261367, "timestamp": 3356, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.467382}, {"latitude": 49.261352, "timestamp": 3358, "altitude": 233.27272727272728, "type": "gps", "longitude": 16.467473}, {"latitude": 49.261325, "timestamp": 3360, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.467588}, {"latitude": 49.261302, "timestamp": 3362, "altitude": 234.27272727272728, "type": "gps", "longitude": 16.467693}, {"latitude": 49.26128, "timestamp": 3364, "altitude": 234.9090909090909, "type": "gps", "longitude": 16.467792}, {"latitude": 49.261253, "timestamp": 3366, "altitude": 235.54545454545453, "type": "gps", "longitude": 16.467912}, {"latitude": 49.26123, "timestamp": 3368, "altitude": 236, "type": "gps", "longitude": 16.468015}, {"latitude": 49.261203, "timestamp": 3370, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.468116}, {"latitude": 49.261177, "timestamp": 3373, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.468225}, {"latitude": 49.261154, "timestamp": 3375, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.468324}, {"latitude": 49.261131, "timestamp": 3377, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.468425}, {"latitude": 49.261108, "timestamp": 3379, "altitude": 238, "type": "gps", "longitude": 16.468526}, {"latitude": 49.261081, "timestamp": 3381, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.468637}, {"latitude": 49.261054, "timestamp": 3383, "altitude": 239.27272727272728, "type": "gps", "longitude": 16.46874}, {"latitude": 49.261028, "timestamp": 3385, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.468841}, {"latitude": 49.261001, "timestamp": 3387, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.468948}, {"latitude": 49.260974, "timestamp": 3389, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.469053}, {"latitude": 49.260948, "timestamp": 3391, "altitude": 239.72727272727272, "type": "gps", "longitude": 16.469158}, {"latitude": 49.260917, "timestamp": 3393, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.469272}, {"latitude": 49.26089, "timestamp": 3395, "altitude": 240, "type": "gps", "longitude": 16.469377}, {"latitude": 49.260868, "timestamp": 3397, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.46947}, {"latitude": 49.260837, "timestamp": 3399, "altitude": 240.27272727272728, "type": "gps", "longitude": 16.469589}, {"latitude": 49.26081, "timestamp": 3401, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.469692}, {"latitude": 49.260784, "timestamp": 3403, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.469795}, {"latitude": 49.260753, "timestamp": 3405, "altitude": 240.0909090909091, "type": "gps", "longitude": 16.469907}, {"latitude": 49.260726, "timestamp": 3407, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.47001}, {"latitude": 49.260696, "timestamp": 3410, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.470121}, {"latitude": 49.260669, "timestamp": 3412, "altitude": 240.72727272727272, "type": "gps", "longitude": 16.470218}, {"latitude": 49.260643, "timestamp": 3414, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.470325}, {"latitude": 49.260616, "timestamp": 3416, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.47042}, {"latitude": 49.260589, "timestamp": 3418, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.470521}, {"latitude": 49.260562, "timestamp": 3420, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.47063}, {"latitude": 49.260532, "timestamp": 3422, "altitude": 241.54545454545453, "type": "gps", "longitude": 16.470737}, {"latitude": 49.260509, "timestamp": 3424, "altitude": 242, "type": "gps", "longitude": 16.470828}, {"latitude": 49.260482, "timestamp": 3426, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.470933}, {"latitude": 49.260459, "timestamp": 3428, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.471044}, {"latitude": 49.260436, "timestamp": 3430, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.471145}, {"latitude": 49.26041, "timestamp": 3433, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.471254}, {"latitude": 49.260387, "timestamp": 3435, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.471357}, {"latitude": 49.26036, "timestamp": 3437, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.47146}, {"latitude": 49.260337, "timestamp": 3439, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.471567}, {"latitude": 49.260311, "timestamp": 3441, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.471679}, {"latitude": 49.260288, "timestamp": 3443, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.471784}, {"latitude": 49.260265, "timestamp": 3445, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.471889}, {"latitude": 49.260242, "timestamp": 3447, "altitude": 243.63636363636363, "type": "gps", "longitude": 16.471996}, {"latitude": 49.260219, "timestamp": 3449, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.472101}, {"latitude": 49.2602, "timestamp": 3451, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.472202}, {"latitude": 49.260177, "timestamp": 3453, "altitude": 243, "type": "gps", "longitude": 16.472309}, {"latitude": 49.260154, "timestamp": 3455, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.472423}, {"latitude": 49.260135, "timestamp": 3457, "altitude": 243, "type": "gps", "longitude": 16.472522}, {"latitude": 49.260055, "timestamp": 3469, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.472944}, {"latitude": 49.260047, "timestamp": 3470, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.472972}, {"latitude": 49.260025, "timestamp": 3474, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.473089}, {"latitude": 49.260002, "timestamp": 3478, "altitude": 242, "type": "gps", "longitude": 16.473211}, {"latitude": 49.259979, "timestamp": 3482, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.473331}, {"latitude": 49.259956, "timestamp": 3485, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.473434}, {"latitude": 49.259937, "timestamp": 3488, "altitude": 240.36363636363637, "type": "gps", "longitude": 16.473554}, {"latitude": 49.25991, "timestamp": 3491, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.473674}, {"latitude": 49.259887, "timestamp": 3494, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.473791}, {"latitude": 49.259864, "timestamp": 3498, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.473915}, {"latitude": 49.259838, "timestamp": 3501, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.474033}, {"latitude": 49.259811, "timestamp": 3504, "altitude": 239.36363636363637, "type": "gps", "longitude": 16.474163}, {"latitude": 49.25978, "timestamp": 3507, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.474283}, {"latitude": 49.259754, "timestamp": 3510, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.474412}, {"latitude": 49.259723, "timestamp": 3513, "altitude": 241, "type": "gps", "longitude": 16.474529}, {"latitude": 49.259693, "timestamp": 3516, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.474655}, {"latitude": 49.259658, "timestamp": 3520, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.474775}, {"latitude": 49.259624, "timestamp": 3523, "altitude": 242, "type": "gps", "longitude": 16.474899}, {"latitude": 49.259593, "timestamp": 3526, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.475011}, {"latitude": 49.259559, "timestamp": 3529, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.47513}, {"latitude": 49.259529, "timestamp": 3532, "altitude": 243.1818181818182, "type": "gps", "longitude": 16.475246}, {"latitude": 49.259494, "timestamp": 3535, "altitude": 243.1818181818182, "type": "gps", "longitude": 16.47537}, {"latitude": 49.259464, "timestamp": 3538, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.475488}, {"latitude": 49.259433, "timestamp": 3541, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.475601}, {"latitude": 49.259407, "timestamp": 3544, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.475715}, {"latitude": 49.259372, "timestamp": 3547, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.475833}, {"latitude": 49.259345, "timestamp": 3550, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.475954}, {"latitude": 49.259315, "timestamp": 3553, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.476072}, {"latitude": 49.259284, "timestamp": 3556, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.476196}, {"latitude": 49.259254, "timestamp": 3559, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.47631}, {"latitude": 49.259223, "timestamp": 3562, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.476425}, {"latitude": 49.259193, "timestamp": 3565, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.476537}, {"latitude": 49.259155, "timestamp": 3568, "altitude": 243.63636363636363, "type": "gps", "longitude": 16.476655}, {"latitude": 49.259124, "timestamp": 3572, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.47677}, {"latitude": 49.259094, "timestamp": 3576, "altitude": 244, "type": "gps", "longitude": 16.476886}, {"latitude": 49.259063, "timestamp": 3579, "altitude": 244.0909090909091, "type": "gps", "longitude": 16.476993}, {"latitude": 49.259037, "timestamp": 3582, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.477098}, {"latitude": 49.259006, "timestamp": 3585, "altitude": 244.0909090909091, "type": "gps", "longitude": 16.477203}, {"latitude": 49.258964, "timestamp": 3589, "altitude": 244.0909090909091, "type": "gps", "longitude": 16.477319}, {"latitude": 49.258922, "timestamp": 3592, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.477439}, {"latitude": 49.258876, "timestamp": 3595, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.477552}, {"latitude": 49.258834, "timestamp": 3598, "altitude": 243, "type": "gps", "longitude": 16.477663}, {"latitude": 49.258792, "timestamp": 3601, "altitude": 242.72727272727272, "type": "gps", "longitude": 16.477771}, {"latitude": 49.25875, "timestamp": 3604, "altitude": 242.54545454545453, "type": "gps", "longitude": 16.47788}, {"latitude": 49.258708, "timestamp": 3607, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.477981}, {"latitude": 49.258666, "timestamp": 3610, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.478084}, {"latitude": 49.258621, "timestamp": 3613, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.478185}, {"latitude": 49.258579, "timestamp": 3616, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.47829}, {"latitude": 49.258537, "timestamp": 3619, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.478391}, {"latitude": 49.258487, "timestamp": 3622, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.478502}, {"latitude": 49.258438, "timestamp": 3625, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.478607}, {"latitude": 49.258388, "timestamp": 3628, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.478704}, {"latitude": 49.258338, "timestamp": 3632, "altitude": 242.0909090909091, "type": "gps", "longitude": 16.478807}, {"latitude": 49.258289, "timestamp": 3635, "altitude": 241.72727272727272, "type": "gps", "longitude": 16.478908}, {"latitude": 49.258239, "timestamp": 3638, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.479007}, {"latitude": 49.258186, "timestamp": 3641, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.479101}, {"latitude": 49.258136, "timestamp": 3644, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.479194}, {"latitude": 49.258075, "timestamp": 3647, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.479291}, {"latitude": 49.258018, "timestamp": 3650, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.479383}, {"latitude": 49.257961, "timestamp": 3653, "altitude": 241.54545454545453, "type": "gps", "longitude": 16.479475}, {"latitude": 49.2579, "timestamp": 3656, "altitude": 242.1818181818182, "type": "gps", "longitude": 16.479562}, {"latitude": 49.257839, "timestamp": 3659, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.479646}, {"latitude": 49.257774, "timestamp": 3663, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.479736}, {"latitude": 49.257709, "timestamp": 3666, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.479822}, {"latitude": 49.257644, "timestamp": 3669, "altitude": 244.9090909090909, "type": "gps", "longitude": 16.479902}, {"latitude": 49.257579, "timestamp": 3672, "altitude": 245.54545454545453, "type": "gps", "longitude": 16.479982}, {"latitude": 49.257514, "timestamp": 3675, "altitude": 246.0909090909091, "type": "gps", "longitude": 16.48006}, {"latitude": 49.25745, "timestamp": 3678, "altitude": 246.45454545454547, "type": "gps", "longitude": 16.480138}, {"latitude": 49.257236, "timestamp": 3692, "altitude": 246.72727272727272, "type": "gps", "longitude": 16.480388}, {"latitude": 49.257179, "timestamp": 3695, "altitude": 246.8181818181818, "type": "gps", "longitude": 16.480443}, {"latitude": 49.257106, "timestamp": 3699, "altitude": 246.72727272727272, "type": "gps", "longitude": 16.480506}, {"latitude": 49.25703, "timestamp": 3702, "altitude": 246.45454545454547, "type": "gps", "longitude": 16.480573}, {"latitude": 49.256961, "timestamp": 3705, "altitude": 246.0909090909091, "type": "gps", "longitude": 16.48064}, {"latitude": 49.256885, "timestamp": 3708, "altitude": 245.72727272727272, "type": "gps", "longitude": 16.480709}, {"latitude": 49.256809, "timestamp": 3711, "altitude": 245.36363636363637, "type": "gps", "longitude": 16.480779}, {"latitude": 49.256729, "timestamp": 3715, "altitude": 245, "type": "gps", "longitude": 16.480852}, {"latitude": 49.256649, "timestamp": 3718, "altitude": 244.72727272727272, "type": "gps", "longitude": 16.480924}, {"latitude": 49.256572, "timestamp": 3721, "altitude": 244.45454545454547, "type": "gps", "longitude": 16.480997}, {"latitude": 49.256496, "timestamp": 3724, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.481067}, {"latitude": 49.256416, "timestamp": 3727, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.481138}, {"latitude": 49.256336, "timestamp": 3730, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.481208}, {"latitude": 49.256244, "timestamp": 3733, "altitude": 243.54545454545453, "type": "gps", "longitude": 16.481285}, {"latitude": 49.256107, "timestamp": 3739, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.481391}, {"latitude": 49.256034, "timestamp": 3742, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.481437}, {"latitude": 49.255958, "timestamp": 3745, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.48147}, {"latitude": 49.255874, "timestamp": 3748, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.481491}, {"latitude": 49.255783, "timestamp": 3751, "altitude": 242, "type": "gps", "longitude": 16.481502}, {"latitude": 49.255691, "timestamp": 3754, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.481508}, {"latitude": 49.255607, "timestamp": 3757, "altitude": 240.9090909090909, "type": "gps", "longitude": 16.481508}, {"latitude": 49.255512, "timestamp": 3760, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.481502}, {"latitude": 49.255432, "timestamp": 3763, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.481494}, {"latitude": 49.255348, "timestamp": 3766, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.481489}, {"latitude": 49.25526, "timestamp": 3769, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.481479}, {"latitude": 49.255176, "timestamp": 3772, "altitude": 239, "type": "gps", "longitude": 16.481464}, {"latitude": 49.255096, "timestamp": 3775, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.481447}, {"latitude": 49.255016, "timestamp": 3778, "altitude": 238.9090909090909, "type": "gps", "longitude": 16.481431}, {"latitude": 49.254936, "timestamp": 3781, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.48142}, {"latitude": 49.254859, "timestamp": 3784, "altitude": 239.45454545454547, "type": "gps", "longitude": 16.481412}, {"latitude": 49.254776, "timestamp": 3787, "altitude": 239.9090909090909, "type": "gps", "longitude": 16.481405}, {"latitude": 49.254699, "timestamp": 3789, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.481407}, {"latitude": 49.254615, "timestamp": 3792, "altitude": 241, "type": "gps", "longitude": 16.481409}, {"latitude": 49.254531, "timestamp": 3795, "altitude": 241.63636363636363, "type": "gps", "longitude": 16.481414}, {"latitude": 49.254447, "timestamp": 3798, "altitude": 242.1818181818182, "type": "gps", "longitude": 16.481418}, {"latitude": 49.254367, "timestamp": 3801, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.481426}, {"latitude": 49.25428, "timestamp": 3804, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.481439}, {"latitude": 49.2542, "timestamp": 3807, "altitude": 243.1818181818182, "type": "gps", "longitude": 16.481451}, {"latitude": 49.254116, "timestamp": 3809, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.481462}, {"latitude": 49.254035, "timestamp": 3812, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.481475}, {"latitude": 49.253948, "timestamp": 3815, "altitude": 243.45454545454547, "type": "gps", "longitude": 16.481483}, {"latitude": 49.253868, "timestamp": 3818, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.481493}, {"latitude": 49.25378, "timestamp": 3821, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.4815}, {"latitude": 49.2537, "timestamp": 3824, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.481508}, {"latitude": 49.253623, "timestamp": 3827, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.481527}, {"latitude": 49.253543, "timestamp": 3829, "altitude": 242, "type": "gps", "longitude": 16.481552}, {"latitude": 49.253478, "timestamp": 3832, "altitude": 241.54545454545453, "type": "gps", "longitude": 16.481586}, {"latitude": 49.253398, "timestamp": 3835, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.481636}, {"latitude": 49.253326, "timestamp": 3838, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.481693}, {"latitude": 49.253253, "timestamp": 3841, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.481758}, {"latitude": 49.253185, "timestamp": 3843, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.48183}, {"latitude": 49.253124, "timestamp": 3846, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.481908}, {"latitude": 49.25307, "timestamp": 3849, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.481992}, {"latitude": 49.253021, "timestamp": 3852, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.48208}, {"latitude": 49.252983, "timestamp": 3855, "altitude": 238, "type": "gps", "longitude": 16.482177}, {"latitude": 49.252937, "timestamp": 3858, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.482292}, {"latitude": 49.252891, "timestamp": 3861, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.482412}, {"latitude": 49.252857, "timestamp": 3863, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.482522}, {"latitude": 49.252819, "timestamp": 3866, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.482645}, {"latitude": 49.252792, "timestamp": 3869, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.482763}, {"latitude": 49.252758, "timestamp": 3872, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.482892}, {"latitude": 49.252731, "timestamp": 3875, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.483011}, {"latitude": 49.2527, "timestamp": 3878, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.483129}, {"latitude": 49.252647, "timestamp": 3883, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.483327}, {"latitude": 49.252613, "timestamp": 3886, "altitude": 237, "type": "gps", "longitude": 16.48344}, {"latitude": 49.252574, "timestamp": 3889, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.483554}, {"latitude": 49.252529, "timestamp": 3892, "altitude": 237.27272727272728, "type": "gps", "longitude": 16.483661}, {"latitude": 49.252483, "timestamp": 3895, "altitude": 237.36363636363637, "type": "gps", "longitude": 16.483762}, {"latitude": 49.252429, "timestamp": 3897, "altitude": 237.54545454545453, "type": "gps", "longitude": 16.483858}, {"latitude": 49.252372, "timestamp": 3900, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.483949}, {"latitude": 49.252315, "timestamp": 3903, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.484035}, {"latitude": 49.252258, "timestamp": 3906, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.484117}, {"latitude": 49.252197, "timestamp": 3908, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.484201}, {"latitude": 49.252136, "timestamp": 3911, "altitude": 239, "type": "gps", "longitude": 16.484287}, {"latitude": 49.252075, "timestamp": 3914, "altitude": 239, "type": "gps", "longitude": 16.484373}, {"latitude": 49.252014, "timestamp": 3917, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.484457}, {"latitude": 49.251968, "timestamp": 3919, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.484539}, {"latitude": 49.251918, "timestamp": 3922, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.484638}, {"latitude": 49.251876, "timestamp": 3925, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.484745}, {"latitude": 49.251838, "timestamp": 3927, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.484859}, {"latitude": 49.251808, "timestamp": 3930, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.48497}, {"latitude": 49.251785, "timestamp": 3933, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.485084}, {"latitude": 49.251762, "timestamp": 3936, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.485214}, {"latitude": 49.251739, "timestamp": 3938, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.485332}, {"latitude": 49.251716, "timestamp": 3941, "altitude": 239.8181818181818, "type": "gps", "longitude": 16.485452}, {"latitude": 49.251697, "timestamp": 3944, "altitude": 240.54545454545453, "type": "gps", "longitude": 16.485568}, {"latitude": 49.251678, "timestamp": 3946, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.485694}, {"latitude": 49.251666, "timestamp": 3949, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.485809}, {"latitude": 49.251651, "timestamp": 3952, "altitude": 243, "type": "gps", "longitude": 16.48594}, {"latitude": 49.25164, "timestamp": 3955, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.486076}, {"latitude": 49.251632, "timestamp": 3958, "altitude": 244.36363636363637, "type": "gps", "longitude": 16.4862}, {"latitude": 49.251621, "timestamp": 3961, "altitude": 244.8181818181818, "type": "gps", "longitude": 16.486322}, {"latitude": 49.251605, "timestamp": 3963, "altitude": 245, "type": "gps", "longitude": 16.486442}, {"latitude": 49.251583, "timestamp": 3966, "altitude": 244.9090909090909, "type": "gps", "longitude": 16.486574}, {"latitude": 49.251564, "timestamp": 3969, "altitude": 244.63636363636363, "type": "gps", "longitude": 16.486688}, {"latitude": 49.251541, "timestamp": 3972, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.486806}, {"latitude": 49.25151, "timestamp": 3975, "altitude": 243.72727272727272, "type": "gps", "longitude": 16.486932}, {"latitude": 49.25151, "timestamp": 3982, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.486932}, {"latitude": 49.251396, "timestamp": 3989, "altitude": 242.9090909090909, "type": "gps", "longitude": 16.487222}, {"latitude": 49.251392, "timestamp": 3991, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487234}, {"latitude": 49.251388, "timestamp": 3993, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.487239}, {"latitude": 49.251388, "timestamp": 3994, "altitude": 242.1818181818182, "type": "gps", "longitude": 16.487243}, {"latitude": 49.251384, "timestamp": 3995, "altitude": 242.0909090909091, "type": "gps", "longitude": 16.487247}, {"latitude": 49.25138, "timestamp": 3998, "altitude": 242, "type": "gps", "longitude": 16.487255}, {"latitude": 49.25138, "timestamp": 3999, "altitude": 242.0909090909091, "type": "gps", "longitude": 16.487257}, {"latitude": 49.25138, "timestamp": 4002, "altitude": 242.1818181818182, "type": "gps", "longitude": 16.487264}, {"latitude": 49.251377, "timestamp": 4004, "altitude": 242.27272727272728, "type": "gps", "longitude": 16.487266}, {"latitude": 49.251373, "timestamp": 4005, "altitude": 242.36363636363637, "type": "gps", "longitude": 16.487266}, {"latitude": 49.251346, "timestamp": 4007, "altitude": 242.45454545454547, "type": "gps", "longitude": 16.487285}, {"latitude": 49.251304, "timestamp": 4009, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487314}, {"latitude": 49.251258, "timestamp": 4010, "altitude": 242.8181818181818, "type": "gps", "longitude": 16.487346}, {"latitude": 49.251209, "timestamp": 4011, "altitude": 243.0909090909091, "type": "gps", "longitude": 16.487382}, {"latitude": 49.251152, "timestamp": 4013, "altitude": 243.36363636363637, "type": "gps", "longitude": 16.487421}, {"latitude": 49.251094, "timestamp": 4014, "altitude": 243.63636363636363, "type": "gps", "longitude": 16.487462}, {"latitude": 49.251029, "timestamp": 4016, "altitude": 243.9090909090909, "type": "gps", "longitude": 16.487504}, {"latitude": 49.250965, "timestamp": 4018, "altitude": 244.0909090909091, "type": "gps", "longitude": 16.487546}, {"latitude": 49.2509, "timestamp": 4019, "altitude": 244.27272727272728, "type": "gps", "longitude": 16.487585}, {"latitude": 49.250843, "timestamp": 4021, "altitude": 244.36363636363637, "type": "gps", "longitude": 16.487615}, {"latitude": 49.250778, "timestamp": 4022, "altitude": 244.45454545454547, "type": "gps", "longitude": 16.487646}, {"latitude": 49.250701, "timestamp": 4024, "altitude": 244.45454545454547, "type": "gps", "longitude": 16.48768}, {"latitude": 49.250637, "timestamp": 4026, "altitude": 244.1818181818182, "type": "gps", "longitude": 16.48771}, {"latitude": 49.250576, "timestamp": 4027, "altitude": 243.8181818181818, "type": "gps", "longitude": 16.487737}, {"latitude": 49.25048, "timestamp": 4030, "altitude": 243.27272727272728, "type": "gps", "longitude": 16.487777}, {"latitude": 49.250408, "timestamp": 4032, "altitude": 242.63636363636363, "type": "gps", "longitude": 16.487806}, {"latitude": 49.250339, "timestamp": 4034, "altitude": 241.9090909090909, "type": "gps", "longitude": 16.487833}, {"latitude": 49.250263, "timestamp": 4037, "altitude": 241.27272727272728, "type": "gps", "longitude": 16.487863}, {"latitude": 49.250186, "timestamp": 4040, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.487897}, {"latitude": 49.250118, "timestamp": 4042, "altitude": 240, "type": "gps", "longitude": 16.487932}, {"latitude": 49.250041, "timestamp": 4045, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.487981}, {"latitude": 49.249973, "timestamp": 4048, "altitude": 239.0909090909091, "type": "gps", "longitude": 16.488035}, {"latitude": 49.249904, "timestamp": 4051, "altitude": 238.72727272727272, "type": "gps", "longitude": 16.488094}, {"latitude": 49.249839, "timestamp": 4054, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.488166}, {"latitude": 49.249774, "timestamp": 4057, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.488244}, {"latitude": 49.249721, "timestamp": 4059, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.488325}, {"latitude": 49.249675, "timestamp": 4062, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.488418}, {"latitude": 49.249633, "timestamp": 4065, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.488515}, {"latitude": 49.249599, "timestamp": 4067, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.488618}, {"latitude": 49.249572, "timestamp": 4070, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.488731}, {"latitude": 49.249549, "timestamp": 4073, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.488845}, {"latitude": 49.24953, "timestamp": 4076, "altitude": 238, "type": "gps", "longitude": 16.488966}, {"latitude": 49.249523, "timestamp": 4079, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.489088}, {"latitude": 49.249519, "timestamp": 4082, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.489208}, {"latitude": 49.249519, "timestamp": 4085, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.489339}, {"latitude": 49.249519, "timestamp": 4088, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.489471}, {"latitude": 49.249523, "timestamp": 4091, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.489608}, {"latitude": 49.249527, "timestamp": 4094, "altitude": 236.54545454545453, "type": "gps", "longitude": 16.489726}, {"latitude": 49.249538, "timestamp": 4097, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.489856}, {"latitude": 49.249546, "timestamp": 4100, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.489988}, {"latitude": 49.249557, "timestamp": 4103, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.490114}, {"latitude": 49.249565, "timestamp": 4106, "altitude": 236.63636363636363, "type": "gps", "longitude": 16.490241}, {"latitude": 49.249576, "timestamp": 4110, "altitude": 237, "type": "gps", "longitude": 16.490385}, {"latitude": 49.249584, "timestamp": 4112, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.490514}, {"latitude": 49.249588, "timestamp": 4116, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.490661}, {"latitude": 49.249591, "timestamp": 4118, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.490787}, {"latitude": 49.249595, "timestamp": 4121, "altitude": 238.8181818181818, "type": "gps", "longitude": 16.490913}, {"latitude": 49.249603, "timestamp": 4124, "altitude": 239.1818181818182, "type": "gps", "longitude": 16.491046}, {"latitude": 49.249599, "timestamp": 4127, "altitude": 239.63636363636363, "type": "gps", "longitude": 16.491174}, {"latitude": 49.249599, "timestamp": 4130, "altitude": 240.1818181818182, "type": "gps", "longitude": 16.491294}, {"latitude": 49.249599, "timestamp": 4133, "altitude": 240.63636363636363, "type": "gps", "longitude": 16.491413}, {"latitude": 49.249595, "timestamp": 4136, "altitude": 241.0909090909091, "type": "gps", "longitude": 16.491538}, {"latitude": 49.249588, "timestamp": 4139, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.491661}, {"latitude": 49.24958, "timestamp": 4142, "altitude": 241.54545454545453, "type": "gps", "longitude": 16.491783}, {"latitude": 49.249568, "timestamp": 4145, "altitude": 241.45454545454547, "type": "gps", "longitude": 16.491903}, {"latitude": 49.249553, "timestamp": 4148, "altitude": 241.36363636363637, "type": "gps", "longitude": 16.492027}, {"latitude": 49.249534, "timestamp": 4151, "altitude": 241.1818181818182, "type": "gps", "longitude": 16.492155}, {"latitude": 49.249511, "timestamp": 4154, "altitude": 241, "type": "gps", "longitude": 16.492288}, {"latitude": 49.249481, "timestamp": 4157, "altitude": 240.8181818181818, "type": "gps", "longitude": 16.492412}, {"latitude": 49.249446, "timestamp": 4161, "altitude": 240.45454545454547, "type": "gps", "longitude": 16.492557}, {"latitude": 49.249412, "timestamp": 4165, "altitude": 240, "type": "gps", "longitude": 16.492712}, {"latitude": 49.249382, "timestamp": 4168, "altitude": 239.54545454545453, "type": "gps", "longitude": 16.49283}, {"latitude": 49.249351, "timestamp": 4171, "altitude": 239, "type": "gps", "longitude": 16.492948}, {"latitude": 49.24932, "timestamp": 4174, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.49308}, {"latitude": 49.249282, "timestamp": 4178, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.493215}, {"latitude": 49.249248, "timestamp": 4181, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.493347}, {"latitude": 49.249214, "timestamp": 4184, "altitude": 236.9090909090909, "type": "gps", "longitude": 16.493467}, {"latitude": 49.249176, "timestamp": 4187, "altitude": 236.36363636363637, "type": "gps", "longitude": 16.493598}, {"latitude": 49.249141, "timestamp": 4190, "altitude": 235.8181818181818, "type": "gps", "longitude": 16.493726}, {"latitude": 49.249103, "timestamp": 4193, "altitude": 235.1818181818182, "type": "gps", "longitude": 16.493858}, {"latitude": 49.249069, "timestamp": 4196, "altitude": 234.63636363636363, "type": "gps", "longitude": 16.493974}, {"latitude": 49.249027, "timestamp": 4199, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.494104}, {"latitude": 49.248985, "timestamp": 4202, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.494226}, {"latitude": 49.248939, "timestamp": 4205, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.494354}, {"latitude": 49.248893, "timestamp": 4208, "altitude": 233.72727272727272, "type": "gps", "longitude": 16.494482}, {"latitude": 49.248851, "timestamp": 4211, "altitude": 233.9090909090909, "type": "gps", "longitude": 16.494592}, {"latitude": 49.248802, "timestamp": 4215, "altitude": 234.0909090909091, "type": "gps", "longitude": 16.494718}, {"latitude": 49.248661, "timestamp": 4227, "altitude": 234.45454545454547, "type": "gps", "longitude": 16.495052}, {"latitude": 49.248622, "timestamp": 4230, "altitude": 235, "type": "gps", "longitude": 16.495141}, {"latitude": 49.248569, "timestamp": 4234, "altitude": 235.54545454545453, "type": "gps", "longitude": 16.495248}, {"latitude": 49.248516, "timestamp": 4237, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.495353}, {"latitude": 49.248458, "timestamp": 4241, "altitude": 236.8181818181818, "type": "gps", "longitude": 16.495468}, {"latitude": 49.248405, "timestamp": 4244, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.495578}, {"latitude": 49.248348, "timestamp": 4247, "altitude": 237.9090909090909, "type": "gps", "longitude": 16.495687}, {"latitude": 49.248291, "timestamp": 4250, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.495796}, {"latitude": 49.248233, "timestamp": 4254, "altitude": 238.45454545454547, "type": "gps", "longitude": 16.495908}, {"latitude": 49.248058, "timestamp": 4267, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.496233}, {"latitude": 49.248008, "timestamp": 4271, "altitude": 238.63636363636363, "type": "gps", "longitude": 16.496316}, {"latitude": 49.247955, "timestamp": 4274, "altitude": 238.54545454545453, "type": "gps", "longitude": 16.496408}, {"latitude": 49.247894, "timestamp": 4277, "altitude": 238.36363636363637, "type": "gps", "longitude": 16.496498}, {"latitude": 49.247829, "timestamp": 4281, "altitude": 238.27272727272728, "type": "gps", "longitude": 16.496597}, {"latitude": 49.247768, "timestamp": 4284, "altitude": 238.1818181818182, "type": "gps", "longitude": 16.49669}, {"latitude": 49.247707, "timestamp": 4287, "altitude": 238, "type": "gps", "longitude": 16.496789}, {"latitude": 49.24765, "timestamp": 4290, "altitude": 237.72727272727272, "type": "gps", "longitude": 16.496887}, {"latitude": 49.247589, "timestamp": 4294, "altitude": 237.45454545454547, "type": "gps", "longitude": 16.496986}, {"latitude": 49.247524, "timestamp": 4297, "altitude": 237.1818181818182, "type": "gps", "longitude": 16.497097}, {"latitude": 49.247463, "timestamp": 4300, "altitude": 237, "type": "gps", "longitude": 16.497194}, {"latitude": 49.247402, "timestamp": 4303, "altitude": 236.72727272727272, "type": "gps", "longitude": 16.497299}, {"latitude": 49.247333, "timestamp": 4307, "altitude": 236.45454545454547, "type": "gps", "longitude": 16.497407}, {"latitude": 49.247268, "timestamp": 4310, "altitude": 236.1818181818182, "type": "gps", "longitude": 16.497516}, {"latitude": 49.2472, "timestamp": 4314, "altitude": 235.9090909090909, "type": "gps", "longitude": 16.497629}, {"latitude": 49.247142, "timestamp": 4317, "altitude": 235.45454545454547, "type": "gps", "longitude": 16.497728}, {"latitude": 49.247077, "timestamp": 4320, "altitude": 235, "type": "gps", "longitude": 16.497833}, {"latitude": 49.247016, "timestamp": 4324, "altitude": 234.54545454545453, "type": "gps", "longitude": 16.497943}, {"latitude": 49.246955, "timestamp": 4327, "altitude": 234.1818181818182, "type": "gps", "longitude": 16.498044}, {"latitude": 49.24689, "timestamp": 4331, "altitude": 233.8181818181818, "type": "gps", "longitude": 16.498155}, {"latitude": 49.246833, "timestamp": 4334, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.498254}, {"latitude": 49.246768, "timestamp": 4337, "altitude": 233.0909090909091, "type": "gps", "longitude": 16.498367}, {"latitude": 49.246707, "timestamp": 4341, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.498472}, {"latitude": 49.246646, "timestamp": 4344, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.49858}, {"latitude": 49.246589, "timestamp": 4348, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.498678}, {"latitude": 49.246532, "timestamp": 4351, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.498779}, {"latitude": 49.246482, "timestamp": 4354, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.498876}, {"latitude": 49.246429, "timestamp": 4357, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.498981}, {"latitude": 49.246375, "timestamp": 4360, "altitude": 232.63636363636363, "type": "gps", "longitude": 16.499088}, {"latitude": 49.246322, "timestamp": 4363, "altitude": 232.8181818181818, "type": "gps", "longitude": 16.499195}, {"latitude": 49.246265, "timestamp": 4367, "altitude": 233, "type": "gps", "longitude": 16.499309}, {"latitude": 49.246215, "timestamp": 4370, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.499414}, {"latitude": 49.246166, "timestamp": 4373, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.499525}, {"latitude": 49.246116, "timestamp": 4376, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.499639}, {"latitude": 49.246063, "timestamp": 4380, "altitude": 232.45454545454547, "type": "gps", "longitude": 16.499759}, {"latitude": 49.246017, "timestamp": 4383, "altitude": 232, "type": "gps", "longitude": 16.499868}, {"latitude": 49.245967, "timestamp": 4386, "altitude": 231.54545454545453, "type": "gps", "longitude": 16.49998}, {"latitude": 49.245918, "timestamp": 4389, "altitude": 231.0909090909091, "type": "gps", "longitude": 16.500103}, {"latitude": 49.245864, "timestamp": 4393, "altitude": 230.63636363636363, "type": "gps", "longitude": 16.500232}, {"latitude": 49.245838, "timestamp": 4395, "altitude": 230.1818181818182, "type": "gps", "longitude": 16.500299}, {"latitude": 49.245792, "timestamp": 4399, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.500411}, {"latitude": 49.245746, "timestamp": 4402, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.50053}, {"latitude": 49.2457, "timestamp": 4406, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.500654}, {"latitude": 49.245658, "timestamp": 4409, "altitude": 230.0909090909091, "type": "gps", "longitude": 16.500772}, {"latitude": 49.24562, "timestamp": 4412, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.500884}, {"latitude": 49.245582, "timestamp": 4415, "altitude": 231.0909090909091, "type": "gps", "longitude": 16.501008}, {"latitude": 49.24554, "timestamp": 4418, "altitude": 231.63636363636363, "type": "gps", "longitude": 16.501127}, {"latitude": 49.245498, "timestamp": 4421, "altitude": 232.1818181818182, "type": "gps", "longitude": 16.501251}, {"latitude": 49.24546, "timestamp": 4424, "altitude": 232.72727272727272, "type": "gps", "longitude": 16.501359}, {"latitude": 49.245414, "timestamp": 4427, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.501482}, {"latitude": 49.245365, "timestamp": 4430, "altitude": 233.54545454545453, "type": "gps", "longitude": 16.501609}, {"latitude": 49.245327, "timestamp": 4433, "altitude": 233.63636363636363, "type": "gps", "longitude": 16.501718}, {"latitude": 49.245285, "timestamp": 4436, "altitude": 233.45454545454547, "type": "gps", "longitude": 16.501832}, {"latitude": 49.245239, "timestamp": 4439, "altitude": 233.1818181818182, "type": "gps", "longitude": 16.501951}, {"latitude": 49.245189, "timestamp": 4442, "altitude": 232.9090909090909, "type": "gps", "longitude": 16.502071}, {"latitude": 49.245143, "timestamp": 4445, "altitude": 232.54545454545453, "type": "gps", "longitude": 16.502183}, {"latitude": 49.245094, "timestamp": 4448, "altitude": 232.1818181818182, "type": "gps", "longitude": 16.502298}, {"latitude": 49.245044, "timestamp": 4451, "altitude": 231.72727272727272, "type": "gps", "longitude": 16.502418}, {"latitude": 49.244995, "timestamp": 4455, "altitude": 231.1818181818182, "type": "gps", "longitude": 16.502534}, {"latitude": 49.244945, "timestamp": 4458, "altitude": 230.63636363636363, "type": "gps", "longitude": 16.502643}, {"latitude": 49.244895, "timestamp": 4461, "altitude": 230.1818181818182, "type": "gps", "longitude": 16.502752}, {"latitude": 49.244842, "timestamp": 4464, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.502859}, {"latitude": 49.244785, "timestamp": 4467, "altitude": 229.27272727272728, "type": "gps", "longitude": 16.50296}, {"latitude": 49.244728, "timestamp": 4470, "altitude": 228.9090909090909, "type": "gps", "longitude": 16.503067}, {"latitude": 49.24467, "timestamp": 4473, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.503168}, {"latitude": 49.244609, "timestamp": 4476, "altitude": 228.36363636363637, "type": "gps", "longitude": 16.503263}, {"latitude": 49.244552, "timestamp": 4479, "altitude": 228.1818181818182, "type": "gps", "longitude": 16.503356}, {"latitude": 49.244483, "timestamp": 4482, "altitude": 228, "type": "gps", "longitude": 16.503456}, {"latitude": 49.244419, "timestamp": 4485, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.503549}, {"latitude": 49.244354, "timestamp": 4488, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.503639}, {"latitude": 49.244281, "timestamp": 4491, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.503732}, {"latitude": 49.244216, "timestamp": 4494, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.50382}, {"latitude": 49.244152, "timestamp": 4497, "altitude": 228, "type": "gps", "longitude": 16.50391}, {"latitude": 49.244079, "timestamp": 4500, "altitude": 228, "type": "gps", "longitude": 16.504005}, {"latitude": 49.244007, "timestamp": 4504, "altitude": 228, "type": "gps", "longitude": 16.504097}, {"latitude": 49.243938, "timestamp": 4507, "altitude": 228, "type": "gps", "longitude": 16.504192}, {"latitude": 49.243865, "timestamp": 4510, "altitude": 228, "type": "gps", "longitude": 16.504285}, {"latitude": 49.243797, "timestamp": 4513, "altitude": 228, "type": "gps", "longitude": 16.504371}, {"latitude": 49.243732, "timestamp": 4516, "altitude": 228, "type": "gps", "longitude": 16.504457}, {"latitude": 49.243663, "timestamp": 4519, "altitude": 228, "type": "gps", "longitude": 16.504554}, {"latitude": 49.243602, "timestamp": 4522, "altitude": 228, "type": "gps", "longitude": 16.50464}, {"latitude": 49.243534, "timestamp": 4526, "altitude": 228, "type": "gps", "longitude": 16.504737}, {"latitude": 49.243469, "timestamp": 4529, "altitude": 228, "type": "gps", "longitude": 16.504833}, {"latitude": 49.243404, "timestamp": 4532, "altitude": 228, "type": "gps", "longitude": 16.504926}, {"latitude": 49.243339, "timestamp": 4535, "altitude": 228, "type": "gps", "longitude": 16.505025}, {"latitude": 49.243278, "timestamp": 4539, "altitude": 228, "type": "gps", "longitude": 16.505126}, {"latitude": 49.243217, "timestamp": 4542, "altitude": 228, "type": "gps", "longitude": 16.505233}, {"latitude": 49.243156, "timestamp": 4545, "altitude": 228, "type": "gps", "longitude": 16.505338}, {"latitude": 49.243095, "timestamp": 4548, "altitude": 228, "type": "gps", "longitude": 16.505443}, {"latitude": 49.24303, "timestamp": 4551, "altitude": 228, "type": "gps", "longitude": 16.50555}, {"latitude": 49.242973, "timestamp": 4554, "altitude": 228, "type": "gps", "longitude": 16.505645}, {"latitude": 49.242912, "timestamp": 4558, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.505748}, {"latitude": 49.242847, "timestamp": 4561, "altitude": 227.8181818181818, "type": "gps", "longitude": 16.505855}, {"latitude": 49.242782, "timestamp": 4564, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.505962}, {"latitude": 49.242721, "timestamp": 4567, "altitude": 227.63636363636363, "type": "gps", "longitude": 16.506061}, {"latitude": 49.24266, "timestamp": 4570, "altitude": 227.54545454545453, "type": "gps", "longitude": 16.50616}, {"latitude": 49.242599, "timestamp": 4573, "altitude": 227.45454545454547, "type": "gps", "longitude": 16.506259}, {"latitude": 49.24253, "timestamp": 4577, "altitude": 227.36363636363637, "type": "gps", "longitude": 16.50638}, {"latitude": 49.242469, "timestamp": 4580, "altitude": 227.27272727272728, "type": "gps", "longitude": 16.506492}, {"latitude": 49.242404, "timestamp": 4583, "altitude": 227.1818181818182, "type": "gps", "longitude": 16.506601}, {"latitude": 49.242347, "timestamp": 4586, "altitude": 227.0909090909091, "type": "gps", "longitude": 16.5067}, {"latitude": 49.242286, "timestamp": 4589, "altitude": 227, "type": "gps", "longitude": 16.506797}, {"latitude": 49.242221, "timestamp": 4592, "altitude": 227, "type": "gps", "longitude": 16.506898}, {"latitude": 49.242156, "timestamp": 4595, "altitude": 227, "type": "gps", "longitude": 16.507}, {"latitude": 49.242099, "timestamp": 4598, "altitude": 227, "type": "gps", "longitude": 16.507095}, {"latitude": 49.242038, "timestamp": 4601, "altitude": 227, "type": "gps", "longitude": 16.507188}, {"latitude": 49.24197, "timestamp": 4605, "altitude": 227, "type": "gps", "longitude": 16.507286}, {"latitude": 49.241729, "timestamp": 4621, "altitude": 227, "type": "gps", "longitude": 16.50761}, {"latitude": 49.241672, "timestamp": 4624, "altitude": 227, "type": "gps", "longitude": 16.507684}, {"latitude": 49.241611, "timestamp": 4628, "altitude": 227, "type": "gps", "longitude": 16.507774}, {"latitude": 49.241542, "timestamp": 4631, "altitude": 227, "type": "gps", "longitude": 16.507871}, {"latitude": 49.241474, "timestamp": 4634, "altitude": 227, "type": "gps", "longitude": 16.507963}, {"latitude": 49.241405, "timestamp": 4637, "altitude": 227, "type": "gps", "longitude": 16.508054}, {"latitude": 49.241336, "timestamp": 4641, "altitude": 227, "type": "gps", "longitude": 16.508142}, {"latitude": 49.241272, "timestamp": 4644, "altitude": 227, "type": "gps", "longitude": 16.508228}, {"latitude": 49.241203, "timestamp": 4647, "altitude": 227, "type": "gps", "longitude": 16.508321}, {"latitude": 49.241138, "timestamp": 4650, "altitude": 227, "type": "gps", "longitude": 16.508417}, {"latitude": 49.241073, "timestamp": 4653, "altitude": 227, "type": "gps", "longitude": 16.508508}, {"latitude": 49.241012, "timestamp": 4656, "altitude": 227, "type": "gps", "longitude": 16.508605}, {"latitude": 49.240951, "timestamp": 4659, "altitude": 227, "type": "gps", "longitude": 16.508703}, {"latitude": 49.240898, "timestamp": 4663, "altitude": 227, "type": "gps", "longitude": 16.5088}, {"latitude": 49.240844, "timestamp": 4666, "altitude": 227, "type": "gps", "longitude": 16.508905}, {"latitude": 49.240844, "timestamp": 4670, "altitude": 227, "type": "gps", "longitude": 16.508905}, {"latitude": 49.240734, "timestamp": 4674, "altitude": 227, "type": "gps", "longitude": 16.509119}, {"latitude": 49.240692, "timestamp": 4677, "altitude": 227, "type": "gps", "longitude": 16.509201}, {"latitude": 49.240638, "timestamp": 4680, "altitude": 227, "type": "gps", "longitude": 16.509298}, {"latitude": 49.240581, "timestamp": 4684, "altitude": 227, "type": "gps", "longitude": 16.509386}, {"latitude": 49.240524, "timestamp": 4687, "altitude": 227, "type": "gps", "longitude": 16.509466}, {"latitude": 49.240447, "timestamp": 4691, "altitude": 227, "type": "gps", "longitude": 16.509552}, {"latitude": 49.240383, "timestamp": 4695, "altitude": 227, "type": "gps", "longitude": 16.50962}, {"latitude": 49.240306, "timestamp": 4698, "altitude": 227, "type": "gps", "longitude": 16.5097}, {"latitude": 49.240245, "timestamp": 4702, "altitude": 227, "type": "gps", "longitude": 16.509771}, {"latitude": 49.240173, "timestamp": 4705, "altitude": 227, "type": "gps", "longitude": 16.509857}, {"latitude": 49.240104, "timestamp": 4709, "altitude": 227, "type": "gps", "longitude": 16.509944}, {"latitude": 49.240036, "timestamp": 4712, "altitude": 227, "type": "gps", "longitude": 16.51004}, {"latitude": 49.239963, "timestamp": 4716, "altitude": 227, "type": "gps", "longitude": 16.510137}, {"latitude": 49.239902, "timestamp": 4719, "altitude": 227, "type": "gps", "longitude": 16.510234}, {"latitude": 49.239845, "timestamp": 4723, "altitude": 227, "type": "gps", "longitude": 16.510335}, {"latitude": 49.239791, "timestamp": 4726, "altitude": 227, "type": "gps", "longitude": 16.510423}, {"latitude": 49.239734, "timestamp": 4729, "altitude": 227, "type": "gps", "longitude": 16.510517}, {"latitude": 49.239563, "timestamp": 4741, "altitude": 227, "type": "gps", "longitude": 16.51078}, {"latitude": 49.239547, "timestamp": 4742, "altitude": 227, "type": "gps", "longitude": 16.510807}, {"latitude": 49.239482, "timestamp": 4746, "altitude": 227, "type": "gps", "longitude": 16.510906}, {"latitude": 49.239482, "timestamp": 4748, "altitude": 227, "type": "gps", "longitude": 16.510906}, {"latitude": 49.239414, "timestamp": 4750, "altitude": 227, "type": "gps", "longitude": 16.51102}, {"latitude": 49.239349, "timestamp": 4753, "altitude": 227.0909090909091, "type": "gps", "longitude": 16.511123}, {"latitude": 49.239284, "timestamp": 4757, "altitude": 227.1818181818182, "type": "gps", "longitude": 16.511224}, {"latitude": 49.239284, "timestamp": 4759, "altitude": 227.27272727272728, "type": "gps", "longitude": 16.511224}, {"latitude": 49.239212, "timestamp": 4761, "altitude": 227.36363636363637, "type": "gps", "longitude": 16.511341}, {"latitude": 49.239143, "timestamp": 4764, "altitude": 227.45454545454547, "type": "gps", "longitude": 16.511451}, {"latitude": 49.239093, "timestamp": 4767, "altitude": 227.54545454545453, "type": "gps", "longitude": 16.511549}, {"latitude": 49.239028, "timestamp": 4771, "altitude": 227.72727272727272, "type": "gps", "longitude": 16.511669}, {"latitude": 49.238975, "timestamp": 4774, "altitude": 227.9090909090909, "type": "gps", "longitude": 16.511776}, {"latitude": 49.238925, "timestamp": 4778, "altitude": 228.0909090909091, "type": "gps", "longitude": 16.511886}, {"latitude": 49.238876, "timestamp": 4781, "altitude": 228.27272727272728, "type": "gps", "longitude": 16.511991}, {"latitude": 49.23883, "timestamp": 4785, "altitude": 228.45454545454547, "type": "gps", "longitude": 16.512107}, {"latitude": 49.238784, "timestamp": 4788, "altitude": 228.54545454545453, "type": "gps", "longitude": 16.51222}, {"latitude": 49.238746, "timestamp": 4791, "altitude": 228.63636363636363, "type": "gps", "longitude": 16.512325}, {"latitude": 49.2387, "timestamp": 4795, "altitude": 228.72727272727272, "type": "gps", "longitude": 16.512439}, {"latitude": 49.2387, "timestamp": 4797, "altitude": 228.8181818181818, "type": "gps", "longitude": 16.512439}, {"latitude": 49.238639, "timestamp": 4800, "altitude": 228.9090909090909, "type": "gps", "longitude": 16.512609}, {"latitude": 49.238601, "timestamp": 4804, "altitude": 229, "type": "gps", "longitude": 16.512721}, {"latitude": 49.238567, "timestamp": 4807, "altitude": 229.0909090909091, "type": "gps", "longitude": 16.512828}, {"latitude": 49.238533, "timestamp": 4810, "altitude": 229.27272727272728, "type": "gps", "longitude": 16.512947}, {"latitude": 49.238494, "timestamp": 4814, "altitude": 229.45454545454547, "type": "gps", "longitude": 16.513067}, {"latitude": 49.23846, "timestamp": 4817, "altitude": 229.54545454545453, "type": "gps", "longitude": 16.513191}, {"latitude": 49.238426, "timestamp": 4820, "altitude": 229.63636363636363, "type": "gps", "longitude": 16.513301}, {"latitude": 49.238395, "timestamp": 4824, "altitude": 229.72727272727272, "type": "gps", "longitude": 16.51342}, {"latitude": 49.238372, "timestamp": 4827, "altitude": 229.8181818181818, "type": "gps", "longitude": 16.513536}, {"latitude": 49.238353, "timestamp": 4830, "altitude": 229.9090909090909, "type": "gps", "longitude": 16.513649}, {"latitude": 49.238307, "timestamp": 4843, "altitude": 230, "type": "gps", "longitude": 16.513948}, {"latitude": 49.238307, "timestamp": 4844, "altitude": 230.1818181818182, "type": "gps", "longitude": 16.513948}, {"latitude": 49.238307, "timestamp": 4845, "altitude": 230.36363636363637, "type": "gps", "longitude": 16.513978}, {"latitude": 49.238311, "timestamp": 4846, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.513996}, {"latitude": 49.238315, "timestamp": 4848, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.514013}, {"latitude": 49.238327, "timestamp": 4849, "altitude": 230.45454545454547, "type": "gps", "longitude": 16.514026}, {"latitude": 49.238342, "timestamp": 4851, "altitude": 230.54545454545453, "type": "gps", "longitude": 16.514043}, {"latitude": 49.238388, "timestamp": 4855, "altitude": 230.63636363636363, "type": "gps", "longitude": 16.514078}, {"latitude": 49.238403, "timestamp": 4857, "altitude": 230.72727272727272, "type": "gps", "longitude": 16.514089}, {"latitude": 49.238418, "timestamp": 4859, "altitude": 230.8181818181818, "type": "gps", "longitude": 16.514102}, {"latitude": 49.238418, "timestamp": 4861, "altitude": 230.9090909090909, "type": "gps", "longitude": 16.514102}, {"latitude": 49.23846, "timestamp": 4864, "altitude": 231, "type": "gps", "longitude": 16.514135}, {"latitude": 49.238471, "timestamp": 4866, "altitude": 231, "type": "gps", "longitude": 16.514141}, {"latitude": 49.23851, "timestamp": 4869, "altitude": 231, "type": "gps", "longitude": 16.514137}, {"latitude": 49.238559, "timestamp": 4872, "altitude": 231, "type": "gps", "longitude": 16.51412}, {"latitude": 49.238559, "timestamp": 4874, "altitude": 231, "type": "gps", "longitude": 16.51412}, {"latitude": 49.238616, "timestamp": 4875, "altitude": 231, "type": "end", "longitude": 16.514106}], "nearest_teammate_background_activities": ["/nearestMeasurement/BACKGROUND_ACTIVITY/4034650/1530351061000"], "distance": [{"distance": 0, "timestamp": 0}, {"distance": 0, "timestamp": 1}, {"distance": 0.9904870203521985, "timestamp": 4}, {"distance": 0.9904870203521985, "timestamp": 7}, {"distance": 1.9616626986646724, "timestamp": 9}, {"distance": 1.9616626986646724, "timestamp": 12}, {"distance": 2.897423729371684, "timestamp": 14}, {"distance": 11.215095929399233, "timestamp": 28}, {"distance": 12.716787996364957, "timestamp": 29}, {"distance": 15.965877448211895, "timestamp": 32}, {"distance": 17.487252883509278, "timestamp": 33}, {"distance": 19.329565676181442, "timestamp": 34}, {"distance": 23.28134793333037, "timestamp": 36}, {"distance": 37.789150092910916, "timestamp": 44}, {"distance": 40.350665244022096, "timestamp": 46}, {"distance": 48.1399614335143, "timestamp": 50}, {"distance": 58.01343624008146, "timestamp": 54}, {"distance": 67.86198402530226, "timestamp": 58}, {"distance": 77.44632112509039, "timestamp": 61}, {"distance": 88.26590366298693, "timestamp": 65}, {"distance": 97.73604073561437, "timestamp": 68}, {"distance": 106.92688503307457, "timestamp": 71}, {"distance": 117.05752137616071, "timestamp": 74}, {"distance": 127.43943042215574, "timestamp": 77}, {"distance": 137.68579569799388, "timestamp": 80}, {"distance": 148.35810692966922, "timestamp": 84}, {"distance": 158.74001513484646, "timestamp": 87}, {"distance": 168.83152031326767, "timestamp": 91}, {"distance": 178.16689571633742, "timestamp": 94}, {"distance": 188.44217814165768, "timestamp": 97}, {"distance": 199.10059752270624, "timestamp": 101}, {"distance": 208.39910115140103, "timestamp": 104}, {"distance": 208.39910115140103, "timestamp": 106}, {"distance": 218.38794097089507, "timestamp": 107}, {"distance": 227.39800566637803, "timestamp": 111}, {"distance": 227.39800566637803, "timestamp": 113}, {"distance": 239.20040128876744, "timestamp": 115}, {"distance": 247.66423224236658, "timestamp": 119}, {"distance": 256.763292502338, "timestamp": 122}, {"distance": 266.1206820242428, "timestamp": 126}, {"distance": 275.3094374870929, "timestamp": 129}, {"distance": 275.3094374870929, "timestamp": 131}, {"distance": 285.5222482433864, "timestamp": 133}, {"distance": 293.48724663353215, "timestamp": 137}, {"distance": 301.0361900794305, "timestamp": 140}, {"distance": 301.0361900794305, "timestamp": 142}, {"distance": 310.00704491019553, "timestamp": 144}, {"distance": 318.30845789752686, "timestamp": 147}, {"distance": 327.73063968435395, "timestamp": 151}, {"distance": 336.31967626309694, "timestamp": 155}, {"distance": 344.36571757954545, "timestamp": 158}, {"distance": 352.3923205847124, "timestamp": 162}, {"distance": 361.4272508270301, "timestamp": 166}, {"distance": 370.0162677650498, "timestamp": 169}, {"distance": 378.33069565531355, "timestamp": 173}, {"distance": 386.17294224394334, "timestamp": 176}, {"distance": 395.36162402094226, "timestamp": 180}, {"distance": 403.9330137503718, "timestamp": 184}, {"distance": 412.6265117930725, "timestamp": 188}, {"distance": 421.21317209163095, "timestamp": 192}, {"distance": 429.511080273818, "timestamp": 195}, {"distance": 429.511080273818, "timestamp": 197}, {"distance": 438.45137388337855, "timestamp": 199}, {"distance": 446.6639001766408, "timestamp": 202}, {"distance": 454.91368446202466, "timestamp": 205}, {"distance": 464.0127791527418, "timestamp": 209}, {"distance": 472.44262702381616, "timestamp": 212}, {"distance": 481.47554748727583, "timestamp": 215}, {"distance": 490.6389850881783, "timestamp": 219}, {"distance": 500.32148077196547, "timestamp": 222}, {"distance": 509.2199253332005, "timestamp": 226}, {"distance": 517.781302897777, "timestamp": 229}, {"distance": 526.7957608585147, "timestamp": 232}, {"distance": 535.7664770345644, "timestamp": 236}, {"distance": 545.6511510257772, "timestamp": 239}, {"distance": 555.1541395210685, "timestamp": 243}, {"distance": 564.5113322081567, "timestamp": 246}, {"distance": 573.3275554503804, "timestamp": 249}, {"distance": 583.3404078067528, "timestamp": 253}, {"distance": 590.9999758912395, "timestamp": 257}, {"distance": 599.8214936297475, "timestamp": 260}, {"distance": 608.2713935272891, "timestamp": 263}, {"distance": 616.9750110302843, "timestamp": 266}, {"distance": 626.344845197948, "timestamp": 270}, {"distance": 635.6628506700646, "timestamp": 273}, {"distance": 644.4843407824808, "timestamp": 276}, {"distance": 654.4677566036164, "timestamp": 279}, {"distance": 663.6028801859642, "timestamp": 282}, {"distance": 672.920861600535, "timestamp": 286}, {"distance": 681.8930497666468, "timestamp": 289}, {"distance": 691.3569118903171, "timestamp": 292}, {"distance": 701.1592224723339, "timestamp": 295}, {"distance": 710.3035956521805, "timestamp": 298}, {"distance": 720.105893413004, "timestamp": 301}, {"distance": 729.0677409132769, "timestamp": 304}, {"distance": 738.3856768848243, "timestamp": 307}, {"distance": 747.4149141577193, "timestamp": 310}, {"distance": 756.992765241594, "timestamp": 314}, {"distance": 766.009409837296, "timestamp": 317}, {"distance": 775.3746971201303, "timestamp": 320}, {"distance": 784.9963353752673, "timestamp": 323}, {"distance": 794.3630818496072, "timestamp": 327}, {"distance": 803.2703213249356, "timestamp": 330}, {"distance": 812.399355104722, "timestamp": 333}, {"distance": 821.873498350384, "timestamp": 336}, {"distance": 831.1868990166456, "timestamp": 339}, {"distance": 840.7694398105532, "timestamp": 343}, {"distance": 849.9499756346047, "timestamp": 346}, {"distance": 859.1049823725461, "timestamp": 349}, {"distance": 868.9346544384141, "timestamp": 352}, {"distance": 878.3013479579271, "timestamp": 355}, {"distance": 887.4040915118273, "timestamp": 358}, {"distance": 896.559075855254, "timestamp": 361}, {"distance": 905.6368217230496, "timestamp": 364}, {"distance": 914.3321051561954, "timestamp": 367}, {"distance": 923.8004411190348, "timestamp": 370}, {"distance": 932.4461775668406, "timestamp": 373}, {"distance": 941.5672149689483, "timestamp": 376}, {"distance": 951.1655683793571, "timestamp": 380}, {"distance": 960.2865953791284, "timestamp": 383}, {"distance": 969.0818832962723, "timestamp": 386}, {"distance": 979.2540039731781, "timestamp": 389}, {"distance": 988.3750155342203, "timestamp": 392}, {"distance": 997.7425826930647, "timestamp": 395}, {"distance": 1007.0602230996766, "timestamp": 398}, {"distance": 1016.4779953662792, "timestamp": 401}, {"distance": 1025.5025649244167, "timestamp": 404}, {"distance": 1034.197782915098, "timestamp": 407}, {"distance": 1043.0734941380028, "timestamp": 410}, {"distance": 1051.919221087037, "timestamp": 413}, {"distance": 1060.6144248832688, "timestamp": 416}, {"distance": 1069.4968274751898, "timestamp": 419}, {"distance": 1077.9958667798207, "timestamp": 423}, {"distance": 1086.4949017307865, "timestamp": 426}, {"distance": 1095.0771751045406, "timestamp": 429}, {"distance": 1103.453681452164, "timestamp": 432}, {"distance": 1112.2893664548528, "timestamp": 435}, {"distance": 1121.078702412732, "timestamp": 438}, {"distance": 1128.715410689961, "timestamp": 442}, {"distance": 1136.1658312115396, "timestamp": 445}, {"distance": 1143.394177778619, "timestamp": 449}, {"distance": 1151.2425493515739, "timestamp": 453}, {"distance": 1159.3122889399258, "timestamp": 456}, {"distance": 1167.7164112429077, "timestamp": 459}, {"distance": 1175.4704309017898, "timestamp": 462}, {"distance": 1184.0526607002546, "timestamp": 466}, {"distance": 1191.8066718532536, "timestamp": 469}, {"distance": 1200.109843936054, "timestamp": 472}, {"distance": 1208.2824976969976, "timestamp": 476}, {"distance": 1216.243179345921, "timestamp": 479}, {"distance": 1224.5047658369185, "timestamp": 483}, {"distance": 1231.9551432641815, "timestamp": 486}, {"distance": 1240.410174847794, "timestamp": 489}, {"distance": 1248.268118994122, "timestamp": 493}, {"distance": 1256.8259769433353, "timestamp": 496}, {"distance": 1265.5173161475286, "timestamp": 500}, {"distance": 1274.3907740303093, "timestamp": 503}, {"distance": 1281.9470981964212, "timestamp": 506}, {"distance": 1289.470401425395, "timestamp": 510}, {"distance": 1298.7834962186782, "timestamp": 513}, {"distance": 1307.8610038362287, "timestamp": 517}, {"distance": 1317.228384381526, "timestamp": 520}, {"distance": 1326.5458413667343, "timestamp": 524}, {"distance": 1336.4913217259607, "timestamp": 527}, {"distance": 1345.6121418367875, "timestamp": 531}, {"distance": 1355.162665960457, "timestamp": 534}, {"distance": 1364.480100328508, "timestamp": 537}, {"distance": 1373.7975292859574, "timestamp": 541}, {"distance": 1382.9183289224718, "timestamp": 544}, {"distance": 1392.1861294014325, "timestamp": 547}, {"distance": 1401.6036716526514, "timestamp": 550}, {"distance": 1411.2496909808347, "timestamp": 553}, {"distance": 1421.0412821857317, "timestamp": 556}, {"distance": 1430.4588069056995, "timestamp": 559}, {"distance": 1439.7761972799951, "timestamp": 562}, {"distance": 1448.6117219430464, "timestamp": 566}, {"distance": 1456.9199522305214, "timestamp": 569}, {"distance": 1465.1756381986074, "timestamp": 572}, {"distance": 1473.7718831067355, "timestamp": 575}, {"distance": 1482.7962148399254, "timestamp": 578}, {"distance": 1491.1725045403837, "timestamp": 582}, {"distance": 1500.4898587269925, "timestamp": 585}, {"distance": 1509.4190838903453, "timestamp": 588}, {"distance": 1518.0713764451186, "timestamp": 591}, {"distance": 1527.033470181137, "timestamp": 594}, {"distance": 1536.3994137368186, "timestamp": 597}, {"distance": 1545.8493655095795, "timestamp": 600}, {"distance": 1555.4276707470178, "timestamp": 603}, {"distance": 1565.3245016232656, "timestamp": 606}, {"distance": 1574.6843851442934, "timestamp": 609}, {"distance": 1584.3386495247316, "timestamp": 612}, {"distance": 1593.9394798774288, "timestamp": 615}, {"distance": 1603.6730943335624, "timestamp": 618}, {"distance": 1612.8237367741294, "timestamp": 621}, {"distance": 1623.0091383055226, "timestamp": 624}, {"distance": 1633.1411046618807, "timestamp": 627}, {"distance": 1642.6234615007552, "timestamp": 629}, {"distance": 1653.2620347877212, "timestamp": 633}, {"distance": 1662.7834772780666, "timestamp": 636}, {"distance": 1672.359889998146, "timestamp": 639}, {"distance": 1682.5685816404857, "timestamp": 642}, {"distance": 1692.1773758926972, "timestamp": 645}, {"distance": 1701.9276955985063, "timestamp": 648}, {"distance": 1712.1009596159581, "timestamp": 651}, {"distance": 1721.8076825291637, "timestamp": 653}, {"distance": 1731.945919049038, "timestamp": 656}, {"distance": 1741.9481151211437, "timestamp": 659}, {"distance": 1751.950307805572, "timestamp": 662}, {"distance": 1762.287043010571, "timestamp": 665}, {"distance": 1771.8958093602876, "timestamp": 668}, {"distance": 1781.6025114604117, "timestamp": 671}, {"distance": 1791.281203640089, "timestamp": 674}, {"distance": 1800.6486104682017, "timestamp": 677}, {"distance": 1810.8218365549367, "timestamp": 680}, {"distance": 1820.9600397618392, "timestamp": 683}, {"distance": 1830.422645805481, "timestamp": 685}, {"distance": 1840.6670820659137, "timestamp": 688}, {"distance": 1851.0212443906157, "timestamp": 691}, {"distance": 1860.559262059966, "timestamp": 694}, {"distance": 1870.651253181582, "timestamp": 697}, {"distance": 1880.8233201396472, "timestamp": 700}, {"distance": 1890.8543113378614, "timestamp": 703}, {"distance": 1900.9067954057534, "timestamp": 706}, {"distance": 1909.4595984470784, "timestamp": 709}, {"distance": 1918.569419101406, "timestamp": 712}, {"distance": 1927.795502099434, "timestamp": 715}, {"distance": 1936.8878408542391, "timestamp": 717}, {"distance": 1946.509971965303, "timestamp": 720}, {"distance": 1955.438937983942, "timestamp": 723}, {"distance": 1964.5593832802595, "timestamp": 726}, {"distance": 1973.3540679485689, "timestamp": 729}, {"distance": 1982.6136122137275, "timestamp": 732}, {"distance": 1991.9223809866521, "timestamp": 735}, {"distance": 2001.104032599913, "timestamp": 737}, {"distance": 2010.6237392009216, "timestamp": 740}, {"distance": 2019.7092876081435, "timestamp": 743}, {"distance": 2028.5296727332268, "timestamp": 745}, {"distance": 2036.5550213249087, "timestamp": 748}, {"distance": 2046.1832606080732, "timestamp": 751}, {"distance": 2055.864154762038, "timestamp": 753}, {"distance": 2065.0294033684977, "timestamp": 756}, {"distance": 2074.9927213458272, "timestamp": 759}, {"distance": 2084.343060786693, "timestamp": 761}, {"distance": 2093.796394492965, "timestamp": 764}, {"distance": 2102.8295777704925, "timestamp": 767}, {"distance": 2112.286730525195, "timestamp": 769}, {"distance": 2120.8213638995394, "timestamp": 772}, {"distance": 2130.2606181907217, "timestamp": 775}, {"distance": 2139.3048581904554, "timestamp": 777}, {"distance": 2148.1663574078216, "timestamp": 780}, {"distance": 2157.322719191078, "timestamp": 783}, {"distance": 2166.032768920717, "timestamp": 786}, {"distance": 2173.799229929699, "timestamp": 788}, {"distance": 2181.3879635843937, "timestamp": 791}, {"distance": 2190.2067575905467, "timestamp": 794}, {"distance": 2198.221286195482, "timestamp": 796}, {"distance": 2206.8316431208927, "timestamp": 799}, {"distance": 2214.8803446077427, "timestamp": 802}, {"distance": 2222.999110035651, "timestamp": 805}, {"distance": 2231.597123198107, "timestamp": 808}, {"distance": 2240.195140489171, "timestamp": 810}, {"distance": 2249.160652400931, "timestamp": 813}, {"distance": 2258.217144296761, "timestamp": 816}, {"distance": 2267.6520512051643, "timestamp": 819}, {"distance": 2276.591062281879, "timestamp": 822}, {"distance": 2285.1509094371077, "timestamp": 824}, {"distance": 2294.363916753205, "timestamp": 827}, {"distance": 2303.8603888898497, "timestamp": 830}, {"distance": 2311.9791958652577, "timestamp": 833}, {"distance": 2321.061530717096, "timestamp": 836}, {"distance": 2329.816955634657, "timestamp": 838}, {"distance": 2338.2726386214163, "timestamp": 841}, {"distance": 2346.547252235919, "timestamp": 844}, {"distance": 2355.5089902842815, "timestamp": 847}, {"distance": 2364.8768776690167, "timestamp": 850}, {"distance": 2373.60707468072, "timestamp": 852}, {"distance": 2382.3036610951685, "timestamp": 855}, {"distance": 2391.0179533326873, "timestamp": 858}, {"distance": 2400.080469551657, "timestamp": 861}, {"distance": 2409.2676925693595, "timestamp": 864}, {"distance": 2418.8723876289673, "timestamp": 867}, {"distance": 2427.7482518696943, "timestamp": 870}, {"distance": 2436.159837726055, "timestamp": 872}, {"distance": 2444.2300318497714, "timestamp": 875}, {"distance": 2453.0652190020705, "timestamp": 878}, {"distance": 2461.627865036272, "timestamp": 880}, {"distance": 2469.3901636198602, "timestamp": 883}, {"distance": 2477.6460627348583, "timestamp": 886}, {"distance": 2486.3912980582745, "timestamp": 889}, {"distance": 2495.4558526641804, "timestamp": 891}, {"distance": 2504.897486128807, "timestamp": 894}, {"distance": 2513.888510595048, "timestamp": 897}, {"distance": 2523.706182967964, "timestamp": 900}, {"distance": 2532.6681555271175, "timestamp": 903}, {"distance": 2541.6700124788017, "timestamp": 905}, {"distance": 2550.720895495138, "timestamp": 908}, {"distance": 2560.1848196696433, "timestamp": 911}, {"distance": 2568.2668996145885, "timestamp": 914}, {"distance": 2576.8081166074676, "timestamp": 916}, {"distance": 2584.7696890865036, "timestamp": 919}, {"distance": 2593.24565369561, "timestamp": 922}, {"distance": 2602.5698343265253, "timestamp": 925}, {"distance": 2611.574689124268, "timestamp": 927}, {"distance": 2620.073087554235, "timestamp": 930}, {"distance": 2628.2955870124515, "timestamp": 933}, {"distance": 2636.7499875873373, "timestamp": 936}, {"distance": 2644.7125462810345, "timestamp": 939}, {"distance": 2652.963739236129, "timestamp": 942}, {"distance": 2661.7518463148963, "timestamp": 945}, {"distance": 2669.796300348754, "timestamp": 947}, {"distance": 2678.6375520129013, "timestamp": 950}, {"distance": 2687.2750702470735, "timestamp": 953}, {"distance": 2695.904750617225, "timestamp": 956}, {"distance": 2704.1501599026074, "timestamp": 959}, {"distance": 2712.8734793068193, "timestamp": 961}, {"distance": 2720.807082864027, "timestamp": 964}, {"distance": 2729.8509810579367, "timestamp": 967}, {"distance": 2738.6060082587283, "timestamp": 970}, {"distance": 2747.617032708605, "timestamp": 973}, {"distance": 2756.795298565238, "timestamp": 976}, {"distance": 2765.5348941507464, "timestamp": 979}, {"distance": 2773.8456511222603, "timestamp": 982}, {"distance": 2782.600671653111, "timestamp": 985}, {"distance": 2790.839167041756, "timestamp": 987}, {"distance": 2799.1606386918706, "timestamp": 990}, {"distance": 2807.8569103723853, "timestamp": 993}, {"distance": 2816.353684093036, "timestamp": 996}, {"distance": 2824.814926126397, "timestamp": 999}, {"distance": 2833.629597829172, "timestamp": 1002}, {"distance": 2843.2109768850323, "timestamp": 1005}, {"distance": 2851.872154747552, "timestamp": 1007}, {"distance": 2851.872154747552, "timestamp": 1013}, {"distance": 2871.225291058668, "timestamp": 1019}, {"distance": 2877.6253233980706, "timestamp": 1023}, {"distance": 2884.916935866771, "timestamp": 1026}, {"distance": 2893.5126364458574, "timestamp": 1029}, {"distance": 2901.7858278585736, "timestamp": 1031}, {"distance": 2910.862600952045, "timestamp": 1034}, {"distance": 2919.4808221257767, "timestamp": 1037}, {"distance": 2927.6070211808055, "timestamp": 1040}, {"distance": 2936.3680175177756, "timestamp": 1044}, {"distance": 2945.188035757359, "timestamp": 1047}, {"distance": 2953.775247315099, "timestamp": 1050}, {"distance": 2963.1360383778106, "timestamp": 1053}, {"distance": 2970.430285598101, "timestamp": 1056}, {"distance": 2978.703484320968, "timestamp": 1059}, {"distance": 2986.8896722368486, "timestamp": 1061}, {"distance": 2995.7714647291887, "timestamp": 1065}, {"distance": 3003.571403861839, "timestamp": 1067}, {"distance": 3011.534747074667, "timestamp": 1071}, {"distance": 3019.0998603505723, "timestamp": 1074}, {"distance": 3026.8378425358997, "timestamp": 1077}, {"distance": 3034.098522327494, "timestamp": 1080}, {"distance": 3040.769338640043, "timestamp": 1083}, {"distance": 3048.221336085337, "timestamp": 1086}, {"distance": 3055.74959442492, "timestamp": 1089}, {"distance": 3064.015123910084, "timestamp": 1092}, {"distance": 3071.9168584226845, "timestamp": 1095}, {"distance": 3081.0550292529897, "timestamp": 1098}, {"distance": 3088.3771917030986, "timestamp": 1101}, {"distance": 3095.9050920269083, "timestamp": 1104}, {"distance": 3103.66439076122, "timestamp": 1107}, {"distance": 3112.2269758666107, "timestamp": 1110}, {"distance": 3120.8490665739714, "timestamp": 1113}, {"distance": 3128.9287814173, "timestamp": 1116}, {"distance": 3137.100661948079, "timestamp": 1119}, {"distance": 3145.5962365577566, "timestamp": 1122}, {"distance": 3154.0623083943683, "timestamp": 1125}, {"distance": 3162.19121033932, "timestamp": 1128}, {"distance": 3171.086804470548, "timestamp": 1131}, {"distance": 3179.983582808624, "timestamp": 1134}, {"distance": 3188.8791769398517, "timestamp": 1137}, {"distance": 3197.775955269461, "timestamp": 1140}, {"distance": 3207.1174569189343, "timestamp": 1143}, {"distance": 3216.462341170021, "timestamp": 1145}, {"distance": 3225.8027150082844, "timestamp": 1148}, {"distance": 3235.147599228676, "timestamp": 1151}, {"distance": 3244.937058215257, "timestamp": 1154}, {"distance": 3253.843304246939, "timestamp": 1157}, {"distance": 3262.743634114301, "timestamp": 1160}, {"distance": 3272.0910543734612, "timestamp": 1163}, {"distance": 3281.0162054337643, "timestamp": 1166}, {"distance": 3289.9969531541515, "timestamp": 1168}, {"distance": 3298.2560249091607, "timestamp": 1171}, {"distance": 3306.818602168354, "timestamp": 1174}, {"distance": 3314.968413642947, "timestamp": 1177}, {"distance": 3323.720555904199, "timestamp": 1180}, {"distance": 3332.363949002715, "timestamp": 1183}, {"distance": 3341.0907296677506, "timestamp": 1186}, {"distance": 3350.026258799044, "timestamp": 1189}, {"distance": 3358.336711972826, "timestamp": 1191}, {"distance": 3367.4773723853955, "timestamp": 1194}, {"distance": 3375.8738887647332, "timestamp": 1197}, {"distance": 3383.7180162794198, "timestamp": 1199}, {"distance": 3391.0960174735023, "timestamp": 1201}, {"distance": 3399.770212719191, "timestamp": 1203}, {"distance": 3408.137501854227, "timestamp": 1206}, {"distance": 3416.5637522371894, "timestamp": 1208}, {"distance": 3424.465406143645, "timestamp": 1210}, {"distance": 3433.633955762514, "timestamp": 1212}, {"distance": 3442.001237368378, "timestamp": 1214}, {"distance": 3449.498199113547, "timestamp": 1216}, {"distance": 3457.7636351140095, "timestamp": 1219}, {"distance": 3465.6362313471245, "timestamp": 1220}, {"distance": 3473.5378746908896, "timestamp": 1222}, {"distance": 3482.2689418700033, "timestamp": 1225}, {"distance": 3489.7052308607836, "timestamp": 1227}, {"distance": 3497.666632942474, "timestamp": 1229}, {"distance": 3504.6808251419175, "timestamp": 1231}, {"distance": 3513.5010100532263, "timestamp": 1233}, {"distance": 3521.5243509781985, "timestamp": 1235}, {"distance": 3529.950574197263, "timestamp": 1237}, {"distance": 3537.5104791131002, "timestamp": 1239}, {"distance": 3545.1690148979774, "timestamp": 1242}, {"distance": 3552.8615145043495, "timestamp": 1244}, {"distance": 3560.1290556122317, "timestamp": 1246}, {"distance": 3568.5298165228273, "timestamp": 1248}, {"distance": 3576.219544240753, "timestamp": 1250}, {"distance": 3584.3591329060887, "timestamp": 1253}, {"distance": 3592.1319637999427, "timestamp": 1255}, {"distance": 3601.0505846890233, "timestamp": 1257}, {"distance": 3609.128106186589, "timestamp": 1259}, {"distance": 3617.087803771349, "timestamp": 1262}, {"distance": 3624.821234163564, "timestamp": 1264}, {"distance": 3632.859727031188, "timestamp": 1266}, {"distance": 3641.035798916764, "timestamp": 1268}, {"distance": 3649.217956035075, "timestamp": 1270}, {"distance": 3657.3435920047264, "timestamp": 1272}, {"distance": 3665.0229069392367, "timestamp": 1274}, {"distance": 3673.8673256467177, "timestamp": 1277}, {"distance": 3681.5466316588727, "timestamp": 1279}, {"distance": 3689.8737911784865, "timestamp": 1281}, {"distance": 3698.4510895526805, "timestamp": 1283}, {"distance": 3705.6316253544346, "timestamp": 1285}, {"distance": 3714.7161346772655, "timestamp": 1287}, {"distance": 3722.3954189225656, "timestamp": 1289}, {"distance": 3730.797086738563, "timestamp": 1291}, {"distance": 3738.525100122134, "timestamp": 1293}, {"distance": 3746.9015959201515, "timestamp": 1296}, {"distance": 3755.4880108950697, "timestamp": 1298}, {"distance": 3763.3260382278145, "timestamp": 1300}, {"distance": 3772.0932748130886, "timestamp": 1302}, {"distance": 3780.456599249173, "timestamp": 1305}, {"distance": 3788.7747060557904, "timestamp": 1307}, {"distance": 3796.294252214797, "timestamp": 1309}, {"distance": 3804.7455096420144, "timestamp": 1311}, {"distance": 3812.5320521665108, "timestamp": 1313}, {"distance": 3820.63176137161, "timestamp": 1315}, {"distance": 3829.216552932408, "timestamp": 1317}, {"distance": 3837.3162539398227, "timestamp": 1319}, {"distance": 3845.1954204896806, "timestamp": 1321}, {"distance": 3853.3854181205475, "timestamp": 1324}, {"distance": 3861.011493556314, "timestamp": 1325}, {"distance": 3869.7301819098316, "timestamp": 1328}, {"distance": 3877.5166942133055, "timestamp": 1330}, {"distance": 3886.113268145118, "timestamp": 1332}, {"distance": 3893.8575791811836, "timestamp": 1334}, {"distance": 3901.778195825371, "timestamp": 1336}, {"distance": 3910.606774120652, "timestamp": 1338}, {"distance": 3918.62110017128, "timestamp": 1340}, {"distance": 3927.516524772911, "timestamp": 1343}, {"distance": 3935.303010884833, "timestamp": 1345}, {"distance": 3942.9128455467508, "timestamp": 1347}, {"distance": 3950.9679358862177, "timestamp": 1349}, {"distance": 3958.5540005300186, "timestamp": 1351}, {"distance": 3967.3866698633033, "timestamp": 1353}, {"distance": 3975.039425065498, "timestamp": 1355}, {"distance": 3983.3574364030587, "timestamp": 1357}, {"distance": 3991.8531053325273, "timestamp": 1360}, {"distance": 3999.7741646771124, "timestamp": 1362}, {"distance": 4007.67732066813, "timestamp": 1364}, {"distance": 4016.053686046638, "timestamp": 1366}, {"distance": 4023.8915946332722, "timestamp": 1368}, {"distance": 4032.3977178227615, "timestamp": 1370}, {"distance": 4039.602582556987, "timestamp": 1372}, {"distance": 4048.3531411730023, "timestamp": 1374}, {"distance": 4056.4073644532587, "timestamp": 1376}, {"distance": 4064.397578434841, "timestamp": 1378}, {"distance": 4072.8932007719486, "timestamp": 1380}, {"distance": 4080.4215319873383, "timestamp": 1382}, {"distance": 4088.9776252304564, "timestamp": 1385}, {"distance": 4096.571072346032, "timestamp": 1387}, {"distance": 4104.802211332217, "timestamp": 1389}, {"distance": 4112.056401125462, "timestamp": 1391}, {"distance": 4119.6498373147015, "timestamp": 1393}, {"distance": 4128.6137999182065, "timestamp": 1395}, {"distance": 4136.803647437068, "timestamp": 1397}, {"distance": 4144.057822856669, "timestamp": 1399}, {"distance": 4152.242994121705, "timestamp": 1402}, {"distance": 4160.365356436645, "timestamp": 1404}, {"distance": 4168.285836199148, "timestamp": 1406}, {"distance": 4174.963329273849, "timestamp": 1408}, {"distance": 4183.138488395004, "timestamp": 1410}, {"distance": 4191.003168279414, "timestamp": 1412}, {"distance": 4198.177958700011, "timestamp": 1414}, {"distance": 4205.904827301112, "timestamp": 1417}, {"distance": 4213.667613103935, "timestamp": 1419}, {"distance": 4221.016952956844, "timestamp": 1421}, {"distance": 4227.7860823387755, "timestamp": 1423}, {"distance": 4235.693219943263, "timestamp": 1425}, {"distance": 4242.927246862033, "timestamp": 1427}, {"distance": 4250.553136058396, "timestamp": 1430}, {"distance": 4258.180940004489, "timestamp": 1432}, {"distance": 4266.088066301635, "timestamp": 1434}, {"distance": 4274.767038821226, "timestamp": 1437}, {"distance": 4283.235018556787, "timestamp": 1440}, {"distance": 4290.86281165752, "timestamp": 1443}, {"distance": 4297.182598183988, "timestamp": 1446}, {"distance": 4304.196601840324, "timestamp": 1450}, {"distance": 4311.278224065861, "timestamp": 1453}, {"distance": 4318.157281744764, "timestamp": 1456}, {"distance": 4326.05720402434, "timestamp": 1459}, {"distance": 4333.274348492005, "timestamp": 1463}, {"distance": 4341.329255423904, "timestamp": 1466}, {"distance": 4349.023510523862, "timestamp": 1469}, {"distance": 4356.750321083987, "timestamp": 1472}, {"distance": 4364.9254056340405, "timestamp": 1476}, {"distance": 4373.03159329475, "timestamp": 1479}, {"distance": 4382.037188017136, "timestamp": 1482}, {"distance": 4390.5655460387325, "timestamp": 1485}, {"distance": 4399.878880811252, "timestamp": 1488}, {"distance": 4408.468577099552, "timestamp": 1491}, {"distance": 4417.230141153931, "timestamp": 1494}, {"distance": 4426.150078109625, "timestamp": 1497}, {"distance": 4434.9116330104425, "timestamp": 1500}, {"distance": 4442.57020543783, "timestamp": 1503}, {"distance": 4450.8951200139145, "timestamp": 1507}, {"distance": 4459.084829917212, "timestamp": 1510}, {"distance": 4467.234429749624, "timestamp": 1513}, {"distance": 4475.271740615899, "timestamp": 1516}, {"distance": 4483.669368774644, "timestamp": 1519}, {"distance": 4492.91238745831, "timestamp": 1522}, {"distance": 4502.296753474109, "timestamp": 1525}, {"distance": 4511.70677300667, "timestamp": 1528}, {"distance": 4521.728548158856, "timestamp": 1531}, {"distance": 4530.68921501598, "timestamp": 1534}, {"distance": 4540.603597696315, "timestamp": 1537}, {"distance": 4550.349321908987, "timestamp": 1540}, {"distance": 4559.913599077509, "timestamp": 1543}, {"distance": 4569.407967504413, "timestamp": 1546}, {"distance": 4578.75633564059, "timestamp": 1549}, {"distance": 4588.518037222816, "timestamp": 1552}, {"distance": 4597.831280930241, "timestamp": 1554}, {"distance": 4607.738810682294, "timestamp": 1557}, {"distance": 4616.949832653914, "timestamp": 1560}, {"distance": 4625.781597978162, "timestamp": 1563}, {"distance": 4634.9967273794, "timestamp": 1566}, {"distance": 4644.207736672662, "timestamp": 1569}, {"distance": 4653.005391968331, "timestamp": 1572}, {"distance": 4661.3733223833215, "timestamp": 1575}, {"distance": 4669.315062338358, "timestamp": 1578}, {"distance": 4677.202566298199, "timestamp": 1581}, {"distance": 4685.692844801796, "timestamp": 1584}, {"distance": 4694.400822753906, "timestamp": 1587}, {"distance": 4703.699975972133, "timestamp": 1590}, {"distance": 4712.924804107097, "timestamp": 1593}, {"distance": 4722.380505294095, "timestamp": 1596}, {"distance": 4732.037065105418, "timestamp": 1599}, {"distance": 4740.924938032982, "timestamp": 1602}, {"distance": 4771.061021517684, "timestamp": 1615}, {"distance": 4778.294900762278, "timestamp": 1619}, {"distance": 4787.023163075881, "timestamp": 1622}, {"distance": 4796.371514392761, "timestamp": 1625}, {"distance": 4805.224118936246, "timestamp": 1628}, {"distance": 4815.0339279939235, "timestamp": 1631}, {"distance": 4824.7129648451255, "timestamp": 1634}, {"distance": 4834.594283433757, "timestamp": 1637}, {"distance": 4844.693433397212, "timestamp": 1640}, {"distance": 4854.667718618785, "timestamp": 1643}, {"distance": 4864.579781731655, "timestamp": 1646}, {"distance": 4873.636815233652, "timestamp": 1648}, {"distance": 4883.716218839823, "timestamp": 1652}, {"distance": 4892.730757670656, "timestamp": 1654}, {"distance": 4901.524435711705, "timestamp": 1657}, {"distance": 4910.741554175428, "timestamp": 1660}, {"distance": 4919.659988119398, "timestamp": 1663}, {"distance": 4928.983581297727, "timestamp": 1666}, {"distance": 4939.154871541205, "timestamp": 1669}, {"distance": 4948.2381544042755, "timestamp": 1672}, {"distance": 4957.951829278156, "timestamp": 1675}, {"distance": 4968.305323022929, "timestamp": 1678}, {"distance": 4978.01147384026, "timestamp": 1681}, {"distance": 4988.255292691272, "timestamp": 1684}, {"distance": 4998.1276373873625, "timestamp": 1687}, {"distance": 5007.568599811073, "timestamp": 1690}, {"distance": 5017.318569530302, "timestamp": 1693}, {"distance": 5026.60345629953, "timestamp": 1696}, {"distance": 5035.9025764617, "timestamp": 1699}, {"distance": 5045.04313159791, "timestamp": 1702}, {"distance": 5054.519197415295, "timestamp": 1706}, {"distance": 5063.659756747479, "timestamp": 1709}, {"distance": 5073.680155033742, "timestamp": 1712}, {"distance": 5083.505245486583, "timestamp": 1715}, {"distance": 5092.7765340033, "timestamp": 1718}, {"distance": 5102.154565096942, "timestamp": 1721}, {"distance": 5112.2546492139145, "timestamp": 1724}, {"distance": 5122.382555977179, "timestamp": 1727}, {"distance": 5131.785830474881, "timestamp": 1730}, {"distance": 5141.392999873785, "timestamp": 1733}, {"distance": 5150.638859183182, "timestamp": 1736}, {"distance": 5160.330356830944, "timestamp": 1739}, {"distance": 5168.5909124066475, "timestamp": 1742}, {"distance": 5177.174757969329, "timestamp": 1745}, {"distance": 5185.628536594274, "timestamp": 1748}, {"distance": 5196.023845700765, "timestamp": 1751}, {"distance": 5205.811581612803, "timestamp": 1754}, {"distance": 5215.238226515862, "timestamp": 1757}, {"distance": 5225.816003591623, "timestamp": 1760}, {"distance": 5235.69183049613, "timestamp": 1763}, {"distance": 5244.92296714765, "timestamp": 1766}, {"distance": 5254.166475396658, "timestamp": 1769}, {"distance": 5262.890802033706, "timestamp": 1772}, {"distance": 5271.828584088615, "timestamp": 1775}, {"distance": 5281.788066069807, "timestamp": 1778}, {"distance": 5291.182063293586, "timestamp": 1781}, {"distance": 5300.279292961931, "timestamp": 1784}, {"distance": 5309.177568690657, "timestamp": 1786}, {"distance": 5318.788553271191, "timestamp": 1789}, {"distance": 5328.2333044966645, "timestamp": 1792}, {"distance": 5337.895534373684, "timestamp": 1795}, {"distance": 5345.67339543043, "timestamp": 1798}, {"distance": 5353.590702557268, "timestamp": 1800}, {"distance": 5361.428407890797, "timestamp": 1802}, {"distance": 5368.758113804558, "timestamp": 1804}, {"distance": 5376.813533175094, "timestamp": 1806}, {"distance": 5385.231809273888, "timestamp": 1808}, {"distance": 5393.2872286444235, "timestamp": 1810}, {"distance": 5400.914517981476, "timestamp": 1812}, {"distance": 5409.1995980355505, "timestamp": 1814}, {"distance": 5417.702085496349, "timestamp": 1816}, {"distance": 5425.407493844704, "timestamp": 1817}, {"distance": 5433.185353016585, "timestamp": 1819}, {"distance": 5441.422768150404, "timestamp": 1821}, {"distance": 5448.765952528573, "timestamp": 1823}, {"distance": 5456.501884504699, "timestamp": 1825}, {"distance": 5464.649628858196, "timestamp": 1827}, {"distance": 5472.249282290298, "timestamp": 1829}, {"distance": 5480.540549902845, "timestamp": 1831}, {"distance": 5488.114800223051, "timestamp": 1832}, {"distance": 5495.850724139154, "timestamp": 1834}, {"distance": 5504.213770196129, "timestamp": 1836}, {"distance": 5511.741348064157, "timestamp": 1838}, {"distance": 5519.268924729154, "timestamp": 1840}, {"distance": 5527.416656173418, "timestamp": 1842}, {"distance": 5535.593158009083, "timestamp": 1844}, {"distance": 5542.89189386004, "timestamp": 1846}, {"distance": 5551.032020425391, "timestamp": 1848}, {"distance": 5558.230315748705, "timestamp": 1849}, {"distance": 5566.14056742496, "timestamp": 1851}, {"distance": 5574.195961333958, "timestamp": 1853}, {"distance": 5582.614210824298, "timestamp": 1855}, {"distance": 5590.81474696604, "timestamp": 1857}, {"distance": 5599.087854223895, "timestamp": 1859}, {"distance": 5606.57590022531, "timestamp": 1861}, {"distance": 5614.994149033381, "timestamp": 1863}, {"distance": 5622.627085242372, "timestamp": 1865}, {"distance": 5630.6824778456485, "timestamp": 1868}, {"distance": 5640.344677832813, "timestamp": 1871}, {"distance": 5648.8354977513745, "timestamp": 1874}, {"distance": 5656.363068701783, "timestamp": 1877}, {"distance": 5664.491034385637, "timestamp": 1880}, {"distance": 5672.836713436252, "timestamp": 1883}, {"distance": 5681.2667050858445, "timestamp": 1887}, {"distance": 5689.226817358485, "timestamp": 1890}, {"distance": 5697.44629793974, "timestamp": 1893}, {"distance": 5705.353721652371, "timestamp": 1896}, {"distance": 5713.5412412812, "timestamp": 1900}, {"distance": 5722.339391578912, "timestamp": 1903}, {"distance": 5730.807689261256, "timestamp": 1906}, {"distance": 5737.284799596962, "timestamp": 1908}, {"distance": 5737.284799596962, "timestamp": 1912}, {"distance": 5749.388801925375, "timestamp": 1916}, {"distance": 5752.752947488294, "timestamp": 1918}, {"distance": 5754.870630797865, "timestamp": 1919}, {"distance": 5761.709196524279, "timestamp": 1922}, {"distance": 5769.409396144112, "timestamp": 1925}, {"distance": 5769.409396144112, "timestamp": 1928}, {"distance": 5778.777919578342, "timestamp": 1930}, {"distance": 5785.5705085883665, "timestamp": 1933}, {"distance": 5794.476752864536, "timestamp": 1937}, {"distance": 5802.5939825096375, "timestamp": 1940}, {"distance": 5810.601332731255, "timestamp": 1943}, {"distance": 5819.052147156237, "timestamp": 1946}, {"distance": 5827.615386594927, "timestamp": 1949}, {"distance": 5836.515715624364, "timestamp": 1953}, {"distance": 5844.967776310971, "timestamp": 1956}, {"distance": 5853.423574665029, "timestamp": 1959}, {"distance": 5861.099112752968, "timestamp": 1962}, {"distance": 5867.885496224414, "timestamp": 1965}, {"distance": 5875.149506562682, "timestamp": 1968}, {"distance": 5881.963768992092, "timestamp": 1972}, {"distance": 5889.284109208574, "timestamp": 1975}, {"distance": 5896.593289979448, "timestamp": 1978}, {"distance": 5903.545269180551, "timestamp": 1981}, {"distance": 5910.987300013072, "timestamp": 1985}, {"distance": 5918.239144132857, "timestamp": 1988}, {"distance": 5925.040568554462, "timestamp": 1991}, {"distance": 5932.204010390658, "timestamp": 1995}, {"distance": 5939.852748906397, "timestamp": 1998}, {"distance": 5947.421197160196, "timestamp": 2001}, {"distance": 5954.967695493147, "timestamp": 2004}, {"distance": 5962.307237180746, "timestamp": 2008}, {"distance": 5969.758926250233, "timestamp": 2011}, {"distance": 5977.485811968692, "timestamp": 2014}, {"distance": 5985.707439685302, "timestamp": 2017}, {"distance": 5993.894725604076, "timestamp": 2020}, {"distance": 6002.584016198499, "timestamp": 2024}, {"distance": 6010.276398622211, "timestamp": 2027}, {"distance": 6018.396509291074, "timestamp": 2030}, {"distance": 6026.229985454531, "timestamp": 2033}, {"distance": 6034.417259657761, "timestamp": 2036}, {"distance": 6041.51420495622, "timestamp": 2038}, {"distance": 6048.528307656966, "timestamp": 2040}, {"distance": 6055.034875615651, "timestamp": 2042}, {"distance": 6061.862939745979, "timestamp": 2044}, {"distance": 6069.184936997567, "timestamp": 2046}, {"distance": 6076.870239724121, "timestamp": 2048}, {"distance": 6083.571805582979, "timestamp": 2050}, {"distance": 6090.036240351618, "timestamp": 2051}, {"distance": 6097.358232614999, "timestamp": 2053}, {"distance": 6104.736107042456, "timestamp": 2055}, {"distance": 6111.125059122298, "timestamp": 2057}, {"distance": 6117.900469006394, "timestamp": 2059}, {"distance": 6125.272915195018, "timestamp": 2061}, {"distance": 6131.43915420668, "timestamp": 2063}, {"distance": 6137.56426454253, "timestamp": 2065}, {"distance": 6144.516230475515, "timestamp": 2067}, {"distance": 6151.874231088318, "timestamp": 2069}, {"distance": 6158.305129332256, "timestamp": 2071}, {"distance": 6166.127449762631, "timestamp": 2073}, {"distance": 6173.4854493754465, "timestamp": 2075}, {"distance": 6179.971787740154, "timestamp": 2077}, {"distance": 6187.35835717763, "timestamp": 2079}, {"distance": 6213.54139951987, "timestamp": 2091}, {"distance": 6219.593858634537, "timestamp": 2095}, {"distance": 6226.220751069012, "timestamp": 2099}, {"distance": 6233.09042179586, "timestamp": 2102}, {"distance": 6239.997930128389, "timestamp": 2106}, {"distance": 6247.2205326362855, "timestamp": 2109}, {"distance": 6255.015875751879, "timestamp": 2112}, {"distance": 6262.811218527238, "timestamp": 2115}, {"distance": 6270.450415712809, "timestamp": 2118}, {"distance": 6278.1721208335075, "timestamp": 2121}, {"distance": 6286.315579985716, "timestamp": 2124}, {"distance": 6293.88240402034, "timestamp": 2127}, {"distance": 6302.004821486182, "timestamp": 2131}, {"distance": 6310.022685928276, "timestamp": 2134}, {"distance": 6318.140239907399, "timestamp": 2137}, {"distance": 6325.368274388355, "timestamp": 2140}, {"distance": 6333.37956887372, "timestamp": 2143}, {"distance": 6340.643573406555, "timestamp": 2146}, {"distance": 6348.332818775208, "timestamp": 2150}, {"distance": 6355.962012679913, "timestamp": 2153}, {"distance": 6363.675870475657, "timestamp": 2156}, {"distance": 6370.939874610401, "timestamp": 2159}, {"distance": 6378.972501042419, "timestamp": 2162}, {"distance": 6386.2234458171315, "timestamp": 2165}, {"distance": 6394.395303668503, "timestamp": 2169}, {"distance": 6402.422356248287, "timestamp": 2172}, {"distance": 6410.874416689872, "timestamp": 2175}, {"distance": 6419.43765587431, "timestamp": 2178}, {"distance": 6427.443690593047, "timestamp": 2180}, {"distance": 6435.569024359157, "timestamp": 2183}, {"distance": 6442.427566011862, "timestamp": 2186}, {"distance": 6449.737116811932, "timestamp": 2189}, {"distance": 6463.268927873294, "timestamp": 2196}, {"distance": 6469.551446044949, "timestamp": 2199}, {"distance": 6477.287217006854, "timestamp": 2202}, {"distance": 6484.6367706335395, "timestamp": 2205}, {"distance": 6492.425446971924, "timestamp": 2208}, {"distance": 6499.953363908628, "timestamp": 2211}, {"distance": 6507.185412457847, "timestamp": 2214}, {"distance": 6513.9190604378855, "timestamp": 2217}, {"distance": 6520.621643024264, "timestamp": 2219}, {"distance": 6527.256324152751, "timestamp": 2221}, {"distance": 6534.389427669139, "timestamp": 2223}, {"distance": 6541.5527059786145, "timestamp": 2225}, {"distance": 6548.5237715966405, "timestamp": 2227}, {"distance": 6555.653525075272, "timestamp": 2229}, {"distance": 6563.806799870652, "timestamp": 2231}, {"distance": 6570.748338597706, "timestamp": 2233}, {"distance": 6579.298148588917, "timestamp": 2235}, {"distance": 6586.530175619689, "timestamp": 2237}, {"distance": 6593.8256473969595, "timestamp": 2239}, {"distance": 6601.587354919971, "timestamp": 2242}, {"distance": 6608.854598555255, "timestamp": 2244}, {"distance": 6615.775128528558, "timestamp": 2246}, {"distance": 6623.719522650847, "timestamp": 2248}, {"distance": 6631.26578505166, "timestamp": 2250}, {"distance": 6638.302865597083, "timestamp": 2252}, {"distance": 6645.716418510027, "timestamp": 2254}, {"distance": 6653.167866432489, "timestamp": 2256}, {"distance": 6660.37762355937, "timestamp": 2258}, {"distance": 6667.454608168888, "timestamp": 2260}, {"distance": 6674.1332814168745, "timestamp": 2262}, {"distance": 6681.417393299844, "timestamp": 2264}, {"distance": 6688.434349574212, "timestamp": 2266}, {"distance": 6695.407272460815, "timestamp": 2267}, {"distance": 6702.910340728937, "timestamp": 2269}, {"distance": 6709.674453421851, "timestamp": 2271}, {"distance": 6717.314153078963, "timestamp": 2273}, {"distance": 6723.892007153903, "timestamp": 2275}, {"distance": 6731.719591104976, "timestamp": 2277}, {"distance": 6739.2013228247515, "timestamp": 2279}, {"distance": 6745.787298029365, "timestamp": 2281}, {"distance": 6753.285716361872, "timestamp": 2283}, {"distance": 6759.923045669172, "timestamp": 2285}, {"distance": 6767.234352513428, "timestamp": 2287}, {"distance": 6774.597676510725, "timestamp": 2289}, {"distance": 6780.929930577138, "timestamp": 2290}, {"distance": 6788.96764333526, "timestamp": 2293}, {"distance": 6796.083826381807, "timestamp": 2295}, {"distance": 6802.518148844446, "timestamp": 2298}, {"distance": 6808.708515710399, "timestamp": 2302}, {"distance": 6814.93194774115, "timestamp": 2305}, {"distance": 6822.062356363911, "timestamp": 2308}, {"distance": 6828.982828980023, "timestamp": 2312}, {"distance": 6835.322984935276, "timestamp": 2315}, {"distance": 6842.644849798031, "timestamp": 2319}, {"distance": 6849.556704236157, "timestamp": 2322}, {"distance": 6856.032704043495, "timestamp": 2325}, {"distance": 6862.524251184528, "timestamp": 2328}, {"distance": 6869.116822924033, "timestamp": 2331}, {"distance": 6875.603127918079, "timestamp": 2334}, {"distance": 6881.951612955916, "timestamp": 2337}, {"distance": 6888.744198405855, "timestamp": 2340}, {"distance": 6898.351579967241, "timestamp": 2345}, {"distance": 6905.1583113925835, "timestamp": 2348}, {"distance": 6911.63430035012, "timestamp": 2351}, {"distance": 6918.140701283689, "timestamp": 2354}, {"distance": 6924.412377396491, "timestamp": 2358}, {"distance": 6936.216788951955, "timestamp": 2365}, {"distance": 6943.947287381466, "timestamp": 2371}, {"distance": 6946.985525655838, "timestamp": 2382}, {"distance": 6947.775618933354, "timestamp": 2383}, {"distance": 6949.113657457376, "timestamp": 2385}, {"distance": 6951.085010302594, "timestamp": 2387}, {"distance": 6951.448791175319, "timestamp": 2390}, {"distance": 6953.422650196428, "timestamp": 2392}, {"distance": 6956.303844964571, "timestamp": 2394}, {"distance": 6959.439285048791, "timestamp": 2396}, {"distance": 6962.218712093433, "timestamp": 2398}, {"distance": 6967.0745915209, "timestamp": 2411}, {"distance": 6968.811685569361, "timestamp": 2413}, {"distance": 6971.07079500549, "timestamp": 2416}, {"distance": 6972.315540564321, "timestamp": 2417}, {"distance": 6975.246550465478, "timestamp": 2421}, {"distance": 6975.977817720511, "timestamp": 2422}, {"distance": 6977.714912780848, "timestamp": 2425}, {"distance": 6978.246005749267, "timestamp": 2426}, {"distance": 6979.880064657466, "timestamp": 2429}, {"distance": 6981.470004677534, "timestamp": 2434}, {"distance": 6982.573514823842, "timestamp": 2437}, {"distance": 6982.863740368367, "timestamp": 2439}, {"distance": 6982.863740368367, "timestamp": 2441}, {"distance": 6983.008853140501, "timestamp": 2443}, {"distance": 6983.153965912892, "timestamp": 2446}, {"distance": 6983.153965912892, "timestamp": 2448}, {"distance": 6983.702416700879, "timestamp": 2451}, {"distance": 6987.484585507812, "timestamp": 2479}, {"distance": 6991.419455941658, "timestamp": 2567}, {"distance": 6991.419455941658, "timestamp": 2568}, {"distance": 6991.419455941658, "timestamp": 2569}, {"distance": 6991.887309221916, "timestamp": 2571}, {"distance": 6992.032421958756, "timestamp": 2573}, {"distance": 6993.587239202114, "timestamp": 2578}, {"distance": 6994.167690291165, "timestamp": 2581}, {"distance": 6994.635543582291, "timestamp": 2582}, {"distance": 6995.103396870518, "timestamp": 2584}, {"distance": 6995.538735116587, "timestamp": 2586}, {"distance": 6995.974073362657, "timestamp": 2587}, {"distance": 6999.190528290345, "timestamp": 2590}, {"distance": 7010.1075579059525, "timestamp": 2606}, {"distance": 7013.140956827528, "timestamp": 2611}, {"distance": 7024.621412551806, "timestamp": 2627}, {"distance": 7026.166007964534, "timestamp": 2629}, {"distance": 7028.118904350696, "timestamp": 2630}, {"distance": 7030.035063117199, "timestamp": 2631}, {"distance": 7031.438623470353, "timestamp": 2632}, {"distance": 7037.563675129597, "timestamp": 2636}, {"distance": 7046.363411594812, "timestamp": 2639}, {"distance": 7054.572364400266, "timestamp": 2642}, {"distance": 7062.762232147734, "timestamp": 2644}, {"distance": 7085.2434039053105, "timestamp": 2657}, {"distance": 7087.0924531743185, "timestamp": 2658}, {"distance": 7096.469339054427, "timestamp": 2661}, {"distance": 7106.341403555712, "timestamp": 2664}, {"distance": 7116.116422622244, "timestamp": 2667}, {"distance": 7121.3981414869395, "timestamp": 2669}, {"distance": 7131.006034974688, "timestamp": 2672}, {"distance": 7139.791975495689, "timestamp": 2675}, {"distance": 7150.458830221214, "timestamp": 2678}, {"distance": 7158.763683943589, "timestamp": 2681}, {"distance": 7168.793649957431, "timestamp": 2684}, {"distance": 7178.282046967323, "timestamp": 2687}, {"distance": 7188.708363050927, "timestamp": 2690}, {"distance": 7197.978400995699, "timestamp": 2692}, {"distance": 7207.348159744309, "timestamp": 2695}, {"distance": 7217.283731014184, "timestamp": 2698}, {"distance": 7225.979824738037, "timestamp": 2701}, {"distance": 7236.315046497504, "timestamp": 2704}, {"distance": 7246.024172949234, "timestamp": 2707}, {"distance": 7256.195088458795, "timestamp": 2710}, {"distance": 7265.9009732801915, "timestamp": 2713}, {"distance": 7275.711026912415, "timestamp": 2716}, {"distance": 7285.460789647172, "timestamp": 2719}, {"distance": 7294.715656457055, "timestamp": 2722}, {"distance": 7304.350263276543, "timestamp": 2725}, {"distance": 7313.890664058508, "timestamp": 2728}, {"distance": 7323.82658284831, "timestamp": 2731}, {"distance": 7333.118573142137, "timestamp": 2734}, {"distance": 7342.162950189239, "timestamp": 2736}, {"distance": 7351.486236281996, "timestamp": 2739}, {"distance": 7361.018741698899, "timestamp": 2743}, {"distance": 7371.968809127266, "timestamp": 2746}, {"distance": 7381.948072869608, "timestamp": 2749}, {"distance": 7391.306681950468, "timestamp": 2752}, {"distance": 7401.816599965495, "timestamp": 2756}, {"distance": 7411.705643231287, "timestamp": 2759}, {"distance": 7421.601214319738, "timestamp": 2762}, {"distance": 7431.322733666922, "timestamp": 2765}, {"distance": 7441.2599939565725, "timestamp": 2768}, {"distance": 7450.088287725135, "timestamp": 2771}, {"distance": 7459.404234539436, "timestamp": 2774}, {"distance": 7468.254864199888, "timestamp": 2776}, {"distance": 7476.782062666166, "timestamp": 2779}, {"distance": 7485.8908461296805, "timestamp": 2782}, {"distance": 7495.312323478211, "timestamp": 2785}, {"distance": 7503.788333719116, "timestamp": 2787}, {"distance": 7511.910750929999, "timestamp": 2789}, {"distance": 7519.922045231726, "timestamp": 2791}, {"distance": 7527.599983287528, "timestamp": 2793}, {"distance": 7536.052043727952, "timestamp": 2795}, {"distance": 7544.169273373053, "timestamp": 2796}, {"distance": 7552.180567736583, "timestamp": 2798}, {"distance": 7559.85850585688, "timestamp": 2800}, {"distance": 7568.78364631825, "timestamp": 2802}, {"distance": 7576.797897789843, "timestamp": 2804}, {"distance": 7584.926795112551, "timestamp": 2806}, {"distance": 7593.851935842924, "timestamp": 2808}, {"distance": 7601.87406762606, "timestamp": 2809}, {"distance": 7610.480241537562, "timestamp": 2811}, {"distance": 7618.494493133657, "timestamp": 2813}, {"distance": 7625.727989156996, "timestamp": 2815}, {"distance": 7634.634231513838, "timestamp": 2817}, {"distance": 7642.756648971702, "timestamp": 2819}, {"distance": 7650.334946165015, "timestamp": 2821}, {"distance": 7659.241188617967, "timestamp": 2823}, {"distance": 7666.925981932928, "timestamp": 2825}, {"distance": 7675.401993745249, "timestamp": 2827}, {"distance": 7683.08678713348, "timestamp": 2828}, {"distance": 7691.22474855184, "timestamp": 2830}, {"distance": 7699.713176261436, "timestamp": 2832}, {"distance": 7707.766426789842, "timestamp": 2834}, {"distance": 7715.515701624452, "timestamp": 2836}, {"distance": 7724.496423971055, "timestamp": 2838}, {"distance": 7732.2266496566535, "timestamp": 2840}, {"distance": 7740.3505348298395, "timestamp": 2841}, {"distance": 7748.913080511439, "timestamp": 2843}, {"distance": 7756.285021239191, "timestamp": 2845}, {"distance": 7765.760843409414, "timestamp": 2847}, {"distance": 7773.583163425471, "timestamp": 2849}, {"distance": 7781.467172582424, "timestamp": 2851}, {"distance": 7790.142138239521, "timestamp": 2853}, {"distance": 7798.351140845942, "timestamp": 2855}, {"distance": 7807.185576218006, "timestamp": 2857}, {"distance": 7814.529646750712, "timestamp": 2858}, {"distance": 7822.485466826312, "timestamp": 2860}, {"distance": 7831.249513664082, "timestamp": 2862}, {"distance": 7839.265669627207, "timestamp": 2864}, {"distance": 7847.303147784749, "timestamp": 2866}, {"distance": 7855.77076703943, "timestamp": 2868}, {"distance": 7864.391376579063, "timestamp": 2870}, {"distance": 7872.127218131436, "timestamp": 2872}, {"distance": 7879.868883046296, "timestamp": 2873}, {"distance": 7888.294990954217, "timestamp": 2875}, {"distance": 7897.156878986065, "timestamp": 2877}, {"distance": 7905.080078831361, "timestamp": 2879}, {"distance": 7912.516264671223, "timestamp": 2881}, {"distance": 7921.131497537524, "timestamp": 2883}, {"distance": 7929.186495620796, "timestamp": 2885}, {"distance": 7936.94839161384, "timestamp": 2886}, {"distance": 7945.959832459207, "timestamp": 2888}, {"distance": 7952.371222604798, "timestamp": 2890}, {"distance": 7988.840880241314, "timestamp": 2902}, {"distance": 7997.84732332067, "timestamp": 2906}, {"distance": 8006.891987389869, "timestamp": 2909}, {"distance": 8016.572840307524, "timestamp": 2913}, {"distance": 8026.664117318859, "timestamp": 2917}, {"distance": 8035.139660157319, "timestamp": 2920}, {"distance": 8045.538904305316, "timestamp": 2924}, {"distance": 8054.823793786203, "timestamp": 2927}, {"distance": 8063.546460588726, "timestamp": 2931}, {"distance": 8073.465434655661, "timestamp": 2934}, {"distance": 8082.310851232479, "timestamp": 2937}, {"distance": 8092.029502217785, "timestamp": 2941}, {"distance": 8101.122996586357, "timestamp": 2944}, {"distance": 8110.148186766226, "timestamp": 2947}, {"distance": 8119.086304724282, "timestamp": 2950}, {"distance": 8128.43372378941, "timestamp": 2953}, {"distance": 8137.010789611019, "timestamp": 2956}, {"distance": 8145.111319731727, "timestamp": 2959}, {"distance": 8153.725390239929, "timestamp": 2963}, {"distance": 8153.725390239929, "timestamp": 2969}, {"distance": 8175.609222627678, "timestamp": 2975}, {"distance": 8178.9691164414835, "timestamp": 2977}, {"distance": 8178.9691164414835, "timestamp": 2980}, {"distance": 8187.629679019351, "timestamp": 2984}, {"distance": 8190.202858328477, "timestamp": 2986}, {"distance": 8197.036120692348, "timestamp": 2990}, {"distance": 8204.771962937506, "timestamp": 2993}, {"distance": 8213.328230803429, "timestamp": 2996}, {"distance": 8222.046993349188, "timestamp": 3000}, {"distance": 8231.54800705999, "timestamp": 3003}, {"distance": 8240.861734736343, "timestamp": 3006}, {"distance": 8249.938024570614, "timestamp": 3009}, {"distance": 8259.700238540976, "timestamp": 3012}, {"distance": 8269.509828629063, "timestamp": 3015}, {"distance": 8278.753323920277, "timestamp": 3018}, {"distance": 8287.855582763388, "timestamp": 3021}, {"distance": 8297.452693978092, "timestamp": 3025}, {"distance": 8306.270020380649, "timestamp": 3028}, {"distance": 8314.851923418362, "timestamp": 3030}, {"distance": 8323.954194301063, "timestamp": 3033}, {"distance": 8332.821032237656, "timestamp": 3036}, {"distance": 8342.258710710352, "timestamp": 3039}, {"distance": 8351.38744011894, "timestamp": 3042}, {"distance": 8359.10497277212, "timestamp": 3044}, {"distance": 8365.464835051842, "timestamp": 3046}, {"distance": 8372.772257451752, "timestamp": 3048}, {"distance": 8380.856470259709, "timestamp": 3050}, {"distance": 8388.163896523925, "timestamp": 3051}, {"distance": 8395.451840232321, "timestamp": 3053}, {"distance": 8403.678133599513, "timestamp": 3055}, {"distance": 8411.128315089976, "timestamp": 3056}, {"distance": 8418.50395713558, "timestamp": 3058}, {"distance": 8426.446218721758, "timestamp": 3060}, {"distance": 8434.412576147912, "timestamp": 3061}, {"distance": 8442.283904058155, "timestamp": 3063}, {"distance": 8450.226172720255, "timestamp": 3065}, {"distance": 8457.389919881378, "timestamp": 3067}, {"distance": 8465.285564620359, "timestamp": 3068}, {"distance": 8472.731931584945, "timestamp": 3070}, {"distance": 8481.17155712514, "timestamp": 3072}, {"distance": 8489.35914287306, "timestamp": 3074}, {"distance": 8497.017855319136, "timestamp": 3076}, {"distance": 8497.017855319136, "timestamp": 3079}, {"distance": 8515.765598946768, "timestamp": 3081}, {"distance": 8522.022598339208, "timestamp": 3084}, {"distance": 8528.71399884938, "timestamp": 3087}, {"distance": 8536.057229033027, "timestamp": 3091}, {"distance": 8542.298400042286, "timestamp": 3094}, {"distance": 8549.483003878468, "timestamp": 3097}, {"distance": 8556.391653323477, "timestamp": 3100}, {"distance": 8564.169559932085, "timestamp": 3103}, {"distance": 8571.934739074384, "timestamp": 3106}, {"distance": 8580.06961978862, "timestamp": 3110}, {"distance": 8588.705660668193, "timestamp": 3113}, {"distance": 8596.833699143086, "timestamp": 3116}, {"distance": 8604.751052708005, "timestamp": 3119}, {"distance": 8613.314521294888, "timestamp": 3123}, {"distance": 8621.73284634625, "timestamp": 3126}, {"distance": 8630.230293726787, "timestamp": 3129}, {"distance": 8638.213188657339, "timestamp": 3132}, {"distance": 8647.212088397251, "timestamp": 3135}, {"distance": 8656.210988137163, "timestamp": 3138}, {"distance": 8664.847029016737, "timestamp": 3141}, {"distance": 8673.852109272464, "timestamp": 3144}, {"distance": 8683.039318849464, "timestamp": 3147}, {"distance": 8692.049055773157, "timestamp": 3150}, {"distance": 8701.507076222937, "timestamp": 3153}, {"distance": 8710.8920047345, "timestamp": 3156}, {"distance": 8720.418403630892, "timestamp": 3159}, {"distance": 8728.957069809285, "timestamp": 3162}, {"distance": 8738.31231261433, "timestamp": 3165}, {"distance": 8747.528022479024, "timestamp": 3168}, {"distance": 8755.54250588776, "timestamp": 3171}, {"distance": 8764.171228462803, "timestamp": 3174}, {"distance": 8772.757705800215, "timestamp": 3177}, {"distance": 8780.787037319002, "timestamp": 3179}, {"distance": 8788.634042329224, "timestamp": 3182}, {"distance": 8797.52917162995, "timestamp": 3185}, {"distance": 8805.120365493567, "timestamp": 3188}, {"distance": 8814.270300819298, "timestamp": 3191}, {"distance": 8822.526845140881, "timestamp": 3194}, {"distance": 8831.278022593953, "timestamp": 3197}, {"distance": 8840.03824535229, "timestamp": 3200}, {"distance": 8848.405467669636, "timestamp": 3203}, {"distance": 8856.972070113143, "timestamp": 3207}, {"distance": 8865.499365464066, "timestamp": 3210}, {"distance": 8873.967030811984, "timestamp": 3213}, {"distance": 8882.390240879358, "timestamp": 3216}, {"distance": 8892.051015743853, "timestamp": 3219}, {"distance": 8900.796144826207, "timestamp": 3222}, {"distance": 8909.989858974892, "timestamp": 3225}, {"distance": 8918.734986227895, "timestamp": 3228}, {"distance": 8927.893114711742, "timestamp": 3231}, {"distance": 8937.212840808057, "timestamp": 3234}, {"distance": 8946.484127161211, "timestamp": 3237}, {"distance": 8954.95177973548, "timestamp": 3240}, {"distance": 8963.572422666475, "timestamp": 3243}, {"distance": 8972.827490219715, "timestamp": 3246}, {"distance": 8981.529775048744, "timestamp": 3249}, {"distance": 8990.481274562171, "timestamp": 3252}, {"distance": 8999.890113105312, "timestamp": 3255}, {"distance": 9009.135922770181, "timestamp": 3258}, {"distance": 9018.814039733805, "timestamp": 3261}, {"distance": 9028.563714150705, "timestamp": 3264}, {"distance": 9038.063196495745, "timestamp": 3267}, {"distance": 9046.975102105576, "timestamp": 3270}, {"distance": 9055.979355395168, "timestamp": 3273}, {"distance": 9065.29548354916, "timestamp": 3276}, {"distance": 9073.989214962961, "timestamp": 3279}, {"distance": 9083.116443296414, "timestamp": 3282}, {"distance": 9092.021694239076, "timestamp": 3285}, {"distance": 9101.821664602867, "timestamp": 3288}, {"distance": 9111.4020775775, "timestamp": 3291}, {"distance": 9120.10329291015, "timestamp": 3294}, {"distance": 9129.890716239346, "timestamp": 3297}, {"distance": 9139.675591451465, "timestamp": 3300}, {"distance": 9149.217368260122, "timestamp": 3303}, {"distance": 9158.759138730313, "timestamp": 3306}, {"distance": 9168.60912208675, "timestamp": 3309}, {"distance": 9178.490463223263, "timestamp": 3312}, {"distance": 9188.300301909085, "timestamp": 3315}, {"distance": 9198.169729595475, "timestamp": 3318}, {"distance": 9208.077288287132, "timestamp": 3321}, {"distance": 9217.711510734465, "timestamp": 3324}, {"distance": 9226.813270349789, "timestamp": 3327}, {"distance": 9236.464747164127, "timestamp": 3330}, {"distance": 9246.841458661349, "timestamp": 3333}, {"distance": 9256.584650972167, "timestamp": 3336}, {"distance": 9266.412046222507, "timestamp": 3339}, {"distance": 9275.598636017463, "timestamp": 3342}, {"distance": 9285.332755607995, "timestamp": 3345}, {"distance": 9294.627294913556, "timestamp": 3348}, {"distance": 9303.803783456251, "timestamp": 3350}, {"distance": 9312.756926344284, "timestamp": 3353}, {"distance": 9321.435756914501, "timestamp": 3356}, {"distance": 9328.246726574964, "timestamp": 3358}, {"distance": 9337.115539362412, "timestamp": 3360}, {"distance": 9345.152823442262, "timestamp": 3362}, {"distance": 9352.742029775321, "timestamp": 3364}, {"distance": 9361.953086111904, "timestamp": 3366}, {"distance": 9369.852925277073, "timestamp": 3368}, {"distance": 9377.77326980491, "timestamp": 3370}, {"distance": 9386.194876809072, "timestamp": 3373}, {"distance": 9393.820669181106, "timestamp": 3375}, {"distance": 9401.583346309826, "timestamp": 3377}, {"distance": 9409.346026663728, "timestamp": 3379}, {"distance": 9417.942308324222, "timestamp": 3381}, {"distance": 9425.997164941504, "timestamp": 3383}, {"distance": 9433.876056424218, "timestamp": 3385}, {"distance": 9442.200976576867, "timestamp": 3387}, {"distance": 9450.390699695954, "timestamp": 3389}, {"distance": 9458.540320460104, "timestamp": 3391}, {"distance": 9467.50243979089, "timestamp": 3393}, {"distance": 9475.692174976502, "timestamp": 3395}, {"distance": 9482.870644257853, "timestamp": 3397}, {"distance": 9492.168749622813, "timestamp": 3399}, {"distance": 9500.223640533057, "timestamp": 3401}, {"distance": 9508.237754274163, "timestamp": 3403}, {"distance": 9517.066104688658, "timestamp": 3405}, {"distance": 9525.121007404552, "timestamp": 3407}, {"distance": 9533.839457042752, "timestamp": 3410}, {"distance": 9541.492056119127, "timestamp": 3412}, {"distance": 9549.777577405148, "timestamp": 3414}, {"distance": 9557.296898795068, "timestamp": 3416}, {"distance": 9565.217327707229, "timestamp": 3418}, {"distance": 9573.677843718187, "timestamp": 3420}, {"distance": 9582.128863487284, "timestamp": 3422}, {"distance": 9589.210497566955, "timestamp": 3424}, {"distance": 9597.40029136124, "timestamp": 3426}, {"distance": 9605.851612964958, "timestamp": 3428}, {"distance": 9613.614387549858, "timestamp": 3430}, {"distance": 9622.036110017743, "timestamp": 3433}, {"distance": 9629.936069985313, "timestamp": 3435}, {"distance": 9637.991024139965, "timestamp": 3437}, {"distance": 9646.166173099155, "timestamp": 3439}, {"distance": 9654.79270960996, "timestamp": 3441}, {"distance": 9662.830142111909, "timestamp": 3443}, {"distance": 9670.867577980913, "timestamp": 3445}, {"distance": 9679.042741136964, "timestamp": 3447}, {"distance": 9687.080183738586, "timestamp": 3449}, {"distance": 9694.708026358203, "timestamp": 3451}, {"distance": 9702.883199227885, "timestamp": 3453}, {"distance": 9711.542317402029, "timestamp": 3455}, {"distance": 9719.030817956074, "timestamp": 3457}, {"distance": 9750.920647280791, "timestamp": 3469}, {"distance": 9753.138763648047, "timestamp": 3470}, {"distance": 9761.974701191457, "timestamp": 3474}, {"distance": 9771.19009083912, "timestamp": 3478}, {"distance": 9780.26613721881, "timestamp": 3482}, {"distance": 9788.166158948316, "timestamp": 3485}, {"distance": 9797.127048900575, "timestamp": 3488}, {"distance": 9806.338329274711, "timestamp": 3491}, {"distance": 9815.2057182925, "timestamp": 3494}, {"distance": 9824.56065539955, "timestamp": 3498}, {"distance": 9833.598678117236, "timestamp": 3501}, {"distance": 9843.498864280424, "timestamp": 3504}, {"distance": 9852.864578338385, "timestamp": 3507}, {"distance": 9862.66226253809, "timestamp": 3510}, {"distance": 9871.825910178983, "timestamp": 3513}, {"distance": 9881.55913724591, "timestamp": 3516}, {"distance": 9891.097541037601, "timestamp": 3520}, {"distance": 9900.858075921828, "timestamp": 3523}, {"distance": 9909.686602212738, "timestamp": 3526}, {"distance": 9919.113672912976, "timestamp": 3529}, {"distance": 9928.168601212601, "timestamp": 3532}, {"distance": 9937.972763782498, "timestamp": 3535}, {"distance": 9947.162789131075, "timestamp": 3538}, {"distance": 9956.058194432564, "timestamp": 3541}, {"distance": 9964.821752446655, "timestamp": 3544}, {"distance": 9974.227879874295, "timestamp": 3547}, {"distance": 9983.507891701816, "timestamp": 3550}, {"distance": 9992.697941140428, "timestamp": 3553}, {"distance": 10002.334233014375, "timestamp": 3556}, {"distance": 10011.254433331722, "timestamp": 3559}, {"distance": 10020.28384569737, "timestamp": 3562}, {"distance": 10029.069614055114, "timestamp": 3565}, {"distance": 10038.618627503329, "timestamp": 3568}, {"distance": 10047.648055341842, "timestamp": 3572}, {"distance": 10056.703052620882, "timestamp": 3576}, {"distance": 10065.198789569129, "timestamp": 3579}, {"distance": 10073.348686195619, "timestamp": 3582}, {"distance": 10081.711981653498, "timestamp": 3585}, {"distance": 10091.338824185576, "timestamp": 3589}, {"distance": 10101.220512403153, "timestamp": 3592}, {"distance": 10110.8854238334, "timestamp": 3595}, {"distance": 10120.196654137804, "timestamp": 3598}, {"distance": 10129.320196956725, "timestamp": 3601}, {"distance": 10138.506162844491, "timestamp": 3604}, {"distance": 10147.1972120049, "timestamp": 3607}, {"distance": 10156.011017512556, "timestamp": 3610}, {"distance": 10164.885791143744, "timestamp": 3613}, {"distance": 10173.823030369875, "timestamp": 3616}, {"distance": 10182.514100947481, "timestamp": 3619}, {"distance": 10192.301850695003, "timestamp": 3622}, {"distance": 10201.66938159051, "timestamp": 3625}, {"distance": 10210.639555831398, "timestamp": 3628}, {"distance": 10219.955350726335, "timestamp": 3632}, {"distance": 10229.088329793938, "timestamp": 3635}, {"distance": 10238.17286812759, "timestamp": 3638}, {"distance": 10247.187701806919, "timestamp": 3641}, {"distance": 10255.931950810556, "timestamp": 3644}, {"distance": 10265.707505423445, "timestamp": 3647}, {"distance": 10274.9134078656, "timestamp": 3650}, {"distance": 10284.11931590019, "timestamp": 3653}, {"distance": 10293.385983242024, "timestamp": 3656}, {"distance": 10302.505709518873, "timestamp": 3659}, {"distance": 10312.247350011115, "timestamp": 3663}, {"distance": 10321.796794967622, "timestamp": 3666}, {"distance": 10331.067519417682, "timestamp": 3669}, {"distance": 10340.338248656057, "timestamp": 3672}, {"distance": 10349.518783054007, "timestamp": 3675}, {"distance": 10358.612038762047, "timestamp": 3678}, {"distance": 10388.535466223466, "timestamp": 3692}, {"distance": 10396.02571522025, "timestamp": 3695}, {"distance": 10405.34202067805, "timestamp": 3699}, {"distance": 10415.091852904185, "timestamp": 3702}, {"distance": 10424.175328093479, "timestamp": 3705}, {"distance": 10433.998360388781, "timestamp": 3708}, {"distance": 10443.858590695609, "timestamp": 3711}, {"distance": 10454.212288919301, "timestamp": 3715}, {"distance": 10464.529044732766, "timestamp": 3718}, {"distance": 10474.597592610573, "timestamp": 3721}, {"distance": 10484.457839515635, "timestamp": 3724}, {"distance": 10494.738040277409, "timestamp": 3727}, {"distance": 10504.98206120536, "timestamp": 3730}, {"distance": 10516.638809062757, "timestamp": 3733}, {"distance": 10533.70475232417, "timestamp": 3739}, {"distance": 10542.481685571198, "timestamp": 3742}, {"distance": 10551.265314165317, "timestamp": 3745}, {"distance": 10560.729212939896, "timestamp": 3748}, {"distance": 10570.879394620048, "timestamp": 3751}, {"distance": 10581.11859145152, "timestamp": 3754}, {"distance": 10590.458965289785, "timestamp": 3757}, {"distance": 10601.031454683014, "timestamp": 3760}, {"distance": 10609.945976331477, "timestamp": 3763}, {"distance": 10619.293396513303, "timestamp": 3766}, {"distance": 10629.10542760748, "timestamp": 3769}, {"distance": 10638.509028899072, "timestamp": 3772}, {"distance": 10647.4897771166, "timestamp": 3775}, {"distance": 10656.460842980143, "timestamp": 3778}, {"distance": 10665.39218889356, "timestamp": 3781}, {"distance": 10673.973861996123, "timestamp": 3784}, {"distance": 10683.217013157077, "timestamp": 3787}, {"distance": 10691.780252823717, "timestamp": 3789}, {"distance": 10701.121754467616, "timestamp": 3792}, {"distance": 10710.469174882617, "timestamp": 3795}, {"distance": 10719.814059157456, "timestamp": 3798}, {"distance": 10728.728581621037, "timestamp": 3801}, {"distance": 10738.448441434011, "timestamp": 3804}, {"distance": 10747.386568232065, "timestamp": 3807}, {"distance": 10756.7609988508, "timestamp": 3809}, {"distance": 10765.817071814561, "timestamp": 3812}, {"distance": 10775.508438943474, "timestamp": 3815}, {"distance": 10784.433591550507, "timestamp": 3818}, {"distance": 10794.231925096357, "timestamp": 3821}, {"distance": 10803.146448070955, "timestamp": 3824}, {"distance": 10811.818795240473, "timestamp": 3827}, {"distance": 10820.89755349297, "timestamp": 3829}, {"distance": 10828.534869278921, "timestamp": 3832}, {"distance": 10838.142194513695, "timestamp": 3835}, {"distance": 10847.153920825984, "timestamp": 3838}, {"distance": 10856.542495554388, "timestamp": 3841}, {"distance": 10865.73381058844, "timestamp": 3843}, {"distance": 10874.568758327845, "timestamp": 3846}, {"distance": 10883.125821103828, "timestamp": 3849}, {"distance": 10891.521056372392, "timestamp": 3852}, {"distance": 10899.731913724841, "timestamp": 3855}, {"distance": 10909.521131706944, "timestamp": 3858}, {"distance": 10919.621553898845, "timestamp": 3861}, {"distance": 10928.455186239915, "timestamp": 3863}, {"distance": 10938.33193410536, "timestamp": 3866}, {"distance": 10947.407290850608, "timestamp": 3869}, {"distance": 10957.504533920537, "timestamp": 3872}, {"distance": 10966.648425181722, "timestamp": 3875}, {"distance": 10975.88048279788, "timestamp": 3878}, {"distance": 10991.412718857977, "timestamp": 3883}, {"distance": 11000.443657781796, "timestamp": 3886}, {"distance": 11009.785323937322, "timestamp": 3889}, {"distance": 11019.023782813543, "timestamp": 3892}, {"distance": 11027.962469595956, "timestamp": 3895}, {"distance": 11037.160450163332, "timestamp": 3897}, {"distance": 11046.314401214262, "timestamp": 3900}, {"distance": 11055.21006596294, "timestamp": 3903}, {"distance": 11063.90448493241, "timestamp": 3906}, {"distance": 11073.024677017685, "timestamp": 3908}, {"distance": 11082.242544767212, "timestamp": 3911}, {"distance": 11091.460417739816, "timestamp": 3914}, {"distance": 11100.580624933582, "timestamp": 3917}, {"distance": 11108.428209282214, "timestamp": 3919}, {"distance": 11117.513475303389, "timestamp": 3922}, {"distance": 11126.575684544237, "timestamp": 3925}, {"distance": 11135.866363603312, "timestamp": 3927}, {"distance": 11144.58615348536, "timestamp": 3930}, {"distance": 11153.246611900839, "timestamp": 3933}, {"distance": 11163.022595851362, "timestamp": 3936}, {"distance": 11171.960849198002, "timestamp": 3938}, {"distance": 11181.038294447459, "timestamp": 3941}, {"distance": 11189.71872474867, "timestamp": 3944}, {"distance": 11199.10480597505, "timestamp": 3946}, {"distance": 11207.557616244265, "timestamp": 3949}, {"distance": 11217.2109306872, "timestamp": 3952}, {"distance": 11227.15746027129, "timestamp": 3955}, {"distance": 11236.201379873684, "timestamp": 3958}, {"distance": 11245.140362421627, "timestamp": 3961}, {"distance": 11254.02995785998, "timestamp": 3963}, {"distance": 11263.91806009804, "timestamp": 3966}, {"distance": 11272.457788087133, "timestamp": 3969}, {"distance": 11281.396074348675, "timestamp": 3972}, {"distance": 11291.169387846488, "timestamp": 3975}, {"distance": 11291.169387846488, "timestamp": 3982}, {"distance": 11315.740323026686, "timestamp": 3989}, {"distance": 11316.718296518402, "timestamp": 3991}, {"distance": 11317.29234437972, "timestamp": 3993}, {"distance": 11317.582670508184, "timestamp": 3994}, {"distance": 11318.11381856173, "timestamp": 3995}, {"distance": 11318.845246010775, "timestamp": 3998}, {"distance": 11318.9904090984, "timestamp": 3999}, {"distance": 11319.498479905478, "timestamp": 4002}, {"distance": 11319.86228085206, "timestamp": 4004}, {"distance": 11320.307060558305, "timestamp": 4005}, {"distance": 11323.610901033098, "timestamp": 4007}, {"distance": 11328.73350890811, "timestamp": 4009}, {"distance": 11334.351108008841, "timestamp": 4010}, {"distance": 11340.393804863676, "timestamp": 4011}, {"distance": 11347.33530786925, "timestamp": 4013}, {"distance": 11354.4380735371, "timestamp": 4014}, {"distance": 11362.282321806388, "timestamp": 4016}, {"distance": 11370.024237524422, "timestamp": 4018}, {"distance": 11377.786460962612, "timestamp": 4019}, {"distance": 11384.488178569507, "timestamp": 4021}, {"distance": 11392.057984324452, "timestamp": 4022}, {"distance": 11400.96854341055, "timestamp": 4024}, {"distance": 11408.410695639815, "timestamp": 4026}, {"distance": 11415.471018218153, "timestamp": 4027}, {"distance": 11426.53350964149, "timestamp": 4030}, {"distance": 11434.81162631319, "timestamp": 4032}, {"distance": 11442.730406229017, "timestamp": 4034}, {"distance": 11451.45724667468, "timestamp": 4037}, {"distance": 11460.367812890612, "timestamp": 4040}, {"distance": 11468.344422260197, "timestamp": 4042}, {"distance": 11477.615739958508, "timestamp": 4045}, {"distance": 11486.13249724171, "timestamp": 4048}, {"distance": 11494.91917734597, "timestamp": 4051}, {"distance": 11503.838292512633, "timestamp": 4054}, {"distance": 11513.019374256015, "timestamp": 4057}, {"distance": 11521.343887082912, "timestamp": 4059}, {"distance": 11529.813220986194, "timestamp": 4062}, {"distance": 11538.261977191743, "timestamp": 4065}, {"distance": 11546.639697920093, "timestamp": 4067}, {"distance": 11555.373917618397, "timestamp": 4070}, {"distance": 11564.034734089651, "timestamp": 4073}, {"distance": 11573.067963547972, "timestamp": 4076}, {"distance": 11581.957387010832, "timestamp": 4079}, {"distance": 11590.67884914143, "timestamp": 4082}, {"distance": 11600.187389816783, "timestamp": 4085}, {"distance": 11609.768514772175, "timestamp": 4088}, {"distance": 11619.722502861778, "timestamp": 4091}, {"distance": 11628.298987842467, "timestamp": 4094}, {"distance": 11637.81388700735, "timestamp": 4097}, {"distance": 11647.43621447158, "timestamp": 4100}, {"distance": 11656.663257525863, "timestamp": 4103}, {"distance": 11665.924275189318, "timestamp": 4106}, {"distance": 11676.447725542714, "timestamp": 4110}, {"distance": 11685.85324714827, "timestamp": 4112}, {"distance": 11696.53238824479, "timestamp": 4116}, {"distance": 11705.684076168873, "timestamp": 4118}, {"distance": 11714.840490869916, "timestamp": 4121}, {"distance": 11724.535082966835, "timestamp": 4124}, {"distance": 11733.836495808611, "timestamp": 4127}, {"distance": 11742.54659529029, "timestamp": 4130}, {"distance": 11751.184110609804, "timestamp": 4133}, {"distance": 11760.26802677518, "timestamp": 4136}, {"distance": 11769.229746268104, "timestamp": 4139}, {"distance": 11778.129585116361, "timestamp": 4142}, {"distance": 11786.941302922944, "timestamp": 4145}, {"distance": 11796.094987810939, "timestamp": 4148}, {"distance": 11805.62295556178, "timestamp": 4151}, {"distance": 11815.60968724328, "timestamp": 4154}, {"distance": 11825.208440761511, "timestamp": 4157}, {"distance": 11836.429682871758, "timestamp": 4161}, {"distance": 11848.29849841993, "timestamp": 4165}, {"distance": 11857.49015368795, "timestamp": 4168}, {"distance": 11866.722750300678, "timestamp": 4171}, {"distance": 11876.905124353934, "timestamp": 4174}, {"distance": 11887.576249885733, "timestamp": 4178}, {"distance": 11897.876349123968, "timestamp": 4181}, {"distance": 11907.371616804117, "timestamp": 4184}, {"distance": 11917.776788527157, "timestamp": 4187}, {"distance": 11927.849835784464, "timestamp": 4190}, {"distance": 11938.321392396518, "timestamp": 4193}, {"distance": 11947.551074068926, "timestamp": 4196}, {"distance": 11958.0795885806, "timestamp": 4199}, {"distance": 11968.090996950501, "timestamp": 4202}, {"distance": 11978.696824118, "timestamp": 4205}, {"distance": 11989.302658868763, "timestamp": 4208}, {"distance": 11998.552572212804, "timestamp": 4211}, {"distance": 12009.198294866339, "timestamp": 4215}, {"distance": 12038.069802083515, "timestamp": 4227}, {"distance": 12045.850497003164, "timestamp": 4230}, {"distance": 12055.599979521094, "timestamp": 4234}, {"distance": 12065.234221368559, "timestamp": 4237}, {"distance": 12075.782779330286, "timestamp": 4241}, {"distance": 12085.706626376645, "timestamp": 4244}, {"distance": 12095.844147245738, "timestamp": 4247}, {"distance": 12105.981675243493, "timestamp": 4250}, {"distance": 12116.358798840694, "timestamp": 4254}, {"distance": 12146.939364015396, "timestamp": 4267}, {"distance": 12155.137382497081, "timestamp": 4271}, {"distance": 12164.04392639864, "timestamp": 4274}, {"distance": 12173.461199345567, "timestamp": 4277}, {"distance": 12183.65330580542, "timestamp": 4281}, {"distance": 12193.222937117305, "timestamp": 4284}, {"distance": 12203.104621203223, "timestamp": 4287}, {"distance": 12212.632153998718, "timestamp": 4290}, {"distance": 12222.513850574192, "timestamp": 4294}, {"distance": 12233.337772756471, "timestamp": 4297}, {"distance": 12243.114417275508, "timestamp": 4300}, {"distance": 12253.317234541304, "timestamp": 4303}, {"distance": 12264.286435421955, "timestamp": 4307}, {"distance": 12275.00276063552, "timestamp": 4310}, {"distance": 12286.158566134956, "timestamp": 4314}, {"distance": 12295.81438335133, "timestamp": 4317}, {"distance": 12306.318185201122, "timestamp": 4320}, {"distance": 12316.794948500927, "timestamp": 4324}, {"distance": 12326.782784142491, "timestamp": 4327}, {"distance": 12337.606783339861, "timestamp": 4331}, {"distance": 12347.188722480038, "timestamp": 4334}, {"distance": 12358.121234423159, "timestamp": 4337}, {"distance": 12368.32413183254, "timestamp": 4341}, {"distance": 12378.690722593123, "timestamp": 4344}, {"distance": 12388.218369521694, "timestamp": 4348}, {"distance": 12397.9096971387, "timestamp": 4351}, {"distance": 12406.881203953197, "timestamp": 4354}, {"distance": 12416.515700662023, "timestamp": 4357}, {"distance": 12426.33307050761, "timestamp": 4360}, {"distance": 12436.082834610741, "timestamp": 4363}, {"distance": 12446.506352807319, "timestamp": 4367}, {"distance": 12455.940517402218, "timestamp": 4370}, {"distance": 12465.667201266124, "timestamp": 4373}, {"distance": 12475.636618757906, "timestamp": 4376}, {"distance": 12486.153651165067, "timestamp": 4380}, {"distance": 12495.575248111703, "timestamp": 4383}, {"distance": 12505.424512360729, "timestamp": 4386}, {"distance": 12515.88419973508, "timestamp": 4389}, {"distance": 12527.008046006385, "timestamp": 4393}, {"distance": 12532.665959523538, "timestamp": 4395}, {"distance": 12542.271196867088, "timestamp": 4399}, {"distance": 12552.310177403722, "timestamp": 4402}, {"distance": 12562.663121623058, "timestamp": 4406}, {"distance": 12572.419162882237, "timestamp": 4409}, {"distance": 12581.5817082794, "timestamp": 4412}, {"distance": 12591.525301036376, "timestamp": 4415}, {"distance": 12601.345154454344, "timestamp": 4418}, {"distance": 12611.485760243155, "timestamp": 4421}, {"distance": 12620.391693510606, "timestamp": 4424}, {"distance": 12630.681633423412, "timestamp": 4427}, {"distance": 12641.390331041532, "timestamp": 4430}, {"distance": 12650.360249179212, "timestamp": 4433}, {"distance": 12659.862431444337, "timestamp": 4436}, {"distance": 12669.901488301275, "timestamp": 4439}, {"distance": 12680.235417327136, "timestamp": 4442}, {"distance": 12689.840745119393, "timestamp": 4445}, {"distance": 12699.80943364445, "timestamp": 4448}, {"distance": 12710.143384232872, "timestamp": 4451}, {"distance": 12720.172954041103, "timestamp": 4455}, {"distance": 12729.843377921425, "timestamp": 4458}, {"distance": 12739.513808357511, "timestamp": 4461}, {"distance": 12749.263757925466, "timestamp": 4464}, {"distance": 12758.955281778506, "timestamp": 4467}, {"distance": 12768.980354716377, "timestamp": 4470}, {"distance": 12778.744973487068, "timestamp": 4473}, {"distance": 12788.417874503115, "timestamp": 4476}, {"distance": 12797.67788684918, "timestamp": 4479}, {"distance": 12808.240175416482, "timestamp": 4482}, {"distance": 12818.049387399604, "timestamp": 4485}, {"distance": 12827.79221857712, "timestamp": 4488}, {"distance": 12838.349968456121, "timestamp": 4491}, {"distance": 12847.996056751936, "timestamp": 4494}, {"distance": 12857.656704413032, "timestamp": 4497}, {"distance": 12868.307893860323, "timestamp": 4500}, {"distance": 12878.733769336059, "timestamp": 4504}, {"distance": 12889.05002752631, "timestamp": 4507}, {"distance": 12899.607813773444, "timestamp": 4510}, {"distance": 12909.413282509273, "timestamp": 4513}, {"distance": 12918.963882581082, "timestamp": 4516}, {"distance": 12929.377781242008, "timestamp": 4519}, {"distance": 12938.596379670898, "timestamp": 4522}, {"distance": 12948.928641508586, "timestamp": 4526}, {"distance": 12958.968827949919, "timestamp": 4529}, {"distance": 12968.859101388862, "timestamp": 4532}, {"distance": 12979.051668607146, "timestamp": 4535}, {"distance": 12989.039905011914, "timestamp": 4539}, {"distance": 12999.352117671604, "timestamp": 4542}, {"distance": 13009.555424557326, "timestamp": 4545}, {"distance": 13019.758738477256, "timestamp": 4548}, {"distance": 13030.368818359944, "timestamp": 4551}, {"distance": 13039.735365969576, "timestamp": 4554}, {"distance": 13049.830700284696, "timestamp": 4558}, {"distance": 13060.440801240855, "timestamp": 4561}, {"distance": 13071.05090968212, "timestamp": 4564}, {"distance": 13080.933121497084, "timestamp": 4567}, {"distance": 13090.815339769068, "timestamp": 4570}, {"distance": 13100.69756449715, "timestamp": 4573}, {"distance": 13112.36049731239, "timestamp": 4577}, {"distance": 13122.948895745327, "timestamp": 4580}, {"distance": 13133.665796426742, "timestamp": 4583}, {"distance": 13143.24822523062, "timestamp": 4586}, {"distance": 13153.025401432393, "timestamp": 4589}, {"distance": 13163.320972158754, "timestamp": 4592}, {"distance": 13173.668374571149, "timestamp": 4595}, {"distance": 13183.035012050525, "timestamp": 4598}, {"distance": 13192.605196005596, "timestamp": 4601}, {"distance": 13202.987220925681, "timestamp": 4605}, {"distance": 13238.643456574402, "timestamp": 4621}, {"distance": 13246.951944435876, "timestamp": 4624}, {"distance": 13256.369794078137, "timestamp": 4628}, {"distance": 13266.783897243406, "timestamp": 4631}, {"distance": 13276.872477144323, "timestamp": 4634}, {"distance": 13286.997151552225, "timestamp": 4637}, {"distance": 13296.981091024209, "timestamp": 4641}, {"distance": 13306.448025564481, "timestamp": 4644}, {"distance": 13316.668047049543, "timestamp": 4647}, {"distance": 13326.708461827693, "timestamp": 4650}, {"distance": 13336.500415214368, "timestamp": 4653}, {"distance": 13346.277722254763, "timestamp": 4656}, {"distance": 13356.107450833499, "timestamp": 4659}, {"distance": 13365.290027685942, "timestamp": 4663}, {"distance": 13374.993617184673, "timestamp": 4666}, {"distance": 13374.993617184673, "timestamp": 4670}, {"distance": 13394.7665458164, "timestamp": 4674}, {"distance": 13402.33282149221, "timestamp": 4677}, {"distance": 13411.587183714842, "timestamp": 4680}, {"distance": 13420.586376228131, "timestamp": 4684}, {"distance": 13429.183012430929, "timestamp": 4687}, {"distance": 13439.779612122931, "timestamp": 4691}, {"distance": 13448.440711737034, "timestamp": 4695}, {"distance": 13458.786667155804, "timestamp": 4698}, {"distance": 13467.305818826493, "timestamp": 4702}, {"distance": 13477.4585007036, "timestamp": 4705}, {"distance": 13487.396244397765, "timestamp": 4709}, {"distance": 13497.679505262813, "timestamp": 4712}, {"distance": 13508.425650654777, "timestamp": 4716}, {"distance": 13518.203071690423, "timestamp": 4719}, {"distance": 13527.89515042861, "timestamp": 4723}, {"distance": 13536.662673359648, "timestamp": 4726}, {"distance": 13545.976228935313, "timestamp": 4729}, {"distance": 13572.922581021423, "timestamp": 4741}, {"distance": 13575.569755811266, "timestamp": 4742}, {"distance": 13585.762718822407, "timestamp": 4746}, {"distance": 13585.762718822407, "timestamp": 4748}, {"distance": 13596.972966291287, "timestamp": 4750}, {"distance": 13607.372747606942, "timestamp": 4753}, {"distance": 13617.668628882842, "timestamp": 4757}, {"distance": 13617.668628882842, "timestamp": 4759}, {"distance": 13629.341108990126, "timestamp": 4761}, {"distance": 13640.415483719646, "timestamp": 4764}, {"distance": 13649.444911124567, "timestamp": 4767}, {"distance": 13660.764692019045, "timestamp": 4771}, {"distance": 13670.515376783527, "timestamp": 4774}, {"distance": 13680.246083562208, "timestamp": 4778}, {"distance": 13689.616071051181, "timestamp": 4781}, {"distance": 13699.469301582538, "timestamp": 4785}, {"distance": 13709.137045328824, "timestamp": 4788}, {"distance": 13717.852797625279, "timestamp": 4791}, {"distance": 13727.582235716907, "timestamp": 4795}, {"distance": 13727.582235716907, "timestamp": 4797}, {"distance": 13741.665329544432, "timestamp": 4800}, {"distance": 13750.828900379189, "timestamp": 4804}, {"distance": 13759.468267622158, "timestamp": 4807}, {"distance": 13768.898708237268, "timestamp": 4810}, {"distance": 13778.63041013604, "timestamp": 4814}, {"distance": 13788.394502243089, "timestamp": 4817}, {"distance": 13797.23024380038, "timestamp": 4820}, {"distance": 13806.531995842264, "timestamp": 4824}, {"distance": 13815.333435363395, "timestamp": 4827}, {"distance": 13823.804982656942, "timestamp": 4830}, {"distance": 13846.107080277958, "timestamp": 4843}, {"distance": 13846.107080277958, "timestamp": 4844}, {"distance": 13848.285103154896, "timestamp": 4845}, {"distance": 13849.66553459599, "timestamp": 4846}, {"distance": 13850.977445513772, "timestamp": 4848}, {"distance": 13852.611837612885, "timestamp": 4849}, {"distance": 13854.68674726869, "timestamp": 4851}, {"distance": 13860.39811182114, "timestamp": 4855}, {"distance": 13862.247366591546, "timestamp": 4857}, {"distance": 13864.163806926177, "timestamp": 4859}, {"distance": 13864.163806926177, "timestamp": 4861}, {"distance": 13869.4126728414, "timestamp": 4864}, {"distance": 13870.711068714563, "timestamp": 4866}, {"distance": 13875.057383408524, "timestamp": 4869}, {"distance": 13880.643972710686, "timestamp": 4872}, {"distance": 13880.643972710686, "timestamp": 4874}, {"distance": 13887.063063586736, "timestamp": 4875}], "nearest_teammate_weight": ["/nearestMeasurement/WEIGHT/4034650/1530351061000"], "notes": "Fartlek - \n from speedcoach2v2.15 via rowsandall.com", "calories": [], "uri": "/fitnessActivities/1189208384", "nearest_weight": "/nearestMeasurement/WEIGHT/4034650/1530351061000", "nearest_teammate_strength_training_activities": ["/nearestStrengthTrainingActivity/4034650/1530351061000"], "is_live": false, "nearest_teammate_sleep": ["/nearestMeasurement/SLEEP/4034650/1530351061000"], "activity": "https://runkeeper.com/user/194520700/activity/1189208384", "climb": 228.272727272727, "share_map": "Friends"}
\ No newline at end of file
diff --git a/rowers/testdata/rkworkoutslist.txt b/rowers/testdata/rkworkoutslist.txt
new file mode 100644
index 00000000..78c3ec52
--- /dev/null
+++ b/rowers/testdata/rkworkoutslist.txt
@@ -0,0 +1 @@
+{"items": [{"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 57.9949499047737, "start_time": "Mon, 2 Jul 2018 19:24:05", "uri": "/fitnessActivities/1190435532", "source": "tapiriik", "total_distance": 1328, "duration": 372, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 72, "start_time": "Mon, 2 Jul 2018 19:24:05", "uri": "/fitnessActivities/1190937474", "source": "Rowingdata", "total_distance": 1328, "duration": 372, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 90.9303535543983, "start_time": "Mon, 2 Jul 2018 19:11:05", "uri": "/fitnessActivities/1190435828", "source": "tapiriik", "total_distance": 2149, "duration": 584, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 80.9065350523387, "start_time": "Mon, 2 Jul 2018 19:01:05", "uri": "/fitnessActivities/1190762802", "source": "tapiriik", "total_distance": 2058, "duration": 515, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 85.9184443033685, "start_time": "Mon, 2 Jul 2018 18:50:05", "uri": "/fitnessActivities/1190762872", "source": "tapiriik", "total_distance": 2136, "duration": 553, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 78.9972362900416, "start_time": "Mon, 2 Jul 2018 18:40:04", "uri": "/fitnessActivities/1190763716", "source": "tapiriik", "total_distance": 2001, "duration": 507, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 146.061355315726, "start_time": "Mon, 2 Jul 2018 18:21:02", "uri": "/fitnessActivities/1190763798", "source": "tapiriik", "total_distance": 2858, "duration": 939, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 232, "start_time": "Sun, 1 Jul 2018 15:17:47", "uri": "/fitnessActivities/1189761584", "source": "tapiriik", "total_distance": 9928.9, "duration": 2322, "type": "Cycling", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 346, "start_time": "Sun, 1 Jul 2018 13:54:46", "uri": "/fitnessActivities/1189762696", "source": "tapiriik", "total_distance": 12879.1, "duration": 3384, "type": "Cycling", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 757.036959250791, "start_time": "Sat, 30 Jun 2018 09:31:01", "uri": "/fitnessActivities/1189208384", "source": "tapiriik", "total_distance": 13877.95, "duration": 4875, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 212.886811996124, "start_time": "Tue, 26 Jun 2018 17:44:06", "uri": "/fitnessActivities/1187401083", "source": "tapiriik", "total_distance": 3684, "duration": 1370, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 211, "start_time": "Tue, 26 Jun 2018 17:44:06", "uri": "/fitnessActivities/1190938202", "source": "Rowingdata", "total_distance": 3684, "duration": 1370, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 211, "start_time": "Tue, 26 Jun 2018 17:44:06", "uri": "/fitnessActivities/1190939120", "source": "Rowingdata", "total_distance": 3684, "duration": 1370, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 56, "start_time": "Tue, 26 Jun 2018 17:38:08", "uri": "/fitnessActivities/1190939515", "source": "Rowingdata", "total_distance": 1056, "duration": 312, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 56, "start_time": "Tue, 26 Jun 2018 17:38:08", "uri": "/fitnessActivities/1190940013", "source": "Rowingdata", "total_distance": 1056, "duration": 312, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 48.9257807838626, "start_time": "Tue, 26 Jun 2018 17:38:08", "uri": "/fitnessActivities/1187526405", "source": "tapiriik", "total_distance": 1056, "duration": 312, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 293.077360012601, "start_time": "Tue, 26 Jun 2018 17:06:04", "uri": "/fitnessActivities/1188044924", "source": "tapiriik", "total_distance": 5651, "duration": 1884, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 522.909198524112, "start_time": "Mon, 25 Jun 2018 14:56:15", "uri": "/fitnessActivities/1186886836", "source": "tapiriik", "total_distance": 0, "duration": 0, "type": "Rowing", "has_path": false}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 537.944926277202, "start_time": "Sun, 24 Jun 2018 09:34:07", "uri": "/fitnessActivities/1186093264", "source": "tapiriik", "total_distance": 10194, "duration": 3463, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 572, "start_time": "Sun, 24 Jun 2018 09:34:01", "uri": "/fitnessActivities/1190945018", "source": "Rowingdata", "total_distance": 10194, "duration": 3469, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 642.399617590822, "start_time": "Sat, 23 Jun 2018 08:57:48", "uri": "/fitnessActivities/1185350128", "source": "tapiriik", "total_distance": 0, "duration": 4139, "type": "Rowing", "has_path": false}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 524.102510250548, "start_time": "Fri, 22 Jun 2018 12:45:04", "uri": "/fitnessActivities/1185020627", "source": "tapiriik", "total_distance": 7538, "duration": 3374, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 157.994472580083, "start_time": "Fri, 22 Jun 2018 08:33:02", "uri": "/fitnessActivities/1184944230", "source": "tapiriik", "total_distance": 3344, "duration": 1014, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 472.074118977952, "start_time": "Fri, 22 Jun 2018 07:41:04", "uri": "/fitnessActivities/1184944424", "source": "tapiriik", "total_distance": 9298, "duration": 3044, "type": "Rowing", "has_path": true}, {"entry_mode": "API", "tracking_mode": "outdoor", "total_calories": 551.071355267994, "start_time": "Thu, 21 Jun 2018 16:32:28", "uri": "/fitnessActivities/1184870328", "source": "tapiriik", "total_distance": 0, "duration": 0, "type": "Rowing", "has_path": false}], "size": 1622, "next": "/fitnessActivities?page=1&pageSize=25"}
\ No newline at end of file
diff --git a/rowers/testdata/sporttracksstrokedata.txt b/rowers/testdata/sporttracksstrokedata.txt
new file mode 100644
index 00000000..5e36e1bd
--- /dev/null
+++ b/rowers/testdata/sporttracksstrokedata.txt
@@ -0,0 +1 @@
+{"heartrate": [3, 109, 29, 121, 33, 119, 36, 118, 39, 117, 42, 118, 45, 119, 48, 122, 51, 123, 54, 126, 57, 127, 60, 129, 63, 130, 66, 130, 69, 131, 72, 131, 75, 132, 78, 133, 81, 134, 84, 134, 87, 135, 90, 136, 93, 139, 96, 141, 99, 142, 102, 143, 105, 144, 108, 145, 111, 146, 114, 146, 117, 146, 120, 146, 123, 147, 126, 147, 129, 148, 132, 149, 135, 150, 138, 150, 141, 151, 144, 152, 147, 153, 150, 153, 153, 154, 156, 154, 159, 155, 162, 155, 165, 154, 168, 155, 171, 156, 175, 156, 177, 156, 181, 156, 184, 156, 187, 156, 190, 156, 193, 155, 196, 155, 199, 156, 202, 157, 205, 160, 208, 161, 211, 162, 214, 163, 217, 163, 220, 164, 223, 164, 226, 165, 229, 165, 249, 161, 252, 160, 255, 158, 259, 161, 262, 162, 265, 162, 268, 158, 271, 154, 274, 152, 278, 152, 281, 151, 284, 151, 287, 151, 290, 151, 293, 151, 296, 151, 299, 151, 302, 152, 305, 152, 308, 152, 310, 152, 313, 152, 316, 153, 319, 153, 322, 154, 324, 155, 327, 155, 330, 156, 333, 156, 336, 155, 339, 155, 341, 155, 344, 155, 347, 155, 350, 155, 354, 155, 357, 154, 360, 152, 363, 151, 366, 150, 369, 149, 372, 148, 375, 147], "max_cadence": 22, "avg_cadence": 19.8253, "duration": 375.5, "timezone": 2, "user_id": 6765, "privacy": "public", "laps": [], "elevation_loss": 0, "location": [3, [49.24518204, 16.50426102], 3, [49.24511719, 16.5043354], 29, [49.24468231, 16.50475693], 33, [49.24460983, 16.50481796], 36, [49.24452591, 16.50488281], 39, [49.24443436, 16.50494957], 42, [49.2443428, 16.50502205], 45, [49.24424362, 16.50508881], 48, [49.24414063, 16.50515938], 51, [49.24404144, 16.50522423], 54, [49.24394226, 16.50527573], 57, [49.24383163, 16.50532532], 60, [49.24372864, 16.50536728], 63, [49.24361801, 16.50540543], 66, [49.2435112, 16.50543976], 69, [49.24340057, 16.50547028], 72, [49.24329376, 16.50549889], 75, [49.24319077, 16.5055275], 78, [49.24309158, 16.50554657], 81, [49.24298859, 16.50557137], 84, [49.24288177, 16.50559616], 87, [49.24277878, 16.50562096], 90, [49.24266434, 16.50564957], 93, [49.24255371, 16.50567627], 96, [49.2424469, 16.50570297], 99, [49.2423439, 16.50572586], 102, [49.24222946, 16.50576019], 105, [49.24212265, 16.50579834], 108, [49.24202347, 16.50583839], 111, [49.24192047, 16.50588608], 114, [49.24181747, 16.50594139], 117, [49.24171448, 16.5059967], 120, [49.2416153, 16.50605965], 123, [49.2415123, 16.5061245], 126, [49.24141312, 16.50618935], 129, [49.2413063, 16.50625992], 132, [49.24121475, 16.50632286], 135, [49.24111176, 16.50639534], 138, [49.24101639, 16.50647163], 141, [49.24091339, 16.50655746], 144, [49.24081802, 16.50663567], 147, [49.24071503, 16.5067215], 150, [49.24062347, 16.50680161], 153, [49.24053192, 16.50688744], 156, [49.24043655, 16.50696754], 159, [49.24033737, 16.50705528], 162, [49.240242, 16.50713348], 165, [49.24014664, 16.50721169], 168, [49.24004364, 16.50729561], 171, [49.23995209, 16.50737572], 175, [49.23985291, 16.50745964], 177, [49.23976135, 16.50753403], 181, [49.23966217, 16.50761414], 184, [49.23956299, 16.50768852], 187, [49.23946381, 16.50776291], 190, [49.23936462, 16.50783539], 193, [49.23926926, 16.50790596], 196, [49.23917007, 16.50797844], 199, [49.23907471, 16.50804901], 202, [49.2389679, 16.50812531], 205, [49.23887253, 16.5082016], 208, [49.23877716, 16.5082798], 211, [49.23867798, 16.50835609], 214, [49.2385788, 16.5084343], 217, [49.23848343, 16.5085144], 220, [49.23838043, 16.50858688], 223, [49.23828506, 16.50865936], 226, [49.23818588, 16.50873184], 229, [49.2380867, 16.50880432], 249, [49.23776627, 16.50908089], 252, [49.23775482, 16.50914955], 255, [49.23773956, 16.50925636], 259, [49.23772812, 16.50938606], 262, [49.23771286, 16.50953293], 265, [49.2376976, 16.50967979], 268, [49.23767853, 16.5098381], 271, [49.23765945, 16.50999832], 274, [49.23763657, 16.51016235], 278, [49.23761368, 16.51032448], 281, [49.2375946, 16.51047897], 284, [49.23757172, 16.51063156], 287, [49.23755264, 16.5107975], 290, [49.23752975, 16.51096153], 293, [49.23750687, 16.51111984], 296, [49.23748016, 16.51127243], 299, [49.23746109, 16.5114212], 302, [49.23744202, 16.51157188], 305, [49.23743057, 16.51171684], 308, [49.23742294, 16.51186371], 310, [49.23742294, 16.51200867], 313, [49.23743057, 16.51214981], 316, [49.23744583, 16.51228905], 319, [49.23747253, 16.51242447], 322, [49.23750305, 16.51255226], 324, [49.2375412, 16.5126667], 327, [49.23759079, 16.51278305], 330, [49.23764801, 16.51288223], 333, [49.23771286, 16.51297951], 336, [49.23778152, 16.51305771], 339, [49.23786163, 16.51313019], 341, [49.23794174, 16.51318359], 344, [49.23802185, 16.51322746], 347, [49.23809814, 16.51326942], 350, [49.23816681, 16.51330376], 354, [49.2382431, 16.51333427], 357, [49.23831558, 16.51336098], 360, [49.23838806, 16.51338387], 363, [49.23846817, 16.51340866], 366, [49.23854446, 16.51342773], 369, [49.23861313, 16.51345062], 372, [49.23868179, 16.51347351], 375, [49.23873901, 16.51349449]], "clock_duration": 375.5, "type": "Rowing", "cadence": [3, 21, 29, 19, 33, 20, 36, 19, 39, 19, 42, 20, 45, 19, 48, 20, 51, 20, 54, 20, 57, 20, 60, 19, 63, 20, 66, 20, 69, 20, 72, 19, 75, 20, 78, 20, 81, 20, 84, 20, 87, 20, 90, 19, 93, 20, 96, 20, 99, 20, 102, 20, 105, 20, 108, 20, 111, 20, 114, 20, 117, 20, 120, 20, 123, 20, 126, 19, 129, 20, 132, 20, 135, 20, 138, 19, 141, 20, 144, 20, 147, 19, 150, 20, 153, 19, 156, 20, 159, 19, 162, 19, 165, 19, 168, 19, 171, 20, 175, 19, 177, 20, 181, 20, 184, 20, 187, 20, 190, 20, 193, 20, 196, 20, 199, 19, 202, 19, 205, 20, 208, 20, 211, 20, 214, 20, 217, 20, 220, 20, 223, 20, 226, 20, 229, 20, 249, 22, 252, 18, 255, 18, 259, 19, 262, 19, 265, 19, 268, 19, 271, 19, 274, 19, 278, 19, 281, 19, 284, 19, 287, 19, 290, 19, 293, 19, 296, 20, 299, 21, 302, 20, 305, 21, 308, 20, 310, 21, 313, 21, 316, 21, 319, 22, 322, 21, 324, 21, 327, 21, 330, 21, 333, 21, 336, 21, 339, 22, 341, 21, 344, 20, 347, 20, 350, 19, 354, 19, 357, 18, 360, 18, 363, 19, 366, 19, 369, 19, 372, 19, 375, 21], "elevation": [3, 230.1, 29, 227, 33, 227, 36, 227, 39, 227, 42, 227, 45, 227, 48, 227, 51, 227, 54, 227, 57, 227, 60, 227, 63, 227, 66, 227, 69, 227, 72, 227, 75, 227, 78, 227, 81, 227, 84, 227, 87, 227, 90, 227, 93, 227, 96, 227, 99, 227, 102, 227, 105, 227, 108, 227, 111, 227, 114, 227, 117, 227, 120, 227, 123, 227, 126, 227, 129, 227, 132, 227, 135, 227, 138, 227, 141, 227, 144, 227, 147, 227, 150, 227, 153, 227, 156, 227, 159, 227, 162, 227, 165, 227, 168, 227, 171, 227, 175, 227, 177, 227, 181, 227, 184, 227, 187, 227, 190, 227, 193, 227, 196, 227, 199, 227, 202, 227, 205, 227, 208, 227, 211, 227, 214, 227, 217, 227, 220, 227, 223, 227, 226, 227, 229, 227, 249, 227, 252, 227, 255, 227, 259, 227, 262, 227, 265, 227, 268, 227, 271, 227, 274, 227, 278, 227, 281, 227, 284, 227, 287, 227, 290, 227, 293, 227, 296, 227, 299, 227, 302, 227, 305, 227, 308, 227, 310, 227, 313, 227, 316, 227, 319, 227, 322, 227, 324, 227, 327, 227, 330, 227, 333, 227, 336, 227, 339, 227, 341, 227, 344, 227, 347, 227, 350, 227, 354, 227, 357, 227.1, 360, 227.6, 363, 228.2, 366, 228.7, 369, 229.3, 372, 229.8, 375, 230.3], "power": [3, 0, 29, 0, 33, 0, 36, 0, 39, 0, 42, 0, 45, 0, 48, 0, 51, 0, 54, 0, 57, 0, 60, 0, 63, 0, 66, 0, 69, 0, 72, 0, 75, 0, 78, 0, 81, 0, 84, 0, 87, 0, 90, 0, 93, 0, 96, 0, 99, 0, 102, 0, 105, 0, 108, 0, 111, 0, 114, 0, 117, 0, 120, 0, 123, 0, 126, 0, 129, 0, 132, 0, 135, 0, 138, 0, 141, 0, 144, 0, 147, 0, 150, 0, 153, 0, 156, 0, 159, 0, 162, 0, 165, 0, 168, 0, 171, 0, 175, 0, 177, 0, 181, 0, 184, 0, 187, 0, 190, 0, 193, 0, 196, 0, 199, 0, 202, 0, 205, 0, 208, 0, 211, 0, 214, 0, 217, 0, 220, 0, 223, 0, 226, 0, 229, 0, 249, 0, 252, 0, 255, 0, 259, 0, 262, 0, 265, 0, 268, 0, 271, 0, 274, 0, 278, 0, 281, 0, 284, 0, 287, 0, 290, 0, 293, 0, 296, 0, 299, 0, 302, 0, 305, 0, 308, 0, 310, 0, 313, 0, 316, 0, 319, 0, 322, 0, 324, 0, 327, 0, 330, 0, 333, 0, 336, 0, 339, 0, 341, 0, 344, 0, 347, 0, 350, 0, 354, 0, 357, 0, 360, 0, 363, 0, 366, 0, 369, 0, 372, 0, 375, 0], "elevation_gain": 0, "start_time": "2018-07-02T19:24:02+02:00", "avg_heartrate": 147, "max_speed": 4.167, "total_distance": 1328, "max_heartrate": 165, "distance": [3, 14, 29, 72, 33, 81, 36, 91, 39, 102, 42, 114, 45, 126, 48, 138, 51, 151, 54, 162, 57, 175, 60, 187, 63, 200, 66, 212, 69, 224, 72, 236, 75, 248, 78, 259, 81, 271, 84, 283, 87, 294, 90, 307, 93, 320, 96, 332, 99, 343, 102, 356, 105, 368, 108, 380, 111, 392, 114, 404, 117, 416, 120, 428, 123, 441, 126, 452, 129, 465, 132, 477, 135, 489, 138, 501, 141, 514, 144, 527, 147, 539, 150, 551, 153, 563, 156, 575, 159, 588, 162, 600, 165, 612, 168, 625, 171, 637, 175, 650, 177, 661, 181, 674, 184, 686, 187, 698, 190, 710, 193, 722, 196, 734, 199, 746, 202, 759, 205, 771, 208, 783, 211, 795, 214, 808, 217, 820, 220, 832, 223, 845, 226, 857, 229, 869, 249, 910, 252, 916, 255, 923, 259, 933, 262, 944, 265, 955, 268, 966, 271, 978, 274, 990, 278, 1002, 281, 1014, 284, 1025, 287, 1037, 290, 1050, 293, 1061, 296, 1073, 299, 1084, 302, 1095, 305, 1106, 308, 1116, 310, 1127, 313, 1137, 316, 1147, 319, 1158, 322, 1168, 324, 1177, 327, 1187, 330, 1196, 333, 1207, 336, 1216, 339, 1226, 341, 1236, 344, 1246, 347, 1255, 350, 1263, 354, 1272, 357, 1280, 360, 1288, 363, 1297, 366, 1306, 369, 1313, 372, 1321, 375, 1328], "name": "2ks with focus (6)", "notes": "\n from speedcoach2v2.15 via rowsandall.com", "calories": 243.8, "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113136", "activity": "https://api.sporttracks.mobi/activity/18113136", "avg_speed": 3.537}
\ No newline at end of file
diff --git a/rowers/testdata/sporttracksworkouts.txt b/rowers/testdata/sporttracksworkouts.txt
new file mode 100644
index 00000000..59bacdd6
--- /dev/null
+++ b/rowers/testdata/sporttracksworkouts.txt
@@ -0,0 +1 @@
+{"items": [{"user_id": "6765", "name": "2ks with focus (6)", "start_time": "2018-07-02T19:24:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113136", "total_distance": "1328", "duration": "375.50", "type": "Rowing"}, {"user_id": "6765", "name": "2ks with focus (5)", "start_time": "2018-07-02T19:11:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113131", "total_distance": "2149", "duration": "587.40", "type": "Rowing"}, {"user_id": "6765", "name": "2ks with focus (4)", "start_time": "2018-07-02T19:01:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113127", "total_distance": "2058", "duration": "518.90", "type": "Rowing"}, {"user_id": "6765", "name": "2ks with focus (3)", "start_time": "2018-07-02T18:50:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113122", "total_distance": "2136", "duration": "556.20", "type": "Rowing"}, {"user_id": "6765", "name": "2ks with focus (2)", "start_time": "2018-07-02T18:40:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113116", "total_distance": "2001", "duration": "509.00", "type": "Rowing"}, {"user_id": "6765", "name": "2ks with focus", "start_time": "2018-07-02T18:21:01+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18113110", "total_distance": "2858", "duration": "940.60", "type": "Rowing"}, {"user_id": "6765", "name": "Import from Polar Flow", "start_time": "2018-07-01T15:17:47+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18103268", "total_distance": "0", "duration": "2329.00", "type": "Rowing"}, {"user_id": "6765", "name": "Import from Polar Flow", "start_time": "2018-07-01T13:54:46+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18103062", "total_distance": "0", "duration": "3420.00", "type": "Rowing"}, {"user_id": "6765", "name": "Fartlek", "start_time": "2018-06-30T09:31:01+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18098606", "total_distance": "13878", "duration": "4876.70", "type": "Rowing"}, {"user_id": "6765", "name": "Sprintervals (3)", "start_time": "2018-06-26T17:44:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18069637", "total_distance": "3684", "duration": "1374.90", "type": "Rowing"}, {"user_id": "6765", "name": "Sprintervals (2)", "start_time": "2018-06-26T17:38:07+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18069635", "total_distance": "1056", "duration": "313.70", "type": "Rowing"}, {"user_id": "6765", "name": "Sprintervals", "start_time": "2018-06-26T17:06:01+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18069633", "total_distance": "5651", "duration": "1887.90", "type": "Rowing"}, {"user_id": "6765", "name": "Import from Polar Flow", "start_time": "2018-06-25T14:56:15+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18057612", "total_distance": "0", "duration": "3367.00", "type": "Rowing"}, {"user_id": "6765", "name": "Double", "start_time": "2018-06-24T09:34:01+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18048478", "total_distance": "10194", "duration": "3469.00", "type": "Rowing"}, {"user_id": "6765", "name": "Import from Polar Flow", "start_time": "2018-06-23T08:57:48+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18040413", "total_distance": "0", "duration": "4139.00", "type": "Rowing"}, {"user_id": "6765", "name": "test delete", "start_time": "2018-06-22T12:45:04+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18037849", "total_distance": "7538", "duration": "3374.50", "type": "Rowing"}, {"user_id": "6765", "name": "Steady (2)", "start_time": "2018-06-22T08:33:01+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18037557", "total_distance": "3344", "duration": "1015.70", "type": "Rowing"}, {"user_id": "6765", "name": "Steady", "start_time": "2018-06-22T07:41:04+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18037556", "total_distance": "9298", "duration": "3044.00", "type": "Rowing"}, {"user_id": "6765", "name": "Import from Polar Flow", "start_time": "2018-06-21T16:32:28+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18033575", "total_distance": "0", "duration": "3551.00", "type": "Rowing"}, {"user_id": "6765", "name": "3x6min", "start_time": "2018-06-19T07:57:02+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/18004475", "total_distance": "10437", "duration": "3366.90", "type": "Rowing"}, {"user_id": "6765", "name": "Steady", "start_time": "2018-06-18T18:05:05+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/17999116", "total_distance": "10313", "duration": "3354.90", "type": "Rowing"}, {"user_id": "6765", "name": "Running", "start_time": "2018-06-17T12:23:24+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/17988935", "total_distance": "6004.9", "duration": "3654.19", "type": "Rowing"}, {"user_id": "6765", "name": "Running", "start_time": "2018-06-17T10:06:57+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/17988932", "total_distance": "2990.05", "duration": "1654.72", "type": "Running"}, {"user_id": "6765", "name": "Running", "start_time": "2018-06-17T09:24:13+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/17988928", "total_distance": "2557.31", "duration": "1559.69", "type": "Rowing"}, {"user_id": "6765", "name": "Vienna Friday & Saturday (3)", "start_time": "2018-06-16T15:17:06+02:00", "uri": "https://api.sporttracks.mobi/api/v2/fitnessActivities/17979305", "total_distance": "8196", "duration": "3130.50", "type": "Rowing"}], "next": "https://api.sporttracks.mobi/api/v2/fitnessActivities?page=1", "size": "3023"}
\ No newline at end of file
diff --git a/rowers/testdata/stravadistancetestdata.txt b/rowers/testdata/stravadistancetestdata.txt
index 6c1451ea..d7e04666 100644
--- a/rowers/testdata/stravadistancetestdata.txt
+++ b/rowers/testdata/stravadistancetestdata.txt
@@ -1 +1 @@
-[{"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}, {"data": [0.4, 0.6, 0.6, 1.4, 1.4, 2.2, 2.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 11.5, 12.9, 16.1, 17.7, 19.6, 23.5, 38.0, 39.8, 40.6, 48.4, 58.3, 68.1, 77.7, 88.5, 98.0, 107.2, 117.3, 127.7, 138.0, 148.7, 159.0, 169.2, 178.5, 188.7, 199.4, 208.7, 208.7, 218.8, 227.8, 227.8, 239.6, 248.0, 257.2, 266.5, 275.7, 275.7, 286.0, 293.9, 301.5, 301.5, 310.4, 318.7, 328.3, 336.7, 344.9, 352.8, 361.8, 370.4, 378.9, 386.7, 395.9, 404.4, 413.1, 421.9, 430.0, 430.0, 439.1, 447.3, 455.6, 464.6, 473.0, 482.2, 491.2, 501.1, 509.9, 518.4, 527.3, 536.4, 546.2, 555.8, 565.3, 574.0, 584.0, 591.7, 600.4, 609.0, 617.8, 627.2, 636.5, 645.4, 655.1, 664.3, 673.7, 682.8, 692.1, 702.0, 711.1, 721.0, 729.9, 739.3, 748.3, 758.0, 766.8, 776.4, 785.8, 795.4, 804.3, 813.2, 822.9, 832.0, 841.8, 850.9, 860.0, 869.7, 879.4, 888.4, 897.6, 906.6, 915.3, 924.9, 933.6, 942.7, 952.1, 961.2, 970.2, 980.2, 989.4, 998.9, 1008.0, 1017.7, 1026.5, 1035.5, 1044.3, 1053.2, 1061.9, 1070.7, 1079.2, 1087.8, 1096.2, 1104.8, 1113.5, 1122.3, 1130.1, 1137.6, 1144.7, 1152.4, 1160.7, 1168.8, 1176.8, 1185.2, 1193.2, 1201.5, 1209.5, 1217.5, 1225.7, 1233.3, 1241.9, 1249.8, 1258.3, 1267.0, 1275.7, 1283.4, 1290.9, 1300.2, 1309.1, 1318.7, 1328.1, 1338.0, 1347.2, 1356.8, 1366.0, 1375.3, 1384.4, 1393.8, 1403.3, 1412.8, 1422.6, 1432.1, 1441.4, 1450.2, 1458.5, 1466.7, 1475.3, 1484.3, 1492.9, 1502.0, 1510.9, 1519.8, 1528.7, 1538.0, 1547.5, 1557.3, 1566.9, 1576.5, 1586.0, 1595.7, 1605.4, 1614.7, 1624.8, 1634.9, 1644.5, 1654.9, 1664.5, 1674.2, 1684.5, 1693.9, 1703.9, 1714.0, 1723.6, 1734.0, 1744.0, 1754.0, 1764.1, 1773.8, 1783.7, 1793.2, 1802.8, 1812.8, 1822.8, 1832.4, 1842.7, 1853.1, 1862.6, 1872.6, 1883.1, 1892.9, 1902.9, 1911.6, 1920.6, 1930.0, 1939.0, 1948.5, 1957.4, 1966.7, 1975.5, 1984.7, 1994.1, 2003.2, 2013.0, 2021.9, 2030.7, 2038.9, 2048.5, 2058.1, 2067.2, 2077.3, 2086.6, 2096.0, 2105.1, 2114.7, 2123.0, 2132.5, 2141.6, 2150.5, 2159.6, 2168.3, 2176.2, 2183.8, 2192.5, 2200.5, 2209.1, 2217.2, 2225.4, 2233.9, 2242.6, 2251.5, 2260.6, 2269.9, 2279.0, 2287.5, 2296.8, 2306.2, 2314.4, 2323.5, 2332.2, 2340.7, 2349.0, 2357.9, 2367.4, 2376.1, 2384.8, 2393.4, 2402.4, 2411.6, 2421.3, 2430.3, 2438.6, 2446.8, 2455.6, 2464.3, 2472.0, 2480.1, 2489.0, 2498.1, 2507.3, 2516.6, 2526.4, 2535.2, 2544.4, 2553.5, 2562.6, 2570.8, 2579.5, 2587.3, 2596.0, 2605.2, 2614.0, 2622.7, 2630.9, 2639.2, 2647.3, 2655.6, 2664.4, 2672.4, 2681.3, 2689.9, 2698.4, 2706.8, 2715.4, 2723.4, 2732.5, 2741.2, 2750.3, 2759.5, 2768.1, 2776.6, 2785.3, 2793.6, 2801.9, 2810.5, 2819.1, 2827.5, 2836.4, 2845.9, 2854.6, 2854.6, 2874.0, 2880.3, 2887.8, 2896.2, 2904.5, 2913.6, 2922.2, 2930.4, 2939.3, 2947.9, 2956.6, 2965.9, 2973.4, 2981.4, 2989.7, 2998.8, 3006.3, 3014.3, 3022.0, 3029.8, 3036.8, 3043.7, 3051.1, 3058.8, 3066.8, 3075.1, 3083.8, 3091.4, 3098.9, 3106.7, 3115.4, 3123.7, 3131.8, 3140.1, 3148.4, 3157.1, 3165.2, 3174.2, 3183.0, 3191.9, 3200.8, 3210.2, 3219.3, 3228.7, 3238.4, 3247.8, 3256.8, 3265.8, 3275.1, 3284.1, 3293.0, 3301.5, 3309.9, 3318.2, 3326.9, 3335.7, 3344.3, 3353.4, 3361.7, 3370.9, 3379.3, 3386.9, 3394.5, 3403.2, 3411.5, 3419.8, 3427.8, 3436.8, 3445.1, 3452.8, 3461.2, 3469.0, 3477.0, 3485.6, 3493.0, 3501.2, 3508.2, 3516.8, 3525.1, 3533.3, 3540.8, 3548.6, 3556.4, 3563.6, 3571.8, 3579.8, 3587.9, 3595.7, 3604.5, 3612.6, 3620.7, 3628.4, 3636.4, 3644.5, 3652.7, 3661.0, 3668.8, 3677.3, 3685.1, 3693.6, 3701.9, 3709.1, 3718.4, 3726.0, 3734.3, 3742.1, 3750.6, 3759.1, 3766.9, 3775.7, 3784.1, 3792.4, 3799.9, 3808.4, 3816.2, 3824.2, 3833.1, 3841.0, 3848.8, 3857.0, 3864.8, 3873.4, 3881.2, 3889.9, 3897.6, 3905.5, 3914.4, 3922.5, 3931.2, 3939.0, 3946.8, 3955.0, 3962.4, 3971.2, 3978.9, 3987.3, 3995.8, 4003.6, 4011.5, 4020.0, 4027.8, 4036.3, 4043.5, 4052.4, 4060.3, 4068.3, 4076.9, 4084.5, 4092.9, 4100.4, 4108.8, 4116.1, 4123.7, 4132.6, 4140.9, 4148.2, 4156.3, 4164.3, 4172.3, 4179.0, 4187.3, 4195.1, 4202.4, 4210.1, 4217.8, 4225.1, 4231.8, 4239.8, 4247.1, 4254.6, 4262.3, 4270.2, 4278.9, 4287.3, 4295.1, 4301.3, 4308.4, 4315.5, 4322.4, 4330.3, 4337.6, 4345.6, 4353.3, 4361.0, 4369.1, 4377.3, 4386.3, 4394.8, 4404.1, 4412.8, 4421.4, 4430.5, 4439.2, 4446.9, 4455.3, 4463.4, 4471.6, 4479.7, 4488.1, 4497.3, 4506.6, 4516.1, 4526.1, 4535.1, 4545.0, 4554.8, 4564.4, 4574.0, 4583.3, 4593.1, 4602.4, 4612.3, 4621.6, 4630.3, 4639.5, 4648.8, 4657.5, 4666.0, 4673.8, 4681.8, 4690.2, 4699.0, 4708.2, 4717.5, 4726.9, 4736.7, 4745.6, 4745.6, 4745.6, 4745.6, 4775.7, 4782.9, 4791.7, 4801.1, 4810.0, 4819.7, 4829.4, 4839.3, 4849.4, 4859.4, 4869.3, 4878.4, 4888.5, 4897.5, 4906.3, 4915.7, 4924.4, 4933.9, 4943.9, 4952.9, 4962.7, 4973.1, 4982.8, 4993.1, 5002.9, 5012.4, 5022.1, 5031.6, 5040.9, 5049.9, 5059.6, 5068.8, 5078.6, 5088.3, 5097.7, 5107.2, 5117.4, 5127.6, 5136.8, 5146.4, 5155.8, 5165.2, 5173.8, 5182.3, 5190.6, 5201.1, 5210.9, 5220.5, 5231.0, 5240.8, 5250.0, 5259.2, 5268.1, 5277.0, 5287.0, 5296.4, 5305.4, 5314.5, 5324.0, 5333.4, 5343.2, 5351.0, 5358.8, 5366.7, 5374.0, 5382.1, 5390.5, 5398.6, 5406.2, 5414.6, 5422.9, 5430.7, 5438.5, 5446.7, 5454.2, 5461.8, 5470.0, 5477.6, 5485.9, 5493.4, 5501.1, 5509.6, 5517.2, 5524.8, 5532.9, 5541.0, 5548.3, 5556.5, 5563.7, 5571.6, 5579.7, 5588.1, 5596.3, 5604.6, 5612.1, 5620.6, 5628.1, 5636.2, 5645.9, 5654.4, 5661.9, 5670.0, 5678.3, 5686.9, 5694.8, 5703.1, 5710.8, 5719.1, 5728.0, 5736.4, 5742.9, 5742.9, 5755.1, 5759.4, 5760.3, 5767.5, 5775.1, 5775.1, 5784.2, 5791.3, 5800.0, 5808.1, 5816.3, 5824.9, 5833.4, 5842.1, 5850.7, 5859.3, 5866.9, 5873.7, 5880.8, 5887.8, 5895.0, 5902.3, 5909.1, 5916.7, 5924.1, 5930.8, 5937.9, 5945.5, 5953.1, 5960.6, 5968.1, 5975.6, 5983.3, 5991.6, 5999.9, 6008.5, 6016.3, 6024.5, 6032.3, 6040.4, 6047.5, 6054.2, 6061.1, 6067.7, 6075.2, 6082.8, 6089.4, 6095.8, 6103.1, 6110.5, 6117.2, 6123.9, 6131.1, 6137.2, 6143.6, 6150.6, 6157.8, 6164.5, 6172.3, 6179.4, 6186.0, 6193.6, 6193.6, 6193.6, 6193.6, 6219.7, 6225.5, 6232.4, 6238.9, 6245.9, 6253.4, 6261.0, 6268.9, 6276.5, 6284.4, 6292.5, 6300.2, 6308.2, 6316.3, 6324.2, 6331.7, 6339.4, 6347.0, 6354.4, 6362.1, 6369.7, 6377.1, 6385.2, 6392.6, 6400.6, 6408.6, 6417.1, 6425.5, 6433.6, 6441.6, 6448.8, 6456.3, 6456.3, 6456.3, 6469.6, 6475.9, 6483.7, 6491.0, 6498.7, 6506.2, 6513.7, 6520.1, 6526.9, 6533.7, 6540.6, 6548.1, 6554.8, 6562.3, 6570.1, 6577.0, 6585.6, 6592.9, 6600.2, 6608.0, 6615.2, 6622.4, 6630.3, 6637.7, 6644.9, 6652.3, 6659.6, 6666.8, 6673.9, 6680.6, 6687.9, 6695.0, 6701.8, 6709.4, 6716.4, 6724.0, 6730.4, 6738.3, 6745.7, 6752.4, 6759.8, 6766.5, 6773.8, 6781.1, 6787.7, 6795.4, 6802.8, 6809.2, 6815.3, 6821.7, 6828.5, 6835.6, 6842.1, 6849.5, 6856.4, 6862.7, 6869.3, 6875.7, 6882.3, 6888.8, 6895.7, 6905.0, 6911.7, 6918.3, 6925.1, 6931.1, 6943.0, 6950.7, 6950.7, 6950.7, 6950.7, 6953.7, 6954.1, 6955.2, 6956.1, 6956.5, 6957.1, 6957.1, 6957.1, 6957.1, 6957.1, 6957.5, 6957.5, 6957.5, 6957.5, 6957.5, 6957.5, 6957.5, 6957.5, 6957.5, 6966.1, 6967.3, 6968.6, 6969.9, 6971.1, 6972.4, 6973.6, 6974.9, 6976.5, 6978.3, 6979.3, 6979.5, 6979.5, 6979.6, 6979.6, 6979.6, 6979.6, 6979.6, 6979.6, 6979.6, 6979.6, 6979.6, 6982.8, 6982.8, 6982.8, 6982.8, 6982.8, 6982.8, 6982.8, 6982.8, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6986.7, 6996.1, 6999.2, 6999.2, 6999.2, 6999.2, 6999.2, 7010.5, 7012.3, 7014.1, 7016.3, 7017.5, 7023.8, 7032.3, 7040.6, 7048.9, 7048.9, 7048.9, 7071.4, 7073.5, 7082.9, 7092.7, 7102.5, 7107.5, 7117.2, 7126.0, 7136.7, 7145.2, 7155.0, 7164.8, 7175.0, 7184.4, 7193.8, 7203.8, 7212.4, 7222.6, 7232.4, 7242.7, 7252.4, 7261.9, 7271.9, 7281.2, 7290.8, 7300.2, 7310.1, 7319.6, 7328.6, 7337.9, 7347.7, 7358.7, 7368.5, 7377.8, 7388.2, 7398.3, 7408.1, 7417.9, 7427.7, 7436.8, 7445.9, 7454.9, 7463.4, 7472.7, 7481.8, 7490.4, 7498.6, 7506.4, 7514.4, 7522.9, 7530.9, 7539.0, 7546.4, 7555.7, 7563.6, 7571.7, 7580.5, 7588.6, 7597.2, 7605.1, 7612.7, 7621.6, 7629.4, 7637.3, 7645.9, 7653.8, 7662.4, 7670.1, 7678.0, 7686.6, 7694.5, 7702.5, 7711.2, 7719.3, 7727.3, 7736.0, 7743.4, 7752.6, 7760.6, 7768.6, 7777.3, 7785.3, 7794.0, 7801.8, 7809.7, 7818.4, 7826.4, 7834.4, 7842.9, 7851.5, 7859.3, 7867.1, 7875.6, 7884.3, 7892.2, 7899.5, 7908.3, 7916.3, 7924.3, 7933.0, 7939.6, 7939.6, 7939.6, 7939.6, 7939.6, 7976.2, 7985.2, 7994.3, 8003.9, 8014.0, 8022.5, 8032.6, 8042.1, 8050.9, 8060.6, 8069.6, 8079.4, 8088.6, 8097.3, 8106.6, 8115.7, 8124.4, 8132.6, 8141.3, 8141.3, 8163.0, 8166.5, 8166.5, 8175.0, 8177.6, 8184.4, 8192.3, 8200.8, 8209.5, 8218.9, 8228.4, 8237.4, 8247.2, 8257.1, 8266.3, 8275.4, 8285.0, 8293.8, 8302.5, 8311.5, 8320.4, 8329.8, 8338.9, 8346.6, 8353.0, 8360.4, 8368.4, 8375.7, 8383.1, 8391.3, 8398.7, 8406.0, 8414.0, 8422.0, 8430.0, 8438.0, 8445.1, 8452.9, 8460.3, 8469.0, 8477.1, 8484.7, 8484.7, 8503.6, 8509.8, 8516.5, 8523.8, 8530.0, 8537.2, 8544.2, 8551.9, 8559.7, 8568.0, 8576.5, 8584.7, 8592.6, 8601.2, 8609.6, 8618.1, 8626.2, 8635.1, 8644.2, 8652.7, 8661.7, 8671.0, 8680.0, 8689.4, 8698.8, 8708.3, 8717.0, 8726.3, 8735.6, 8743.6, 8752.2, 8760.8, 8768.9, 8776.7, 8785.6, 8793.3, 8802.4, 8810.5, 8819.5, 8827.9, 8836.5, 8845.1, 8853.5, 8862.0, 8870.6, 8880.0, 8888.9, 8898.0, 8907.0, 8916.1, 8925.3, 8934.5, 8943.3, 8951.7, 8961.1, 8970.0, 8978.8, 8988.0, 8997.4, 9007.1, 9016.9, 9026.5, 9035.4, 9044.5, 9053.5, 9062.4, 9071.4, 9080.5, 9090.3, 9099.8, 9108.6, 9118.4, 9128.1, 9137.7, 9147.2, 9156.9, 9166.9, 9176.8, 9186.6, 9196.5, 9206.2, 9215.3, 9225.0, 9235.3, 9245.1, 9254.9, 9264.1, 9273.9, 9283.1, 9292.3, 9301.3, 9309.9, 9316.9, 9325.6, 9333.6, 9341.2, 9350.5, 9358.5, 9366.4, 9374.8, 9382.4, 9390.3, 9398.0, 9406.5, 9414.5, 9422.5, 9430.8, 9439.0, 9447.3, 9456.1, 9464.3, 9471.7, 9480.9, 9488.9, 9497.0, 9505.9, 9513.9, 9522.5, 9530.2, 9538.6, 9546.2, 9554.1, 9562.5, 9571.0, 9578.1, 9586.3, 9594.6, 9602.5, 9610.9, 9618.8, 9626.8, 9635.0, 9643.7, 9651.7, 9659.7, 9667.9, 9675.9, 9683.6, 9691.8, 9700.4, 9707.9, 9707.9, 9707.9, 9707.9, 9739.9, 9742.0, 9750.9, 9760.2, 9769.2, 9777.1, 9786.2, 9795.3, 9804.1, 9813.6, 9822.6, 9832.5, 9841.8, 9851.8, 9860.9, 9870.6, 9880.1, 9889.9, 9898.8, 9908.1, 9917.2, 9927.0, 9936.3, 9945.1, 9954.0, 9963.4, 9972.7, 9981.8, 9991.5, 10000.5, 10009.4, 10018.4, 10027.8, 10036.9, 10046.0, 10054.3, 10062.7, 10070.9, 10080.5, 10090.4, 10100.0, 10109.5, 10118.7, 10127.8, 10136.5, 10145.3, 10154.1, 10163.3, 10172.0, 10181.6, 10191.1, 10200.1, 10209.4, 10218.5, 10227.6, 10236.6, 10245.4, 10255.1, 10264.3, 10273.5, 10282.9, 10292.0, 10301.8, 10311.4, 10320.4, 10329.8, 10339.2, 10348.3, 10348.3, 10348.3, 10378.0, 10385.5, 10394.8, 10404.5, 10413.9, 10423.6, 10433.7, 10443.8, 10454.1, 10464.1, 10474.2, 10484.3, 10494.7, 10506.3, 10506.3, 10506.3, 10523.4, 10532.2, 10540.9, 10550.4, 10560.7, 10570.8, 10580.1, 10590.9, 10599.9, 10609.1, 10619.0, 10628.5, 10637.4, 10646.1, 10655.2, 10663.7, 10673.0, 10681.4, 10691.1, 10700.5, 10709.7, 10718.7, 10728.4, 10737.5, 10746.6, 10755.6, 10765.5, 10774.6, 10784.3, 10793.1, 10802.0, 10810.7, 10818.6, 10828.0, 10837.1, 10846.6, 10855.8, 10864.6, 10873.2, 10881.7, 10890.0, 10899.7, 10909.6, 10918.6, 10928.4, 10937.6, 10947.6, 10956.9, 10966.0, 10966.0, 10966.0, 10981.5, 10990.5, 11000.1, 11009.2, 11018.2, 11027.4, 11036.6, 11045.5, 11054.2, 11063.1, 11072.5, 11081.7, 11090.7, 11098.8, 11107.7, 11116.8, 11126.2, 11134.9, 11143.5, 11153.4, 11162.3, 11171.4, 11180.1, 11189.5, 11198.0, 11207.7, 11217.6, 11226.5, 11235.5, 11244.4, 11254.2, 11262.8, 11271.9, 11281.6, 11281.6, 11306.2, 11307.6, 11308.0, 11308.3, 11308.6, 11309.0, 11309.3, 11309.9, 11310.1, 11310.1, 11310.3, 11313.3, 11318.4, 11324.0, 11330.4, 11337.1, 11344.4, 11352.2, 11360.0, 11367.8, 11374.6, 11382.1, 11390.7, 11398.6, 11405.5, 11416.4, 11424.7, 11432.8, 11441.3, 11450.4, 11458.5, 11467.6, 11476.2, 11484.8, 11494.0, 11503.1, 11511.3, 11519.9, 11528.2, 11536.6, 11545.5, 11554.1, 11563.0, 11572.0, 11580.8, 11590.3, 11599.9, 11609.9, 11618.5, 11627.9, 11637.6, 11646.7, 11656.1, 11666.5, 11676.0, 11686.7, 11695.9, 11705.0, 11714.7, 11724.0, 11732.8, 11741.3, 11750.5, 11759.4, 11768.3, 11777.1, 11786.4, 11795.8, 11805.8, 11815.4, 11826.6, 11838.6, 11847.9, 11857.1, 11867.2, 11877.9, 11888.1, 11897.6, 11908.1, 11918.2, 11928.6, 11938.0, 11948.6, 11958.6, 11969.1, 11979.7, 11989.1, 11999.8, 11999.8, 11999.8, 11999.8, 12028.5, 12036.4, 12046.1, 12055.7, 12066.2, 12076.3, 12086.5, 12096.5, 12107.0, 12107.0, 12107.0, 12107.0, 12107.0, 12137.5, 12145.6, 12154.7, 12164.0, 12174.2, 12183.8, 12193.7, 12203.4, 12213.2, 12224.0, 12233.8, 12244.2, 12254.8, 12265.6, 12276.8, 12286.5, 12296.9, 12307.6, 12317.5, 12328.4, 12338.1, 12348.9, 12359.1, 12369.6, 12379.0, 12388.7, 12397.7, 12407.3, 12417.1, 12426.8, 12437.4, 12446.8, 12456.5, 12466.5, 12477.1, 12486.6, 12496.5, 12507.0, 12518.0, 12523.6, 12533.3, 12543.3, 12553.6, 12563.5, 12572.7, 12582.6, 12592.3, 12602.6, 12611.5, 12621.9, 12632.5, 12641.5, 12651.1, 12661.0, 12671.2, 12681.0, 12690.9, 12701.2, 12711.5, 12721.1, 12730.8, 12740.5, 12750.0, 12760.2, 12770.0, 12779.6, 12789.0, 12799.4, 12809.5, 12819.2, 12829.5, 12839.2, 12849.1, 12859.5, 12870.0, 12880.5, 12891.1, 12900.7, 12910.3, 12920.8, 12930.1, 12940.5, 12950.4, 12960.4, 12970.5, 12980.6, 12990.9, 13001.2, 13011.3, 13021.7, 13031.2, 13041.5, 13052.1, 13062.7, 13072.5, 13082.3, 13092.3, 13103.9, 13114.6, 13125.2, 13135.0, 13144.6, 13154.8, 13165.2, 13174.8, 13184.4, 13194.7, 13194.7, 13194.7, 13194.7, 13194.7, 13194.7, 13230.5, 13238.6, 13248.0, 13258.5, 13268.6, 13278.9, 13288.9, 13298.2, 13308.5, 13318.6, 13328.2, 13338.2, 13347.9, 13357.1, 13366.8, 13366.8, 13386.7, 13394.3, 13403.5, 13412.4, 13421.3, 13431.5, 13440.4, 13450.6, 13459.3, 13469.3, 13479.3, 13489.8, 13500.3, 13510.0, 13520.0, 13528.5, 13537.9, 13537.9, 13537.9, 13537.9, 13537.9, 13564.9, 13567.6, 13577.7, 13577.7, 13589.1, 13599.5, 13609.8, 13609.8, 13621.4, 13632.5, 13641.6, 13652.8, 13662.6, 13672.5, 13681.8, 13691.6, 13701.3, 13710.1, 13719.7, 13719.7, 13733.8, 13743.1, 13751.8, 13761.2, 13770.7, 13780.5, 13789.4, 13798.8, 13807.5, 13816.0, 13816.0, 13816.0, 13838.3, 13838.3, 13840.5, 13841.8, 13843.1, 13844.5, 13846.5, 13851.9, 13853.7, 13855.7, 13855.7, 13861.2, 13862.4, 13866.5, 13872.0, 13872.0, 13878.3, 13878.3], "type": "distance", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravahrtestdata.txt b/rowers/testdata/stravahrtestdata.txt
index 36bd147a..dee4a8b8 100644
--- a/rowers/testdata/stravahrtestdata.txt
+++ b/rowers/testdata/stravahrtestdata.txt
@@ -1 +1 @@
-[{"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}, {"data": [109, 116, 120, 125, 131, 135, 137, 140, 142, 143, 145, 146, 146, 149, 150, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 163, 164, 165, 166, 166, 167, 168, 169, 169, 168, 169, 168, 169, 169, 169, 169, 170, 170, 171, 171, 171, 171, 172, 172, 172, 172, 173, 173, 172, 172, 173, 173, 173, 173, 173, 172, 173, 172, 173, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, 174, 175, 175, 174, 175, 175, 175, 175, 175, 174, 174, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 176, 177, 177, 177, 177, 177, 177, 177, 177, 177, 176, 177, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 177, 177, 176, 176, 176, 176, 176, 175, 175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, 176, 177, 177, 177, 178, 178, 179, 178, 178, 178, 178, 178, 179, 178, 179, 178, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 177, 178, 178, 178, 179, 179, 179, 178, 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 178, 178, 179, 179, 179, 179, 179, 180, 179, 179, 180, 180, 179, 179, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 179, 179, 180, 181, 181, 181, 181, 180, 181, 181, 181, 180, 181, 181, 181, 180, 181, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 179, 180, 180, 179, 179, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 181, 181, 180, 180, 180, 181, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 180, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, 181, 182, 181, 181, 181, 181, 182, 181, 182, 182, 182, 183, 182, 183, 182, 182, 182, 182, 183, 182, 182, 182, 183, 182, 182, 182, 183, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 182, 182, 182, 182, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, 184, 183, 184, 183, 183, 182, 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 184, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 183, 183, 182, 183, 183, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 182, 182, 183, 182, 182, 183, 182, 182, 183, 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 182, 182, 182, 182, 182, 183, 182, 182, 183, 182, 183, 182, 182, 183, 183, 183, 182, 183, 182, 182, 182, 183, 182, 182, 182, 182, 181, 182, 182, 181, 181, 182, 182, 181, 181, 181, 182, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 181, 181, 180, 181, 180, 180, 181, 181, 181, 180, 180, 180, 181, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 179], "type": "heartrate", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}, {"data": [110, 111, 111, 110, 110, 107, 107, 108, 108, 108, 108, 108, 108, 100, 99, 97, 96, 96, 98, 102, 102, 102, 101, 101, 103, 104, 106, 107, 107, 109, 112, 115, 117, 118, 120, 124, 126, 125, 125, 125, 125, 127, 127, 132, 135, 137, 141, 142, 142, 142, 143, 143, 143, 142, 143, 142, 142, 142, 142, 144, 147, 148, 149, 147, 146, 145, 145, 145, 145, 145, 145, 145, 144, 144, 145, 146, 147, 148, 148, 147, 147, 148, 148, 148, 149, 149, 149, 149, 149, 150, 151, 151, 152, 152, 152, 153, 153, 155, 156, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158], "type": "heartrate", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravalatlongtestdata.txt b/rowers/testdata/stravalatlongtestdata.txt
index 6c1451ea..78907836 100644
--- a/rowers/testdata/stravalatlongtestdata.txt
+++ b/rowers/testdata/stravalatlongtestdata.txt
@@ -1 +1 @@
-[{"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [[49.238671, 16.514058], [49.238669, 16.514058], [49.23867, 16.514057], [49.238663, 16.514052], [49.238663, 16.514052], [49.238655, 16.514059], [49.238655, 16.514059], [49.238646, 16.514056], [49.238646, 16.514056], [49.238646, 16.514056], [49.238646, 16.514056], [49.238646, 16.514056], [49.238646, 16.514056], [49.238575, 16.51408], [49.238565, 16.514068], [49.238546, 16.514035], [49.238537, 16.514016], [49.238528, 16.513995], [49.23851, 16.513948], [49.238453, 16.513769], [49.238444, 16.513748], [49.238441, 16.513738], [49.238414, 16.513639], [49.238385, 16.513511], [49.238362, 16.51338], [49.238346, 16.513251], [49.238331, 16.513104], [49.238322, 16.512974], [49.238314, 16.512848], [49.238309, 16.512708], [49.238309, 16.512566], [49.23831, 16.512424], [49.238313, 16.512277], [49.238312, 16.512135], [49.238313, 16.511995], [49.23832, 16.511867], [49.238328, 16.511727], [49.238342, 16.511582], [49.238358, 16.511456], [49.238358, 16.511456], [49.23838, 16.511321], [49.238405, 16.511203], [49.238405, 16.511203], [49.238438, 16.51105], [49.238466, 16.510941], [49.238498, 16.510826], [49.238538, 16.510713], [49.23858, 16.510604], [49.23858, 16.510604], [49.238629, 16.510484], [49.238668, 16.510392], [49.238701, 16.510301], [49.238701, 16.510301], [49.238737, 16.510192], [49.238772, 16.510091], [49.238812, 16.509975], [49.238849, 16.509873], [49.238885, 16.509775], [49.238921, 16.509681], [49.238959, 16.509572], [49.238997, 16.509468], [49.239035, 16.509368], [49.239072, 16.509276], [49.239113, 16.509167], [49.239154, 16.509067], [49.239196, 16.508966], [49.239243, 16.50887], [49.239287, 16.508781], [49.239287, 16.508781], [49.239335, 16.508681], [49.239373, 16.508583], [49.239408, 16.508483], [49.239445, 16.508372], [49.239478, 16.508269], [49.239515, 16.508155], [49.239551, 16.508044], [49.23959, 16.507923], [49.239622, 16.507811], [49.239648, 16.5077], [49.23968, 16.507588], [49.239719, 16.507479], [49.23976, 16.507359], [49.239802, 16.507244], [49.239843, 16.50713], [49.239882, 16.507026], [49.239927, 16.506905], [49.239963, 16.506816], [49.240009, 16.506718], [49.240053, 16.506621], [49.240098, 16.506523], [49.240147, 16.506418], [49.240197, 16.506314], [49.240243, 16.506215], [49.240294, 16.506106], [49.240343, 16.506005], [49.240394, 16.505901], [49.240445, 16.505803], [49.240498, 16.505703], [49.240556, 16.5056], [49.240609, 16.505505], [49.240667, 16.505402], [49.240717, 16.505308], [49.24077, 16.505205], [49.240819, 16.505108], [49.240873, 16.505002], [49.240923, 16.504909], [49.24098, 16.50481], [49.241038, 16.504717], [49.241098, 16.504621], [49.241152, 16.504531], [49.241207, 16.504441], [49.241265, 16.504343], [49.24132, 16.50425], [49.241379, 16.50415], [49.241436, 16.50406], [49.241492, 16.503969], [49.241552, 16.503872], [49.241612, 16.503776], [49.241669, 16.503686], [49.241727, 16.503596], [49.241783, 16.503508], [49.241839, 16.503425], [49.241902, 16.503334], [49.24196, 16.503253], [49.242021, 16.50317], [49.242083, 16.503082], [49.242144, 16.502998], [49.242204, 16.502915], [49.24227, 16.502823], [49.242331, 16.502738], [49.242394, 16.502649], [49.242453, 16.502562], [49.242517, 16.502472], [49.242576, 16.50239], [49.242635, 16.502307], [49.242693, 16.502223], [49.24275, 16.502138], [49.242807, 16.502057], [49.242866, 16.501977], [49.242924, 16.5019], [49.242982, 16.501821], [49.243036, 16.501743], [49.243093, 16.501662], [49.243152, 16.501583], [49.243214, 16.501506], [49.243269, 16.501441], [49.243318, 16.501371], [49.243358, 16.501295], [49.243404, 16.501214], [49.243455, 16.501131], [49.243507, 16.501052], [49.243557, 16.500976], [49.243613, 16.500896], [49.243665, 16.50082], [49.243718, 16.500741], [49.24377, 16.500664], [49.243823, 16.500591], [49.24388, 16.500518], [49.243931, 16.500449], [49.243985, 16.500366], [49.244035, 16.500288], [49.244088, 16.500204], [49.244142, 16.500117], [49.244195, 16.500027], [49.244241, 16.499948], [49.244286, 16.499872], [49.244342, 16.499779], [49.244399, 16.499692], [49.244461, 16.499601], [49.244524, 16.499513], [49.244592, 16.499424], [49.244654, 16.499341], [49.244718, 16.499254], [49.244778, 16.499167], [49.244839, 16.499079], [49.244898, 16.498994], [49.24496, 16.498906], [49.245024, 16.498818], [49.245087, 16.498731], [49.245152, 16.498639], [49.245214, 16.498548], [49.245275, 16.498461], [49.245334, 16.498382], [49.245392, 16.498309], [49.245449, 16.498237], [49.245506, 16.498158], [49.245566, 16.498076], [49.245622, 16.497993], [49.24568, 16.497906], [49.245741, 16.497826], [49.245804, 16.497751], [49.245869, 16.497679], [49.245938, 16.497605], [49.246006, 16.497528], [49.246076, 16.497448], [49.246146, 16.497369], [49.246216, 16.497294], [49.246288, 16.497221], [49.246361, 16.497149], [49.246434, 16.497075], [49.246503, 16.497003], [49.246579, 16.496926], [49.246655, 16.496851], [49.246727, 16.49678], [49.246806, 16.496703], [49.246878, 16.496631], [49.246953, 16.496562], [49.247033, 16.496492], [49.247108, 16.496429], [49.247186, 16.496362], [49.247265, 16.496294], [49.247341, 16.496231], [49.247423, 16.496164], [49.247503, 16.496101], [49.247583, 16.496038], [49.247665, 16.495977], [49.247742, 16.495915], [49.24782, 16.495851], [49.247894, 16.495787], [49.247969, 16.49572], [49.248047, 16.495651], [49.248126, 16.495584], [49.2482, 16.495519], [49.24828, 16.495447], [49.248361, 16.495376], [49.248433, 16.495305], [49.248508, 16.495229], [49.248587, 16.495151], [49.248661, 16.495079], [49.248737, 16.495005], [49.248803, 16.494941], [49.24887, 16.494872], [49.248937, 16.494792], [49.249001, 16.494717], [49.249068, 16.494636], [49.249129, 16.494557], [49.249192, 16.494472], [49.249249, 16.494388], [49.249305, 16.494296], [49.249359, 16.494197], [49.249412, 16.4941], [49.249468, 16.493997], [49.249516, 16.493899], [49.249561, 16.493799], [49.249601, 16.493705], [49.249643, 16.493589], [49.249679, 16.49347], [49.24971, 16.493354], [49.249744, 16.493224], [49.249772, 16.493103], [49.249796, 16.49298], [49.249817, 16.492859], [49.249836, 16.49273], [49.249851, 16.492617], [49.249866, 16.49249], [49.249875, 16.492365], [49.249879, 16.492243], [49.24988, 16.492118], [49.249882, 16.491997], [49.249881, 16.491889], [49.249873, 16.491785], [49.249859, 16.491667], [49.249844, 16.491559], [49.249825, 16.491445], [49.249806, 16.491338], [49.249786, 16.491229], [49.249761, 16.491117], [49.249732, 16.491007], [49.249701, 16.490894], [49.24967, 16.490778], [49.249639, 16.490658], [49.24961, 16.490541], [49.249584, 16.490431], [49.249559, 16.490311], [49.249535, 16.490186], [49.249517, 16.490077], [49.249501, 16.489953], [49.249492, 16.489835], [49.249486, 16.489718], [49.249486, 16.489603], [49.249493, 16.489482], [49.249508, 16.489353], [49.249531, 16.489239], [49.249563, 16.489129], [49.249599, 16.489024], [49.249641, 16.488917], [49.249682, 16.488808], [49.249729, 16.488696], [49.249775, 16.488595], [49.24982, 16.488503], [49.249868, 16.488417], [49.249928, 16.488338], [49.24999, 16.488266], [49.25005, 16.488214], [49.250118, 16.488173], [49.250195, 16.488141], [49.250276, 16.488116], [49.250357, 16.488097], [49.25044, 16.48808], [49.250528, 16.488069], [49.250607, 16.488055], [49.250688, 16.488035], [49.250769, 16.488013], [49.250849, 16.487991], [49.25092, 16.487957], [49.250993, 16.487915], [49.251056, 16.487868], [49.251123, 16.487807], [49.25119, 16.487735], [49.251253, 16.487661], [49.251313, 16.487584], [49.251365, 16.487504], [49.251417, 16.487424], [49.251467, 16.487342], [49.251519, 16.487259], [49.251566, 16.487163], [49.251603, 16.487067], [49.25164, 16.48696], [49.251675, 16.486853], [49.251704, 16.486745], [49.251726, 16.486635], [49.251738, 16.486518], [49.25175, 16.486409], [49.251759, 16.486285], [49.251766, 16.486165], [49.251772, 16.48604], [49.251779, 16.485914], [49.251789, 16.485796], [49.251799, 16.485681], [49.251806, 16.485562], [49.251813, 16.485449], [49.251828, 16.485336], [49.251854, 16.485225], [49.251885, 16.485117], [49.251922, 16.485016], [49.251966, 16.484914], [49.252021, 16.484813], [49.252075, 16.484727], [49.252075, 16.484727], [49.252205, 16.484548], [49.25225, 16.484496], [49.252302, 16.48443], [49.252357, 16.48435], [49.252411, 16.484271], [49.252467, 16.484182], [49.252518, 16.484091], [49.252564, 16.484004], [49.252611, 16.483905], [49.252654, 16.483807], [49.252693, 16.483703], [49.252738, 16.483596], [49.252774, 16.483508], [49.25281, 16.483413], [49.252842, 16.483309], [49.252878, 16.483197], [49.252909, 16.483105], [49.252947, 16.483011], [49.252991, 16.482929], [49.253037, 16.482849], [49.253081, 16.482779], [49.253128, 16.482719], [49.253185, 16.482666], [49.253248, 16.48262], [49.253313, 16.482575], [49.253382, 16.482531], [49.253454, 16.482486], [49.253519, 16.482449], [49.253583, 16.482421], [49.253652, 16.482395], [49.253728, 16.482376], [49.253802, 16.482362], [49.253875, 16.482347], [49.253949, 16.482334], [49.254023, 16.482322], [49.254101, 16.482315], [49.254173, 16.482309], [49.254254, 16.482308], [49.254333, 16.482307], [49.254413, 16.482307], [49.254493, 16.482309], [49.254577, 16.482312], [49.25466, 16.482315], [49.254744, 16.482316], [49.254831, 16.482312], [49.254916, 16.482308], [49.254996, 16.482301], [49.255077, 16.482299], [49.255161, 16.482293], [49.255241, 16.482282], [49.25532, 16.482266], [49.255396, 16.482245], [49.255469, 16.482225], [49.255543, 16.482205], [49.255619, 16.48218], [49.255696, 16.482154], [49.255772, 16.482125], [49.255848, 16.482083], [49.255918, 16.48204], [49.255994, 16.481993], [49.256063, 16.481945], [49.256126, 16.481903], [49.256188, 16.481863], [49.256261, 16.481817], [49.256329, 16.481771], [49.256397, 16.481724], [49.256463, 16.48168], [49.256537, 16.481631], [49.256605, 16.481585], [49.256668, 16.481541], [49.256737, 16.481494], [49.256802, 16.481451], [49.256867, 16.481407], [49.256938, 16.48136], [49.256999, 16.481318], [49.257066, 16.481272], [49.257123, 16.481233], [49.257193, 16.481183], [49.257261, 16.481135], [49.257328, 16.481086], [49.257388, 16.48104], [49.25745, 16.480991], [49.257512, 16.480942], [49.257568, 16.480892], [49.257632, 16.480834], [49.257691, 16.480774], [49.257752, 16.48071], [49.257809, 16.48065], [49.257873, 16.480577], [49.25793, 16.480509], [49.257985, 16.480437], [49.258037, 16.480367], [49.258088, 16.480288], [49.258136, 16.480204], [49.258183, 16.480117], [49.25823, 16.480029], [49.258272, 16.479943], [49.258318, 16.479849], [49.258361, 16.479764], [49.258406, 16.47967], [49.258452, 16.47958], [49.25849, 16.4795], [49.258543, 16.479401], [49.258585, 16.479318], [49.258627, 16.479224], [49.258663, 16.479132], [49.258699, 16.479029], [49.258734, 16.478926], [49.258765, 16.478829], [49.2588, 16.47872], [49.258831, 16.478615], [49.258861, 16.478509], [49.258888, 16.478414], [49.258918, 16.478308], [49.258946, 16.478209], [49.258975, 16.478108], [49.259008, 16.477998], [49.259036, 16.477897], [49.259062, 16.477797], [49.259089, 16.477692], [49.259113, 16.477592], [49.259143, 16.477483], [49.259169, 16.477382], [49.259199, 16.477271], [49.259224, 16.477173], [49.259251, 16.477072], [49.259281, 16.476959], [49.259308, 16.476855], [49.259337, 16.476745], [49.259364, 16.476645], [49.259391, 16.476546], [49.25942, 16.476443], [49.259446, 16.476348], [49.259478, 16.476238], [49.259505, 16.476141], [49.259537, 16.476035], [49.259567, 16.475929], [49.259596, 16.47583], [49.259628, 16.475733], [49.259663, 16.475629], [49.259693, 16.475532], [49.259727, 16.475428], [49.259757, 16.475339], [49.259794, 16.475231], [49.259826, 16.475133], [49.259859, 16.475036], [49.259892, 16.47493], [49.259923, 16.474836], [49.259956, 16.474732], [49.259985, 16.474638], [49.260018, 16.474535], [49.260045, 16.474444], [49.260075, 16.47435], [49.260108, 16.474238], [49.260137, 16.474133], [49.260162, 16.47404], [49.260191, 16.473937], [49.260218, 16.473835], [49.260246, 16.473734], [49.260268, 16.473648], [49.260294, 16.473541], [49.260316, 16.473439], [49.260336, 16.473344], [49.260359, 16.473244], [49.26038, 16.473143], [49.260398, 16.473046], [49.260414, 16.472956], [49.260434, 16.472851], [49.26045, 16.472753], [49.260471, 16.472655], [49.26049, 16.472554], [49.260508, 16.472448], [49.260527, 16.472331], [49.260547, 16.47222], [49.260566, 16.472118], [49.260582, 16.472035], [49.260606, 16.471945], [49.260627, 16.471853], [49.26065, 16.471765], [49.260674, 16.471662], [49.260698, 16.471569], [49.260723, 16.471466], [49.260747, 16.471366], [49.260768, 16.471265], [49.26079, 16.471159], [49.260815, 16.471052], [49.260842, 16.470936], [49.260867, 16.470826], [49.260894, 16.470703], [49.26092, 16.470591], [49.260947, 16.470481], [49.260979, 16.470365], [49.26101, 16.470255], [49.261039, 16.470159], [49.261068, 16.470052], [49.261095, 16.469948], [49.261122, 16.469843], [49.261144, 16.469737], [49.261161, 16.469625], [49.261181, 16.469502], [49.261198, 16.469376], [49.261218, 16.46925], [49.261238, 16.469115], [49.261257, 16.468994], [49.26128, 16.468863], [49.261303, 16.468733], [49.261325, 16.468606], [49.26135, 16.468479], [49.261376, 16.468357], [49.261402, 16.468228], [49.26143, 16.468107], [49.26146, 16.467979], [49.261487, 16.467858], [49.261512, 16.467744], [49.261537, 16.467623], [49.261563, 16.467502], [49.261584, 16.467386], [49.261602, 16.467273], [49.261615, 16.467167], [49.261624, 16.467059], [49.261625, 16.466942], [49.261622, 16.466822], [49.261618, 16.466695], [49.261609, 16.466567], [49.261598, 16.466439], [49.261585, 16.466306], [49.261568, 16.466186], [49.261568, 16.466186], [49.261568, 16.466186], [49.261568, 16.466186], [49.261513, 16.465781], [49.261499, 16.465684], [49.261476, 16.465568], [49.261447, 16.465446], [49.261417, 16.465333], [49.26138, 16.465213], [49.261341, 16.465092], [49.261299, 16.464972], [49.261255, 16.464851], [49.261209, 16.464732], [49.261162, 16.464616], [49.261115, 16.464514], [49.261059, 16.464406], [49.261006, 16.464312], [49.260949, 16.464227], [49.260887, 16.464141], [49.260824, 16.464069], [49.260753, 16.463996], [49.260678, 16.463918], [49.26061, 16.463852], [49.260534, 16.463786], [49.260453, 16.463713], [49.260376, 16.463649], [49.260296, 16.46358], [49.260217, 16.463519], [49.26014, 16.463464], [49.260061, 16.463407], [49.259983, 16.463354], [49.259906, 16.463304], [49.259831, 16.463257], [49.259749, 16.463211], [49.259673, 16.463163], [49.259591, 16.463114], [49.259508, 16.463071], [49.259428, 16.463036], [49.259345, 16.463], [49.259257, 16.46296], [49.259169, 16.462924], [49.259091, 16.462882], [49.259011, 16.462832], [49.258937, 16.462771], [49.25886, 16.462718], [49.258799, 16.462644], [49.258748, 16.462559], [49.258695, 16.462477], [49.258641, 16.462359], [49.258591, 16.462248], [49.258541, 16.46214], [49.258492, 16.462016], [49.258453, 16.461896], [49.258424, 16.461777], [49.258403, 16.461654], [49.258387, 16.461535], [49.258376, 16.461413], [49.258366, 16.461276], [49.258357, 16.461148], [49.258347, 16.461024], [49.258338, 16.460901], [49.258332, 16.46077], [49.258327, 16.46064], [49.258323, 16.460506], [49.258319, 16.460399], [49.258317, 16.460292], [49.258317, 16.460183], [49.258317, 16.460082], [49.258316, 16.45997], [49.258316, 16.459854], [49.258318, 16.459743], [49.25832, 16.459639], [49.258323, 16.459524], [49.258326, 16.459408], [49.258329, 16.459301], [49.258335, 16.459195], [49.258341, 16.459083], [49.258348, 16.45898], [49.258356, 16.458876], [49.258368, 16.458765], [49.258378, 16.458661], [49.258388, 16.458548], [49.258399, 16.458446], [49.25841, 16.458341], [49.258422, 16.458226], [49.258431, 16.458122], [49.25844, 16.458019], [49.258449, 16.457908], [49.258457, 16.457797], [49.258463, 16.457696], [49.258469, 16.457585], [49.258471, 16.457486], [49.258471, 16.457376], [49.258471, 16.457265], [49.258473, 16.45715], [49.258473, 16.457037], [49.258474, 16.456923], [49.258475, 16.456819], [49.258477, 16.456702], [49.258479, 16.456598], [49.25848, 16.456488], [49.258477, 16.456353], [49.258475, 16.456237], [49.25847, 16.456135], [49.258467, 16.456023], [49.258468, 16.455909], [49.258472, 16.455791], [49.258479, 16.455683], [49.258493, 16.45557], [49.258509, 16.455466], [49.258528, 16.455356], [49.258551, 16.45524], [49.258572, 16.455128], [49.258594, 16.455045], [49.258594, 16.455045], [49.258662, 16.454916], [49.258703, 16.45491], [49.258711, 16.454908], [49.258775, 16.454897], [49.258843, 16.454888], [49.258843, 16.454888], [49.258925, 16.454879], [49.258989, 16.454872], [49.259067, 16.454867], [49.259139, 16.454866], [49.259213, 16.454865], [49.25929, 16.454865], [49.259366, 16.454862], [49.259444, 16.454859], [49.259522, 16.454861], [49.259599, 16.454858], [49.259667, 16.454853], [49.259728, 16.454857], [49.259792, 16.454866], [49.259855, 16.454876], [49.259919, 16.454891], [49.259983, 16.454907], [49.260043, 16.454928], [49.260108, 16.454957], [49.260171, 16.454989], [49.260227, 16.455023], [49.260283, 16.45507], [49.260341, 16.455127], [49.260398, 16.455185], [49.260455, 16.455238], [49.260513, 16.45529], [49.260571, 16.455344], [49.260631, 16.455394], [49.260698, 16.455448], [49.260763, 16.455502], [49.260831, 16.45556], [49.260892, 16.45561], [49.260958, 16.455662], [49.261018, 16.455715], [49.261082, 16.455768], [49.26114, 16.455812], [49.261195, 16.455851], [49.261251, 16.455888], [49.261306, 16.455923], [49.261369, 16.455961], [49.261433, 16.455998], [49.261488, 16.456029], [49.261542, 16.45606], [49.261603, 16.456098], [49.261664, 16.456138], [49.26172, 16.456172], [49.261776, 16.456206], [49.261836, 16.456241], [49.261889, 16.456267], [49.261944, 16.45629], [49.262006, 16.45631], [49.262069, 16.456329], [49.262128, 16.456345], [49.262197, 16.456366], [49.262259, 16.456384], [49.262318, 16.456404], [49.262384, 16.456424], [49.262384, 16.456424], [49.262384, 16.456424], [49.262384, 16.456424], [49.262612, 16.456509], [49.262663, 16.456528], [49.262723, 16.456548], [49.262781, 16.456565], [49.262843, 16.456581], [49.262909, 16.456598], [49.262976, 16.456617], [49.263046, 16.456636], [49.263114, 16.456652], [49.263185, 16.456663], [49.263257, 16.456672], [49.263326, 16.456677], [49.263398, 16.45668], [49.26347, 16.456686], [49.263541, 16.456688], [49.263609, 16.456687], [49.263678, 16.456682], [49.263746, 16.456674], [49.263812, 16.456665], [49.263881, 16.456652], [49.263949, 16.456641], [49.264015, 16.456631], [49.264087, 16.456622], [49.264154, 16.456613], [49.264225, 16.456599], [49.264297, 16.456593], [49.264373, 16.456591], [49.264449, 16.456588], [49.264521, 16.456588], [49.264593, 16.456584], [49.264657, 16.456571], [49.264723, 16.456546], [49.264723, 16.456546], [49.264723, 16.456546], [49.264836, 16.456486], [49.264889, 16.456456], [49.264954, 16.456416], [49.265015, 16.45638], [49.265079, 16.456339], [49.265139, 16.456293], [49.265199, 16.456246], [49.26525, 16.456203], [49.265304, 16.456159], [49.265359, 16.456118], [49.265414, 16.456076], [49.265474, 16.45603], [49.265528, 16.45599], [49.265589, 16.455943], [49.26565, 16.455893], [49.265704, 16.455845], [49.265773, 16.45579], [49.26583, 16.455743], [49.265888, 16.455695], [49.265949, 16.455643], [49.266005, 16.455594], [49.266061, 16.455543], [49.266122, 16.455486], [49.266178, 16.455433], [49.266233, 16.45538], [49.26629, 16.455327], [49.266345, 16.455273], [49.266398, 16.455218], [49.266452, 16.455165], [49.266501, 16.455113], [49.266554, 16.455054], [49.266605, 16.454994], [49.266654, 16.454937], [49.266707, 16.454872], [49.266756, 16.45481], [49.266808, 16.454744], [49.266853, 16.454688], [49.266906, 16.454617], [49.266955, 16.454547], [49.266998, 16.454482], [49.267046, 16.454413], [49.267089, 16.454348], [49.267135, 16.454276], [49.26718, 16.454203], [49.267221, 16.454138], [49.267268, 16.454058], [49.267313, 16.453983], [49.267353, 16.453921], [49.267395, 16.453868], [49.267441, 16.453816], [49.267493, 16.453763], [49.267547, 16.453713], [49.267598, 16.45367], [49.26766, 16.453633], [49.267717, 16.453595], [49.267768, 16.453557], [49.267823, 16.453525], [49.267878, 16.453498], [49.267936, 16.45348], [49.267995, 16.453474], [49.268057, 16.453479], [49.268138, 16.45351], [49.268195, 16.453541], [49.268249, 16.453577], [49.268305, 16.453615], [49.268352, 16.453655], [49.26844, 16.453746], [49.268497, 16.453807], [49.268497, 16.453807], [49.268497, 16.453807], [49.268497, 16.453807], [49.268511, 16.453843], [49.268507, 16.453851], [49.268502, 16.453868], [49.268494, 16.453881], [49.268491, 16.453885], [49.268487, 16.453886], [49.268487, 16.453884], [49.268495, 16.453859], [49.268511, 16.453832], [49.268534, 16.453808], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268557, 16.453793], [49.268586, 16.453848], [49.268577, 16.453861], [49.268567, 16.453875], [49.268558, 16.453888], [49.268549, 16.453902], [49.26854, 16.453915], [49.26853, 16.453929], [49.268521, 16.453942], [49.26851, 16.453955], [49.268496, 16.453968], [49.268489, 16.453977], [49.268489, 16.453982], [49.268489, 16.453982], [49.26849, 16.45398], [49.268491, 16.453978], [49.268491, 16.453978], [49.268487, 16.453972], [49.268487, 16.453972], [49.268487, 16.453972], [49.268487, 16.453972], [49.268487, 16.453972], [49.268487, 16.453972], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268472, 16.454018], [49.268507, 16.454026], [49.268506, 16.454025], [49.268506, 16.454025], [49.268505, 16.454025], [49.268503, 16.454023], [49.2685, 16.454021], [49.268492, 16.454009], [49.26849, 16.454002], [49.268492, 16.454], [49.268497, 16.454002], [49.268498, 16.453996], [49.268496, 16.453991], [49.268508, 16.453949], [49.268508, 16.453949], [49.268508, 16.453949], [49.268467, 16.453813], [49.268448, 16.453783], [49.268448, 16.453783], [49.268448, 16.453783], [49.268448, 16.453783], [49.268448, 16.453783], [49.268365, 16.453692], [49.268352, 16.453677], [49.268338, 16.453665], [49.268321, 16.453652], [49.26831, 16.453647], [49.268255, 16.453622], [49.268181, 16.453594], [49.268108, 16.45357], [49.268034, 16.453555], [49.268034, 16.453555], [49.268034, 16.453555], [49.267835, 16.453567], [49.267817, 16.453579], [49.267741, 16.453634], [49.267662, 16.453694], [49.267585, 16.453759], [49.267546, 16.453792], [49.267469, 16.453856], [49.2674, 16.453915], [49.267316, 16.453985], [49.26725, 16.454045], [49.267175, 16.454118], [49.267104, 16.454195], [49.267029, 16.454277], [49.266963, 16.454358], [49.266898, 16.45444], [49.266829, 16.454528], [49.266769, 16.454603], [49.266695, 16.454686], [49.266624, 16.454767], [49.266548, 16.454846], [49.266472, 16.454909], [49.266393, 16.454965], [49.266312, 16.455022], [49.266235, 16.455072], [49.266156, 16.455125], [49.26608, 16.455181], [49.266001, 16.455243], [49.265927, 16.455306], [49.265858, 16.455373], [49.26579, 16.455447], [49.265719, 16.455527], [49.265639, 16.455615], [49.265567, 16.455693], [49.2655, 16.45577], [49.265424, 16.455854], [49.265351, 16.455935], [49.265279, 16.456012], [49.265207, 16.45609], [49.265135, 16.456167], [49.265067, 16.456239], [49.264997, 16.456304], [49.264924, 16.456355], [49.264851, 16.45639], [49.264769, 16.456416], [49.264688, 16.456434], [49.264611, 16.456443], [49.264538, 16.456448], [49.264467, 16.456452], [49.264396, 16.456455], [49.264319, 16.456457], [49.264248, 16.456456], [49.264175, 16.456454], [49.264108, 16.456449], [49.264025, 16.456441], [49.263954, 16.456435], [49.263882, 16.456429], [49.263803, 16.45642], [49.26373, 16.456411], [49.263653, 16.4564], [49.263582, 16.456394], [49.263514, 16.45639], [49.263434, 16.456385], [49.263364, 16.45638], [49.263293, 16.456374], [49.263216, 16.456368], [49.263145, 16.456362], [49.263068, 16.456353], [49.262999, 16.456347], [49.262928, 16.456339], [49.262852, 16.456327], [49.262781, 16.456315], [49.26271, 16.456301], [49.262632, 16.456284], [49.26256, 16.456269], [49.262489, 16.456252], [49.262412, 16.456232], [49.262347, 16.456214], [49.262266, 16.45619], [49.262196, 16.456168], [49.262126, 16.456144], [49.262049, 16.456118], [49.261979, 16.456092], [49.261903, 16.456063], [49.261835, 16.456037], [49.261767, 16.45601], [49.261691, 16.455977], [49.261622, 16.455945], [49.261555, 16.455911], [49.261481, 16.455874], [49.261409, 16.455834], [49.261344, 16.455795], [49.261279, 16.455753], [49.26121, 16.455705], [49.261138, 16.455655], [49.261074, 16.455609], [49.261015, 16.455566], [49.260944, 16.455513], [49.26088, 16.455463], [49.260817, 16.455412], [49.260748, 16.455354], [49.260695, 16.455312], [49.260695, 16.455312], [49.260695, 16.455312], [49.260695, 16.455312], [49.260695, 16.455312], [49.260409, 16.455064], [49.26034, 16.455], [49.260271, 16.454933], [49.2602, 16.454858], [49.260124, 16.454782], [49.260058, 16.454722], [49.259977, 16.454659], [49.2599, 16.454605], [49.259825, 16.454562], [49.259745, 16.454515], [49.259667, 16.454478], [49.259582, 16.454443], [49.259502, 16.454416], [49.259424, 16.454396], [49.259341, 16.454384], [49.25926, 16.454378], [49.259182, 16.454386], [49.259109, 16.454402], [49.259032, 16.454426], [49.259032, 16.454426], [49.258847, 16.45452], [49.258826, 16.454555], [49.258826, 16.454555], [49.258774, 16.454641], [49.258757, 16.454668], [49.258721, 16.454742], [49.258686, 16.454836], [49.258652, 16.454941], [49.258621, 16.455051], [49.258592, 16.455173], [49.258564, 16.455296], [49.258539, 16.455415], [49.258515, 16.455543], [49.258494, 16.455676], [49.258476, 16.4558], [49.258457, 16.455922], [49.258438, 16.456051], [49.258422, 16.456169], [49.258406, 16.456286], [49.25839, 16.456408], [49.258374, 16.456527], [49.258357, 16.456655], [49.25834, 16.456778], [49.258327, 16.456882], [49.258317, 16.456968], [49.258304, 16.457068], [49.258291, 16.457176], [49.258279, 16.457275], [49.258267, 16.457375], [49.258252, 16.457486], [49.258239, 16.457586], [49.258225, 16.457685], [49.258211, 16.457792], [49.258195, 16.457899], [49.25818, 16.458007], [49.258163, 16.458113], [49.258149, 16.458209], [49.258133, 16.458314], [49.258118, 16.458413], [49.258101, 16.458529], [49.258085, 16.458638], [49.258069, 16.45874], [49.258069, 16.45874], [49.25804, 16.458997], [49.258037, 16.459081], [49.258035, 16.459173], [49.258036, 16.459274], [49.258039, 16.45936], [49.258038, 16.459459], [49.258035, 16.459555], [49.258031, 16.459661], [49.25803, 16.459768], [49.258026, 16.459882], [49.258025, 16.46], [49.258026, 16.460112], [49.258029, 16.460221], [49.25803, 16.460339], [49.258029, 16.460454], [49.258027, 16.460571], [49.258026, 16.460683], [49.258026, 16.460805], [49.258025, 16.460931], [49.258025, 16.461047], [49.258029, 16.461171], [49.258037, 16.461299], [49.258049, 16.461422], [49.258064, 16.461549], [49.258082, 16.461675], [49.258101, 16.461803], [49.258122, 16.461919], [49.258145, 16.462041], [49.258168, 16.462163], [49.258193, 16.462267], [49.258225, 16.462376], [49.258263, 16.462478], [49.258305, 16.462568], [49.258351, 16.46265], [49.258408, 16.462735], [49.258463, 16.4628], [49.25853, 16.462871], [49.258593, 16.462927], [49.258665, 16.462984], [49.258734, 16.463034], [49.258804, 16.46308], [49.258878, 16.463121], [49.258948, 16.463158], [49.259022, 16.463195], [49.259096, 16.463226], [49.259178, 16.46326], [49.259254, 16.463291], [49.259334, 16.463324], [49.259411, 16.463355], [49.259491, 16.463385], [49.25957, 16.463418], [49.25965, 16.463454], [49.259725, 16.463491], [49.259796, 16.463532], [49.259874, 16.463582], [49.259947, 16.463631], [49.260019, 16.463682], [49.260093, 16.463739], [49.260167, 16.4638], [49.260243, 16.463866], [49.260319, 16.463932], [49.260393, 16.464], [49.26046, 16.464066], [49.260526, 16.46414], [49.260589, 16.464219], [49.260648, 16.464302], [49.260704, 16.464391], [49.260758, 16.464484], [49.260816, 16.464586], [49.260871, 16.464685], [49.260919, 16.464783], [49.260969, 16.464893], [49.261017, 16.465006], [49.261064, 16.465116], [49.261109, 16.465227], [49.261153, 16.465343], [49.261196, 16.465463], [49.261234, 16.465586], [49.261266, 16.465713], [49.261294, 16.465841], [49.261318, 16.46597], [49.261337, 16.466091], [49.261354, 16.466222], [49.26137, 16.466362], [49.261382, 16.466496], [49.261391, 16.466631], [49.261398, 16.466757], [49.261404, 16.466891], [49.261405, 16.467017], [49.261397, 16.467144], [49.261386, 16.467266], [49.261369, 16.467382], [49.261351, 16.467474], [49.261326, 16.467588], [49.261303, 16.467693], [49.261281, 16.467792], [49.261253, 16.467912], [49.261229, 16.468015], [49.261203, 16.468117], [49.261179, 16.468226], [49.261156, 16.468325], [49.261132, 16.468427], [49.261108, 16.468527], [49.261082, 16.468637], [49.261056, 16.46874], [49.26103, 16.468842], [49.261003, 16.468947], [49.260976, 16.469054], [49.260949, 16.469159], [49.260918, 16.469272], [49.260892, 16.469377], [49.260867, 16.469472], [49.260837, 16.469589], [49.260811, 16.469692], [49.260783, 16.469795], [49.260754, 16.469909], [49.260727, 16.470012], [49.260698, 16.470121], [49.26067, 16.470219], [49.260641, 16.470325], [49.260615, 16.470422], [49.260589, 16.470522], [49.260561, 16.47063], [49.260532, 16.470737], [49.260509, 16.470829], [49.260484, 16.470935], [49.260459, 16.471044], [49.260436, 16.471145], [49.260409, 16.471254], [49.260386, 16.471356], [49.260362, 16.471461], [49.260338, 16.471566], [49.260312, 16.47168], [49.260289, 16.471785], [49.260267, 16.47189], [49.260243, 16.471995], [49.26022, 16.4721], [49.2602, 16.472202], [49.260179, 16.472309], [49.260156, 16.472423], [49.260137, 16.472522], [49.260137, 16.472522], [49.260137, 16.472522], [49.260137, 16.472522], [49.260055, 16.472944], [49.260049, 16.472972], [49.260025, 16.473089], [49.260002, 16.473212], [49.259979, 16.473331], [49.259958, 16.473434], [49.259935, 16.473555], [49.259912, 16.473675], [49.25989, 16.473791], [49.259865, 16.473916], [49.25984, 16.474033], [49.259811, 16.474163], [49.259782, 16.474283], [49.259752, 16.474413], [49.259723, 16.474529], [49.259691, 16.474655], [49.259659, 16.474775], [49.259625, 16.474899], [49.259594, 16.475012], [49.259562, 16.47513], [49.25953, 16.475246], [49.259497, 16.475371], [49.259464, 16.475489], [49.259435, 16.475601], [49.259405, 16.475716], [49.259375, 16.475835], [49.259345, 16.475955], [49.259316, 16.476072], [49.259285, 16.476197], [49.259255, 16.476312], [49.259225, 16.476425], [49.259192, 16.476539], [49.259157, 16.476655], [49.259124, 16.476771], [49.259093, 16.476887], [49.259065, 16.476993], [49.259036, 16.477099], [49.259006, 16.477203], [49.258966, 16.47732], [49.258923, 16.477439], [49.258878, 16.477552], [49.258834, 16.477663], [49.258792, 16.477772], [49.25875, 16.47788], [49.258709, 16.477982], [49.258667, 16.478084], [49.258622, 16.478185], [49.258578, 16.478291], [49.258536, 16.478392], [49.258487, 16.478502], [49.258437, 16.478607], [49.258387, 16.478705], [49.258338, 16.478808], [49.25829, 16.478908], [49.258239, 16.479008], [49.258187, 16.479102], [49.258136, 16.479194], [49.258077, 16.479293], [49.25802, 16.479384], [49.257961, 16.479474], [49.2579, 16.479563], [49.257839, 16.479647], [49.257773, 16.479737], [49.257708, 16.479822], [49.257647, 16.479902], [49.25758, 16.479983], [49.257513, 16.480061], [49.257449, 16.480138], [49.257449, 16.480138], [49.257449, 16.480138], [49.257238, 16.480389], [49.25718, 16.480444], [49.257108, 16.480507], [49.257032, 16.480574], [49.25696, 16.480639], [49.256885, 16.480709], [49.256807, 16.48078], [49.25673, 16.480853], [49.256651, 16.480925], [49.256574, 16.480998], [49.256495, 16.481067], [49.256417, 16.481138], [49.256336, 16.481208], [49.256245, 16.481285], [49.256245, 16.481285], [49.256245, 16.481285], [49.256108, 16.481391], [49.256035, 16.481437], [49.255959, 16.48147], [49.255875, 16.48149], [49.255783, 16.481503], [49.255693, 16.481508], [49.255608, 16.481508], [49.255512, 16.481503], [49.255431, 16.481496], [49.255349, 16.481489], [49.25526, 16.481479], [49.255175, 16.481465], [49.255096, 16.481448], [49.255018, 16.481432], [49.254937, 16.481421], [49.25486, 16.481413], [49.254777, 16.481405], [49.254702, 16.481408], [49.254614, 16.48141], [49.25453, 16.481414], [49.254448, 16.481418], [49.254367, 16.481426], [49.254281, 16.48144], [49.254199, 16.481451], [49.254118, 16.481463], [49.254037, 16.481476], [49.253949, 16.481484], [49.253867, 16.481492], [49.253779, 16.4815], [49.253701, 16.481509], [49.253622, 16.481527], [49.253545, 16.481553], [49.253478, 16.481587], [49.2534, 16.481636], [49.253327, 16.481693], [49.253253, 16.481758], [49.253186, 16.481831], [49.253125, 16.481908], [49.25307, 16.481992], [49.253021, 16.482081], [49.252982, 16.482178], [49.252937, 16.482293], [49.252893, 16.482412], [49.252856, 16.482523], [49.252821, 16.482646], [49.252792, 16.482764], [49.25276, 16.482893], [49.25273, 16.483012], [49.252701, 16.48313], [49.252701, 16.48313], [49.252701, 16.48313], [49.252649, 16.483328], [49.252615, 16.48344], [49.252574, 16.483555], [49.252531, 16.483662], [49.252482, 16.483762], [49.252429, 16.483858], [49.252372, 16.48395], [49.252314, 16.484035], [49.252258, 16.484118], [49.252199, 16.484202], [49.252137, 16.484288], [49.252075, 16.484373], [49.252016, 16.484456], [49.251967, 16.484538], [49.251919, 16.484638], [49.251878, 16.484745], [49.251839, 16.48486], [49.25181, 16.484971], [49.251787, 16.485084], [49.251762, 16.485215], [49.251738, 16.485332], [49.251716, 16.485453], [49.251698, 16.485569], [49.25168, 16.485695], [49.251666, 16.48581], [49.251654, 16.485942], [49.251641, 16.486077], [49.251631, 16.486199], [49.251619, 16.486321], [49.251605, 16.486442], [49.251585, 16.486574], [49.251564, 16.486688], [49.251541, 16.486807], [49.251512, 16.486933], [49.251512, 16.486933], [49.251398, 16.487222], [49.251389, 16.487238], [49.251388, 16.487242], [49.251386, 16.487246], [49.251384, 16.487249], [49.251383, 16.487253], [49.251381, 16.487257], [49.251379, 16.487264], [49.251377, 16.487266], [49.251377, 16.487266], [49.251375, 16.487267], [49.251348, 16.487285], [49.251307, 16.487315], [49.251261, 16.487346], [49.251208, 16.487382], [49.251154, 16.487422], [49.251094, 16.487463], [49.25103, 16.487505], [49.250965, 16.487546], [49.2509, 16.487584], [49.250842, 16.487615], [49.250777, 16.487647], [49.250703, 16.487681], [49.250636, 16.487711], [49.250576, 16.487737], [49.250481, 16.487778], [49.25041, 16.487807], [49.250339, 16.487834], [49.250265, 16.487864], [49.250186, 16.487898], [49.250117, 16.487932], [49.250042, 16.487981], [49.249972, 16.488035], [49.249906, 16.488095], [49.249838, 16.488168], [49.249775, 16.488246], [49.249723, 16.488325], [49.249675, 16.488419], [49.249635, 16.488516], [49.249601, 16.488618], [49.249572, 16.488732], [49.249548, 16.488846], [49.249532, 16.488966], [49.249522, 16.489088], [49.24952, 16.489209], [49.249521, 16.48934], [49.249521, 16.489472], [49.249524, 16.489609], [49.249529, 16.489727], [49.249538, 16.489856], [49.249546, 16.489989], [49.249556, 16.490114], [49.249566, 16.490243], [49.249575, 16.490385], [49.249583, 16.490515], [49.249587, 16.490662], [49.24959, 16.490788], [49.249596, 16.490913], [49.249602, 16.491046], [49.249601, 16.491175], [49.249601, 16.491295], [49.249601, 16.491412], [49.249596, 16.491538], [49.24959, 16.491661], [49.249582, 16.491783], [49.249569, 16.491902], [49.249552, 16.492027], [49.249534, 16.492155], [49.249511, 16.492288], [49.249483, 16.492412], [49.249448, 16.492557], [49.249411, 16.492713], [49.249382, 16.492831], [49.249352, 16.492949], [49.24932, 16.493079], [49.249283, 16.493216], [49.249248, 16.493346], [49.249216, 16.493466], [49.249178, 16.493599], [49.249142, 16.493727], [49.249104, 16.493858], [49.249069, 16.493975], [49.249026, 16.494105], [49.248984, 16.494227], [49.248939, 16.494354], [49.248894, 16.494482], [49.24885, 16.494593], [49.248801, 16.494719], [49.248801, 16.494719], [49.248801, 16.494719], [49.248801, 16.494719], [49.248663, 16.495053], [49.248622, 16.495141], [49.24857, 16.495248], [49.248517, 16.495354], [49.24846, 16.495468], [49.248404, 16.495578], [49.248347, 16.495687], [49.248291, 16.495796], [49.248233, 16.49591], [49.248233, 16.49591], [49.248233, 16.49591], [49.248233, 16.49591], [49.248233, 16.49591], [49.248058, 16.496233], [49.248011, 16.496317], [49.247954, 16.496408], [49.247895, 16.496499], [49.24783, 16.496597], [49.24777, 16.496692], [49.247709, 16.496789], [49.247649, 16.496887], [49.247589, 16.496987], [49.247523, 16.497096], [49.247464, 16.497195], [49.2474, 16.4973], [49.247335, 16.497407], [49.24727, 16.497517], [49.247202, 16.49763], [49.247143, 16.497729], [49.24708, 16.497833], [49.247016, 16.497944], [49.246956, 16.498045], [49.246891, 16.498155], [49.246833, 16.498255], [49.246769, 16.498367], [49.246709, 16.498473], [49.246646, 16.498581], [49.24659, 16.498678], [49.246533, 16.498779], [49.246483, 16.498876], [49.246431, 16.498981], [49.246376, 16.499088], [49.246324, 16.499195], [49.246267, 16.49931], [49.246217, 16.499414], [49.246167, 16.499525], [49.246117, 16.499639], [49.246064, 16.499759], [49.246016, 16.499868], [49.245966, 16.499982], [49.245917, 16.500104], [49.245865, 16.500233], [49.245838, 16.500299], [49.245793, 16.500413], [49.245747, 16.50053], [49.245702, 16.500654], [49.245659, 16.500773], [49.245619, 16.500885], [49.245581, 16.501008], [49.245542, 16.501127], [49.245499, 16.501252], [49.24546, 16.501359], [49.245413, 16.501483], [49.245366, 16.501609], [49.245327, 16.501718], [49.245285, 16.501834], [49.24524, 16.501952], [49.245191, 16.502071], [49.245144, 16.502184], [49.245096, 16.502299], [49.245045, 16.502418], [49.244994, 16.502536], [49.244946, 16.502644], [49.244895, 16.502753], [49.244841, 16.502858], [49.244787, 16.502959], [49.244727, 16.503066], [49.244671, 16.503169], [49.244611, 16.503263], [49.244551, 16.503356], [49.244484, 16.503455], [49.244417, 16.503549], [49.244353, 16.503639], [49.244283, 16.503732], [49.244217, 16.503819], [49.244151, 16.503909], [49.244081, 16.504005], [49.244009, 16.504098], [49.243937, 16.504192], [49.243864, 16.504285], [49.243798, 16.504371], [49.243733, 16.504457], [49.243663, 16.504554], [49.243602, 16.504641], [49.243533, 16.504739], [49.243469, 16.504833], [49.243404, 16.504927], [49.24334, 16.505026], [49.243278, 16.505127], [49.243216, 16.505233], [49.243155, 16.505339], [49.243095, 16.505443], [49.243032, 16.50555], [49.242974, 16.505645], [49.242911, 16.50575], [49.242847, 16.505856], [49.242781, 16.505963], [49.242721, 16.506061], [49.242661, 16.50616], [49.2426, 16.50626], [49.242531, 16.506381], [49.242469, 16.506492], [49.242406, 16.506602], [49.242346, 16.5067], [49.242287, 16.506798], [49.242224, 16.506899], [49.242158, 16.507001], [49.242098, 16.507095], [49.242037, 16.507189], [49.24197, 16.507285], [49.24197, 16.507285], [49.24197, 16.507285], [49.24197, 16.507285], [49.24197, 16.507285], [49.24197, 16.507285], [49.241728, 16.507611], [49.241674, 16.507685], [49.241613, 16.507774], [49.241542, 16.507871], [49.241475, 16.507964], [49.241404, 16.508055], [49.241335, 16.508142], [49.241272, 16.508228], [49.241204, 16.508322], [49.241137, 16.508417], [49.241076, 16.508509], [49.241012, 16.508606], [49.240952, 16.508704], [49.240899, 16.508801], [49.240846, 16.508906], [49.240846, 16.508906], [49.240734, 16.509119], [49.240692, 16.509202], [49.240637, 16.509298], [49.240582, 16.509386], [49.240522, 16.509467], [49.24045, 16.509552], [49.240383, 16.50962], [49.240308, 16.509701], [49.240245, 16.509772], [49.240175, 16.509858], [49.240106, 16.509946], [49.240035, 16.510041], [49.239965, 16.510137], [49.239904, 16.510234], [49.239844, 16.510336], [49.239793, 16.510423], [49.239736, 16.510517], [49.239736, 16.510517], [49.239736, 16.510517], [49.239736, 16.510517], [49.239736, 16.510517], [49.239564, 16.510781], [49.239547, 16.510808], [49.239484, 16.510906], [49.239484, 16.510906], [49.239413, 16.511021], [49.239349, 16.511123], [49.239284, 16.511225], [49.239284, 16.511225], [49.239213, 16.511341], [49.239144, 16.511452], [49.239092, 16.511549], [49.23903, 16.511669], [49.238976, 16.511777], [49.238925, 16.511887], [49.238877, 16.511992], [49.238831, 16.512107], [49.238786, 16.512221], [49.238745, 16.512325], [49.238702, 16.512439], [49.238702, 16.512439], [49.23864, 16.512609], [49.2386, 16.512721], [49.238566, 16.512829], [49.238531, 16.512947], [49.238497, 16.513067], [49.238462, 16.513191], [49.238428, 16.513302], [49.238398, 16.513421], [49.238374, 16.513536], [49.238355, 16.513648], [49.238355, 16.513648], [49.238355, 16.513648], [49.238309, 16.513948], [49.238309, 16.513948], [49.238309, 16.513978], [49.238311, 16.513995], [49.238317, 16.514012], [49.238327, 16.514027], [49.238343, 16.514043], [49.238389, 16.514078], [49.238403, 16.51409], [49.238419, 16.514102], [49.238419, 16.514102], [49.238462, 16.514135], [49.238473, 16.514141], [49.238512, 16.514137], [49.238561, 16.51412], [49.238561, 16.51412], [49.238617, 16.514108], [49.238617, 16.514108]], "type": "latlng", "resolution": "high", "original_size": 1719, "series_type": "time"}, {"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravaspmtestdata.txt b/rowers/testdata/stravaspmtestdata.txt
index b8a3ae4f..67c17a1f 100644
--- a/rowers/testdata/stravaspmtestdata.txt
+++ b/rowers/testdata/stravaspmtestdata.txt
@@ -1 +1 @@
-[{"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}, {"data": [41, 36, 30, 27, 25, 25, 25, 26, 26, 26, 26, 26, 25, 26, 26, 26, 27, 26, 25, 26, 26, 26, 26, 26, 26, 26, 25, 25, 26, 25, 25, 26, 25, 26, 26, 26, 25, 26, 26, 25, 26, 25, 25, 25, 25, 26, 26, 26, 26, 25, 26, 26, 25, 25, 26, 26, 25, 25, 25, 25, 26, 26, 26, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 26, 26, 26, 26, 26, 26, 25, 25, 26, 26, 26, 26, 26, 26, 26, 25, 25, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 27, 26, 26, 27, 27, 26, 26, 27, 26, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 27, 26, 26, 27, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 27, 27, 26, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 27, 26, 26, 27, 27, 26, 26, 26, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 27, 26, 26, 26, 26, 27, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 27, 27, 26, 26, 26, 27, 27, 27, 26, 26, 26, 27, 27, 27, 27, 26, 27, 26, 28, 27, 27, 27, 26, 26, 26, 26, 27, 27, 26, 27, 27, 27, 27, 27, 28, 26, 27, 26, 26, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 26, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 26, 27, 27, 27, 26, 26, 26, 27, 27, 26, 27, 26, 26, 26, 26, 27, 27, 27, 27, 26, 27, 27, 26, 27, 27, 27, 27, 26, 27, 27, 27, 27, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 28, 27, 27, 28, 28, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 28, 27, 28, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 28, 28, 28, 28, 28, 27, 28, 27, 27, 27, 28, 28, 28, 28, 28, 28, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 29, 28, 28, 28, 28, 28, 28, 28, 27, 28, 27, 28, 28, 28, 28, 28, 28, 27, 28, 28, 27, 27, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 28, 27, 28, 28, 28, 27, 27, 28, 27, 27, 27, 27, 27, 27, 28, 28, 28, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 28, 29, 29, 28], "type": "cadence", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}, {"data": [38, 54, 64, 16, 16, 12, 12, 12, 12, 12, 12, 12, 12, 44, 28, 34, 25, 43, 26, 27, 9, 62, 16, 16, 16, 18, 16, 19, 19, 18, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 14, 18, 17, 18, 16, 16, 14, 17, 18, 18, 16, 18, 15, 18, 17, 18, 15, 17, 16, 18, 15, 16, 16, 16, 18, 18, 15, 18, 18, 18, 18, 18, 18, 18, 16, 18, 18, 19, 16, 18, 18, 18, 14, 18, 18, 18, 18, 19, 18, 20, 18, 18, 20, 19, 19, 19, 20, 19, 20, 20, 19, 18, 20, 20, 18, 18, 18, 18, 18, 19, 19, 19, 20, 19, 20, 20, 20, 20, 20, 19, 20, 19, 19, 20, 19, 19, 20, 19, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 18, 19, 20, 19, 17, 18, 16, 17, 18, 18, 19, 18, 18, 18, 16, 18, 19, 18, 18, 18, 17, 18, 17, 18, 18, 17, 18, 18, 18, 16, 18, 17, 19, 18, 20, 20, 19, 20, 19, 19, 18, 19, 18, 18, 19, 19, 19, 18, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 21, 21, 21, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 21, 22, 21, 21, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 21, 22, 22, 21, 22, 22, 22, 21, 21, 22, 22, 21, 21, 22, 22, 22, 21, 22, 21, 20, 20, 20, 22, 22, 23, 22, 23, 22, 22, 22, 21, 22, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 20, 20, 21, 21, 22, 22, 22, 22, 20, 20, 20, 20, 20, 20, 20, 22, 22, 20, 20, 22, 21, 21, 20, 21, 21, 30, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, 21, 20, 22, 20, 21, 21, 21, 20, 20, 21, 22, 20, 21, 20, 21, 21, 20, 22, 22, 22, 22, 26, 27, 28, 27, 27, 27, 28, 28, 27, 30, 30, 28, 29, 28, 28, 28, 28, 28, 29, 28, 28, 28, 27, 27, 26, 27, 27, 27, 27, 26, 28, 28, 28, 27, 28, 28, 28, 28, 28, 30, 28, 28, 29, 28, 27, 28, 28, 27, 28, 28, 28, 28, 28, 28, 28, 28, 30, 28, 30, 28, 28, 28, 28, 29, 28, 28, 28, 30, 28, 30, 28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 29, 28, 30, 28, 28, 29, 28, 30, 28, 28, 28, 28, 28, 28, 27, 28, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 28, 28, 27, 27, 24, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 20, 20, 20, 20, 20, 19, 20, 19, 19, 20, 19, 20, 19, 20, 20, 20, 20, 20, 21, 20, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 18, 19, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 20, 20, 20, 20, 20, 20, 20, 23, 28, 30, 32, 32, 31, 32, 30, 30, 31, 32, 32, 32, 32, 32, 32, 33, 32, 31, 32, 32, 32, 32, 31, 32, 32, 32, 31, 30, 30, 30, 31, 30, 30, 28, 30, 30, 22, 18, 19, 18, 18, 18, 18, 19, 18, 19, 18, 20, 24, 24, 8, 30, 49, 18, 18, 18, 14, 18, 18, 19, 18, 19, 19, 19, 20, 18, 18, 19, 19, 18, 18, 18, 19, 19, 18, 18, 18, 18, 18, 18, 19, 19, 18, 19, 19, 19, 20, 20, 20, 20, 22, 30, 32, 34, 32, 32, 32, 32, 31, 32, 30, 32, 32, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 20, 19, 18, 20, 19, 19, 18, 19, 18, 20, 19, 19, 18, 20, 20, 19, 21, 20, 20, 20, 21, 21, 21, 21, 9, 19, 18, 19, 19, 20, 22, 24, 28, 30, 30, 30, 28, 30, 28, 30, 28, 28, 29, 30, 30, 28, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 32, 31, 32, 32, 30, 32, 30, 32, 31, 32, 30, 31, 32, 30, 22, 20, 19, 18, 18, 18, 18, 16, 18, 19, 19, 19, 20, 20, 19, 14, 20, 19, 18, 18, 8, 30, 30, 30, 30, 32, 24, 34, 28, 82, 24, 94, 33, 30, 32, 34, 34, 34, 34, 34, 34, 34, 34, 34, 26, 30, 36, 26, 26, 27, 18, 56, 17, 15, 16, 32, 32, 20, 14, 14, 23, 23, 23, 23, 23, 23, 16, 16, 16, 16, 16, 16, 16, 16, 30, 22, 22, 28, 52, 24, 22, 13, 44, 28, 30, 42, 33, 33, 33, 8, 36, 36, 36, 36, 36, 23, 34, 42, 44, 54, 20, 19, 20, 20, 20, 20, 30, 46, 19, 20, 30, 19, 20, 21, 20, 21, 20, 20, 21, 20, 20, 21, 21, 20, 22, 18, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 18, 16, 20, 19, 18, 19, 20, 20, 20, 20, 22, 22, 21, 22, 22, 27, 30, 32, 32, 32, 33, 31, 32, 32, 33, 32, 33, 30, 32, 31, 32, 31, 32, 32, 32, 32, 32, 32, 31, 33, 32, 32, 32, 33, 32, 32, 32, 32, 32, 30, 32, 32, 32, 32, 32, 32, 32, 32, 31, 32, 32, 32, 32, 32, 31, 32, 33, 32, 33, 34, 32, 32, 32, 32, 32, 16, 18, 18, 16, 16, 16, 16, 17, 17, 18, 19, 18, 19, 19, 18, 19, 20, 20, 20, 20, 36, 32, 32, 8, 22, 16, 18, 18, 18, 18, 19, 20, 19, 20, 20, 20, 19, 20, 20, 21, 21, 20, 22, 24, 32, 36, 36, 36, 35, 35, 36, 36, 34, 34, 35, 35, 34, 35, 34, 34, 34, 33, 33, 12, 20, 18, 18, 19, 19, 19, 18, 19, 18, 18, 19, 19, 19, 18, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 18, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 22, 23, 26, 30, 30, 29, 30, 28, 30, 28, 30, 30, 28, 30, 30, 30, 30, 28, 29, 30, 28, 30, 28, 30, 30, 30, 28, 28, 30, 28, 28, 28, 28, 29, 30, 28, 30, 28, 28, 29, 30, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 28, 35, 14, 14, 17, 18, 19, 18, 19, 20, 20, 20, 20, 19, 20, 18, 19, 19, 20, 20, 20, 20, 20, 21, 20, 20, 20, 20, 19, 18, 19, 19, 18, 17, 16, 18, 18, 20, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 20, 20, 20, 20, 20, 18, 17, 18, 19, 20, 18, 18, 18, 18, 19, 20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 22, 21, 21, 22, 21, 20, 21, 21, 22, 20, 21, 21, 22, 20, 20, 21, 21, 21, 22, 22, 22, 22, 21, 22, 22, 21, 22, 21, 20, 20, 21, 21, 20, 21, 20, 20, 20, 20, 12, 20, 21, 22, 22, 21, 22, 22, 21, 22, 22, 22, 23, 22, 23, 22, 22, 22, 22, 21, 22, 22, 22, 22, 21, 22, 21, 21, 21, 22, 21, 22, 22, 21, 21, 16, 26, 30, 36, 60, 26, 60, 22, 21, 21, 61, 34, 43, 43, 42, 42, 38, 37, 38, 38, 38, 38, 36, 36, 36, 30, 24, 24, 23, 22, 22, 22, 21, 21, 20, 20, 23, 21, 22, 22, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 14, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 20, 18, 18, 18, 18, 19, 16, 16, 18, 18, 18, 19, 18, 18, 18, 18, 18, 18, 20, 18, 18, 18, 18, 18, 19, 19, 18, 18, 18, 19, 18, 18, 16, 18, 18, 17, 17, 18, 18, 18, 17, 18, 18, 18, 20, 18, 18, 19, 18, 20, 19, 19, 18, 19, 19, 18, 35, 12, 17, 18, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 19, 19, 19, 18, 19, 19, 19, 19, 19, 18, 18, 19, 19, 18, 19, 19, 19, 20, 19, 18, 19, 20, 20, 18, 18, 18, 20, 20, 20, 19, 20, 20, 20, 19, 19, 19, 19, 19, 19, 12, 16, 18, 18, 20, 18, 19, 20, 19, 19, 19, 20, 20, 18, 18, 18, 8, 17, 17, 18, 16, 17, 17, 16, 18, 16, 17, 17, 16, 18, 17, 18, 19, 19, 19, 19, 19, 30, 37, 16, 16, 14, 18, 18, 18, 16, 18, 18, 16, 18, 18, 19, 16, 18, 18, 18, 18, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 21, 21, 34, 35, 35, 36, 32, 16, 40, 27, 27, 37, 11, 18, 19, 19, 33, 33], "type": "cadence", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravatimetestdata.txt b/rowers/testdata/stravatimetestdata.txt
index d2da53c6..ea0118a2 100644
--- a/rowers/testdata/stravatimetestdata.txt
+++ b/rowers/testdata/stravatimetestdata.txt
@@ -1 +1 @@
-[{"data": [0, 2, 4, 6, 8, 11, 13, 14, 17, 19, 23, 25, 26, 28, 30, 34, 36, 37, 41, 43, 44, 47, 49, 52, 55, 56, 58, 61, 64, 66, 68, 72, 75, 78, 79, 83, 86, 87, 89, 91, 93, 96, 98, 101, 103, 105, 108, 111, 112, 116, 117, 121, 122, 124, 127, 129, 131, 133, 136, 138, 140, 143, 145, 148, 150, 154, 157, 159, 163, 165, 166, 169, 171, 173, 175, 178, 180, 182, 185, 187, 190, 192, 194, 197, 199, 201, 203, 206, 210, 212, 213, 215, 218, 220, 223, 225, 227, 229, 232, 235, 236, 240, 241, 243, 246, 248, 250, 253, 255, 257, 260, 262, 265, 267, 269, 271, 273, 276, 278, 280, 283, 285, 287, 290, 293, 295, 297, 299, 302, 304, 306, 308, 311, 313, 315, 319, 320, 322, 325, 327, 330, 332, 334, 338, 339, 341, 344, 345, 348, 350, 352, 354, 357, 359, 361, 364, 366, 369, 371, 373, 375, 377, 380, 382, 385, 388, 390, 391, 394, 396, 398, 400, 402, 405, 407, 409, 411, 415, 417, 418, 420, 423, 425, 427, 430, 432, 435, 438, 439, 441, 443, 444, 446, 448, 451, 453, 455, 457, 460, 462, 464, 466, 469, 471, 473, 475, 478, 480, 482, 485, 487, 489, 492, 494, 497, 498, 500, 503, 505, 508, 510, 512, 514, 516, 520, 521, 523, 525, 528, 530, 532, 534, 537, 539, 542, 544, 546, 548, 550, 553, 554, 555, 559, 562, 564, 566, 570, 571, 573, 575, 578, 580, 582, 585, 587, 589, 592, 595, 596, 598, 600, 603, 605, 607, 609, 612, 614, 616, 619, 621, 624, 626, 628, 630, 632, 634, 637, 639, 641, 643, 646, 648, 650, 652, 655, 657, 659, 661, 664, 665, 668, 670, 673, 675, 677, 679, 682, 684, 686, 688, 691, 693, 695, 697, 700, 702, 704, 706, 708, 711, 713, 715, 718, 720, 722, 725, 726, 730, 731, 733, 735, 739, 740, 742, 744, 746, 750, 751, 753, 755, 758, 760, 762, 764, 767, 769, 771, 774, 777, 778, 780, 783, 785, 788, 790, 792, 794, 796, 798, 801, 804, 806, 808, 810, 812, 815, 817, 819, 822, 823, 826, 828, 830, 832, 834, 837, 839, 842, 844, 845, 848, 850, 853, 855, 856, 859, 862, 863, 865, 868, 870, 872, 874, 877, 879, 881, 883, 886, 888, 890, 892, 895, 897, 899, 902, 904, 906, 908, 910, 912, 915, 917, 919, 921, 924, 926, 928, 930, 932, 935, 937, 939, 941, 944, 946, 948, 950, 952, 955, 957, 959, 961, 964, 966, 968, 971, 973, 975, 977, 979, 981, 983, 986, 988, 990, 992, 994, 996, 999, 1001, 1003, 1006, 1008, 1010, 1012, 1014, 1016, 1019, 1021, 1023, 1025, 1027, 1030, 1032, 1034, 1037, 1038, 1041, 1043, 1045, 1048, 1049, 1052, 1054, 1057, 1059, 1061, 1063, 1065, 1067, 1070, 1072, 1074, 1076, 1079, 1081, 1083, 1085, 1088, 1090, 1092, 1095, 1097, 1099, 1101, 1104, 1106, 1107, 1110, 1111, 1112, 1114, 1117, 1118, 1121, 1123, 1125, 1127, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1145, 1147, 1149, 1151, 1153, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1173, 1175, 1177, 1179, 1181, 1183, 1186, 1188, 1190, 1193, 1194, 1196, 1199, 1201, 1203, 1206, 1207, 1210, 1211, 1214, 1216, 1218, 1221, 1223, 1225, 1227, 1229, 1231, 1233, 1235, 1237, 1240, 1242, 1244, 1246, 1249, 1251, 1253, 1255, 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1273, 1275, 1277, 1279, 1281, 1284, 1286, 1288, 1290, 1293, 1294, 1297, 1299, 1301, 1303, 1306, 1308, 1310, 1311, 1314, 1316, 1318, 1320, 1322, 1324, 1326, 1329, 1331, 1333, 1335, 1337], "type": "time", "resolution": "high", "original_size": 595, "series_type": "distance"}, {"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravavelotestdata.txt b/rowers/testdata/stravavelotestdata.txt
index 5a219353..ed856444 100644
--- a/rowers/testdata/stravavelotestdata.txt
+++ b/rowers/testdata/stravavelotestdata.txt
@@ -1 +1 @@
-[{"data": [12.0, 22.0, 31.0, 40.0, 53.0, 62.0, 71.0, 80.0, 93.0, 101.0, 116.0, 125.0, 130.0, 142.0, 151.0, 165.0, 174.0, 182.0, 197.0, 205.0, 214.0, 227.0, 236.0, 246.0, 259.0, 268.0, 276.0, 286.0, 299.0, 312.0, 317.0, 334.0, 349.0, 365.0, 370.0, 384.0, 397.0, 406.0, 412.0, 422.0, 432.0, 443.0, 455.0, 464.0, 478.0, 485.0, 500.0, 509.0, 517.0, 531.0, 538.0, 554.0, 559.0, 572.0, 585.0, 594.0, 601.0, 611.0, 622.0, 632.0, 643.0, 653.0, 664.0, 679.0, 685.0, 702.0, 717.0, 728.0, 742.0, 751.0, 758.0, 774.0, 779.0, 790.0, 800.0, 811.0, 821.0, 832.0, 842.0, 853.0, 867.0, 874.0, 884.0, 899.0, 905.0, 916.0, 926.0, 937.0, 953.0, 962.0, 971.0, 979.0, 989.0, 1000.0, 1012.0, 1021.0, 1031.0, 1042.0, 1052.0, 1069.0, 1073.0, 1088.0, 1094.0, 1104.0, 1115.0, 1125.0, 1136.0, 1146.0, 1156.0, 1167.0, 1177.0, 1191.0, 1200.0, 1213.0, 1222.0, 1229.0, 1239.0, 1250.0, 1260.0, 1271.0, 1281.0, 1292.0, 1302.0, 1313.0, 1329.0, 1334.0, 1344.0, 1355.0, 1365.0, 1375.0, 1386.0, 1396.0, 1407.0, 1418.0, 1427.0, 1442.0, 1448.0, 1458.0, 1469.0, 1479.0, 1495.0, 1500.0, 1510.0, 1527.0, 1536.0, 1541.0, 1558.0, 1562.0, 1572.0, 1585.0, 1592.0, 1603.0, 1613.0, 1623.0, 1633.0, 1643.0, 1654.0, 1669.0, 1679.0, 1685.0, 1695.0, 1705.0, 1715.0, 1725.0, 1741.0, 1751.0, 1760.0, 1765.0, 1782.0, 1791.0, 1799.0, 1807.0, 1817.0, 1827.0, 1838.0, 1848.0, 1858.0, 1872.0, 1885.0, 1889.0, 1899.0, 1909.0, 1919.0, 1929.0, 1940.0, 1950.0, 1965.0, 1975.0, 1984.0, 1993.0, 1999.0, 2002.0, 2015.0, 2023.0, 2033.0, 2044.0, 2054.0, 2064.0, 2074.0, 2084.0, 2095.0, 2105.0, 2115.0, 2125.0, 2135.0, 2145.0, 2155.0, 2165.0, 2175.0, 2185.0, 2196.0, 2206.0, 2222.0, 2231.0, 2240.0, 2247.0, 2257.0, 2268.0, 2278.0, 2294.0, 2303.0, 2308.0, 2321.0, 2329.0, 2344.0, 2353.0, 2360.0, 2370.0, 2380.0, 2390.0, 2401.0, 2411.0, 2421.0, 2431.0, 2447.0, 2452.0, 2462.0, 2472.0, 2482.0, 2496.0, 2499.0, 2502.0, 2519.0, 2536.0, 2545.0, 2553.0, 2568.0, 2577.0, 2584.0, 2594.0, 2608.0, 2617.0, 2626.0, 2635.0, 2648.0, 2656.0, 2670.0, 2680.0, 2686.0, 2696.0, 2706.0, 2717.0, 2727.0, 2737.0, 2747.0, 2757.0, 2767.0, 2777.0, 2788.0, 2798.0, 2810.0, 2823.0, 2832.0, 2841.0, 2849.0, 2858.0, 2873.0, 2879.0, 2889.0, 2899.0, 2910.0, 2920.0, 2930.0, 2940.0, 2950.0, 2963.0, 2970.0, 2981.0, 2991.0, 2997.0, 3011.0, 3021.0, 3035.0, 3042.0, 3052.0, 3062.0, 3076.0, 3082.0, 3092.0, 3102.0, 3113.0, 3123.0, 3133.0, 3143.0, 3157.0, 3163.0, 3172.0, 3183.0, 3192.0, 3202.0, 3212.0, 3223.0, 3237.0, 3242.0, 3252.0, 3268.0, 3272.0, 3286.0, 3291.0, 3301.0, 3311.0, 3327.0, 3331.0, 3344.0, 3351.0, 3362.0, 3376.0, 3382.0, 3392.0, 3403.0, 3413.0, 3426.0, 3433.0, 3443.0, 3453.0, 3464.0, 3474.0, 3484.0, 3500.0, 3505.0, 3515.0, 3525.0, 3535.0, 3551.0, 3560.0, 3565.0, 3576.0, 3585.0, 3596.0, 3609.0, 3619.0, 3632.0, 3641.0, 3647.0, 3657.0, 3669.0, 3682.0, 3690.0, 3700.0, 3709.0, 3722.0, 3728.0, 3738.0, 3748.0, 3758.0, 3768.0, 3778.0, 3794.0, 3803.0, 3808.0, 3818.0, 3828.0, 3844.0, 3853.0, 3858.0, 3868.0, 3880.0, 3888.0, 3898.0, 3911.0, 3919.0, 3929.0, 3939.0, 3949.0, 3959.0, 3969.0, 3979.0, 3989.0, 4000.0, 4009.0, 4019.0, 4029.0, 4040.0, 4050.0, 4065.0, 4070.0, 4080.0, 4090.0, 4101.0, 4111.0, 4121.0, 4131.0, 4141.0, 4151.0, 4161.0, 4171.0, 4183.0, 4191.0, 4200.0, 4210.0, 4220.0, 4230.0, 4240.0, 4254.0, 4260.0, 4270.0, 4280.0, 4290.0, 4300.0, 4310.0, 4320.0, 4330.0, 4340.0, 4353.0, 4362.0, 4375.0, 4384.0, 4390.0, 4400.0, 4410.0, 4420.0, 4429.0, 4439.0, 4452.0, 4459.0, 4470.0, 4478.0, 4488.0, 4500.0, 4510.0, 4520.0, 4533.0, 4538.0, 4551.0, 4560.0, 4568.0, 4577.0, 4591.0, 4598.0, 4607.0, 4617.0, 4627.0, 4637.0, 4647.0, 4657.0, 4672.0, 4677.0, 4687.0, 4696.0, 4706.0, 4721.0, 4726.0, 4739.0, 4745.0, 4761.0, 4770.0, 4779.0, 4785.0, 4795.0, 4805.0, 4815.0, 4825.0, 4835.0, 4845.0, 4859.0, 4865.0, 4875.0, 4885.0, 4899.0, 4905.0, 4917.0, 4929.0, 4938.0, 4947.0, 4954.0, 4970.0, 4978.0, 4983.0, 4997.0, 4999.0, 5005.0, 5013.0, 5027.0, 5032.0, 5046.0, 5051.0, 5061.0, 5072.0, 5086.0, 5091.0, 5103.0, 5111.0, 5120.0, 5130.0, 5140.0, 5153.0, 5162.0, 5169.0, 5178.0, 5188.0, 5202.0, 5211.0, 5217.0, 5230.0, 5237.0, 5246.0, 5256.0, 5266.0, 5276.0, 5285.0, 5295.0, 5305.0, 5314.0, 5323.0, 5333.0, 5346.0, 5352.0, 5368.0, 5372.0, 5381.0, 5396.0, 5401.0, 5413.0, 5426.0, 5431.0, 5445.0, 5449.0, 5462.0, 5471.0, 5480.0, 5493.0, 5500.0, 5511.0, 5516.0, 5526.0, 5538.0, 5545.0, 5554.0, 5564.0, 5574.0, 5584.0, 5594.0, 5603.0, 5617.0, 5622.0, 5635.0, 5643.0, 5656.0, 5665.0, 5670.0, 5682.0, 5689.0, 5699.0, 5708.0, 5718.0, 5728.0, 5738.0, 5747.0, 5756.0, 5769.0, 5778.0, 5784.0, 5794.0, 5808.0, 5812.0, 5826.0, 5831.0, 5843.0, 5850.0, 5861.0, 5874.0, 5882.0, 5887.0, 5899.0, 5905.0, 5915.0, 5924.0, 5933.0, 5943.0, 5952.0, 5962.0, 5974.0, 5981.0, 5992.0, 5999.0], "type": "distance", "resolution": "high", "original_size": 595, "series_type": "distance"}, {"data": [0.0, 0.0, 4.8, 4.7, 5.2, 4.4, 3.6, 4.5, 5.2, 4.2, 3.8, 4.0, 4.1, 5.2, 5.2, 3.8, 3.8, 4.4, 4.6, 3.8, 4.6, 5.0, 4.4, 3.8, 3.8, 4.6, 5.0, 3.6, 3.8, 5.2, 4.4, 3.7, 4.6, 5.2, 5.1, 3.8, 3.9, 4.5, 4.7, 5.0, 4.3, 4.2, 4.6, 4.2, 4.6, 4.3, 4.4, 4.0, 4.6, 4.4, 4.2, 4.6, 4.2, 4.9, 5.2, 4.4, 4.1, 4.3, 4.2, 4.2, 4.6, 4.2, 4.2, 5.2, 4.2, 3.8, 4.6, 5.2, 4.2, 3.8, 4.3, 5.3, 4.2, 4.6, 4.3, 4.2, 4.2, 4.6, 4.2, 4.2, 5.0, 4.2, 4.4, 5.0, 4.2, 4.6, 4.5, 4.2, 3.9, 4.2, 4.9, 5.2, 3.6, 4.2, 4.6, 4.2, 4.4, 5.0, 4.2, 4.5, 4.4, 3.8, 4.2, 4.4, 4.2, 4.2, 4.6, 4.2, 4.0, 4.4, 4.2, 4.8, 4.6, 4.4, 4.4, 4.8, 4.3, 4.2, 4.2, 4.6, 4.2, 4.2, 4.4, 4.2, 4.5, 4.2, 4.4, 4.3, 4.2, 4.0, 4.4, 5.2, 4.2, 4.4, 4.4, 4.0, 4.2, 4.4, 4.2, 4.2, 5.2, 4.2, 4.4, 4.5, 5.2, 4.4, 4.4, 4.3, 4.4, 4.6, 4.3, 5.2, 4.2, 4.0, 4.3, 4.0, 4.2, 5.2, 5.0, 4.4, 4.3, 4.3, 4.0, 4.0, 5.2, 4.3, 3.8, 4.0, 5.2, 5.2, 4.9, 4.2, 4.3, 4.0, 4.2, 4.4, 5.2, 4.0, 4.5, 4.4, 5.4, 4.0, 4.0, 4.3, 4.2, 4.2, 5.0, 4.2, 4.9, 4.7, 4.8, 3.6, 4.4, 4.8, 3.6, 4.2, 4.4, 5.2, 4.0, 4.0, 4.4, 5.2, 4.0, 4.0, 4.3, 5.0, 4.0, 4.0, 4.3, 4.0, 4.2, 4.4, 5.2, 5.0, 3.6, 4.2, 4.3, 4.2, 4.2, 5.2, 5.0, 4.3, 4.5, 4.3, 3.8, 4.8, 4.4, 5.2, 4.0, 4.0, 4.4, 5.2, 4.0, 4.0, 5.2, 4.2, 4.4, 4.2, 5.0, 4.8, 4.5, 4.0, 4.0, 4.9, 5.2, 4.9, 3.8, 4.8, 4.4, 5.2, 4.8, 4.6, 4.6, 3.6, 4.4, 4.3, 4.4, 4.0, 4.3, 4.3, 5.2, 4.2, 4.2, 4.4, 5.0, 4.0, 4.0, 4.3, 4.2, 4.2, 4.4, 5.0, 4.9, 5.2, 4.3, 4.3, 4.8, 4.2, 4.4, 4.3, 4.2, 4.2, 4.4, 5.0, 4.0, 4.6, 4.3, 5.2, 4.2, 4.5, 4.3, 4.8, 4.8, 4.2, 4.4, 4.5, 4.8, 4.0, 4.3, 4.3, 4.2, 4.2, 4.4, 5.0, 4.8, 4.0, 4.1, 4.3, 4.8, 3.8, 4.0, 4.4, 5.0, 3.8, 4.1, 5.2, 5.0, 3.6, 3.8, 4.1, 5.0, 4.3, 4.0, 4.7, 4.8, 5.2, 4.2, 4.0, 4.3, 5.4, 4.2, 4.6, 4.3, 5.0, 4.0, 4.2, 4.4, 4.0, 4.3, 4.4, 5.2, 4.0, 4.0, 5.2, 5.0, 4.3, 4.2, 4.2, 5.2, 4.8, 3.8, 4.6, 4.6, 4.7, 4.2, 4.4, 5.0, 4.7, 3.6, 4.5, 4.6, 3.8, 4.1, 4.3, 5.0, 4.0, 4.0, 5.2, 5.0, 5.0, 4.0, 4.0, 5.2, 5.0, 5.0, 4.0, 3.7, 4.3, 5.0, 4.6, 4.2, 4.4, 4.7, 4.0, 4.0, 4.3, 5.0, 4.0, 4.2, 4.3, 5.0, 4.0, 4.2, 4.4, 5.0, 4.0, 4.3, 4.2, 5.2, 5.2, 4.0, 4.0, 4.3, 5.0, 4.0, 4.0, 4.6, 5.0, 4.8, 3.8, 4.0, 4.3, 5.0, 4.8, 4.0, 4.3, 4.3, 5.0, 4.0, 4.0, 4.3, 5.0, 4.0, 4.6, 4.6, 4.4, 4.4, 4.0, 4.2, 4.3, 5.0, 4.8, 3.8, 4.6, 4.3, 5.2, 4.3, 4.8, 4.4, 4.4, 4.6, 4.6, 3.6, 4.4, 4.5, 5.0, 4.3, 4.6, 4.2, 4.3, 4.3, 4.8, 4.0, 4.0, 4.3, 5.0, 5.0, 4.3, 3.8, 4.1, 5.0, 5.0, 4.7, 3.8, 4.4, 5.0, 4.9, 4.0, 4.2, 4.3, 4.0, 4.0, 4.3, 5.0, 4.8, 4.0, 4.3, 4.3, 4.8, 4.0, 4.6, 4.8, 4.2, 4.3, 4.2, 4.6, 4.8, 4.8, 4.5, 4.2, 4.4, 4.3, 4.4, 4.5, 4.7, 3.8, 4.1, 4.3, 5.0, 3.8, 4.4, 4.2, 4.8, 4.5, 4.8, 4.6, 4.4, 4.1, 4.2, 4.3, 4.8, 4.6, 4.1, 4.7, 4.3, 4.8, 4.3, 4.8, 4.0, 3.8, 4.1, 4.8, 4.8, 4.7, 3.8, 4.6, 4.1, 4.4, 4.3, 4.8, 4.8, 4.0, 4.6, 5.0, 5.0, 4.6, 4.6, 4.4, 4.4, 4.4, 4.4, 4.0, 4.4, 3.8, 4.3, 4.5, 4.8, 4.7, 4.3, 4.0, 4.0, 4.3, 4.8, 4.6, 3.8, 4.6, 4.3, 4.2, 4.4, 3.9, 4.3, 4.0, 4.8, 4.3, 3.8, 4.0, 4.3, 4.8, 4.7, 4.4, 4.4, 4.0, 4.2, 4.8, 4.7, 4.6, 3.8, 4.4, 4.0, 3.6, 4.8, 4.6, 5.2, 4.2, 3.6, 4.0, 4.2, 4.7, 4.7, 4.7, 3.8, 4.4, 4.1, 5.0, 4.2], "type": "velocity_smooth", "resolution": "high", "original_size": 595, "series_type": "distance"}]
\ No newline at end of file
+[{"data": [0, 1, 2, 6, 8, 11, 13, 16, 16, 16, 16, 16, 16, 29, 31, 33, 34, 36, 38, 46, 47, 48, 52, 55, 59, 62, 66, 69, 72, 76, 79, 82, 85, 89, 92, 95, 99, 102, 105, 107, 109, 112, 115, 117, 120, 124, 127, 131, 133, 135, 138, 142, 144, 146, 149, 153, 156, 160, 163, 167, 171, 175, 178, 182, 186, 189, 193, 196, 198, 200, 204, 207, 210, 214, 217, 220, 224, 227, 231, 234, 237, 241, 244, 248, 251, 255, 258, 262, 265, 268, 271, 274, 277, 281, 284, 287, 290, 293, 297, 299, 303, 306, 309, 312, 315, 318, 322, 325, 328, 331, 335, 338, 341, 344, 347, 350, 353, 357, 360, 363, 366, 369, 372, 375, 378, 381, 384, 387, 390, 393, 397, 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, 431, 434, 437, 440, 443, 447, 451, 454, 458, 461, 464, 467, 470, 474, 478, 481, 484, 487, 491, 494, 498, 501, 505, 508, 511, 515, 518, 522, 525, 529, 532, 536, 539, 542, 545, 548, 551, 554, 558, 561, 564, 567, 570, 574, 577, 580, 583, 586, 589, 592, 595, 598, 601, 604, 607, 610, 613, 616, 619, 622, 625, 628, 631, 634, 637, 640, 643, 646, 649, 652, 655, 658, 661, 664, 667, 670, 673, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 710, 713, 716, 719, 722, 725, 728, 731, 733, 736, 739, 742, 744, 747, 749, 752, 755, 758, 760, 763, 766, 768, 771, 774, 776, 779, 782, 785, 787, 790, 793, 795, 798, 801, 804, 806, 809, 812, 815, 818, 820, 823, 826, 829, 832, 834, 837, 840, 843, 846, 848, 851, 854, 857, 860, 863, 865, 868, 871, 874, 876, 879, 882, 885, 887, 890, 893, 896, 899, 902, 904, 907, 910, 913, 915, 918, 921, 923, 926, 929, 932, 935, 937, 940, 943, 946, 949, 952, 955, 957, 960, 963, 966, 969, 972, 974, 977, 980, 983, 986, 989, 992, 995, 998, 1000, 1003, 1006, 1009, 1015, 1021, 1024, 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1100, 1102, 1105, 1108, 1112, 1115, 1118, 1121, 1124, 1127, 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1153, 1156, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1184, 1187, 1190, 1193, 1196, 1198, 1200, 1203, 1205, 1207, 1209, 1211, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1235, 1237, 1239, 1241, 1243, 1245, 1248, 1250, 1252, 1254, 1256, 1259, 1261, 1263, 1265, 1267, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1397, 1399, 1401, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1427, 1429, 1431, 1433, 1435, 1438, 1441, 1445, 1448, 1451, 1454, 1457, 1461, 1464, 1467, 1471, 1474, 1477, 1480, 1483, 1486, 1489, 1492, 1495, 1499, 1502, 1505, 1508, 1511, 1514, 1517, 1520, 1523, 1526, 1529, 1533, 1535, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604, 1604, 1604, 1604, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1801, 1803, 1806, 1807, 1809, 1812, 1813, 1815, 1817, 1819, 1821, 1823, 1824, 1827, 1828, 1830, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1872, 1875, 1878, 1881, 1885, 1888, 1891, 1895, 1898, 1901, 1905, 1907, 1910, 1913, 1917, 1920, 1920, 1924, 1927, 1929, 1932, 1935, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1960, 1964, 1967, 1970, 1973, 1977, 1980, 1983, 1986, 1989, 1993, 1996, 1999, 2003, 2006, 2009, 2012, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2042, 2044, 2046, 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063, 2064, 2067, 2068, 2070, 2073, 2074, 2076, 2079, 2080, 2080, 2080, 2080, 2093, 2097, 2100, 2104, 2107, 2110, 2113, 2117, 2120, 2123, 2126, 2129, 2132, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2161, 2164, 2167, 2170, 2173, 2176, 2179, 2182, 2185, 2188, 2191, 2191, 2191, 2197, 2200, 2204, 2207, 2210, 2213, 2216, 2218, 2220, 2223, 2224, 2226, 2229, 2230, 2233, 2235, 2237, 2239, 2241, 2243, 2245, 2247, 2250, 2251, 2253, 2256, 2257, 2259, 2262, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2278, 2280, 2283, 2284, 2286, 2288, 2290, 2292, 2294, 2297, 2300, 2303, 2307, 2310, 2313, 2316, 2320, 2323, 2326, 2330, 2333, 2336, 2339, 2342, 2346, 2349, 2352, 2356, 2359, 2366, 2373, 2373, 2373, 2373, 2383, 2385, 2387, 2388, 2389, 2391, 2392, 2394, 2396, 2398, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2413, 2415, 2417, 2418, 2422, 2424, 2427, 2427, 2431, 2436, 2439, 2440, 2442, 2445, 2448, 2450, 2452, 2452, 2452, 2452, 2452, 2452, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2568, 2570, 2570, 2571, 2573, 2574, 2580, 2583, 2583, 2586, 2588, 2589, 2591, 2591, 2591, 2608, 2613, 2613, 2613, 2613, 2613, 2628, 2630, 2632, 2633, 2634, 2637, 2640, 2643, 2646, 2646, 2646, 2658, 2659, 2662, 2665, 2669, 2670, 2674, 2676, 2680, 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715, 2718, 2721, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2748, 2751, 2754, 2757, 2761, 2764, 2767, 2770, 2772, 2775, 2778, 2781, 2784, 2786, 2789, 2791, 2793, 2794, 2796, 2798, 2800, 2802, 2804, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2824, 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2892, 2892, 2892, 2892, 2904, 2907, 2911, 2914, 2918, 2922, 2925, 2929, 2932, 2936, 2939, 2942, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2970, 2976, 2979, 2982, 2985, 2988, 2991, 2995, 2998, 3001, 3004, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, 3041, 3044, 3046, 3048, 3049, 3051, 3053, 3054, 3056, 3058, 3060, 3061, 3063, 3065, 3067, 3068, 3070, 3072, 3074, 3075, 3077, 3080, 3083, 3085, 3089, 3092, 3095, 3099, 3102, 3105, 3108, 3111, 3115, 3118, 3121, 3124, 3127, 3131, 3134, 3137, 3140, 3143, 3146, 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3172, 3175, 3178, 3181, 3184, 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, 3328, 3331, 3335, 3338, 3341, 3343, 3346, 3349, 3352, 3355, 3357, 3360, 3362, 3364, 3366, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3387, 3388, 3390, 3393, 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3417, 3420, 3422, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440, 3442, 3444, 3447, 3448, 3450, 3453, 3454, 3457, 3459, 3459, 3459, 3459, 3470, 3471, 3475, 3480, 3483, 3486, 3490, 3493, 3496, 3499, 3502, 3505, 3508, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3537, 3540, 3542, 3545, 3548, 3551, 3554, 3558, 3561, 3564, 3567, 3570, 3574, 3577, 3581, 3584, 3587, 3590, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615, 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3640, 3643, 3646, 3649, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3679, 3679, 3693, 3697, 3700, 3703, 3706, 3710, 3713, 3716, 3719, 3723, 3726, 3729, 3732, 3735, 3735, 3735, 3741, 3744, 3747, 3750, 3753, 3756, 3759, 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3785, 3788, 3791, 3794, 3797, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3819, 3822, 3825, 3828, 3831, 3834, 3837, 3839, 3842, 3845, 3848, 3850, 3853, 3856, 3859, 3862, 3865, 3868, 3871, 3874, 3876, 3879, 3879, 3879, 3885, 3888, 3891, 3893, 3896, 3899, 3902, 3904, 3907, 3910, 3913, 3915, 3918, 3921, 3923, 3926, 3929, 3931, 3934, 3937, 3940, 3942, 3945, 3948, 3951, 3954, 3957, 3959, 3962, 3965, 3968, 3970, 3973, 3976, 3983, 3990, 3993, 3994, 3996, 3997, 4000, 4000, 4004, 4006, 4006, 4007, 4008, 4010, 4011, 4013, 4014, 4016, 4017, 4019, 4021, 4022, 4024, 4026, 4027, 4029, 4031, 4033, 4036, 4038, 4041, 4044, 4047, 4049, 4052, 4055, 4058, 4061, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, 4162, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4210, 4213, 4216, 4216, 4216, 4216, 4228, 4232, 4236, 4239, 4242, 4245, 4249, 4252, 4255, 4255, 4255, 4255, 4255, 4269, 4272, 4276, 4279, 4282, 4285, 4289, 4292, 4295, 4299, 4302, 4305, 4308, 4311, 4315, 4318, 4322, 4325, 4329, 4332, 4335, 4339, 4342, 4346, 4349, 4352, 4355, 4359, 4362, 4365, 4368, 4371, 4374, 4378, 4381, 4384, 4387, 4391, 4395, 4397, 4401, 4404, 4407, 4410, 4413, 4416, 4419, 4423, 4425, 4429, 4432, 4435, 4438, 4441, 4444, 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, 4483, 4486, 4489, 4493, 4496, 4499, 4502, 4505, 4508, 4512, 4515, 4518, 4521, 4524, 4527, 4530, 4534, 4537, 4540, 4543, 4546, 4550, 4553, 4556, 4559, 4562, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587, 4590, 4594, 4597, 4600, 4603, 4606, 4606, 4606, 4606, 4606, 4606, 4622, 4626, 4629, 4632, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4658, 4661, 4664, 4668, 4671, 4675, 4678, 4682, 4685, 4689, 4693, 4696, 4700, 4703, 4707, 4710, 4714, 4717, 4721, 4725, 4728, 4731, 4731, 4731, 4731, 4731, 4742, 4743, 4747, 4749, 4752, 4755, 4758, 4760, 4762, 4766, 4769, 4773, 4776, 4779, 4782, 4786, 4789, 4793, 4796, 4799, 4802, 4805, 4808, 4812, 4815, 4818, 4822, 4825, 4828, 4831, 4831, 4831, 4844, 4845, 4846, 4848, 4849, 4851, 4853, 4857, 4858, 4860, 4863, 4865, 4867, 4870, 4874, 4875, 4877, 4877], "type": "time", "resolution": "high", "original_size": 1719, "series_type": "time"}, {"data": [0.0, 0.2, 0.1, 0.2, 0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0, 0.6, 0.6, 0.8, 1.2, 1.3, 1.5, 1.8, 1.8, 1.7, 1.7, 2.5, 2.8, 2.8, 2.9, 2.9, 3.1, 2.8, 2.9, 3.5, 3.5, 3.0, 2.9, 3.3, 2.8, 3.0, 3.3, 1.9, 2.8, 3.8, 1.5, 2.4, 4.0, 2.5, 2.6, 2.6, 1.5, 2.4, 3.6, 2.2, 1.3, 2.1, 3.4, 2.6, 2.6, 2.4, 2.3, 2.4, 2.2, 2.1, 2.3, 2.4, 2.2, 2.5, 2.5, 2.4, 1.6, 2.5, 2.9, 2.4, 2.9, 2.5, 2.5, 3.0, 2.7, 2.7, 2.5, 2.5, 3.0, 2.7, 2.8, 2.7, 2.6, 2.7, 2.5, 2.3, 2.5, 2.9, 3.0, 3.1, 3.0, 2.7, 2.7, 3.1, 3.1, 3.1, 2.7, 3.2, 3.2, 2.7, 3.0, 3.1, 3.1, 3.1, 2.6, 2.7, 3.2, 3.1, 2.5, 2.7, 3.1, 3.1, 3.1, 3.0, 3.1, 2.8, 2.7, 3.0, 3.0, 2.9, 3.0, 3.1, 3.0, 3.1, 3.1, 3.0, 3.2, 3.2, 2.7, 2.7, 3.1, 3.1, 3.0, 3.0, 3.0, 2.9, 2.9, 2.9, 2.8, 2.4, 2.4, 2.9, 2.9, 2.8, 2.2, 1.8, 2.1, 2.3, 2.3, 2.7, 2.7, 2.7, 2.3, 2.0, 2.3, 2.7, 2.6, 2.3, 2.4, 2.3, 2.5, 2.5, 2.3, 2.5, 2.4, 2.6, 2.6, 2.7, 2.8, 2.7, 2.7, 2.7, 3.1, 3.1, 3.1, 3.1, 3.2, 2.8, 2.8, 3.1, 3.0, 2.8, 2.4, 2.4, 2.9, 2.9, 3.0, 3.0, 3.0, 3.0, 3.0, 3.1, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.4, 3.3, 3.3, 3.3, 3.2, 3.3, 3.3, 3.2, 3.3, 3.3, 3.3, 3.4, 3.3, 3.3, 3.3, 3.3, 3.9, 3.8, 3.3, 3.3, 3.3, 3.3, 3.4, 3.3, 3.3, 3.4, 3.4, 3.3, 3.7, 3.5, 3.1, 3.1, 3.1, 3.1, 3.0, 3.0, 3.6, 3.7, 3.1, 3.2, 3.7, 3.5, 3.4, 3.6, 3.2, 3.1, 3.8, 3.9, 3.1, 3.7, 3.7, 3.0, 3.6, 3.7, 3.0, 3.0, 3.6, 3.3, 2.6, 3.3, 3.3, 2.8, 2.8, 3.3, 3.3, 2.9, 2.9, 3.0, 3.7, 3.7, 2.9, 3.0, 3.1, 3.5, 3.5, 3.0, 2.9, 2.8, 3.4, 3.7, 3.0, 2.9, 2.9, 2.9, 3.6, 3.8, 3.1, 2.9, 3.3, 3.4, 2.9, 2.7, 3.2, 3.4, 3.0, 3.1, 3.1, 3.2, 3.7, 3.6, 3.1, 3.0, 3.5, 3.4, 2.8, 3.3, 3.6, 3.0, 2.9, 2.8, 3.3, 3.3, 2.7, 2.8, 2.8, 2.8, 2.9, 3.4, 3.4, 2.8, 2.8, 2.8, 3.0, 3.6, 3.7, 3.0, 2.8, 2.9, 2.8, 2.8, 2.8, 2.9, 3.4, 3.5, 3.1, 3.0, 1.0, 1.6, 2.9, 2.3, 2.6, 2.8, 2.9, 2.9, 2.8, 2.9, 2.9, 2.9, 3.0, 2.8, 2.6, 2.7, 2.9, 2.8, 2.6, 2.6, 2.6, 2.5, 2.3, 2.4, 2.5, 2.6, 2.7, 2.4, 2.7, 3.0, 2.5, 2.4, 2.4, 2.7, 2.7, 2.8, 2.8, 3.4, 3.4, 3.0, 3.0, 3.0, 3.0, 3.1, 3.1, 3.2, 3.2, 3.7, 3.6, 3.0, 3.0, 3.0, 2.9, 2.8, 2.8, 2.8, 3.5, 3.5, 3.0, 2.9, 2.9, 3.5, 3.6, 3.0, 3.3, 3.5, 4.2, 4.1, 3.4, 3.5, 3.6, 4.1, 4.0, 4.0, 4.1, 4.0, 4.0, 3.8, 3.1, 3.4, 3.6, 4.0, 3.9, 3.8, 3.0, 3.1, 3.3, 4.1, 4.0, 3.3, 3.4, 3.6, 4.0, 4.0, 3.2, 3.3, 3.5, 4.1, 4.1, 4.0, 4.1, 3.4, 3.1, 3.5, 4.0, 4.2, 3.9, 4.1, 4.1, 3.3, 3.3, 3.6, 4.3, 4.0, 4.1, 4.0, 3.2, 3.4, 3.5, 4.1, 4.0, 4.0, 4.1, 4.0, 4.2, 4.0, 3.1, 3.4, 3.6, 4.3, 4.1, 4.1, 4.0, 3.9, 3.2, 3.3, 3.6, 4.1, 4.1, 4.0, 4.0, 4.0, 4.1, 3.9, 3.2, 3.4, 3.5, 4.1, 4.0, 4.1, 3.9, 4.1, 3.9, 3.9, 3.3, 3.4, 3.5, 3.9, 3.9, 4.0, 3.8, 3.0, 3.2, 3.3, 3.8, 3.8, 3.8, 3.6, 2.9, 3.1, 3.3, 3.8, 3.8, 3.3, 2.9, 2.3, 2.0, 2.2, 2.4, 2.3, 2.1, 2.2, 2.6, 2.2, 2.2, 2.6, 2.7, 2.9, 2.9, 3.0, 3.0, 2.9, 2.5, 2.5, 2.7, 2.7, 2.8, 2.7, 2.7, 2.8, 2.9, 3.1, 3.1, 2.8, 3.2, 3.8, 3.3, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.0, 3.0, 3.1, 3.0, 2.9, 2.7, 2.6, 2.7, 2.9, 3.0, 3.1, 3.1, 3.2, 3.1, 3.1, 3.1, 3.1, 2.3, 2.3, 2.7, 3.0, 3.1, 3.1, 3.2, 3.3, 3.3, 3.3, 3.3, 3.2, 3.2, 3.2, 3.0, 3.0, 3.0, 3.0, 3.3, 3.2, 3.1, 3.4, 3.4, 3.3, 3.3, 3.2, 3.2, 3.2, 3.1, 3.0, 3.1, 3.2, 3.2, 3.3, 3.2, 3.1, 3.3, 3.4, 3.2, 3.1, 3.2, 3.1, 3.0, 2.9, 2.8, 3.1, 3.4, 3.2, 3.4, 3.4, 3.2, 3.1, 3.0, 3.0, 3.1, 3.2, 3.1, 3.0, 3.1, 3.1, 3.2, 2.9, 3.6, 3.9, 3.0, 3.9, 4.0, 3.3, 4.0, 4.0, 4.9, 4.1, 4.0, 4.0, 4.7, 3.9, 4.7, 3.9, 4.8, 3.9, 3.9, 4.0, 4.8, 3.9, 4.7, 4.0, 4.7, 3.9, 3.8, 3.9, 3.9, 4.1, 4.1, 4.2, 4.0, 4.1, 3.9, 4.0, 3.6, 3.0, 2.7, 2.6, 2.3, 2.4, 2.8, 2.3, 2.3, 2.7, 2.5, 2.9, 3.0, 1.1, 1.7, 2.4, 2.4, 1.8, 2.1, 1.5, 1.8, 2.7, 2.6, 2.8, 2.7, 2.4, 2.4, 2.9, 2.9, 2.9, 2.3, 2.1, 2.3, 2.4, 2.0, 2.1, 2.4, 2.4, 2.5, 2.0, 2.0, 2.4, 2.2, 2.2, 2.5, 2.5, 2.2, 2.3, 2.8, 2.8, 2.7, 2.7, 2.7, 2.6, 2.5, 2.8, 3.0, 3.4, 4.2, 4.3, 4.3, 3.4, 3.4, 3.5, 3.6, 3.5, 3.4, 4.0, 3.3, 3.9, 3.4, 2.8, 3.6, 3.6, 2.7, 3.6, 3.6, 3.6, 3.6, 2.0, 1.9, 1.8, 1.9, 1.9, 2.4, 2.5, 2.2, 2.2, 2.6, 2.7, 2.6, 2.6, 2.3, 2.3, 2.6, 2.5, 2.6, 2.5, 2.5, 2.6, 2.1, 2.2, 2.6, 2.6, 2.7, 2.8, 2.8, 2.8, 2.7, 2.5, 2.4, 2.4, 2.4, 2.2, 2.2, 2.0, 2.2, 2.5, 2.5, 2.5, 2.8, 3.0, 2.7, 3.4, 3.5, 2.8, 3.6, 3.1, 2.9, 3.3, 3.8, 3.9, 3.7, 3.7, 3.7, 3.0, 3.8, 3.8, 2.9, 3.7, 3.7, 2.9, 3.5, 3.5, 4.2, 3.5, 3.6, 3.6, 3.7, 3.5, 4.4, 4.3, 2.8, 3.6, 3.5, 4.3, 3.6, 3.5, 3.6, 3.0, 2.3, 2.1, 1.8, 1.9, 2.3, 2.3, 2.0, 2.0, 2.2, 1.8, 1.9, 2.2, 2.2, 2.2, 2.3, 2.3, 2.2, 1.9, 1.8, 1.8, 1.4, 1.1, 1.1, 1.1, 0.3, 0.3, 0.3, 0.5, 0.5, 0.5, 0.4, 0.1, 0.0, 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.7, 0.7, 0.7, 0.8, 0.5, 0.4, 0.5, 0.5, 0.6, 0.4, 0.4, 0.3, 0.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.8, 0.8, 0.8, 1.2, 1.2, 1.9, 2.5, 2.8, 2.8, 2.8, 2.8, 1.9, 1.9, 2.1, 3.2, 2.8, 3.0, 2.9, 3.1, 3.3, 3.2, 3.7, 3.3, 3.3, 3.3, 3.1, 3.2, 3.1, 3.1, 3.3, 3.3, 3.3, 3.2, 3.3, 3.9, 3.8, 3.2, 3.2, 3.2, 3.1, 3.0, 3.2, 3.0, 3.0, 3.2, 3.3, 2.9, 2.8, 3.3, 3.3, 3.8, 3.6, 3.0, 2.9, 3.0, 3.7, 3.5, 3.4, 3.5, 4.8, 4.9, 4.9, 4.1, 3.9, 4.1, 4.9, 5.1, 5.0, 4.2, 4.3, 4.1, 4.0, 4.1, 4.0, 4.1, 4.9, 4.9, 5.0, 4.0, 4.0, 4.0, 4.1, 4.1, 4.9, 5.0, 5.0, 4.1, 4.0, 4.2, 4.1, 4.2, 4.9, 4.9, 5.1, 4.1, 4.1, 4.1, 4.1, 4.1, 4.9, 5.0, 5.0, 4.0, 4.0, 4.2, 4.2, 4.0, 4.8, 4.8, 5.0, 4.1, 3.9, 3.9, 3.9, 3.9, 3.9, 3.0, 3.0, 2.6, 2.7, 2.8, 2.3, 2.7, 2.8, 2.6, 2.6, 2.7, 3.1, 2.7, 2.6, 3.0, 3.1, 3.0, 2.8, 2.8, 1.0, 1.8, 2.8, 0.6, 1.4, 1.9, 1.6, 2.1, 2.3, 2.9, 3.0, 2.7, 2.6, 3.1, 3.3, 3.2, 3.0, 3.1, 3.1, 2.9, 3.0, 3.0, 3.0, 3.1, 3.4, 3.3, 4.3, 4.4, 4.5, 4.5, 4.6, 4.6, 3.8, 4.5, 4.7, 4.8, 4.0, 4.6, 4.6, 4.5, 4.0, 4.8, 4.9, 1.5, 3.1, 5.0, 2.1, 2.0, 2.3, 1.9, 2.0, 2.4, 2.6, 2.7, 2.4, 2.4, 2.7, 2.8, 2.8, 2.4, 2.4, 2.8, 3.0, 2.9, 2.9, 3.0, 3.0, 3.1, 3.1, 3.1, 3.0, 3.0, 3.1, 3.5, 3.3, 2.9, 2.8, 2.7, 2.8, 2.8, 2.8, 2.9, 2.9, 2.9, 2.8, 2.9, 2.8, 2.4, 2.4, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.1, 3.0, 2.9, 3.0, 3.0, 2.9, 3.0, 3.1, 3.2, 3.3, 3.2, 3.1, 3.0, 3.0, 3.0, 3.0, 3.0, 3.1, 3.2, 3.1, 3.1, 3.3, 3.2, 3.2, 3.2, 3.3, 3.3, 3.3, 3.3, 3.3, 3.8, 3.8, 2.9, 2.9, 3.3, 3.8, 3.8, 3.2, 3.1, 3.0, 3.5, 3.1, 3.1, 3.4, 4.1, 4.1, 4.1, 4.2, 4.0, 4.0, 4.0, 3.9, 4.0, 4.0, 3.2, 4.0, 4.1, 3.3, 3.4, 3.6, 4.1, 4.1, 4.1, 4.2, 4.2, 4.2, 4.3, 4.1, 4.1, 4.0, 3.1, 3.3, 3.5, 4.0, 4.0, 3.9, 4.1, 4.1, 4.0, 4.0, 4.0, 4.2, 4.2, 3.2, 4.0, 4.0, 3.1, 4.0, 3.5, 3.2, 3.2, 3.2, 3.2, 2.9, 2.8, 2.2, 2.0, 2.3, 2.8, 2.4, 2.6, 3.0, 3.1, 3.1, 3.1, 3.2, 2.8, 2.7, 3.1, 3.2, 3.2, 3.1, 3.0, 3.1, 2.7, 2.7, 3.6, 3.5, 3.0, 3.1, 3.1, 2.7, 2.7, 3.0, 3.0, 3.1, 2.6, 2.6, 2.5, 2.4, 2.8, 3.0, 2.8, 2.8, 3.2, 3.1, 3.0, 3.0, 2.9, 2.9, 3.0, 3.0, 3.1, 3.2, 3.1, 3.0, 3.1, 2.6, 2.6, 3.0, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.2, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 2.1, 2.1, 2.4, 3.2, 3.2, 2.7, 2.8, 3.4, 3.4, 2.9, 2.9, 3.4, 3.4, 3.7, 3.7, 3.7, 2.9, 2.9, 2.9, 3.0, 3.3, 3.4, 3.2, 3.4, 3.3, 3.0, 3.2, 3.2, 3.1, 2.9, 3.0, 3.5, 3.6, 2.9, 3.0, 3.2, 3.7, 3.6, 3.1, 3.1, 3.0, 3.0, 3.1, 3.8, 3.8, 3.1, 3.0, 2.9, 2.8, 2.9, 3.7, 3.7, 3.1, 3.0, 3.5, 3.4, 2.8, 3.0, 3.3, 3.1, 3.1, 3.2, 3.2, 3.9, 3.7, 3.7, 3.7, 2.6, 2.7, 3.1, 3.7, 3.6, 3.0, 3.1, 3.6, 3.5, 2.9, 3.0, 3.7, 3.6, 2.8, 3.4, 3.6, 3.1, 3.6, 3.5, 3.1, 3.1, 3.6, 3.6, 3.0, 3.0, 3.0, 3.3, 3.8, 3.6, 3.0, 3.1, 3.7, 3.5, 3.1, 1.0, 1.8, 2.6, 2.4, 0.3, 0.3, 0.2, 0.2, 0.2, 0.1, 0.1, 0.1, 0.5, 1.4, 2.8, 3.4, 4.0, 4.1, 4.7, 4.6, 4.7, 4.5, 4.4, 4.6, 4.8, 4.7, 5.1, 4.4, 3.3, 3.3, 3.5, 2.9, 2.9, 3.5, 3.4, 3.0, 3.1, 2.9, 3.4, 3.4, 2.8, 2.9, 2.9, 2.9, 3.0, 3.0, 3.0, 3.2, 3.3, 3.1, 3.0, 3.2, 3.1, 3.1, 3.3, 3.3, 3.4, 3.3, 3.0, 3.1, 3.2, 3.0, 2.9, 3.0, 3.0, 3.0, 3.0, 3.0, 3.1, 3.2, 3.3, 3.5, 2.9, 2.7, 3.1, 3.2, 3.5, 3.5, 3.3, 3.3, 3.4, 3.4, 3.3, 3.3, 3.4, 3.4, 3.0, 2.9, 3.3, 3.3, 3.3, 3.3, 2.4, 2.3, 2.2, 2.8, 3.4, 3.4, 2.9, 2.9, 3.4, 3.4, 3.4, 3.4, 3.4, 2.2, 2.3, 2.5, 2.6, 3.3, 3.3, 2.8, 2.8, 3.3, 2.9, 2.9, 3.4, 3.5, 3.6, 3.1, 3.0, 2.9, 3.0, 2.9, 3.0, 3.4, 2.9, 3.0, 3.0, 2.8, 3.2, 3.1, 2.7, 2.8, 3.3, 3.4, 3.3, 3.2, 2.8, 2.9, 3.4, 3.2, 2.9, 2.7, 2.8, 2.5, 2.8, 3.4, 3.4, 3.2, 3.2, 3.3, 2.9, 3.2, 3.2, 3.0, 3.3, 3.1, 3.3, 3.4, 3.3, 3.3, 3.4, 3.4, 3.3, 3.2, 3.2, 3.2, 3.3, 3.3, 3.2, 3.2, 3.3, 3.4, 3.3, 2.9, 2.9, 3.3, 3.4, 3.5, 3.5, 3.0, 2.9, 3.2, 3.3, 3.3, 3.3, 3.4, 2.8, 2.9, 3.4, 3.4, 3.4, 2.9, 2.9, 3.3, 3.3, 3.5, 3.0, 2.9, 3.3, 3.3, 3.6, 3.7, 3.6, 3.4, 3.2, 2.8, 2.9, 3.3, 3.2, 3.3, 3.3, 3.3, 3.3, 3.3, 0.0, 2.2, 2.2, 2.5, 3.3, 2.9, 2.9, 3.4, 3.2, 3.3, 3.4, 3.3, 2.8, 2.8, 3.1, 2.7, 1.4, 2.8, 3.9, 2.4, 2.6, 2.5, 2.4, 2.7, 2.7, 2.7, 2.7, 2.9, 2.9, 3.0, 2.9, 2.5, 2.6, 3.0, 3.0, 3.0, 3.0, 3.0, 2.5, 2.5, 2.6, 1.7, 2.3, 3.6, 3.4, 2.1, 3.1, 3.8, 2.9, 2.9, 3.0, 3.3, 3.2, 2.7, 2.8, 2.6, 2.6, 1.6, 2.3, 3.9, 3.0, 2.6, 2.7, 3.2, 2.7, 2.6, 3.0, 2.9, 2.9, 2.9, 1.7, 1.6, 1.6, 1.5, 1.0, 0.8, 0.9, 1.2, 1.4, 1.3, 0.4, 1.1, 1.0, 1.1, 1.4, 1.1, 1.7, 1.7], "type": "velocity_smooth", "resolution": "high", "original_size": 1719, "series_type": "time"}]
\ No newline at end of file
diff --git a/rowers/testdata/stravaworkoutlist.txt b/rowers/testdata/stravaworkoutlist.txt
new file mode 100644
index 00000000..c30f9728
--- /dev/null
+++ b/rowers/testdata/stravaworkoutlist.txt
@@ -0,0 +1 @@
+[{"athlete_count": 1, "trainer": false, "average_watts": 179.3, "kilojoules": 401.6, "start_date_local": "2018-07-01T15:17:47Z", "elev_low": 224.0, "workout_type": 10, "private": false, "commute": false, "device_watts": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 2, "id": 1674103638, "location_city": null, "location_country": "Czechia", "kudos_count": 0, "gear_id": "b3187518", "average_speed": 4.433, "has_heartrate": true, "elapsed_time": 2329, "start_longitude": 16.68, "comment_count": 0, "type": "Ride", "start_date": "2018-07-01T13:17:47Z", "map": {"resource_state": 2, "id": "a1674103638", "summary_polyline": "{jqkH{_xdB~@pFwBrA`@zFiEnGhQu@kBfD{B`XnGd^u@da@iFhm@`Cdm@?lTeCjWu@xa@ZhRvAhE_FhToGhMsAnLcLiFuC|EsD{A{KyItAmEaCqAqE`MuLgFsI~CgFxh@CpR`BfD|GdApJuB|CnAyDje@cEmA@nIbFfIuDnQKbH"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 395.1, "location_state": null, "moving_time": 2240, "start_latlng": [49.25, 16.68], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 12.2, "end_latlng": [49.25, 16.59], "has_kudoed": false, "max_heartrate": 172.0, "distance": 9928.9, "name": "Ride from pub", "total_elevation_gain": 223.8, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 141.8, "upload_id": 1797763542, "resource_state": 2, "achievement_count": 2, "external_id": "2018-07-01_13-56-52_55d62d6c-c93e-4945-8d1c-28dcda4f5d8f.tcx", "start_latitude": 49.25}, {"athlete_count": 1, "trainer": false, "average_watts": 205.0, "kilojoules": 675.3, "start_date_local": "2018-07-01T13:54:46Z", "elev_low": 224.0, "workout_type": 10, "private": false, "commute": false, "device_watts": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 1, "id": 1673984089, "location_city": null, "location_country": "Czechia", "kudos_count": 0, "gear_id": "b3187518", "average_speed": 3.909, "has_heartrate": true, "elapsed_time": 3420, "start_longitude": 16.59, "comment_count": 0, "type": "Ride", "start_date": "2018-07-01T11:54:46Z", "map": {"resource_state": 2, "id": "a1673984089", "summary_polyline": "yqskH{bhdBFaHrCgJJcFeEiJMwGfE`AvD{d@gEgBuIpBoGoAuAaDByQxDod@p@wDvCwAzC_SiL{H_@{FcEsFrB{BmAgCpC}CwAuCp@wDqBaFzInBpBmAYsDbAk@vDLt@fCtAm@ZeG`BpCvEuA~EsEfFoKpGeExD_Qo@eCiI~IcIq@`FmEvBsKqDyH]eGeOfF{@zEgJqAcAdHsAYiAoHqBf@aEzGuAhKs@qAjByP}EMvTuKrGr@`KyGjK{@hJwHhHeQ`F}O{DuRhEwb@f@_[rAwGsB{NzEcCDmBbE_DSaGrBsAaAkE"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 416.1, "location_state": null, "moving_time": 3295, "start_latlng": [49.25, 16.59], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 12.4, "end_latlng": [49.25, 16.68], "has_kudoed": false, "max_heartrate": 175.0, "distance": 12879.1, "name": "Ride to pub", "total_elevation_gain": 438.9, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 141.2, "upload_id": 1797642066, "resource_state": 2, "achievement_count": 1, "external_id": "2018-07-01_13-11-50_e9574df4-5491-4a51-97ff-d63d21307f3e.tcx", "start_latitude": 49.25}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-30T09:31:01Z", "elev_low": 220.0, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1671128813, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "average_speed": 2.937, "has_heartrate": true, "elapsed_time": 4877, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-30T07:31:01Z", "map": {"resource_state": 2, "id": "a1671128813", "summary_polyline": "u|okHykxcB`A~CG`K{Hd[kJtSkW~a@iVvV{ArJ|@nRuAjDoHhEiAjL}EtLyXpIaIlMwHr`@iGfh@zBlOjL~HpAbD[xi@uGZgKuGqOy@wQdQ_EWrCj@~R}PjPpApMbItCq@lCaZWyRuAwCyKsGwCeO~Mm_AnEeMvIiJxRmCvF}PzA_NzIyFRwUlDcQhMeXrIoXza@ks@nCmKJ_B{@Q"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 234.6, "location_state": "South Moravian Region", "moving_time": 4725, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 443, "max_speed": 5.1, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 158.0, "distance": 13877.9, "name": "Fartlek", "total_elevation_gain": 54.1, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 156.5, "upload_id": 1794668355, "resource_state": 2, "achievement_count": 0, "external_id": "20180630-0915230o.tcx.gz.tcx", "start_latitude": 49.24, "average_cadence": 21.3}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-26T17:44:06Z", "elev_low": 224.1, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1663857523, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "average_speed": 2.862, "has_heartrate": true, "elapsed_time": 1370, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-26T15:44:06Z", "map": {"resource_state": 2, "id": "a1663857523", "summary_polyline": "mypkHeewcBaN|Z`kBqgAed@F{YjD"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.6, "location_state": "South Moravian Region", "moving_time": 1285, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 113, "max_speed": 5.3, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 182.0, "distance": 3678.0, "name": "Sprintervals (3)", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 148.3, "upload_id": 1787139028, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-b12a8716d47fb2018613fe11a20ad1a7-8793-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 21.4}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-26T17:38:08Z", "elev_low": 226.0, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1663860631, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.375, "has_heartrate": true, "elapsed_time": 312, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-26T15:38:08Z", "map": {"resource_state": 2, "id": "a1663860631", "summary_polyline": "iaokHmixcBm_@hOiUzO"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.0, "location_state": "South Moravian Region", "moving_time": 312, "start_latlng": [49.23, 16.51], "from_accepted_tag": false, "max_watts": 350, "max_speed": 4.8, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 186.0, "distance": 1053.0, "name": "Sprintervals (2)", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 177.6, "upload_id": 1787142027, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-c7cae839c3700ad891d37ecec387c213-8793-5603b4eacbe97e241e653122.fit", "start_latitude": 49.23, "average_cadence": 27.0}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-26T17:06:04Z", "elev_low": 225.4, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1663864533, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.204, "has_heartrate": true, "elapsed_time": 1884, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-26T15:06:04Z", "map": {"resource_state": 2, "id": "a1663864533", "summary_polyline": "k}okHujxcBqDlJ{QjVaIvOi@tSyAjHkMzXoPlV~Si`@nNue@paB{aAcNTaRlF"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.9, "location_state": "South Moravian Region", "moving_time": 1764, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 422, "max_speed": 5.0, "end_latlng": [49.23, 16.51], "has_kudoed": false, "max_heartrate": 176.0, "distance": 5651.0, "name": "Sprintervals", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 138.4, "upload_id": 1787145652, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-8e12c7f9ffce122f636c5977492a91aa-8793-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 21.9}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-24T09:34:07Z", "elev_low": 220.7, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1658735940, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.054, "has_heartrate": true, "elapsed_time": 3463, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-24T07:34:07Z", "map": {"resource_state": 2, "id": "a1658735940", "summary_polyline": "m{okH}gxcBgHze@kGnSqW|a@qYp\\_AzIrEvMoOfMiBdMeGpMkXvHuIpRuN`bAQxIbCvGhIxF{HkI{BoMbOybAxKcRvUoIlG{NhBaM`IkG`C_c@jMmVtQkl@|^aWAu]"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 241.5, "location_state": "South Moravian Region", "moving_time": 3336, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 4.2, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 155.0, "distance": 10188.0, "name": "Double", "total_elevation_gain": 36.5, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 129.6, "upload_id": 1781797548, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-dbbeddcb0f40e5d42d1c539abad227cf-19097-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 19.7}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-22T12:45:04Z", "elev_low": 156.4, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1654609547, "location_city": null, "location_country": "Czechia", "kudos_count": 3, "gear_id": null, "average_speed": 4.026, "has_heartrate": false, "elapsed_time": 3374, "start_longitude": 16.46, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-22T10:45:04Z", "map": {"resource_state": 2, "id": "a1654609547", "summary_polyline": "elceH{lncBwAeH}JxAuTn]kO`^eV|a@|B~Afb@}s@dX_j@}Am@_y@xwA}@zFrQyW|l@qhAbHsF"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 161.9, "location_state": null, "moving_time": 1864, "start_latlng": [48.19, 16.46], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 6.8, "end_latlng": [48.19, 16.47], "has_kudoed": false, "distance": 7504.0, "name": "test delete", "total_elevation_gain": 3.7, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1777477471, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-7105b65789ef729c742c9c2f3db124ee-27304-5603b4eacbe97e241e653122.fit", "start_latitude": 48.19, "average_cadence": 22.3}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-22T08:33:02Z", "elev_low": 222.4, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1654284586, "location_city": null, "location_country": "Czechia", "kudos_count": 3, "gear_id": null, "average_speed": 3.297, "has_heartrate": true, "elapsed_time": 1014, "start_longitude": 16.48, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-22T06:33:02Z", "map": {"resource_state": 2, "id": "a1654284586", "summary_polyline": "{lskHe|qcB|RwE~HyQ`BcMlI_GLaUtAqHfQo_@bOug@z_@yu@"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 228.1, "location_state": null, "moving_time": 1014, "start_latlng": [49.26, 16.48], "from_accepted_tag": false, "max_watts": 349, "max_speed": 4.0, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 156.0, "distance": 3343.0, "name": "Steady (2)", "total_elevation_gain": 8.4, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 147.0, "upload_id": 1777136539, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-caf798b0f248a1e388f13d433268acde-3033-5603b4eacbe97e241e653122.fit", "start_latitude": 49.26, "average_cadence": 18.6}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-22T07:41:04Z", "elev_low": 219.8, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1654286188, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.138, "has_heartrate": true, "elapsed_time": 3044, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-22T05:41:04Z", "map": {"resource_state": 2, "id": "a1654286188", "summary_polyline": "w|okH}kxcBkT|x@kRh`@iZ~e@g@r\\uIrFoArMeGzMuW|H{JbVmO`bArA~JlNjKzA~GeCnh@sCv@uNmKmPq@~Ml@rQzJtDU`Dy]CiOgBuD}LkIcC}N|M_~@tHyP"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 234.7, "location_state": "South Moravian Region", "moving_time": 2963, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 310, "max_speed": 4.2, "end_latlng": [49.26, 16.48], "has_kudoed": false, "max_heartrate": 167.0, "distance": 9297.0, "name": "Steady", "total_elevation_gain": 34.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 150.1, "upload_id": 1777138191, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-19ec938c50a7669015974401e2d3f31a-3033-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 18.7}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-19T07:57:04Z", "elev_low": 219.5, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1647875043, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.103, "has_heartrate": true, "elapsed_time": 3364, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-19T05:57:04Z", "map": {"resource_state": 2, "id": "a1647875043", "summary_polyline": "y|okH_lxcBaRru@}U~e@{Vn`@kBv_@uHxEcB`MgGhN}WpIgJxQgO|_ACrQ`J~GaIkGuAkHfUaoA|LsNpNkBjIeRnAkLfI{EnCyc@nc@gaAxGmHhh@m[cJ{NqH_D"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 235.6, "location_state": "South Moravian Region", "moving_time": 3364, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 278, "max_speed": 5.0, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 187.0, "distance": 10437.0, "name": "3x6min", "total_elevation_gain": 34.5, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 149.5, "upload_id": 1770443246, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-23280e4bdbafafeeb3dde57d2e57c76a-12190-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 21.6}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-18T18:05:05Z", "elev_low": 221.2, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1646901992, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.096, "has_heartrate": true, "elapsed_time": 3354, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-18T16:05:05Z", "map": {"resource_state": 2, "id": "a1646901992", "summary_polyline": "e}okHsixcBeOz_@aMzP_M`l@mUr_@?zIjBbMkDcIr@rDg@fFkIhGiBjMuFxMwQfDeGvFmFvKsQ~dA`AbOnKbK{IgKcA_M`J{o@nFcVrKqOjO_CjCcDrEgLbBgLdJ_Jj@gYnSkh@pJk_@be@s[dBeIa@aMoA_D"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 233.0, "location_state": "South Moravian Region", "moving_time": 3331, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 295, "max_speed": 4.8, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 163.0, "distance": 10312.0, "name": "Steady", "total_elevation_gain": 29.6, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 144.4, "upload_id": 1769427938, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-a46530401b9351a04de93d2fa3e04baa-21332-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 19.3}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-17T12:23:24Z", "elev_low": 151.1, "workout_type": null, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1645044936, "location_city": null, "location_country": "Czechia", "kudos_count": 3, "gear_id": null, "average_speed": 2.633, "has_heartrate": false, "elapsed_time": 3654, "start_longitude": 16.47, "comment_count": 0, "type": "Run", "start_date": "2018-06-17T10:23:24Z", "map": {"resource_state": 2, "id": "a1645044936", "summary_polyline": "qkceHs}ncBvdAmjBjAaCMaD_BUe_BrrCtAh@lTqU|B`JiBmI}@JiAfAxB_BnA~G"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 162.8, "location_state": null, "moving_time": 2280, "start_latlng": [48.19, 16.47], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 4.2, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 6002.5, "name": "Lunch Run", "total_elevation_gain": 13.3, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1767468939, "resource_state": 2, "achievement_count": 0, "external_id": "garmin_push_2784525250", "start_latitude": 48.19, "average_cadence": 55.2}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-17T10:06:57Z", "elev_low": 160.0, "workout_type": null, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1645044356, "location_city": null, "location_country": "Czechia", "kudos_count": 2, "gear_id": null, "average_speed": 3.382, "has_heartrate": false, "elapsed_time": 1655, "start_longitude": 16.47, "comment_count": 0, "type": "Run", "start_date": "2018-06-17T08:06:57Z", "map": {"resource_state": 2, "id": "a1645044356", "summary_polyline": "isbeH_cpcBr`@qs@_Ub\\cg@t~@jCkAVwA{I|KnA^"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 160.1, "location_state": null, "moving_time": 884, "start_latlng": [48.19, 16.47], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 4.6, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 2990.1, "name": "Morning Run", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1767468243, "resource_state": 2, "achievement_count": 0, "external_id": "garmin_push_2784524498", "start_latitude": 48.19, "average_cadence": 62.3}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-17T09:24:13Z", "elev_low": 160.0, "workout_type": null, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1645043980, "location_city": null, "location_country": "Czechia", "kudos_count": 2, "gear_id": null, "average_speed": 3.423, "has_heartrate": false, "elapsed_time": 1559, "start_longitude": 16.48, "comment_count": 0, "type": "Run", "start_date": "2018-06-17T07:24:13Z", "map": {"resource_state": 2, "id": "a1645043980", "summary_polyline": "ocbeHqfqcBhCrBdLoSHuBa{@r{Au@hDpBqBgADcEvHn@Z"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 160.1, "location_state": null, "moving_time": 746, "start_latlng": [48.19, 16.48], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.3, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 2553.8, "name": "Morning Run", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1767467906, "resource_state": 2, "achievement_count": 0, "external_id": "garmin_push_2784524018", "start_latitude": 48.19, "average_cadence": 55.7}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-16T15:17:17Z", "elev_low": 153.7, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1642550428, "location_city": null, "location_country": "Czechia", "kudos_count": 2, "gear_id": null, "average_speed": 2.908, "has_heartrate": false, "elapsed_time": 3119, "start_longitude": 16.47, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-16T13:17:17Z", "map": {"resource_state": 2, "id": "a1642550428", "summary_polyline": "omceH{zncB~mAsxBFyFmCfAaqAbbC|G{DfDmHyBwCi_@xn@_e@x}@vAK`\\sh@~Xai@hCw@"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 162.2, "location_state": null, "moving_time": 2814, "start_latlng": [48.19, 16.47], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.2, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 8184.0, "name": "Vienna Friday & Saturday (3)", "total_elevation_gain": 8.4, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1764858201, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-2a4999f88cf7957fbaef11b61728d6a1-22338-5603b4eacbe97e241e653122.fit", "start_latitude": 48.19, "average_cadence": 23.3}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-16T10:04:03Z", "elev_low": 151.1, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1642556369, "location_city": null, "location_country": "Czechia", "kudos_count": 5, "gear_id": null, "average_speed": 3.114, "has_heartrate": false, "elapsed_time": 2445, "start_longitude": 16.46, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-16T08:04:03Z", "map": {"resource_state": 2, "id": "a1642556369", "summary_polyline": "}oceHmvncBjoA{zBfAwFsB}BwInN_BhHuSf_@cClJql@leAcInGiAzFxAG`KiN"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 163.0, "location_state": null, "moving_time": 1664, "start_latlng": [48.19, 16.46], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.6, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 5181.0, "name": "Vienna Friday & Saturday (2)", "total_elevation_gain": 18.9, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1764864130, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-62f097062c7ea4b5684faaf48fa9ce0d-22338-5603b4eacbe97e241e653122.fit", "start_latitude": 48.19, "average_cadence": 25.0}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-15T10:05:05Z", "elev_low": 157.7, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Vienna", "id": 1642558418, "location_city": null, "location_country": "Czechia", "kudos_count": 2, "gear_id": null, "average_speed": 3.146, "has_heartrate": false, "elapsed_time": 2383, "start_longitude": 16.47, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-15T08:05:05Z", "map": {"resource_state": 2, "id": "a1642558418", "summary_polyline": "ioceHm|ncB{AcAm[~g@qm@~iAhQgU~Yyf@|Y{i@@{B}JtL_w@zwAdABxb@ur@j[cm@"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 157.7, "location_state": null, "moving_time": 2318, "start_latlng": [48.19, 16.47], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.4, "end_latlng": [48.19, 16.46], "has_kudoed": false, "distance": 7292.0, "name": "Vienna Friday & Saturday", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "pr_count": 0, "upload_id": 1764866119, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-9110eabe6bfe012f7c1c1d26671a467f-22338-5603b4eacbe97e241e653122.fit", "start_latitude": 48.19, "average_cadence": 23.6}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-13T18:11:16Z", "elev_low": 225.9, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1636674894, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "average_speed": 3.224, "has_heartrate": true, "elapsed_time": 1402, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-13T16:11:16Z", "map": {"resource_state": 2, "id": "a1636674894", "summary_polyline": "q~okHkgxcB}S`[cQtw@{[hh@h[wj@jJ}\\dx@mf@"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.4, "location_state": "South Moravian Region", "moving_time": 1297, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.4, "end_latlng": [49.23, 16.51], "has_kudoed": false, "max_heartrate": 182.0, "distance": 4182.0, "name": "Race prep with Romana", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 137.0, "upload_id": 1758693931, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-1b1b65f13ab0cf0a017c05a4b87e3a1b-21517-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 26.9}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-11T17:21:01Z", "elev_low": 223.5, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "id": 1632124666, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.128, "has_heartrate": false, "elapsed_time": 3381, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-11T15:21:01Z", "map": {"resource_state": 2, "id": "a1632124666", "summary_polyline": "k}okHwixcBk`@tq@{Ct_@wEhMgXb^zRo^nSik@pn@qa@fm@k[k_@Gat@pf@oTr`@tjBueAy\\uBo_@rG"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 227.0, "location_state": "South Moravian Region", "moving_time": 3315, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 344, "max_speed": 5.0, "end_latlng": [49.24, 16.51], "has_kudoed": false, "distance": 10368.0, "name": "3x(3/2/1) min", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "pr_count": 0, "upload_id": 1753939748, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-16fe83036afb0f1a741e8950ca727313-26583-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 22.5}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-05T17:51:01Z", "elev_low": 225.5, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1621343904, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 3, "gear_id": null, "average_speed": 3.164, "has_heartrate": true, "elapsed_time": 4102, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-05T15:51:01Z", "map": {"resource_state": 2, "id": "a1621343904", "summary_polyline": "w}okHcixcBu]~p@uGzc@wJhQhUqr@nsA{u@aHnJir@`e@}`AvsAfWki@xNkb@nvAgy@}A~Egh@~_@of@vZeIU[qEri@i\\^kLcC}P"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.8, "location_state": "South Moravian Region", "moving_time": 4028, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 447, "max_speed": 5.3, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 177.0, "distance": 12743.0, "name": "Steady", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 154.5, "upload_id": 1742486665, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-5dfebdbc5c8f261ae1da82b9037d2ae4-16586-582eb5eecbe97e7cd6d38096.fit", "start_latitude": 49.24, "average_cadence": 21.1}, {"athlete_count": 1, "trainer": true, "start_date_local": "2018-06-05T11:51:31Z", "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1618291257, "location_city": null, "location_country": "Czechia", "kudos_count": 3, "gear_id": null, "average_speed": 0.0, "has_heartrate": true, "elapsed_time": 93, "start_longitude": null, "comment_count": 0, "type": "Workout", "start_date": "2018-06-05T09:51:31Z", "map": {"resource_state": 2, "id": "a1618291257", "summary_polyline": null}, "utc_offset": 7200.0, "photo_count": 0, "location_state": null, "moving_time": 93, "start_latlng": null, "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 0.0, "end_latlng": null, "has_kudoed": false, "max_heartrate": 78.0, "distance": 0.0, "name": "Lunch Activity", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 67.5, "upload_id": 1739121114, "resource_state": 2, "achievement_count": 0, "external_id": "2018-06-05_09-53-43_fbb18c3d-3460-4897-8f7a-fa5991df0c11.tcx", "start_latitude": null}, {"athlete_count": 1, "trainer": true, "start_date_local": "2018-06-04T16:28:40Z", "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1616786625, "location_city": null, "location_country": "Czechia", "kudos_count": 0, "gear_id": null, "average_speed": 0.0, "has_heartrate": true, "elapsed_time": 2587, "start_longitude": null, "comment_count": 0, "type": "Workout", "start_date": "2018-06-04T14:28:40Z", "map": {"resource_state": 2, "id": "a1616786625", "summary_polyline": null}, "utc_offset": 7200.0, "photo_count": 0, "location_state": null, "moving_time": 2587, "start_latlng": null, "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 0.0, "end_latlng": null, "has_kudoed": false, "max_heartrate": 157.0, "distance": 0.0, "name": "Afternoon Activity", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 103.7, "upload_id": 1737494377, "resource_state": 2, "achievement_count": 0, "external_id": "2018-06-04_15-16-27_cffcde0d-3019-4190-8790-edf4b9246436.tcx", "start_latitude": null}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-03T09:57:03Z", "elev_low": 225.6, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1615588684, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 4, "gear_id": null, "average_speed": 3.17, "has_heartrate": true, "elapsed_time": 3874, "start_longitude": 16.51, "comment_count": 0, "type": "Workout", "start_date": "2018-06-03T07:57:03Z", "map": {"resource_state": 2, "id": "a1615588684", "summary_polyline": "}|okH}hxcBgZ`c@_GhPmE|d@g\\dh@jA}GfYug@pGa^`h@oa@p`@iQeC{H{NCkJ|C_]f_@uJ`TuEzEvhAyo@g]yDmU~S{T|a@xj@s]rAaCg@{SwCB"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 227.4, "location_state": "South Moravian Region", "moving_time": 3415, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.8, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 181.0, "distance": 10826.0, "name": "Morning Activity", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 136.7, "upload_id": 1736203709, "resource_state": 2, "achievement_count": 0, "external_id": "garmin_push_2749941142", "start_latitude": 49.24, "average_cadence": 25.1}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-06-02T19:00:10Z", "elev_low": 224.5, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1613531414, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "average_speed": 3.538, "has_heartrate": true, "elapsed_time": 4075, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-02T17:00:10Z", "map": {"resource_state": 2, "id": "a1613531414", "summary_polyline": "q|okH{kxcB}Xle@uHlQwD~_@_Yvg@GvRGsLdDiQbRu^vIaYf}Ak}@}s@|c@kPjRqx@diAaAtFz@xL?}SxRqb@hKi`@h}Am}@c_@cG_Q`AuH|G"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.8, "location_state": "South Moravian Region", "moving_time": 3536, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 5.6, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 184.0, "distance": 12510.0, "name": "2x with Kazimir", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 155.8, "upload_id": 1734038499, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-e8178f038be9537458c346d0fba65aee-21700-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 21.1}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-05-31T18:30:08Z", "elev_low": 223.4, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1608838419, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 1, "gear_id": null, "average_speed": 3.105, "has_heartrate": true, "elapsed_time": 2861, "start_longitude": 16.5, "comment_count": 0, "type": "Rowing", "start_date": "2018-05-31T16:30:08Z", "map": {"resource_state": 2, "id": "a1608838419", "summary_polyline": "wfqkHwyucBmBpM{X|e@tWyf@dTwh@pvAgx@mbAnv@gaAzmA`X{f@zHy[~^_WzFe\\aA_I"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 227.4, "location_state": "South Moravian Region", "moving_time": 2839, "start_latlng": [49.25, 16.5], "from_accepted_tag": false, "max_watts": 312, "max_speed": 4.2, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 173.0, "distance": 8816.0, "name": "Steady", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 158.3, "upload_id": 1729016920, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-ab10de65b1189ee315832af3ca067796-6546-5603b4eacbe97e241e653122.fit", "start_latitude": 49.25, "average_cadence": 18.9}, {"athlete_count": 1, "trainer": true, "start_date_local": "2018-05-29T17:17:55Z", "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1604117336, "location_city": null, "location_country": "Czechia", "kudos_count": 3, "gear_id": null, "average_speed": 0.0, "has_heartrate": true, "elapsed_time": 3441, "start_longitude": null, "comment_count": 0, "type": "Workout", "start_date": "2018-05-29T15:17:55Z", "map": {"resource_state": 2, "id": "a1604117336", "summary_polyline": null}, "utc_offset": 7200.0, "photo_count": 0, "location_state": null, "moving_time": 3441, "start_latlng": null, "from_accepted_tag": false, "total_photo_count": 0, "max_speed": 0.0, "end_latlng": null, "has_kudoed": false, "max_heartrate": 161.0, "distance": 0.0, "name": "Afternoon Activity", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "flagged": false, "average_heartrate": 116.0, "upload_id": 1723992036, "resource_state": 2, "achievement_count": 0, "external_id": "2018-05-29_17-54-19_090b142a-ce0c-4353-8cf6-0217031df8fc.tcx", "start_latitude": null}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-05-28T17:11:01Z", "elev_low": 223.9, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "id": 1602281908, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "average_speed": 2.971, "has_heartrate": true, "elapsed_time": 3376, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-05-28T15:11:01Z", "map": {"resource_state": 2, "id": "a1602281908", "summary_polyline": "__pkHigxcBwQ`e@oJ~KqN`g@kUv_@vUo_@`Ncg@b~Am}@mKlOsv@~j@sPpVkn@`s@jSqZ|Nol@|_@wr@"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.8, "location_state": "South Moravian Region", "moving_time": 3245, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 207, "max_speed": 4.6, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 168.0, "distance": 9641.0, "name": "Steady", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 145.5, "upload_id": 1722030703, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-70327a1e3af1a0e44e21cc9d04b04b67-18904-5603b4eacbe97e241e653122.fit", "start_latitude": 49.24, "average_cadence": 19.1}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-05-27T12:17:02Z", "elev_low": 224.1, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "id": 1599294751, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 4, "gear_id": null, "average_speed": 3.027, "has_heartrate": false, "elapsed_time": 3568, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-05-27T10:17:02Z", "map": {"resource_state": 2, "id": "a1599294751", "summary_polyline": "s|okHojxcB|T_Ixf@bDikA~_Amp@h_A_ChK`B~OwAqM`@eKjS_d@vLea@zuA_z@pHoBiLtLcf@l[iu@r^vAsIfd@so@~@yF"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 226.9, "location_state": "South Moravian Region", "moving_time": 3528, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "max_watts": 310, "max_speed": 4.8, "end_latlng": [49.24, 16.51], "has_kudoed": false, "distance": 10677.5, "name": "Steady state", "total_elevation_gain": 0.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "pr_count": 0, "upload_id": 1718844422, "resource_state": 2, "achievement_count": 0, "external_id": "stripped_health_data_1754726_1527423820.gpx", "start_latitude": 49.24, "average_cadence": 19.4}, {"athlete_count": 1, "trainer": false, "start_date_local": "2018-05-13T09:57:03Z", "elev_low": 151.1, "private": false, "commute": false, "timezone": "(GMT+01:00) Europe/Bratislava", "pr_count": 0, "id": 1570135469, "location_city": null, "location_country": "Czechia", "kudos_count": 1, "gear_id": null, "average_speed": 2.596, "has_heartrate": true, "elapsed_time": 2110, "start_longitude": 17.83, "comment_count": 0, "type": "Rowing", "start_date": "2018-05-13T07:57:03Z", "map": {"resource_state": 2, "id": "a1570135469", "summary_polyline": "idngHizxkB_FcPuiAqw@`FjHle@hb@|gAtl@yY_I"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 155.5, "location_state": null, "moving_time": 1773, "start_latlng": [48.57, 17.83], "from_accepted_tag": false, "max_watts": 511, "max_speed": 5.3, "end_latlng": [48.57, 17.83], "has_kudoed": false, "max_heartrate": 156.0, "distance": 4603.0, "name": "Piestany (2)", "total_elevation_gain": 3.0, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "flagged": false, "average_heartrate": 126.4, "upload_id": 1688495033, "resource_state": 2, "achievement_count": 0, "external_id": "tap-sync-6f2a87b9ab190358cdc8016825c5889f-23070-5603b4eacbe97e241e653122.fit", "start_latitude": 48.57, "average_cadence": 21.5}]
\ No newline at end of file
diff --git a/rowers/testdata/stravaworkoutsummary.txt b/rowers/testdata/stravaworkoutsummary.txt
new file mode 100644
index 00000000..e6a2884c
--- /dev/null
+++ b/rowers/testdata/stravaworkoutsummary.txt
@@ -0,0 +1 @@
+{"athlete_count": 1, "trainer": false, "available_zones": [], "start_date_local": "2018-06-30T09:31:01Z", "calories": 699.8, "elev_low": 220.0, "private": false, "splits_metric": [{"distance": 1008.0, "pace_zone": 0, "average_speed": 2.52, "moving_time": 400, "elapsed_time": 400, "average_heartrate": 139.8962765957447, "split": 1, "elevation_difference": 0.3}, {"distance": 995.2, "pace_zone": 0, "average_speed": 2.94, "moving_time": 339, "elapsed_time": 339, "average_heartrate": 158.0, "split": 2, "elevation_difference": 0.5}, {"distance": 1003.1, "pace_zone": 0, "average_speed": 3.04, "moving_time": 330, "elapsed_time": 330, "average_heartrate": 158.0, "split": 3, "elevation_difference": -0.6}, {"distance": 997.3, "pace_zone": 0, "average_speed": 3.39, "moving_time": 294, "elapsed_time": 294, "average_heartrate": 158.0, "split": 4, "elevation_difference": 0.1}, {"distance": 999.3, "pace_zone": 0, "average_speed": 3.07, "moving_time": 326, "elapsed_time": 326, "average_heartrate": 158.0, "split": 5, "elevation_difference": 4.6}, {"distance": 1005.6, "pace_zone": 0, "average_speed": 2.99, "moving_time": 336, "elapsed_time": 336, "average_heartrate": 158.0, "split": 6, "elevation_difference": -4.6}, {"distance": 1002.0, "pace_zone": 0, "average_speed": 2.22, "moving_time": 451, "elapsed_time": 603, "average_heartrate": 158.0, "split": 7, "elevation_difference": 0.4}, {"distance": 993.4, "pace_zone": 0, "average_speed": 3.47, "moving_time": 286, "elapsed_time": 286, "average_heartrate": 158.0, "split": 8, "elevation_difference": -0.3}, {"distance": 1003.2, "pace_zone": 0, "average_speed": 2.87, "moving_time": 349, "elapsed_time": 349, "average_heartrate": 158.0, "split": 9, "elevation_difference": 0.1}, {"distance": 993.4, "pace_zone": 0, "average_speed": 3.33, "moving_time": 298, "elapsed_time": 298, "average_heartrate": 158.0, "split": 10, "elevation_difference": -0.8}, {"distance": 999.6, "pace_zone": 0, "average_speed": 3.03, "moving_time": 330, "elapsed_time": 330, "average_heartrate": 158.0, "split": 11, "elevation_difference": 1.2}, {"distance": 1028.4, "pace_zone": 0, "average_speed": 3.05, "moving_time": 337, "elapsed_time": 337, "average_heartrate": 158.0, "split": 12, "elevation_difference": -0.6}, {"distance": 972.7, "pace_zone": 0, "average_speed": 3.06, "moving_time": 318, "elapsed_time": 318, "average_heartrate": 158.0, "split": 13, "elevation_difference": 0.0}, {"distance": 877.1, "pace_zone": 0, "average_speed": 2.65, "moving_time": 331, "elapsed_time": 331, "average_heartrate": 158.0, "split": 14, "elevation_difference": 0.0}], "commute": false, "timezone": "(GMT+01:00) Europe/Prague", "pr_count": 0, "segment_efforts": [{"kom_rank": null, "distance": 1090.9, "achievements": [], "name": "Rovn\u00fd kilometr sm\u011brem k hradu", "start_date_local": "2018-06-30T09:51:44Z", "segment": {"private": false, "elevation_low": 232.3, "end_latitude": 49.261482, "id": 13415922, "city": "Brno", "elevation_high": 254.8, "start_longitude": 16.480611, "state": null, "average_grade": -1.3, "end_longitude": 16.467538, "hazardous": false, "start_latlng": [49.257346, 16.480611], "end_latlng": [49.261482, 16.467538], "distance": 1067.6, "climb_category": 0, "name": "Rovn\u00fd kilometr sm\u011brem k hradu", "country": "Czech Republic", "maximum_grade": 9.4, "resource_state": 2, "starred": false, "start_latitude": 49.257346, "activity_type": "WaterSport"}, "athlete": {"resource_state": 1, "id": 1754726}, "moving_time": 325, "start_date": "2018-06-30T07:51:44Z", "elapsed_time": 325, "pr_rank": null, "average_heartrate": 158.0, "average_cadence": 24.5, "activity": {"resource_state": 1, "id": 1671128813}, "resource_state": 2, "hidden": false, "end_index": 553, "max_heartrate": 158.0, "id": 41889345223, "start_index": 420}, {"kom_rank": null, "distance": 1102.5, "achievements": [], "name": "Rovn\u00fd kilometr sm\u011brem od hradu", "start_date_local": "2018-06-30T10:26:53Z", "segment": {"private": false, "elevation_low": 233.7, "end_latitude": 49.257133, "id": 13415917, "city": "Brno", "elevation_high": 256.6, "start_longitude": 16.467076, "state": null, "average_grade": 1.6, "end_longitude": 16.480449, "hazardous": false, "start_latlng": [49.261348, 16.467076], "end_latlng": [49.257133, 16.480449], "distance": 1094.9, "climb_category": 0, "name": "Rovn\u00fd kilometr sm\u011brem od hradu", "country": "Czech Republic", "maximum_grade": 19.3, "resource_state": 2, "starred": false, "start_latitude": 49.261348, "activity_type": "WaterSport"}, "athlete": {"resource_state": 1, "id": 1754726}, "moving_time": 348, "start_date": "2018-06-30T08:26:53Z", "elapsed_time": 348, "pr_rank": null, "average_heartrate": 158.0, "average_cadence": 22.4, "activity": {"resource_state": 1, "id": 1671128813}, "resource_state": 2, "hidden": false, "end_index": 1316, "max_heartrate": 158.0, "id": 41889345252, "start_index": 1189}], "id": 1671128813, "location_city": "Brno", "location_country": "Czech Republic", "kudos_count": 2, "gear_id": null, "laps": [{"distance": 13878.0, "average_heartrate": 156.5, "name": "Lap 1", "start_date_local": "2018-06-30T09:31:01Z", "total_elevation_gain": 54.1, "athlete": {"resource_state": 1, "id": 1754726}, "lap_index": 1, "average_speed": 2.85, "moving_time": 4725, "start_date": "2018-06-30T07:31:01Z", "elapsed_time": 4876, "max_speed": 5.1, "average_cadence": 21.3, "activity": {"resource_state": 1, "id": 1671128813}, "resource_state": 2, "end_index": 1718, "max_heartrate": 158.0, "id": 5376419494, "start_index": 0, "split": 1}], "average_speed": 2.937, "has_heartrate": true, "elapsed_time": 4877, "start_longitude": 16.51, "comment_count": 0, "type": "Rowing", "start_date": "2018-06-30T07:31:01Z", "map": {"resource_state": 3, "polyline": "u|okHykxcBREHPTfALjAFlBAlCEpAGr@UbB{BjIs@rBk@bCQbAw@xCuAtDiBfEkDvGkE`HeBfCo@nAuAxB_BvCsFrIiBxBcCbCyFpEo@h@wAtAmA|Ak@hAe@nA[~AQ`BG`BAfAF`ANvAb@fCN~ABn@Al@AXKl@W~@[z@GPY\\KH[LaC\\]NYTYZs@pAYx@O`AQlFM`A[z@mAjB]t@i@bBYnAQb@Q\\STu@b@g@Py@Jm@DqBAsABkAPm@NaB|@kDrBs@d@q@h@o@r@_@h@g@bAeAlC]lA{@lE}A|IqBdJk@`Dy@lHcA~Gk@jDc@`Fs@rFEj@Aj@F~BTrCJl@^~AZbATf@V`@h@l@zAnA|@h@|@d@bBl@l@`@`@n@\\`APp@LfAH|BBxBAbCC`CWvGAdJE`AQrAMX_AFgCB_AIo@WeA_A{BeBsBeAa@QwAYoA[aAQ[CeAA{BPiA@YFeAh@aD~BqAhAs@t@{@hAm@bAu@rAe@h@k@^UJWBK?OGa@Se@e@CGDGEHGFEIR[?@@GEA@BAJFXZ^ZJ\\Ff@A`@Y`BsA|BqCzB{AxDgEZQ`@GdBClEPfAHfBVpBj@rAj@`An@p@f@x@p@dAbA\\Vn@Xn@N^BNA\\Gd@QP]La@Jk@TaB|AqTBsLGiAS{BKi@Oe@Sa@e@e@i@_@[MmC{@k@Yk@]{@s@Y]W_@u@_Be@wAYgASeBIoACoABiADi@t@gFfCkOb@iDpA{KnBmLp@qDp@gCt@{Bp@cBt@}A~@uApA_BdEsDh@]NG`@Eb@?r@BpBN`AArCQ^IZO\\Wb@o@HQ`@wAh@_DTcA^y@pAsBXaAZkCPoDFo@Hq@ZaA|A_AnC}@ZQZUX]Zu@PaABo@?gBO_H@{BJaBh@wDr@sD`@eBl@qBtAiDj@qA|@}AzBqElB{D^}@h@wA`AyClBsHd@{Af@{Aj@qA~@}AzBcD`A}AfEoIhAsB~DgGVg@hAgCbAmAv@gAlDyGj@yAl@yBj@kCHm@LqAAM_@Y[F", "id": "a1671128813", "summary_polyline": "u|okHykxcB`A~CG`K{Hd[kJtSkW~a@iVvV{ArJ|@nRuAjDoHhEiAjL}EtLyXpIaIlMwHr`@iGfh@zBlOjL~HpAbD[xi@uGZgKuGqOy@wQdQ_EWrCj@~R}PjPpApMbItCq@lCaZWyRuAwCyKsGwCeO~Mm_AnEeMvIiJxRmCvF}PzA_NzIyFRwUlDcQhMeXrIoXza@ks@nCmKJ_B{@Q"}, "utc_offset": 7200.0, "photo_count": 0, "elev_high": 234.6, "description": "\n from speedcoach2v2.15 via rowsandall.com", "location_state": "South Moravian Region", "moving_time": 4725, "start_latlng": [49.24, 16.51], "from_accepted_tag": false, "photos": {"count": 0, "primary": null}, "max_watts": 443, "max_speed": 5.1, "end_latlng": [49.24, 16.51], "has_kudoed": false, "max_heartrate": 158.0, "distance": 13877.9, "name": "Fartlek", "total_elevation_gain": 54.1, "athlete": {"resource_state": 1, "id": 1754726}, "manual": false, "total_photo_count": 0, "splits_standard": [{"distance": 1614.7, "pace_zone": 0, "average_speed": 2.6, "moving_time": 622, "elapsed_time": 622, "average_heartrate": 146.6170568561873, "split": 1, "elevation_difference": 0.3}, {"distance": 1604.6, "pace_zone": 0, "average_speed": 3.06, "moving_time": 525, "elapsed_time": 525, "average_heartrate": 158.0, "split": 2, "elevation_difference": 0.6}, {"distance": 1610.1, "pace_zone": 0, "average_speed": 3.3, "moving_time": 488, "elapsed_time": 488, "average_heartrate": 158.0, "split": 3, "elevation_difference": -0.4}, {"distance": 1612.2, "pace_zone": 0, "average_speed": 2.93, "moving_time": 550, "elapsed_time": 550, "average_heartrate": 158.0, "split": 4, "elevation_difference": -1.1}, {"distance": 1609.3, "pace_zone": 0, "average_speed": 2.7, "moving_time": 595, "elapsed_time": 747, "average_heartrate": 158.0, "split": 5, "elevation_difference": 0.9}, {"distance": 1608.8, "pace_zone": 0, "average_speed": 3.12, "moving_time": 515, "elapsed_time": 515, "average_heartrate": 158.0, "split": 6, "elevation_difference": 1.2}, {"distance": 1612.2, "pace_zone": 0, "average_speed": 3.07, "moving_time": 526, "elapsed_time": 526, "average_heartrate": 158.0, "split": 7, "elevation_difference": -1.3}, {"distance": 1608.6, "pace_zone": 0, "average_speed": 3.01, "moving_time": 535, "elapsed_time": 535, "average_heartrate": 158.0, "split": 8, "elevation_difference": 0.1}, {"distance": 997.8, "pace_zone": 0, "average_speed": 2.7, "moving_time": 369, "elapsed_time": 369, "average_heartrate": 158.0, "split": 9, "elevation_difference": 0.0}], "flagged": false, "average_heartrate": 156.5, "upload_id": 1794668355, "embed_token": "458f0ae785b4dc4d0a4fb3727dd401524fce4721", "resource_state": 3, "achievement_count": 0, "external_id": "20180630-0915230o.tcx.gz.tcx", "start_latitude": 49.24, "average_cadence": 21.3}
\ No newline at end of file
diff --git a/rowers/testdata/tpuploadresponse.txt b/rowers/testdata/tpuploadresponse.txt
new file mode 100644
index 00000000..9e8bc7d1
--- /dev/null
+++ b/rowers/testdata/tpuploadresponse.txt
@@ -0,0 +1 @@
+[{"EnergyPlanned": null, "ElevationMaximum": null, "HeartRateMinimum": null, "Title": "2ks with focus (6)", "HeartRateMaximum": null, "CaloriesPlanned": null, "WorkoutDay": "2018-07-02T00:00:00-06:00", "VelocityMaximum": null, "StartTimePlanned": null, "PowerAverage": null, "ElevationMinimum": null, "TssCalculationMethod": null, "VelocityAverage": null, "AthleteId": 1696848, "Completed": true, "CadenceAverage": null, "TssActual": null, "IFPlanned": null, "ElevationLoss": null, "HeartRateAverage": null, "Energy": null, "WorkoutType": "Rowing", "TorqueMaximum": null, "Distance": 1328.0, "VelocityPlanned": null, "TssPlanned": null, "TempAvg": null, "TorqueAverage": null, "Calories": null, "ElevationAverage": null, "PowerMaximum": null, "TotalTimePlanned": null, "ElevationGainPlanned": null, "Feeling": null, "DistanceCustomized": null, "IF": null, "TotalTime": 0.10333333333333333, "NormalizedPower": null, "NormalizedSpeed": null, "DistancePlanned": null, "CadenceMaximum": null, "ElevationGain": null, "TempMin": null, "Rpe": null, "StartTime": "2018-07-02T11:24:05-06:00", "Id": 615737179, "TempMax": null}]
\ No newline at end of file
diff --git a/rowers/testdata/uapostworkoutresponse.txt b/rowers/testdata/uapostworkoutresponse.txt
new file mode 100644
index 00000000..b4430880
--- /dev/null
+++ b/rowers/testdata/uapostworkoutresponse.txt
@@ -0,0 +1 @@
+{"start_datetime": "2018-07-02T17:24:05+00:00", "name": "2ks with focus (6)", "is_default_name": false, "created_datetime": "2018-07-04T09:17:58+00:00", "notes": " \n from strava via rowsandall.com", "updated_datetime": "2018-07-04T09:17:58+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2136037651/", "id": "2136037651"}], "documentation": [{"href": "https://developer.underarmour.com/docs/v71_Workout"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2994311008/", "id": "2994311008"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 372.0, "distance_total": 1328.000091264, "cadence_max": 11.0, "speed_max": 4.3000016, "speed_min": 1.6666679, "cadence_min": 9.0, "speed_avg": 3.6897879, "cadence_avg": 9.0, "elapsed_time_total": 372.0, "heartrate_avg": 148.0}}
\ No newline at end of file
diff --git a/rowers/testdata/uastrokes.txt b/rowers/testdata/uastrokes.txt
new file mode 100644
index 00000000..d1940978
--- /dev/null
+++ b/rowers/testdata/uastrokes.txt
@@ -0,0 +1 @@
+{"start_datetime": "2018-07-02T17:24:05+00:00", "name": "2ks with focus (6)", "is_default_name": false, "created_datetime": "2018-07-04T09:17:58+00:00", "notes": " \n from strava via rowsandall.com", "updated_datetime": "2018-07-04T09:17:58+00:00", "time_series": {"distance": [[0.0, 72], [26.0, 72], [30.0, 81], [33.0, 91], [36.0, 102], [39.0, 114], [42.0, 126], [45.0, 138], [48.0, 151], [51.0, 162], [54.0, 175], [57.0, 187], [60.0, 200], [63.0, 212], [66.0, 224], [69.0, 236], [72.0, 248], [75.0, 259], [78.0, 271], [81.0, 283], [84.0, 294], [87.0, 307], [90.0, 320], [93.0, 332], [96.0, 343], [99.0, 356], [102.0, 368], [105.0, 380], [108.0, 392], [111.0, 404], [114.0, 416], [117.0, 428], [120.0, 441], [123.0, 452], [126.0, 465], [129.0, 477], [132.0, 489], [135.0, 501], [138.0, 514], [141.0, 527], [144.0, 539], [147.0, 551], [150.0, 563], [153.0, 575], [156.0, 588], [159.0, 600], [162.0, 612], [165.0, 625], [168.0, 637], [172.0, 650], [174.0, 661], [178.0, 674], [181.0, 686], [184.0, 698], [187.0, 710], [190.0, 722], [193.0, 734], [196.0, 746], [199.0, 759], [202.0, 771], [205.0, 783], [208.0, 795], [211.0, 808], [214.0, 820], [217.0, 832], [220.0, 845], [223.0, 857], [226.0, 869], [246.0, 910], [249.0, 916], [252.0, 923], [256.0, 933], [259.0, 944], [262.0, 955], [265.0, 966], [268.0, 978], [271.0, 990], [275.0, 1002], [278.0, 1014], [281.0, 1025], [284.0, 1037], [287.0, 1050], [290.0, 1061], [293.0, 1073], [296.0, 1084], [299.0, 1095], [302.0, 1106], [305.0, 1116], [307.0, 1127], [310.0, 1137], [313.0, 1147], [316.0, 1158], [319.0, 1168], [321.0, 1177], [324.0, 1187], [327.0, 1196], [330.0, 1207], [333.0, 1216], [336.0, 1226], [338.0, 1236], [341.0, 1246], [344.0, 1255], [347.0, 1263], [351.0, 1272], [354.0, 1280], [357.0, 1288], [360.0, 1297], [363.0, 1306], [366.0, 1313], [369.0, 1321], [372.0, 1328]], "heartrate": [[0.0, 109], [26.0, 121], [30.0, 119], [33.0, 118], [36.0, 117], [39.0, 118], [42.0, 119], [45.0, 122], [48.0, 123], [51.0, 126], [54.0, 127], [57.0, 129], [60.0, 130], [63.0, 130], [66.0, 131], [69.0, 131], [72.0, 132], [75.0, 133], [78.0, 134], [81.0, 134], [84.0, 135], [87.0, 136], [90.0, 139], [93.0, 141], [96.0, 142], [99.0, 143], [102.0, 144], [105.0, 145], [108.0, 146], [111.0, 146], [114.0, 146], [117.0, 146], [120.0, 147], [123.0, 147], [126.0, 148], [129.0, 149], [132.0, 150], [135.0, 150], [138.0, 151], [141.0, 152], [144.0, 153], [147.0, 153], [150.0, 154], [153.0, 154], [156.0, 155], [159.0, 155], [162.0, 154], [165.0, 155], [168.0, 156], [172.0, 156], [174.0, 156], [178.0, 156], [181.0, 156], [184.0, 156], [187.0, 156], [190.0, 155], [193.0, 155], [196.0, 156], [199.0, 157], [202.0, 160], [205.0, 161], [208.0, 162], [211.0, 163], [214.0, 163], [217.0, 164], [220.0, 164], [223.0, 165], [226.0, 165], [246.0, 161], [249.0, 160], [252.0, 158], [256.0, 161], [259.0, 162], [262.0, 162], [265.0, 158], [268.0, 154], [271.0, 152], [275.0, 152], [278.0, 151], [281.0, 151], [284.0, 151], [287.0, 151], [290.0, 151], [293.0, 151], [296.0, 151], [299.0, 152], [302.0, 152], [305.0, 152], [307.0, 152], [310.0, 152], [313.0, 153], [316.0, 153], [319.0, 154], [321.0, 155], [324.0, 155], [327.0, 156], [330.0, 156], [333.0, 155], [336.0, 155], [338.0, 155], [341.0, 155], [344.0, 155], [347.0, 155], [351.0, 155], [354.0, 154], [357.0, 152], [360.0, 151], [363.0, 150], [366.0, 149], [369.0, 148], [372.0, 147]], "cadence": [[0.0, 19], [26.0, 19], [30.0, 20], [33.0, 19], [36.0, 19], [39.0, 20], [42.0, 19], [45.0, 20], [48.0, 20], [51.0, 20], [54.0, 20], [57.0, 19], [60.0, 20], [63.0, 20], [66.0, 20], [69.0, 19], [72.0, 20], [75.0, 20], [78.0, 20], [81.0, 20], [84.0, 20], [87.0, 19], [90.0, 20], [93.0, 20], [96.0, 20], [99.0, 20], [102.0, 20], [105.0, 20], [108.0, 20], [111.0, 20], [114.0, 20], [117.0, 20], [120.0, 20], [123.0, 19], [126.0, 20], [129.0, 20], [132.0, 20], [135.0, 19], [138.0, 20], [141.0, 20], [144.0, 19], [147.0, 20], [150.0, 19], [153.0, 20], [156.0, 19], [159.0, 19], [162.0, 19], [165.0, 19], [168.0, 20], [172.0, 19], [174.0, 20], [178.0, 20], [181.0, 20], [184.0, 20], [187.0, 20], [190.0, 20], [193.0, 20], [196.0, 19], [199.0, 19], [202.0, 20], [205.0, 20], [208.0, 20], [211.0, 20], [214.0, 20], [217.0, 20], [220.0, 20], [223.0, 20], [226.0, 20], [246.0, 22], [249.0, 18], [252.0, 18], [256.0, 19], [259.0, 19], [262.0, 19], [265.0, 19], [268.0, 19], [271.0, 19], [275.0, 19], [278.0, 19], [281.0, 19], [284.0, 19], [287.0, 19], [290.0, 19], [293.0, 20], [296.0, 21], [299.0, 20], [302.0, 21], [305.0, 20], [307.0, 21], [310.0, 21], [313.0, 21], [316.0, 22], [319.0, 21], [321.0, 21], [324.0, 21], [327.0, 21], [330.0, 21], [333.0, 21], [336.0, 22], [338.0, 21], [341.0, 20], [344.0, 20], [347.0, 19], [351.0, 19], [354.0, 18], [357.0, 18], [360.0, 19], [363.0, 19], [366.0, 19], [369.0, 19], [372.0, 21]], "position": [[0.0, {"lat": 49.245117, "lng": 16.504335, "elevation": 227.0}], [26.0, {"lat": 49.244682, "lng": 16.504757, "elevation": 227.0}], [30.0, {"lat": 49.24461, "lng": 16.504818, "elevation": 227.0}], [33.0, {"lat": 49.244526, "lng": 16.504883, "elevation": 227.0}], [36.0, {"lat": 49.244434, "lng": 16.50495, "elevation": 227.0}], [39.0, {"lat": 49.244343, "lng": 16.505022, "elevation": 227.0}], [42.0, {"lat": 49.244244, "lng": 16.505089, "elevation": 227.0}], [45.0, {"lat": 49.244141, "lng": 16.505159, "elevation": 227.0}], [48.0, {"lat": 49.244041, "lng": 16.505224, "elevation": 227.0}], [51.0, {"lat": 49.243942, "lng": 16.505276, "elevation": 227.0}], [54.0, {"lat": 49.243832, "lng": 16.505325, "elevation": 227.0}], [57.0, {"lat": 49.243729, "lng": 16.505367, "elevation": 227.0}], [60.0, {"lat": 49.243618, "lng": 16.505405, "elevation": 227.0}], [63.0, {"lat": 49.243511, "lng": 16.50544, "elevation": 227.0}], [66.0, {"lat": 49.243401, "lng": 16.50547, "elevation": 227.0}], [69.0, {"lat": 49.243294, "lng": 16.505499, "elevation": 227.0}], [72.0, {"lat": 49.243191, "lng": 16.505527, "elevation": 227.0}], [75.0, {"lat": 49.243092, "lng": 16.505547, "elevation": 227.0}], [78.0, {"lat": 49.242989, "lng": 16.505571, "elevation": 227.0}], [81.0, {"lat": 49.242882, "lng": 16.505596, "elevation": 227.0}], [84.0, {"lat": 49.242779, "lng": 16.505621, "elevation": 227.0}], [87.0, {"lat": 49.242664, "lng": 16.50565, "elevation": 227.0}], [90.0, {"lat": 49.242554, "lng": 16.505676, "elevation": 227.0}], [93.0, {"lat": 49.242447, "lng": 16.505703, "elevation": 227.0}], [96.0, {"lat": 49.242344, "lng": 16.505726, "elevation": 227.0}], [99.0, {"lat": 49.242229, "lng": 16.50576, "elevation": 227.0}], [102.0, {"lat": 49.242123, "lng": 16.505798, "elevation": 227.0}], [105.0, {"lat": 49.242023, "lng": 16.505838, "elevation": 227.0}], [108.0, {"lat": 49.24192, "lng": 16.505886, "elevation": 227.0}], [111.0, {"lat": 49.241818, "lng": 16.505941, "elevation": 227.0}], [114.0, {"lat": 49.241714, "lng": 16.505997, "elevation": 227.0}], [117.0, {"lat": 49.241615, "lng": 16.50606, "elevation": 227.0}], [120.0, {"lat": 49.241512, "lng": 16.506125, "elevation": 227.0}], [123.0, {"lat": 49.241413, "lng": 16.506189, "elevation": 227.0}], [126.0, {"lat": 49.241306, "lng": 16.50626, "elevation": 227.0}], [129.0, {"lat": 49.241215, "lng": 16.506323, "elevation": 227.0}], [132.0, {"lat": 49.241112, "lng": 16.506395, "elevation": 227.0}], [135.0, {"lat": 49.241016, "lng": 16.506472, "elevation": 227.0}], [138.0, {"lat": 49.240913, "lng": 16.506557, "elevation": 227.0}], [141.0, {"lat": 49.240818, "lng": 16.506636, "elevation": 227.0}], [144.0, {"lat": 49.240715, "lng": 16.506721, "elevation": 227.0}], [147.0, {"lat": 49.240623, "lng": 16.506802, "elevation": 227.0}], [150.0, {"lat": 49.240532, "lng": 16.506887, "elevation": 227.0}], [153.0, {"lat": 49.240437, "lng": 16.506968, "elevation": 227.0}], [156.0, {"lat": 49.240337, "lng": 16.507055, "elevation": 227.0}], [159.0, {"lat": 49.240242, "lng": 16.507133, "elevation": 227.0}], [162.0, {"lat": 49.240147, "lng": 16.507212, "elevation": 227.0}], [165.0, {"lat": 49.240044, "lng": 16.507296, "elevation": 227.0}], [168.0, {"lat": 49.239952, "lng": 16.507376, "elevation": 227.0}], [172.0, {"lat": 49.239853, "lng": 16.50746, "elevation": 227.0}], [174.0, {"lat": 49.239761, "lng": 16.507534, "elevation": 227.0}], [178.0, {"lat": 49.239662, "lng": 16.507614, "elevation": 227.0}], [181.0, {"lat": 49.239563, "lng": 16.507688, "elevation": 227.0}], [184.0, {"lat": 49.239464, "lng": 16.507763, "elevation": 227.0}], [187.0, {"lat": 49.239365, "lng": 16.507835, "elevation": 227.0}], [190.0, {"lat": 49.239269, "lng": 16.507906, "elevation": 227.0}], [193.0, {"lat": 49.23917, "lng": 16.507978, "elevation": 227.0}], [196.0, {"lat": 49.239075, "lng": 16.508049, "elevation": 227.0}], [199.0, {"lat": 49.238968, "lng": 16.508125, "elevation": 227.0}], [202.0, {"lat": 49.238873, "lng": 16.508202, "elevation": 227.0}], [205.0, {"lat": 49.238777, "lng": 16.50828, "elevation": 227.0}], [208.0, {"lat": 49.238678, "lng": 16.508356, "elevation": 227.0}], [211.0, {"lat": 49.238579, "lng": 16.508434, "elevation": 227.0}], [214.0, {"lat": 49.238483, "lng": 16.508514, "elevation": 227.0}], [217.0, {"lat": 49.23838, "lng": 16.508587, "elevation": 227.0}], [220.0, {"lat": 49.238285, "lng": 16.508659, "elevation": 227.0}], [223.0, {"lat": 49.238186, "lng": 16.508732, "elevation": 227.0}], [226.0, {"lat": 49.238087, "lng": 16.508804, "elevation": 227.0}], [246.0, {"lat": 49.237766, "lng": 16.509081, "elevation": 227.0}], [249.0, {"lat": 49.237755, "lng": 16.50915, "elevation": 227.0}], [252.0, {"lat": 49.23774, "lng": 16.509256, "elevation": 227.0}], [256.0, {"lat": 49.237728, "lng": 16.509386, "elevation": 227.0}], [259.0, {"lat": 49.237713, "lng": 16.509533, "elevation": 227.0}], [262.0, {"lat": 49.237698, "lng": 16.50968, "elevation": 227.0}], [265.0, {"lat": 49.237679, "lng": 16.509838, "elevation": 227.0}], [268.0, {"lat": 49.237659, "lng": 16.509998, "elevation": 227.0}], [271.0, {"lat": 49.237637, "lng": 16.510162, "elevation": 227.0}], [275.0, {"lat": 49.237614, "lng": 16.510325, "elevation": 227.0}], [278.0, {"lat": 49.237595, "lng": 16.510479, "elevation": 227.0}], [281.0, {"lat": 49.237572, "lng": 16.510632, "elevation": 227.0}], [284.0, {"lat": 49.237553, "lng": 16.510798, "elevation": 227.0}], [287.0, {"lat": 49.23753, "lng": 16.510962, "elevation": 227.0}], [290.0, {"lat": 49.237507, "lng": 16.51112, "elevation": 227.0}], [293.0, {"lat": 49.23748, "lng": 16.511272, "elevation": 227.0}], [296.0, {"lat": 49.237461, "lng": 16.511421, "elevation": 227.0}], [299.0, {"lat": 49.237442, "lng": 16.511572, "elevation": 227.0}], [302.0, {"lat": 49.237431, "lng": 16.511717, "elevation": 227.0}], [305.0, {"lat": 49.237423, "lng": 16.511864, "elevation": 227.0}], [307.0, {"lat": 49.237423, "lng": 16.512009, "elevation": 227.0}], [310.0, {"lat": 49.237431, "lng": 16.51215, "elevation": 227.0}], [313.0, {"lat": 49.237446, "lng": 16.512289, "elevation": 227.0}], [316.0, {"lat": 49.237472, "lng": 16.512424, "elevation": 227.0}], [319.0, {"lat": 49.237503, "lng": 16.512552, "elevation": 227.0}], [321.0, {"lat": 49.237541, "lng": 16.512667, "elevation": 227.0}], [324.0, {"lat": 49.237591, "lng": 16.512783, "elevation": 227.0}], [327.0, {"lat": 49.237648, "lng": 16.512882, "elevation": 227.0}], [330.0, {"lat": 49.237713, "lng": 16.512979, "elevation": 227.0}], [333.0, {"lat": 49.237782, "lng": 16.513058, "elevation": 227.0}], [336.0, {"lat": 49.237862, "lng": 16.51313, "elevation": 227.0}], [338.0, {"lat": 49.237942, "lng": 16.513184, "elevation": 227.0}], [341.0, {"lat": 49.238022, "lng": 16.513227, "elevation": 227.0}], [344.0, {"lat": 49.238098, "lng": 16.513269, "elevation": 227.0}], [347.0, {"lat": 49.238167, "lng": 16.513304, "elevation": 227.0}], [351.0, {"lat": 49.238243, "lng": 16.513334, "elevation": 227.0}], [354.0, {"lat": 49.238316, "lng": 16.513361, "elevation": 227.0}], [357.0, {"lat": 49.238388, "lng": 16.513384, "elevation": 227.02}], [360.0, {"lat": 49.238468, "lng": 16.513409, "elevation": 227.06}], [363.0, {"lat": 49.238544, "lng": 16.513428, "elevation": 227.11}], [366.0, {"lat": 49.238613, "lng": 16.513451, "elevation": 227.19}], [369.0, {"lat": 49.238682, "lng": 16.513474, "elevation": 227.28}], [372.0, {"lat": 49.238739, "lng": 16.513494, "elevation": 227.38}]]}, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2136037651/", "id": "2136037651"}], "documentation": [{"href": "https://developer.underarmour.com/docs/v71_Workout"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2994311008/?field_set=time_series", "id": "2994311008"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "reference_key": null, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 372.0, "distance_total": 1328.000091264, "cadence_max": 11.0, "speed_max": 4.3000016, "speed_min": 1.6666679, "cadence_min": 9.0, "speed_avg": 3.6897879, "cadence_avg": 9.0, "elapsed_time_total": 372.0, "heartrate_avg": 148.0}}
\ No newline at end of file
diff --git a/rowers/testdata/uauser.txt b/rowers/testdata/uauser.txt
new file mode 100644
index 00000000..d7c9eb56
--- /dev/null
+++ b/rowers/testdata/uauser.txt
@@ -0,0 +1 @@
+{"last_name": "Roosendaal", "weight": null, "communication": {"promotions": false, "newsletter": false, "system_messages": false}, "height": null, "hobbies": "", "id": 109227799, "date_joined": "2017-03-28T11:32:53+00:00", "first_name": "Sander", "display_name": "Sander Roosendaal", "introduction": "", "display_measurement_system": "metric", "last_login": "2017-03-28T11:32:53+00:00", "location": {"country": "US", "region": "VA", "address": "", "locality": "Ashburn"}, "_links": {"stats": [{"href": "/v7.1/user_stats/109227799/?aggregate_by_period=month", "id": "109227799", "name": "month"}, {"href": "/v7.1/user_stats/109227799/?aggregate_by_period=day", "id": "109227799", "name": "day"}, {"href": "/v7.1/user_stats/109227799/?aggregate_by_period=week", "id": "109227799", "name": "week"}, {"href": "/v7.1/user_stats/109227799/?aggregate_by_period=year", "id": "109227799", "name": "year"}, {"href": "/v7.1/user_stats/109227799/?aggregate_by_period=lifetime", "id": "109227799", "name": "lifetime"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1", "name": "status_post"}, {"href": "/v7.1/privacy_option/1/", "id": "1", "name": "workout"}, {"href": "/v7.1/privacy_option/0/", "id": "0", "name": "workout_music"}, {"href": "/v7.1/privacy_option/3/", "id": "3", "name": "activity_feed"}, {"href": "/v7.1/privacy_option/0/", "id": "0", "name": "bodymass"}, {"href": "/v7.1/privacy_option/1/", "id": "1", "name": "food_log"}, {"href": "/v7.1/privacy_option/3/", "id": "3", "name": "email_search"}, {"href": "/v7.1/privacy_option/1/", "id": "1", "name": "profile"}, {"href": "/v7.1/privacy_option/1/", "id": "1", "name": "route"}, {"href": "/v7.1/privacy_option/0/", "id": "0", "name": "sleep"}], "image": [{"href": "/v7.1/user_profile_photo/109227799/", "id": "109227799", "name": "user_profile_photo"}], "documentation": [{"href": "https://developer.underarmour.com/docs/v71_User"}], "deactivation": [{"href": "/v7.1/user_deactivation/"}], "user_achievements": [{"href": "/v7.1/user_achievement/?user=109227799"}], "friendships": [{"href": "/v7.1/friendship/?from_user=109227799"}], "workouts": [{"href": "/v7.1/workout/?user=109227799&order_by=-start_datetime"}], "self": [{"href": "/v7.1/user/109227799/", "id": "109227799"}]}, "email": "roosendaalsander@gmail.com", "goal_statement": null, "username": "Sander109227799", "sharing": {"twitter": false, "facebook": false}, "last_initial": "R.", "preferred_language": "en-US", "gender": "M", "time_zone": "Europe/Bratislava", "birthdate": "1972-04-19", "profile_statement": ""}
\ No newline at end of file
diff --git a/rowers/testdata/uaworkoutlist.txt b/rowers/testdata/uaworkoutlist.txt
new file mode 100644
index 00000000..0edff012
--- /dev/null
+++ b/rowers/testdata/uaworkoutlist.txt
@@ -0,0 +1 @@
+{"_embedded": {"workouts": [{"start_datetime": "2018-07-02T17:24:05+00:00", "name": "2ks with focus (6)", "is_default_name": false, "created_datetime": "2018-07-04T09:17:58+00:00", "notes": " \n from strava via rowsandall.com", "updated_datetime": "2018-07-04T09:17:58+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2994311008/", "id": "2994311008"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2136037651/", "id": "2136037651"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 372.0, "distance_total": 1328.000091264, "cadence_max": 11.0, "speed_max": 4.3000016, "speed_min": 1.6666679, "cadence_min": 9.0, "speed_avg": 3.6897879, "cadence_avg": 9.0, "elapsed_time_total": 372.0, "heartrate_avg": 148.0}}, {"start_datetime": "2018-05-15T10:35:00+00:00", "name": "Turin", "is_default_name": false, "created_datetime": "2018-05-18T08:16:04+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T08:16:04+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2893713871/", "id": "2893713871"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 0.0, "elapsed_time_total": 0.0, "distance_total": 0.0}}, {"start_datetime": "2018-05-14T13:53:04+00:00", "name": "Hradiste", "is_default_name": false, "created_datetime": "2018-05-18T09:37:59+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:37:59+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893767499/", "id": "2893767499"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064193549/", "id": "2064193549"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 1500.0, "distance_total": 6090.99689088, "cadence_max": 45.0, "speed_max": 50.78598, "speed_min": 0.024136182, "cadence_min": 8.0, "speed_avg": 4.6101894, "cadence_avg": 28.0, "elapsed_time_total": 1500.0, "heartrate_avg": 177.0}}, {"start_datetime": "2018-05-13T09:22:49+00:00", "name": "Completed a workout (generic) 0.6 mi on 05/13/18", "is_default_name": true, "created_datetime": "2018-05-17T08:58:45+00:00", "notes": "", "updated_datetime": "2018-05-17T08:59:03+00:00", "reference_key": "2018-05-13T09:22:49.000Z", "start_locale_timezone": "Europe/Bratislava", "source": "Unknown File", "source_manufacturer": "unknown", "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2891557930/", "id": "2891557930"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2062649698/", "id": "2062649698"}], "activity_type": [{"href": "/v7.1/activity_type/21/", "id": "21"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 233.0, "cadence_min": 27.0, "distance_total": 972.999726336, "cadence_max": 41.0, "speed_max": 5.7333326, "speed_min": 0.30000004, "heartrate_min": 117.0, "power_min": 27.0, "speed_avg": 4.201863, "cadence_avg": 31.0, "power_avg": 282.436, "heartrate_max": 136.0, "power_max": 511.0, "elapsed_time_total": 233.0, "heartrate_avg": 125.0, "metabolic_energy_total": 4184.0}}, {"start_datetime": "2018-05-13T09:22:49+00:00", "name": "Piestany Race (1) (2)", "is_default_name": false, "created_datetime": "2018-05-18T11:42:30+00:00", "notes": "imported through email\r\n from speedcoach2v2.15 via rowsandall.com\n from unknown via rowsandall.com", "updated_datetime": "2018-05-18T11:42:31+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893934296/", "id": "2893934296"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064309187/", "id": "2064309187"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 233.0, "distance_total": 972.999726336, "cadence_max": 20.0, "speed_max": 5.100011, "speed_min": 1.069047, "cadence_min": 13.0, "speed_avg": 4.1767173, "cadence_avg": 15.0, "elapsed_time_total": 233.0, "heartrate_avg": 125.0}}, {"start_datetime": "2018-05-13T08:02:00+00:00", "name": "Mixed 4x", "is_default_name": false, "created_datetime": "2018-05-17T09:48:01+00:00", "notes": "from unknown via rowsandall.com\r\nFailed to download METAR data\r\nSummary for your location at 2018-05-13T18:06:11+00:00: Partly Cloudy. Temperature 70.76F/21.5C. Wind: 1.3 m/s. Wind Bearing: 117 degrees\n from unknown via rowsandall.com", "updated_datetime": "2018-05-17T09:48:01+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2891593603/", "id": "2891593603"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 0.0, "elapsed_time_total": 0.0, "distance_total": 0.0}}, {"start_datetime": "2018-05-13T07:57:02+00:00", "name": "Piestany (2)", "is_default_name": false, "created_datetime": "2018-05-18T11:44:24+00:00", "notes": "imported through email\n from speedcoach2v2.15 via rowsandall.com\n from speedcoach2v2.15 via rowsandall.com", "updated_datetime": "2018-05-18T11:44:24+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893937560/", "id": "2893937560"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064311308/", "id": "2064311308"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 2111.0, "distance_total": 4604.99301504, "cadence_max": 37.0, "speed_max": 5.3203125, "speed_min": 0.0709524, "cadence_min": 4.0, "speed_avg": 2.644988, "cadence_avg": 11.0, "elapsed_time_total": 2111.0, "heartrate_avg": 126.0}}, {"start_datetime": "2018-05-12T15:47:00+00:00", "name": "MM 4x", "is_default_name": false, "created_datetime": "2018-05-18T12:48:24+00:00", "notes": "from unknown via rowsandall.com\nFailed to download METAR data\nSummary for your location at 2018-05-12T16:08:53+00:00: Drizzle. Temperature 70.74F/21.5C. Wind: 1.37 m/s. Wind Bearing: 7 degrees\n from unknown via rowsandall.com", "updated_datetime": "2018-05-18T12:48:24+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2894050207/", "id": "2894050207"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064393991/", "id": "2064393991"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 2624.0, "distance_total": 5929.00032384, "cadence_max": 29.0, "speed_max": 6.097581, "speed_avg": 2.7866058, "cadence_avg": 10.0, "elapsed_time_total": 2624.0}}, {"start_datetime": "2018-05-12T11:32:33+00:00", "name": "DC", "is_default_name": false, "created_datetime": "2018-05-18T09:55:44+00:00", "notes": "\n from tcx via rowsandall.com", "updated_datetime": "2018-05-18T09:55:44+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893782598/", "id": "2893782598"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064203758/", "id": "2064203758"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 6173.0, "distance_total": 16813.9433088, "speed_max": 4.1599975, "speed_avg": 2.7349057, "elapsed_time_total": 6173.0, "heartrate_avg": 137.0}}, {"start_datetime": "2018-05-12T11:32:33+00:00", "name": "DC", "is_default_name": false, "created_datetime": "2018-05-18T08:42:27+00:00", "notes": "\n from tcx via rowsandall.com", "updated_datetime": "2018-05-18T08:42:27+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2893729495/", "id": "2893729495"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 0.0, "elapsed_time_total": 0.0, "distance_total": 0.0}}, {"start_datetime": "2018-05-11T07:02:52+00:00", "name": "Naarden 1", "is_default_name": false, "created_datetime": "2018-05-18T08:59:22+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T08:59:22+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2893741039/", "id": "2893741039"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": false, "is_verified": true, "aggregates": {"active_time_total": 0.0, "elapsed_time_total": 0.0, "distance_total": 0.0}}, {"start_datetime": "2018-05-10T16:55:01+00:00", "name": "Racice 2", "is_default_name": false, "created_datetime": "2018-05-18T09:01:02+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:01:02+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2893742116/", "id": "2893742116"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": false, "is_verified": true, "aggregates": {"heartrate_avg": 173.0, "distance_total": 8000.00074368}}, {"start_datetime": "2018-05-10T09:11:24+00:00", "name": "Naarden goed", "is_default_name": false, "created_datetime": "2018-05-18T09:12:28+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:12:29+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893750054/", "id": "2893750054"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064181300/", "id": "2064181300"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 136.0, "distance_total": 15263.00240256}}, {"start_datetime": "2018-05-05T08:11:04+00:00", "name": "Steady (2)", "is_default_name": false, "created_datetime": "2018-05-18T09:24:01+00:00", "notes": "\n from sporttracks via rowsandall.com", "updated_datetime": "2018-05-18T09:24:02+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893757776/", "id": "2893757776"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064186616/", "id": "2064186616"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 133.0, "cadence_min": 11.0, "distance_total": 1152.00062208, "cadence_max": 35.0, "cadence_avg": 17.0}}, {"start_datetime": "2018-05-04T06:07:04+00:00", "name": "Zip test", "is_default_name": false, "created_datetime": "2018-05-18T09:25:30+00:00", "notes": "imported through email\n from speedcoach2v2.15 via rowsandall.com", "updated_datetime": "2018-05-18T09:25:31+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893758691/", "id": "2893758691"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064187276/", "id": "2064187276"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 173.0, "cadence_min": 14.0, "distance_total": 5996.99510784, "cadence_max": 39.0, "cadence_avg": 26.0}}, {"start_datetime": "2018-05-04T06:07:04+00:00", "name": "Zip test 2", "is_default_name": false, "created_datetime": "2018-05-18T09:26:17+00:00", "notes": "imported through email\n from speedcoach2v2.15 via rowsandall.com", "updated_datetime": "2018-05-18T09:26:17+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893759225/", "id": "2893759225"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064187669/", "id": "2064187669"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 173.0, "cadence_min": 14.0, "distance_total": 5996.99510784, "cadence_max": 39.0, "cadence_avg": 26.0}}, {"start_datetime": "2018-04-25T22:59:01+00:00", "name": "SpeedCoach 7x150m", "is_default_name": false, "created_datetime": "2018-05-18T09:28:00+00:00", "notes": "\n from speedcoach2corrected via rowsandall.com", "updated_datetime": "2018-05-18T09:28:00+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893760308/", "id": "2893760308"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064188509/", "id": "2064188509"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 142.0, "cadence_min": 15.0, "distance_total": 4158.99551232, "cadence_max": 29.0, "cadence_avg": 24.0}}, {"start_datetime": "2018-04-24T13:35:30+00:00", "name": "Rowed 5.0 mi on 04/24/18", "is_default_name": false, "created_datetime": "2018-05-18T09:30:49+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:30:50+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"self": [{"href": "/v7.1/workout/2893762366/", "id": "2893762366"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 2880.0, "distance_total": 9420.00542208, "cadence_max": 44.0, "speed_max": 4.5985217, "speed_min": 1.3475842, "speed_avg": 3.401818, "cadence_avg": 16.0, "elapsed_time_total": 2880.0, "heartrate_avg": 145.0}}, {"start_datetime": "2018-04-23T20:42:00+00:00", "name": "Racice", "is_default_name": false, "created_datetime": "2018-05-18T09:27:18+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:27:18+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893759843/", "id": "2893759843"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064188131/", "id": "2064188131"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"heartrate_avg": 173.0, "cadence_min": 8.0, "distance_total": 8000.00074368, "cadence_max": 30.0, "cadence_avg": 25.0}}, {"start_datetime": "2018-04-07T07:41:02+00:00", "name": "2x3km fail", "is_default_name": false, "created_datetime": "2018-05-18T09:34:01+00:00", "notes": "\n from csv via rowsandall.com", "updated_datetime": "2018-05-18T09:34:01+00:00", "reference_key": null, "start_locale_timezone": "Europe/Bratislava", "source": "", "source_manufacturer": null, "_links": {"user": [{"href": "/v7.1/user/109227799/", "id": "109227799"}], "self": [{"href": "/v7.1/workout/2893764754/", "id": "2893764754"}], "privacy": [{"href": "/v7.1/privacy_option/1/", "id": "1"}], "route": [{"href": "/v7.1/route/2064191680/", "id": "2064191680"}], "activity_type": [{"href": "/v7.1/activity_type/128/", "id": "128"}]}, "has_time_series": true, "is_verified": true, "aggregates": {"active_time_total": 3968.0, "distance_total": 10567.9987776, "cadence_max": 63.0, "speed_max": 4.0374823, "speed_min": 0.22480257, "cadence_min": 8.0, "speed_avg": 3.053185, "cadence_avg": 20.0, "elapsed_time_total": 3968.0, "heartrate_avg": 155.0}}]}, "_links": {"self": [{"href": "/v7.1/workout/?limit=20&order_by=-start_datetime&user=109227799&offset=0"}], "documentation": [{"href": "https://developer.underarmour.com/docs/v71_Workout"}], "next": [{"href": "/v7.1/workout/?limit=20&order_by=-start_datetime&user=109227799&offset=20"}]}, "total_count": 45}
\ No newline at end of file
diff --git a/rowers/tests.py b/rowers/tests.py
index bbdcc5ef..a1f35397 100644
--- a/rowers/tests.py
+++ b/rowers/tests.py
@@ -1,6 +1,7 @@
-from __future__ import print_function
+#from __future__ import print_function
from bs4 import BeautifulSoup
import re
+
from django.test import TestCase, Client,override_settings
from django.core.management import call_command
from django.utils.six import StringIO
@@ -22,9 +23,11 @@ from rowers.tasks import handle_makeplot
from rowers.utils import serialize_list,deserialize_list
from rowers.utils import NoTokenError
from shutil import copyfile
-
+from nose.tools import assert_true
+from mock import Mock, patch
from minimocktest import MockTestCase
import pandas as pd
+import rowers.c2stuff as c2stuff
import json
import numpy as np
@@ -49,9 +52,407 @@ class DjangoTestCase(TestCase, MockTestCase):
MockTestCase.tearDown(self)
delete_strokedata(1)
-# Create your tests here.
+def mocked_requests(*args, **kwargs):
+ with open('rowers/testdata/c2jsonworkoutdata.txt','r') as infile:
+ c2workoutdata = json.load(infile)
+
+ with open('rowers/testdata/c2jsonstrokedata.txt','r') as infile:
+ c2strokedata = json.load(infile)
+
+ c2workoutlist = json.load(open('rowers/testdata/c2workoutlist.txt'))
+
+ c2uploadjson = {
+ "data": {
+ "id": 339,
+ "user_id": 1,
+ "date": "2015-08-05 13:15:41",
+ "timezone": "Europe/London",
+ "date_utc": "2015-08-05 12:15:41",
+ "distance": 5649,
+ "type": "rower",
+ "time": 8649,
+ "time_formatted": "14:24.9",
+ "workout_type": "JustRow",
+ "source": "ErgData",
+ "weight_class": "H",
+ "verified": True,
+ "ranked": False
+ }
+ }
+
+ stravaworkoutlist = json.load(open('rowers/testdata/stravaworkoutlist.txt'))
+ sporttracksworkoutlist = json.load(open('rowers/testdata/sporttracksworkouts.txt'))
+
+ rkworkoutlistjson = json.load(open('rowers/testdata/rkworkoutslist.txt','r'))
+ uaworkoutlistjson = json.load(open('rowers/testdata/uaworkoutlist.txt','r'))
+
+ stravasummaryjson = json.load(open('rowers/testdata/stravaworkoutsummary.txt','r'))
+
+ stravatimejson = json.load(open('rowers/testdata/stravatimetestdata.txt','r'))
+ stravavelojson = json.load(open('rowers/testdata/stravavelotestdata.txt','r'))
+ stravadistancejson = json.load(open('rowers/testdata/stravadistancetestdata.txt','r'))
+ stravalatlongjson = json.load(open('rowers/testdata/stravalatlongtestdata.txt','r'))
+ stravahrjson = json.load(open('rowers/testdata/stravahrtestdata.txt','r'))
+ stravaspmjson = json.load(open('rowers/testdata/stravaspmtestdata.txt','r'))
+
+ uapostworkoutjson = json.load(open('rowers/testdata/uapostworkoutresponse.txt','r'))
+
+ tpuploadresponse = json.load(open('rowers/testdata/tpuploadresponse.txt','r'))
+
+ stravastreamjson = {
+ 'time':stravatimejson,
+ 'velocity_smooth':stravavelojson,
+ 'distance':stravadistancejson,
+ 'latlng':stravalatlongjson,
+ 'heartrate':stravahrjson,
+ 'cadence':stravaspmjson,
+ }
+
+ ststrokesjson = json.load(open('rowers/testdata/sporttracksstrokedata.txt','r'))
+
+ rkstrokesjson = json.load(open('rowers/testdata/rkstrokes.txt','r'))
+
+ uastrokesjson = json.load(open('rowers/testdata/uastrokes.txt','r'))
+ uauserjson = json.load(open('rowers/testdata/uauser.txt','r'))
+
+ class MockResponse:
+ def __init__(self, json_data, status_code):
+ self.json_data = json_data
+ self.status_code = status_code
+
+ def json(self):
+ return self.json_data
+
+
+ class MockHeaderResponse:
+ def __init__(self, header_data, status_code):
+ self.headers = header_data
+ self.status_code = status_code
+
+ class MockSession:
+ def send(self,prepped):
+ # prepped.url
+ # prepped.body (post data)
+ # prepped.headers
+ # prepped.method
+
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+
+ return MockResponse(json_data,200)
+
+ if not args:
+ return MockSession()
+
+ c2tester = re.compile('.*?log\.concept2\.com')
+ stravatester = re.compile('.*?strava\.com')
+ sttester = re.compile('.*?sporttracks\.mobi')
+ rktester = re.compile('.*?runkeeper\.com')
+ uatester = re.compile('.*?mapmyfitness\.com')
+ tptester = re.compile('.*?trainingpeaks\.com')
+
+ c2importregex = '.*?concept2.com\/api\/users\/me\/results\/\d+'
+ c2importtester = re.compile(c2importregex)
+
+ c2uploadregex = '.*?concept2.com\/api\/users\/\d+\/results$'
+ c2uploadtester = re.compile(c2uploadregex)
+
+ c2strokesregex = '.*?concept2.com\/api\/users\/me\/results\/\d+\/strokes'
+ c2strokestester = re.compile(c2strokesregex)
+
+ c2workoutlistregex = '.*?concept2\.com\/api\/users\/me\/results\?page=\d'
+ c2workoutlisttester = re.compile(c2workoutlistregex)
+
+ stravaworkoutlistregex = '.*?strava\.com\/api\/v3\/athlete\/activities'
+ stravaworkoutlisttester = re.compile(stravaworkoutlistregex)
+
+ stravastreamregex = '.*?strava\.com\/api\/v3\/activities\/\d+\/streams\/(\w.*?)\?'
+ stravastreamtester = re.compile(stravastreamregex)
+
+ stravasummaryregex = '.*?strava\.com\/api\/v3\/activities\/\d+$'
+ stravasummarytester = re.compile(stravasummaryregex)
+
+ stuploadregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities.json$'
+ stuploadtester = re.compile(stuploadregex)
+
+ stworkoutlistregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities$'
+ stworkoutlisttester = re.compile(stworkoutlistregex)
+
+ ststrokesregex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities/\d+$'
+ ststrokestester = re.compile(ststrokesregex)
+
+ rkuploadregex = '.*?api\.runkeeper\.com\/fitnessActivities$'
+ rkuploadtester = re.compile(rkuploadregex)
+ rkuserregex = '.*?api\.runkeeper\.com\/user$'
+ rkusertester = re.compile(rkuserregex)
+ rkstrokesregex = '.*?api\.runkeeper\.com\/fitnessActivities/\d+$'
+ rkstrokestester = re.compile(rkstrokesregex)
+
+ uaapiregex = '.*?api\.ua\.com'
+ uaapitester = re.compile(uaapiregex)
+
+ uauploadregex = '.*?api\.ua\.com\/v7.1\/workout\/$'
+ uauploadtester = re.compile(uauploadregex)
+
+ uastrokesregex = '.*?api\.ua\.com\/v7.1\/workout\/\d+'
+ uastrokestester = re.compile(uastrokesregex)
+
+ ualistregex = '.*?api\.ua\.com\/v7.1\/workout\/\?user'
+ ualisttester = re.compile(ualistregex)
+
+ uauserregex = '.*?api\.ua\.com\/v7.1\/user\/self\/'
+ uausertester = re.compile(uauserregex)
+
+ tpuploadregex = '.*?trainingpeaks\.com\/v1\/file'
+ tpuploadtester = re.compile(tpuploadregex)
+
+ if tptester.match(args[0]):
+ if 'token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+ elif tpuploadtester.match(args[0]):
+ return MockResponse(tpuploadresponse,200)
+
+ if uaapitester.match(args[0]):
+ if 'access_token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+ elif uauploadtester.match(args[0]):
+ if 'data' in kwargs:
+ return MockResponse(uapostworkoutjson,200)
+ elif uastrokestester.match(args[0]):
+ return MockResponse(uastrokesjson,200)
+ elif ualisttester.match(args[0]):
+ return MockResponse(uaworkoutlistjson,200)
+ elif uausertester.match(args[0]):
+ return MockResponse(uauserjson,200)
+
+
+ if uatester.match(args[0]):
+ if 'access_token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+
+
+ if rktester.match(args[0]):
+ if 'token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+ elif rkuploadtester.match(args[0]):
+ if 'data' in kwargs:
+ # post
+ header_data = {
+ 'Location': '/fitnessActivities/12'
+ }
+ return MockHeaderResponse(header_data,200)
+ else:
+ json_data = rkworkoutlistjson
+ return MockResponse(json_data,200)
+ elif rkusertester.match(args[0]):
+ json_data = {
+ "userID": 1234567890,
+ "profile": "/profile",
+ "settings": "/settings",
+ "fitness_activities": "/fitnessActivities",
+ "strength_training_activities": "/strengthTrainingActivities",
+ "background_activities": "/backgroundActivities",
+ "sleep": "/sleep",
+ "nutrition": "/nutrition",
+ "weight": "/weight",
+ "general_measurements": "/generalMeasurements",
+ "diabetes": "/diabetes",
+ "records": "/records",
+ "team": "/team"
+ }
+ return MockResponse(json_data, 200)
+ elif rkstrokestester.match(args[0]):
+ return MockResponse(rkstrokesjson,200)
+
+ if sttester.match(args[0]):
+ if 'oauth2/token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+ if ststrokestester.match(args[0]):
+ return MockResponse(ststrokesjson,200)
+ if stuploadtester.match(args[0]):
+ json_data = {
+ "uris": [
+ "https://api.sporttracks.mobi/api/v2/fitnessActivity/123456"
+ ]
+ }
+ return MockResponse(json_data, 200)
+ if stworkoutlisttester.match(args[0]):
+ return MockResponse(sporttracksworkoutlist,200)
+
+
+ if stravatester.match(args[0]):
+ if stravaworkoutlisttester.match(args[0]):
+ return MockResponse(stravaworkoutlist,200)
+ if stravastreamtester.match(args[0]):
+ metric = stravastreamtester.match(args[0]).group(1)
+ json_data = stravastreamjson[metric]
+ return MockResponse(json_data,200)
+ elif stravasummarytester.match(args[0]):
+ return MockResponse(stravasummaryjson,200)
+
+ if c2tester.match(args[0]):
+ if c2uploadtester.match(args[0]):
+ return MockResponse(c2uploadjson,201)
+ if c2strokestester.match(args[0]):
+ return MockResponse(c2strokedata,200)
+ elif c2importtester.match(args[0]):
+ return MockResponse(c2workoutdata,200)
+ elif c2workoutlisttester.match(args[0]):
+ return MockResponse(c2workoutlist,200)
+ elif 'access_token' in args[0]:
+ json_data = {
+ 'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
+ 'expires_in': 604800,
+ 'refresh_token': 'jHJhFzCfOOKB8oyiayubhLAlxaMkG3ruC1E8YxaR'
+ }
+ return MockResponse(json_data,200)
+ elif 'users/me' in args[0]:
+ json_data = {
+ 'data': {
+ 'username': 'john',
+ 'id': 1234,
+ }
+ }
+ return MockResponse(json_data,200)
+ elif 'results' in args[0]:
+ json_data = {
+ 'data': {
+ 'id': 1223,
+ }
+ }
+ else:
+ return MockResponse(c2workoutdata,200)
+
+ return MockResponse(None,404)
+
class C2Objects(DjangoTestCase):
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
+ 'sander@ds.ds',
+ 'koeinsloot')
+
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ gdproptindate=timezone.now()
+ )
+
+ self.r.c2token = '12'
+ self.r.c2refreshtoken = 'ab'
+ self.r.tokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
+ self.r.save()
+ self.c.login(username='john',password='koeinsloot')
+
+ self.nu = datetime.datetime.now()
+
+ filename = 'rowers/testdata/testdata.csv'
+
+ rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
+ hrut1=self.r.ut1,hrat=self.r.at,
+ hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
+ row = rdata(filename,rower=rr)
+ totaldist = row.df['cum_dist'].max()
+ totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
+ totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
+
+
+ hours = int(totaltime/3600.)
+ minutes = int((totaltime - 3600.*hours)/60.)
+ seconds = int(totaltime - 3600.*hours - 60.*minutes)
+ tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
+
+ duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
+
+
+ workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
+ workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
+
+ self.w = Workout.objects.create(
+ name='testworkout',workouttype='On-water',
+ user=self.r,date=self.nu.strftime('%Y-%m-%d'),
+ starttime=workoutstarttime,
+ startdatetime=row.rowdatetime,
+ duration=duration,distance=totaldist,
+ csvfilename=filename
+ )
+
+
+ @patch('rowers.c2stuff.requests.Session', side_effect=mocked_requests)
+ def test_c2_callback(self, mock_post):
+ response = self.c.get('/call_back?code=dsdoij232s',follow=True)
+
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.c2stuff.Session', side_effect=mocked_requests)
+ def test_c2_token_refresh(self, mock_post):
+ response = self.c.get('/rowers/me/c2refresh/',follow=True)
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.c2stuff.requests.post', side_effect=mocked_requests)
+ @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
+ def test_c2_upload(self, mock_get, mock_post):
+ response = self.c.get('/rowers/workout/1/c2uploadw/')
+
+ self.assertRedirects(response,
+ expected_url = '/rowers/workout/1/export',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.url, '/rowers/workout/1/export')
+ self.assertEqual(response.status_code, 302)
+
+ @patch('rowers.c2stuff.requests.post', side_effect=mocked_requests)
+ def test_c2_list(self, mock_get):
+ response = self.c.get('/rowers/workout/c2list',follow=True)
+
+ self.assertEqual(response.status_code,200)
+
+ @patch('rowers.c2stuff.requests.get', side_effect=mocked_requests)
+ def test_c2_import(self, mock_get):
+
+ response = self.c.get('/rowers/workout/c2import/12/',follow=True)
+
+ self.assertRedirects(response,
+ expected_url='/rowers/workout/2/edit',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
+
def test_strokedata(self):
with open('rowers/testdata/c2stroketestdata.txt','r') as infile:
res = json.load(infile)
@@ -65,17 +466,7 @@ class C2Objects(DjangoTestCase):
from rowers.views import add_workout_from_strokedata
- u = User.objects.create_user('john',
- 'sander@ds.ds',
- 'koeinsloot')
- u.first_name = 'John'
- u.last_name = 'Sander'
- u.save()
- r = Rower.objects.create(user=u,gdproptin=True,
- gdproptindate=timezone.now()
- )
-
- res = add_workout_from_strokedata(u,1,data,strokedata,source='c2')
+ res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2')
def test_strokedatanohr(self):
with open('rowers/testdata/c2strokedatanohr.txt','r') as infile:
@@ -90,213 +481,439 @@ class C2Objects(DjangoTestCase):
from rowers.views import add_workout_from_strokedata
- u = User.objects.create_user('john',
- 'sander@ds.ds',
- 'koeinsloot')
- u.first_name = 'John'
- u.last_name = 'Sander'
- u.save()
- r = Rower.objects.create(user=u,gdproptin=True,
- gdproptindate=timezone.now()
- )
-
- res = add_workout_from_strokedata(u,1,data,strokedata,source='c2')
+ res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2')
class StravaObjects(DjangoTestCase):
- def test_strokedata(self):
- timejson = json.load(open('rowers/testdata/stravatimetestdata.txt','r'))
- velojson = json.load(open('rowers/testdata/stravavelotestdata.txt','r'))
- distancejson = json.load(open('rowers/testdata/stravadistancetestdata.txt','r'))
- latlongjson = json.load(open('rowers/testdata/stravalatlongtestdata.txt','r'))
- hrjson = json.load(open('rowers/testdata/stravahrtestdata.txt','r'))
- spmjson = json.load(open('rowers/testdata/stravaspmtestdata.txt','r'))
- workoutsummary = json.load(open('rowers/testdata/stravasummarytestdata.txt','r'))
- workoutsummary['timezone'] = "Etc/UTC"
- startdatetime = workoutsummary['start_date']
-
-
- t = np.array(timejson[0]['data'])
- d = np.array(distancejson[0]['data'])
- nr_rows = len(t)
-
- try:
- spm = np.array( spmjson[1]['data'])
- except IndexError:
- spm = np.zeros(nr_rows)
-
- try:
- hr = np.array(hrjson[1]['data'])
- except IndexError:
- hr = np.zeros(nr_rows)
-
- try:
- velo = np.array(velojson[1]['data'])
- except IndexError:
- velo = np.zeros(nr_rows)
-
- dt = np.diff(t).mean()
- wsize = round(5./dt)
-
- from stravastuff import ewmovingaverage
- velo2 = ewmovingaverage(velo,wsize)
- coords = np.array(latlongjson[0]['data'])
- try:
- lat = coords[:,0]
- lon = coords[:,1]
- except IndexError:
- lat = np.zeros(len(t))
- lon = np.zeros(len(t))
-
-
-
-
- strokelength = velo*60./(spm)
- strokelength[np.isinf(strokelength)] = 0.0
-
- pace = 500./(1.0*velo2)
- pace[np.isinf(pace)] = 0.0
-
- strokedata = pd.DataFrame({'t':10*t,
- 'd':10*d,
- 'p':10*pace,
- 'spm':spm,
- 'hr':hr,
- 'lat':lat,
- 'lon':lon,
- 'strokelength':strokelength,
- })
-
- from rowers.views import add_workout_from_strokedata
-
- u = User.objects.create_user('john',
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- u.first_name = 'John'
- u.last_name = 'Sander'
- u.save()
- r = Rower.objects.create(user=u,gdproptin=True,
+
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
gdproptindate=timezone.now()
)
+ self.r.stravatoken = '12'
- res = add_workout_from_strokedata(u,1,workoutsummary,strokedata,
- source='strava')
+ self.r.save()
+ self.c.login(username='john',password='koeinsloot')
- def test_strokedatanohr(self):
- timejson = json.load(open('rowers/testdata/stravatimetestdata.txt','r'))
- velojson = json.load(open('rowers/testdata/stravavelotestdata.txt','r'))
- distancejson = json.load(open('rowers/testdata/stravadistancetestdata.txt','r'))
- latlongjson = json.load(open('rowers/testdata/stravalatlongtestdata.txt','r'))
- hrjson = json.load(open('rowers/testdata/stravahrtestnodata.txt','r'))
- spmjson = json.load(open('rowers/testdata/stravaspmtestdata.txt','r'))
- workoutsummary = json.load(open('rowers/testdata/stravasummarytestdata.txt','r'))
- workoutsummary['timezone'] = "Etc/UTC"
- startdatetime = workoutsummary['start_date']
+ @patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
+ def test_strava_list(self, mock_get):
+ response = self.c.get('/rowers/workout/stravaimport/',follow=True)
-
- t = np.array(timejson[0]['data'])
- d = np.array(distancejson[0]['data'])
- nr_rows = len(t)
+ self.assertEqual(response.status_code,200)
- try:
- spm = np.array( spmjson[1]['data'])
- except IndexError:
- spm = np.zeros(nr_rows)
+ @patch('rowers.utils.requests.get', side_effect=mocked_requests)
+ def test_strava_import(self, mock_get):
- try:
- hr = np.array(hrjson[1]['data'])
- except IndexError:
- hr = np.zeros(nr_rows)
+ response = self.c.get('/rowers/workout/stravaimport/12',follow=True)
- try:
- velo = np.array(velojson[1]['data'])
- except IndexError:
- velo = np.zeros(nr_rows)
+ self.assertRedirects(response,
+ expected_url='/rowers/workout/1/edit',
+ status_code=301,target_status_code=200)
- dt = np.diff(t).mean()
- wsize = round(5./dt)
-
- from stravastuff import ewmovingaverage
- velo2 = ewmovingaverage(velo,wsize)
- coords = np.array(latlongjson[0]['data'])
- try:
- lat = coords[:,0]
- lon = coords[:,1]
- except IndexError:
- lat = np.zeros(len(t))
- lon = np.zeros(len(t))
-
-
-
-
- strokelength = velo*60./(spm)
- strokelength[np.isinf(strokelength)] = 0.0
-
- pace = 500./(1.0*velo2)
- pace[np.isinf(pace)] = 0.0
-
- strokedata = pd.DataFrame({'t':10*t,
- 'd':10*d,
- 'p':10*pace,
- 'spm':spm,
- 'hr':hr,
- 'lat':lat,
- 'lon':lon,
- 'strokelength':strokelength,
- })
-
- from rowers.views import add_workout_from_strokedata
-
- u = User.objects.create_user('john',
- 'sander@ds.ds',
- 'koeinsloot')
- u.first_name = 'John'
- u.last_name = 'Sander'
- u.save()
- r = Rower.objects.create(user=u,gdproptin=True,
- gdproptindate=timezone.now()
- )
-
- res = add_workout_from_strokedata(u,1,workoutsummary,strokedata,
- source='strava')
+ self.assertEqual(response.status_code, 200)
class STObjects(DjangoTestCase):
- def test_strokedata(self):
- with open('rowers/testdata/sporttrackstestdata.txt','r') as infile:
- data = json.load(infile)
-
- from rowers.views import add_workout_from_stdata
-
- u = User.objects.create_user('john',
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
gdproptindate=timezone.now()
)
- res = add_workout_from_stdata(u,1,data)
+ self.r.sporttrackstoken = '12'
+ self.r.sporttracksrefreshtoken = '12'
+ self.r.sporttrackstokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
+ self.r.save()
+
+ self.c.login(username='john',password='koeinsloot')
+
+ self.nu = datetime.datetime.now()
+
+ filename = 'rowers/testdata/testdata.csv'
+
+ rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
+ hrut1=self.r.ut1,hrat=self.r.at,
+ hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
+ row = rdata(filename,rower=rr)
+ totaldist = row.df['cum_dist'].max()
+ totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
+ totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
+
+
+ hours = int(totaltime/3600.)
+ minutes = int((totaltime - 3600.*hours)/60.)
+ seconds = int(totaltime - 3600.*hours - 60.*minutes)
+ tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
+
+ duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
+
+
+ workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
+ workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
+
+ self.w = Workout.objects.create(
+ name='testworkout',workouttype='On-water',
+ user=self.r,date=self.nu.strftime('%Y-%m-%d'),
+ starttime=workoutstarttime,
+ startdatetime=row.rowdatetime,
+ duration=duration,distance=totaldist,
+ csvfilename=filename
+ )
+
+ @patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
+ def test_sporttracks_callback(self, mock_post):
+ response = self.c.get('/sporttracks_callback?code=dsdoij232s',follow=True)
+
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
+ def test_sporttracks_token_refresh(self, mock_post):
+ response = self.c.get('/rowers/me/sporttracksrefresh/',follow=True)
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.sporttracksstuff.requests.post', side_effect=mocked_requests)
+ @patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests)
+ def test_sporttracks_upload(self, mock_get, mock_post):
+ response = self.c.get('/rowers/workout/1/sporttracksuploadw/')
+
+ self.assertRedirects(response,
+ expected_url = '/rowers/workout/1/export',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.url, '/rowers/workout/1/export')
+ self.assertEqual(response.status_code, 302)
+
+ @patch('rowers.sporttracksstuff.requests.get', side_effect=mocked_requests)
+ def test_sporttracks_list(self, mock_get):
+ response = self.c.get('/rowers/workout/sporttracksimport',follow=True)
+
+ self.assertEqual(response.status_code,200)
+
+ @patch('rowers.imports.requests.get', side_effect=mocked_requests)
+ def test_sporttracks_import(self, mock_get):
+
+ response = self.c.get('/rowers/workout/sporttracksimport/12/',follow=True)
+
+ self.assertRedirects(response,
+ expected_url='/rowers/workout/2/edit',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
+ def test_strokedata(self):
+ with open('rowers/testdata/sporttrackstestdata.txt','r') as infile:
+ data = json.load(infile)
+
+ from rowers.sporttracksstuff import add_workout_from_data
+
+ res = add_workout_from_data(self.u,1,data,data)
def test_strokedatanohr(self):
with open('rowers/testdata/sporttrackstestnohr.txt','r') as infile:
data = json.load(infile)
- from rowers.views import add_workout_from_stdata
+ from rowers.sporttracksstuff import add_workout_from_data
- u = User.objects.create_user('john',
+
+
+ res = add_workout_from_data(self.u,1,data,data)
+
+class RunKeeperObjects(DjangoTestCase):
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
- r = Rower.objects.create(user=u,gdproptin=True,
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
gdproptindate=timezone.now()
)
- res = add_workout_from_stdata(u,1,data)
+ self.r.runkeepertoken = '12'
+
+ self.r.save()
+
+ self.c.login(username='john',password='koeinsloot')
+
+ self.nu = datetime.datetime.now()
+
+ filename = 'rowers/testdata/testdata.csv'
+
+ rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
+ hrut1=self.r.ut1,hrat=self.r.at,
+ hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
+ row = rdata(filename,rower=rr)
+ totaldist = row.df['cum_dist'].max()
+ totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
+ totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
+
+
+ hours = int(totaltime/3600.)
+ minutes = int((totaltime - 3600.*hours)/60.)
+ seconds = int(totaltime - 3600.*hours - 60.*minutes)
+ tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
+
+ duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
+
+
+ workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
+ workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
+
+ self.w = Workout.objects.create(
+ name='testworkout',workouttype='On-water',
+ user=self.r,date=self.nu.strftime('%Y-%m-%d'),
+ starttime=workoutstarttime,
+ startdatetime=row.rowdatetime,
+ duration=duration,distance=totaldist,
+ csvfilename=filename
+ )
+
+ @patch('rowers.runkeeperstuff.requests.post', side_effect=mocked_requests)
+ def test_runkeeper_callback(self, mock_post):
+ response = self.c.get('/runkeeper_callback?code=dsdoij232s',follow=True)
+
+ self.assertEqual(response.status_code, 200)
+
+ @patch('rowers.runkeeperstuff.requests.post', side_effect=mocked_requests)
+ @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests)
+ def test_runkeeper_upload(self, mock_get, mock_post):
+ response = self.c.get('/rowers/workout/1/runkeeperuploadw/')
+
+ self.assertRedirects(response,
+ expected_url = '/rowers/workout/1/export',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.url, '/rowers/workout/1/export')
+ self.assertEqual(response.status_code, 302)
+
+ @patch('rowers.runkeeperstuff.requests.get', side_effect=mocked_requests)
+ def test_runkeeper_list(self, mock_get):
+ response = self.c.get('/rowers/workout/runkeeperimport',follow=True)
+
+ self.assertEqual(response.status_code,200)
+
+ @patch('rowers.imports.requests.get', side_effect=mocked_requests)
+ def test_runkeeper_import(self, mock_get):
+
+ response = self.c.get('/rowers/workout/runkeeperimport/12/',follow=True)
+
+ self.assertRedirects(response,
+ expected_url='/rowers/workout/2/edit',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
+
+
+class UAObjects(DjangoTestCase):
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
+ 'sander@ds.ds',
+ 'koeinsloot')
+
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ gdproptindate=timezone.now()
+ )
+
+
+ self.r.underarmourtoken = '12'
+ self.r.underarmourrefreshtoken = '12'
+ self.r.underarmourtokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
+ self.r.save()
+
+ self.c.login(username='john',password='koeinsloot')
+
+ self.nu = datetime.datetime.now()
+
+ filename = 'rowers/testdata/testdata.csv'
+
+ rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
+ hrut1=self.r.ut1,hrat=self.r.at,
+ hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
+ row = rdata(filename,rower=rr)
+ totaldist = row.df['cum_dist'].max()
+ totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
+ totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
+
+
+ hours = int(totaltime/3600.)
+ minutes = int((totaltime - 3600.*hours)/60.)
+ seconds = int(totaltime - 3600.*hours - 60.*minutes)
+ tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
+
+ duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
+
+
+ workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
+ workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
+
+ self.w = Workout.objects.create(
+ name='testworkout',workouttype='On-water',
+ user=self.r,date=self.nu.strftime('%Y-%m-%d'),
+ starttime=workoutstarttime,
+ startdatetime=row.rowdatetime,
+ duration=duration,distance=totaldist,
+ csvfilename=filename
+ )
+
+ @patch('rowers.imports.requests.post', side_effect=mocked_requests)
+ def test_underarmour_callback(self, mock_post):
+ response = self.c.get('/underarmour_callback?code=dsdoij232s',follow=True)
+
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests)
+ def test_underarmour_token_refresh(self, mock_post):
+ response = self.c.get('/rowers/me/underarmourrefresh/',follow=True)
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.underarmourstuff.requests.post', side_effect=mocked_requests)
+ @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests)
+ def test_underarmour_upload(self, mock_get, mock_post):
+ response = self.c.get('/rowers/workout/1/underarmouruploadw/')
+
+ self.assertRedirects(response,
+ expected_url = '/rowers/workout/1/export',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.url, '/rowers/workout/1/export')
+ self.assertEqual(response.status_code, 302)
+
+ @patch('rowers.underarmourstuff.requests.get', side_effect=mocked_requests)
+ def test_underarmour_list(self, mock_get):
+ response = self.c.get('/rowers/workout/underarmourimport',follow=True)
+
+ self.assertEqual(response.status_code,200)
+
+ @patch('rowers.imports.requests.get', side_effect=mocked_requests)
+ def test_underarmour_import(self, mock_get):
+
+ response = self.c.get('/rowers/workout/underarmourimport/12/',follow=True)
+
+ self.assertRedirects(response,
+ expected_url='/rowers/workout/2/edit',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.status_code, 200)
+
+
+class TPObjects(DjangoTestCase):
+ def setUp(self):
+ self.c = Client()
+ self.u = User.objects.create_user('john',
+ 'sander@ds.ds',
+ 'koeinsloot')
+
+ self.u.first_name = 'John'
+ self.u.last_name = 'Sander'
+ self.u.save()
+ self.r = Rower.objects.create(user=self.u,gdproptin=True,
+ gdproptindate=timezone.now()
+ )
+
+
+ self.r.tptoken = '12'
+ self.r.tprefreshtoken = '12'
+ self.r.tptokenexpirydate = datetime.datetime.now()+datetime.timedelta(days=1)
+ self.r.save()
+
+ self.c.login(username='john',password='koeinsloot')
+
+ self.nu = datetime.datetime.now()
+
+ filename = 'rowers/testdata/testdata.csv'
+
+ rr = rrower(hrmax=self.r.max,hrut2=self.r.ut2,
+ hrut1=self.r.ut1,hrat=self.r.at,
+ hrtr=self.r.tr,hran=self.r.an,ftp=self.r.ftp)
+ row = rdata(filename,rower=rr)
+ totaldist = row.df['cum_dist'].max()
+ totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
+ totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
+
+
+ hours = int(totaltime/3600.)
+ minutes = int((totaltime - 3600.*hours)/60.)
+ seconds = int(totaltime - 3600.*hours - 60.*minutes)
+ tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
+
+ duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
+
+
+ workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
+ workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
+
+ self.w = Workout.objects.create(
+ name='testworkout',workouttype='On-water',
+ user=self.r,date=self.nu.strftime('%Y-%m-%d'),
+ starttime=workoutstarttime,
+ startdatetime=row.rowdatetime,
+ duration=duration,distance=totaldist,
+ csvfilename=filename
+ )
+
+ @patch('rowers.imports.requests.post', side_effect=mocked_requests)
+ def test_tp_callback(self, mock_post):
+ response = self.c.get('/tp_callback?code=dsdoij232s',follow=True)
+
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests)
+ def test_tp_token_refresh(self, mock_post):
+ response = self.c.get('/rowers/me/tprefresh/',follow=True)
+
+ self.assertEqual(response.status_code, 200)
+
+
+ @patch('rowers.tpstuff.requests.post', side_effect=mocked_requests)
+ @patch('rowers.tpstuff.requests.get', side_effect=mocked_requests)
+ def test_tp_upload(self, mock_get, mock_post):
+ response = self.c.get('/rowers/workout/1/tpuploadw/')
+
+ self.assertRedirects(response,
+ expected_url = '/rowers/workout/1/export',
+ status_code=302,target_status_code=200)
+
+ self.assertEqual(response.url, '/rowers/workout/1/export')
+ self.assertEqual(response.status_code, 302)
+
+
class TestErrorPages(TestCase):
diff --git a/rowers/tpstuff.py b/rowers/tpstuff.py
index 9a783d9a..b57397cd 100644
--- a/rowers/tpstuff.py
+++ b/rowers/tpstuff.py
@@ -1,40 +1,12 @@
# All the functionality needed to connect to Runkeeper
+from rowers.imports import *
# Python
-import oauth2 as oauth
-import cgi
-import requests
-import requests.auth
-import json
-from django.utils import timezone
-from datetime import datetime
-from datetime import timedelta
-import numpy as np
-from dateutil import parser
-import time
-import pytz
-import math
import gzip
-from math import sin,cos,atan2,sqrt
-import os,sys
-import urllib
+
import base64
from io import BytesIO
-from time import strftime
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
-#from django.contrib import messages
-# Project
-# from .models import Profile
-from rowingdata import rowingdata
-import pandas as pd
-from rowers.models import Rower,Workout,checkworkoutuser
from rowsandall_app.settings import (
C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
@@ -50,116 +22,35 @@ from django_rq import job
import time
from async_messages import message_user,messages
-
-
-
-from utils import geo_distance, NoTokenError,ewmovingaverage, custom_exception_handler
-
+oauth_data = {
+ 'client_id': TP_CLIENT_ID,
+ 'client_secret': TP_CLIENT_SECRET,
+ 'redirect_uri': TP_REDIRECT_URI,
+ 'autorization_uri': "https://oauth.trainingpeaks.com/oauth/authorize?",
+ 'content_type': 'application/x-www-form-urlencoded',
+ 'tokenname': 'tptoken',
+ 'refreshtokenname': 'tprefreshtoken',
+ 'expirydatename': 'tptokenexpirydate',
+ 'bearer_auth': False,
+ 'base_url': "https://oauth.trainingpeaks.com/oauth/token",
+ }
# Checks if user has UnderArmour token, renews them if they are expired
def tp_open(user):
- r = Rower.objects.get(user=user)
- if (r.tptoken == '') or (r.tptoken is None):
- s = "Token doesn't exist. Need to authorize"
- raise NoTokenError("User has no token")
- else:
- if (timezone.now()>r.tptokenexpirydate):
- res = do_refresh_token(r.tprefreshtoken)
- if res[0] != 0:
- r.tptoken = res[0]
- r.tprefreshtoken = res[2]
- expirydatetime = timezone.now()+timedelta(seconds=res[1])
- r.tptokenexpirydate = expirydatetime
- r.save()
- thetoken = r.tptoken
- else:
- raise NoTokenError("Refresh token invalid")
- else:
- thetoken = r.tptoken
-
- return thetoken
+ return imports_open(user, oauth_data)
# Refresh ST token using refresh token
def do_refresh_token(refreshtoken):
- client_auth = requests.auth.HTTPBasicAuth(TP_CLIENT_KEY, TP_CLIENT_SECRET)
- post_data = {"grant_type": "refresh_token",
- "client_secret": TP_CLIENT_SECRET,
- "client_id":TP_CLIENT_KEY,
- "refresh_token": refreshtoken,
- }
- headers = {'user-agent': 'sanderroosendaal',
- 'Accept': 'application/json',
- 'Content-Type': 'application/x-www-form-urlencoded',
- }
-
-
- url = "https://oauth.trainingpeaks.com/oauth/token"
-
- response = requests.post(url,
- data=post_data,
- headers=headers)
-
- if response.status_code == 200 or response.status_code == 201:
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- try:
- refresh_token = token_json['refresh_token']
- except KeyError:
- refresh_token = refreshtoken
- else:
- return [0,0,0]
-
-
- return [thetoken,expires_in,refresh_token]
+ return imports_do_refresh_token(refreshtoken, oauth_data)
# Exchange access code for long-lived access token
def get_token(code):
- client_auth = requests.auth.HTTPBasicAuth(TP_CLIENT_KEY, TP_CLIENT_SECRET)
- post_data = {
- "client_id":TP_CLIENT_KEY,
- "grant_type": "authorization_code",
- "code": code,
- "redirect_uri":TP_REDIRECT_URI,
- "client_secret": TP_CLIENT_SECRET,
- }
- headers = {
- 'Content-Type': 'application/x-www-form-urlencoded',
- }
-
- response = requests.post("https://oauth.trainingpeaks.com/oauth/token",
- data=post_data)
-
-
- try:
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- refresh_token = token_json['refresh_token']
- except KeyError:
- thetoken = 0
- expires_in = 0
- refresh_token = 0
-
- return thetoken,expires_in,refresh_token
+ return imports_get_token(code, oauth_data)
# Make authorization URL including random string
def make_authorization_url(request):
- # Generate a random string for the state parameter
- # Save it for use later to prevent xsrf attacks
- from uuid import uuid4
- state = str(uuid4())
-
- params = {"client_id": TP_CLIENT_KEY,
- "response_type": "code",
- "redirect_uri": TP_REDIRECT_URI,
- "scope": "file:write",
- }
- url = "https://oauth.trainingpeaks.com/oauth/authorize?" +urllib.urlencode(params)
-
- return HttpResponseRedirect(url)
-
+ return imports_make_authorization_url(oauth_data)
def getidfromresponse(response):
@@ -229,7 +120,6 @@ def uploadactivity(access_token,filename,description='',
data = json.dumps(data),
headers=headers)
- print resp.status_code
if resp.status_code != 200:
if settings.DEBUG:
print resp.status_code
@@ -237,24 +127,11 @@ def uploadactivity(access_token,filename,description='',
print ""
print headers
print ""
- with open("media/tperrors.log","a") as errorlog:
- errorlog.write(str(resp.status_code))
- errorlog.write("\r\n")
- timestr = strftime("%Y%m%d-%H%M%S")
- errorlog.write(timestr+"\r\n")
- errorlog.write("\r\n")
- errorlog.write(str(resp.reason))
- errorlog.write("\r\n")
- try:
- errorlog.write(str(resp.json()))
- except:
- pass
- errorlog.write("\r\n")
return 0,resp.reason,resp.status_code,headers
else:
return resp.json()[0]["Id"],"ok",200,""
- return 0
+ return 0,0,0,0
def workout_tp_upload(user,w):
diff --git a/rowers/underarmourstuff.py b/rowers/underarmourstuff.py
index cb5a479e..4ef6ba87 100644
--- a/rowers/underarmourstuff.py
+++ b/rowers/underarmourstuff.py
@@ -1,152 +1,41 @@
-# All the functionality needed to connect to Runkeeper
-
-# Python
-import oauth2 as oauth
-import cgi
-import pytz
-import requests
-import requests.auth
-import json
-from django.utils import timezone
-from datetime import datetime,timedelta
-import arrow
-import numpy as np
-from dateutil import parser
-import time
-import math
-from math import sin,cos,atan2,sqrt
-import os,sys
-import urllib
-
-# Django
-from django.shortcuts import render_to_response
-from django.http import HttpResponseRedirect, HttpResponse,JsonResponse
-from django.conf import settings
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.models import User
-from django.contrib.auth.decorators import login_required
-
-# Project
-# from .models import Profile
-from rowingdata import rowingdata
-import pandas as pd
-from rowers.models import Rower,Workout,checkworkoutuser
+from rowers.imports import *
from rowsandall_app.settings import (
- C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
- STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
- UNDERARMOUR_CLIENT_ID, UNDERARMOUR_CLIENT_SECRET,
- UNDERARMOUR_REDIRECT_URI,UNDERARMOUR_CLIENT_KEY,
+ UNDERARMOUR_CLIENT_KEY,
+ UNDERARMOUR_CLIENT_SECRET,
+ UNDERARMOUR_REDIRECT_URI,
)
-from utils import NoTokenError,ewmovingaverage
-
-from utils import geo_distance, custom_exception_handler
-
-
+oauth_data = {
+ 'client_id': UNDERARMOUR_CLIENT_KEY,
+ 'client_secret': UNDERARMOUR_CLIENT_SECRET,
+ 'redirect_uri': UNDERARMOUR_REDIRECT_URI,
+ 'autorization_uri': "https://www.mapmyfitness.com/v7.1/oauth2/uacf/authorize/",
+ 'content_type': 'application/x-www-form-urlencoded',
+ 'tokenname': 'underarmourtoken',
+ 'refreshtokenname': 'underarmourrefreshtoken',
+ 'expirydatename': 'underarmourtokenexpirydate',
+ 'bearer_auth': True,
+ 'base_url': "https://api.ua.com/v7.1/oauth2/access_token/",
+ }
# Checks if user has UnderArmour token, renews them if they are expired
def underarmour_open(user):
- r = Rower.objects.get(user=user)
- if (r.underarmourtoken == '') or (r.underarmourtoken is None):
- s = "Token doesn't exist. Need to authorize"
- raise NoTokenError("User has no token")
- else:
- if (timezone.now()>r.underarmourtokenexpirydate):
- res = do_refresh_token(
- r.underarmourrefreshtoken,r.underarmourtoken
- )
- access_token = res[0]
- expires_in = res[1]
- refresh_token = res[2]
-
- expirydatetime = timezone.now()+timedelta(seconds=expires_in)
-
- r = getrower(request.user)
- r.underarmourtoken = access_token
- r.underarmourtokenexpirydate = expirydatetime
- r.underarmourrefreshtoken = refresh_token
-
- r.save()
- thetoken = r.underarmourtoken
- else:
- thetoken = r.underarmourtoken
-
- return thetoken
+ return imports_open(user,oauth_data)
# Refresh ST token using refresh token
def do_refresh_token(refreshtoken,access_token):
- client_auth = requests.auth.HTTPBasicAuth(UNDERARMOUR_CLIENT_KEY, UNDERARMOUR_CLIENT_SECRET)
- post_data = {"grant_type": "refresh_token",
- "client_secret": UNDERARMOUR_CLIENT_SECRET,
- "client_id":UNDERARMOUR_CLIENT_KEY,
- "refresh_token": refreshtoken,
- }
- headers = {'user-agent': 'sanderroosendaal',
- "Api-Key":UNDERARMOUR_CLIENT_KEY,
- 'Accept': 'application/json',
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'authorization': 'Bearer %s' % access_token}
-
- url = "https://api.ua.com/v7.1/oauth2/access_token/"
-
- response = requests.post(url,
- data=post_data,
- headers=headers)
-
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- try:
- refresh_token = token_json['refresh_token']
- except KeyError:
- refresh_token = refreshtoken
-
- return [thetoken,expires_in,refresh_token]
+ return imports_do_refresh_token(
+ refreshtoken,oauth_data,access_token=access_token
+ )
# Exchange access code for long-lived access token
def get_token(code):
- client_auth = requests.auth.HTTPBasicAuth(UNDERARMOUR_CLIENT_KEY, UNDERARMOUR_CLIENT_SECRET)
- post_data = {
- "grant_type": "authorization_code",
- "code": code,
- "client_secret": UNDERARMOUR_CLIENT_SECRET,
- "client_id":UNDERARMOUR_CLIENT_KEY,
- }
- headers = {
- 'user-agent': 'sanderroosendaal',
- "Api-Key":UNDERARMOUR_CLIENT_KEY,
- }
-
- response = requests.post("https://api.ua.com/v7.1/oauth2/access_token/",
- data=post_data,
- headers=headers)
- try:
- token_json = response.json()
- thetoken = token_json['access_token']
- expires_in = token_json['expires_in']
- refresh_token = token_json['refresh_token']
- except KeyError:
- thetoken = 0
- expires_in = 30
- refresh_token = ''
-
- return thetoken,expires_in,refresh_token
+ return imports_get_token(code,oauth_data)
# Make authorization URL including random string
def make_authorization_url(request):
- # Generate a random string for the state parameter
- # Save it for use later to prevent xsrf attacks
- from uuid import uuid4
- state = str(uuid4())
-
- params = {"client_id": UNDERARMOUR_CLIENT_KEY,
- "response_type": "code",
- "redirect_uri": UNDERARMOUR_REDIRECT_URI,
- }
- url = "https://www.mapmyfitness.com/v7.1/oauth2/uacf/authorize/" +urllib.urlencode(params)
-
- return HttpResponseRedirect(url)
+ return imports_make_authorization_url(oauth_data)
# Get list of workouts available on Underarmour
def get_underarmour_workout_list(user):
@@ -163,14 +52,13 @@ def get_underarmour_workout_list(user):
'Content-Type': 'application/json'}
url = "https://api.ua.com/v7.1/workout/?user="+str(get_userid(r.underarmourtoken))+"&order_by=-start_datetime"
-
s = requests.get(url,headers=headers)
return s
# Get workout summary data by Underarmour ID
-def get_underarmour_workout(user,underarmourid):
+def get_workout(user,underarmourid):
r = Rower.objects.get(user=user)
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
return custom_exception_handler(401,s)
@@ -185,7 +73,14 @@ def get_underarmour_workout(user,underarmourid):
url = "https://api.ua.com/v7.1/workout/"+str(underarmourid)+"/?field_set=time_series"
s = requests.get(url,headers=headers)
- return s
+ data = s.json()
+
+ strokedata = pd.DataFrame.from_dict({
+ key: pd.Series(value) for key, value in data.items()
+ })
+
+ return data,strokedata
+
# Create Workout Data for upload to Underarmour
def createunderarmourworkoutdata(w):
@@ -319,13 +214,12 @@ def get_idfromuri(user,links):
id = links['self'][0]['id']
typeid = links['activity_type'][0]['id']
-
typename = get_typefromid(typeid,user)
return id,typename
def getidfromresponse(response):
- t = json.loads(response.text)
+ t = response.json()
links = t["_links"]
@@ -453,3 +347,170 @@ def workout_ua_upload(user,w):
return message, uaid
return message, uaid
+
+# Create workout from SportTracks Data, which are slightly different
+# than Strava or Concept2 data
+def add_workout_from_data(user,importid,data,strokedata,
+ source='mapmyfitness',
+ workoutsource='mapmyfitness'):
+ workouttype = 'water'
+
+ try:
+ comments = data['notes']
+ except:
+ comments = ''
+
+ try:
+ thetimezone = tz(data['start_locale_timezone'])
+ except:
+ thetimezone = 'UTC'
+
+ r = Rower.objects.get(user=user)
+ try:
+ rowdatetime = iso8601.parse_date(data['start_datetime'])
+ except iso8601.ParseError:
+ try:
+ rowdatetime = datetime.strptime(data['start_datetime'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except:
+ try:
+ rowdatetime = parser.parse(data['start_datetime'])
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ except:
+ rowdatetime = datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
+ rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
+ starttimeunix = arrow.get(rowdatetime).timestamp
+
+
+ try:
+ title = data['name']
+ except:
+ title = "Imported data"
+
+ timeseries = data['time_series']
+
+ # position, distance, speed, cadence, power,
+
+ res = splituadata(timeseries['distance'])
+
+ distance = res[1]
+
+ times_distance = res[0]
+
+
+ try:
+ l = timeseries['position']
+
+ res = splituadata(l)
+ times_location = res[0]
+ latlong = res[1]
+ latcoord = []
+ loncoord = []
+
+ for coord in latlong:
+ lat = coord['lat']
+ lon = coord['lng']
+ latcoord.append(lat)
+ loncoord.append(lon)
+ except:
+ times_location = times_distance
+ latcoord = np.zeros(len(times_distance))
+ loncoord = np.zeros(len(times_distance))
+ if workouttype in types.otwtypes:
+ workouttype = 'rower'
+
+ try:
+ res = splituadata(timeseries['cadence'])
+ times_spm = res[0]
+ spm = res[1]
+ except KeyError:
+ times_spm = times_distance
+ spm = 0*times_distance
+
+ try:
+ res = splituadata(timeseries['heartrate'])
+ hr = res[1]
+ times_hr = res[0]
+ except KeyError:
+ times_hr = times_distance
+ hr = 0*times_distance
+
+
+ # create data series and remove duplicates
+ distseries = pd.Series(distance,index=times_distance)
+ distseries = distseries.groupby(distseries.index).first()
+ latseries = pd.Series(latcoord,index=times_location)
+ latseries = latseries.groupby(latseries.index).first()
+ lonseries = pd.Series(loncoord,index=times_location)
+ lonseries = lonseries.groupby(lonseries.index).first()
+ spmseries = pd.Series(spm,index=times_spm)
+ spmseries = spmseries.groupby(spmseries.index).first()
+ hrseries = pd.Series(hr,index=times_hr)
+ hrseries = hrseries.groupby(hrseries.index).first()
+
+
+ # Create dicts and big dataframe
+ d = {
+ ' Horizontal (meters)': distseries,
+ ' latitude': latseries,
+ ' longitude': lonseries,
+ ' Cadence (stokes/min)': spmseries,
+ ' HRCur (bpm)' : hrseries,
+ }
+
+
+
+ df = pd.DataFrame(d)
+
+ df = df.groupby(level=0).last()
+
+ cum_time = df.index.values
+ df[' ElapsedTime (sec)'] = cum_time
+
+ velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
+
+ df[' Power (watts)'] = 0.0*velo
+
+ nr_rows = len(velo.values)
+
+ df[' DriveLength (meters)'] = np.zeros(nr_rows)
+ df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
+ df[' DriveTime (ms)'] = np.zeros(nr_rows)
+ df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
+ df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
+ df[' lapIdx'] = np.zeros(nr_rows)
+
+
+
+ unixtime = cum_time+starttimeunix
+ unixtime[0] = starttimeunix
+
+ df['TimeStamp (sec)'] = unixtime
+
+
+ dt = np.diff(cum_time).mean()
+ wsize = round(5./dt)
+
+ df = df.fillna(0)
+
+ df.sort_values(by='TimeStamp (sec)',ascending=True)
+
+ timestr = strftime("%Y%m%d-%H%M%S")
+
+ csvfilename ='media/{code}_{importid}.csv'.format(
+ importid=importid,
+ code = uuid4().hex[:16]
+ )
+
+ res = df.to_csv(csvfilename+'.gz',index_label='index',
+ compression='gzip')
+
+ id,message = dataprep.save_workout_database(csvfilename,r,
+ workouttype=workouttype,
+ workoutsource='mapmyfitness',
+ title=title,
+ notes=comments)
+
+ return (id,message)
+
diff --git a/rowers/urls.py b/rowers/urls.py
index e27a3b71..12561aaa 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -105,9 +105,6 @@ handler403 = 'views.error403_view'
from oauth2_provider.views import base
urlpatterns = [
-# url(r'^password_change/$',auth_views.password_change),
-# url(r'^password_change_done/$',auth_views.password_change_done),
-# url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')),
url(r'^o/authorize/$', base.AuthorizationView.as_view(), name="authorize"),
url(r'^o/token/$', base.TokenView.as_view(), name="token"),
url(r'^', include(router.urls)),
@@ -120,7 +117,6 @@ urlpatterns = [
url(r'^404/$', TemplateView.as_view(template_name='404.html'),name='404'),
url(r'^400/$', TemplateView.as_view(template_name='400.html'),name='400'),
url(r'^403/$', TemplateView.as_view(template_name='403.html'),name='403'),
-# url(r'^imports/$', TemplateView.as_view(template_name='imports.html'), name='imports'),
url(r'^imports/$', views.imports_view),
url(r'^exportallworkouts/?$',views.workouts_summaries_email_view),
url(r'^update_empower$',views.rower_update_empower_view),
@@ -321,20 +317,16 @@ urlpatterns = [
url(r'^workout/c2list/$',views.workout_c2import_view),
url(r'^workout/c2list/(?P\d+)$',views.workout_c2import_view),
url(r'^workout/stravaimport/$',views.workout_stravaimport_view),
- url(r'^workout/c2import/(?P\d+)/$',views.workout_getc2workout_view),
url(r'^workout/c2import/all/$',views.workout_getc2workout_all),
url(r'^workout/c2import/all/(?P\d+)$',views.workout_getc2workout_all),
- url(r'^workout/stravaimport/(?P\d+)/$',views.workout_getstravaworkout_view),
+ url(r'^workout/(?P\w+.*)import/(?P\d+)/$',views.workout_getimportview),
url(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all),
url(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next),
url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view),
- url(r'^workout/sporttracksimport/(?P\d+)/$',views.workout_getsporttracksworkout_view),
url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all),
url(r'^workout/polarimport/$',views.workout_polarimport_view),
url(r'^workout/runkeeperimport/$',views.workout_runkeeperimport_view),
- url(r'^workout/runkeeperimport/(?P\d+)/$',views.workout_getrunkeeperworkout_view),
url(r'^workout/underarmourimport/$',views.workout_underarmourimport_view),
- url(r'^workout/underarmourimport/(?P\d+)/$',views.workout_getunderarmourworkout_view),
url(r'^workout/(?P\d+)/deleteconfirm$',views.workout_delete_confirm_view),
url(r'^workout/(?P\d+)/c2uploadw/$',views.workout_c2_upload_view),
url(r'^workout/(?P\d+)/stravauploadw/$',views.workout_strava_upload_view),
diff --git a/rowers/utils.py b/rowers/utils.py
index f6dd932e..b05dc188 100644
--- a/rowers/utils.py
+++ b/rowers/utils.py
@@ -7,10 +7,14 @@ from django.conf import settings
import uuid
import datetime
+import json
+
from django.http import HttpResponse
import requests
+from django.http import HttpResponse
+
lbstoN = 4.44822
landingpages = (
@@ -445,4 +449,7 @@ def get_strava_stream(r,metric,stravaid,series_type='time',fetchresolution='high
metric=metric
)
- return requests.get(url,headers=headers)
+
+ s = requests.get(url,headers=headers)
+
+ return s
diff --git a/rowers/views.py b/rowers/views.py
index c159f0f7..ae7b1b9b 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -840,47 +840,13 @@ def get_time(second):
def getidfromsturi(uri,length=8):
return uri[len(uri)-length:]
-def splituadata(lijst):
- t = []
- y = []
- for d in lijst:
- t.append(d[0])
- y.append(d[1])
+import re
- return np.array(t),np.array(y)
+def getidfromuri(uri):
+ m = re.search('/(\w.*)\/(\d+)',uri)
+ return m.group(2)
-def splitrunkeeperlatlongdata(lijst,tname,latname,lonname):
- t = []
- lat = []
- lon = []
- for d in lijst:
- t.append(d[tname])
- lat.append(d[latname])
- lon.append(d[lonname])
- return [np.array(t),np.array(lat),np.array(lon)]
-
-def splitrunkeeperdata(lijst,xname,yname):
- x = []
- y = []
- for d in lijst:
- x.append(d[xname])
- y.append(d[yname])
-
- return [np.array(x),np.array(y)]
-
-# Splits SportTracks data which is one long sequence of
-# [t,[lat,lon],t2,[lat2,lon2] ...]
-# to [t,t2,t3, ...], [[lat,long],[lat2,long2],...
-def splitstdata(lijst):
- t = []
- latlong = []
- while len(lijst)>=2:
- t.append(lijst[0])
- latlong.append(lijst[1])
- lijst = lijst[2:]
-
- return [np.array(t),np.array(latlong)]
from utils import (
geo_distance,serialize_list,deserialize_list,uniqify,
@@ -1269,524 +1235,8 @@ def add_workout_from_strokedata(user,importid,data,strokedata,
return id,message
-# Create workout from RunKeeper Data
-def add_workout_from_runkeeperdata(user,importid,data):
- # To Do - add utcoffset to time
- workouttype = data['type']
- if workouttype not in [x[0] for x in Workout.workouttypes]:
- workouttype = 'other'
- try:
- comments = data['notes']
- except:
- comments = ''
-
- try:
- utcoffset = tz(data['utcoffset'])
- except:
- utcoffset = 0
-
- r = getrower(user)
-
- try:
- rowdatetime = iso8601.parse_date(data['start_time'])
- except iso8601.ParseError:
- try:
- rowdatetime = datetime.datetime.strptime(data['start_time'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- try:
- rowdatetime = dateutil.parser.parse(data['start_time'])
- #rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- rowdatetime = datetime.datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- starttimeunix = arrow.get(rowdatetime).timestamp
- #starttimeunix = mktime(rowdatetime.utctimetuple())
- starttimeunix += utcoffset*3600
-
-
- try:
- title = data['name']
- except:
- title = "Imported data"
-
-
-
- res = splitrunkeeperdata(data['distance'],'timestamp','distance')
-
- distance = res[1]
- times_distance = res[0]
-
- try:
- l = data['path']
-
- res = splitrunkeeperlatlongdata(l,'timestamp','latitude','longitude')
- times_location = res[0]
- latcoord = res[1]
- loncoord = res[2]
-
- except:
- times_location = times_distance
- latcoord = np.zeros(len(times_distance))
- loncoord = np.zeros(len(times_distance))
- if workouttype in types.otwtypes:
- workouttype = 'rower'
-
- try:
- res = splitrunkeeperdata(data['cadence'],'timestamp','cadence')
- times_spm = res[0]
- spm = res[1]
- except KeyError:
- times_spm = times_distance
- spm = 0*times_distance
-
- try:
- res = splitrunkeeperdata(data['heart_rate'],'timestamp','heart_rate')
- hr = res[1]
- times_hr = res[0]
- except KeyError:
- times_hr = times_distance
- hr = 0*times_distance
-
-
- # create data series and remove duplicates
- distseries = pd.Series(distance,index=times_distance)
- distseries = distseries.groupby(distseries.index).first()
- latseries = pd.Series(latcoord,index=times_location)
- try:
- latseries = latseries.groupby(latseries.index).first()
- except TypeError:
- latseries = 0.0*distseries
-
- lonseries = pd.Series(loncoord,index=times_location)
- try:
- lonseries = lonseries.groupby(lonseries.index).first()
- except TypeError:
- lonseries = 0.0*distseries
-
- spmseries = pd.Series(spm,index=times_spm)
- spmseries = spmseries.groupby(spmseries.index).first()
- hrseries = pd.Series(hr,index=times_hr)
- try:
- hrseries = hrseries.groupby(hrseries.index).first()
- except TypeError:
- hrseries = 0*distseries
-
-
- # Create dicts and big dataframe
- d = {
- ' Horizontal (meters)': distseries,
- ' latitude': latseries,
- ' longitude': lonseries,
- ' Cadence (stokes/min)': spmseries,
- ' HRCur (bpm)' : hrseries,
- }
-
- df = pd.DataFrame(d)
-
- df = df.groupby(level=0).last()
-
- cum_time = df.index.values
- df[' ElapsedTime (sec)'] = cum_time
-
- velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
-
- df[' Power (watts)'] = 0.0*velo
-
- nr_rows = len(velo.values)
-
- df[' DriveLength (meters)'] = np.zeros(nr_rows)
- df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
- df[' DriveTime (ms)'] = np.zeros(nr_rows)
- df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
- df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' lapIdx'] = np.zeros(nr_rows)
-
-
-
- unixtime = cum_time+starttimeunix
- try:
- unixtime[0] = starttimeunix
- except IndexError:
- return (0,'No data to import')
-
- df['TimeStamp (sec)'] = unixtime
-
-
- dt = np.diff(cum_time).mean()
- wsize = round(5./dt)
-
- # velo2 = stravastuff.ewmovingaverage(velo,wsize)
-
- # df[' Stroke500mPace (sec/500m)'] = 500./velo2
-
-
- df = df.fillna(0)
-
- df.sort_values(by='TimeStamp (sec)',ascending=True)
-
- timestr = strftime("%Y%m%d-%H%M%S")
-
-# csvfilename ='media/Import_'+str(importid)+'.csv'
- csvfilename ='media/{code}_{importid}.csv'.format(
- importid=importid,
- code = uuid4().hex[:16]
- )
-
- res = df.to_csv(csvfilename+'.gz',index_label='index',
- compression='gzip')
-
- id,message = dataprep.save_workout_database(csvfilename,r,
- workouttype=workouttype,
- workoutsource='runkeeper',
- title=title,
- notes=comments)
-
- return (id,message)
-
-
-
-# Create workout from SportTracks Data, which are slightly different
-# than Strava or Concept2 data
-def add_workout_from_stdata(user,importid,data):
- workouttype = data['type']
- if workouttype not in [x[0] for x in Workout.workouttypes]:
- workouttype = 'other'
- try:
- comments = data['comments']
- except:
- comments = ''
-
-
- r = getrower(user)
- try:
- rowdatetime = iso8601.parse_date(data['start_time'])
- except iso8601.ParseError:
- try:
- rowdatetime = datetime.datetime.strptime(data['start_time'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- try:
- rowdatetime = dateutil.parser.parse(data['start_time'])
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- rowdatetime = datetime.datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- starttimeunix = arrow.get(rowdatetime).timestamp
-
- try:
- title = data['name']
- except:
- title = "Imported data"
-
- try:
- res = splitstdata(data['distance'])
- distance = res[1]
- times_distance = res[0]
- except KeyError:
- try:
- res = splitstdata(data['heartrate'])
- times_distance = res[0]
- distance = 0*times_distance
- except KeyError:
- return (0,"No distance or heart rate data in the workout")
-
-
- try:
- l = data['location']
-
- res = splitstdata(l)
- times_location = res[0]
- latlong = res[1]
- latcoord = []
- loncoord = []
-
- for coord in latlong:
- lat = coord[0]
- lon = coord[1]
- latcoord.append(lat)
- loncoord.append(lon)
- except:
- times_location = times_distance
- latcoord = np.zeros(len(times_distance))
- loncoord = np.zeros(len(times_distance))
- if workouttype in types.otwtypes:
- workouttype = 'rower'
-
- try:
- res = splitstdata(data['cadence'])
- times_spm = res[0]
- spm = res[1]
- except KeyError:
- times_spm = times_distance
- spm = 0*times_distance
-
- try:
- res = splitstdata(data['heartrate'])
- hr = res[1]
- times_hr = res[0]
- except KeyError:
- times_hr = times_distance
- hr = 0*times_distance
-
-
- # create data series and remove duplicates
- distseries = pd.Series(distance,index=times_distance)
- distseries = distseries.groupby(distseries.index).first()
- latseries = pd.Series(latcoord,index=times_location)
- latseries = latseries.groupby(latseries.index).first()
- lonseries = pd.Series(loncoord,index=times_location)
- lonseries = lonseries.groupby(lonseries.index).first()
- spmseries = pd.Series(spm,index=times_spm)
- spmseries = spmseries.groupby(spmseries.index).first()
- hrseries = pd.Series(hr,index=times_hr)
- hrseries = hrseries.groupby(hrseries.index).first()
-
-
- # Create dicts and big dataframe
- d = {
- ' Horizontal (meters)': distseries,
- ' latitude': latseries,
- ' longitude': lonseries,
- ' Cadence (stokes/min)': spmseries,
- ' HRCur (bpm)' : hrseries,
- }
-
-
-
- df = pd.DataFrame(d)
-
- df = df.groupby(level=0).last()
-
- cum_time = df.index.values
- df[' ElapsedTime (sec)'] = cum_time
-
- velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
-
- df[' Power (watts)'] = 0.0*velo
-
- nr_rows = len(velo.values)
-
- df[' DriveLength (meters)'] = np.zeros(nr_rows)
- df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
- df[' DriveTime (ms)'] = np.zeros(nr_rows)
- df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
- df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' lapIdx'] = np.zeros(nr_rows)
-
-
-
- unixtime = cum_time+starttimeunix
- unixtime[0] = starttimeunix
-
- df['TimeStamp (sec)'] = unixtime
-
-
- dt = np.diff(cum_time).mean()
- wsize = round(5./dt)
-
- velo2 = stravastuff.ewmovingaverage(velo,wsize)
-
- df[' Stroke500mPace (sec/500m)'] = 500./velo2
-
-
- df = df.fillna(0)
-
- df.sort_values(by='TimeStamp (sec)',ascending=True)
-
- timestr = strftime("%Y%m%d-%H%M%S")
-
-# csvfilename ='media/Import_'+str(importid)+'.csv'
- csvfilename ='media/{code}_{importid}.csv'.format(
- importid=importid,
- code = uuid4().hex[:16]
- )
-
- res = df.to_csv(csvfilename+'.gz',index_label='index',
- compression='gzip')
-
- id,message = dataprep.save_workout_database(csvfilename,r,
- workouttype=workouttype,
- title=title,
- notes=comments,
- workoutsource='sporttracks')
-
- return (id,message)
-
-# Create workout from SportTracks Data, which are slightly different
-# than Strava or Concept2 data
-def add_workout_from_underarmourdata(user,importid,data):
- workouttype = 'water'
-
- try:
- comments = data['notes']
- except:
- comments = ''
-
- try:
- thetimezone = tz(data['start_locale_timezone'])
- except:
- thetimezone = 'UTC'
-
- r = getrower(user)
- try:
- rowdatetime = iso8601.parse_date(data['start_datetime'])
- except iso8601.ParseError:
- try:
- rowdatetime = datetime.datetime.strptime(data['start_datetime'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- try:
- rowdatetime = dateutil.parser.parse(data['start_datetime'])
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- except:
- rowdatetime = datetime.datetime.strptime(data['date'],"%Y-%m-%d %H:%M:%S")
- rowdatetime = thetimezone.localize(rowdatetime).astimezone(utc)
- starttimeunix = arrow.get(rowdatetime).timestamp
- #starttimeunix = mktime(rowdatetime.utctimetuple())
-
-
- try:
- title = data['name']
- except:
- title = "Imported data"
-
- timeseries = data['time_series']
-
- # position, distance, speed, cadence, power,
-
- res = splituadata(timeseries['distance'])
-
- distance = res[1]
-
- times_distance = res[0]
-
-
- try:
- l = timeseries['position']
-
- res = splituadata(l)
- times_location = res[0]
- latlong = res[1]
- latcoord = []
- loncoord = []
-
- for coord in latlong:
- lat = coord['lat']
- lon = coord['lng']
- latcoord.append(lat)
- loncoord.append(lon)
- except:
- times_location = times_distance
- latcoord = np.zeros(len(times_distance))
- loncoord = np.zeros(len(times_distance))
- if workouttype in types.otwtypes:
- workouttype = 'rower'
-
- try:
- res = splituadata(timeseries['cadence'])
- times_spm = res[0]
- spm = res[1]
- except KeyError:
- times_spm = times_distance
- spm = 0*times_distance
-
- try:
- res = splituadata(timeseries['heartrate'])
- hr = res[1]
- times_hr = res[0]
- except KeyError:
- times_hr = times_distance
- hr = 0*times_distance
-
-
- # create data series and remove duplicates
- distseries = pd.Series(distance,index=times_distance)
- distseries = distseries.groupby(distseries.index).first()
- latseries = pd.Series(latcoord,index=times_location)
- latseries = latseries.groupby(latseries.index).first()
- lonseries = pd.Series(loncoord,index=times_location)
- lonseries = lonseries.groupby(lonseries.index).first()
- spmseries = pd.Series(spm,index=times_spm)
- spmseries = spmseries.groupby(spmseries.index).first()
- hrseries = pd.Series(hr,index=times_hr)
- hrseries = hrseries.groupby(hrseries.index).first()
-
-
- # Create dicts and big dataframe
- d = {
- ' Horizontal (meters)': distseries,
- ' latitude': latseries,
- ' longitude': lonseries,
- ' Cadence (stokes/min)': spmseries,
- ' HRCur (bpm)' : hrseries,
- }
-
-
-
- df = pd.DataFrame(d)
-
- df = df.groupby(level=0).last()
-
- cum_time = df.index.values
- df[' ElapsedTime (sec)'] = cum_time
-
- velo = df[' Horizontal (meters)'].diff()/df[' ElapsedTime (sec)'].diff()
-
- df[' Power (watts)'] = 0.0*velo
-
- nr_rows = len(velo.values)
-
- df[' DriveLength (meters)'] = np.zeros(nr_rows)
- df[' StrokeDistance (meters)'] = np.zeros(nr_rows)
- df[' DriveTime (ms)'] = np.zeros(nr_rows)
- df[' StrokeRecoveryTime (ms)'] = np.zeros(nr_rows)
- df[' AverageDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' PeakDriveForce (lbs)'] = np.zeros(nr_rows)
- df[' lapIdx'] = np.zeros(nr_rows)
-
-
-
- unixtime = cum_time+starttimeunix
- unixtime[0] = starttimeunix
-
- df['TimeStamp (sec)'] = unixtime
-
-
- dt = np.diff(cum_time).mean()
- wsize = round(5./dt)
-
- # velo2 = stravastuff.ewmovingaverage(velo,wsize)
-
- # df[' Stroke500mPace (sec/500m)'] = 500./velo2
-
-
- df = df.fillna(0)
-
- df.sort_values(by='TimeStamp (sec)',ascending=True)
-
- timestr = strftime("%Y%m%d-%H%M%S")
-
-# csvfilename ='media/Import_'+str(importid)+'.csv'
- csvfilename ='media/{code}_{importid}.csv'.format(
- importid=importid,
- code = uuid4().hex[:16]
- )
-
- res = df.to_csv(csvfilename+'.gz',index_label='index',
- compression='gzip')
-
- id,message = dataprep.save_workout_database(csvfilename,r,
- workouttype=workouttype,
- workoutsource='mapmyfitness',
- title=title,
- notes=comments)
-
- return (id,message)
@@ -2212,7 +1662,6 @@ def workout_c2_upload_view(request,id=0):
w = get_workout(id)
r = w.user
-
try:
message,c2id = c2stuff.workout_c2_upload(request.user,w)
except NoTokenError:
@@ -2229,7 +1678,9 @@ def workout_c2_upload_view(request,id=0):
'id':str(w.id),
})
- return HttpResponseRedirect(url)
+ response = HttpResponseRedirect(url)
+
+ return response
# Upload workout to RunKeeper
@login_required()
@@ -2365,13 +1816,15 @@ def workout_sporttracks_upload_view(request,id=0):
r = w.user
try:
- thetoken = sporttracks_open(r.user)
+ res = sporttracks_open(r.user)
+ thetoken = res[0]
except NoTokenError:
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
if (checkworkoutuser(request.user,w)):
data = sporttracksstuff.createsporttracksworkoutdata(w)
+
if not data:
message = "Data error"
messages.error(request,message)
@@ -2380,7 +1833,7 @@ def workout_sporttracks_upload_view(request,id=0):
'id':str(w.id),
})
return HttpResponseRedirect(url)
-
+
authorizationstring = str('Bearer ' + thetoken)
headers = {'Authorization': authorizationstring,
'user-agent': 'sanderroosendaal',
@@ -2389,6 +1842,7 @@ def workout_sporttracks_upload_view(request,id=0):
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
response = requests.post(url,headers=headers,data=json.dumps(data))
+
# check for duplicate error first
if (response.status_code == 409 ):
message = "Duplicate error"
@@ -2396,7 +1850,7 @@ def workout_sporttracks_upload_view(request,id=0):
w.uploadedtosporttracks = -1
w.save()
elif (response.status_code == 201 or response.status_code==200):
- s= json.loads(response.text)
+ s= response.json()
sporttracksid = sporttracksstuff.getidfromresponse(response)
w.uploadedtosporttracks = sporttracksid
w.save()
@@ -2544,6 +1998,7 @@ def rower_tp_authorize(request):
def rower_c2_token_refresh(request):
r = getrower(request.user)
res = c2stuff.do_refresh_token(r.c2refreshtoken)
+
if res[0] != None:
access_token = res[0]
expires_in = res[1]
@@ -2560,7 +2015,7 @@ def rower_c2_token_refresh(request):
messages.info(request,successmessage)
else:
message = "Something went wrong (refreshing tokens). Please reauthorize:"
- messages.error(request,successmessage)
+ messages.error(request,message)
return imports_view(request)
@@ -2775,7 +2230,8 @@ def rower_process_stravacallback(request):
@login_required()
def rower_process_runkeepercallback(request):
code = request.GET['code']
- access_token = runkeeperstuff.get_token(code)
+ res = runkeeperstuff.get_token(code)
+ access_token = res[0]
r = getrower(request.user)
r.runkeepertoken = access_token
@@ -9729,11 +9185,8 @@ def workout_stravaimport_view(request,message=""):
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
message = "Something went wrong in workout_stravaimport_view"
messages.error(request,message)
- if settings.DEBUG:
- return HttpResponse(res)
- else:
- url = reverse(workouts_view)
- return HttpResponseRedirect(url)
+ url = reverse(workouts_view)
+ return HttpResponseRedirect(url)
else:
workouts = []
r = getrower(request.user)
@@ -9789,12 +9242,13 @@ def workout_runkeeperimport_view(request,message=""):
workouts = []
for item in res.json()['items']:
d = int(float(item['total_distance']))
- i = getidfromsturi(item['uri'],length=9)
+ i = getidfromuri(item['uri'])
ttot = str(datetime.timedelta(seconds=int(float(item['duration']))))
s = item['start_time']
r = item['type']
keys = ['id','distance','duration','starttime','type']
values = [i,d,ttot,s,r]
+
res = dict(zip(keys,values))
workouts.append(res)
return render(request,'runkeeper_list_import.html',
@@ -9816,11 +9270,8 @@ def workout_underarmourimport_view(request,message=""):
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
message = "Something went wrong in workout_underarmourimport_view"
messages.error(request,message)
- if settings.DEBUG:
- return HttpResponse(res)
- else:
- url = reverse(workouts_view)
- return HttpResponseRedirect(url)
+ url = reverse(workouts_view)
+ return HttpResponseRedirect(url)
else:
workouts = []
items = res.json()['_embedded']['workouts']
@@ -9914,14 +9365,14 @@ def workout_sporttracksimport_view(request,message=""):
else:
workouts = []
r = getrower(request.user)
- stids = [int(getidfromsturi(item['uri'])) for item in res.json()['items']]
+ stids = [int(getidfromuri(item['uri'])) for item in res.json()['items']]
knownstids = uniqify([
w.uploadedtosporttracks for w in Workout.objects.filter(user=r)
])
newids = [stid for stid in stids if not stid in knownstids]
for item in res.json()['items']:
d = int(float(item['total_distance']))
- i = int(getidfromsturi(item['uri']))
+ i = int(getidfromuri(item['uri']))
if i in knownstids:
nnn = ''
else:
@@ -10030,11 +9481,8 @@ def workout_c2import_view(request,page=1,message=""):
if (res.status_code != 200):
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
messages.error(request,message)
- if settings.DEBUG:
- return HttpResponse(res)
- else:
- url = reverse(workouts_view)
- return HttpResponseRedirect(url)
+ url = reverse(workouts_view)
+ return HttpResponseRedirect(url)
else:
workouts = []
r = getrower(request.user)
@@ -10068,111 +9516,153 @@ def workout_c2import_view(request,page=1,message=""):
'page':page,
})
-
-# Import a workout from Strava
+importsources = {
+ 'c2':c2stuff,
+ 'strava':stravastuff,
+ 'polar':polarstuff,
+ 'ownapi':ownapistuff,
+ 'runkeeper':runkeeperstuff,
+ 'sporttracks':sporttracksstuff,
+ 'trainingpeaks':tpstuff,
+ 'underarmour':underarmourstuff
+ }
+
@login_required()
-def workout_getstravaworkout_view(request,stravaid):
- res = stravastuff.get_strava_workout(request.user,stravaid)
+def workout_getimportview(request,externalid,source = 'c2'):
+ res = importsources[source].get_workout(request.user,externalid)
if not res[0]:
messages.error(request,res[1])
return imports_view(request)
-
+
strokedata = res[1]
data = res[0]
- id,message = add_workout_from_strokedata(request.user,stravaid,data,strokedata,
- source='strava',
- workoutsource='strava')
+
+
+ # Now works only for C2
+ if strokedata.empty:
+ distance = data['distance']
+ c2id = data['id']
+ workouttype = data['type']
+ verified = data['verified']
+ startdatetime = iso8601.parse_date(data['date'])
+ weightclass = data['weight_class']
+ weightcategory = 'hwt'
+ if weightclass == "L":
+ weightcategory = 'lwt'
+ totaltime = data['time']/10.
+ duration = dataprep.totaltime_sec_to_string(totaltime)
+ duration = datetime.datetime.strptime(duration,'%H:%M:%S.%f').time()
+
+ try:
+ timezone_str = data['timezone']
+ except:
+ timezone_str = 'UTC'
+
+ if timezone_str is None:
+ timezone_str = 'UTC'
+
+ workoutdate = startdatetime.astimezone(
+ pytz.timezone(timezone_str)
+ ).strftime('%Y-%m-%d')
+ starttime = startdatetime.astimezone(
+ pytz.timezone(timezone_str)
+ ).strftime('%H:%M:%S')
+
+ r = getrower(request.user)
+
+ id, message = dataprep.create_row_df(r,
+ distance,
+ duration,
+ startdatetime,
+ workouttype=workouttype)
+
+ w = Workout.objects.get(id=id)
+ w.uploadedtoc2 = c2id
+ w.name = 'Imported from C2'
+ w.workouttype = 'rower'
+ w.save()
+
+ message = "This workout does not have any stroke data associated with it. We created synthetic stroke data."
+ messages.info(request,message)
+ url = reverse(r.defaultlandingpage,
+ kwargs = {
+ 'id':int(id),
+ })
+
+ return HttpResponseRedirect(url)
+
+ # strokdata not empty - continue
+ id,message = importsources[source].add_workout_from_data(
+ request.user,
+ externalid,data,
+ strokedata,
+ source=source,
+ workoutsource=source)
+
w = get_workout(id)
- w.uploadedtostrava=stravaid
+ if 'workout' in data:
+ if 'splits' in data['workout']:
+ splitdata = data['workout']['splits']
+ if 'intervals' in data['workout']:
+ splitdata = data['workout']['intervals']
+ else:
+ splitdata = False
+
+ # splitdata (only for C2)
+ if splitdata:
+ w.summary,sa,results = c2stuff.summaryfromsplitdata(splitdata,data,w.csvfilename)
+ w.save()
+
+ from rowingdata.trainingparser import getlist
+ # set stroke data in CSV file
+ if sa:
+ values = getlist(sa)
+ units = getlist(sa,sel='unit')
+ types = getlist(sa,sel='type')
+
+ rowdata = rdata(w.csvfilename)
+ if rowdata:
+ rowdata.updateintervaldata(values,
+ units,types,results)
+
+ rowdata.write_csv(w.csvfilename,gzip=True)
+ dataprep.update_strokedata(w.id,rowdata.df)
+
+
+
+ if source == 'strava':
+ w.uploadedtostrava = externalid
+ elif source == 'c2':
+ w.uploadedtoc2 = externalid
+ elif source == 'polar':
+ w.uploadedtopolar = externalid
+ elif source == 'runkeeper':
+ w.uploadedtorunkeeper = externalid
+ elif source == 'sporttracks':
+ w.uploadedtosporttracks = externalid
+ elif source == 'trainingpeaks':
+ w.uploadedtotp = externalid
+ elif source == 'underarmour':
+ w.uploadedtounderarmour = externalid
+
w.save()
- if message:
- messages.error(request,message)
-
- r = getrower(request.user)
-
- url = reverse(r.defaultlandingpage,
- kwargs = {
- 'id':int(id),
- })
-
- return HttpResponseRedirect(url)
-
-# Imports a workout from Runkeeper
-@login_required()
-def workout_getrunkeeperworkout_view(request,runkeeperid):
- res = runkeeperstuff.get_runkeeper_workout(request.user,runkeeperid)
- try:
- data = res.json()
- except ValueError:
- messages.error(request,'Error getting workout from Runkeeper')
- url = reverse(workout_runkeeperimport_view)
- return HttpResponseRedirect(url)
-
- id,message = add_workout_from_runkeeperdata(request.user,runkeeperid,data)
- w = Workout.objects.get(id=id)
- w.uploadedtorunkeeper=runkeeperid
- thetoken = runkeeper_open(request.user)
- w.save()
if message:
messages.error(request,message)
r = getrower(request.user)
-
+
url = reverse(r.defaultlandingpage,
kwargs = {
- 'id':int(id),
- })
+ 'id':int(id)
+ })
+
return HttpResponseRedirect(url)
-
-# Imports a workout from Underarmour
-@login_required()
-def workout_getunderarmourworkout_view(request,underarmourid):
- res = underarmourstuff.get_underarmour_workout(request.user,underarmourid)
- data = res.json()
-
- id,message = add_workout_from_underarmourdata(request.user,underarmourid,data)
- w = Workout.objects.get(id=id)
- w.uploadedtounderarmour=underarmourid
- w.save()
- if message:
- messages.error(request,message)
-
- r = getrower(request.user)
- url = reverse(r.defaultlandingpage,
- kwargs = {
- 'id':int(id),
- })
- return HttpResponseRedirect(url)
-# Imports a workout from SportTracks
-@login_required()
-def workout_getsporttracksworkout_view(request,sporttracksid):
- res = sporttracksstuff.get_sporttracks_workout(request.user,sporttracksid)
- data = res.json()
-
- id,message = add_workout_from_stdata(request.user,sporttracksid,data)
- if id==0:
- messages.error(request,message)
- url = reverse(workouts_view)
- return HttpResponseRedirect(url)
- w = Workout.objects.get(id=id)
- w.uploadedtosporttracks=sporttracksid
- w.save()
- if message:
- messages.error(request,message)
-
- r = getrower(request.user)
-
- url = reverse(r.defaultlandingpage,
- kwargs = {
- 'id':int(id),
- })
- return HttpResponseRedirect(url)
# Imports all new workouts from SportTracks
@login_required()
@@ -10180,7 +9670,7 @@ def workout_getsporttracksworkout_all(request):
res = sporttracksstuff.get_sporttracks_workout_list(request.user)
if (res.status_code == 200):
r = getrower(request.user)
- stids = [int(getidfromsturi(item['uri'])) for item in res.json()['items']]
+ stids = [int(getidfromuri(item['uri'])) for item in res.json()['items']]
knownstids = uniqify([
w.uploadedtosporttracks for w in Workout.objects.filter(user=r)
])
@@ -10277,146 +9767,6 @@ def workout_getstravaworkout_next(request):
-# Imports a workout from Concept2
-@login_required()
-def workout_getc2workout_view(request,c2id):
- try:
- thetoken = c2_open(request.user)
- except NoTokenError:
- return HttpResponseRedirect("/rowers/me/c2authorize/")
-
- res = c2stuff.get_c2_workout(request.user,c2id)
- if (res.status_code == 200):
- data = res.json()['data']
- splitdata = None
- if 'workout' in data:
- if 'splits' in data['workout']:
- splitdata = data['workout']['splits']
- if 'intervals' in data['workout']:
- splitdata = data['workout']['intervals']
-
- # Check if workout has stroke data, and get the stroke data
- if data['stroke_data']:
- res2 = c2stuff.get_c2_workout_strokes(request.user,c2id)
- else:
- distance = data['distance']
- c2id = data['id']
- workouttype = data['type']
- verified = data['verified']
- startdatetime = iso8601.parse_date(data['date'])
- weightclass = data['weight_class']
- weightcategory = 'hwt'
- if weightclass == "L":
- weightcategory = 'lwt'
- totaltime = data['time']/10.
- duration = dataprep.totaltime_sec_to_string(totaltime)
- duration = datetime.datetime.strptime(duration,'%H:%M:%S.%f').time()
-
- try:
- timezone_str = data['timezone']
- except:
- timezone_str = 'UTC'
-
- if timezone_str is None:
- timezone_str = 'UTC'
-
- workoutdate = startdatetime.astimezone(
- pytz.timezone(timezone_str)
- ).strftime('%Y-%m-%d')
- starttime = startdatetime.astimezone(
- pytz.timezone(timezone_str)
- ).strftime('%H:%M:%S')
-
- r = getrower(request.user)
-
- id, message = dataprep.create_row_df(r,
- distance,
- duration,
- startdatetime,
-# title = 'Imported from C2',
- workouttype=workouttype)
-
- w = Workout.objects.get(id=id)
- w.uploadedtoc2 = c2id
- w.name = 'Imported from C2'
- w.workouttype = 'rower'
- w.save()
-
- message = "This workout does not have any stroke data associated with it. We created synthetic stroke data."
- messages.info(request,message)
- url = reverse(r.defaultlandingpage,
- kwargs = {
- 'id':int(id),
- })
-
- return HttpResponseRedirect(url)
-
- # We have stroke data
- if res2.status_code == 200:
- strokedata = pd.DataFrame.from_dict(res2.json()['data'])
- # create the workout
- id,message = add_workout_from_strokedata(request.user,c2id,data,strokedata,
- source='c2')
- w = Workout.objects.get(id=id)
- w.uploadedtoc2=c2id
- # If we have split data, update the stroke data so they
- # match exactly (some users are anal about this)
- if splitdata:
- try:
- w.summary,sa,results = c2stuff.summaryfromsplitdata(splitdata,data,w.csvfilename)
- except:
- sa = []
- results = []
- with open("media/c2splitdata.log","a") as errorlog:
- errorstring = str(sys.exc_info()[0])
- timestr = strftime("%Y%m%d-%H%M%S")
- errorlog.write(timestr+errorstring+"\r\n")
- errorlog.write("views.py line 952\r\n")
-
- w.save()
-
- from rowingdata.trainingparser import getlist
- # set stroke data in CSV file
- if sa:
- values = getlist(sa)
- units = getlist(sa,sel='unit')
- types = getlist(sa,sel='type')
-
- rowdata = rdata(w.csvfilename)
- if rowdata:
- rowdata.updateintervaldata(values,
- units,types,results)
-
- rowdata.write_csv(w.csvfilename,gzip=True)
- dataprep.update_strokedata(w.id,rowdata.df)
-
- if message:
- messages.error(request,message)
-
- r = getrower(request.user)
-
- url = reverse(r.defaultlandingpage,
- kwargs = {
- 'id':int(id),
- })
-
- return HttpResponseRedirect(url)
- else:
- # message = json.loads(s.text)['message']
- message = json.loads(res2.text)['message']
- messages.error(request,message)
-
- url = reverse(workout_c2import_view)
- return HttpResponseRedirect(url)
-
- else:
- message = "Received error code from Concept2"
- messages.error(request,message)
- if settings.DEBUG:
- return HttpResponse(res)
- else:
- url = reverse(workout_c2import_view)
- return HttpResponseRedirect(url)
@login_required
def workout_toggle_ranking(request,id=0):
@@ -11763,6 +11113,7 @@ def rower_exportsettings_view(request):
setattr(r, attr, value)
r.save()
+ messages.info(request,'Settings saved')
else:
form = RowerExportForm(instance=r)
return render(request, 'rower_exportsettings.html',
diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py
index 95ac1a24..3ebb23d1 100644
--- a/rowsandall_app/settings.py
+++ b/rowsandall_app/settings.py
@@ -415,3 +415,4 @@ try:
workoutemailbox = CFG['workoutemailbox']
except KeyError:
workoutemailbox = 'workouts@rowsandall.com'
+