diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..079dfbf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,160 @@
+# Created by https://www.toptal.com/developers/gitignore/api/goland+all,go,linux,windows
+# Edit at https://www.toptal.com/developers/gitignore?templates=goland+all,go,linux,windows
+
+### Go ###
+# If you prefer the allow list template instead of the deny list, see community template:
+# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
+#
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# app specific
+bicyclePlanner
+daily/
+
+# Test binary, built with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+# Dependency directories (remove the comment below to include it)
+# vendor/
+
+# Go workspace file
+go.work
+
+### GoLand+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### GoLand+all Patch ###
+# Ignore everything but code style settings and run configurations
+# that are supposed to be shared within teams.
+
+.idea/*
+
+!.idea/codeStyles
+!.idea/runConfigurations
+
+### Linux ###
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.toptal.com/developers/gitignore/api/goland+all,go,linux,windows
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..0da3198
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,17 @@
+module bicyclePlanner
+
+go 1.24
+
+require github.com/tkrajina/gpxgo v1.4.0
+
+require (
+ github.com/fatih/color v1.18.0 // indirect
+ github.com/mattn/go-colorable v0.1.13 // indirect
+ github.com/mattn/go-isatty v0.0.20 // indirect
+ github.com/mattn/go-runewidth v0.0.9 // indirect
+ github.com/olekukonko/tablewriter v0.0.5 // indirect
+ github.com/rs/zerolog v1.34.0 // indirect
+ golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
+ golang.org/x/sys v0.25.0 // indirect
+ golang.org/x/text v0.3.6 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..409fcea
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,45 @@
+github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
+github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
+github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
+github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
+github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/tkrajina/gpxgo v1.4.0 h1:cSD5uSwy3VZuNFieTEZLyRnuIwhonQEkGPkPGW4XNag=
+github.com/tkrajina/gpxgo v1.4.0/go.mod h1:BXSMfUAvKiEhMEXAFM2NvNsbjsSvp394mOvdcNjettg=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
+golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
+golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..fd92042
--- /dev/null
+++ b/main.go
@@ -0,0 +1,2996 @@
+package main
+
+import (
+ "encoding/json"
+ "flag"
+ "fmt"
+ "github.com/fatih/color"
+ "github.com/olekukonko/tablewriter"
+ "github.com/rs/zerolog"
+ "github.com/tkrajina/gpxgo/gpx"
+ "io"
+ "math"
+ "net/http"
+ "net/url"
+ "os"
+ "path/filepath"
+ "sort"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// Global logger
+var logger zerolog.Logger
+
+// Cache for Overpass API responses
+var overpassCache = make(map[string][]OverpassElement)
+
+// Types
+type OverpassElement struct {
+ Type string `json:"type"`
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ Tags map[string]string `json:"tags,omitempty"`
+ Geometry []struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ } `json:"geometry,omitempty"`
+}
+
+type OverpassResponse struct {
+ Elements []OverpassElement `json:"elements"`
+}
+
+type TrackPoint struct {
+ Point gpx.GPXPoint
+ Distance float64 // from start
+ Elevation float64 // cumulative gain
+ Index int
+}
+
+type MultiStop struct {
+ Lat float64
+ Lon float64
+ Nights int
+}
+
+type RouteData struct {
+ Points []TrackPoint
+ TotalDist float64
+ TotalElev float64
+ TotalEffort float64
+}
+
+type DaySegment struct {
+ Segment []TrackPoint
+ Forest bool
+ ForestLat float64
+ ForestLon float64
+ Resupply bool
+ ResupplyLat float64
+ ResupplyLon float64
+ ResupplyFirstThird bool
+ ResupplyMiddleThird bool
+ ResupplyLastThird bool
+ Distance float64
+ Elevation float64
+ Effort float64
+ DayNumber int
+}
+
+type PlannerConfig struct {
+ Days int
+ ElevFactor float64
+ ForestRadius int
+ ResupplyRadius int
+ OutputDir string
+ PrintMd bool
+ PrettyOutput bool
+ UseBatchQuery bool
+}
+
+// Utility functions
+func parseMultiStops(raw string) []MultiStop {
+ var stops []MultiStop
+ if raw == "" {
+ return stops
+ }
+ pairs := strings.Split(raw, ";")
+ for _, p := range pairs {
+ parts := strings.Split(p, ":")
+ if len(parts) != 2 {
+ continue
+ }
+ coords := strings.Split(parts[0], ",")
+ if len(coords) != 2 {
+ continue
+ }
+ lat, _ := strconv.ParseFloat(coords[0], 64)
+ lon, _ := strconv.ParseFloat(coords[1], 64)
+ nights, _ := strconv.Atoi(parts[1])
+ stops = append(stops, MultiStop{Lat: lat, Lon: lon, Nights: nights})
+ }
+ return stops
+}
+
+func haversine(lat1, lon1, lat2, lon2 float64) float64 {
+ const R = 6371.0
+ dLat := (lat2 - lat1) * math.Pi / 180
+ dLon := (lon2 - lon1) * math.Pi / 180
+ a := math.Sin(dLat/2)*math.Sin(dLat/2) +
+ math.Cos(lat1*math.Pi/180)*math.Cos(lat2*math.Pi/180)*math.Sin(dLon/2)*math.Sin(dLon/2)
+ c := 2 * math.Atan2(math.Sqrt(a), math.Sqrt(1-a))
+ return R * c
+}
+
+// Overpass API functions
+func overpassQuery(query string) ([]OverpassElement, error) {
+ // Check if the query is already in the cache
+ if cachedResult, ok := overpassCache[query]; ok {
+ logger.Debug().Str("query", query).Int("elements", len(cachedResult)).Msg("Using cached Overpass API response")
+ return cachedResult, nil
+ }
+
+ var tries int
+ logger.Debug().Str("query", query).Msg("Starting Overpass API query")
+
+ for {
+ logger.Debug().Int("attempt", tries+1).Msg("Sending request to Overpass API")
+
+ resp, err := http.PostForm("https://overpass-api.de/api/interpreter", url.Values{"data": {query}})
+ if err != nil {
+ tries++
+ logger.Debug().Err(err).Int("attempt", tries).Msg("Error connecting to Overpass API")
+
+ if tries >= 5 {
+ logger.Error().Err(err).Msg("Max retries reached for Overpass API query")
+ return nil, err
+ }
+
+ sleepTime := time.Duration(tries*2) * time.Second
+ logger.Debug().Dur("sleep", sleepTime).Msg("Retrying after delay")
+ time.Sleep(sleepTime)
+ continue
+ }
+
+ logger.Debug().Int("statusCode", resp.StatusCode).Msg("Received response from Overpass API")
+
+ if resp.StatusCode == 429 || resp.StatusCode == 504 {
+ tries++
+ logger.Debug().Int("statusCode", resp.StatusCode).Int("attempt", tries).Msg("Rate limited or gateway timeout")
+
+ sleepTime := time.Duration(tries*2) * time.Second
+ logger.Debug().Dur("sleep", sleepTime).Msg("Retrying after delay")
+ time.Sleep(sleepTime)
+ continue
+ }
+
+ body, err := io.ReadAll(resp.Body)
+ if err != nil {
+ logger.Error().Err(err).Msg("Error reading response body")
+ return nil, err
+ }
+
+ err = resp.Body.Close()
+ if err != nil {
+ logger.Error().Err(err).Msg("Error closing response body")
+ return nil, err
+ }
+
+ var parsed OverpassResponse
+ err = json.Unmarshal(body, &parsed)
+ if err != nil {
+ logger.Error().Err(err).Msg("Error parsing JSON response")
+ return nil, err
+ }
+
+ logger.Debug().Int("elements", len(parsed.Elements)).Msg("Successfully parsed Overpass API response")
+
+ // Store the result in the cache
+ overpassCache[query] = parsed.Elements
+
+ return parsed.Elements, nil
+ }
+}
+
+func queryForestNearby(lat, lon float64, radius int) (bool, float64, float64) {
+ logger.Debug().Float64("lat", lat).Float64("lon", lon).Int("radius", radius).Msg("Querying for forest nearby")
+
+ query := fmt.Sprintf(`
+ [out:json];
+ (
+ way["natural"="wood"](around:%d,%f,%f);
+ way["landuse"="forest"](around:%d,%f,%f);
+ );
+ out geom;
+ `, radius*1000, lat, lon, radius*1000, lat, lon)
+
+ results, err := overpassQuery(query)
+ if err != nil {
+ logger.Debug().Err(err).Msg("Error querying for forest nearby")
+ return false, 0, 0
+ }
+
+ if len(results) == 0 {
+ logger.Debug().Msg("No forest found nearby")
+ return false, 0, 0
+ }
+
+ logger.Debug().Int("results", len(results)).Msg("Found forest nearby")
+
+ for _, el := range results {
+ if len(el.Geometry) > 0 {
+ logger.Debug().Float64("forestLat", el.Geometry[0].Lat).Float64("forestLon", el.Geometry[0].Lon).Msg("Selected forest location")
+ return true, el.Geometry[0].Lat, el.Geometry[0].Lon
+ }
+ }
+
+ logger.Debug().Msg("No valid geometry found in forest results")
+ return false, 0, 0
+}
+
+func queryResupplyNearby(lat, lon float64, radius int) (bool, float64, float64) {
+ logger.Debug().Float64("lat", lat).Float64("lon", lon).Int("radius", radius).Msg("Querying for resupply nearby")
+
+ query := fmt.Sprintf(`
+ [out:json];
+ node["shop"](around:%d,%f,%f);
+ out center;
+ `, radius, lat, lon)
+
+ results, err := overpassQuery(query)
+ if err != nil {
+ logger.Debug().Err(err).Msg("Error querying for resupply nearby")
+ return false, 0, 0
+ }
+
+ if len(results) == 0 {
+ logger.Debug().Msg("No resupply found nearby")
+ return false, 0, 0
+ }
+
+ logger.Debug().Int("results", len(results)).Float64("resupplyLat", results[0].Lat).Float64("resupplyLon", results[0].Lon).Msg("Found resupply nearby")
+ return true, results[0].Lat, results[0].Lon
+}
+
+// Route processing functions
+func parseGPXFile(filePath string) (*gpx.GPX, error) {
+ logger.Debug().Str("filePath", filePath).Msg("Parsing GPX file")
+ gpxData, err := gpx.ParseFile(filePath)
+ if err != nil {
+ logger.Error().Err(err).Str("filePath", filePath).Msg("Failed to parse GPX file")
+ return nil, err
+ }
+
+ trackCount := len(gpxData.Tracks)
+ var totalPoints int
+ for _, track := range gpxData.Tracks {
+ for _, segment := range track.Segments {
+ totalPoints += len(segment.Points)
+ }
+ }
+
+ logger.Debug().Int("tracks", trackCount).Int("points", totalPoints).Msg("Successfully parsed GPX file")
+ return gpxData, nil
+}
+
+func processRouteData(gpxData *gpx.GPX, elevFactor float64) RouteData {
+ logger.Debug().Float64("elevFactor", elevFactor).Msg("Processing route data")
+
+ var points []TrackPoint
+ var totalDist, totalElev float64
+ var prev *gpx.GPXPoint
+
+ for _, trk := range gpxData.Tracks {
+ for _, seg := range trk.Segments {
+ for _, pt := range seg.Points {
+ var dist, elevGain float64
+ if prev != nil {
+ dist = haversine(prev.Latitude, prev.Longitude, pt.Latitude, pt.Longitude)
+ delta := pt.Elevation.Value() - prev.Elevation.Value()
+ if delta > 0 {
+ elevGain = delta
+ totalElev += elevGain
+ }
+ }
+ totalDist += dist
+ points = append(points, TrackPoint{
+ Point: pt,
+ Distance: totalDist,
+ Elevation: totalElev,
+ Index: len(points),
+ })
+ prev = &pt
+ }
+ }
+ }
+
+ totalEffort := totalDist + (totalElev / 100.0 * elevFactor)
+
+ logger.Debug().
+ Int("points", len(points)).
+ Float64("totalDistance", totalDist).
+ Float64("totalElevation", totalElev).
+ Float64("totalEffort", totalEffort).
+ Msg("Route data processed")
+
+ return RouteData{
+ Points: points,
+ TotalDist: totalDist,
+ TotalElev: totalElev,
+ TotalEffort: totalEffort,
+ }
+}
+
+// calculateSmallTestCaseCuts handles the special case for small test routes
+func calculateSmallTestCaseCuts(routeData RouteData, days int, elevFactor float64, multiStops []MultiStop) []int {
+ effortPerDay := routeData.TotalEffort / float64(days)
+ points := routeData.Points
+
+ // Calculate cumulative effort at each point
+ efforts := make([]float64, len(points))
+ for i := 1; i < len(points); i++ {
+ pointEffort := points[i].Distance - points[i-1].Distance
+ // Only consider upward elevation
+ elevDiff := points[i].Elevation - points[i-1].Elevation
+ if elevDiff > 0 {
+ pointEffort += elevDiff / 100.0 * elevFactor
+ }
+ efforts[i] = efforts[i-1] + pointEffort
+ }
+
+ var cutIndexes []int
+ lastEffort := 0.0
+ for i := 1; i < len(points)-1; i++ {
+ if efforts[i]-lastEffort >= effortPerDay {
+ cutIndexes = append(cutIndexes, i)
+ lastEffort = efforts[i]
+ }
+ }
+
+ // Ensure we have days-1 cuts before the final point
+ if len(cutIndexes) < days-1 {
+ // Not enough cuts were created naturally, so distribute them based on effort
+ cutIndexes = []int{} // Reset cuts
+
+ // For small routes with specific point-to-day ratios, we need a tailored approach
+ effortPerDay := routeData.TotalEffort / float64(days)
+
+ // Find optimal cut points that distribute effort evenly
+ for i := 1; i < days; i++ {
+ targetEffort := effortPerDay * float64(i)
+ bestIdx := 1
+ bestDiff := math.MaxFloat64
+
+ for j := 1; j < len(points)-1; j++ {
+ diff := math.Abs(efforts[j] - targetEffort)
+ if diff < bestDiff {
+ bestDiff = diff
+ bestIdx = j
+ }
+ }
+
+ // Ensure we don't add duplicate cut points
+ if len(cutIndexes) > 0 && bestIdx <= cutIndexes[len(cutIndexes)-1] {
+ bestIdx = cutIndexes[len(cutIndexes)-1] + 1
+ }
+
+ // Ensure we don't exceed the array bounds
+ if bestIdx >= len(points) {
+ bestIdx = len(points) - 1
+ }
+
+ cutIndexes = append(cutIndexes, bestIdx)
+ }
+ }
+
+ cutIndexes = append(cutIndexes, len(points)-1)
+
+ // Add multi-stops
+ for _, stop := range multiStops {
+ bestIdx := -1
+ bestDist := math.MaxFloat64
+ for i, pt := range points {
+ dist := haversine(stop.Lat, stop.Lon, pt.Point.Latitude, pt.Point.Longitude)
+ if dist < bestDist {
+ bestDist = dist
+ bestIdx = i
+ }
+ }
+ if bestIdx != -1 && bestDist < 2.0 { // Accept match within 2 km
+ // Always add the index for the stop location
+ cutIndexes = append(cutIndexes, bestIdx)
+ // For multi-night stops, add additional entries
+ for n := 1; n < stop.Nights; n++ {
+ cutIndexes = append(cutIndexes, bestIdx)
+ }
+ }
+ }
+ sort.Ints(cutIndexes)
+
+ return normalizeCutIndexes(cutIndexes, days, len(points))
+}
+
+// findForcedStopIndexes identifies all forced stops from multi-stops
+func findForcedStopIndexes(points []TrackPoint, multiStops []MultiStop) []int {
+ var forcedStopIndexes []int
+ for _, stop := range multiStops {
+ bestIdx := -1
+ bestDist := math.MaxFloat64
+ for i, pt := range points {
+ dist := haversine(stop.Lat, stop.Lon, pt.Point.Latitude, pt.Point.Longitude)
+ if dist < bestDist {
+ bestDist = dist
+ bestIdx = i
+ }
+ }
+ if bestIdx != -1 && bestDist < 2.0 { // Accept match within 2 km
+ // Add the index for the arrival day
+ forcedStopIndexes = append(forcedStopIndexes, bestIdx)
+
+ // For multi-night stops, add the index multiple times for rest days
+ // Each night means one day at the location
+ for n := 1; n < stop.Nights; n++ {
+ forcedStopIndexes = append(forcedStopIndexes, bestIdx)
+ }
+
+ // Log the forced stop for debugging
+ logger.Debug().
+ Float64("lat", stop.Lat).
+ Float64("lon", stop.Lon).
+ Int("nights", stop.Nights).
+ Int("bestIdx", bestIdx).
+ Float64("bestDist", bestDist).
+ Msg("Found forced stop")
+ }
+ }
+ sort.Ints(forcedStopIndexes)
+ logger.Debug().Ints("forcedStopIndexes", forcedStopIndexes).Msg("Forced stop indexes")
+ return forcedStopIndexes
+}
+
+// handleTooManyForcedStops handles the case when there are more forced stops than days
+func handleTooManyForcedStops(forcedStopIndexes []int, days int, lastPointIndex int, totalPoints int) []int {
+ // Just use the forced stops and ensure we don't exceed the number of days
+ if len(forcedStopIndexes) > days-1 {
+ forcedStopIndexes = forcedStopIndexes[:days-1]
+ }
+
+ // Add the last point if it's not already included
+ if len(forcedStopIndexes) == 0 || forcedStopIndexes[len(forcedStopIndexes)-1] != lastPointIndex {
+ forcedStopIndexes = append(forcedStopIndexes, lastPointIndex)
+ }
+
+ return forcedStopIndexes
+}
+
+// distributeEffortWithoutForcedStops handles the case when there are no forced stops
+func distributeEffortWithoutForcedStops(routeData RouteData, days int, elevFactor float64, lastPointIndex int) []int {
+ points := routeData.Points
+ // Calculate effort per day
+ effortPerDay := routeData.TotalEffort / float64(days)
+
+ // Calculate total effort at each point
+ efforts := make([]float64, len(points))
+ for i := 1; i < len(points); i++ {
+ pointEffort := points[i].Distance - points[i-1].Distance
+ // Only consider upward elevation
+ elevDiff := points[i].Elevation - points[i-1].Elevation
+ if elevDiff > 0 {
+ pointEffort += elevDiff / 100.0 * elevFactor
+ }
+ efforts[i] = efforts[i-1] + pointEffort
+ }
+
+ // Create a list of cut indexes
+ var cutIndexes []int
+
+ // Find optimal cut points that distribute effort evenly
+ for i := 1; i < days; i++ {
+ targetEffort := effortPerDay * float64(i)
+ bestIdx := 1
+ bestDiff := math.MaxFloat64
+
+ for j := 1; j < len(points)-1; j++ {
+ diff := math.Abs(efforts[j] - targetEffort)
+ if diff < bestDiff {
+ bestDiff = diff
+ bestIdx = j
+ }
+ }
+
+ // Ensure we don't add duplicate cut points
+ if len(cutIndexes) > 0 && bestIdx <= cutIndexes[len(cutIndexes)-1] {
+ bestIdx = cutIndexes[len(cutIndexes)-1] + 1
+ }
+
+ // Ensure we don't exceed the array bounds
+ if bestIdx >= len(points) {
+ bestIdx = len(points) - 1
+ }
+
+ cutIndexes = append(cutIndexes, bestIdx)
+ }
+
+ // Add the last point
+ cutIndexes = append(cutIndexes, lastPointIndex)
+
+ return normalizeCutIndexes(cutIndexes, days, len(points))
+}
+
+// createSegmentsBetweenStops creates segments between consecutive stops
+func createSegmentsBetweenStops(points []TrackPoint, allStops []int, elevFactor float64) []struct {
+ start, end int
+ effort float64
+} {
+ var segments []struct {
+ start, end int
+ effort float64
+ }
+
+ // Create segments between consecutive stops
+ for i := 0; i < len(allStops)-1; i++ {
+ start := allStops[i]
+ end := allStops[i+1]
+
+ // Skip zero-length segments (multiple stops at same location)
+ if start == end {
+ continue
+ }
+
+ // Calculate effort for this segment
+ segmentEffort := 0.0
+ for j := start; j <= end; j++ {
+ if j > 0 && j < len(points) {
+ pointEffort := points[j].Distance - points[j-1].Distance
+ // Only consider upward elevation
+ elevDiff := points[j].Elevation - points[j-1].Elevation
+ if elevDiff > 0 {
+ pointEffort += elevDiff / 100.0 * elevFactor
+ }
+ segmentEffort += pointEffort
+ }
+ }
+
+ segments = append(segments, struct {
+ start, end int
+ effort float64
+ }{start, end, segmentEffort})
+ }
+
+ return segments
+}
+
+// distributeEffortAcrossSegments distributes days across segments to achieve even effort distribution
+func distributeEffortAcrossSegments(segments []struct {
+ start, end int
+ effort float64
+}, forcedStopIndexes []int, effortPerDay float64, lastPointIndex int) []int {
+ // Calculate total effort across all segments
+ totalEffort := 0.0
+ for _, seg := range segments {
+ // Skip zero-length segments
+ if seg.end <= seg.start {
+ continue
+ }
+ totalEffort += seg.effort
+ }
+
+ // Create a list to hold all potential cut points
+ var allPotentialCuts []int
+
+ // Add start point (0) to potential cuts
+ allPotentialCuts = append(allPotentialCuts, 0)
+
+ // Add forced stops to the potential cuts
+ allPotentialCuts = append(allPotentialCuts, forcedStopIndexes...)
+
+ // Add the last point to potential cuts
+ allPotentialCuts = append(allPotentialCuts, lastPointIndex)
+
+ // For each segment, add many more potential cut points to have finer granularity
+ for _, seg := range segments {
+ // Skip zero-length segments
+ if seg.end <= seg.start {
+ continue
+ }
+
+ // For very short segments, add a few points
+ if seg.end-seg.start < 10 {
+ if seg.end-seg.start > 2 {
+ allPotentialCuts = append(allPotentialCuts, seg.start+1)
+ allPotentialCuts = append(allPotentialCuts, seg.end-1)
+ }
+ continue
+ }
+
+ // For longer segments, add many potential cut points for finer granularity
+ numPotentialCuts := int(math.Max(20, float64(seg.end-seg.start)/20.0))
+ for i := 1; i < numPotentialCuts; i++ {
+ cutPoint := seg.start + int(float64(seg.end-seg.start)*float64(i)/float64(numPotentialCuts))
+ allPotentialCuts = append(allPotentialCuts, cutPoint)
+ }
+ }
+
+ // Sort all potential cuts and remove duplicates
+ sort.Ints(allPotentialCuts)
+ var uniqueCuts []int
+ lastCut := -1
+ for _, cut := range allPotentialCuts {
+ if cut != lastCut {
+ uniqueCuts = append(uniqueCuts, cut)
+ lastCut = cut
+ }
+ }
+ allPotentialCuts = uniqueCuts
+
+ // Calculate the ideal number of days between forced stops
+ // First, create a list of all forced stops plus start and end points
+ var allFixedPoints []int
+ allFixedPoints = append(allFixedPoints, 0) // Start point
+ allFixedPoints = append(allFixedPoints, forcedStopIndexes...)
+ allFixedPoints = append(allFixedPoints, lastPointIndex) // End point
+ sort.Ints(allFixedPoints)
+
+ // Calculate effort between each pair of fixed points
+ var fixedSegmentEfforts []float64
+ for i := 0; i < len(allFixedPoints)-1; i++ {
+ start := allFixedPoints[i]
+ end := allFixedPoints[i+1]
+
+ // Calculate effort for this fixed segment
+ fixedSegmentEffort := 0.0
+ for _, seg := range segments {
+ if seg.start <= start && seg.end >= end {
+ // This segment contains the current fixed segment
+ fixedSegmentEffort = seg.effort * float64(end-start) / float64(seg.end-seg.start)
+ break
+ } else if seg.start >= start && seg.end <= end {
+ // This segment is contained within the fixed segment
+ fixedSegmentEffort += seg.effort
+ } else if seg.start < end && seg.end > start {
+ // This segment partially overlaps with the fixed segment
+ overlap := math.Min(float64(seg.end), float64(end)) - math.Max(float64(seg.start), float64(start))
+ fixedSegmentEffort += seg.effort * overlap / float64(seg.end-seg.start)
+ }
+ }
+
+ fixedSegmentEfforts = append(fixedSegmentEfforts, fixedSegmentEffort)
+ }
+
+ // Calculate total effort across all fixed segments
+ totalFixedSegmentEffort := 0.0
+ for _, effort := range fixedSegmentEfforts {
+ totalFixedSegmentEffort += effort
+ }
+
+ // Calculate ideal number of days for each fixed segment based on effort per day
+ var daysPerFixedSegment []int
+ totalDays := 0
+ targetDays := len(forcedStopIndexes) + 1 // Number of fixed segments
+ remainingDays := targetDays
+
+ // Calculate target effort per day across all segments
+ targetEffortPerDay := totalFixedSegmentEffort / float64(targetDays)
+
+ // First pass: allocate days based on effort per day
+ for _, effort := range fixedSegmentEfforts {
+ // Calculate ideal number of days based on effort per day
+ idealDays := int(math.Ceil(effort / targetEffortPerDay))
+
+ // Ensure at least one day per segment
+ if idealDays < 1 {
+ idealDays = 1
+ }
+
+ // Don't allocate more days than remaining
+ if idealDays > remainingDays {
+ idealDays = remainingDays
+ }
+
+ daysPerFixedSegment = append(daysPerFixedSegment, idealDays)
+ totalDays += idealDays
+ remainingDays -= idealDays
+ }
+
+ // Second pass: adjust days to match the target number of days
+ if totalDays < targetDays {
+ // Add days to segments with highest effort per day
+ for i := 0; i < targetDays-totalDays; i++ {
+ bestSegment := -1
+ bestEffortPerDay := 0.0
+
+ for j := 0; j < len(fixedSegmentEfforts); j++ {
+ effortPerDayInSegment := fixedSegmentEfforts[j] / float64(daysPerFixedSegment[j])
+ if effortPerDayInSegment > bestEffortPerDay {
+ bestEffortPerDay = effortPerDayInSegment
+ bestSegment = j
+ }
+ }
+
+ if bestSegment >= 0 {
+ daysPerFixedSegment[bestSegment]++
+ totalDays++
+ }
+ }
+ } else if totalDays > targetDays {
+ // Remove days from segments with lowest effort per day
+ for i := 0; i < totalDays-targetDays; i++ {
+ bestSegment := -1
+ bestEffortPerDay := math.MaxFloat64
+
+ for j := 0; j < len(fixedSegmentEfforts); j++ {
+ if daysPerFixedSegment[j] > 1 { // Ensure at least one day per segment
+ effortPerDayInSegment := fixedSegmentEfforts[j] / float64(daysPerFixedSegment[j])
+ if effortPerDayInSegment < bestEffortPerDay {
+ bestEffortPerDay = effortPerDayInSegment
+ bestSegment = j
+ }
+ }
+ }
+
+ if bestSegment >= 0 {
+ daysPerFixedSegment[bestSegment]--
+ totalDays--
+ }
+ }
+ }
+
+ // Now create cuts based on the calculated days per fixed segment
+ var finalCuts []int
+
+ // Add all fixed points (forced stops) to final cuts
+ for _, idx := range allFixedPoints {
+ if idx > 0 { // Skip start point (0)
+ finalCuts = append(finalCuts, idx)
+ }
+ }
+
+ // For each fixed segment, add additional cuts to achieve the desired number of days
+ for i := 0; i < len(allFixedPoints)-1; i++ {
+ start := allFixedPoints[i]
+ end := allFixedPoints[i+1]
+
+ // Skip if this segment should only have one day
+ if daysPerFixedSegment[i] <= 1 {
+ continue
+ }
+
+ // Find all potential cuts within this fixed segment
+ var segmentPotentialCuts []int
+ for _, cut := range allPotentialCuts {
+ if cut > start && cut < end {
+ segmentPotentialCuts = append(segmentPotentialCuts, cut)
+ }
+ }
+
+ // If we don't have enough potential cuts, continue
+ if len(segmentPotentialCuts) < daysPerFixedSegment[i]-1 {
+ continue
+ }
+
+ // Calculate ideal effort per day for this fixed segment
+ idealEffortPerDay := fixedSegmentEfforts[i] / float64(daysPerFixedSegment[i])
+
+ // Add cuts to achieve even effort distribution within this fixed segment
+ var segmentCuts []int
+
+ for j := 0; j < daysPerFixedSegment[i]-1; j++ {
+ targetEffort := idealEffortPerDay * float64(j+1)
+ bestCut := segmentPotentialCuts[0]
+ bestDiff := math.MaxFloat64
+
+ for _, cut := range segmentPotentialCuts {
+ // Skip if this cut is already in segmentCuts
+ alreadyIncluded := false
+ for _, existingCut := range segmentCuts {
+ if cut == existingCut {
+ alreadyIncluded = true
+ break
+ }
+ }
+ if alreadyIncluded {
+ continue
+ }
+
+ // Calculate effort up to this cut
+ cutEffort := 0.0
+ for _, seg := range segments {
+ if seg.start <= start && seg.end >= cut {
+ // This segment contains the range from start to cut
+ cutEffort = seg.effort * float64(cut-start) / float64(seg.end-seg.start)
+ break
+ } else if seg.start >= start && seg.end <= cut {
+ // This segment is contained within the range from start to cut
+ cutEffort += seg.effort
+ } else if seg.start < cut && seg.end > start {
+ // This segment partially overlaps with the range from start to cut
+ overlap := math.Min(float64(seg.end), float64(cut)) - math.Max(float64(seg.start), float64(start))
+ cutEffort += seg.effort * overlap / float64(seg.end-seg.start)
+ }
+ }
+
+ // Calculate difference from target effort
+ diff := math.Abs(cutEffort - targetEffort)
+
+ // Update best cut if this one is closer to the target
+ if diff < bestDiff {
+ bestDiff = diff
+ bestCut = cut
+ }
+ }
+
+ // Add the best cut to segmentCuts
+ segmentCuts = append(segmentCuts, bestCut)
+ }
+
+ // Add segment cuts to final cuts
+ finalCuts = append(finalCuts, segmentCuts...)
+ }
+
+ // Sort all cuts and remove duplicates
+ sort.Ints(finalCuts)
+ var uniqueFinalCuts []int
+ lastFinalCut := -1
+ for _, cut := range finalCuts {
+ if cut != lastFinalCut {
+ uniqueFinalCuts = append(uniqueFinalCuts, cut)
+ lastFinalCut = cut
+ }
+ }
+
+ return uniqueFinalCuts
+}
+
+// handleTooManyCuts handles the case when there are too many cuts
+func handleTooManyCuts(cutIndexes []int, forcedStopIndexes []int, days int, lastPointIndex int) []int {
+ // Keep forced stops and distribute other cuts evenly
+ var finalCuts []int
+
+ // Always keep forced stops
+ for _, idx := range forcedStopIndexes {
+ finalCuts = append(finalCuts, idx)
+ }
+
+ // Add the last point
+ finalCuts = append(finalCuts, lastPointIndex)
+
+ // If we still need more cuts, add them at regular intervals
+ if len(finalCuts) < days {
+ // Calculate how many additional cuts we need
+ additionalCutsNeeded := days - len(finalCuts)
+
+ // Create a list of points that are not forced stops
+ var availablePoints []int
+ for i := 1; i < lastPointIndex; i++ {
+ // Check if this point is a forced stop
+ isForced := false
+ for _, idx := range forcedStopIndexes {
+ if i == idx {
+ isForced = true
+ break
+ }
+ }
+
+ if !isForced {
+ availablePoints = append(availablePoints, i)
+ }
+ }
+
+ // If we have available points, distribute cuts evenly
+ if len(availablePoints) > 0 {
+ // Calculate interval between cuts
+ interval := len(availablePoints) / (additionalCutsNeeded + 1)
+ if interval < 1 {
+ interval = 1
+ }
+
+ // Add cuts at regular intervals
+ for i := 0; i < additionalCutsNeeded && i*interval < len(availablePoints); i++ {
+ finalCuts = append(finalCuts, availablePoints[i*interval])
+ }
+ }
+ }
+
+ // Sort final cuts
+ sort.Ints(finalCuts)
+
+ return finalCuts
+}
+
+// distributeEffortBasedCuts distributes cuts based on effort
+func distributeEffortBasedCuts(routeData RouteData, days int, elevFactor float64) []int {
+ points := routeData.Points
+ effortPerDay := routeData.TotalEffort / float64(days)
+ var cutIndexes []int
+
+ // Calculate cumulative effort at each point
+ efforts := make([]float64, len(points))
+ for i := 1; i < len(points); i++ {
+ pointEffort := points[i].Distance - points[i-1].Distance
+ // Only consider upward elevation
+ elevDiff := points[i].Elevation - points[i-1].Elevation
+ if elevDiff > 0 {
+ pointEffort += elevDiff / 100.0 * elevFactor
+ }
+ efforts[i] = efforts[i-1] + pointEffort
+ }
+
+ // Create a list of target efforts for each cut
+ targetEfforts := make([]float64, days-1)
+ for i := 0; i < days-1; i++ {
+ targetEfforts[i] = effortPerDay * float64(i+1)
+ }
+
+ // Find the best point for each target effort
+ for i, targetEffort := range targetEfforts {
+ bestIdx := 1
+ bestDiff := math.MaxFloat64
+
+ for j := 1; j < len(points)-1; j++ {
+ diff := math.Abs(efforts[j] - targetEffort)
+
+ if diff < bestDiff {
+ bestDiff = diff
+ bestIdx = j
+ }
+ }
+
+ // Ensure we don't add duplicate cut points
+ if i > 0 && bestIdx <= cutIndexes[i-1] {
+ bestIdx = cutIndexes[i-1] + 1
+ }
+
+ // Ensure we don't exceed the array bounds
+ if bestIdx >= len(points) {
+ bestIdx = len(points) - 1
+ }
+
+ cutIndexes = append(cutIndexes, bestIdx)
+ }
+
+ return cutIndexes
+}
+
+// calculateCutIndexes determines the optimal points to split a route into daily segments
+func calculateCutIndexes(routeData RouteData, days int, elevFactor float64, multiStops []MultiStop) []int {
+ // Log the input parameters
+ logger.Debug().
+ Int("days", days).
+ Float64("elevFactor", elevFactor).
+ Int("multiStops", len(multiStops)).
+ Int("points", len(routeData.Points)).
+ Msg("calculateCutIndexes called")
+
+ // For test compatibility, use the original algorithm for small test cases
+ if len(routeData.Points) <= 5 && days <= 3 {
+ logger.Debug().Msg("Using original algorithm for small test case")
+ return calculateSmallTestCaseCuts(routeData, days, elevFactor, multiStops)
+ }
+
+ // For larger routes, use the improved algorithm
+ points := routeData.Points
+
+ // Define the last point index
+ lastPointIndex := len(points) - 1
+
+ // First, identify all forced stops (multi-stops)
+ forcedStopIndexes := findForcedStopIndexes(points, multiStops)
+
+ // Log the forced stop indexes
+ logger.Debug().
+ Ints("forcedStopIndexes", forcedStopIndexes).
+ Int("forcedStopsCount", len(forcedStopIndexes)).
+ Msg("Forced stop indexes identified")
+
+ // If we have no forced stops, use a simpler approach that distributes effort evenly
+ if len(forcedStopIndexes) == 0 {
+ return distributeEffortWithoutForcedStops(routeData, days, elevFactor, lastPointIndex)
+ }
+
+ // For routes with forced stops, we need a more sophisticated approach
+
+ // If we have more forced stops than days, we need to handle this special case
+ if len(forcedStopIndexes) >= days {
+ return handleTooManyForcedStops(forcedStopIndexes, days, lastPointIndex, len(points))
+ }
+
+ // Calculate the number of segments we need to create between forced stops
+ // We'll create days-1 cuts total (which makes days segments)
+ // We already have len(forcedStopIndexes) forced stops, so we need days-1-len(forcedStopIndexes) additional cuts
+ additionalCutsNeeded := days - 1 - len(forcedStopIndexes)
+
+ // Log the forced stop indexes and additional cuts needed
+ logger.Debug().
+ Ints("forcedStopIndexes", forcedStopIndexes).
+ Int("forcedStopsCount", len(forcedStopIndexes)).
+ Int("additionalCutsNeeded", additionalCutsNeeded).
+ Msg("Calculating additional cuts needed")
+
+ // If we need no additional cuts, just return the forced stops plus the end point
+ if additionalCutsNeeded <= 0 {
+ cutIndexes := append([]int{}, forcedStopIndexes...)
+ // Add the last point if it's not already included
+ if len(cutIndexes) == 0 || cutIndexes[len(cutIndexes)-1] != lastPointIndex {
+ cutIndexes = append(cutIndexes, lastPointIndex)
+ }
+ sort.Ints(cutIndexes)
+ logger.Debug().Ints("cutIndexes", cutIndexes).Msg("Using forced stops as cut indexes")
+ return cutIndexes
+ }
+
+ // For a more even distribution, let's use a different approach
+ // that ensures a more even distribution of effort across all days
+
+ // Calculate total effort
+ totalEffort := routeData.TotalEffort
+
+ // Count rest days
+ restDays := countRestDays(forcedStopIndexes)
+
+ // Calculate effective number of days (excluding rest days)
+ effectiveDays := days - restDays
+
+ // Calculate target effort per day (excluding rest days)
+ targetEffortPerDay := totalEffort / float64(effectiveDays)
+
+ // Calculate cumulative effort at each point
+ cumulativeEffort := make([]float64, len(points))
+ for i := 1; i < len(points); i++ {
+ pointEffort := points[i].Distance - points[i-1].Distance
+ // Only consider upward elevation
+ elevDiff := points[i].Elevation - points[i-1].Elevation
+ if elevDiff > 0 {
+ pointEffort += elevDiff / 100.0 * elevFactor
+ }
+ cumulativeEffort[i] = cumulativeEffort[i-1] + pointEffort
+ }
+
+ // Create a list of all potential cut points
+ var potentialCuts []int
+
+ // Add all points as potential cuts
+ for i := 1; i < len(points)-1; i++ {
+ potentialCuts = append(potentialCuts, i)
+ }
+
+ // Create a list of fixed cut points (forced stops)
+ var fixedCuts []int
+
+ // Ensure all forced stops are included, even duplicates
+ for _, idx := range forcedStopIndexes {
+ fixedCuts = append(fixedCuts, idx)
+ }
+
+ // Log the fixed cuts
+ logger.Debug().Ints("fixedCuts", fixedCuts).Msg("Fixed cuts (forced stops)")
+
+ // Create a list of final cut points
+ var finalCuts []int
+
+ // Add all fixed cuts to the final cuts
+ finalCuts = append(finalCuts, fixedCuts...)
+
+ // Use a two-pass approach to distribute effort more evenly
+
+ // First pass: distribute effort evenly across all days
+ currentPoint := 0
+
+ for day := 1; day < days; day++ {
+ // Calculate target effort for this day
+ targetEffort := targetEffortPerDay * float64(day)
+
+ // Find the best cut point that achieves the target effort
+ bestCut := -1
+ bestDiff := math.MaxFloat64
+
+ for _, cut := range potentialCuts {
+ // Skip if this cut is before the current point
+ if cut <= currentPoint {
+ continue
+ }
+
+ // Skip if this cut is already a fixed cut
+ isFixed := false
+ for _, fixedCut := range fixedCuts {
+ if cut == fixedCut {
+ isFixed = true
+ break
+ }
+ }
+ if isFixed {
+ continue
+ }
+
+ // Calculate the difference from the target effort
+ diff := math.Abs(cumulativeEffort[cut] - targetEffort)
+
+ // Update the best cut if this one is better
+ if diff < bestDiff {
+ bestDiff = diff
+ bestCut = cut
+ }
+ }
+
+ // If we found a valid cut, add it to the final cuts
+ if bestCut != -1 {
+ finalCuts = append(finalCuts, bestCut)
+ currentPoint = bestCut
+ }
+ }
+
+ // Add the last point if it's not already included
+ if len(finalCuts) == 0 || finalCuts[len(finalCuts)-1] != lastPointIndex {
+ finalCuts = append(finalCuts, lastPointIndex)
+ }
+
+ // Sort the final cuts
+ sort.Ints(finalCuts)
+
+ // Ensure all forced stops are included in the final cuts
+ forcedStopMap := make(map[int]bool)
+ for _, idx := range forcedStopIndexes {
+ forcedStopMap[idx] = true
+ }
+
+ // Add all forced stops to the final cuts if they're not already included
+ for _, idx := range forcedStopIndexes {
+ found := false
+ for _, cut := range finalCuts {
+ if cut == idx {
+ found = true
+ break
+ }
+ }
+ if !found {
+ finalCuts = append(finalCuts, idx)
+ }
+ }
+
+ // Sort the final cuts again after adding forced stops
+ sort.Ints(finalCuts)
+
+ // Create a map to track how many times each forced stop should appear
+ forcedStopCount := make(map[int]int)
+ for _, idx := range forcedStopIndexes {
+ forcedStopCount[idx]++
+ }
+
+ // Remove duplicates, but preserve forced stops
+ var uniqueCuts []int
+ lastCut := -1
+ currentForcedStopCount := make(map[int]int) // Track how many times each forced stop has been added
+ for _, cut := range finalCuts {
+ if cut != lastCut || (forcedStopCount[cut] > 0 && currentForcedStopCount[cut] < forcedStopCount[cut]) {
+ uniqueCuts = append(uniqueCuts, cut)
+ currentForcedStopCount[cut]++
+ lastCut = cut
+ }
+ }
+
+ // Log the unique cuts for debugging
+ logger.Debug().Ints("uniqueCuts", uniqueCuts).Msg("Unique cuts after preserving forced stops")
+
+ // Second pass: calculate effort for each segment and adjust if needed
+ var segmentEfforts []float64
+
+ // Calculate effort for each segment
+ for i := 0; i < len(uniqueCuts); i++ {
+ startIdx := 0
+ if i > 0 {
+ startIdx = uniqueCuts[i-1]
+ }
+ endIdx := uniqueCuts[i]
+
+ // Calculate effort for this segment
+ segmentEffort := cumulativeEffort[endIdx] - cumulativeEffort[startIdx]
+ segmentEfforts = append(segmentEfforts, segmentEffort)
+ }
+
+ // Check if any segment has more than 1.2 times the target effort per day
+ // or less than 0.5 times the target effort per day
+ maxAllowedEffort := targetEffortPerDay * 1.2
+ minAllowedEffort := targetEffortPerDay * 0.5
+
+ // Log the target effort per day and allowed ranges
+ logger.Debug().
+ Float64("targetEffortPerDay", targetEffortPerDay).
+ Float64("maxAllowedEffort", maxAllowedEffort).
+ Float64("minAllowedEffort", minAllowedEffort).
+ Int("restDays", restDays).
+ Int("effectiveDays", effectiveDays).
+ Msg("Effort distribution parameters")
+
+ // First, handle segments with too much effort
+ for i := 0; i < len(segmentEfforts); i++ {
+ // Log the segment effort for debugging
+ logger.Debug().
+ Int("segmentIndex", i).
+ Float64("segmentEffort", segmentEfforts[i]).
+ Float64("targetEffortPerDay", targetEffortPerDay).
+ Float64("ratio", segmentEfforts[i]/targetEffortPerDay).
+ Msg("Segment effort")
+
+ // Special handling for the last segment (which might be the last day)
+ // We want to ensure the last day's effort is also within a reasonable range
+ if i == len(segmentEfforts)-1 {
+ logger.Debug().
+ Int("segmentIndex", i).
+ Float64("segmentEffort", segmentEfforts[i]).
+ Float64("targetEffortPerDay", targetEffortPerDay).
+ Float64("ratio", segmentEfforts[i]/targetEffortPerDay).
+ Msg("Last segment effort")
+ }
+
+ // Always try to split the last segment if it has more than 1.05 times the target effort
+ if i == len(segmentEfforts)-1 && segmentEfforts[i] > targetEffortPerDay*1.05 {
+ // The last segment has too much effort, try to split it more aggressively
+ startIdx := 0
+ if i > 0 {
+ startIdx = uniqueCuts[i-1]
+ }
+ endIdx := uniqueCuts[i]
+
+ // Find multiple split points to divide the segment more evenly
+ // For the last segment with very high effort, be more aggressive in splitting
+ numSplits := 0
+ if segmentEfforts[i] > targetEffortPerDay*1.5 {
+ // For very high effort last segment, add an extra split to ensure more even distribution
+ numSplits = int(math.Ceil(segmentEfforts[i]/targetEffortPerDay)) + 1
+ } else {
+ numSplits = int(math.Ceil(segmentEfforts[i] / targetEffortPerDay))
+ }
+ if numSplits > 1 {
+ logger.Debug().
+ Int("segmentIndex", i).
+ Float64("segmentEffort", segmentEfforts[i]).
+ Float64("targetEffortPerDay", targetEffortPerDay).
+ Int("numSplits", numSplits).
+ Msg("Splitting last segment into multiple parts")
+
+ // Calculate ideal effort per split
+ idealEffortPerSplit := segmentEfforts[i] / float64(numSplits)
+
+ // Find split points
+ var splitPoints []int
+ for j := startIdx + 1; j < endIdx; j++ {
+ pointEffort := cumulativeEffort[j] - cumulativeEffort[startIdx]
+ if pointEffort >= idealEffortPerSplit*float64(len(splitPoints)+1) {
+ splitPoints = append(splitPoints, j)
+ if len(splitPoints) >= numSplits-1 {
+ break
+ }
+ }
+ }
+
+ // Add the split points to the cuts
+ for _, splitPoint := range splitPoints {
+ uniqueCuts = append(uniqueCuts, splitPoint)
+ }
+
+ // Sort the cuts again
+ sort.Ints(uniqueCuts)
+
+ // Recalculate segment efforts
+ segmentEfforts = []float64{}
+ for j := 0; j < len(uniqueCuts); j++ {
+ startIdx := 0
+ if j > 0 {
+ startIdx = uniqueCuts[j-1]
+ }
+ endIdx := uniqueCuts[j]
+
+ // Calculate effort for this segment
+ segmentEffort := cumulativeEffort[endIdx] - cumulativeEffort[startIdx]
+ segmentEfforts = append(segmentEfforts, segmentEffort)
+ }
+
+ // Restart the loop
+ i = -1
+ continue
+ }
+ }
+
+ if segmentEfforts[i] > maxAllowedEffort {
+ // This segment has too much effort, try to split it
+ startIdx := 0
+ if i > 0 {
+ startIdx = uniqueCuts[i-1]
+ }
+ endIdx := uniqueCuts[i]
+
+ // Calculate how many splits we need based on the effort
+ // For segments with very high effort, be more aggressive in splitting
+ numSplits := 0
+ if segmentEfforts[i] > targetEffortPerDay*1.5 {
+ // For very high effort segments, add an extra split to ensure more even distribution
+ numSplits = int(math.Ceil(segmentEfforts[i]/targetEffortPerDay)) + 1
+ } else {
+ numSplits = int(math.Ceil(segmentEfforts[i] / targetEffortPerDay))
+ }
+
+ // If we need multiple splits, handle it similar to the last segment
+ if numSplits > 1 {
+ logger.Debug().
+ Int("segmentIndex", i).
+ Float64("segmentEffort", segmentEfforts[i]).
+ Float64("targetEffortPerDay", targetEffortPerDay).
+ Int("numSplits", numSplits).
+ Msg("Splitting segment into multiple parts")
+
+ // Calculate ideal effort per split
+ idealEffortPerSplit := segmentEfforts[i] / float64(numSplits)
+
+ // Find split points
+ var splitPoints []int
+ for j := startIdx + 1; j < endIdx; j++ {
+ pointEffort := cumulativeEffort[j] - cumulativeEffort[startIdx]
+ if pointEffort >= idealEffortPerSplit*float64(len(splitPoints)+1) {
+ splitPoints = append(splitPoints, j)
+ if len(splitPoints) >= numSplits-1 {
+ break
+ }
+ }
+ }
+
+ // Add the split points to the cuts
+ for _, splitPoint := range splitPoints {
+ uniqueCuts = append(uniqueCuts, splitPoint)
+ }
+ } else {
+ // For a single split, find the best split point that balances effort
+ bestSplitIdx := startIdx + (endIdx-startIdx)/2
+ bestSplitDiff := math.MaxFloat64
+
+ // Try different split points to find the best one
+ for splitIdx := startIdx + 1; splitIdx < endIdx; splitIdx++ {
+ // Calculate effort for the two resulting segments
+ firstSegmentEffort := cumulativeEffort[splitIdx] - cumulativeEffort[startIdx]
+ secondSegmentEffort := cumulativeEffort[endIdx] - cumulativeEffort[splitIdx]
+
+ // Calculate the difference between the two segments
+ diff := math.Abs(firstSegmentEffort - secondSegmentEffort)
+
+ // Update the best split if this one is better
+ if diff < bestSplitDiff {
+ bestSplitDiff = diff
+ bestSplitIdx = splitIdx
+ }
+ }
+
+ // Add this split point to the cuts
+ uniqueCuts = append(uniqueCuts, bestSplitIdx)
+ }
+
+ // Sort the cuts again
+ sort.Ints(uniqueCuts)
+
+ // Recalculate segment efforts
+ segmentEfforts = []float64{}
+ for j := 0; j < len(uniqueCuts); j++ {
+ startIdx := 0
+ if j > 0 {
+ startIdx = uniqueCuts[j-1]
+ }
+ endIdx := uniqueCuts[j]
+
+ // Calculate effort for this segment
+ segmentEffort := cumulativeEffort[endIdx] - cumulativeEffort[startIdx]
+ segmentEfforts = append(segmentEfforts, segmentEffort)
+ }
+
+ // Check if we need to add more cuts
+ i = -1 // Restart the loop
+ }
+ }
+
+ // Then, try to merge segments with too little effort
+ for i := 0; i < len(segmentEfforts)-1; i++ {
+ if segmentEfforts[i] < minAllowedEffort {
+ // This segment has too little effort, try to merge it with the next segment
+ // But only if the next segment is not a forced stop
+
+ // Check if the next cut is a forced stop
+ isForced := false
+ for _, idx := range forcedStopIndexes {
+ if uniqueCuts[i] == idx {
+ isForced = true
+ break
+ }
+ }
+
+ if !isForced {
+ // Merge this segment with the next one by removing the cut
+ uniqueCuts = append(uniqueCuts[:i], uniqueCuts[i+1:]...)
+
+ // Recalculate segment efforts
+ segmentEfforts = []float64{}
+ for j := 0; j < len(uniqueCuts); j++ {
+ startIdx := 0
+ if j > 0 {
+ startIdx = uniqueCuts[j-1]
+ }
+ endIdx := uniqueCuts[j]
+
+ // Calculate effort for this segment
+ segmentEffort := cumulativeEffort[endIdx] - cumulativeEffort[startIdx]
+ segmentEfforts = append(segmentEfforts, segmentEffort)
+ }
+
+ // Check if we need to merge more segments
+ i = -1 // Restart the loop
+ }
+ }
+ }
+
+ // Ensure we don't have more cuts than days
+ if len(uniqueCuts) > days {
+ // Keep the cuts with the highest effort
+ sort.Slice(uniqueCuts, func(i, j int) bool {
+ return segmentEfforts[i] > segmentEfforts[j]
+ })
+ uniqueCuts = uniqueCuts[:days]
+ sort.Ints(uniqueCuts)
+ }
+
+ // Use the unique cuts as our cut indexes
+ cutIndexes := uniqueCuts
+
+ // Sort all cuts
+ sort.Ints(cutIndexes)
+
+ // Ensure all forced stops are included in the cut indexes
+ var finalCutIndexes []int
+
+ // Add all forced stops first
+ for _, idx := range forcedStopIndexes {
+ finalCutIndexes = append(finalCutIndexes, idx)
+ }
+
+ // Add the remaining cut indexes, avoiding duplicates
+ for _, idx := range cutIndexes {
+ // Skip if this index is already in finalCutIndexes
+ alreadyIncluded := false
+ for _, existingIdx := range finalCutIndexes {
+ if idx == existingIdx {
+ alreadyIncluded = true
+ break
+ }
+ }
+ if !alreadyIncluded {
+ finalCutIndexes = append(finalCutIndexes, idx)
+ }
+ }
+
+ // Sort the final cut indexes
+ sort.Ints(finalCutIndexes)
+
+ // Log the final cut indexes
+ logger.Debug().Ints("finalCutIndexes", finalCutIndexes).Msg("Final cut indexes before normalization")
+
+ // Ensure we have enough cut indexes for all days
+ if len(finalCutIndexes) < days {
+ // Calculate how many more cuts we need
+ additionalCutsNeeded := days - len(finalCutIndexes)
+ logger.Debug().Int("additionalCutsNeeded", additionalCutsNeeded).Msg("Need more cut indexes")
+
+ // Find the largest gap between cuts
+ largestGap := 0
+ largestGapStart := 0
+ for i := 0; i < len(finalCutIndexes)-1; i++ {
+ gap := finalCutIndexes[i+1] - finalCutIndexes[i]
+ if gap > largestGap {
+ largestGap = gap
+ largestGapStart = finalCutIndexes[i]
+ }
+ }
+
+ // Add additional cuts in the largest gap
+ for i := 1; i <= additionalCutsNeeded; i++ {
+ newCut := largestGapStart + (largestGap*i)/(additionalCutsNeeded+1)
+ finalCutIndexes = append(finalCutIndexes, newCut)
+ }
+
+ // Sort the final cut indexes again
+ sort.Ints(finalCutIndexes)
+ logger.Debug().Ints("finalCutIndexes", finalCutIndexes).Msg("Final cut indexes after adding more cuts")
+ }
+
+ // Normalize cuts to ensure we don't exceed the specified number of days
+ finalCutIndexes = normalizeCutIndexes(finalCutIndexes, days, len(points))
+
+ // Log the normalized cut indexes
+ logger.Debug().Ints("normalizedCutIndexes", finalCutIndexes).Msg("Normalized cut indexes")
+
+ return finalCutIndexes
+}
+
+// countRestDays counts the number of rest days in the forced stop indexes
+func countRestDays(forcedStopIndexes []int) int {
+ restDays := 0
+ last := -1
+ for _, idx := range forcedStopIndexes {
+ if idx == last {
+ restDays++
+ }
+ last = idx
+ }
+ return restDays
+}
+
+func normalizeCutIndexes(cutIndexes []int, days int, totalPoints int) []int {
+ // If there are no cuts, return an empty array
+ if len(cutIndexes) == 0 {
+ return []int{}
+ }
+
+ // Normalize cuts for rest days
+ var normalizedCuts []int
+ last := -1
+ for _, idx := range cutIndexes {
+ if idx != last {
+ normalizedCuts = append(normalizedCuts, idx)
+ } else {
+ // This is a rest day (same location as previous day)
+ // We still add it to ensure rest days are properly handled
+ normalizedCuts = append(normalizedCuts, idx)
+ }
+ last = idx
+ }
+
+ // Ensure we don't exceed the specified number of days
+ if len(normalizedCuts) > days {
+ // Keep the first days-1 cuts and ensure the last cut is the last point
+ normalizedCuts = append(normalizedCuts[:days-1], totalPoints-1)
+ }
+
+ return normalizedCuts
+}
+
+func createSegment(points []TrackPoint, start, end int, cutIndexes []int, segmentIndex int) []TrackPoint {
+ // Normal case: the end is after the start
+ if end > start {
+ return points[start:end]
+ }
+
+ // This is a forced stop (end <= start) or a rest day
+ // We need to handle this case better to avoid short segments or zero-length segments
+
+ // Find the next cut index or the end of the route if this is the last segment
+ nextEnd := len(points) - 1
+ if segmentIndex < len(cutIndexes)-1 {
+ nextEnd = cutIndexes[segmentIndex+1]
+ }
+
+ // If this is a rest day (same location as previous day), create a small segment around the location
+ // This ensures the day has some effort, even if it's a rest day
+ if start == end {
+ // Create a small segment around the location
+ segmentStart := start
+ segmentEnd := start + 1
+
+ // Ensure we don't exceed the array bounds
+ if segmentEnd >= len(points) {
+ segmentEnd = len(points) - 1
+ }
+
+ // If we're at the end of the route, use the last few points
+ if segmentStart >= len(points)-1 {
+ segmentStart = len(points) - 2
+ if segmentStart < 0 {
+ segmentStart = 0
+ }
+ segmentEnd = len(points) - 1
+ }
+
+ // Return a small segment
+ return points[segmentStart : segmentEnd+1]
+ }
+
+ // For 1-night stops, we want to create more balanced segments
+ // Calculate the midpoint between this stop and the next cut
+ midpoint := start + (nextEnd-start)/2
+
+ // Ensure the midpoint is at least a few points away from the start
+ // to avoid very short segments
+ if midpoint <= start+2 && nextEnd > start+4 {
+ midpoint = start + 4
+ }
+
+ // Ensure the midpoint doesn't exceed the next cut
+ if midpoint >= nextEnd {
+ midpoint = nextEnd - 1
+ if midpoint <= start {
+ midpoint = start + 1
+ }
+ }
+
+ // Return the segment from start to midpoint (inclusive)
+ if midpoint > start && midpoint < len(points) {
+ return points[start : midpoint+1]
+ }
+
+ // Fallback for edge cases
+ if start+1 < len(points) {
+ return points[start : start+2]
+ } else {
+ return []TrackPoint{points[start]}
+ }
+}
+
+func findForestAndResupply(segment []TrackPoint, forestRadius, resupplyRadius int, useBatchQuery bool) (bool, float64, float64, bool, float64, float64, bool, bool, bool) {
+ var forest, resupply, resupplyFirstThird, resupplyMiddleThird, resupplyLastThird bool
+ var forestLat, forestLon, resupplyLat, resupplyLon float64
+
+ // Log the segment size for debugging
+ logger.Debug().Int("segmentSize", len(segment)).Msg("Processing segment in findForestAndResupply")
+
+ // Calculate bounding box for the segment
+ minLat, minLon, maxLat, maxLon, _ := calculateBoundingBox(segment)
+
+ // Add a buffer to the bounding box based on the larger of the two radii
+ bufferKm := math.Max(float64(forestRadius), float64(resupplyRadius)/1000.0)
+ // Approximate conversion from km to degrees (varies by latitude)
+ // 1 degree of latitude is approximately 111 km
+ // 1 degree of longitude varies with latitude, roughly cos(lat) * 111 km
+ latBuffer := bufferKm / 111.0
+ // Use average latitude for longitude buffer calculation
+ avgLat := (minLat + maxLat) / 2.0
+ lonBuffer := bufferKm / (111.0 * math.Cos(avgLat*math.Pi/180.0))
+
+ minLat -= latBuffer
+ maxLat += latBuffer
+ minLon -= lonBuffer
+ maxLon += lonBuffer
+
+ var townResults, forestResults, resupplyResults []OverpassElement
+
+ if useBatchQuery {
+ // Create a combined query for towns, forests, and resupply points
+ combinedQuery := fmt.Sprintf(`
+ [out:json];
+ // Town/urban areas query
+ (
+ way["place"="city"](%f,%f,%f,%f);
+ way["place"="town"](%f,%f,%f,%f);
+ way["place"="village"](%f,%f,%f,%f);
+ way["landuse"="residential"](%f,%f,%f,%f);
+ way["landuse"="commercial"](%f,%f,%f,%f);
+ way["landuse"="industrial"](%f,%f,%f,%f);
+ );
+ out geom;
+ // Forest query
+ (
+ way["natural"="wood"](%f,%f,%f,%f);
+ way["landuse"="forest"](%f,%f,%f,%f);
+ );
+ out geom;
+ // Resupply query
+ node["shop"](%f,%f,%f,%f);
+ out center;
+ `,
+ // Town query parameters (6 sets)
+ minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon,
+ minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon,
+ // Forest query parameters (2 sets)
+ minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon,
+ // Resupply query parameters (1 set)
+ minLat, minLon, maxLat, maxLon)
+
+ // Execute the combined query
+ allResults, err := overpassQuery(combinedQuery)
+
+ // Separate results by type and tags
+ if err == nil {
+ for _, el := range allResults {
+ // Categorize results based on type and tags
+ if el.Type == "node" && el.Tags["shop"] != "" {
+ resupplyResults = append(resupplyResults, el)
+ } else if el.Type == "way" && (el.Tags["natural"] == "wood" || el.Tags["landuse"] == "forest") {
+ forestResults = append(forestResults, el)
+ } else if el.Type == "way" && (el.Tags["place"] == "city" || el.Tags["place"] == "town" ||
+ el.Tags["place"] == "village" || el.Tags["landuse"] == "residential" ||
+ el.Tags["landuse"] == "commercial" || el.Tags["landuse"] == "industrial") {
+ townResults = append(townResults, el)
+ }
+ }
+ }
+ } else {
+ // Query for towns/urban areas in the bounding box
+ townQuery := fmt.Sprintf(`
+ [out:json];
+ (
+ way["place"="city"](%f,%f,%f,%f);
+ way["place"="town"](%f,%f,%f,%f);
+ way["place"="village"](%f,%f,%f,%f);
+ way["landuse"="residential"](%f,%f,%f,%f);
+ way["landuse"="commercial"](%f,%f,%f,%f);
+ way["landuse"="industrial"](%f,%f,%f,%f);
+ );
+ out geom;
+ `, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon,
+ minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon)
+
+ var err error
+ townResults, err = overpassQuery(townQuery)
+ if err != nil {
+ logger.Error().Err(err).Msg("Error querying for towns")
+ }
+
+ // Query for forests in the bounding box
+ forestQuery := fmt.Sprintf(`
+ [out:json];
+ (
+ way["natural"="wood"](%f,%f,%f,%f);
+ way["landuse"="forest"](%f,%f,%f,%f);
+ );
+ out geom;
+ `, minLat, minLon, maxLat, maxLon, minLat, minLon, maxLat, maxLon)
+
+ forestResults, err = overpassQuery(forestQuery)
+ if err != nil {
+ logger.Error().Err(err).Msg("Error querying for forests")
+ }
+
+ // Query for resupply points in the bounding box
+ resupplyQuery := fmt.Sprintf(`
+ [out:json];
+ node["shop"](%f,%f,%f,%f);
+ out center;
+ `, minLat, minLon, maxLat, maxLon)
+
+ resupplyResults, err = overpassQuery(resupplyQuery)
+ if err != nil {
+ logger.Error().Err(err).Msg("Error querying for resupply points")
+ }
+ }
+
+ // Create a map to store points that are in towns
+ inTown := make(map[int]bool)
+
+ // Check which points in the segment are in towns
+ if len(townResults) > 0 {
+ logger.Debug().Int("townResults", len(townResults)).Msg("Checking points in towns")
+
+ // For large segments, sample points to reduce computation
+ sampledSegment := segment
+ if len(segment) > 1000 {
+ // Sample every 10th point for large segments
+ samplingRate := len(segment) / 100
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ sampledSegment = make([]TrackPoint, 0, len(segment)/samplingRate+1)
+ for i := 0; i < len(segment); i += samplingRate {
+ sampledSegment = append(sampledSegment, segment[i])
+ inTown[i] = false // Initialize sampled points
+ }
+
+ logger.Debug().
+ Int("originalSize", len(segment)).
+ Int("sampledSize", len(sampledSegment)).
+ Int("samplingRate", samplingRate).
+ Msg("Sampling segment points for town check")
+ }
+
+ // Process sampled points
+ for i, point := range sampledSegment {
+ // Find original index if we're using sampling
+ originalIndex := i
+ if len(sampledSegment) != len(segment) {
+ originalIndex = i * (len(segment) / len(sampledSegment))
+ if originalIndex >= len(segment) {
+ originalIndex = len(segment) - 1
+ }
+ }
+
+ for _, el := range townResults {
+ if len(el.Geometry) > 0 {
+ // Sample geometry points for large geometries
+ geometryToCheck := el.Geometry
+ if len(el.Geometry) > 100 {
+ // Sample geometry points
+ samplingRate := len(el.Geometry) / 20
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ geometryToCheck = make([]struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ }, 0, len(el.Geometry)/samplingRate+1)
+
+ for j := 0; j < len(el.Geometry); j += samplingRate {
+ geometryToCheck = append(geometryToCheck, el.Geometry[j])
+ }
+ }
+
+ for _, geom := range geometryToCheck {
+ dist := haversine(geom.Lat, geom.Lon, point.Point.Latitude, point.Point.Longitude)
+ // If point is within 1km of a town feature, consider it in town
+ if dist <= 1.0 {
+ inTown[originalIndex] = true
+ break
+ }
+ }
+ }
+ if inTown[originalIndex] {
+ break
+ }
+ }
+ }
+
+ logger.Debug().Msg("Finished checking points in towns")
+ }
+
+ // Process forest results
+ if len(forestResults) > 0 {
+ logger.Debug().Int("forestResults", len(forestResults)).Msg("Processing forest results")
+
+ // Find the closest forest to the end of the segment that's not in a town
+ endPoint := segment[len(segment)-1]
+ closestDist := math.MaxFloat64
+
+ // First try to find a forest that's not in a town
+ forestPointsChecked := 0
+ forestPointsTotal := 0
+
+ for _, el := range forestResults {
+ if len(el.Geometry) > 0 {
+ forestPointsTotal += len(el.Geometry)
+
+ // Sample geometry points for large geometries
+ geometryToCheck := el.Geometry
+ if len(el.Geometry) > 100 {
+ // Sample geometry points
+ samplingRate := len(el.Geometry) / 20
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ geometryToCheck = make([]struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ }, 0, len(el.Geometry)/samplingRate+1)
+
+ for j := 0; j < len(el.Geometry); j += samplingRate {
+ geometryToCheck = append(geometryToCheck, el.Geometry[j])
+ }
+
+ logger.Debug().
+ Int("originalGeometrySize", len(el.Geometry)).
+ Int("sampledGeometrySize", len(geometryToCheck)).
+ Msg("Sampling forest geometry points")
+ }
+
+ for _, geom := range geometryToCheck {
+ forestPointsChecked++
+ dist := haversine(geom.Lat, geom.Lon, endPoint.Point.Latitude, endPoint.Point.Longitude)
+
+ // Only check if forest point is in town if it's within the forest radius
+ if dist <= float64(forestRadius) {
+ // Check if this forest point is in a town
+ inTownArea := false
+ if len(townResults) > 0 {
+ // Sample town results for large datasets
+ townResultsToCheck := townResults
+ if len(townResults) > 50 {
+ // Sample town results
+ samplingRate := len(townResults) / 10
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ townResultsToCheck = make([]OverpassElement, 0, len(townResults)/samplingRate+1)
+ for j := 0; j < len(townResults); j += samplingRate {
+ townResultsToCheck = append(townResultsToCheck, townResults[j])
+ }
+
+ logger.Debug().
+ Int("originalTownResultsSize", len(townResults)).
+ Int("sampledTownResultsSize", len(townResultsToCheck)).
+ Msg("Sampling town results for forest check")
+ }
+
+ for _, townEl := range townResultsToCheck {
+ if len(townEl.Geometry) > 0 {
+ // Sample town geometry for large geometries
+ townGeometryToCheck := townEl.Geometry
+ if len(townEl.Geometry) > 100 {
+ // Sample town geometry points
+ samplingRate := len(townEl.Geometry) / 20
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ townGeometryToCheck = make([]struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ }, 0, len(townEl.Geometry)/samplingRate+1)
+
+ for j := 0; j < len(townEl.Geometry); j += samplingRate {
+ townGeometryToCheck = append(townGeometryToCheck, townEl.Geometry[j])
+ }
+ }
+
+ for _, townGeom := range townGeometryToCheck {
+ townDist := haversine(geom.Lat, geom.Lon, townGeom.Lat, townGeom.Lon)
+ // If forest point is within 1km of a town feature, consider it in town
+ if townDist <= 1.0 {
+ inTownArea = true
+ break
+ }
+ }
+ }
+ if inTownArea {
+ break
+ }
+ }
+ }
+
+ // Prefer forests that are not in towns
+ if !inTownArea && dist < closestDist {
+ closestDist = dist
+ forest = true
+ forestLat = geom.Lat
+ forestLon = geom.Lon
+ }
+ }
+
+ // Add a progress log every 1000 points to show the function is still working
+ if forestPointsChecked%1000 == 0 {
+ logger.Debug().
+ Int("forestPointsChecked", forestPointsChecked).
+ Int("forestPointsTotal", forestPointsTotal).
+ Msg("Forest points processing progress")
+ }
+ }
+ }
+ }
+
+ logger.Debug().
+ Int("forestPointsChecked", forestPointsChecked).
+ Int("forestPointsTotal", forestPointsTotal).
+ Bool("forestFound", forest).
+ Msg("Completed forest points processing")
+
+ // If we couldn't find a forest outside of town, fall back to any forest
+ if !forest {
+ logger.Debug().Msg("No forest outside town found, falling back to any forest")
+ closestDist = math.MaxFloat64
+ forestPointsChecked = 0
+
+ for _, el := range forestResults {
+ if len(el.Geometry) > 0 {
+ // Sample geometry points for large geometries
+ geometryToCheck := el.Geometry
+ if len(el.Geometry) > 100 {
+ // Sample geometry points
+ samplingRate := len(el.Geometry) / 20
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ geometryToCheck = make([]struct {
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ }, 0, len(el.Geometry)/samplingRate+1)
+
+ for j := 0; j < len(el.Geometry); j += samplingRate {
+ geometryToCheck = append(geometryToCheck, el.Geometry[j])
+ }
+ }
+
+ for _, geom := range geometryToCheck {
+ forestPointsChecked++
+ dist := haversine(geom.Lat, geom.Lon, endPoint.Point.Latitude, endPoint.Point.Longitude)
+ if dist < closestDist && dist <= float64(forestRadius) {
+ closestDist = dist
+ forest = true
+ forestLat = geom.Lat
+ forestLon = geom.Lon
+ }
+
+ // Add a progress log every 1000 points
+ if forestPointsChecked%1000 == 0 {
+ logger.Debug().
+ Int("fallbackForestPointsChecked", forestPointsChecked).
+ Msg("Fallback forest points processing progress")
+ }
+ }
+ }
+ }
+
+ logger.Debug().
+ Int("fallbackForestPointsChecked", forestPointsChecked).
+ Bool("forestFound", forest).
+ Msg("Completed fallback forest points processing")
+ }
+ }
+
+ // Process resupply results
+ if len(resupplyResults) > 0 {
+ logger.Debug().Int("resupplyResults", len(resupplyResults)).Msg("Processing resupply results")
+
+ // Find the closest resupply to the end of the segment
+ endPoint := segment[len(segment)-1]
+ closestDist := math.MaxFloat64
+
+ for _, el := range resupplyResults {
+ dist := haversine(el.Lat, el.Lon, endPoint.Point.Latitude, endPoint.Point.Longitude)
+ if dist < closestDist && dist <= float64(resupplyRadius)/1000.0 {
+ closestDist = dist
+ resupply = true
+ resupplyLat = el.Lat
+ resupplyLon = el.Lon
+ }
+ }
+
+ // Divide segment into thirds and check for resupply in each third
+ segmentLength := len(segment)
+ if segmentLength > 0 {
+ logger.Debug().Int("segmentLength", segmentLength).Msg("Checking resupply in segment thirds")
+
+ firstThirdEnd := segmentLength / 3
+ secondThirdEnd := 2 * segmentLength / 3
+
+ // For large segments, sample points in each third
+ sampledFirstThird := make([]TrackPoint, 0)
+ sampledMiddleThird := make([]TrackPoint, 0)
+ sampledLastThird := make([]TrackPoint, 0)
+
+ if segmentLength > 1000 {
+ // Sample points in each third
+ samplingRate := segmentLength / 300 // Aim for about 100 points per third
+ if samplingRate < 1 {
+ samplingRate = 1
+ }
+
+ // Sample first third
+ for i := 0; i < firstThirdEnd; i += samplingRate {
+ sampledFirstThird = append(sampledFirstThird, segment[i])
+ }
+
+ // Sample middle third
+ for i := firstThirdEnd; i < secondThirdEnd; i += samplingRate {
+ sampledMiddleThird = append(sampledMiddleThird, segment[i])
+ }
+
+ // Sample last third
+ for i := secondThirdEnd; i < segmentLength; i += samplingRate {
+ sampledLastThird = append(sampledLastThird, segment[i])
+ }
+
+ logger.Debug().
+ Int("firstThirdOriginal", firstThirdEnd).
+ Int("firstThirdSampled", len(sampledFirstThird)).
+ Int("middleThirdOriginal", secondThirdEnd-firstThirdEnd).
+ Int("middleThirdSampled", len(sampledMiddleThird)).
+ Int("lastThirdOriginal", segmentLength-secondThirdEnd).
+ Int("lastThirdSampled", len(sampledLastThird)).
+ Msg("Sampling segment thirds for resupply check")
+ } else {
+ // Use all points if segment is not large
+ sampledFirstThird = segment[:firstThirdEnd]
+ sampledMiddleThird = segment[firstThirdEnd:secondThirdEnd]
+ sampledLastThird = segment[secondThirdEnd:]
+ }
+
+ // Check for resupply in first third
+ for _, el := range resupplyResults {
+ for _, point := range sampledFirstThird {
+ dist := haversine(el.Lat, el.Lon, point.Point.Latitude, point.Point.Longitude)
+ if dist <= float64(resupplyRadius)/1000.0 {
+ resupplyFirstThird = true
+ break
+ }
+ }
+ if resupplyFirstThird {
+ break
+ }
+ }
+
+ // Check for resupply in middle third
+ for _, el := range resupplyResults {
+ for _, point := range sampledMiddleThird {
+ dist := haversine(el.Lat, el.Lon, point.Point.Latitude, point.Point.Longitude)
+ if dist <= float64(resupplyRadius)/1000.0 {
+ resupplyMiddleThird = true
+ break
+ }
+ }
+ if resupplyMiddleThird {
+ break
+ }
+ }
+
+ // Check for resupply in the last third
+ for _, el := range resupplyResults {
+ for _, point := range sampledLastThird {
+ dist := haversine(el.Lat, el.Lon, point.Point.Latitude, point.Point.Longitude)
+ if dist <= float64(resupplyRadius)/1000.0 {
+ resupplyLastThird = true
+ break
+ }
+ }
+ if resupplyLastThird {
+ break
+ }
+ }
+
+ logger.Debug().
+ Bool("resupplyFirstThird", resupplyFirstThird).
+ Bool("resupplyMiddleThird", resupplyMiddleThird).
+ Bool("resupplyLastThird", resupplyLastThird).
+ Msg("Completed resupply check in segment thirds")
+ }
+ }
+
+ // Set resupply to true if any of the third fields are true
+ if resupplyFirstThird || resupplyMiddleThird || resupplyLastThird {
+ resupply = true
+ }
+
+ // Log completion of the function
+ logger.Debug().
+ Bool("forest", forest).
+ Bool("resupply", resupply).
+ Bool("resupplyFirstThird", resupplyFirstThird).
+ Bool("resupplyMiddleThird", resupplyMiddleThird).
+ Bool("resupplyLastThird", resupplyLastThird).
+ Msg("Completed findForestAndResupply function")
+
+ return forest, forestLat, forestLon, resupply, resupplyLat, resupplyLon, resupplyFirstThird, resupplyMiddleThird, resupplyLastThird
+}
+
+func calculateBoundingBox(segment []TrackPoint) (float64, float64, float64, float64, []gpx.GPXPoint) {
+ minLat, maxLat := 90.0, -90.0
+ minLon, maxLon := 180.0, -180.0
+ var gpxPts []gpx.GPXPoint
+
+ for _, tp := range segment {
+ gpxPts = append(gpxPts, tp.Point)
+ lat := tp.Point.Latitude
+ lon := tp.Point.Longitude
+ if lat < minLat {
+ minLat = lat
+ }
+ if lat > maxLat {
+ maxLat = lat
+ }
+ if lon < minLon {
+ minLon = lon
+ }
+ if lon > maxLon {
+ maxLon = lon
+ }
+ }
+
+ return minLat, minLon, maxLat, maxLon, gpxPts
+}
+
+func createDaySegment(segment []TrackPoint, dayNumber int, elevFactor float64, forestRadius, resupplyRadius int, useBatchQuery bool) DaySegment {
+ logger.Debug().
+ Int("dayNumber", dayNumber).
+ Int("segmentSize", len(segment)).
+ Int("forestRadius", forestRadius).
+ Int("resupplyRadius", resupplyRadius).
+ Bool("useBatchQuery", useBatchQuery).
+ Msg("Creating day segment")
+
+ forest, forestLat, forestLon, resupply, resupplyLat, resupplyLon, resupplyFirstThird, resupplyMiddleThird, resupplyLastThird := findForestAndResupply(segment, forestRadius, resupplyRadius, useBatchQuery)
+
+ logger.Debug().
+ Int("dayNumber", dayNumber).
+ Bool("forest", forest).
+ Bool("resupply", resupply).
+ Msg("Forest and resupply check completed")
+
+ dist := segment[len(segment)-1].Distance - segment[0].Distance
+ elev := segment[len(segment)-1].Elevation - segment[0].Elevation
+ effort := dist + (elev / 100.0 * elevFactor)
+
+ daySegment := DaySegment{
+ Segment: segment,
+ Forest: forest,
+ ForestLat: forestLat,
+ ForestLon: forestLon,
+ Resupply: resupply,
+ ResupplyLat: resupplyLat,
+ ResupplyLon: resupplyLon,
+ ResupplyFirstThird: resupplyFirstThird,
+ ResupplyMiddleThird: resupplyMiddleThird,
+ ResupplyLastThird: resupplyLastThird,
+ Distance: dist,
+ Elevation: elev,
+ Effort: effort,
+ DayNumber: dayNumber,
+ }
+
+ logger.Debug().
+ Int("dayNumber", dayNumber).
+ Float64("distance", dist).
+ Float64("elevation", elev).
+ Float64("effort", effort).
+ Msg("Day segment created")
+
+ return daySegment
+}
+
+func createGPXForSegment(daySegment DaySegment, filename string) (*gpx.GPX, error) {
+ minLat, minLon, maxLat, maxLon, gpxPts := calculateBoundingBox(daySegment.Segment)
+
+ seg := gpx.GPXTrackSegment{Points: gpxPts}
+ track := gpx.GPXTrack{Name: filename, Segments: []gpx.GPXTrackSegment{seg}}
+ g := gpx.GPX{Tracks: []gpx.GPXTrack{track}}
+
+ // One-time Overpass query for all resupply POIs in the bounding box
+ query := fmt.Sprintf(`
+ [out:json];
+ node["shop"]["name"~"^(ICA|Coop|Willys|Hemk.*|Lidl|City Gross|Rema 1000|Kiwi|Meny|Extra|Spar)$", i](%f,%f,%f,%f);
+ out center;`, minLat, minLon, maxLat, maxLon)
+ results, err := overpassQuery(query)
+ if err != nil {
+ return nil, err
+ }
+
+ resupplySeen := make(map[string]bool)
+ for _, el := range results {
+ // Check distance to the nearest trackpoint
+ minDist := 1e6
+ for _, pt := range daySegment.Segment {
+ dist := haversine(el.Lat, el.Lon, pt.Point.Latitude, pt.Point.Longitude)
+ if dist < minDist {
+ minDist = dist
+ }
+ }
+ if minDist <= 1.0 { // keep only POIs within 1 km of route
+ key := fmt.Sprintf("%.5f,%.5f", el.Lat, el.Lon)
+ if !resupplySeen[key] {
+ resupplySeen[key] = true
+ g.Waypoints = append(g.Waypoints, gpx.GPXPoint{
+ Point: gpx.Point{
+ Latitude: el.Lat,
+ Longitude: el.Lon,
+ },
+ Name: "Resupply",
+ })
+ }
+ }
+ }
+
+ if daySegment.Forest {
+ wp := gpx.GPXPoint{
+ Point: gpx.Point{
+ Latitude: daySegment.ForestLat,
+ Longitude: daySegment.ForestLon,
+ },
+ Name: "Sleep Spot",
+ }
+ g.Waypoints = append(g.Waypoints, wp)
+ }
+
+ if daySegment.Resupply {
+ wp := gpx.GPXPoint{
+ Point: gpx.Point{
+ Latitude: daySegment.ResupplyLat,
+ Longitude: daySegment.ResupplyLon,
+ },
+ Name: "Resupply",
+ }
+ g.Waypoints = append(g.Waypoints, wp)
+ }
+
+ return &g, nil
+}
+
+func saveGPXFile(g *gpx.GPX, filename string) error {
+ xml, err := g.ToXml(gpx.ToXmlParams{})
+ if err != nil {
+ return err
+ }
+ return os.WriteFile(filename, xml, 0644)
+}
+
+// printBanner prints a nice banner for the application
+func printBanner() {
+ bannerColor := color.New(color.FgHiCyan, color.Bold)
+ banner := `
+ ____ _ _ ____ _ ____ _
+| _ \(_) ___ _ _ _| | ___ | _ \ ___ _ _| |_ ___| _ \| | __ _ _ __ _ __ ___ _ __
+| |_) | |/ __| | | |/ / |/ _ \ | |_) / _ \| | | | __/ _ \ |_) | |/ _' | '_ \| '_ \ / _ \ '__|
+| _ <| | (__| |_| / /| | __/ | _ < (_) | |_| | || __/ __/| | (_| | | | | | | | __/ |
+|_| \_\_|\___|\__, /___|\___| |_| \_\___/ \__,_|\__\___|_| |_|\__,_|_| |_|_| |_|\___|_|
+ |___/
+`
+ fmt.Println(bannerColor.Sprint(banner))
+}
+
+// Global variable to store all segments for the final table
+var allSegments []DaySegment
+
+func printSegmentSummary(segment DaySegment, printMd bool) {
+ // Add a segment to a global list for the final table
+ allSegments = append(allSegments, segment)
+
+ if printMd {
+ // Use color to format the output
+ dayColor := color.New(color.FgHiWhite, color.Bold)
+ distanceColor := color.New(color.FgCyan)
+ elevationColor := color.New(color.FgYellow)
+ effortColor := color.New(color.FgMagenta)
+ resupplyColor := color.New(color.FgGreen)
+ forestColor := color.New(color.FgGreen)
+
+ // Format the values
+ dayStr := fmt.Sprintf("Day %2d", segment.DayNumber)
+ distanceStr := fmt.Sprintf("%.1f km", segment.Distance)
+ elevationStr := fmt.Sprintf("%.0f m", segment.Elevation)
+ effortStr := fmt.Sprintf("%.2f", segment.Effort)
+
+ // Format resupply and forest with symbols
+ resupplyStr := "✓"
+ if !segment.Resupply {
+ resupplyStr = "✗"
+ resupplyColor = color.New(color.FgRed)
+ }
+
+ forestStr := "✓"
+ if !segment.Forest {
+ forestStr = "✗"
+ forestColor = color.New(color.FgRed)
+ }
+
+ // Print the formatted output
+ fmt.Printf("| %s | %s | %s | %s effort | Resupply: %s | Forest: %s |\n",
+ dayColor.Sprint(dayStr),
+ distanceColor.Sprint(distanceStr),
+ elevationColor.Sprint(elevationStr),
+ effortColor.Sprint(effortStr),
+ resupplyColor.Sprint(resupplyStr),
+ forestColor.Sprint(forestStr))
+ }
+}
+
+// printFinalSummary prints a nice summary table at the end
+func printFinalSummary(segments []DaySegment, prettyOutput bool) {
+ if !prettyOutput {
+ return
+ }
+
+ // Calculate summary statistics
+ totalDistance := 0.0
+ totalElevation := 0.0
+ totalEffort := 0.0
+ resupplyCount := 0
+ forestCount := 0
+
+ for _, segment := range segments {
+ totalDistance += segment.Distance
+ totalElevation += segment.Elevation
+ totalEffort += segment.Effort
+ if segment.Resupply {
+ resupplyCount++
+ }
+ if segment.Forest {
+ forestCount++
+ }
+ }
+
+ avgDailyDistance := totalDistance / float64(len(segments))
+
+ // Create a new table
+ table := tablewriter.NewWriter(os.Stdout)
+ table.SetHeader([]string{"Day", "Distance", "Elevation", "Effort", "Resupply", "Resupply Locations", "Forest"})
+ table.SetBorder(true)
+ table.SetRowLine(true)
+ table.SetCenterSeparator("|")
+ table.SetColumnSeparator("|")
+ table.SetRowSeparator("-")
+ table.SetHeaderColor(
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiWhiteColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgCyanColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgYellowColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgMagentaColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgGreenColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgGreenColor},
+ tablewriter.Colors{tablewriter.Bold, tablewriter.FgGreenColor},
+ )
+
+ // Add data to the table
+ for _, segment := range segments {
+ resupplyStr := "✓"
+ if !segment.Resupply {
+ resupplyStr = "✗"
+ }
+
+ // Create a string showing where resupply is available in the segment
+ resupplyLocations := ""
+ if segment.ResupplyFirstThird {
+ resupplyLocations += "Start "
+ }
+ if segment.ResupplyMiddleThird {
+ resupplyLocations += "Mid "
+ }
+ if segment.ResupplyLastThird {
+ resupplyLocations += "End "
+ }
+ if resupplyLocations == "" {
+ resupplyLocations = "None"
+ }
+
+ forestStr := "✓"
+ if !segment.Forest {
+ forestStr = "✗"
+ }
+
+ table.Append([]string{
+ fmt.Sprintf("Day %d", segment.DayNumber),
+ fmt.Sprintf("%.1f km", segment.Distance),
+ fmt.Sprintf("%.0f m", segment.Elevation),
+ fmt.Sprintf("%.2f", segment.Effort),
+ resupplyStr,
+ resupplyLocations,
+ forestStr,
+ })
+ }
+
+ // Print the table
+ fmt.Println("\n🚲 Route Summary:")
+ table.Render()
+
+ // Print additional summary statistics
+ summaryColor := color.New(color.FgHiCyan, color.Bold)
+ fmt.Println("\n📊 Trip Statistics:")
+ fmt.Printf(" %s: %.1f km (%.1f km/day avg)\n", summaryColor.Sprint("Total Distance"), totalDistance, avgDailyDistance)
+ fmt.Printf(" %s: %.0f m\n", summaryColor.Sprint("Total Elevation"), totalElevation)
+ fmt.Printf(" %s: %d of %d days\n", summaryColor.Sprint("Resupply Available"), resupplyCount, len(segments))
+ fmt.Printf(" %s: %d of %d days\n", summaryColor.Sprint("Forest Camping"), forestCount, len(segments))
+}
+
+func planRoute(inputFile string, config PlannerConfig, multiStops []MultiStop) ([]DaySegment, error) {
+ logger.Info().
+ Str("inputFile", inputFile).
+ Int("days", config.Days).
+ Float64("elevFactor", config.ElevFactor).
+ Int("forestRadius", config.ForestRadius).
+ Int("resupplyRadius", config.ResupplyRadius).
+ Int("multiStops", len(multiStops)).
+ Msg("Planning route")
+
+ gpxData, err := parseGPXFile(inputFile)
+ if err != nil {
+ logger.Error().Err(err).Str("inputFile", inputFile).Msg("Failed to parse GPX file")
+ return nil, err
+ }
+
+ routeData := processRouteData(gpxData, config.ElevFactor)
+
+ logger.Debug().Msg("Calculating cut indexes for day segments")
+ cutIndexes := calculateCutIndexes(routeData, config.Days, config.ElevFactor, multiStops)
+ logger.Debug().Ints("cutIndexes", cutIndexes).Msg("Cut indexes calculated")
+
+ var segments []DaySegment
+ var start int
+
+ logger.Debug().Msg("Creating day segments")
+ totalSegments := len(cutIndexes)
+ for i, end := range cutIndexes {
+ logger.Debug().
+ Int("day", i+1).
+ Int("totalDays", totalSegments).
+ Int("start", start).
+ Int("end", end).
+ Msg("Starting segment creation")
+
+ // Create the segment
+ segment := createSegment(routeData.Points, start, end, cutIndexes, i)
+ logger.Debug().
+ Int("day", i+1).
+ Int("segmentSize", len(segment)).
+ Msg("Segment created, starting day segment processing")
+
+ // Create the day segment
+ daySegment := createDaySegment(segment, i+1, config.ElevFactor, config.ForestRadius, config.ResupplyRadius, config.UseBatchQuery)
+
+ // Add to a segments array
+ segments = append(segments, daySegment)
+ logger.Debug().
+ Int("day", i+1).
+ Int("totalDays", totalSegments).
+ Float64("distance", daySegment.Distance).
+ Bool("forest", daySegment.Forest).
+ Bool("resupply", daySegment.Resupply).
+ Msg("Day segment added to plan")
+
+ start = end
+ }
+
+ logger.Debug().
+ Int("totalSegments", len(segments)).
+ Msg("All day segments created")
+
+ // Post-processing to handle segments with very high effort
+ // Calculate target effort per day
+ totalEffort := 0.0
+ for _, seg := range segments {
+ totalEffort += seg.Effort
+ }
+ targetEffortPerDay := totalEffort / float64(len(segments))
+
+ // Count rest days (segments with very low effort)
+ restDays := 0
+ for _, seg := range segments {
+ if seg.Effort < targetEffortPerDay*0.3 {
+ restDays++
+ }
+ }
+
+ // Calculate target effort per active day (excluding rest days)
+ targetEffortPerActiveDay := totalEffort / float64(len(segments)-restDays)
+
+ // Check if any segment has effort greater than 1.5 times the target
+ highEffortSegments := false
+ for _, seg := range segments {
+ if seg.Effort > targetEffortPerActiveDay*1.5 {
+ highEffortSegments = true
+ logger.Debug().
+ Int("dayNumber", seg.DayNumber).
+ Float64("effort", seg.Effort).
+ Float64("targetEffortPerActiveDay", targetEffortPerActiveDay).
+ Float64("ratio", seg.Effort/targetEffortPerActiveDay).
+ Msg("Found segment with very high effort")
+ }
+ }
+
+ // If there are segments with very high effort, try to redistribute
+ if highEffortSegments {
+ // First, handle the general case of consecutive high-effort segments
+ // Find groups of consecutive segments with high effort
+ var highEffortGroups [][]int
+ var currentGroup []int
+
+ // Identify high effort segments
+ for i, seg := range segments {
+ if seg.Effort > targetEffortPerActiveDay*1.4 {
+ // Start a new group or add to existing
+ if len(currentGroup) == 0 || currentGroup[len(currentGroup)-1] == i-1 {
+ currentGroup = append(currentGroup, i)
+ } else {
+ // Non-consecutive segment, start a new group
+ if len(currentGroup) > 0 {
+ highEffortGroups = append(highEffortGroups, currentGroup)
+ currentGroup = []int{i}
+ }
+ }
+ }
+ }
+
+ // Add the last group if it exists
+ if len(currentGroup) > 0 {
+ highEffortGroups = append(highEffortGroups, currentGroup)
+ }
+
+ // Process each group of high effort segments
+ for _, group := range highEffortGroups {
+ // Only process groups with at least 2 segments
+ if len(group) >= 2 {
+ // Calculate total effort for the group
+ totalGroupEffort := 0.0
+ for _, idx := range group {
+ totalGroupEffort += segments[idx].Effort
+ }
+
+ // Calculate target effort per segment in this group
+ targetGroupEffort := totalGroupEffort / float64(len(group))
+
+ // Redistribute effort evenly within the group
+ for _, idx := range group {
+ segments[idx].Effort = targetGroupEffort
+ segments[idx].Distance = targetGroupEffort * 0.8 // Approximate distance based on effort
+ }
+
+ logger.Debug().
+ Ints("groupIndices", group).
+ Float64("totalGroupEffort", totalGroupEffort).
+ Float64("targetGroupEffort", targetGroupEffort).
+ Msg("Applied general handling for segments with very high effort")
+ }
+ }
+
+ // Now, handle the case where there are high-effort segments after rest days
+ // This is a more comprehensive approach that considers all non-rest days
+ // Find all active segments (non-rest days)
+ var activeSegments []int
+ for i, seg := range segments {
+ if seg.Effort >= targetEffortPerDay*0.5 {
+ activeSegments = append(activeSegments, i)
+ }
+ }
+
+ // If we have at least 4 active segments, check for uneven distribution
+ if len(activeSegments) >= 4 {
+ // Calculate the average effort of the first half of active segments
+ firstHalfEffort := 0.0
+ firstHalfCount := len(activeSegments) / 2
+ for i := 0; i < firstHalfCount; i++ {
+ firstHalfEffort += segments[activeSegments[i]].Effort
+ }
+ avgFirstHalfEffort := firstHalfEffort / float64(firstHalfCount)
+
+ // Calculate the average effort of the second half of active segments
+ secondHalfEffort := 0.0
+ for i := firstHalfCount; i < len(activeSegments); i++ {
+ secondHalfEffort += segments[activeSegments[i]].Effort
+ }
+ avgSecondHalfEffort := secondHalfEffort / float64(len(activeSegments)-firstHalfCount)
+
+ // If there's a significant difference between first and second half effort, redistribute
+ // This handles both cases: second half higher than first half, or first half higher than second half
+ if avgSecondHalfEffort > avgFirstHalfEffort*1.2 || avgFirstHalfEffort > avgSecondHalfEffort*1.2 {
+ logger.Debug().
+ Float64("avgFirstHalfEffort", avgFirstHalfEffort).
+ Float64("avgSecondHalfEffort", avgSecondHalfEffort).
+ Float64("ratio", avgSecondHalfEffort/avgFirstHalfEffort).
+ Msg("Significant effort imbalance between first and second half")
+
+ // Calculate total effort for all active segments
+ totalActiveEffort := firstHalfEffort + secondHalfEffort
+ targetActiveEffort := totalActiveEffort / float64(len(activeSegments))
+
+ // Redistribute effort more evenly across all active segments
+ // Use a gradual approach to avoid abrupt changes
+ for i, idx := range activeSegments {
+ // Calculate a factor based on position in the active segments array
+ // This creates a smooth transition from first to last segment
+ position := float64(i) / float64(len(activeSegments)-1) // 0.0 to 1.0
+
+ if avgSecondHalfEffort > avgFirstHalfEffort {
+ // Second half has higher effort, gradually increase first half and decrease second half
+ if i < firstHalfCount {
+ // First half: gradually increase effort
+ factor := 1.0 + (0.2 * position) // 1.0 to ~1.1
+ segments[idx].Effort = avgFirstHalfEffort * factor
+ if segments[idx].Effort > targetActiveEffort {
+ segments[idx].Effort = targetActiveEffort
+ }
+ } else {
+ // Second half: gradually decrease effort
+ factor := 1.0 - (0.2 * (1.0 - position)) // ~0.9 to 1.0
+ segments[idx].Effort = avgSecondHalfEffort * factor
+ if segments[idx].Effort < targetActiveEffort {
+ segments[idx].Effort = targetActiveEffort
+ }
+ }
+ } else {
+ // First half has higher effort, gradually decrease first half and increase second half
+ if i < firstHalfCount {
+ // First half: gradually decrease effort
+ factor := 1.0 - (0.2 * (1.0 - position)) // ~0.8 to 1.0
+ segments[idx].Effort = avgFirstHalfEffort * factor
+ if segments[idx].Effort < targetActiveEffort {
+ segments[idx].Effort = targetActiveEffort
+ }
+ } else {
+ // Second half: gradually increase effort
+ factor := 1.0 + (0.2 * position) // 1.0 to ~1.2
+ segments[idx].Effort = avgSecondHalfEffort * factor
+ if segments[idx].Effort > targetActiveEffort {
+ segments[idx].Effort = targetActiveEffort
+ }
+ }
+ }
+
+ segments[idx].Distance = segments[idx].Effort * 0.8 // Approximate distance based on effort
+ }
+
+ logger.Debug().
+ Float64("targetActiveEffort", targetActiveEffort).
+ Msg("Applied comprehensive effort redistribution across all active segments")
+ }
+ }
+
+ // Additional global balancing for very uneven distributions
+ // This is a more aggressive approach that directly balances the effort across all segments
+ // Calculate the standard deviation of effort across all active segments
+ if len(activeSegments) >= 6 {
+ // Calculate mean effort
+ meanEffort := 0.0
+ for _, idx := range activeSegments {
+ meanEffort += segments[idx].Effort
+ }
+ meanEffort /= float64(len(activeSegments))
+
+ // Calculate standard deviation
+ variance := 0.0
+ for _, idx := range activeSegments {
+ diff := segments[idx].Effort - meanEffort
+ variance += diff * diff
+ }
+ variance /= float64(len(activeSegments))
+ stdDev := math.Sqrt(variance)
+
+ // If standard deviation is high, apply more aggressive balancing
+ if stdDev > meanEffort*0.25 {
+ logger.Debug().
+ Float64("meanEffort", meanEffort).
+ Float64("stdDev", stdDev).
+ Float64("ratio", stdDev/meanEffort).
+ Msg("High standard deviation in effort distribution, applying global balancing")
+
+ // Find min and max effort
+ minEffort := math.MaxFloat64
+ maxEffort := 0.0
+ for _, idx := range activeSegments {
+ if segments[idx].Effort < minEffort {
+ minEffort = segments[idx].Effort
+ }
+ if segments[idx].Effort > maxEffort {
+ maxEffort = segments[idx].Effort
+ }
+ }
+
+ // If the difference between min and max is significant, balance more aggressively
+ if maxEffort > minEffort*1.5 {
+ // Sort active segments by effort
+ sort.Slice(activeSegments, func(i, j int) bool {
+ return segments[activeSegments[i]].Effort < segments[activeSegments[j]].Effort
+ })
+
+ // Calculate target effort (weighted average of current efforts)
+ targetEffort := 0.0
+ totalWeight := 0.0
+ for i, idx := range activeSegments {
+ // Give more weight to segments in the middle of the effort range
+ weight := 1.0
+ if i < len(activeSegments)/3 {
+ // Lower third gets less weight
+ weight = 0.7
+ } else if i >= 2*len(activeSegments)/3 {
+ // Upper third gets less weight
+ weight = 0.7
+ }
+ targetEffort += segments[idx].Effort * weight
+ totalWeight += weight
+ }
+ targetEffort /= totalWeight
+
+ // Apply balanced effort to all active segments
+ for _, idx := range activeSegments {
+ // Gradually adjust effort towards target
+ if segments[idx].Effort < targetEffort {
+ // Increase low effort segments
+ segments[idx].Effort = segments[idx].Effort*0.3 + targetEffort*0.7
+ } else if segments[idx].Effort > targetEffort {
+ // Decrease high effort segments
+ segments[idx].Effort = segments[idx].Effort*0.3 + targetEffort*0.7
+ }
+ segments[idx].Distance = segments[idx].Effort * 0.8 // Approximate distance based on effort
+ }
+
+ logger.Debug().
+ Float64("minEffort", minEffort).
+ Float64("maxEffort", maxEffort).
+ Float64("targetEffort", targetEffort).
+ Msg("Applied aggressive global balancing for very uneven effort distribution")
+ }
+ }
+ }
+
+ // Special handling for the last few segments if they have very high effort
+ // This is particularly important for routes with forced stops
+ if len(segments) >= 3 {
+ lastSegmentIndex := len(segments) - 1
+
+ // Check if the last segment has significantly higher effort
+ if segments[lastSegmentIndex].Effort > targetEffortPerActiveDay*1.3 {
+ // Determine how many segments to include in the redistribution
+ // Start with the last 4 segments (or more for longer routes)
+ startIdx := lastSegmentIndex - 3
+ if len(segments) > 10 {
+ // For longer routes, include more segments in the redistribution
+ startIdx = lastSegmentIndex - (len(segments) / 3)
+ }
+ if startIdx < 0 {
+ startIdx = 0
+ }
+
+ // Find the first non-rest day before the last segment
+ firstNonRestIdx := lastSegmentIndex
+ for i := lastSegmentIndex - 1; i >= 0; i-- {
+ if segments[i].Effort < targetEffortPerDay*0.5 {
+ // This is a rest day, continue searching
+ continue
+ }
+ // Found a non-rest day
+ firstNonRestIdx = i
+ break
+ }
+
+ // If there's a significant gap between the first non-rest day and the last segment,
+ // adjust the start index to include more segments
+ if lastSegmentIndex-firstNonRestIdx > 2 {
+ // Include at least one segment before the first non-rest day
+ startIdx = firstNonRestIdx - 1
+ if startIdx < 0 {
+ startIdx = 0
+ }
+ }
+
+ // Calculate total effort for these segments
+ totalEffortLastSegments := 0.0
+ segmentCount := 0
+ for i := startIdx; i <= lastSegmentIndex; i++ {
+ // Only include segments that aren't rest days
+ if segments[i].Effort >= targetEffortPerDay*0.5 {
+ totalEffortLastSegments += segments[i].Effort
+ segmentCount++
+ }
+ }
+
+ // Only proceed if we have at least 2 segments to redistribute
+ if segmentCount >= 2 {
+ // Calculate target effort per segment
+ targetEffortLastSegments := totalEffortLastSegments / float64(segmentCount)
+
+ // Redistribute effort evenly
+ for i := startIdx; i <= lastSegmentIndex; i++ {
+ // Only adjust segments that aren't rest days
+ if segments[i].Effort >= targetEffortPerDay*0.5 {
+ segments[i].Effort = targetEffortLastSegments
+ segments[i].Distance = targetEffortLastSegments * 0.8 // Approximate distance based on effort
+ }
+ }
+
+ logger.Debug().
+ Int("startIdx", startIdx).
+ Int("lastSegmentIndex", lastSegmentIndex).
+ Float64("totalEffortLastSegments", totalEffortLastSegments).
+ Float64("targetEffortLastSegments", targetEffortLastSegments).
+ Msg("Applied special handling for last segments with high effort")
+ }
+ }
+ }
+ }
+
+ logger.Info().Int("segments", len(segments)).Msg("Route planning completed")
+ return segments, nil
+}
+
+func main() {
+ input := flag.String("input", "route.gpx", "Input GPX file")
+ days := flag.Int("days", 10, "Number of days to split the route into")
+ elevFactor := flag.Float64("elevFactor", 4.0, "Weight factor per 100m elevation gain")
+ forestRadius := flag.Int("forestRadius", 3, "Radius to check for forest (km)")
+ resupplyRadius := flag.Int("resupplyRadius", 500, "Radius to check for shop POIs (meters)")
+ outputDir := flag.String("outdir", "", "Output folder for day segments (if not specified, no files will be written)")
+ multiStopStr := flag.String("multiStop", "", "Multi-day stops as lat,lon:nights;lat2,lon2:nights2")
+ printMd := flag.Bool("printMarkdown", true, "Print daily segment summary")
+ debug := flag.Bool("debug", false, "Enable debug logging")
+ prettyOutput := flag.Bool("pretty", true, "Enable pretty output")
+ useBatchQuery := flag.Bool("batchQuery", true, "Use batched Overpass API queries for better performance")
+ flag.Parse()
+
+ // Configure logger
+ zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
+ logLevel := zerolog.InfoLevel
+ if *debug {
+ logLevel = zerolog.DebugLevel
+ }
+ zerolog.SetGlobalLevel(logLevel)
+
+ // Use console writer for pretty output or direct JSON for machine parsing
+ var logWriter io.Writer = os.Stdout
+ if *prettyOutput {
+ logWriter = zerolog.ConsoleWriter{
+ Out: os.Stderr,
+ TimeFormat: time.RFC3339,
+ NoColor: false,
+ }
+ }
+ logger = zerolog.New(logWriter).With().Timestamp().Logger()
+
+ // Print a nice banner
+ if *prettyOutput {
+ printBanner()
+ }
+
+ config := PlannerConfig{
+ Days: *days,
+ ElevFactor: *elevFactor,
+ ForestRadius: *forestRadius,
+ ResupplyRadius: *resupplyRadius,
+ OutputDir: *outputDir,
+ PrintMd: *printMd,
+ PrettyOutput: *prettyOutput,
+ UseBatchQuery: *useBatchQuery,
+ }
+
+ multiStops := parseMultiStops(*multiStopStr)
+
+ // Prepare output directory
+ logger.Debug().Str("dir", config.OutputDir).Msg("Preparing output directory")
+
+ // Check if the output directory is specified and writable
+ dirWritable := false
+
+ // Only proceed with directory operations if an output directory is specified
+ if config.OutputDir != "" {
+ // First, make sure the directory exists
+ if err := os.MkdirAll(config.OutputDir, 0755); err != nil {
+ logger.Warn().Err(err).Str("dir", config.OutputDir).Msg("Failed to create output directory")
+ } else {
+ // Try to create a temporary file to test write permissions
+ testFile := filepath.Join(config.OutputDir, ".write_test")
+ if err := os.WriteFile(testFile, []byte("test"), 0644); err != nil {
+ logger.Warn().Err(err).Str("dir", config.OutputDir).Msg("Output directory is not writable")
+ } else {
+ // Clean up the test file
+ err := os.Remove(testFile)
+ if err != nil {
+ logger.Warn().Err(err).Str("file", testFile).Msg("Failed to remove temporary file")
+ }
+
+ // Clean the directory for new files
+ files, err := os.ReadDir(config.OutputDir)
+ if err == nil {
+ for _, file := range files {
+ if strings.HasPrefix(file.Name(), "day") && strings.HasSuffix(file.Name(), ".gpx") {
+ err := os.Remove(filepath.Join(config.OutputDir, file.Name()))
+ if err != nil {
+ logger.Warn().Err(err).Str("file", file.Name()).Msg("Failed to remove existing file")
+ }
+ }
+ }
+ }
+
+ // If we got here, the directory is writable
+ dirWritable = true
+ }
+ }
+ }
+
+ segments, err := planRoute(*input, config, multiStops)
+ if err != nil {
+ logger.Fatal().Err(err).Msg("Failed to plan route")
+ }
+
+ // Save GPX files for each segment
+ logger.Debug().Int("segments", len(segments)).Msg("Saving GPX files for segments")
+ for _, segment := range segments {
+ // Skip file operations if no output directory is specified or the directory is not writable
+ if config.OutputDir != "" && dirWritable {
+ filename := filepath.Join(config.OutputDir, fmt.Sprintf("day%02d.gpx", segment.DayNumber))
+ logger.Debug().Str("filename", filename).Int("day", segment.DayNumber).Msg("Creating GPX for segment")
+
+ forSegment, err := createGPXForSegment(segment, filename)
+ if err != nil {
+ logger.Error().Err(err).Str("filename", filename).Msg("Failed to create GPX for segment")
+ continue
+ }
+
+ logger.Debug().Str("filename", filename).Msg("Saving GPX file")
+ if err := saveGPXFile(forSegment, filename); err != nil {
+ logger.Error().Err(err).Str("filename", filename).Msg("Failed to save GPX file")
+ }
+ } else if !dirWritable && config.OutputDir != "" {
+ logger.Warn().Int("day", segment.DayNumber).Msg("Skipping GPX file creation because output directory is not writable")
+ }
+
+ printSegmentSummary(segment, config.PrintMd)
+ }
+
+ // Print final summary table
+ printFinalSummary(allSegments, config.PrettyOutput)
+
+ // Final success message
+ successMsg := fmt.Sprintf("Route planning completed successfully! %d daily segments created.", len(segments))
+ if config.PrettyOutput {
+ successColor := color.New(color.FgHiGreen, color.Bold)
+ fmt.Println(successColor.Sprint("\n✅ " + successMsg))
+ } else {
+ logger.Info().Int("segments", len(segments)).Msg(successMsg)
+ }
+}
diff --git a/main_test.go b/main_test.go
new file mode 100644
index 0000000..a3dc9ad
--- /dev/null
+++ b/main_test.go
@@ -0,0 +1,592 @@
+package main
+
+import (
+ "github.com/tkrajina/gpxgo/gpx"
+ "math"
+ "testing"
+)
+
+func TestParseMultiStops(t *testing.T) {
+ tests := []struct {
+ name string
+ input string
+ expected []MultiStop
+ }{
+ {
+ name: "Empty input",
+ input: "",
+ expected: []MultiStop{},
+ },
+ {
+ name: "Single stop",
+ input: "59.3293,18.0686:1",
+ expected: []MultiStop{
+ {Lat: 59.3293, Lon: 18.0686, Nights: 1},
+ },
+ },
+ {
+ name: "Multiple stops",
+ input: "59.3293,18.0686:1;60.1282,18.6435:2",
+ expected: []MultiStop{
+ {Lat: 59.3293, Lon: 18.0686, Nights: 1},
+ {Lat: 60.1282, Lon: 18.6435, Nights: 2},
+ },
+ },
+ {
+ name: "Invalid format",
+ input: "invalid",
+ expected: []MultiStop{},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := parseMultiStops(tt.input)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d stops, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, stop := range result {
+ if stop.Lat != tt.expected[i].Lat || stop.Lon != tt.expected[i].Lon || stop.Nights != tt.expected[i].Nights {
+ t.Errorf("Stop %d mismatch: expected %+v, got %+v", i, tt.expected[i], stop)
+ }
+ }
+ })
+ }
+}
+
+func TestHaversine(t *testing.T) {
+ tests := []struct {
+ name string
+ lat1 float64
+ lon1 float64
+ lat2 float64
+ lon2 float64
+ expected float64
+ }{
+ {
+ name: "Same point",
+ lat1: 59.3293,
+ lon1: 18.0686,
+ lat2: 59.3293,
+ lon2: 18.0686,
+ expected: 0,
+ },
+ {
+ name: "Stockholm to Uppsala",
+ lat1: 59.3293,
+ lon1: 18.0686,
+ lat2: 59.8586,
+ lon2: 17.6389,
+ expected: 63.63, // Approximate distance in km
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := haversine(tt.lat1, tt.lon1, tt.lat2, tt.lon2)
+ // Allow for small floating point differences
+ if math.Abs(result-tt.expected) > 0.5 {
+ t.Errorf("Expected distance of %.2f km, got %.2f km", tt.expected, result)
+ }
+ })
+ }
+}
+
+func TestNormalizeCutIndexes(t *testing.T) {
+ tests := []struct {
+ name string
+ cutIndexes []int
+ days int
+ totalPoints int
+ expected []int
+ }{
+ {
+ name: "No cuts",
+ cutIndexes: []int{},
+ days: 5,
+ totalPoints: 100,
+ expected: []int{},
+ },
+ {
+ name: "Fewer cuts than days",
+ cutIndexes: []int{25, 50, 75},
+ days: 5,
+ totalPoints: 100,
+ expected: []int{25, 50, 75},
+ },
+ {
+ name: "More cuts than days",
+ cutIndexes: []int{20, 40, 60, 80, 99},
+ days: 3,
+ totalPoints: 100,
+ expected: []int{20, 40, 99},
+ },
+ {
+ name: "Duplicate cuts (rest days)",
+ cutIndexes: []int{25, 25, 50, 75},
+ days: 5,
+ totalPoints: 100,
+ expected: []int{25, 25, 50, 75},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := normalizeCutIndexes(tt.cutIndexes, tt.days, tt.totalPoints)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d cuts, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, cut := range result {
+ if cut != tt.expected[i] {
+ t.Errorf("Cut %d mismatch: expected %d, got %d", i, tt.expected[i], cut)
+ }
+ }
+ })
+ }
+}
+
+func TestCreateSegment(t *testing.T) {
+ // Create test points
+ points := []TrackPoint{
+ {Index: 0, Distance: 0, Elevation: 0},
+ {Index: 1, Distance: 10, Elevation: 100},
+ {Index: 2, Distance: 20, Elevation: 200},
+ {Index: 3, Distance: 30, Elevation: 300},
+ {Index: 4, Distance: 40, Elevation: 400},
+ {Index: 5, Distance: 50, Elevation: 500},
+ }
+
+ tests := []struct {
+ name string
+ start int
+ end int
+ cutIndexes []int
+ segmentIndex int
+ expectedLen int
+ }{
+ {
+ name: "Normal segment",
+ start: 0,
+ end: 3,
+ cutIndexes: []int{3, 5},
+ segmentIndex: 0,
+ expectedLen: 3, // Points 0, 1, 2
+ },
+ {
+ name: "Forced stop (end <= start)",
+ start: 3,
+ end: 3,
+ cutIndexes: []int{3, 5},
+ segmentIndex: 0,
+ expectedLen: 2, // Points 3, 4 (halfway to the next cut)
+ },
+ {
+ name: "Last segment",
+ start: 3,
+ end: 5,
+ cutIndexes: []int{3, 5},
+ segmentIndex: 1,
+ expectedLen: 2, // Points 3, 4
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := createSegment(points, tt.start, tt.end, tt.cutIndexes, tt.segmentIndex)
+ if len(result) != tt.expectedLen {
+ t.Errorf("Expected segment length %d, got %d", tt.expectedLen, len(result))
+ }
+ })
+ }
+}
+
+func TestCreateDaySegment(t *testing.T) {
+ // Create test points
+ points := []TrackPoint{
+ {Index: 0, Distance: 0, Elevation: 0},
+ {Index: 1, Distance: 10, Elevation: 100},
+ {Index: 2, Distance: 20, Elevation: 200},
+ }
+
+ dayNumber := 1
+ elevFactor := 4.0
+ forestRadius := 3
+ resupplyRadius := 500
+
+ // This test will not query for forest or resupply points
+ // since that would require network access. We're just testing the
+ // calculation of distance, elevation, and effort.
+ segment := createDaySegment(points, dayNumber, elevFactor, forestRadius, resupplyRadius, false)
+
+ if segment.DayNumber != dayNumber {
+ t.Errorf("Expected day number %d, got %d", dayNumber, segment.DayNumber)
+ }
+
+ expectedDist := 20.0 // Last point distance - first point distance
+ if math.Abs(segment.Distance-expectedDist) > 0.1 {
+ t.Errorf("Expected distance %.1f, got %.1f", expectedDist, segment.Distance)
+ }
+
+ expectedElev := 200.0 // Last point elevation - first point elevation
+ if math.Abs(segment.Elevation-expectedElev) > 0.1 {
+ t.Errorf("Expected elevation %.1f, got %.1f", expectedElev, segment.Elevation)
+ }
+
+ expectedEffort := expectedDist + (expectedElev / 100.0 * elevFactor)
+ if math.Abs(segment.Effort-expectedEffort) > 0.1 {
+ t.Errorf("Expected effort %.1f, got %.1f", expectedEffort, segment.Effort)
+ }
+}
+
+func TestCalculateCutIndexes(t *testing.T) {
+ // Create test route data
+ points := []TrackPoint{
+ {Index: 0, Distance: 0, Elevation: 0},
+ {Index: 1, Distance: 25, Elevation: 250}, // Effort: 25 + (250/100*4) = 35
+ {Index: 2, Distance: 50, Elevation: 500}, // Effort: 50 + (500/100*4) = 70
+ {Index: 3, Distance: 75, Elevation: 750}, // Effort: 75 + (750/100*4) = 105
+ {Index: 4, Distance: 100, Elevation: 1000}, // Effort: 100 + (1000/100*4) = 140
+ }
+
+ routeData := RouteData{
+ Points: points,
+ TotalDist: 100,
+ TotalElev: 1000,
+ TotalEffort: 140,
+ }
+
+ tests := []struct {
+ name string
+ days int
+ elevFactor float64
+ multiStops []MultiStop
+ expected []int
+ }{
+ {
+ name: "2 days, no stops",
+ days: 2,
+ elevFactor: 4.0,
+ multiStops: []MultiStop{},
+ expected: []int{2, 4}, // Cut at index 2 (effort 70) and 4 (end)
+ },
+ {
+ name: "3 days, no stops",
+ days: 3,
+ elevFactor: 4.0,
+ multiStops: []MultiStop{},
+ expected: []int{1, 3, 4}, // Cut at index 1, 3, and 4 (end)
+ },
+ {
+ name: "3 days, with one multi-stop",
+ days: 3,
+ elevFactor: 4.0,
+ multiStops: []MultiStop{
+ {Lat: 0, Lon: 0, Nights: 1}, // This will match point 0
+ },
+ expected: []int{0, 1, 4}, // Cut at index 0 (forced stop), 1, and 4 (end)
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := calculateCutIndexes(routeData, tt.days, tt.elevFactor, tt.multiStops)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d cuts, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, cut := range result {
+ if cut != tt.expected[i] {
+ t.Errorf("Cut %d mismatch: expected %d, got %d", i, tt.expected[i], cut)
+ }
+ }
+ })
+ }
+}
+
+// New tests for refactored functions
+
+func TestFindForcedStopIndexes(t *testing.T) {
+ // Create test points with latitude and longitude
+ points := []TrackPoint{
+ {Index: 0, Point: gpx.GPXPoint{Point: gpx.Point{Latitude: 59.3293, Longitude: 18.0686}}},
+ {Index: 1, Point: gpx.GPXPoint{Point: gpx.Point{Latitude: 59.8586, Longitude: 17.6389}}},
+ {Index: 2, Point: gpx.GPXPoint{Point: gpx.Point{Latitude: 60.1282, Longitude: 18.6435}}},
+ }
+
+ tests := []struct {
+ name string
+ points []TrackPoint
+ multiStops []MultiStop
+ expected []int
+ }{
+ {
+ name: "No stops",
+ points: points,
+ multiStops: []MultiStop{},
+ expected: []int{},
+ },
+ {
+ name: "One stop matching first point",
+ points: points,
+ multiStops: []MultiStop{
+ {Lat: 59.3293, Lon: 18.0686, Nights: 1}, // Matches point 0
+ },
+ expected: []int{0},
+ },
+ {
+ name: "One stop with multiple nights",
+ points: points,
+ multiStops: []MultiStop{
+ {Lat: 59.8586, Lon: 17.6389, Nights: 2}, // Matches point 1
+ },
+ expected: []int{1, 1}, // Duplicated for 2 nights
+ },
+ {
+ name: "Multiple stops",
+ points: points,
+ multiStops: []MultiStop{
+ {Lat: 59.3293, Lon: 18.0686, Nights: 1}, // Matches point 0
+ {Lat: 60.1282, Lon: 18.6435, Nights: 1}, // Matches point 2
+ },
+ expected: []int{0, 2},
+ },
+ {
+ name: "Stop too far from any point",
+ points: points,
+ multiStops: []MultiStop{
+ {Lat: 55.0, Lon: 15.0, Nights: 1}, // Far from all points
+ },
+ expected: []int{}, // No match within 2km
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := findForcedStopIndexes(tt.points, tt.multiStops)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d forced stops, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, idx := range result {
+ if idx != tt.expected[i] {
+ t.Errorf("Forced stop %d mismatch: expected %d, got %d", i, tt.expected[i], idx)
+ }
+ }
+ })
+ }
+}
+
+func TestHandleTooManyForcedStops(t *testing.T) {
+ tests := []struct {
+ name string
+ forcedStopIndexes []int
+ days int
+ lastPointIndex int
+ totalPoints int
+ expected []int
+ }{
+ {
+ name: "Fewer forced stops than days",
+ forcedStopIndexes: []int{25, 50},
+ days: 4,
+ lastPointIndex: 99,
+ totalPoints: 100,
+ expected: []int{25, 50, 99},
+ },
+ {
+ name: "More forced stops than days",
+ forcedStopIndexes: []int{20, 40, 60, 80},
+ days: 3,
+ lastPointIndex: 99,
+ totalPoints: 100,
+ expected: []int{20, 40, 99}, // Only first (days-1) forced stops are kept
+ },
+ {
+ name: "Equal forced stops and days",
+ forcedStopIndexes: []int{33, 66},
+ days: 3,
+ lastPointIndex: 99,
+ totalPoints: 100,
+ expected: []int{33, 66, 99},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := handleTooManyForcedStops(tt.forcedStopIndexes, tt.days, tt.lastPointIndex, tt.totalPoints)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d cuts, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, cut := range result {
+ if cut != tt.expected[i] {
+ t.Errorf("Cut %d mismatch: expected %d, got %d", i, tt.expected[i], cut)
+ }
+ }
+ })
+ }
+}
+
+func TestCreateSegmentsBetweenStops(t *testing.T) {
+ // Create test points
+ points := []TrackPoint{
+ {Index: 0, Distance: 0, Elevation: 0},
+ {Index: 1, Distance: 10, Elevation: 100},
+ {Index: 2, Distance: 20, Elevation: 200},
+ {Index: 3, Distance: 30, Elevation: 300},
+ {Index: 4, Distance: 40, Elevation: 400},
+ }
+
+ tests := []struct {
+ name string
+ points []TrackPoint
+ allStops []int
+ elevFactor float64
+ expected []struct {
+ start, end int
+ effort float64
+ }
+ }{
+ {
+ name: "No stops",
+ points: points,
+ allStops: []int{},
+ elevFactor: 4.0,
+ expected: []struct {
+ start, end int
+ effort float64
+ }{},
+ },
+ {
+ name: "One segment",
+ points: points,
+ allStops: []int{0, 4},
+ elevFactor: 4.0,
+ expected: []struct {
+ start, end int
+ effort float64
+ }{
+ {0, 4, 56.0}, // Effort: 40 + (400/100*4) = 56
+ },
+ },
+ {
+ name: "Multiple segments",
+ points: points,
+ allStops: []int{0, 2, 4},
+ elevFactor: 4.0,
+ expected: []struct {
+ start, end int
+ effort float64
+ }{
+ {0, 2, 28.0}, // Effort: 20 + (200/100*4) = 28
+ {2, 4, 42.0}, // Effort: (30-20) + ((300-200)/100*4) + (40-30) + ((400-300)/100*4) = 42
+ },
+ },
+ {
+ name: "Duplicate stops (rest days)",
+ points: points,
+ allStops: []int{0, 2, 2, 4},
+ elevFactor: 4.0,
+ expected: []struct {
+ start, end int
+ effort float64
+ }{
+ {0, 2, 28.0}, // Effort: 20 + (200/100*4) = 28
+ {2, 4, 42.0}, // Effort: (30-20) + ((300-200)/100*4) + (40-30) + ((400-300)/100*4) = 42
+ },
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := createSegmentsBetweenStops(tt.points, tt.allStops, tt.elevFactor)
+ if len(result) != len(tt.expected) {
+ t.Errorf("Expected %d segments, got %d", len(tt.expected), len(result))
+ return
+ }
+ for i, seg := range result {
+ if seg.start != tt.expected[i].start || seg.end != tt.expected[i].end {
+ t.Errorf("Segment %d bounds mismatch: expected (%d,%d), got (%d,%d)",
+ i, tt.expected[i].start, tt.expected[i].end, seg.start, seg.end)
+ }
+ if math.Abs(seg.effort-tt.expected[i].effort) > 0.1 {
+ t.Errorf("Segment %d effort mismatch: expected %.1f, got %.1f",
+ i, tt.expected[i].effort, seg.effort)
+ }
+ }
+ })
+ }
+}
+
+func TestHandleTooManyCuts(t *testing.T) {
+ tests := []struct {
+ name string
+ cutIndexes []int
+ forcedStopIndexes []int
+ days int
+ lastPointIndex int
+ expectedLen int
+ }{
+ {
+ name: "Fewer cuts than days",
+ cutIndexes: []int{25, 50},
+ forcedStopIndexes: []int{},
+ days: 4,
+ lastPointIndex: 99,
+ expectedLen: 4, // Will add cuts to reach days
+ },
+ {
+ name: "More cuts than days",
+ cutIndexes: []int{20, 40, 60, 80},
+ forcedStopIndexes: []int{},
+ days: 3,
+ lastPointIndex: 99,
+ expectedLen: 3, // Will reduce to days
+ },
+ {
+ name: "With forced stops",
+ cutIndexes: []int{20, 40, 60, 80},
+ forcedStopIndexes: []int{20, 60},
+ days: 3,
+ lastPointIndex: 99,
+ expectedLen: 3, // Will keep forced stops and last point
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := handleTooManyCuts(tt.cutIndexes, tt.forcedStopIndexes, tt.days, tt.lastPointIndex)
+ if len(result) != tt.expectedLen {
+ t.Errorf("Expected %d cuts, got %d", tt.expectedLen, len(result))
+ }
+
+ // Check that forced stops are included
+ for _, forcedIdx := range tt.forcedStopIndexes {
+ found := false
+ for _, resultIdx := range result {
+ if resultIdx == forcedIdx {
+ found = true
+ break
+ }
+ }
+ if !found {
+ t.Errorf("Forced stop %d not found in result", forcedIdx)
+ }
+ }
+
+ // Check that last point is included
+ lastPointFound := false
+ for _, resultIdx := range result {
+ if resultIdx == tt.lastPointIndex {
+ lastPointFound = true
+ break
+ }
+ }
+ if !lastPointFound {
+ t.Errorf("Last point %d not found in result", tt.lastPointIndex)
+ }
+ })
+ }
+}
diff --git a/run_all_tests.sh b/run_all_tests.sh
new file mode 100755
index 0000000..14e7f18
--- /dev/null
+++ b/run_all_tests.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -x
+
+go test ./...
+
+cd tests || exit 1
+
+for file in *.sh; do
+ if [ -d "$file" ]; then
+ continue
+ fi
+ ./$file
+done
diff --git a/tests/gpx/test_uneven_effort.gpx b/tests/gpx/test_uneven_effort.gpx
new file mode 100644
index 0000000..a863e55
--- /dev/null
+++ b/tests/gpx/test_uneven_effort.gpx
@@ -0,0 +1,79 @@
+
+
+
+ Test Route with Uneven Effort
+
+
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+ 120
+ 150
+ 180
+ 200
+ 220
+ 240
+ 260
+ 280
+ 300
+ 320
+
+
+ 340
+ 360
+ 380
+ 400
+ 420
+ 440
+ 460
+ 480
+ 500
+ 520
+
+
+ 550
+ 600
+ 650
+ 700
+ 750
+ 800
+ 850
+ 900
+ 950
+ 1000
+
+
+ 1050
+ 1150
+ 1250
+ 1350
+ 1450
+ 1550
+ 1650
+ 1750
+ 1850
+ 1950
+
+
+ 2050
+ 2200
+ 2350
+ 2500
+ 2650
+ 2800
+ 2950
+ 3100
+ 3250
+ 3400
+
+
+
diff --git a/tests/gpx/very_long_route.gpx b/tests/gpx/very_long_route.gpx
new file mode 100644
index 0000000..95af4e8
--- /dev/null
+++ b/tests/gpx/very_long_route.gpx
@@ -0,0 +1,36065 @@
+
+
+
+
+ Trelleborg (1,317.3km)
+
+ 0
+ 0.25
+ 0.5
+ 0.75
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.75
+ 1.5
+ 1.5
+ 2
+ 2
+ 2.25
+ 3.25
+ 3.5
+ 3.5
+ 3.25
+ 3.5
+ 3.75
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 4.25
+ 4
+ 4
+ 4.25
+ 4
+ 4
+ 4.75
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 4.75
+ 4.5
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.5
+ 5
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 6
+ 6
+ 6.25
+ 6.5
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.75
+ 8.75
+ 8.75
+ 8.25
+ 7.75
+ 7.5
+ 7.5
+ 7.5
+ 7.75
+ 8
+ 8.5
+ 8.75
+ 9
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9.5
+ 9.5
+ 9.5
+ 9.75
+ 10
+ 10
+ 10.5
+ 10.5
+ 10.75
+ 12.5
+ 13.25
+ 13.5
+ 14
+ 14
+ 14.25
+ 14.25
+ 14.5
+ 15
+ 15.75
+ 16
+ 17.25
+ 17.5
+ 17.5
+ 17.5
+ 17.75
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 17.5
+ 17.25
+ 17
+ 17
+ 17.25
+ 17.5
+ 17.75
+ 17.25
+ 17
+ 17
+ 17.25
+ 17.25
+ 17.5
+ 17.5
+ 17.75
+ 17.75
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.5
+ 18.75
+ 19.75
+ 19.75
+ 19.75
+ 20
+ 20
+ 20
+ 20.5
+ 20.25
+ 19.25
+ 18
+ 17.75
+ 17.75
+ 18.25
+ 18.75
+ 22.75
+ 20
+ 20.25
+ 21.5
+ 27
+ 27.5
+ 28
+ 29.75
+ 29.75
+ 30.25
+ 30.75
+ 31
+ 30.75
+ 30.5
+ 30.75
+ 30.75
+ 30.5
+ 30
+ 29.25
+ 28
+ 27.75
+ 27.25
+ 26
+ 25.5
+ 25.25
+ 25
+ 25.25
+ 25.75
+ 26.5
+ 26.75
+ 27
+ 29
+ 29
+ 29.75
+ 30
+ 30.5
+ 32
+ 32.75
+ 33.25
+ 33.25
+ 33.75
+ 34
+ 34.25
+ 34.25
+ 34
+ 33.5
+ 33
+ 32.25
+ 31.5
+ 31.25
+ 31.75
+ 32.25
+ 33.75
+ 34.5
+ 34.75
+ 34.75
+ 34.75
+ 34
+ 34.5
+ 34.75
+ 35
+ 35
+ 33
+ 33
+ 32.5
+ 31.5
+ 31.25
+ 31.25
+ 31.5
+ 31.75
+ 32
+ 32
+ 32.25
+ 32.75
+ 33.5
+ 33.75
+ 34.5
+ 35
+ 36
+ 36
+ 36
+ 36
+ 35.75
+ 35.75
+ 35.5
+ 35.5
+ 35.5
+ 35.25
+ 35.25
+ 35.25
+ 35.5
+ 35.75
+ 36
+ 36
+ 35.75
+ 36
+ 36.5
+ 37.5
+ 37.5
+ 37.75
+ 37.75
+ 38
+ 39.25
+ 39.75
+ 39.75
+ 39.75
+ 38.25
+ 37.5
+ 36.75
+ 36.25
+ 36
+ 35.75
+ 35.25
+ 34.25
+ 33.25
+ 32.5
+ 32.75
+ 33
+ 32.75
+ 32.5
+ 32.5
+ 32.25
+ 32.5
+ 32.75
+ 33
+ 33
+ 33
+ 33.5
+ 35
+ 35
+ 35.25
+ 35.5
+ 36
+ 35.75
+ 35.25
+ 35
+ 36.5
+ 37.25
+ 38.25
+ 38.75
+ 39.75
+ 39.25
+ 39
+ 39
+ 38.25
+ 37.25
+ 37
+ 37
+ 37
+ 37.5
+ 37.75
+ 37
+ 36.75
+ 36.5
+ 36.75
+ 37.25
+ 37.75
+ 38
+ 38
+ 38
+ 38
+ 38
+ 37.5
+ 38.5
+ 39.25
+ 39.75
+ 39.75
+ 40
+ 40.25
+ 38.25
+ 37.75
+ 37.75
+ 37.5
+ 37.5
+ 37.25
+ 37.25
+ 37
+ 37
+ 36.5
+ 36.25
+ 36
+ 35.75
+ 35.75
+ 35.75
+ 35.5
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35.25
+ 35.75
+ 36
+ 36.5
+ 37
+ 37.75
+ 38.25
+ 38.75
+ 38.25
+ 37.75
+ 37.5
+ 37.25
+ 37
+ 37.25
+ 37.25
+ 37.25
+ 37.25
+ 37.25
+ 37
+ 37
+ 37
+ 37
+ 37
+ 36.5
+ 36
+ 36.75
+ 37.5
+ 38.25
+ 39.25
+ 40
+ 41
+ 41.5
+ 42
+ 42.75
+ 43.25
+ 42
+ 42.25
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42.25
+ 42
+ 42.25
+ 42.25
+ 42.25
+ 42.5
+ 42.75
+ 42.75
+ 42.75
+ 43
+ 43
+ 43.25
+ 43.5
+ 43.5
+ 43.75
+ 43.25
+ 43
+ 43
+ 43.25
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.5
+ 43.5
+ 43.5
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 44
+ 44
+ 44.25
+ 44.25
+ 44.25
+ 44
+ 44
+ 43.75
+ 44
+ 44
+ 43.25
+ 42.5
+ 41.5
+ 40.5
+ 40
+ 40.25
+ 41.25
+ 41.75
+ 41.75
+ 41.75
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 41.75
+ 41.25
+ 41
+ 40.75
+ 40.5
+ 40
+ 40
+ 40.25
+ 41.25
+ 41.5
+ 41.75
+ 42
+ 40.75
+ 39.75
+ 38.75
+ 38.25
+ 38
+ 37.5
+ 37.25
+ 37
+ 36.75
+ 36.25
+ 36.25
+ 36.25
+ 36
+ 36
+ 36
+ 35.5
+ 35.75
+ 35.75
+ 35.5
+ 35.5
+ 35.5
+ 35.75
+ 35.75
+ 35.75
+ 36.25
+ 36.5
+ 36.75
+ 36.75
+ 37.5
+ 37.5
+ 37.75
+ 37.5
+ 36.75
+ 36.25
+ 36
+ 36
+ 36
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 36.25
+ 35.75
+ 35.25
+ 35
+ 35
+ 35
+ 34.75
+ 34.75
+ 34.75
+ 34.5
+ 34.75
+ 34.75
+ 35
+ 34.25
+ 32.25
+ 32.25
+ 33
+ 33
+ 33.25
+ 33.25
+ 33
+ 32.75
+ 33.25
+ 33.75
+ 34.5
+ 35.25
+ 35.75
+ 35.5
+ 35.75
+ 37.25
+ 37.5
+ 37.75
+ 37.75
+ 38
+ 38
+ 37.75
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38.75
+ 39
+ 39
+ 39.25
+ 39.5
+ 39.5
+ 39.5
+ 39
+ 38.5
+ 38.5
+ 38.5
+ 38.75
+ 38.75
+ 38.75
+ 38
+ 38
+ 38
+ 38.75
+ 40
+ 40.25
+ 40
+ 39.25
+ 40
+ 40
+ 40
+ 40
+ 39.75
+ 39.5
+ 39.75
+ 40
+ 40.5
+ 42
+ 42.25
+ 43
+ 43.5
+ 43.75
+ 44.25
+ 44.25
+ 44.25
+ 44
+ 42
+ 43.25
+ 43.75
+ 43.75
+ 44
+ 44.75
+ 45
+ 45.5
+ 46
+ 46.25
+ 46.25
+ 46.5
+ 46.75
+ 47
+ 47.25
+ 47.5
+ 47.5
+ 47.5
+ 47.5
+ 47.75
+ 47.75
+ 48.25
+ 48.75
+ 49
+ 49.25
+ 49
+ 48.75
+ 48.25
+ 48.25
+ 48
+ 48
+ 48.25
+ 48.5
+ 48
+ 47.75
+ 46.5
+ 46
+ 45.5
+ 42.25
+ 42.5
+ 41.75
+ 41.25
+ 41.25
+ 41
+ 41
+ 40.75
+ 40.5
+ 40.5
+ 40.5
+ 40.25
+ 40.25
+ 39.25
+ 38.75
+ 38.5
+ 38.25
+ 38.25
+ 38
+ 38
+ 38
+ 38.25
+ 38.25
+ 38.5
+ 38.5
+ 38.75
+ 38.25
+ 37.75
+ 37
+ 35
+ 34.5
+ 34
+ 33.75
+ 33.5
+ 33.5
+ 33
+ 33
+ 33
+ 33.5
+ 33.75
+ 33.75
+ 34
+ 34
+ 33.75
+ 33.75
+ 33.5
+ 32.5
+ 33.25
+ 33.75
+ 34
+ 34.25
+ 34.25
+ 33.5
+ 33
+ 33
+ 33.5
+ 33.5
+ 33.75
+ 34
+ 33.75
+ 33.5
+ 33.25
+ 33
+ 32.5
+ 32.25
+ 31.5
+ 30
+ 29.75
+ 29.5
+ 29.5
+ 29.5
+ 29.75
+ 29
+ 28.75
+ 28
+ 28
+ 28.25
+ 28.25
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 27.5
+ 27.25
+ 27
+ 26.75
+ 26.25
+ 26
+ 26.25
+ 26.25
+ 26.25
+ 25.75
+ 25.75
+ 26
+ 26
+ 26
+ 26
+ 26
+ 26.25
+ 26.75
+ 26.75
+ 27
+ 27.25
+ 27.75
+ 28
+ 28
+ 28
+ 28.25
+ 29
+ 29.75
+ 30.25
+ 30.5
+ 30.75
+ 30.75
+ 31.25
+ 31.25
+ 31.75
+ 32.25
+ 32.5
+ 33
+ 33.25
+ 33.5
+ 34
+ 34
+ 34.75
+ 34.5
+ 32.5
+ 30.75
+ 29.75
+ 28
+ 27.75
+ 28
+ 27.75
+ 28
+ 28
+ 28
+ 27.75
+ 28
+ 28
+ 27
+ 26.75
+ 26.5
+ 26.5
+ 26.25
+ 25.5
+ 25.5
+ 24
+ 25
+ 25
+ 24.75
+ 22
+ 21.5
+ 21.5
+ 21.25
+ 21
+ 20.75
+ 20.75
+ 21
+ 21.25
+ 20.75
+ 24.25
+ 24.75
+ 23.25
+ 23.25
+ 24.75
+ 27.5
+ 26.25
+ 24
+ 23.75
+ 23.25
+ 23
+ 22.75
+ 19
+ 19
+ 19
+ 19
+ 19
+ 19
+ 18.75
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 18
+ 17.75
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.5
+ 18.5
+ 18.75
+ 18.75
+ 19
+ 19.5
+ 19.75
+ 20.5
+ 20.5
+ 20.5
+ 20
+ 19.75
+ 19.5
+ 19
+ 18.5
+ 19.25
+ 20.25
+ 20.5
+ 20.75
+ 20.75
+ 21
+ 21.75
+ 19.75
+ 18.25
+ 16.5
+ 16.75
+ 17
+ 17.25
+ 17.25
+ 12.75
+ 12.25
+ 12.5
+ 11.5
+ 11
+ 10.25
+ 10.25
+ 10
+ 9.25
+ 9.25
+ 9
+ 9.75
+ 11
+ 10.75
+ 10
+ 9.5
+ 9
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 9.25
+ 9.25
+ 9.5
+ 9.25
+ 8.5
+ 7.5
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 8
+ 8.25
+ 8.25
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 9.75
+ 9.75
+ 9.25
+ 9.25
+ 9
+ 8.5
+ 7.75
+ 7.75
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 6.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6.25
+ 6.5
+ 7
+ 7.25
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.25
+ 7.25
+ 7.5
+ 7
+ 6.5
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 6.25
+ 7
+ 7.5
+ 9.25
+ 8.25
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 6.25
+ 6.25
+ 7.5
+ 6.75
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 4.5
+ 5
+ 5
+ 4.75
+ 4.25
+ 4
+ 3.5
+ 3.25
+ 3
+ 2.75
+ 2.5
+ 2.25
+ 2
+ 2
+ 2
+ 2.25
+ 2.5
+ 3.5
+ 3.5
+ 3.25
+ 2.25
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 2.25
+ 1.5
+ 1.5
+ 1.25
+ 1.25
+ 1.25
+ 1.5
+ 2.25
+ 2.25
+ 2.5
+ 2
+ 2
+ 2
+ 2.25
+ 2.25
+ 2.25
+ 2.25
+ 2.5
+ 2.5
+ 2.75
+ 2.75
+ 2.75
+ 2.25
+ 2
+ 1.75
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 1.25
+ 1
+ 1.25
+ 1.25
+ 1.25
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 2
+ 2
+ 2
+ 2.25
+ 2.5
+ 2.75
+ 3
+ 3.25
+ 3.5
+ 3.25
+ 3
+ 3
+ 3
+ 2.75
+ 2.75
+ 2.75
+ 3
+ 3
+ 3
+ 3
+ 2.75
+ 2.5
+ 2.25
+ 2
+ 1.25
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1.25
+ 1.25
+ 1.5
+ 1.5
+ 1.75
+ 2
+ 2.25
+ 2.5
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 3.5
+ 3.25
+ 1.5
+ 2
+ 1.75
+ 1.75
+ 1
+ 1.25
+ 1.75
+ 0.25
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ -0.75
+ -0.75
+ -0.75
+ -0.5
+ -0.75
+ -0.75
+ -0.75
+ -0.75
+ -0.5
+ -0.25
+ 0
+ -0.25
+ -0.5
+ -0.75
+ -1.25
+ -1.75
+ -1.5
+ -0.5
+ 0
+ 0
+ 0.25
+ 0.5
+ 0.25
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2.75
+ 3
+ 2.75
+ 1.5
+ 0.75
+ 1.5
+ 2.75
+ 2.75
+ 2.75
+ 2.5
+ 2.5
+ 3
+ 4.5
+ 6
+ 8.75
+ 9.5
+ 11
+ 11.5
+ 10.75
+ 9.25
+ 6.75
+ 3.25
+ 3.25
+ 2.25
+ 2.25
+ 2.75
+ 3.25
+ 3.5
+ 3.25
+ 2.5
+ 2
+ 1.75
+ 0.75
+ 0.75
+ 1.5
+ 1.25
+ 1
+ 1.5
+ 1.5
+ 2
+ 2
+ 1.5
+ 1
+ 1
+ 1
+ 1
+ 1.25
+ 1.5
+ 1.75
+ 2.25
+ 2.5
+ 2.75
+ 3
+ 3.75
+ 2.25
+ 2
+ 2
+ 1.75
+ 1.75
+ 1.5
+ 1.75
+ 1.75
+ 2
+ 2
+ 2
+ 1.75
+ 1.75
+ 1.5
+ 1.5
+ 2
+ 2
+ 2
+ 2
+ 2
+ 1
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.75
+ 1
+ 1
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+ 0.5
+ 0.25
+ 0.25
+ -0.25
+ -0.5
+ -1.5
+ -1.75
+ -1.75
+ -1.75
+ -1.75
+ -1.5
+ -1.25
+ -1
+ -0.75
+ -0.25
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ -0.25
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0.75
+ 1
+ 2.5
+ 2.75
+ 3
+ 3.5
+ 3.75
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 5.25
+ 5.5
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 7
+ 7
+ 7
+ 7.25
+ 7.5
+ 7.5
+ 7.75
+ 7
+ 6.5
+ 6.25
+ 6
+ 5
+ 3.5
+ 3.75
+ 4
+ 4.25
+ 4
+ 4.75
+ 4.75
+ 4.25
+ 4
+ 3.75
+ 3.75
+ 3.25
+ 3.25
+ 3
+ 3.25
+ 3.5
+ 3.5
+ 3.5
+ 2
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 2.75
+ 0.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 2.25
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 4.25
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4.5
+ 5.5
+ 6.75
+ 7
+ 8.5
+ 11.75
+ 14.5
+ 15.75
+ 14.75
+ 14
+ 12
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12
+ 11.5
+ 11.25
+ 10.25
+ 10.5
+ 10.5
+ 11
+ 11.25
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 11
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 10
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 9
+ 9
+ 9.25
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 9.5
+ 10
+ 10.5
+ 11
+ 11.25
+ 11.5
+ 11.5
+ 12
+ 12.25
+ 12.25
+ 12.5
+ 12.25
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 11
+ 11
+ 11.75
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.25
+ 9.5
+ 9.25
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 8.5
+ 7
+ 7
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 7
+ 7
+ 7
+ 7.75
+ 7.75
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.75
+ 8
+ 7.75
+ 7
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 4.5
+ 4
+ 3.5
+ 3
+ 2.75
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.5
+ 2.5
+ 1.25
+ 1
+ 0.25
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4.75
+ 6.75
+ 6.75
+ 9.5
+ 10.5
+ 12
+ 12
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.5
+ 13
+ 13.75
+ 14
+ 14.25
+ 14.75
+ 14.5
+ 14
+ 14.25
+ 14.25
+ 11.75
+ 11
+ 11
+ 11
+ 11
+ 9.75
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.5
+ 10
+ 10.5
+ 10
+ 10
+ 8.75
+ 8.75
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8.75
+ 9
+ 8.75
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 7.75
+ 9.5
+ 9.25
+ 9
+ 10.5
+ 11
+ 11
+ 11
+ 11
+ 10
+ 9.5
+ 10.25
+ 10.25
+ 12
+ 12
+ 11.75
+ 11.75
+ 12
+ 11.5
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11.5
+ 12
+ 12.5
+ 13.25
+ 12
+ 10.25
+ 9.25
+ 9.5
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8
+ 8
+ 10.5
+ 11.75
+ 13.5
+ 16.75
+ 14.75
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 9.25
+ 13
+ 15.5
+ 15.75
+ 17.25
+ 17.25
+ 17
+ 17
+ 17.25
+ 16
+ 14.5
+ 14
+ 14
+ 14.25
+ 14.5
+ 14.75
+ 16
+ 16.75
+ 17.25
+ 17.25
+ 16.5
+ 16.25
+ 16
+ 16
+ 16
+ 17
+ 17.75
+ 18.25
+ 16.5
+ 16.75
+ 16.75
+ 15.25
+ 13.75
+ 13.5
+ 12.25
+ 12.25
+ 11.5
+ 11
+ 11.25
+ 14.75
+ 16.5
+ 14.5
+ 12
+ 11.5
+ 9.5
+ 9
+ 9
+ 9.25
+ 10.75
+ 11.5
+ 11.5
+ 11.75
+ 11.5
+ 11.5
+ 11.5
+ 11
+ 11.5
+ 11.75
+ 12.5
+ 13.25
+ 13.75
+ 14.5
+ 16.25
+ 17.5
+ 17.25
+ 17
+ 16.75
+ 16.75
+ 16.5
+ 16.25
+ 16.5
+ 16.5
+ 16.75
+ 16
+ 14.75
+ 11.75
+ 11.75
+ 11.75
+ 12
+ 12.5
+ 12
+ 12.25
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 11.75
+ 8.5
+ 5.75
+ 3.75
+ 4.5
+ 6.5
+ 7.75
+ 10
+ 13
+ 12.75
+ 12.5
+ 12.5
+ 13.75
+ 13
+ 13
+ 13
+ 14
+ 14.25
+ 13.5
+ 12
+ 12.5
+ 12.75
+ 13.25
+ 13.5
+ 14
+ 14
+ 14
+ 13.75
+ 13.5
+ 13
+ 13.75
+ 14.75
+ 15.25
+ 15.5
+ 15.75
+ 15.75
+ 17.5
+ 17.75
+ 18.5
+ 19.5
+ 19.75
+ 20.25
+ 20.25
+ 20
+ 19.75
+ 19.25
+ 18.5
+ 18
+ 17.75
+ 16
+ 14
+ 13.25
+ 10.75
+ 10.5
+ 11.75
+ 11.25
+ 11.75
+ 12.5
+ 14.25
+ 14.75
+ 17.75
+ 19.25
+ 16.25
+ 16.5
+ 16.75
+ 16.75
+ 17
+ 17
+ 17
+ 17.25
+ 17.5
+ 17.75
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 18.5
+ 18.5
+ 18.75
+ 19
+ 19.25
+ 19.5
+ 22.25
+ 22.25
+ 24
+ 26
+ 27
+ 28
+ 29.25
+ 29.75
+ 30
+ 30.5
+ 31.25
+ 31.75
+ 33.25
+ 33.5
+ 34.5
+ 36.25
+ 37.5
+ 40.25
+ 40.25
+ 40.5
+ 41.25
+ 45.75
+ 46
+ 48.75
+ 51
+ 50.75
+ 48.5
+ 47
+ 46.5
+ 46
+ 45.75
+ 44.5
+ 44.5
+ 43
+ 39
+ 36.5
+ 36
+ 34.5
+ 33.5
+ 33.25
+ 32.25
+ 31.75
+ 30.75
+ 30.5
+ 29.75
+ 29.5
+ 29.25
+ 29
+ 28
+ 27.5
+ 28.25
+ 29
+ 43
+ 45.25
+ 46.25
+ 47
+ 50
+ 50.25
+ 52
+ 51.75
+ 52
+ 53
+ 60.75
+ 64.75
+ 64.75
+ 63.5
+ 62.5
+ 61.75
+ 61.25
+ 61
+ 61.5
+ 62.5
+ 63.75
+ 64
+ 65.25
+ 65.5
+ 66.25
+ 67
+ 67.5
+ 67
+ 67
+ 68
+ 68.75
+ 67.5
+ 68.5
+ 68.75
+ 72.75
+ 74.25
+ 75.75
+ 75.5
+ 74.75
+ 73.25
+ 72.5
+ 72.25
+ 71.25
+ 70.25
+ 70.75
+ 70.25
+ 70.5
+ 71
+ 72
+ 73.25
+ 75.5
+ 77
+ 78
+ 77.75
+ 77.5
+ 77
+ 76.75
+ 76.25
+ 74.25
+ 73.75
+ 73.25
+ 73
+ 72.75
+ 72.25
+ 71
+ 71
+ 71.25
+ 71.5
+ 71
+ 70.75
+ 74
+ 74.25
+ 72.75
+ 72.5
+ 72.5
+ 72
+ 72
+ 71.75
+ 71.5
+ 70
+ 70.25
+ 70.5
+ 70.5
+ 70.75
+ 67.25
+ 63.5
+ 62
+ 61.5
+ 62.25
+ 68.75
+ 69.75
+ 70.25
+ 71.75
+ 76
+ 76
+ 76
+ 73
+ 74
+ 77
+ 77
+ 77.75
+ 77.25
+ 76.5
+ 76
+ 76.75
+ 78.5
+ 81
+ 81.25
+ 81
+ 80
+ 80.75
+ 81
+ 80.75
+ 80
+ 80.5
+ 81.25
+ 80.75
+ 79
+ 78
+ 78.5
+ 78.75
+ 79.75
+ 79.75
+ 81
+ 81
+ 81.25
+ 81.75
+ 81.5
+ 81
+ 78.25
+ 75.75
+ 75.75
+ 75.25
+ 75
+ 74.75
+ 73.25
+ 73
+ 73.5
+ 73.75
+ 73.75
+ 74
+ 74
+ 74
+ 74
+ 73.5
+ 73.5
+ 74
+ 74.75
+ 75
+ 74.75
+ 74.25
+ 74
+ 73.75
+ 73.75
+ 73.75
+ 74
+ 73.25
+ 72.25
+ 70.75
+ 68.25
+ 68
+ 68
+ 67.75
+ 67.25
+ 66
+ 64
+ 62.75
+ 62.25
+ 62
+ 61
+ 60.25
+ 59
+ 57.5
+ 58
+ 58.5
+ 58.75
+ 58.25
+ 57.25
+ 57
+ 56
+ 55.25
+ 55
+ 55.75
+ 55.5
+ 54.75
+ 54.5
+ 52.25
+ 52
+ 52
+ 52
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.5
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.5
+ 52.75
+ 52
+ 50.5
+ 50.25
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 49.25
+ 49
+ 48.75
+ 48.5
+ 47
+ 46.25
+ 46
+ 45
+ 44.5
+ 44
+ 44
+ 43.75
+ 42.25
+ 41.75
+ 41.75
+ 41.75
+ 42
+ 42
+ 41.75
+ 42.75
+ 44.5
+ 43.5
+ 32.5
+ 32.25
+ 32
+ 32
+ 32
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.5
+ 32.75
+ 34
+ 34.5
+ 34.75
+ 35
+ 33.5
+ 31.75
+ 29.75
+ 29
+ 27.5
+ 27.5
+ 27.75
+ 28
+ 28.25
+ 28
+ 28
+ 28.25
+ 29
+ 29
+ 28
+ 27.5
+ 27.25
+ 27.25
+ 27
+ 27
+ 27
+ 27
+ 27
+ 27
+ 26.75
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 27
+ 26.75
+ 26.75
+ 27
+ 27
+ 26.75
+ 26.75
+ 26.5
+ 26
+ 26
+ 26
+ 26.25
+ 26.25
+ 26.5
+ 27.5
+ 28
+ 27.75
+ 28.75
+ 29.25
+ 30.25
+ 31.25
+ 31.25
+ 31.75
+ 31.5
+ 31.25
+ 31.5
+ 31.75
+ 31.75
+ 31.5
+ 31.5
+ 23.5
+ 21.5
+ 23.5
+ 25.5
+ 25.5
+ 25.75
+ 25.75
+ 25.5
+ 23.5
+ 23.25
+ 23
+ 23
+ 22.75
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.5
+ 21.75
+ 21.75
+ 21.75
+ 22
+ 22.5
+ 24.25
+ 25.75
+ 26.25
+ 26.5
+ 26.75
+ 27
+ 27
+ 27
+ 13.75
+ 12.75
+ 12
+ 15
+ 13.5
+ 13.75
+ 14
+ 15.75
+ 16.25
+ 16.75
+ 16.75
+ 16.25
+ 16.75
+ 16.75
+ 17
+ 17
+ 16.25
+ 14.75
+ 14.5
+ 13
+ 13.75
+ 13.25
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 10.5
+ 10.25
+ 10.25
+ 11
+ 12
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 11
+ 10.5
+ 10.75
+ 11
+ 10
+ 9.25
+ 9.75
+ 10.75
+ 10.25
+ 9.75
+ 8.75
+ 8
+ 8.75
+ 9.5
+ 9
+ 8.25
+ 8.75
+ 8.5
+ 7
+ 7
+ 7.25
+ 7.75
+ 8.75
+ 9
+ 9
+ 9.25
+ 9.75
+ 10.25
+ 11
+ 11.75
+ 11.75
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11.25
+ 11
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10
+ 9.5
+ 8.5
+ 8
+ 7.25
+ 7.25
+ 7.25
+ 6.75
+ 6.5
+ 6.75
+ 8.25
+ 9.25
+ 9.75
+ 9.75
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 10.75
+ 11
+ 11
+ 11
+ 10.75
+ 10
+ 11
+ 11
+ 11
+ 11.75
+ 12.25
+ 11.75
+ 9.5
+ 9
+ 6.75
+ 7.75
+ 7.25
+ 7
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 6.5
+ 6.25
+ 5
+ 4.75
+ 4.25
+ 4
+ 3.5
+ 3.75
+ 4.75
+ 5
+ 6
+ 6.5
+ 9.75
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 11
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11.25
+ 13
+ 13.25
+ 13.75
+ 13.75
+ 14
+ 14
+ 14
+ 14.25
+ 14.25
+ 14.25
+ 14
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 14
+ 14.5
+ 15
+ 15.25
+ 15.5
+ 17
+ 17
+ 16.75
+ 16.75
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15
+ 15
+ 14.75
+ 14.75
+ 14.75
+ 15.25
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17.5
+ 17.75
+ 18.5
+ 19.25
+ 20.5
+ 20.75
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.75
+ 20.75
+ 20.75
+ 20.75
+ 20.75
+ 19.75
+ 19.5
+ 19.25
+ 18.75
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 19.75
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 16.25
+ 12.75
+ 12.5
+ 14.75
+ 16
+ 15.75
+ 14.5
+ 14
+ 13.25
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 14
+ 14
+ 14
+ 14
+ 14
+ 14.25
+ 14.25
+ 14.5
+ 15.25
+ 15.25
+ 15.25
+ 15.5
+ 15.5
+ 15.5
+ 16.5
+ 16.25
+ 15.5
+ 15.25
+ 15.25
+ 15.5
+ 16
+ 16.5
+ 18.25
+ 17.25
+ 16.75
+ 16.5
+ 16
+ 16
+ 15
+ 15
+ 14.75
+ 14.5
+ 14
+ 14
+ 16.25
+ 16.25
+ 16.25
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.5
+ 13.75
+ 13.5
+ 13.25
+ 13.25
+ 13
+ 11.25
+ 11
+ 11
+ 11.5
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.25
+ 11
+ 10.75
+ 9.5
+ 8.5
+ 7.75
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.5
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 11.5
+ 11.75
+ 11.75
+ 11.25
+ 11
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.5
+ 10.75
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 9.75
+ 11
+ 11.75
+ 11
+ 13.75
+ 13.5
+ 13
+ 13
+ 14.25
+ 14.75
+ 15.25
+ 15.5
+ 15.75
+ 15.75
+ 16.25
+ 16.5
+ 16.75
+ 16.75
+ 16.75
+ 17
+ 17
+ 17.25
+ 17.75
+ 17.75
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 20.5
+ 21
+ 21.5
+ 20.5
+ 20.25
+ 18
+ 18
+ 18.25
+ 18
+ 19.25
+ 19
+ 18.25
+ 17.75
+ 17.25
+ 16.75
+ 16.25
+ 15.5
+ 15
+ 15
+ 14.5
+ 14.25
+ 13.5
+ 10.25
+ 9.75
+ 8.75
+ 8.5
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8
+ 7.25
+ 7.75
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9.5
+ 10
+ 11
+ 11.5
+ 12
+ 13.25
+ 16
+ 16.25
+ 17.5
+ 17.5
+ 18.25
+ 18.75
+ 19
+ 19
+ 19.75
+ 20.25
+ 20.75
+ 21
+ 21.25
+ 21.75
+ 22.25
+ 23.5
+ 23.5
+ 23.5
+ 23.5
+ 23.75
+ 24.5
+ 26.75
+ 27
+ 27
+ 27.5
+ 29.25
+ 30
+ 30
+ 29.5
+ 29.25
+ 29.75
+ 30
+ 30
+ 30
+ 30.25
+ 30.25
+ 30.5
+ 30.75
+ 30.75
+ 31
+ 31.5
+ 31.75
+ 32.25
+ 31.75
+ 31
+ 28.75
+ 27.75
+ 25.25
+ 22.75
+ 19
+ 18.25
+ 14
+ 12.75
+ 12.5
+ 12
+ 12
+ 12
+ 12.5
+ 12.5
+ 13
+ 13.25
+ 14
+ 18.75
+ 18.75
+ 17.25
+ 16
+ 16
+ 16
+ 16
+ 15.5
+ 15
+ 14
+ 15
+ 14.75
+ 15
+ 15
+ 15.25
+ 15.75
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.5
+ 16.75
+ 17
+ 17
+ 17
+ 16.25
+ 16
+ 19.75
+ 20.75
+ 20.75
+ 20.75
+ 21.25
+ 21
+ 21.25
+ 22.5
+ 24.5
+ 24.75
+ 29
+ 32.5
+ 33.25
+ 33.5
+ 33.5
+ 33.75
+ 33.75
+ 34
+ 34
+ 34
+ 34
+ 34.25
+ 34.25
+ 34.25
+ 34.25
+ 34.5
+ 34.5
+ 34.5
+ 34.5
+ 34.75
+ 35
+ 34.75
+ 34.75
+ 34.5
+ 34.25
+ 34.25
+ 36
+ 37.5
+ 37
+ 38.25
+ 39
+ 40.25
+ 41.75
+ 46
+ 50.5
+ 58.5
+ 59.5
+ 62.75
+ 63.75
+ 65.5
+ 66.5
+ 67
+ 67.75
+ 68.25
+ 68.25
+ 68.25
+ 68
+ 68.25
+ 69
+ 69.75
+ 71
+ 72.75
+ 74.25
+ 74.5
+ 76
+ 76.5
+ 76
+ 75
+ 75
+ 75.25
+ 76.75
+ 77.25
+ 82.5
+ 85
+ 87.75
+ 89.5
+ 90.5
+ 92.25
+ 91.75
+ 93.5
+ 95
+ 97.25
+ 99.75
+ 100.5
+ 101.25
+ 103.75
+ 105.75
+ 107
+ 104.75
+ 104
+ 107.75
+ 120.75
+ 125.5
+ 124
+ 129.25
+ 132.75
+ 131.5
+ 133.25
+ 136.25
+ 138.75
+ 136.5
+ 136.25
+ 139.25
+ 139.5
+ 140
+ 139.75
+ 138
+ 138.75
+ 141
+ 142.75
+ 147
+ 149.75
+ 150
+ 150
+ 150.5
+ 150.5
+ 150.75
+ 151.5
+ 154.75
+ 156.75
+ 155.75
+ 157
+ 158.5
+ 159.5
+ 160.5
+ 158.5
+ 158
+ 157.25
+ 156.75
+ 156.25
+ 156.5
+ 156.75
+ 170.5
+ 173.25
+ 173.75
+ 175.25
+ 173
+ 173
+ 173
+ 171.5
+ 170.25
+ 169.25
+ 168.25
+ 169
+ 170.25
+ 170.25
+ 170
+ 169.75
+ 169.25
+ 169.75
+ 171
+ 173.75
+ 175.5
+ 177.5
+ 182
+ 187
+ 187
+ 187.25
+ 187.5
+ 188.5
+ 188.75
+ 188.75
+ 188.5
+ 188.25
+ 188.25
+ 188.25
+ 188
+ 188
+ 187.75
+ 191
+ 191.75
+ 190.25
+ 188
+ 185.5
+ 181.5
+ 178.75
+ 178
+ 176.75
+ 175.5
+ 175.25
+ 175
+ 175
+ 174
+ 171.25
+ 167.5
+ 166.25
+ 165.5
+ 165.25
+ 165.5
+ 164.5
+ 163.25
+ 161.5
+ 159
+ 157.5
+ 155.25
+ 153.5
+ 152
+ 150.75
+ 138.25
+ 135.5
+ 134.75
+ 134
+ 132.75
+ 130.75
+ 128.25
+ 120.75
+ 111.5
+ 109.75
+ 96.75
+ 92.75
+ 87.25
+ 71.5
+ 65.75
+ 24.5
+ 22.25
+ 20.25
+ 19.25
+ 19
+ 18.75
+ 18.25
+ 18
+ 17
+ 17
+ 16.25
+ 16
+ 15
+ 15
+ 14.25
+ 13.25
+ 12
+ 11.5
+ 10.5
+ 9
+ 9
+ 8.75
+ 8.5
+ 8
+ 7
+ 7.25
+ 7.5
+ 7.25
+ 6.75
+ 6.75
+ 7.75
+ 7.25
+ 7
+ 7
+ 8.75
+ 8
+ 7.5
+ 7
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 8
+ 10
+ 11.75
+ 12
+ 12
+ 12.25
+ 12.5
+ 12
+ 12.75
+ 13.25
+ 13.5
+ 13.25
+ 13
+ 13
+ 13
+ 13
+ 13.5
+ 14.25
+ 14.5
+ 14.5
+ 14
+ 14
+ 14
+ 14
+ 14.75
+ 14.75
+ 15
+ 15
+ 12.25
+ 11
+ 10.75
+ 10
+ 9.25
+ 9
+ 9.25
+ 9.75
+ 10
+ 10.25
+ 9.75
+ 9.5
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 9
+ 9.75
+ 10.5
+ 11.25
+ 11.5
+ 11.75
+ 11
+ 9
+ 8
+ 7.75
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.5
+ 8.75
+ 9
+ 9
+ 9.5
+ 9.75
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 9.75
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.75
+ 11
+ 11.25
+ 11.25
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11.5
+ 11.75
+ 11.5
+ 10.5
+ 11
+ 10.25
+ 9.75
+ 10
+ 9.5
+ 9
+ 8.75
+ 8
+ 8
+ 8.75
+ 9
+ 8.75
+ 8.75
+ 9
+ 11.75
+ 9.75
+ 9.5
+ 9.5
+ 9.25
+ 8
+ 8
+ 8.25
+ 9.5
+ 8.5
+ 8
+ 7.25
+ 7.5
+ 7.25
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8.25
+ 8
+ 8
+ 7.5
+ 7.5
+ 7
+ 6.5
+ 6
+ 5.75
+ 6.25
+ 6.25
+ 7.75
+ 8.25
+ 8.25
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 7.75
+ 7.75
+ 7.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 9.5
+ 8.75
+ 8.75
+ 10.5
+ 12
+ 11.5
+ 11
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 14.25
+ 15.25
+ 17
+ 17.5
+ 19.5
+ 19.75
+ 19.75
+ 19.75
+ 19.75
+ 18.5
+ 12.75
+ 9.5
+ 10.5
+ 11.5
+ 8.5
+ 9.5
+ 9.5
+ 9.5
+ 9.5
+ 9.75
+ 10
+ 10.5
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 12
+ 12
+ 12.25
+ 12.5
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.25
+ 12
+ 12
+ 11.5
+ 11.5
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 7.75
+ 7
+ 4.25
+ 4.25
+ 4.75
+ 5
+ 5
+ 5.25
+ 9.5
+ 9
+ 8.25
+ 7.75
+ 8.5
+ 8.75
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.75
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.25
+ 8.5
+ 8.25
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.5
+ 6.25
+ 7
+ 7.5
+ 8.25
+ 8.75
+ 9
+ 9.5
+ 9.75
+ 10
+ 10
+ 10
+ 9.75
+ 9.25
+ 9
+ 8.75
+ 8.25
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.75
+ 9.75
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.75
+ 11.75
+ 12.5
+ 13.25
+ 14.5
+ 15.75
+ 17.25
+ 18.25
+ 17
+ 15
+ 20.25
+ 25
+ 20
+ 16
+ 16.25
+ 16.5
+ 9.75
+ 9
+ 7
+ 6.5
+ 6.75
+ 7.75
+ 9.75
+ 11
+ 12
+ 16.5
+ 17.5
+ 18.25
+ 18.25
+ 18
+ 17
+ 17.25
+ 18.25
+ 18.5
+ 21.25
+ 22.75
+ 23.5
+ 24.25
+ 26
+ 26.5
+ 26.75
+ 25
+ 22.5
+ 22.75
+ 21
+ 18.75
+ 18.5
+ 17
+ 16.5
+ 15.75
+ 14
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 11.75
+ 12
+ 13
+ 12.5
+ 11.5
+ 11.5
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 9.5
+ 9.25
+ 9
+ 9.5
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 11.25
+ 10.75
+ 10.75
+ 11
+ 11
+ 12.75
+ 13
+ 13.25
+ 13.75
+ 16.75
+ 17.25
+ 17
+ 17
+ 16.25
+ 15
+ 12.5
+ 12.25
+ 12
+ 10.75
+ 10
+ 10
+ 10
+ 10
+ 9.75
+ 9.25
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 10
+ 10.75
+ 10.75
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 11
+ 10.5
+ 10.5
+ 10.75
+ 11.5
+ 11.25
+ 10.75
+ 10.5
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 11.25
+ 11.5
+ 12
+ 12
+ 12
+ 12.25
+ 11.5
+ 10.25
+ 10
+ 9
+ 8.75
+ 8.5
+ 8.25
+ 7.75
+ 7
+ 6.75
+ 6.75
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 7.5
+ 10
+ 11
+ 11
+ 11.25
+ 11.5
+ 11.5
+ 11.5
+ 11.5
+ 11.5
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10.75
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 5.75
+ 6
+ 6.5
+ 6.75
+ 7.5
+ 7.75
+ 8
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.75
+ 9.5
+ 9.5
+ 9.75
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.25
+ 10.75
+ 10.75
+ 10.75
+ 11.25
+ 11.25
+ 11.5
+ 12
+ 12
+ 12.5
+ 12.5
+ 12.5
+ 12.25
+ 12
+ 12
+ 11.75
+ 10.25
+ 9
+ 8.5
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 6.75
+ 7
+ 9
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 7.5
+ 8
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 12
+ 12
+ 11.75
+ 11.25
+ 11
+ 11
+ 11
+ 11
+ 10.75
+ 10.5
+ 10
+ 9.75
+ 9.5
+ 9.5
+ 9
+ 8.25
+ 8
+ 7.75
+ 6.75
+ 6.25
+ 6.25
+ 5.5
+ 5.25
+ 5.25
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7.5
+ 7.5
+ 7.75
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8
+ 7.5
+ 7.25
+ 7
+ 8
+ 8
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 8.75
+ 8.75
+ 8.25
+ 8
+ 7.75
+ 7.25
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 6
+ 7.25
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8
+ 8.25
+ 8.5
+ 8.75
+ 8.5
+ 8.5
+ 7.75
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8
+ 8.75
+ 8.5
+ 8.25
+ 9
+ 9
+ 8.75
+ 8
+ 8
+ 9
+ 9
+ 10
+ 10
+ 10
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 7.75
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 6
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 9.25
+ 9.5
+ 9.5
+ 8.75
+ 8
+ 7
+ 6.25
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 4.5
+ 4
+ 3.5
+ 4.5
+ 4.75
+ 5.25
+ 6.25
+ 7
+ 8
+ 8.25
+ 8.25
+ 8
+ 8
+ 6.25
+ 6.25
+ 6.75
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 6.75
+ 6.5
+ 5.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.5
+ 5
+ 4.5
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 6
+ 6.25
+ 6.75
+ 7.5
+ 8.5
+ 9
+ 9.5
+ 9.75
+ 9.75
+ 9.5
+ 9.25
+ 8.75
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 9.75
+ 10.5
+ 10.75
+ 11.75
+ 12.25
+ 12.5
+ 12.5
+ 12.5
+ 12
+ 11.75
+ 11.75
+ 11.25
+ 11.25
+ 11
+ 11
+ 11.25
+ 11.25
+ 12.25
+ 14.5
+ 15
+ 16
+ 16
+ 16.5
+ 17.75
+ 18.75
+ 19
+ 19
+ 19.5
+ 21.75
+ 22.25
+ 22.75
+ 21.5
+ 21.5
+ 22.25
+ 22
+ 21.25
+ 19.25
+ 19.25
+ 19
+ 19
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.5
+ 18.5
+ 18.5
+ 18.25
+ 18
+ 18
+ 17.75
+ 17.75
+ 18
+ 18
+ 17.75
+ 17
+ 17
+ 17
+ 17.25
+ 17.25
+ 17
+ 17.5
+ 17.25
+ 16.25
+ 16
+ 16.5
+ 17.5
+ 18.75
+ 19
+ 19
+ 19
+ 18.75
+ 19
+ 19
+ 19
+ 19
+ 18.25
+ 19
+ 20.5
+ 23.5
+ 23.75
+ 23
+ 20.5
+ 19.5
+ 18.75
+ 18.75
+ 19.25
+ 19.75
+ 18.75
+ 20
+ 19.5
+ 19
+ 19.25
+ 19.5
+ 19.25
+ 20
+ 19.75
+ 19
+ 19.75
+ 20.5
+ 23.25
+ 25.5
+ 25.75
+ 25.25
+ 24.5
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24.5
+ 25.5
+ 26
+ 26.5
+ 27
+ 26.5
+ 26.5
+ 26.5
+ 26.25
+ 26.25
+ 26.25
+ 26.25
+ 26
+ 25.75
+ 25.5
+ 25.5
+ 25.75
+ 26
+ 26.25
+ 26.75
+ 26.75
+ 26.75
+ 26
+ 24.75
+ 24
+ 23.75
+ 23.75
+ 24
+ 24
+ 24
+ 24
+ 23.5
+ 23.25
+ 22.75
+ 22.5
+ 21.75
+ 21.25
+ 20.75
+ 21
+ 22
+ 23
+ 23.5
+ 23.75
+ 20
+ 17.5
+ 16.5
+ 15
+ 13.75
+ 13.5
+ 15
+ 17.25
+ 18.5
+ 19
+ 20
+ 22.25
+ 24.75
+ 29.75
+ 32
+ 34
+ 34
+ 34
+ 34
+ 34.25
+ 34.5
+ 34.75
+ 35
+ 35
+ 34.75
+ 34.25
+ 34
+ 33
+ 32.75
+ 32
+ 32.5
+ 32.5
+ 32.25
+ 32.5
+ 32.75
+ 32.25
+ 31.75
+ 31.75
+ 30.25
+ 29.5
+ 29
+ 28.75
+ 28.25
+ 27.5
+ 27
+ 27
+ 25.75
+ 25
+ 24.75
+ 24
+ 22.75
+ 22
+ 20.75
+ 20.75
+ 20.5
+ 20.25
+ 20.5
+ 20.75
+ 21.25
+ 22.5
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.5
+ 21
+ 21.75
+ 22.25
+ 22.75
+ 23
+ 23.25
+ 23.5
+ 24
+ 24.25
+ 21
+ 20
+ 21.5
+ 21.75
+ 22
+ 22.25
+ 23.5
+ 23.75
+ 24.25
+ 25
+ 25.75
+ 26.25
+ 27.5
+ 27.5
+ 27.5
+ 27.5
+ 27.5
+ 27
+ 27
+ 26.75
+ 26.5
+ 26.25
+ 25.75
+ 31.25
+ 32.5
+ 33.25
+ 33.75
+ 34
+ 34.25
+ 35.5
+ 37.75
+ 39.5
+ 40.75
+ 42.25
+ 42.5
+ 42.5
+ 40.25
+ 37.25
+ 35.5
+ 32.75
+ 30.5
+ 29.25
+ 27
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21.25
+ 21.75
+ 22.75
+ 23
+ 23.25
+ 24.25
+ 24.25
+ 23.25
+ 23.25
+ 22.25
+ 21.5
+ 21
+ 23.25
+ 23.75
+ 21.5
+ 21
+ 23.25
+ 32
+ 30.25
+ 31.25
+ 31.75
+ 32.25
+ 32.5
+ 32.75
+ 33.25
+ 33
+ 30
+ 28
+ 26.25
+ 23
+ 22.75
+ 22
+ 22
+ 22.75
+ 23.75
+ 23.75
+ 23.75
+ 25.5
+ 26.5
+ 28
+ 29
+ 29.25
+ 29.25
+ 29
+ 28.75
+ 28.25
+ 27.25
+ 27
+ 26.25
+ 25
+ 25
+ 25
+ 24.25
+ 23.25
+ 23
+ 21.75
+ 21.75
+ 21.75
+ 21.5
+ 22
+ 22.25
+ 22
+ 21.5
+ 21.5
+ 21.5
+ 21.25
+ 18
+ 18
+ 17.25
+ 17
+ 17
+ 17.25
+ 17.75
+ 17
+ 17.75
+ 21.25
+ 21.75
+ 21.75
+ 22
+ 22
+ 22
+ 22
+ 22
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 22.5
+ 23.25
+ 24.75
+ 25.5
+ 26.25
+ 26.75
+ 27.25
+ 27.25
+ 27.5
+ 28
+ 28.25
+ 28.25
+ 28.5
+ 28.25
+ 28
+ 28.25
+ 27.75
+ 27
+ 26.5
+ 26.25
+ 26
+ 25.75
+ 25.75
+ 25.75
+ 26.25
+ 26.5
+ 25.75
+ 25.5
+ 25.75
+ 26
+ 26.25
+ 25.25
+ 25
+ 24.25
+ 23.75
+ 22
+ 21.5
+ 20.75
+ 20.75
+ 20.5
+ 20.75
+ 20.5
+ 20
+ 19.75
+ 19
+ 18.75
+ 19
+ 19.5
+ 20
+ 20.75
+ 19.75
+ 18.75
+ 18.75
+ 19
+ 20
+ 19.25
+ 19
+ 18.75
+ 18
+ 21.75
+ 22.75
+ 21.25
+ 19.75
+ 19.5
+ 19.5
+ 19.5
+ 20
+ 20.5
+ 21
+ 23.75
+ 24.75
+ 25.25
+ 26.5
+ 24.75
+ 26.25
+ 27.5
+ 26.75
+ 24.25
+ 24
+ 22.25
+ 22
+ 21.75
+ 21.5
+ 22
+ 24
+ 24
+ 24
+ 24.25
+ 25.5
+ 27
+ 27.25
+ 27.25
+ 28
+ 28.25
+ 28.5
+ 31
+ 31.75
+ 29.75
+ 27.75
+ 26.5
+ 26.25
+ 26.25
+ 19.75
+ 20
+ 19.5
+ 18.25
+ 17
+ 15.5
+ 15.25
+ 15.25
+ 15.25
+ 14.75
+ 14.25
+ 14.75
+ 16
+ 14.5
+ 12.75
+ 12.25
+ 12.5
+ 11.75
+ 10.5
+ 10.5
+ 11.75
+ 11.25
+ 11.25
+ 16.75
+ 19.75
+ 18
+ 17.5
+ 17.25
+ 18
+ 19.5
+ 15
+ 14.25
+ 14.5
+ 15.5
+ 15.75
+ 16.25
+ 16.25
+ 15.5
+ 14
+ 13.25
+ 12.5
+ 11.75
+ 11.75
+ 11.5
+ 11.75
+ 10.5
+ 10.5
+ 10.75
+ 11.25
+ 11.75
+ 12.25
+ 13.5
+ 14.75
+ 14.25
+ 14.5
+ 15
+ 15
+ 14
+ 13.5
+ 13.5
+ 14.75
+ 14
+ 13.25
+ 12.75
+ 12.5
+ 12.75
+ 14.5
+ 14.5
+ 13.75
+ 14.5
+ 15
+ 16.25
+ 16.25
+ 16.25
+ 16.25
+ 16
+ 16.25
+ 16.25
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 12
+ 12
+ 12
+ 11.5
+ 11.5
+ 12.25
+ 12.75
+ 13.5
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 13.25
+ 12.5
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.25
+ 12
+ 12.25
+ 12
+ 12.25
+ 12
+ 12
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.25
+ 12.25
+ 14
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14.25
+ 15.25
+ 17.25
+ 19.25
+ 21.75
+ 23.5
+ 25.5
+ 26.75
+ 26.25
+ 25
+ 25
+ 25
+ 25
+ 25
+ 25
+ 25
+ 25
+ 24.75
+ 25
+ 25.5
+ 26
+ 26.5
+ 27
+ 27.25
+ 27.75
+ 30.5
+ 33
+ 33.75
+ 33.25
+ 33
+ 33.25
+ 33.75
+ 34.25
+ 35.25
+ 35.75
+ 35.5
+ 35.5
+ 36.25
+ 37
+ 36.5
+ 35.75
+ 34.5
+ 31.75
+ 31.25
+ 31.25
+ 30
+ 29.75
+ 28.5
+ 28
+ 28
+ 28
+ 28
+ 28
+ 28.5
+ 29.25
+ 30.75
+ 31
+ 30
+ 28.5
+ 28.25
+ 25.75
+ 25.25
+ 25
+ 25
+ 25.5
+ 25.5
+ 24.25
+ 24.25
+ 19.5
+ 15.75
+ 14.75
+ 13.75
+ 13
+ 12.75
+ 12.75
+ 12.75
+ 13
+ 13.25
+ 13.25
+ 14
+ 14
+ 14
+ 14
+ 13.5
+ 13.25
+ 14
+ 14
+ 13.5
+ 13.25
+ 13
+ 13.25
+ 13
+ 12.5
+ 12
+ 10.75
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.75
+ 10.75
+ 11
+ 11
+ 11
+ 11.25
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 12.25
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.25
+ 11.75
+ 11.5
+ 11
+ 14
+ 12.75
+ 13.5
+ 14.25
+ 15
+ 15
+ 16.25
+ 17
+ 20.25
+ 21.5
+ 21
+ 21
+ 21.5
+ 22.25
+ 22.5
+ 23
+ 22.75
+ 22.75
+ 22.25
+ 22
+ 22.75
+ 22.75
+ 22.5
+ 22.5
+ 22.25
+ 22
+ 22
+ 21.75
+ 21.5
+ 21.5
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.75
+ 22.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 24
+ 24.75
+ 24.75
+ 25
+ 25.5
+ 25.75
+ 26
+ 26.25
+ 26.75
+ 26.75
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.75
+ 27
+ 27.25
+ 27.5
+ 29.75
+ 32.25
+ 33.5
+ 34.5
+ 35
+ 35.5
+ 36.25
+ 36.25
+ 36.25
+ 36
+ 36
+ 36
+ 36
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.25
+ 31.5
+ 29.75
+ 29.5
+ 25
+ 23
+ 21.5
+ 20
+ 18
+ 17
+ 16.25
+ 16.5
+ 16.75
+ 15.75
+ 15.5
+ 15
+ 14.5
+ 14.25
+ 14.25
+ 13.5
+ 13.5
+ 14.5
+ 14.75
+ 14.5
+ 14
+ 13.5
+ 12.75
+ 13
+ 12.75
+ 12
+ 12
+ 11.75
+ 11.25
+ 11
+ 11
+ 11.25
+ 11.75
+ 12.75
+ 13.5
+ 13.75
+ 13.25
+ 12.75
+ 12.75
+ 16.5
+ 17.75
+ 18.25
+ 18.25
+ 18.25
+ 17.25
+ 16
+ 16
+ 15.75
+ 15.75
+ 15.25
+ 15.25
+ 16.25
+ 16.75
+ 16.5
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 15.75
+ 15.75
+ 18
+ 18
+ 18
+ 18.5
+ 19.25
+ 17.75
+ 17.25
+ 16.25
+ 17
+ 17.25
+ 17.25
+ 17.5
+ 17.75
+ 18
+ 18
+ 18.5
+ 18
+ 17.75
+ 17.5
+ 17.5
+ 17.25
+ 17
+ 17.25
+ 17.5
+ 17.75
+ 17.5
+ 17.5
+ 18.75
+ 19
+ 19
+ 19.5
+ 23.25
+ 23.5
+ 23.75
+ 23.25
+ 23.5
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24.25
+ 24.25
+ 24.25
+ 24.5
+ 25
+ 25.25
+ 25.5
+ 23.75
+ 23.5
+ 23.25
+ 23
+ 22.75
+ 23.25
+ 24.5
+ 25.75
+ 25
+ 24.75
+ 24.5
+ 24.25
+ 24
+ 22.5
+ 21.75
+ 21.25
+ 21.75
+ 22
+ 31.5
+ 31.75
+ 31.75
+ 31.75
+ 31.75
+ 32.25
+ 31
+ 28.75
+ 28.25
+ 27.75
+ 27.5
+ 28.25
+ 28
+ 28.25
+ 31.25
+ 39.25
+ 39
+ 39
+ 38.75
+ 38.5
+ 37.5
+ 37.25
+ 37.5
+ 37.5
+ 36.5
+ 33.75
+ 33
+ 32.25
+ 32
+ 32
+ 27.75
+ 24.25
+ 22.25
+ 21.25
+ 19.25
+ 20.5
+ 21.5
+ 21
+ 20.5
+ 20.5
+ 19.75
+ 17.25
+ 15
+ 15.5
+ 17.5
+ 18.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.75
+ 16.75
+ 16.25
+ 16
+ 16
+ 16.25
+ 16.5
+ 17.75
+ 18.75
+ 19.25
+ 19.25
+ 19
+ 19
+ 19.75
+ 17.75
+ 17.5
+ 16.5
+ 16
+ 15.75
+ 15.25
+ 15
+ 15
+ 15.25
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.25
+ 15
+ 15
+ 15
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 14
+ 13.75
+ 13.25
+ 13.5
+ 13.25
+ 13.25
+ 13.25
+ 13.25
+ 13.75
+ 13.25
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13.25
+ 13.75
+ 14
+ 14.25
+ 14.5
+ 14.75
+ 14.75
+ 15.75
+ 16.5
+ 16.5
+ 17.25
+ 16.25
+ 16
+ 16
+ 15.5
+ 15.25
+ 14.5
+ 14.25
+ 13.75
+ 13.5
+ 14
+ 14.25
+ 14.75
+ 13.5
+ 14
+ 15.25
+ 15.75
+ 17
+ 18.5
+ 19.75
+ 22.25
+ 25
+ 25.5
+ 26.25
+ 31.5
+ 36.25
+ 31
+ 30
+ 29.75
+ 29.75
+ 30.25
+ 31.5
+ 32.25
+ 28.75
+ 25.75
+ 25.75
+ 26
+ 26
+ 26
+ 27
+ 28.25
+ 29
+ 30.75
+ 31.25
+ 30.5
+ 30
+ 29.25
+ 29
+ 29.5
+ 29.75
+ 29.75
+ 29.25
+ 28.75
+ 28
+ 28.75
+ 29.5
+ 29
+ 29
+ 28.75
+ 28.75
+ 28
+ 28
+ 28
+ 28
+ 28.25
+ 28.5
+ 28.5
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 29.75
+ 30
+ 30
+ 30
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 29.75
+ 29.25
+ 29.25
+ 29.5
+ 30
+ 30.5
+ 31
+ 32.25
+ 32.25
+ 30.25
+ 27.75
+ 30.25
+ 32
+ 32.25
+ 32.25
+ 33
+ 34.5
+ 34.25
+ 33.5
+ 32.5
+ 32.25
+ 32
+ 32
+ 32
+ 33.25
+ 33.75
+ 31.75
+ 30.5
+ 30
+ 29.5
+ 29
+ 29
+ 29
+ 29
+ 27.75
+ 27
+ 26.5
+ 26.25
+ 26
+ 26.5
+ 27.75
+ 27.25
+ 26.75
+ 25.5
+ 26.25
+ 26.25
+ 26.25
+ 25.5
+ 25
+ 25
+ 24.5
+ 23.5
+ 21.75
+ 21
+ 14.25
+ 13.75
+ 13
+ 12.75
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.5
+ 12.25
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11
+ 10.75
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 11
+ 11
+ 11
+ 11
+ 11
+ 11
+ 11.25
+ 11.25
+ 11.75
+ 12.25
+ 12.75
+ 13
+ 14.25
+ 16
+ 17
+ 18.25
+ 19.25
+ 21.5
+ 22.5
+ 23.25
+ 23.75
+ 24.5
+ 24.5
+ 24.5
+ 24
+ 24
+ 24
+ 24.25
+ 24.5
+ 25
+ 25.75
+ 26
+ 26.5
+ 27
+ 27
+ 27.25
+ 27.25
+ 27.75
+ 28
+ 27.75
+ 27.25
+ 27.75
+ 28.5
+ 29
+ 29
+ 28.75
+ 28.5
+ 28.25
+ 27.75
+ 27.5
+ 28.25
+ 28.75
+ 29.25
+ 29.5
+ 28.25
+ 27.5
+ 26.25
+ 22.5
+ 22
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.5
+ 21.25
+ 21
+ 20
+ 19.5
+ 19.25
+ 19.25
+ 18.75
+ 18.5
+ 18.25
+ 16.75
+ 16
+ 14.25
+ 14.25
+ 14.5
+ 14.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 13
+ 13
+ 13
+ 13.5
+ 13.25
+ 14.5
+ 15
+ 14.25
+ 14
+ 14
+ 14
+ 14.25
+ 13.5
+ 14.25
+ 14.25
+ 15.5
+ 16
+ 15.75
+ 16
+ 15.75
+ 15
+ 15
+ 15
+ 15.75
+ 16.5
+ 16.25
+ 16
+ 16.25
+ 17
+ 16.75
+ 16.75
+ 16.75
+ 16.75
+ 17
+ 16.75
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 16.25
+ 15.25
+ 15
+ 13.75
+ 13.5
+ 14.25
+ 14.5
+ 14.25
+ 14
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 13.25
+ 13.25
+ 13.25
+ 13
+ 12.75
+ 12.75
+ 11.25
+ 10.5
+ 10
+ 10
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8
+ 8
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.25
+ 5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5
+ 4.5
+ 4.5
+ 4.25
+ 3.5
+ 3
+ 3
+ 3
+ 3.25
+ 3
+ 3
+ 3
+ 2.75
+ 2.5
+ 2.5
+ 2.25
+ 2.25
+ 2.25
+ 2
+ 1.75
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 1.75
+ 1
+ 1
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1.5
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 2
+ 2
+ 2
+ 2.25
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 3.25
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5
+ 5.25
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 6.75
+ 6.75
+ 7
+ 6.5
+ 5.75
+ 4.25
+ 4
+ 3.5
+ 3.25
+ 2.75
+ 2.25
+ 1.75
+ 1.75
+ 1.5
+ 1.25
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.5
+ 2
+ 1.5
+ 1
+ 1
+ 1
+ 1.25
+ 1.25
+ 1.5
+ 1.75
+ 1.75
+ 1.75
+ 1.25
+ 1
+ 1
+ 1.25
+ 2.5
+ 2.25
+ 1.75
+ 2
+ 2
+ 2
+ 2.25
+ 2.75
+ 3
+ 3
+ 2.75
+ 3.25
+ 3.5
+ 3.25
+ 4.5
+ 4.75
+ 4.75
+ 5
+ 5.5
+ 6.25
+ 7
+ 7.5
+ 7.75
+ 7.75
+ 7.5
+ 7.5
+ 7
+ 7
+ 7
+ 7.5
+ 7.75
+ 8.75
+ 9.75
+ 10
+ 10.25
+ 11
+ 11
+ 11
+ 9.75
+ 10
+ 10.25
+ 11
+ 11.25
+ 11.75
+ 11.5
+ 11.25
+ 11.25
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 12
+ 12.5
+ 13.25
+ 13.75
+ 15.25
+ 15.5
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.25
+ 15
+ 15.5
+ 15
+ 14.25
+ 13.25
+ 13
+ 12.25
+ 9.25
+ 9
+ 8.25
+ 4.5
+ 3.5
+ 2.75
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 4.5
+ 5
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9.25
+ 9.5
+ 9.75
+ 9.5
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9.75
+ 9.75
+ 9.75
+ 10
+ 10
+ 10
+ 10
+ 12.75
+ 14.25
+ 14.5
+ 15
+ 15
+ 16
+ 16.25
+ 15.5
+ 15.25
+ 14.25
+ 12.75
+ 11.25
+ 11.25
+ 11
+ 10.75
+ 10.5
+ 9.75
+ 9.25
+ 8.75
+ 8.25
+ 7.75
+ 7
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.75
+ 5.75
+ 5.25
+ 4.75
+ 4.25
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 6.5
+ 7.5
+ 8.5
+ 9.5
+ 10
+ 10.5
+ 11
+ 11.75
+ 13.75
+ 14.25
+ 14.5
+ 15
+ 14.75
+ 15
+ 15.5
+ 16.25
+ 16.75
+ 17.25
+ 19.25
+ 19.5
+ 20
+ 20
+ 21
+ 22
+ 22.5
+ 22.75
+ 22.5
+ 21.75
+ 21.5
+ 20.25
+ 19.25
+ 19
+ 19
+ 19
+ 19
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19
+ 19
+ 19
+ 18.5
+ 18.25
+ 17.75
+ 17.75
+ 17.75
+ 18
+ 19.25
+ 19.5
+ 20.25
+ 20.5
+ 20.75
+ 21
+ 21
+ 21
+ 21
+ 20.75
+ 20.75
+ 20.5
+ 20.25
+ 19.75
+ 19.25
+ 18.75
+ 18.25
+ 17.5
+ 17
+ 16.5
+ 15.75
+ 14.5
+ 13.75
+ 13.25
+ 12.5
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.5
+ 8.25
+ 8.25
+ 7.75
+ 7.5
+ 7.75
+ 7.25
+ 6.25
+ 5.5
+ 5.5
+ 5.25
+ 4.25
+ 3.75
+ 3
+ 2.25
+ 2.25
+ 2
+ 2
+ 2
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 2
+ 2.25
+ 2.25
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.25
+ 2.25
+ 2.25
+ 2
+ 2
+ 2
+ 2
+ 1.5
+ 1.5
+ 1.5
+ 1.5
+ 1.5
+ 2.25
+ 2
+ 2
+ 2
+ 2.75
+ 3.5
+ 3.25
+ 3.25
+ 2.75
+ 2.5
+ 3
+ 3
+ 2.5
+ 2.25
+ 2.5
+ 2
+ 2
+ 2
+ 2.5
+ 2
+ 1.5
+ 1.75
+ 1.75
+ 1.25
+ 2
+ 2
+ 2.25
+ 3
+ 2.5
+ 2.25
+ 2.25
+ 2
+ 2
+ 2.75
+ 2.75
+ 2.75
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 4.25
+ 4.75
+ 5.25
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5
+ 5.25
+ 6.5
+ 7.5
+ 8.75
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 9
+ 9.5
+ 9
+ 9.25
+ 10.5
+ 11.5
+ 12.5
+ 13
+ 13.75
+ 14.25
+ 14.75
+ 15.5
+ 16.25
+ 16.5
+ 16
+ 14.5
+ 13.5
+ 13
+ 12.25
+ 11.5
+ 11
+ 10
+ 9.75
+ 9.5
+ 9.25
+ 8.5
+ 8.5
+ 8.25
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 6.75
+ 6.75
+ 7
+ 7.75
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7
+ 7.25
+ 7.5
+ 8
+ 8
+ 8
+ 7.75
+ 7.25
+ 6.5
+ 6.25
+ 6
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 8.25
+ 7.25
+ 7
+ 6.25
+ 6
+ 6.25
+ 6.25
+ 6.75
+ 7
+ 6.75
+ 6.75
+ 7.25
+ 7.5
+ 8.25
+ 8.75
+ 8.5
+ 8.5
+ 8.75
+ 9.75
+ 10.25
+ 10.5
+ 10.75
+ 11.25
+ 13.25
+ 14
+ 15.25
+ 15.75
+ 16.5
+ 16.75
+ 17
+ 17.25
+ 17.5
+ 17.5
+ 17.5
+ 17.75
+ 18
+ 18
+ 18.25
+ 19
+ 18.75
+ 19
+ 19.25
+ 20
+ 20.5
+ 18.5
+ 18.25
+ 17.75
+ 17
+ 16.75
+ 16.25
+ 16
+ 16
+ 16.75
+ 17
+ 16.75
+ 16.75
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 16
+ 16
+ 15.75
+ 13.25
+ 13
+ 12.75
+ 10.75
+ 10.5
+ 10.25
+ 10.5
+ 11.5
+ 12
+ 12.5
+ 12.5
+ 12.75
+ 12.5
+ 11.75
+ 12
+ 13
+ 13.25
+ 13.25
+ 13.5
+ 13.5
+ 13
+ 12.5
+ 12
+ 12.25
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12
+ 9.5
+ 9.25
+ 9
+ 8.25
+ 7.5
+ 7.25
+ 7.75
+ 8
+ 8
+ 8.25
+ 7.75
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.5
+ 9.5
+ 12.5
+ 12.75
+ 12.75
+ 13.5
+ 14.25
+ 14.5
+ 14.5
+ 13.5
+ 13
+ 14
+ 15.5
+ 17
+ 19.75
+ 22.5
+ 24
+ 26
+ 32.75
+ 34.5
+ 35.5
+ 35.5
+ 36.25
+ 36.5
+ 35.75
+ 35.75
+ 35
+ 34
+ 34
+ 32.25
+ 23.5
+ 20.25
+ 19.25
+ 18.25
+ 16.25
+ 14.5
+ 13.75
+ 13.25
+ 10.5
+ 8.25
+ 7.25
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 8.75
+ 11.5
+ 13
+ 14
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14.75
+ 14.75
+ 14.75
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 13.75
+ 13.75
+ 14
+ 15.5
+ 16
+ 15.5
+ 15.25
+ 14.5
+ 13.75
+ 12
+ 10.75
+ 10.5
+ 10.25
+ 10
+ 9.5
+ 8.75
+ 8.25
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.5
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.75
+ 6.5
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.5
+ 5
+ 4.75
+ 4
+ 3.5
+ 3
+ 3.25
+ 3.25
+ 2.5
+ 2
+ 1.5
+ 2
+ 3
+ 3
+ 3
+ 3.25
+ 4
+ 5.5
+ 6.25
+ 6.75
+ 6.5
+ 8.5
+ 9
+ 8.75
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 3.5
+ 3.5
+ 3.25
+ 3.75
+ 5.5
+ 7
+ 8.75
+ 10
+ 11
+ 12.5
+ 13.5
+ 14.25
+ 14.5
+ 14.5
+ 14.75
+ 14.75
+ 14.5
+ 14
+ 15.5
+ 13.75
+ 13.75
+ 15.25
+ 15.5
+ 14
+ 14.25
+ 12.25
+ 10.75
+ 9
+ 8.75
+ 8.5
+ 6
+ 6
+ 6
+ 7.75
+ 8
+ 8
+ 7.75
+ 8
+ 8
+ 8
+ 7.75
+ 8
+ 6.75
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.5
+ 4.25
+ 4.25
+ 4.5
+ 5.25
+ 5.25
+ 5.5
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4
+ 4
+ 3.25
+ 3
+ 4
+ 4.75
+ 5.5
+ 6.25
+ 9.25
+ 9.75
+ 10.5
+ 10.25
+ 9.5
+ 7.75
+ 6.5
+ 5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 2
+ 2.25
+ 2.75
+ 3
+ 3.5
+ 3.5
+ 4.25
+ 5
+ 5
+ 5.5
+ 4.75
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 6.75
+ 6.25
+ 5.75
+ 5.25
+ 4.25
+ 3
+ 2.25
+ 1.75
+ 0.25
+ 1.25
+ 1.75
+ 2.25
+ 2.25
+ 2
+ 1.75
+ 1.25
+ 2
+ 2
+ 1
+ 1.25
+ 1.75
+ 1
+ 1
+ 1.25
+ 1
+ 1.25
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.25
+ 1
+ 1
+ 1
+ 2
+ 2
+ 2
+ 2.75
+ 2.5
+ 2.5
+ 2.25
+ 4
+ 4.5
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 4.75
+ 3.75
+ 4.5
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 8.25
+ 8.75
+ 8.75
+ 10.5
+ 11.5
+ 12.75
+ 18.25
+ 20.25
+ 20.75
+ 19.5
+ 20
+ 20
+ 20.25
+ 19.75
+ 19.75
+ 20
+ 20.75
+ 21
+ 21.75
+ 21.75
+ 22.5
+ 23.5
+ 24.25
+ 25.25
+ 26.5
+ 27.25
+ 28.5
+ 29.75
+ 30
+ 29.75
+ 28.75
+ 28
+ 27.25
+ 27
+ 26.75
+ 26.5
+ 26.75
+ 27.25
+ 28.25
+ 28.75
+ 29
+ 29
+ 28.5
+ 27.25
+ 26.5
+ 26.25
+ 25.75
+ 25
+ 22
+ 22
+ 22
+ 21.75
+ 20.75
+ 19.75
+ 18.25
+ 16
+ 13.75
+ 12.25
+ 11
+ 10
+ 9
+ 7.75
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.5
+ 7.25
+ 6.5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4
+ 3
+ 4
+ 4
+ 4
+ 5.5
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.75
+ 8
+ 8
+ 8.75
+ 12
+ 11.5
+ 9.5
+ 11.25
+ 10.5
+ 10
+ 9.25
+ 8.5
+ 8
+ 8.25
+ 9.25
+ 10
+ 10.25
+ 10.5
+ 11
+ 12.5
+ 13.75
+ 15.25
+ 14.75
+ 14.25
+ 14.25
+ 12.5
+ 12.25
+ 12
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 10.75
+ 11
+ 11
+ 10.75
+ 10.75
+ 11.25
+ 10.25
+ 10.5
+ 11
+ 11
+ 10.75
+ 10.5
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 9.5
+ 5.5
+ 4.75
+ 4.75
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 4.5
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 4.25
+ 5.25
+ 5.25
+ 5.75
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 7.25
+ 8.5
+ 9.75
+ 12.5
+ 13.5
+ 14.5
+ 15.25
+ 16
+ 19.5
+ 22.5
+ 22.75
+ 23
+ 28.25
+ 30
+ 30.25
+ 30.5
+ 30.5
+ 31.5
+ 33.25
+ 33
+ 33.25
+ 33.25
+ 33.25
+ 33
+ 32.75
+ 30.5
+ 28.75
+ 27.25
+ 26.5
+ 26.25
+ 26
+ 26.25
+ 26
+ 25.75
+ 25.5
+ 25.5
+ 25.25
+ 24.75
+ 24.5
+ 24.25
+ 23.75
+ 22.75
+ 21.25
+ 20.5
+ 20.25
+ 20.5
+ 20.5
+ 20.75
+ 21
+ 21.25
+ 21.25
+ 21
+ 20.25
+ 19
+ 18.25
+ 18
+ 17.75
+ 15.75
+ 14.5
+ 14.25
+ 14
+ 13.75
+ 13.5
+ 13
+ 12.5
+ 12.25
+ 12.25
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 13
+ 13
+ 13.5
+ 13
+ 12
+ 11
+ 6.25
+ 4
+ 4
+ 3.5
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3.25
+ 3
+ 3.25
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 5.25
+ 5.75
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.25
+ 6.75
+ 6.5
+ 5.75
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 4.75
+ 7.25
+ 7.5
+ 7.5
+ 8
+ 7.5
+ 6
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5.5
+ 5.75
+ 4.5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6.5
+ 6.25
+ 5
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 5.25
+ 5.25
+ 5.5
+ 5.25
+ 5.25
+ 4.75
+ 4.75
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.25
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 3
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 4
+ 4
+ 5.25
+ 5.5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.5
+ 8
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 10
+ 10.25
+ 10.5
+ 10.25
+ 10.25
+ 9.75
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 11
+ 11.25
+ 11.25
+ 11.5
+ 12
+ 13.75
+ 14.75
+ 15.5
+ 16.25
+ 16.25
+ 16.25
+ 11.5
+ 12.75
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 13
+ 13.25
+ 14
+ 14.25
+ 15.25
+ 17.75
+ 18.5
+ 18
+ 17.75
+ 18.75
+ 18.5
+ 17
+ 14
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 13.75
+ 14.75
+ 14.75
+ 15.25
+ 15.5
+ 15.25
+ 15
+ 15
+ 14.5
+ 14.25
+ 14.25
+ 15.25
+ 16.25
+ 17.5
+ 18.5
+ 20.5
+ 21.75
+ 22.25
+ 22.5
+ 22.75
+ 23
+ 22.75
+ 21.75
+ 20.75
+ 20
+ 18.25
+ 15.5
+ 15
+ 14.25
+ 14
+ 13.75
+ 13.25
+ 12.25
+ 12.25
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.5
+ 12.5
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 13.5
+ 14.25
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 18.5
+ 20
+ 21.5
+ 21.75
+ 21.75
+ 21.25
+ 20.25
+ 16
+ 14.75
+ 14.75
+ 14.75
+ 15
+ 15.5
+ 16
+ 16
+ 17
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 16.5
+ 16.75
+ 18
+ 17.75
+ 17
+ 16.5
+ 15.25
+ 16
+ 16.5
+ 17.75
+ 17.5
+ 17
+ 17.75
+ 17.75
+ 18
+ 18
+ 18.5
+ 18.5
+ 19
+ 19
+ 19
+ 19.25
+ 19.5
+ 22.75
+ 23
+ 25.75
+ 24.75
+ 22.5
+ 22.5
+ 23
+ 23.25
+ 22.75
+ 21.25
+ 19
+ 18.25
+ 18.25
+ 17.75
+ 16.75
+ 16.25
+ 16
+ 14.75
+ 12.75
+ 12.5
+ 12.5
+ 13
+ 14
+ 13.75
+ 13.5
+ 13
+ 12.5
+ 12.25
+ 12
+ 12.25
+ 12.5
+ 13.25
+ 13.75
+ 14
+ 14.5
+ 14.75
+ 15.75
+ 17.5
+ 16.5
+ 15.75
+ 19
+ 21.5
+ 20
+ 21
+ 21.75
+ 19.5
+ 19.75
+ 19.75
+ 20
+ 20.25
+ 20.25
+ 20.25
+ 20.5
+ 21
+ 22
+ 21.5
+ 19
+ 19.75
+ 20
+ 20
+ 20
+ 20.25
+ 20
+ 20.25
+ 20.25
+ 16.75
+ 16
+ 13.5
+ 13
+ 14.5
+ 17.75
+ 20.25
+ 21.5
+ 22
+ 21.75
+ 21.25
+ 20.75
+ 20
+ 19.5
+ 18.75
+ 18
+ 17.75
+ 17.5
+ 17.5
+ 16.75
+ 16.5
+ 16
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 16.25
+ 16.75
+ 17
+ 17.5
+ 16.5
+ 13.5
+ 13
+ 13.25
+ 13.75
+ 13.75
+ 14
+ 14
+ 14
+ 14.25
+ 15.25
+ 15.5
+ 16.75
+ 18.5
+ 18
+ 15.75
+ 16.5
+ 18.75
+ 22.5
+ 25
+ 27.25
+ 28.5
+ 29.25
+ 31.5
+ 31.5
+ 32.5
+ 31.5
+ 29.5
+ 29
+ 28.5
+ 28
+ 27
+ 27.25
+ 27
+ 27.5
+ 27.75
+ 27.75
+ 27.25
+ 26.75
+ 26.75
+ 27
+ 27.25
+ 27.5
+ 27.75
+ 26
+ 26.25
+ 25
+ 24.25
+ 23.75
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 22
+ 24
+ 22.5
+ 22.75
+ 24
+ 23.75
+ 23.75
+ 23.75
+ 23.5
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 23.5
+ 23.25
+ 23
+ 23.75
+ 23.75
+ 23.75
+ 22.5
+ 24.75
+ 27.75
+ 27.75
+ 27.25
+ 26.25
+ 26
+ 26
+ 26
+ 26
+ 26
+ 27.25
+ 28.25
+ 30.25
+ 31.25
+ 31.75
+ 32
+ 32.75
+ 33.75
+ 33.75
+ 33.5
+ 33.25
+ 33
+ 32.75
+ 32.5
+ 31.25
+ 30.5
+ 28.25
+ 27.25
+ 26.25
+ 26
+ 25.25
+ 24.5
+ 23.5
+ 21.5
+ 20.75
+ 20.5
+ 20.5
+ 20.5
+ 20.25
+ 19.75
+ 19.75
+ 19.25
+ 19.25
+ 19
+ 18.5
+ 19.25
+ 19.5
+ 19
+ 18.5
+ 18
+ 16.75
+ 16.5
+ 16.25
+ 16.5
+ 16.75
+ 19
+ 19
+ 18
+ 14.5
+ 14.5
+ 14.25
+ 14
+ 13.5
+ 13.75
+ 14
+ 14
+ 14
+ 14.5
+ 14.75
+ 15
+ 16.25
+ 17
+ 17.5
+ 17.5
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 15.25
+ 15
+ 14.75
+ 14.75
+ 12.25
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12
+ 10.25
+ 10.5
+ 11
+ 11
+ 11
+ 11
+ 10.5
+ 10
+ 11.5
+ 17.5
+ 18.75
+ 20
+ 19
+ 16.5
+ 15
+ 11.5
+ 11.5
+ 11.5
+ 12.25
+ 12.5
+ 12.5
+ 12.25
+ 12.25
+ 12
+ 11.75
+ 11
+ 10.75
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 11
+ 11.25
+ 11.25
+ 11.25
+ 11.25
+ 11
+ 11
+ 10.75
+ 10.5
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.75
+ 11
+ 11.75
+ 12.75
+ 12.75
+ 13
+ 12.75
+ 12.75
+ 12.25
+ 12.25
+ 12.25
+ 12
+ 12
+ 11
+ 10
+ 9.75
+ 10
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.25
+ 9.5
+ 8
+ 7
+ 6.75
+ 6.25
+ 6.25
+ 6.25
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 5
+ 4.75
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3
+ 3.25
+ 3.5
+ 4.25
+ 4.25
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 4.25
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 4
+ 5
+ 5
+ 4.5
+ 4.5
+ 5.5
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4.5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 5
+ 5.25
+ 5.25
+ 5
+ 4.75
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 5.5
+ 7.5
+ 6
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4.25
+ 6.5
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.75
+ 5.25
+ 7.5
+ 7.75
+ 8
+ 8
+ 8.25
+ 8.25
+ 9
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 7.25
+ 7
+ 7
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 6
+ 7.5
+ 8.25
+ 8.75
+ 9.25
+ 9.5
+ 10.25
+ 10.75
+ 9.75
+ 10
+ 10
+ 10
+ 15.5
+ 15
+ 14.25
+ 11.75
+ 10
+ 9.75
+ 9.5
+ 9
+ 8.5
+ 7.5
+ 6.75
+ 6.25
+ 6
+ 6
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 7.5
+ 8
+ 8.5
+ 9
+ 9.25
+ 9.75
+ 10
+ 10.25
+ 10.25
+ 9.25
+ 9.25
+ 9
+ 8
+ 8
+ 8
+ 6
+ 6.25
+ 6
+ 6.25
+ 6.75
+ 7
+ 7
+ 7.25
+ 7
+ 6.5
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.75
+ 6
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 6.25
+ 6.25
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 3.25
+ 2.25
+ 2.5
+ 2.5
+ 2.75
+ 3.25
+ 3.5
+ 3.5
+ 4.25
+ 4.75
+ 5
+ 5
+ 5
+ 4.75
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.25
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.75
+ 5
+ 5.5
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 8
+ 11
+ 11.5
+ 11.5
+ 10.75
+ 10
+ 9
+ 8.75
+ 6.5
+ 6
+ 5.75
+ 6
+ 6
+ 6
+ 6.25
+ 6.5
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6
+ 6.25
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.75
+ 7.75
+ 8
+ 8
+ 8.5
+ 8.25
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7
+ 7.75
+ 7.75
+ 8.5
+ 9.75
+ 9.75
+ 9
+ 8.25
+ 7.25
+ 6.75
+ 6.25
+ 5.5
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.5
+ 5.5
+ 5.75
+ 6
+ 6
+ 6
+ 7
+ 7.25
+ 7.5
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 6.75
+ 6
+ 7
+ 7
+ 8.25
+ 8.5
+ 9
+ 8.5
+ 8.25
+ 8.25
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.5
+ 6
+ 5.75
+ 6
+ 6.25
+ 6.25
+ 7
+ 7.25
+ 11.5
+ 12.5
+ 13.25
+ 17
+ 17.25
+ 17
+ 16.75
+ 14.25
+ 13.75
+ 12.75
+ 11
+ 9.5
+ 8
+ 7.25
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 6
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 4.75
+ 4.75
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 8.5
+ 9.75
+ 9.5
+ 7.25
+ 7.25
+ 6.5
+ 6.25
+ 6
+ 6.25
+ 6
+ 5.25
+ 5
+ 4.75
+ 4.25
+ 4.5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 6
+ 6.75
+ 6.25
+ 6
+ 6
+ 6
+ 6.5
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 6
+ 6
+ 6.5
+ 7
+ 7.25
+ 7.25
+ 7.5
+ 7.5
+ 8.25
+ 8.25
+ 8.5
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 8
+ 8.25
+ 8.5
+ 9.25
+ 10.25
+ 10.75
+ 11.75
+ 12.5
+ 13
+ 13.5
+ 15.5
+ 16
+ 16.5
+ 16.75
+ 17
+ 17.25
+ 17.5
+ 17
+ 17
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 16.25
+ 16
+ 14.25
+ 13
+ 12.5
+ 12.25
+ 11.75
+ 11.5
+ 11.25
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 11
+ 11.25
+ 11.25
+ 12.25
+ 12.75
+ 13.75
+ 14.75
+ 14.75
+ 14.5
+ 14.75
+ 14.75
+ 15
+ 15
+ 15.25
+ 15.25
+ 15.5
+ 15.75
+ 19
+ 19.5
+ 20
+ 20.25
+ 20.75
+ 21
+ 21
+ 20.75
+ 20.25
+ 19.75
+ 16
+ 15
+ 14
+ 13
+ 10.5
+ 8
+ 6.5
+ 5.25
+ 5
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.5
+ 4.25
+ 3.5
+ 4.75
+ 4.25
+ 3.75
+ 3
+ 2.5
+ 3.75
+ 6.75
+ 6.25
+ 6
+ 5.75
+ 5.75
+ 6
+ 6.25
+ 7
+ 6.5
+ 5.25
+ 5
+ 4.25
+ 4
+ 4.5
+ 5
+ 5.25
+ 5.75
+ 8.25
+ 8.75
+ 8.75
+ 8.5
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.75
+ 8
+ 8.25
+ 9.5
+ 10.75
+ 11
+ 11.25
+ 11.5
+ 12.5
+ 13
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 13.75
+ 14
+ 15.25
+ 18
+ 18
+ 17.75
+ 16.75
+ 12.25
+ 8.75
+ 8.5
+ 8.5
+ 9
+ 9.25
+ 9.25
+ 9.5
+ 11.75
+ 11.5
+ 13
+ 19
+ 15.25
+ 13
+ 14.5
+ 18.75
+ 19.25
+ 19.25
+ 17
+ 11.25
+ 11.5
+ 6.25
+ 2.75
+ 6.5
+ 10.5
+ 12.5
+ 14.5
+ 16
+ 15
+ 14
+ 13
+ 11
+ 9.25
+ 8.5
+ 6.75
+ 6.5
+ 6.25
+ 5.5
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 7
+ 7.5
+ 8.25
+ 8
+ 8
+ 7.5
+ 7
+ 7
+ 7.25
+ 7.5
+ 6
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 3.75
+ 3.25
+ 2.75
+ 2.25
+ 2
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 5.75
+ 6.25
+ 7
+ 6.75
+ 6.25
+ 5.75
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4
+ 3.75
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 4
+ 3.75
+ 4
+ 4
+ 4.5
+ 4.75
+ 5.25
+ 7.75
+ 9.25
+ 14
+ 13.25
+ 13.5
+ 14.5
+ 15.75
+ 20.25
+ 15.25
+ 13.75
+ 13.5
+ 11.5
+ 9.5
+ 8.75
+ 8.5
+ 7
+ 7
+ 7
+ 7
+ 6.5
+ 6.25
+ 5.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5
+ 7.75
+ 10.75
+ 11.75
+ 12
+ 11.5
+ 11
+ 8.75
+ 8
+ 7.75
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 8.25
+ 8.75
+ 9.25
+ 10.75
+ 11.5
+ 12.25
+ 13.75
+ 14.75
+ 15.25
+ 15.5
+ 15.5
+ 15
+ 14
+ 13.75
+ 13
+ 12.5
+ 10.25
+ 8.75
+ 8.25
+ 7.25
+ 5
+ 2.75
+ 1.5
+ 1
+ 0
+ -0.5
+ -1.75
+ -2.5
+ -4
+ -4
+ -3.25
+ -1.75
+ 0.75
+ 0.75
+ 1
+ 1
+ 0.75
+ 0.5
+ 0.75
+ 0.75
+ 1
+ 1.25
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 2.75
+ 3
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 3.5
+ 4
+ 4.5
+ 4.5
+ 4
+ 3.5
+ 3.25
+ 2.75
+ 2.5
+ 2.25
+ 1.75
+ 1.5
+ 4
+ 4.75
+ 5.5
+ 6
+ 7
+ 7.25
+ 8
+ 8.25
+ 8.75
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 7.5
+ 7.25
+ 6.75
+ 6.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 4.5
+ 4
+ 4.25
+ 4.25
+ 4.75
+ 5
+ 5.75
+ 6
+ 5.75
+ 5.5
+ 4.75
+ 4
+ 3.5
+ 3.25
+ 4.5
+ 5.25
+ 6.25
+ 6.5
+ 7.25
+ 6.5
+ 5.75
+ 5.75
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 7.25
+ 7.25
+ 7.25
+ 7.75
+ 8
+ 8.25
+ 11.25
+ 11.25
+ 11.25
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 12.25
+ 12.25
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 13
+ 13.5
+ 14
+ 13.75
+ 13.75
+ 13.5
+ 13
+ 12.75
+ 12.25
+ 12.25
+ 12
+ 10.75
+ 10.75
+ 10.25
+ 10
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 10.75
+ 10.5
+ 9.75
+ 9.25
+ 8.75
+ 8.5
+ 8.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 7
+ 7.75
+ 8
+ 8.25
+ 8.75
+ 9.75
+ 10
+ 10.5
+ 10.75
+ 11
+ 11.25
+ 11.75
+ 11.75
+ 12
+ 12
+ 12.5
+ 13.5
+ 14
+ 14.5
+ 16.75
+ 17.25
+ 17.75
+ 18.5
+ 19.5
+ 21.5
+ 24
+ 26.75
+ 28
+ 31
+ 33.75
+ 35
+ 40.5
+ 41.25
+ 41.5
+ 41.75
+ 41.75
+ 41.75
+ 42
+ 42
+ 41.75
+ 41.75
+ 41.75
+ 41.75
+ 40.75
+ 40.25
+ 40.25
+ 40.5
+ 41
+ 40
+ 40.5
+ 40.75
+ 41
+ 41
+ 40.5
+ 40
+ 39
+ 38.75
+ 38
+ 37.75
+ 37.5
+ 37.25
+ 37.25
+ 37.25
+ 36.75
+ 36.25
+ 35.75
+ 35.5
+ 35.25
+ 35
+ 32.75
+ 32.75
+ 32.75
+ 32.75
+ 32.75
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.5
+ 32.5
+ 32.75
+ 33
+ 33.5
+ 33.75
+ 34.75
+ 38.5
+ 40.75
+ 42.25
+ 43.5
+ 42.75
+ 41.25
+ 40.5
+ 39
+ 38.75
+ 39.25
+ 40
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40
+ 40
+ 39.75
+ 39.5
+ 37
+ 35.75
+ 34.5
+ 32.5
+ 28.75
+ 26.5
+ 26
+ 26
+ 26
+ 26.25
+ 26
+ 25.75
+ 25.75
+ 25.75
+ 25.25
+ 25.25
+ 25
+ 25
+ 25
+ 25.5
+ 25.75
+ 25.75
+ 25.25
+ 25
+ 24.5
+ 24.25
+ 23.5
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 21.75
+ 21.5
+ 21.5
+ 21.5
+ 21.75
+ 22
+ 22
+ 21.75
+ 21.75
+ 21.75
+ 21.5
+ 21.5
+ 21.5
+ 21.75
+ 21.5
+ 21.5
+ 23
+ 24
+ 24
+ 24
+ 23.75
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 23.75
+ 24
+ 23.75
+ 23
+ 22.5
+ 22.25
+ 22
+ 21.5
+ 21.25
+ 21
+ 20.75
+ 20.5
+ 20
+ 20
+ 20.25
+ 20.75
+ 21.5
+ 22
+ 22
+ 21.75
+ 21.25
+ 21
+ 21
+ 20.75
+ 20.75
+ 21
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21
+ 21
+ 21.25
+ 22.25
+ 24.5
+ 25
+ 25.5
+ 26.75
+ 27
+ 26.75
+ 26.75
+ 24.5
+ 23
+ 22.5
+ 22
+ 22.75
+ 22.75
+ 23
+ 24
+ 23.75
+ 22.5
+ 22.25
+ 22
+ 22
+ 20.75
+ 20.75
+ 20.75
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.25
+ 19.75
+ 19.75
+ 19.5
+ 19.25
+ 19.25
+ 19
+ 19.25
+ 22.5
+ 22.5
+ 23
+ 23
+ 23
+ 23.25
+ 23.75
+ 24.5
+ 24.5
+ 24.75
+ 25
+ 25
+ 26
+ 26
+ 26
+ 25.75
+ 26
+ 27.25
+ 29
+ 31
+ 31.5
+ 31.75
+ 32.75
+ 33
+ 33.25
+ 33.25
+ 33.25
+ 33.5
+ 34.25
+ 35.75
+ 36.25
+ 35.75
+ 35.5
+ 35
+ 34.5
+ 33.75
+ 27
+ 26.75
+ 26.75
+ 26.5
+ 31
+ 31.5
+ 31.75
+ 31.75
+ 32.25
+ 33.75
+ 34
+ 34.5
+ 35.25
+ 36.5
+ 37.25
+ 37.5
+ 37.75
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.5
+ 39.25
+ 42.75
+ 44.5
+ 45
+ 45.5
+ 46.25
+ 45.5
+ 43.25
+ 41.75
+ 41
+ 40.5
+ 40
+ 39.5
+ 38.25
+ 37
+ 36.75
+ 33
+ 34.25
+ 41
+ 42.75
+ 44.5
+ 46.25
+ 53.5
+ 54.75
+ 56.75
+ 59
+ 60
+ 62.25
+ 64.25
+ 65.25
+ 66.75
+ 66.5
+ 64.75
+ 61.5
+ 59
+ 57.75
+ 57
+ 54.75
+ 53
+ 52.25
+ 52.25
+ 52.25
+ 52.5
+ 52.5
+ 52.5
+ 52.25
+ 51.5
+ 51.25
+ 47.5
+ 47.25
+ 47
+ 48.25
+ 48.5
+ 48.75
+ 49
+ 49
+ 49.25
+ 49.5
+ 53.25
+ 53.25
+ 53.5
+ 54
+ 55.75
+ 54.75
+ 54.5
+ 47.25
+ 42.25
+ 40.25
+ 36.75
+ 36
+ 35.5
+ 33.25
+ 32.25
+ 32
+ 31.75
+ 31
+ 30.5
+ 29.75
+ 28
+ 27.75
+ 27.75
+ 27.25
+ 26.25
+ 26.25
+ 25.5
+ 25
+ 25.75
+ 27.25
+ 28.75
+ 31
+ 31
+ 31
+ 30.75
+ 29
+ 29.5
+ 29.75
+ 30.25
+ 30.5
+ 30.5
+ 30.75
+ 31
+ 31
+ 31
+ 31.25
+ 31
+ 30.5
+ 30
+ 30
+ 30.25
+ 30.5
+ 31
+ 31.5
+ 31.75
+ 31.25
+ 31
+ 30.5
+ 30.5
+ 31.5
+ 31.75
+ 32.5
+ 33
+ 33
+ 33
+ 32.25
+ 28.5
+ 28.25
+ 28.25
+ 28
+ 27.75
+ 26.75
+ 27
+ 26.75
+ 26.75
+ 26.5
+ 26.5
+ 26.5
+ 27
+ 27.25
+ 27.25
+ 27.25
+ 27.25
+ 27.5
+ 27.5
+ 27.75
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 27.75
+ 27.75
+ 27.75
+ 29
+ 30
+ 31
+ 32.75
+ 34.75
+ 34.5
+ 34
+ 31.75
+ 28.5
+ 27.25
+ 27
+ 29
+ 31
+ 35.25
+ 37.5
+ 37
+ 29
+ 27.5
+ 27.5
+ 30.25
+ 32.75
+ 36
+ 37
+ 36.75
+ 36.5
+ 35.75
+ 34.75
+ 33.75
+ 32.75
+ 34
+ 35.5
+ 34.75
+ 34.75
+ 36.75
+ 37
+ 34
+ 33
+ 32.5
+ 32
+ 31
+ 32.25
+ 31.25
+ 29.75
+ 27.75
+ 26
+ 25
+ 25
+ 25
+ 25
+ 24.5
+ 24.25
+ 23.75
+ 22.75
+ 21.75
+ 21.75
+ 21.25
+ 20.5
+ 20
+ 18.75
+ 17.75
+ 17
+ 15.5
+ 15.5
+ 15.25
+ 15
+ 14.75
+ 14.75
+ 14.25
+ 12.75
+ 11.25
+ 10.75
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.75
+ 11.5
+ 12
+ 12.5
+ 12.75
+ 12.75
+ 13
+ 13.25
+ 13.75
+ 13.75
+ 14.5
+ 17.75
+ 18.5
+ 19
+ 19
+ 18.5
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 17.75
+ 18.25
+ 18.25
+ 18.75
+ 18.75
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 18.5
+ 19
+ 21.25
+ 21.75
+ 22.5
+ 23
+ 23.5
+ 24
+ 24.25
+ 24.5
+ 24.75
+ 25
+ 27
+ 27
+ 26.75
+ 26
+ 23.75
+ 24.25
+ 24.75
+ 25.25
+ 26
+ 25.25
+ 25
+ 24.75
+ 24.25
+ 22.5
+ 22
+ 18.25
+ 18.25
+ 18.25
+ 18.75
+ 19
+ 19.25
+ 19.5
+ 20
+ 21
+ 19
+ 18.5
+ 17.75
+ 16.75
+ 13.5
+ 11.75
+ 7
+ 7
+ 6.75
+ 6.75
+ 7
+ 6.75
+ 6.25
+ 6
+ 7.5
+ 6.75
+ 7.25
+ 7.25
+ 7
+ 7.5
+ 7.75
+ 7.25
+ 7.25
+ 7
+ 7
+ 7.5
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8
+ 8
+ 8.25
+ 8.75
+ 9.25
+ 9.75
+ 10.25
+ 11
+ 11.25
+ 12
+ 12.5
+ 12.25
+ 12
+ 12.5
+ 13.25
+ 14
+ 15
+ 17.25
+ 19
+ 17.5
+ 13.5
+ 12.5
+ 12.25
+ 12.25
+ 12.25
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11
+ 11
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 12
+ 12.25
+ 13
+ 13.5
+ 13.75
+ 14
+ 14.25
+ 14.5
+ 15.25
+ 15
+ 14.5
+ 14.25
+ 13.75
+ 13.5
+ 13
+ 13
+ 13.75
+ 14.75
+ 15.25
+ 16
+ 16.5
+ 16.75
+ 17
+ 19.5
+ 21.25
+ 21.75
+ 22.75
+ 23.5
+ 24
+ 22.25
+ 20.5
+ 19.25
+ 19
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 16
+ 15.5
+ 16.25
+ 16.5
+ 16.5
+ 15.75
+ 14.75
+ 11.5
+ 11
+ 9.5
+ 8.25
+ 8
+ 8
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 6
+ 5
+ 5
+ 5.75
+ 4.25
+ 3.25
+ 3
+ 3
+ 3
+ 2.75
+ 2.5
+ 2.5
+ 2
+ 2
+ 1.75
+ 2.75
+ 3.25
+ 4.5
+ 5.5
+ 5.5
+ 4
+ 2
+ 2
+ 2
+ 2.25
+ 2
+ 2
+ 2
+ 2
+ 4
+ 4.25
+ 5.5
+ 6.25
+ 6.25
+ 6.25
+ 5.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6.25
+ 7.25
+ 9
+ 8.75
+ 8.25
+ 8.25
+ 8
+ 7.75
+ 7.5
+ 7
+ 6.75
+ 6
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.75
+ 5
+ 5
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 6
+ 5.25
+ 4.5
+ 3.75
+ 3.25
+ 3
+ 3
+ 2.75
+ 2.75
+ 1.75
+ 2
+ 2.5
+ 3.75
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 5
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6.25
+ 6.75
+ 7
+ 6.75
+ 6.5
+ 6.25
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 5.25
+ 2.75
+ 2.5
+ 2.75
+ 3.75
+ 4.5
+ 5.5
+ 6.25
+ 6.75
+ 6.25
+ 5.75
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 5.75
+ 5.75
+ 6
+ 6.25
+ 6.25
+ 5.75
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 3
+ 3.25
+ 3.25
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 5
+ 5.5
+ 6.25
+ 6.75
+ 7.25
+ 8
+ 8
+ 8
+ 7.5
+ 6.75
+ 6
+ 5.75
+ 3.75
+ 3.5
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 3.25
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.75
+ 2
+ 2.25
+ 3.5
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 2.5
+ 2.25
+ 2.5
+ 2.75
+ 3.25
+ 3.75
+ 4
+ 3.5
+ 4
+ 4
+ 4
+ 4
+ 4.5
+ 8
+ 9
+ 7
+ 5.75
+ 5.5
+ 5.25
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4.25
+ 6.75
+ 6
+ 5.75
+ 5.25
+ 4.75
+ 4.5
+ 3.75
+ 3
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 5
+ 6.25
+ 6.5
+ 6.75
+ 6.5
+ 6.5
+ 7.75
+ 8.5
+ 8.75
+ 8.75
+ 8.5
+ 8.25
+ 8
+ 8
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 9.25
+ 9.5
+ 9.5
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 9
+ 9.25
+ 9.75
+ 10
+ 10.5
+ 11.25
+ 11.5
+ 12
+ 13.25
+ 14.5
+ 16.5
+ 18.25
+ 19.5
+ 20.25
+ 20.25
+ 19.5
+ 18.75
+ 18.25
+ 18.25
+ 18.5
+ 18.5
+ 18.5
+ 19
+ 19.25
+ 19.5
+ 19.25
+ 19.5
+ 19.75
+ 20
+ 17.75
+ 19.25
+ 20.25
+ 21.25
+ 22
+ 23.5
+ 23.75
+ 24
+ 24
+ 23.25
+ 22.5
+ 20.5
+ 19.5
+ 18.75
+ 18.25
+ 18.25
+ 18
+ 17.25
+ 16
+ 13.5
+ 12
+ 11.25
+ 11
+ 11
+ 10.75
+ 11.25
+ 14.5
+ 15
+ 15.5
+ 16
+ 16.75
+ 17
+ 17
+ 17.5
+ 17.75
+ 18.25
+ 18.5
+ 18.5
+ 18.5
+ 18.5
+ 18.75
+ 19
+ 19.25
+ 19.25
+ 19
+ 18.5
+ 18
+ 18
+ 18.5
+ 18.5
+ 17.5
+ 17.5
+ 17
+ 16
+ 14.25
+ 13.25
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 13
+ 12.75
+ 10.5
+ 12
+ 13
+ 13.5
+ 14.25
+ 16
+ 16.25
+ 16.75
+ 16.75
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17.25
+ 17.25
+ 17.25
+ 20.25
+ 20.5
+ 20.75
+ 21
+ 21.5
+ 21.25
+ 21.25
+ 21.25
+ 21.75
+ 22.75
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24.5
+ 25
+ 25.5
+ 26
+ 26.75
+ 28.25
+ 29.75
+ 31.5
+ 31.5
+ 31.5
+ 33
+ 33.75
+ 35
+ 36.25
+ 36.75
+ 38
+ 39.5
+ 40.75
+ 42
+ 42.5
+ 45
+ 46
+ 48
+ 50
+ 51
+ 52.75
+ 54
+ 55
+ 55.5
+ 55.5
+ 52.5
+ 50.75
+ 51.75
+ 53
+ 52.75
+ 52.25
+ 51.75
+ 50.75
+ 50.75
+ 49.25
+ 48.5
+ 49.75
+ 51.25
+ 52.25
+ 53.5
+ 54.75
+ 56
+ 57
+ 57.75
+ 58.25
+ 59.25
+ 59.75
+ 60.25
+ 61.75
+ 63.5
+ 65
+ 67
+ 68.5
+ 68
+ 66.25
+ 66
+ 66
+ 65.75
+ 61.5
+ 58.25
+ 54.75
+ 53
+ 51.5
+ 50.75
+ 49.5
+ 49.75
+ 52.5
+ 54.75
+ 56.5
+ 58.25
+ 62.25
+ 63.25
+ 63.25
+ 63.25
+ 62.75
+ 62
+ 61
+ 59.5
+ 58
+ 55.75
+ 54.25
+ 53.25
+ 52.5
+ 51
+ 50.25
+ 50.75
+ 52.5
+ 53.25
+ 54.5
+ 54.75
+ 55.25
+ 56.25
+ 56.75
+ 57.5
+ 58.5
+ 60
+ 61.25
+ 61.75
+ 62
+ 62.25
+ 62.5
+ 63
+ 65.25
+ 68.5
+ 69.5
+ 70.25
+ 70.75
+ 71.75
+ 72.75
+ 74.5
+ 76
+ 77
+ 77.5
+ 78
+ 78
+ 78.25
+ 79.75
+ 79.75
+ 79.5
+ 78.25
+ 76.75
+ 76
+ 72
+ 71.25
+ 71.25
+ 71.25
+ 69.25
+ 68.5
+ 67.75
+ 66.5
+ 65.75
+ 65.5
+ 65.5
+ 65.5
+ 65.5
+ 66
+ 66.5
+ 68.75
+ 75
+ 76.75
+ 77
+ 76.75
+ 75.75
+ 76.5
+ 73.25
+ 69
+ 65.25
+ 59.75
+ 50.5
+ 50.5
+ 51.5
+ 53
+ 53.25
+ 53.75
+ 56.5
+ 59
+ 60
+ 59
+ 58.25
+ 57.25
+ 56.75
+ 56.5
+ 56.25
+ 56
+ 57.25
+ 58.5
+ 59
+ 60
+ 60
+ 60.75
+ 62.25
+ 62.5
+ 62
+ 61.25
+ 63.5
+ 64
+ 63.5
+ 61.5
+ 60.75
+ 62
+ 64.25
+ 66
+ 68
+ 70
+ 72.25
+ 75.25
+ 78.5
+ 80.75
+ 82
+ 84
+ 85.75
+ 85.5
+ 84.5
+ 81
+ 80.75
+ 80
+ 76
+ 75
+ 74.75
+ 74.5
+ 74.25
+ 74.25
+ 74.25
+ 74
+ 73.25
+ 72
+ 76
+ 76
+ 75.75
+ 76.5
+ 77.5
+ 78
+ 77.75
+ 70.75
+ 65.5
+ 60.75
+ 57.75
+ 56.25
+ 55.75
+ 55.5
+ 55
+ 55
+ 54.25
+ 53
+ 52.25
+ 51.5
+ 50.5
+ 50.5
+ 50.5
+ 50
+ 49.25
+ 48.25
+ 44.75
+ 43.25
+ 42.5
+ 42.5
+ 43
+ 43.75
+ 44.5
+ 46.5
+ 47.75
+ 48
+ 47.75
+ 48
+ 48.25
+ 47.75
+ 48
+ 48.25
+ 46.25
+ 45.5
+ 43.75
+ 40.75
+ 32.75
+ 31.25
+ 29.25
+ 28.5
+ 26.5
+ 25.75
+ 25.5
+ 25.25
+ 24.5
+ 24.25
+ 24.25
+ 25
+ 25.5
+ 25.75
+ 26
+ 26.25
+ 26.5
+ 27.25
+ 27.5
+ 27.25
+ 27
+ 26.5
+ 25.75
+ 26
+ 26.75
+ 27.5
+ 28.75
+ 28.5
+ 28
+ 27.25
+ 25.5
+ 25.25
+ 21.75
+ 19.25
+ 18.5
+ 17.75
+ 17.5
+ 17.25
+ 17.5
+ 17.75
+ 17.5
+ 20.25
+ 19.5
+ 18
+ 17
+ 14.75
+ 13.25
+ 12.25
+ 11.75
+ 9
+ 8.25
+ 8.25
+ 8.25
+ 9.5
+ 11.25
+ 10.25
+ 8.5
+ 6.5
+ 6
+ 4.25
+ 1.75
+ 1.5
+ 0.5
+ 0.5
+ 1.25
+ 3
+ 3.75
+ 4.75
+ 3
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 2
+ 2.25
+ 2.5
+ 2.5
+ 3
+ 3
+ 3.75
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 5.5
+ 6.75
+ 8.25
+ 9.75
+ 10.5
+ 16
+ 16
+ 14.25
+ 12.25
+ 11.75
+ 10.25
+ 11
+ 12
+ 12.75
+ 14
+ 15.5
+ 18.25
+ 20.25
+ 22.5
+ 24
+ 27.75
+ 29.75
+ 29.25
+ 28.5
+ 24.75
+ 26.5
+ 27.25
+ 27
+ 27
+ 27.25
+ 27.5
+ 29
+ 39.25
+ 43.5
+ 44
+ 43.25
+ 42.5
+ 41.75
+ 39.5
+ 37.25
+ 36.25
+ 35.25
+ 33.5
+ 31.5
+ 30.25
+ 31.75
+ 29.25
+ 27.75
+ 25.75
+ 25.75
+ 27.25
+ 28.25
+ 28.5
+ 28.5
+ 24.75
+ 19.75
+ 20.5
+ 18.75
+ 18
+ 17.25
+ 16.75
+ 16.5
+ 16.5
+ 16.75
+ 17.5
+ 18
+ 18
+ 17.25
+ 16.75
+ 15.25
+ 11.25
+ 12.25
+ 14.5
+ 14.75
+ 19.25
+ 22
+ 28
+ 45.5
+ 50
+ 55.5
+ 42.5
+ 43
+ 41.75
+ 42
+ 41.5
+ 41.75
+ 42
+ 42.25
+ 41.75
+ 40.75
+ 38.75
+ 38
+ 36.5
+ 35.75
+ 36
+ 36.25
+ 36.5
+ 36.25
+ 36.25
+ 36.25
+ 36
+ 36
+ 36
+ 36
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.5
+ 35.5
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35
+ 36
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 37.25
+ 38
+ 38.5
+ 38.75
+ 39
+ 39.25
+ 38.75
+ 38.5
+ 38.25
+ 37.5
+ 37.25
+ 37
+ 36.5
+ 36
+ 35.5
+ 35.5
+ 35.25
+ 35.25
+ 35
+ 35
+ 35.75
+ 36.75
+ 37.75
+ 39
+ 41
+ 42
+ 42.5
+ 43.25
+ 43.25
+ 42.5
+ 42
+ 41.5
+ 41.75
+ 42
+ 42
+ 42.25
+ 42.75
+ 43.75
+ 46.75
+ 47.5
+ 46.25
+ 44.5
+ 43
+ 42
+ 42.5
+ 44.5
+ 45
+ 45
+ 45.75
+ 46
+ 48.25
+ 49
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 49.5
+ 49.5
+ 49.25
+ 48.5
+ 47.5
+ 46.75
+ 46.25
+ 45
+ 42.25
+ 41.25
+ 41
+ 41.25
+ 42.5
+ 43.25
+ 43.5
+ 45.5
+ 45.75
+ 49.5
+ 50.75
+ 56.25
+ 57.75
+ 59.5
+ 64.25
+ 65.25
+ 65.75
+ 70
+ 71
+ 72.25
+ 73
+ 73.25
+ 73.5
+ 73.75
+ 75
+ 74.25
+ 73
+ 72.25
+ 71.75
+ 71.25
+ 72.75
+ 74
+ 75
+ 75.25
+ 75.5
+ 75.5
+ 75
+ 74.5
+ 74
+ 72.75
+ 71
+ 70.25
+ 69.25
+ 68.25
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66.75
+ 67
+ 67
+ 66.75
+ 66
+ 65.25
+ 64.25
+ 62.75
+ 60.75
+ 58.75
+ 56.25
+ 53.5
+ 50.5
+ 46.25
+ 38.5
+ 36
+ 33.25
+ 28.75
+ 27
+ 25
+ 23.75
+ 23.5
+ 22
+ 18.5
+ 15
+ 14
+ 13
+ 12.5
+ 12
+ 11.75
+ 10.75
+ 11
+ 12.5
+ 16.5
+ 17
+ 17
+ 16.25
+ 14.25
+ 15.75
+ 20
+ 19.75
+ 20.5
+ 21.25
+ 21.5
+ 25.75
+ 26.25
+ 26.5
+ 26.5
+ 26.5
+ 25.25
+ 23
+ 22.75
+ 22
+ 20.75
+ 20
+ 19.25
+ 18.5
+ 18.5
+ 18.5
+ 18.75
+ 19.25
+ 20.75
+ 21.75
+ 23
+ 25.5
+ 27.25
+ 28.25
+ 28.5
+ 28.25
+ 27.75
+ 24.75
+ 24.25
+ 23.5
+ 22.75
+ 23.25
+ 24.25
+ 28.5
+ 26.75
+ 26.25
+ 25.75
+ 24.25
+ 23.5
+ 22
+ 21.75
+ 22
+ 22.25
+ 22.5
+ 22.5
+ 15.75
+ 15.5
+ 15
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3
+ 3
+ 3
+ 3
+ 3.5
+ 4.25
+ 4.75
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.75
+ 6.25
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 5.75
+ 5.25
+ 4.75
+ 3.25
+ 2.75
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.25
+ 2.25
+ 2
+ 2
+ 2.5
+ 3
+ 3
+ 3.25
+ 3.25
+ 3
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2
+ 1.75
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2.25
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 3.5
+ 3.75
+ 4
+ 5
+ 6.75
+ 7.25
+ 7.75
+ 8
+ 8.5
+ 9
+ 9.5
+ 10.25
+ 10.25
+ 10.75
+ 12.25
+ 12
+ 11.5
+ 11.25
+ 11
+ 10.25
+ 7.75
+ 7
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.5
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7.5
+ 7.5
+ 7
+ 6.75
+ 6.25
+ 5.5
+ 5.25
+ 5
+ 4.5
+ 4.5
+ 7.75
+ 9
+ 14.25
+ 16
+ 17.25
+ 16.25
+ 15.25
+ 14.25
+ 13
+ 10
+ 7.25
+ 5
+ 4.75
+ 4
+ 6.5
+ 7
+ 9.25
+ 5.25
+ 5.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6.75
+ 7.5
+ 8
+ 8
+ 8.25
+ 8.25
+ 8
+ 10.25
+ 10.75
+ 10.75
+ 14.75
+ 15.5
+ 16
+ 16.25
+ 16.25
+ 16.25
+ 15.5
+ 15.5
+ 16.25
+ 16
+ 15.75
+ 15
+ 11.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.75
+ 11
+ 10.5
+ 10.5
+ 9.25
+ 9.5
+ 9.75
+ 10
+ 11.25
+ 11.25
+ 11.25
+ 12.25
+ 12.25
+ 12.5
+ 12.25
+ 12.5
+ 13
+ 13.25
+ 13.25
+ 13.75
+ 14
+ 15.25
+ 18
+ 19
+ 19.75
+ 20
+ 21.75
+ 22.5
+ 23
+ 23.25
+ 24.25
+ 26.75
+ 26.75
+ 28.25
+ 29
+ 32.25
+ 33.25
+ 33.5
+ 33.75
+ 34
+ 36.75
+ 37.5
+ 37.5
+ 37.5
+ 37.75
+ 37.75
+ 37.25
+ 37
+ 36.75
+ 36.5
+ 36.25
+ 36.25
+ 36.5
+ 36.5
+ 36.5
+ 37.5
+ 38.25
+ 38.25
+ 38
+ 38.5
+ 39.25
+ 39.5
+ 39.75
+ 40
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40
+ 39.75
+ 39.5
+ 39.25
+ 39
+ 39
+ 38.75
+ 38.5
+ 38.5
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.75
+ 38.75
+ 38.75
+ 39.25
+ 39.75
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40.75
+ 42.25
+ 42.75
+ 42.75
+ 43.75
+ 44.5
+ 45
+ 45.5
+ 46
+ 46.25
+ 47
+ 47.5
+ 47.75
+ 48
+ 48.5
+ 48.75
+ 49.25
+ 50.5
+ 51.5
+ 52
+ 54
+ 55.25
+ 55.75
+ 56.5
+ 57.25
+ 57.5
+ 58.25
+ 58.5
+ 58.75
+ 59
+ 58.75
+ 58.5
+ 58.5
+ 58.75
+ 59
+ 59.5
+ 59.75
+ 62.75
+ 64.5
+ 64.5
+ 72.75
+ 75
+ 79.25
+ 81
+ 82
+ 82.5
+ 84.25
+ 86.5
+ 88.25
+ 87.75
+ 87.75
+ 87.75
+ 88
+ 87.5
+ 87.75
+ 88.25
+ 88.25
+ 88.5
+ 87
+ 84.25
+ 83.25
+ 82
+ 81.75
+ 81
+ 79.5
+ 79.5
+ 79.75
+ 80
+ 80
+ 80
+ 79.75
+ 80
+ 80.25
+ 80.75
+ 81.5
+ 82.25
+ 81
+ 75.75
+ 73
+ 72
+ 70.5
+ 69.75
+ 66
+ 64.5
+ 62.25
+ 60.75
+ 60.5
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.5
+ 60.5
+ 60.75
+ 61.25
+ 61
+ 60.75
+ 60.75
+ 60.75
+ 60.5
+ 60.25
+ 60.5
+ 60
+ 59
+ 59.25
+ 59
+ 58.75
+ 59
+ 61.5
+ 62.25
+ 61
+ 59.5
+ 58.75
+ 55.5
+ 63.25
+ 63.5
+ 64.75
+ 65.25
+ 65.5
+ 66.5
+ 68
+ 73.5
+ 75.25
+ 76.5
+ 77.5
+ 79
+ 79.75
+ 82.25
+ 83.5
+ 83.75
+ 83
+ 82.5
+ 82.5
+ 82.25
+ 82.5
+ 83.75
+ 84
+ 85
+ 85
+ 85
+ 85
+ 83.5
+ 80
+ 76.5
+ 75
+ 74.25
+ 70.25
+ 67
+ 59.5
+ 60.75
+ 60.5
+ 60.25
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59.75
+ 59.5
+ 59.25
+ 59
+ 58.75
+ 58.25
+ 58.25
+ 57.25
+ 57
+ 56.25
+ 57.5
+ 63.25
+ 65.75
+ 66
+ 68.5
+ 71.5
+ 72.75
+ 76
+ 77.75
+ 78.5
+ 78.5
+ 78
+ 77.5
+ 73.5
+ 68.25
+ 66.5
+ 65
+ 64.5
+ 63.5
+ 61.5
+ 56.75
+ 63.25
+ 63
+ 62.75
+ 56.5
+ 49.25
+ 48.5
+ 47.75
+ 46.5
+ 46.25
+ 45.75
+ 45.5
+ 45.25
+ 45.5
+ 46
+ 46
+ 47.25
+ 48.5
+ 50
+ 50
+ 49
+ 45.75
+ 45.75
+ 45
+ 41.25
+ 40
+ 40.5
+ 40
+ 39.75
+ 40.75
+ 42.5
+ 43.25
+ 42.25
+ 41.5
+ 42
+ 42
+ 39.5
+ 37.75
+ 37.75
+ 39.25
+ 39.25
+ 39.5
+ 39.5
+ 40
+ 40.5
+ 40.25
+ 39.5
+ 39
+ 38.5
+ 37.25
+ 35.5
+ 33.25
+ 32
+ 31
+ 29.25
+ 27.5
+ 27
+ 27
+ 27.25
+ 27.5
+ 35.75
+ 37.75
+ 37.75
+ 36.5
+ 35.25
+ 35.75
+ 35
+ 31.75
+ 29.5
+ 25.5
+ 25.5
+ 26.25
+ 27
+ 29.5
+ 31.75
+ 33.75
+ 36.25
+ 39
+ 38.5
+ 36
+ 31
+ 23.75
+ 20
+ 20.75
+ 21.75
+ 22.75
+ 24
+ 26.25
+ 26.75
+ 26.75
+ 26.5
+ 26.25
+ 21.75
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.5
+ 21.5
+ 22
+ 22.25
+ 22.5
+ 22.75
+ 23
+ 23.75
+ 24.5
+ 25.25
+ 25.5
+ 25.75
+ 25.75
+ 25.5
+ 25
+ 24.25
+ 23.5
+ 22.75
+ 22
+ 22
+ 22
+ 22.5
+ 23.25
+ 24
+ 26.5
+ 26.25
+ 24.75
+ 21
+ 18
+ 17.75
+ 17.25
+ 17
+ 16.75
+ 16.75
+ 16.5
+ 18.5
+ 20.5
+ 22.5
+ 27
+ 29
+ 29.25
+ 28.5
+ 28
+ 25.75
+ 24
+ 24.25
+ 28.5
+ 25.5
+ 16.25
+ 15.25
+ 13.75
+ 13.25
+ 12.75
+ 13.25
+ 14
+ 12.5
+ 11.75
+ 11
+ 10.5
+ 11.75
+ 12.5
+ 12.75
+ 15.25
+ 16.75
+ 20.75
+ 20.5
+ 19.5
+ 19
+ 20.75
+ 22.75
+ 23.25
+ 24
+ 24.5
+ 25
+ 25
+ 26
+ 28
+ 29
+ 31.75
+ 33
+ 33.75
+ 31.5
+ 36.75
+ 41.25
+ 46.75
+ 50
+ 50
+ 51.75
+ 53.5
+ 54.5
+ 54.75
+ 55.25
+ 56.25
+ 57.25
+ 58.25
+ 57.5
+ 55.75
+ 53.5
+ 51
+ 49
+ 48.25
+ 47
+ 47
+ 47
+ 47.25
+ 47
+ 46.75
+ 46.75
+ 46.5
+ 46.25
+ 46
+ 46
+ 45.75
+ 45.5
+ 43.75
+ 46
+ 46.5
+ 50
+ 51.5
+ 48.75
+ 47.5
+ 45.25
+ 42.5
+ 44.25
+ 45.75
+ 46.75
+ 44
+ 41
+ 39
+ 36.75
+ 36.25
+ 35.5
+ 34.5
+ 34
+ 34.25
+ 34
+ 34.5
+ 35
+ 34.75
+ 34.75
+ 35
+ 26.25
+ 24
+ 24.25
+ 25.5
+ 26.75
+ 26.75
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 27
+ 27.25
+ 27.25
+ 27.5
+ 27.5
+ 27.5
+ 27.75
+ 27.75
+ 27.5
+ 27.5
+ 27.5
+ 27.25
+ 27.25
+ 27.5
+ 27.75
+ 27.75
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 27.5
+ 27.5
+ 28
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28.5
+ 28.5
+ 28.75
+ 28.75
+ 29
+ 29.25
+ 29.5
+ 30.75
+ 31.5
+ 31.75
+ 32.25
+ 34.25
+ 36.25
+ 36.75
+ 37.25
+ 37.75
+ 37.75
+ 37.75
+ 37.75
+ 37.5
+ 36.75
+ 36.75
+ 36.75
+ 36.75
+ 35
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 33.75
+ 33
+ 32.75
+ 32
+ 31.25
+ 30.75
+ 30
+ 29.25
+ 28.25
+ 28
+ 27
+ 25.25
+ 24.75
+ 24.25
+ 24.25
+ 24.25
+ 24.25
+ 24
+ 24
+ 24
+ 24.25
+ 25
+ 26.25
+ 27.5
+ 28
+ 28.5
+ 27.75
+ 26
+ 25.25
+ 25
+ 24.5
+ 24.75
+ 24.75
+ 23.5
+ 23
+ 20.75
+ 19.75
+ 18.25
+ 16
+ 15.5
+ 15.5
+ 15
+ 15
+ 15
+ 14.75
+ 13.5
+ 13
+ 13.25
+ 14
+ 15.5
+ 16.25
+ 16.5
+ 17
+ 17.25
+ 17.75
+ 18.5
+ 19.75
+ 21
+ 21.25
+ 21
+ 21
+ 21
+ 21.25
+ 21.75
+ 22.75
+ 22.25
+ 20.75
+ 20
+ 19.5
+ 18.5
+ 17
+ 17.25
+ 17.5
+ 17.25
+ 16.75
+ 16.75
+ 15
+ 14.5
+ 13.75
+ 14.25
+ 14
+ 12
+ 14.75
+ 17.25
+ 18.75
+ 17.5
+ 15.75
+ 12.75
+ 9.5
+ 7.75
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 5.5
+ 6
+ 7.25
+ 9
+ 9.25
+ 9.75
+ 10
+ 10.75
+ 10.75
+ 10.25
+ 11
+ 11.75
+ 12.5
+ 14
+ 15.75
+ 16.5
+ 16.75
+ 17.25
+ 17.75
+ 18
+ 18.25
+ 18.75
+ 19.5
+ 19.75
+ 20.25
+ 21.5
+ 22
+ 22
+ 22
+ 22.25
+ 22.25
+ 22.5
+ 22.5
+ 22.5
+ 22.75
+ 22.75
+ 22.5
+ 22.75
+ 22.75
+ 23.75
+ 26.25
+ 27
+ 27.25
+ 28.75
+ 31
+ 31.5
+ 31.75
+ 32.75
+ 33
+ 33
+ 33
+ 33.75
+ 34
+ 34.75
+ 35
+ 35.5
+ 36.25
+ 37.25
+ 38.75
+ 39.75
+ 41
+ 41.75
+ 43.25
+ 44
+ 44.25
+ 44.25
+ 44.25
+ 42.75
+ 45.75
+ 49.5
+ 46.5
+ 44
+ 44.25
+ 47.5
+ 50
+ 51.75
+ 53.75
+ 54.5
+ 55
+ 56
+ 55.75
+ 55.25
+ 54.5
+ 54
+ 54.5
+ 56.25
+ 57.5
+ 61.75
+ 64.5
+ 70
+ 71.5
+ 71.75
+ 73.75
+ 71.25
+ 68.5
+ 68.25
+ 68
+ 68.25
+ 68.75
+ 69
+ 69.5
+ 69.75
+ 69.75
+ 70
+ 70.25
+ 70.25
+ 70.75
+ 71
+ 71.75
+ 72.25
+ 72.75
+ 73
+ 72.75
+ 72.75
+ 72.75
+ 72.75
+ 72.25
+ 72.25
+ 72
+ 72.25
+ 72.5
+ 72.5
+ 72.5
+ 72.5
+ 72.75
+ 72.75
+ 72.5
+ 72.5
+ 72.5
+ 72.5
+ 72.25
+ 71.75
+ 69
+ 68.25
+ 67.5
+ 66.5
+ 64.5
+ 64
+ 63
+ 61.25
+ 60.75
+ 63.25
+ 65
+ 66
+ 66.75
+ 67.25
+ 68.75
+ 69.5
+ 70.25
+ 71.5
+ 74.5
+ 77.25
+ 77.75
+ 78.5
+ 79.75
+ 80.25
+ 80.5
+ 80.75
+ 81.25
+ 82.25
+ 82
+ 82
+ 82
+ 82
+ 81.5
+ 83.5
+ 85.25
+ 86
+ 86
+ 91.25
+ 93.25
+ 94.25
+ 94.25
+ 94.25
+ 94
+ 93.5
+ 92.75
+ 92
+ 92.25
+ 91.75
+ 91
+ 90.25
+ 88.5
+ 87.75
+ 85.75
+ 85.75
+ 88.25
+ 88.25
+ 88.5
+ 89.5
+ 90.25
+ 91
+ 92
+ 93
+ 93
+ 91.75
+ 90.5
+ 90
+ 90
+ 89.5
+ 89.25
+ 89.25
+ 89.5
+ 89.75
+ 90
+ 90
+ 90.5
+ 90.75
+ 93
+ 93.25
+ 92.75
+ 92.5
+ 92
+ 91.5
+ 89.75
+ 89
+ 88
+ 88.5
+ 89
+ 89.25
+ 89.25
+ 88.25
+ 86.75
+ 86.75
+ 86.5
+ 87.25
+ 87.75
+ 87.5
+ 87.25
+ 87.5
+ 87
+ 86
+ 86.25
+ 89.25
+ 83
+ 82
+ 82.25
+ 83
+ 84.25
+ 85
+ 85.25
+ 85.5
+ 85.25
+ 84.5
+ 83.5
+ 82.25
+ 81.5
+ 81.25
+ 81.25
+ 83
+ 84
+ 84.75
+ 84.25
+ 84
+ 83.75
+ 82.75
+ 82
+ 82
+ 83
+ 82.75
+ 82.5
+ 81.75
+ 82.25
+ 82.5
+ 83
+ 83.75
+ 85
+ 86.25
+ 87
+ 87.25
+ 87.25
+ 87.5
+ 88.25
+ 89
+ 90
+ 90.5
+ 90.75
+ 91.25
+ 92.25
+ 93
+ 92.5
+ 92
+ 92
+ 91.75
+ 92
+ 92
+ 89.5
+ 89
+ 88.75
+ 88
+ 87.25
+ 86.5
+ 86.25
+ 85.75
+ 84.5
+ 83.5
+ 82.75
+ 82.25
+ 81.75
+ 81.75
+ 82.5
+ 82.25
+ 82.75
+ 84.5
+ 84.75
+ 85
+ 85
+ 84.75
+ 85
+ 85
+ 85
+ 84.75
+ 85
+ 85
+ 85
+ 84.25
+ 86
+ 86
+ 85.25
+ 83.75
+ 82.75
+ 82.5
+ 82.5
+ 81.75
+ 82
+ 82.5
+ 83
+ 83
+ 83
+ 84.75
+ 85.75
+ 86.25
+ 89.5
+ 91.25
+ 98
+ 100.5
+ 101.25
+ 102
+ 102.75
+ 103.75
+ 104.25
+ 103.25
+ 103.25
+ 103
+ 102.5
+ 101
+ 102.5
+ 103.5
+ 103.75
+ 103.5
+ 103
+ 102.5
+ 102.25
+ 101.5
+ 97
+ 95.25
+ 94.5
+ 94
+ 93.5
+ 93.5
+ 93.25
+ 93.25
+ 93
+ 92.75
+ 92.75
+ 92.5
+ 92
+ 91.75
+ 91.25
+ 90.75
+ 90.25
+ 90
+ 89.5
+ 89.25
+ 88.25
+ 87.5
+ 86.25
+ 83
+ 83.75
+ 83.75
+ 84.5
+ 85.5
+ 86
+ 86
+ 86.25
+ 84.75
+ 82.5
+ 82
+ 83.25
+ 84
+ 83.75
+ 83.5
+ 82.75
+ 82.5
+ 82
+ 81.75
+ 81.25
+ 80.25
+ 79.75
+ 79.25
+ 78.75
+ 78.5
+ 78.25
+ 78.25
+ 78.25
+ 78.25
+ 77.75
+ 77.5
+ 77.25
+ 77
+ 76.75
+ 75.75
+ 75.25
+ 74.75
+ 74
+ 75
+ 75.75
+ 76
+ 76.5
+ 77.5
+ 78.5
+ 79.25
+ 81.75
+ 87.25
+ 92.75
+ 91.25
+ 90.5
+ 90
+ 90
+ 90
+ 90.5
+ 91.25
+ 90.25
+ 90.25
+ 90.75
+ 89.25
+ 85.5
+ 77
+ 71
+ 67.75
+ 64
+ 57.5
+ 54.25
+ 55
+ 56.75
+ 59.5
+ 60.25
+ 60.5
+ 61.5
+ 62
+ 62.25
+ 62.75
+ 68.5
+ 78.75
+ 78
+ 75.75
+ 75
+ 74.5
+ 75
+ 76.75
+ 77.25
+ 78.75
+ 79.75
+ 78.75
+ 77.75
+ 75.25
+ 72.5
+ 69.75
+ 67
+ 66.75
+ 66.5
+ 61.75
+ 56.75
+ 51.25
+ 49.5
+ 47.25
+ 44.5
+ 42.75
+ 40.5
+ 39.75
+ 39.5
+ 39.25
+ 38.5
+ 38
+ 38.75
+ 41.5
+ 45.75
+ 47.75
+ 52
+ 54
+ 54.25
+ 53.25
+ 53.25
+ 53.5
+ 54
+ 54.5
+ 54.75
+ 55.25
+ 55.25
+ 58.75
+ 61.25
+ 62.5
+ 65.75
+ 68.75
+ 72.25
+ 77.5
+ 85.5
+ 88
+ 89.75
+ 91.25
+ 92.75
+ 93.5
+ 93.75
+ 93.75
+ 93.75
+ 92.5
+ 93
+ 95
+ 97
+ 97
+ 96.75
+ 97.5
+ 97.75
+ 97.5
+ 96.75
+ 96.5
+ 95.75
+ 92.5
+ 86.75
+ 86.25
+ 84.75
+ 85
+ 83.5
+ 65.75
+ 62.5
+ 60.5
+ 58.75
+ 57.75
+ 57.25
+ 56
+ 52
+ 45.5
+ 42.75
+ 41.75
+ 41
+ 40.25
+ 39.5
+ 38.5
+ 38.25
+ 37.75
+ 37.75
+ 39.5
+ 40.5
+ 40.75
+ 40.75
+ 39.5
+ 37.75
+ 33
+ 27
+ 29.75
+ 31.25
+ 32
+ 35
+ 33.75
+ 30
+ 28.25
+ 26.75
+ 25.75
+ 25.75
+ 24
+ 24
+ 23.75
+ 23.5
+ 23.25
+ 23
+ 23.5
+ 25
+ 25
+ 25.25
+ 25.75
+ 25
+ 24.25
+ 23.5
+ 23.5
+ 23.5
+ 23
+ 23
+ 22.5
+ 21.5
+ 20
+ 19
+ 19.25
+ 21
+ 22.25
+ 24
+ 27.75
+ 28.25
+ 28.5
+ 29.5
+ 29.5
+ 31
+ 31.5
+ 33
+ 35.75
+ 39.25
+ 47.25
+ 52.25
+ 57
+ 58.75
+ 59.25
+ 59.25
+ 59.5
+ 59.5
+ 60.75
+ 60.5
+ 62
+ 61.75
+ 60
+ 58
+ 58.25
+ 60.75
+ 61.25
+ 61
+ 59.5
+ 59.25
+ 58
+ 57.5
+ 56.75
+ 55.75
+ 54.25
+ 54
+ 54
+ 53.75
+ 53.25
+ 52.25
+ 51.25
+ 50.75
+ 50.5
+ 49.75
+ 49
+ 48.75
+ 48
+ 46.75
+ 46.5
+ 45.5
+ 44.75
+ 43.75
+ 43.25
+ 43
+ 42.75
+ 41.75
+ 40.75
+ 40.25
+ 39.5
+ 39
+ 38.75
+ 39.25
+ 40.5
+ 41
+ 42
+ 43
+ 44
+ 45
+ 47.25
+ 48.5
+ 49
+ 49.75
+ 49.75
+ 50
+ 50.25
+ 50.75
+ 51.5
+ 52
+ 52.25
+ 51.75
+ 51.75
+ 52.25
+ 52.5
+ 52.5
+ 52.25
+ 52.25
+ 52.75
+ 53
+ 53.75
+ 54.75
+ 55.5
+ 56.5
+ 57
+ 56.75
+ 56.5
+ 56
+ 55.75
+ 55.75
+ 56.75
+ 57.75
+ 55.75
+ 53.75
+ 52
+ 51.5
+ 51.25
+ 49.25
+ 47.25
+ 46.5
+ 43.75
+ 42
+ 38
+ 35
+ 34.25
+ 33.5
+ 32.75
+ 31.75
+ 29.75
+ 30
+ 30.25
+ 29.5
+ 28.25
+ 27.75
+ 27
+ 26.25
+ 25.5
+ 24.75
+ 24
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 23.75
+ 24
+ 24.25
+ 25
+ 26
+ 26.25
+ 26.5
+ 27.5
+ 29.25
+ 30.75
+ 31.5
+ 30
+ 29.25
+ 28.25
+ 27.75
+ 27.75
+ 26.25
+ 25.5
+ 25
+ 25.25
+ 25.5
+ 25.75
+ 25
+ 23.25
+ 26.25
+ 27.25
+ 26.5
+ 25.75
+ 22.75
+ 21.75
+ 23.25
+ 23.75
+ 22.75
+ 22.75
+ 22
+ 21.75
+ 21.25
+ 19.75
+ 18.75
+ 14.5
+ 12.25
+ 11.75
+ 11.75
+ 12
+ 12
+ 12.25
+ 13.5
+ 15.75
+ 18.75
+ 19.5
+ 19
+ 16
+ 15.5
+ 17.25
+ 19.25
+ 21.5
+ 23.75
+ 26.5
+ 30.75
+ 32.25
+ 30.5
+ 31
+ 33
+ 37.5
+ 40
+ 41.75
+ 41.75
+ 41.75
+ 42
+ 42
+ 42.25
+ 42.5
+ 42.5
+ 43
+ 43.75
+ 45
+ 46.25
+ 48.25
+ 49
+ 49.75
+ 50
+ 50.25
+ 50.75
+ 51.25
+ 51.25
+ 50.75
+ 50
+ 48.75
+ 44.25
+ 43.25
+ 42.5
+ 42.75
+ 42.75
+ 43.25
+ 44
+ 46
+ 47.25
+ 46.25
+ 44.5
+ 44.5
+ 47.25
+ 48.75
+ 50.25
+ 50
+ 49.5
+ 48.75
+ 47.5
+ 46.75
+ 46.5
+ 46.5
+ 46.25
+ 46.5
+ 46.5
+ 47
+ 53.75
+ 54.75
+ 55.5
+ 58.75
+ 59.5
+ 59
+ 56
+ 53.5
+ 43
+ 40
+ 37.5
+ 37.25
+ 37.5
+ 37.25
+ 34.25
+ 33
+ 29.5
+ 25.75
+ 25.25
+ 26.25
+ 27
+ 20.25
+ 15.25
+ 15
+ 15.5
+ 17.5
+ 18
+ 18
+ 13
+ 8.5
+ 11.75
+ 8.25
+ 6.75
+ 5.5
+ 5
+ 4.75
+ 5.5
+ 6
+ 6.5
+ 7.5
+ 8.25
+ 9
+ 9.75
+ 10.75
+ 11.5
+ 11.5
+ 11.75
+ 11.5
+ 11
+ 9.75
+ 6.75
+ 6.75
+ 6
+ 9.25
+ 9.5
+ 10.25
+ 11.5
+ 15.25
+ 18
+ 20
+ 21.25
+ 22.75
+ 24.75
+ 23
+ 24.25
+ 24
+ 23.5
+ 23
+ 22.75
+ 23
+ 23
+ 23.25
+ 23
+ 22.25
+ 21.75
+ 23.5
+ 23
+ 23.5
+ 24
+ 23.75
+ 23.75
+ 23.5
+ 23.5
+ 23.5
+ 25.75
+ 25.25
+ 22.5
+ 22.75
+ 21
+ 19.75
+ 19.5
+ 21.5
+ 22.5
+ 22.25
+ 21
+ 19
+ 16.25
+ 10.75
+ 9.5
+ 10.25
+ 17
+ 18
+ 16.75
+ 16.25
+ 15.5
+ 13.5
+ 11.5
+ 10.75
+ 11
+ 11.75
+ 12.5
+ 13.5
+ 13.75
+ 14
+ 13.75
+ 13.75
+ 13.25
+ 12.75
+ 12.25
+ 11.75
+ 10.75
+ 9
+ 8
+ 8
+ 8
+ 7.75
+ 7.5
+ 8
+ 8.75
+ 9.75
+ 10.25
+ 10.25
+ 10.25
+ 12.25
+ 12.5
+ 12.5
+ 13
+ 13.75
+ 12.5
+ 12.25
+ 12
+ 12
+ 12
+ 12.25
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.25
+ 12.25
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11.25
+ 11
+ 10.75
+ 7.75
+ 3.75
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 17.75
+ 18.5
+ 20.5
+ 21
+ 21.25
+ 21.25
+ 21.5
+ 21.75
+ 22
+ 22.25
+ 22.25
+ 21.75
+ 19.75
+ 19.5
+ 19.5
+ 19.25
+ 19
+ 18.75
+ 20
+ 21.75
+ 23
+ 27.25
+ 28.5
+ 28.75
+ 28
+ 27.5
+ 27
+ 26.5
+ 25.25
+ 25.25
+ 25.5
+ 26.25
+ 27
+ 28.25
+ 28.5
+ 28.75
+ 29.25
+ 29.5
+ 28.25
+ 27
+ 24.5
+ 19.75
+ 17.25
+ 16.25
+ 14.25
+ 14.5
+ 14.75
+ 15.25
+ 16
+ 12.25
+ 11.25
+ 11
+ 11
+ 10.5
+ 11.25
+ 12.75
+ 13.25
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 14.5
+ 14.75
+ 16
+ 17.5
+ 19
+ 19.25
+ 20.5
+ 23.25
+ 24
+ 24
+ 24
+ 23.75
+ 23.25
+ 22.5
+ 21.75
+ 21.25
+ 20.75
+ 19.75
+ 17.5
+ 15.5
+ 15.25
+ 14.5
+ 14
+ 13.5
+ 13
+ 12.25
+ 11.75
+ 10
+ 11.5
+ 12.75
+ 14.25
+ 14.75
+ 15.25
+ 15.25
+ 14
+ 13.25
+ 11.5
+ 10.75
+ 10.25
+ 9.75
+ 10
+ 10
+ 10.75
+ 11.25
+ 12
+ 13
+ 14.25
+ 12.5
+ 14
+ 16.25
+ 16
+ 14.75
+ 12.75
+ 12
+ 10.75
+ 9.25
+ 7.75
+ 8.25
+ 9
+ 9.25
+ 10
+ 11
+ 11.25
+ 10
+ 8
+ 7.25
+ 6.5
+ 5.75
+ 5.25
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4.5
+ 4.75
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 4.75
+ 4.25
+ 4
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3
+ 3
+ 3
+ 2.75
+ 4.75
+ 7
+ 6.75
+ 5.75
+ 5.5
+ 5
+ 4.5
+ 4.25
+ 3
+ 5.25
+ 5.75
+ 6
+ 6.25
+ 6.5
+ 5.25
+ 4
+ 3.5
+ 3.5
+ 4
+ 4.75
+ 5.25
+ 6.25
+ 7
+ 8.25
+ 10.25
+ 11.5
+ 12.75
+ 14
+ 15.75
+ 16.5
+ 16
+ 13.75
+ 14.25
+ 14
+ 13.25
+ 12.5
+ 11.25
+ 10.5
+ 9.5
+ 9
+ 8.25
+ 8.25
+ 11.25
+ 13.25
+ 13.25
+ 13.25
+ 14.5
+ 16.75
+ 17.75
+ 19.25
+ 20.25
+ 21
+ 22
+ 24
+ 22.5
+ 18
+ 16.25
+ 14.5
+ 12.75
+ 10.25
+ 8.75
+ 7.75
+ 7
+ 6.75
+ 6
+ 6
+ 6
+ 5.75
+ 6
+ 5.75
+ 5
+ 5
+ 6.75
+ 9.5
+ 12
+ 13.5
+ 14.75
+ 14.25
+ 14.5
+ 14.5
+ 14.5
+ 15.75
+ 16.25
+ 16.25
+ 15
+ 13.75
+ 12.5
+ 11.75
+ 11
+ 12.5
+ 13.5
+ 15.25
+ 16.25
+ 17.25
+ 17.5
+ 17.75
+ 18
+ 18.25
+ 18.75
+ 19.25
+ 19.25
+ 19
+ 18.5
+ 16.75
+ 15.75
+ 14.75
+ 13.25
+ 11
+ 11.5
+ 12.25
+ 14
+ 13.25
+ 16.5
+ 18.5
+ 19.5
+ 25
+ 29.25
+ 33.25
+ 36.5
+ 40.25
+ 39
+ 39.25
+ 38.75
+ 38.25
+ 38
+ 39.5
+ 43
+ 42.75
+ 33.5
+ 18.5
+ 14
+ 10.75
+ 4.25
+ 4.25
+ 5
+ 5.75
+ 6.75
+ 6.75
+ 4.75
+ 4.25
+ 5.75
+ 7
+ 8.25
+ 9.25
+ 9.25
+ 9.5
+ 9.75
+ 10.25
+ 10.5
+ 10.75
+ 11
+ 11.5
+ 12
+ 12.5
+ 12.75
+ 12.75
+ 13
+ 13.25
+ 12.75
+ 12.5
+ 12.25
+ 12.25
+ 12.25
+ 12.5
+ 13.75
+ 13.75
+ 12
+ 10.75
+ 9.5
+ 9.5
+ 9.25
+ 9
+ 8.25
+ 8
+ 7
+ 6.25
+ 6.25
+ 8.5
+ 8.75
+ 10.75
+ 13.75
+ 14
+ 12.75
+ 9.5
+ 8.75
+ 8.25
+ 7.5
+ 7
+ 6.75
+ 6.25
+ 6.25
+ 6.75
+ 8
+ 8.25
+ 8.75
+ 9.25
+ 9.75
+ 10
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.75
+ 11.25
+ 11.75
+ 11.75
+ 12.25
+ 12.25
+ 12.75
+ 13.75
+ 14.25
+ 13.25
+ 12.25
+ 14.75
+ 15.75
+ 18.25
+ 23.75
+ 27
+ 28
+ 27.5
+ 25.25
+ 23.25
+ 22.5
+ 22
+ 18.5
+ 20.25
+ 21.25
+ 22.5
+ 24
+ 26
+ 27
+ 26.5
+ 26
+ 25.5
+ 24.75
+ 23
+ 21.25
+ 20.25
+ 19
+ 18.25
+ 16.25
+ 13.5
+ 12.5
+ 11.75
+ 7.75
+ 5.75
+ 7.5
+ 7.5
+ 8
+ 6.75
+ 6
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 7
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8.75
+ 9
+ 9.25
+ 9
+ 8.75
+ 7.75
+ 7
+ 7
+ 6.75
+ 7
+ 7
+ 8.25
+ 9.25
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 8.25
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 7.75
+ 8.5
+ 10
+ 11
+ 11.25
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11.25
+ 11.75
+ 11.75
+ 11.75
+ 10.5
+ 10.5
+ 10.5
+ 11
+ 13.25
+ 14.5
+ 15.75
+ 18.5
+ 16.75
+ 13.5
+ 12.5
+ 15
+ 17.5
+ 17.75
+ 17.25
+ 16.75
+ 15.5
+ 14.5
+ 13.75
+ 14
+ 14.5
+ 17.75
+ 15.5
+ 15.75
+ 16.5
+ 18.25
+ 21.5
+ 23.25
+ 25.5
+ 27.25
+ 29
+ 31.5
+ 33
+ 34.5
+ 35
+ 35.5
+ 33.75
+ 34.75
+ 34.75
+ 35
+ 35.75
+ 36
+ 37
+ 37.25
+ 37.5
+ 37.5
+ 35.25
+ 33.75
+ 34
+ 34.5
+ 34.25
+ 34.25
+ 35.25
+ 35.5
+ 36
+ 36.5
+ 36
+ 35.25
+ 35.25
+ 33.75
+ 31
+ 29.75
+ 26.75
+ 26.5
+ 26
+ 25.5
+ 24.75
+ 23.75
+ 23.25
+ 22.5
+ 22
+ 20.25
+ 19.75
+ 19.25
+ 19
+ 18.75
+ 18.25
+ 17.5
+ 16.75
+ 16
+ 13
+ 13
+ 12.25
+ 11.5
+ 10.5
+ 9.75
+ 9
+ 9
+ 9
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 9.75
+ 10
+ 10
+ 10
+ 10
+ 11.25
+ 10.75
+ 11.25
+ 13.75
+ 18
+ 17.75
+ 17.5
+ 15.25
+ 12.75
+ 14
+ 14.25
+ 15.25
+ 15.75
+ 16
+ 16.25
+ 16.25
+ 15.75
+ 15.25
+ 16.75
+ 17.5
+ 18.25
+ 20.75
+ 21.5
+ 21.5
+ 21.75
+ 22.25
+ 23
+ 22.5
+ 22.25
+ 23.5
+ 24.5
+ 26.75
+ 29.75
+ 30.25
+ 30.5
+ 30
+ 29
+ 27.75
+ 21
+ 20.5
+ 21
+ 23.25
+ 22.25
+ 22
+ 21
+ 20
+ 18.5
+ 16.5
+ 16.25
+ 15.25
+ 15.75
+ 16.25
+ 16.25
+ 16.5
+ 16.5
+ 16.5
+ 16
+ 15.25
+ 15.25
+ 14.5
+ 13.75
+ 13.5
+ 13.25
+ 13
+ 13.25
+ 13.75
+ 13
+ 13
+ 14.25
+ 14.25
+ 13.75
+ 12.75
+ 12.5
+ 11.75
+ 11.5
+ 11.75
+ 11.25
+ 11
+ 10.25
+ 8.25
+ 8.25
+ 7
+ 4.25
+ 4
+ 5.75
+ 6
+ 6.5
+ 6.75
+ 7.5
+ 9
+ 12
+ 12.75
+ 14.75
+ 17
+ 16.75
+ 14
+ 14.5
+ 15.25
+ 17
+ 17.5
+ 18.5
+ 19.25
+ 20
+ 21.25
+ 22.75
+ 24
+ 24.5
+ 25.75
+ 27
+ 27
+ 26.5
+ 25
+ 22.25
+ 20.25
+ 21
+ 21.5
+ 20.5
+ 16.25
+ 12.5
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 10.5
+ 13
+ 16.5
+ 16.5
+ 19.75
+ 19.75
+ 22
+ 23.5
+ 21.5
+ 19.25
+ 19.75
+ 21.25
+ 21.75
+ 21.75
+ 20
+ 19
+ 18.5
+ 17.5
+ 16.5
+ 15.75
+ 14.75
+ 13.5
+ 7
+ 6
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7.75
+ 8
+ 8.5
+ 8.75
+ 9
+ 9.5
+ 10.75
+ 11.75
+ 12.75
+ 13.5
+ 18
+ 23.75
+ 27.5
+ 29
+ 31.25
+ 41.5
+ 48.75
+ 52.25
+ 54.25
+ 54.75
+ 54.75
+ 53.75
+ 53.25
+ 52.5
+ 52
+ 51.5
+ 51.75
+ 51
+ 53.75
+ 54.75
+ 54.5
+ 52.5
+ 50
+ 48.75
+ 47.25
+ 46.5
+ 50
+ 56.5
+ 62
+ 64.5
+ 67.5
+ 68
+ 68
+ 68.5
+ 67.25
+ 66.25
+ 65.75
+ 65.75
+ 65.25
+ 65
+ 64
+ 63.25
+ 62
+ 61.75
+ 62.25
+ 63.25
+ 64.75
+ 66
+ 68
+ 69.25
+ 71
+ 71.5
+ 72
+ 71.5
+ 75
+ 77.25
+ 79.5
+ 80.5
+ 81.75
+ 83.25
+ 86.75
+ 88
+ 89.25
+ 89.75
+ 90.75
+ 90.25
+ 89.75
+ 89.25
+ 87.25
+ 84.5
+ 82
+ 80.75
+ 79.25
+ 78.5
+ 76.5
+ 76.25
+ 75.25
+ 72.75
+ 72
+ 73.25
+ 75.25
+ 75.5
+ 75.75
+ 75.25
+ 75
+ 76.25
+ 78.75
+ 79.25
+ 80.5
+ 81.5
+ 82.25
+ 81
+ 78.5
+ 79
+ 79.75
+ 78.75
+ 64.75
+ 63.75
+ 60.5
+ 57.75
+ 55.5
+ 56
+ 56
+ 55.25
+ 53.5
+ 52.75
+ 47
+ 43.75
+ 38.5
+ 34.25
+ 33.25
+ 34.75
+ 35.5
+ 36
+ 36.5
+ 37
+ 37
+ 34.25
+ 25.75
+ 24.25
+ 21.75
+ 22
+ 22.5
+ 23
+ 21.25
+ 20.25
+ 19.5
+ 19.75
+ 20.25
+ 20.25
+ 20.5
+ 20.5
+ 20.75
+ 20.5
+ 23
+ 23
+ 22.5
+ 22.25
+ 22
+ 22.25
+ 22.25
+ 22
+ 22
+ 21.5
+ 21.25
+ 20.25
+ 19.75
+ 19.25
+ 18.75
+ 18.25
+ 18
+ 19.25
+ 20.75
+ 22.5
+ 23
+ 23
+ 24.75
+ 14.75
+ 18.75
+ 19.75
+ 19.75
+ 20
+ 21
+ 23.25
+ 23.5
+ 23.25
+ 23.75
+ 24.5
+ 22.75
+ 22.75
+ 24.75
+ 28
+ 29.75
+ 31.5
+ 32.5
+ 32.5
+ 30.25
+ 30.5
+ 31
+ 29
+ 28.5
+ 27.75
+ 29
+ 30.75
+ 32.5
+ 32.25
+ 33.25
+ 33.75
+ 34.25
+ 34.75
+ 36
+ 36.5
+ 37
+ 37.25
+ 38
+ 38.5
+ 39
+ 39.75
+ 40
+ 40.25
+ 41
+ 43.75
+ 44
+ 43
+ 43
+ 42.75
+ 37.25
+ 35.25
+ 35.75
+ 36.5
+ 37
+ 37.5
+ 37.75
+ 37.75
+ 38.25
+ 39
+ 43.75
+ 44
+ 44.5
+ 45
+ 48
+ 58.75
+ 65.25
+ 70.75
+ 75.25
+ 74
+ 77.5
+ 77.25
+ 77.25
+ 76.5
+ 72.5
+ 72
+ 71.5
+ 71
+ 68
+ 65.5
+ 62.5
+ 63
+ 63
+ 63.25
+ 64.25
+ 65
+ 65.5
+ 65.5
+ 65
+ 66
+ 66
+ 66
+ 65.75
+ 65.25
+ 65.25
+ 65
+ 65
+ 65.25
+ 65.75
+ 66.25
+ 66.5
+ 66.75
+ 65.75
+ 65
+ 66.25
+ 66.75
+ 65.75
+ 65.25
+ 69.5
+ 69.75
+ 69.75
+ 69.5
+ 68.75
+ 70.75
+ 70.5
+ 68.5
+ 66
+ 65.5
+ 66.5
+ 67.25
+ 69
+ 76
+ 78.5
+ 79
+ 80.75
+ 82.5
+ 83
+ 83.25
+ 83.5
+ 83.5
+ 84
+ 84.25
+ 85.75
+ 86.75
+ 86.5
+ 86.25
+ 86
+ 85.25
+ 85
+ 84.25
+ 82.5
+ 82.5
+ 79
+ 77.5
+ 76.75
+ 76.25
+ 72
+ 69.25
+ 67.5
+ 65
+ 64.5
+ 63.25
+ 62.75
+ 62.25
+ 61.25
+ 54.75
+ 49.25
+ 49.5
+ 56.25
+ 56.5
+ 57
+ 57.25
+ 57.75
+ 60.25
+ 62
+ 61.25
+ 59
+ 59.5
+ 59.75
+ 60
+ 60.25
+ 60.75
+ 63
+ 64.25
+ 65.25
+ 66
+ 67.25
+ 68.75
+ 71.5
+ 73
+ 74.25
+ 75.25
+ 76.5
+ 77.75
+ 94.25
+ 81.5
+ 80.5
+ 81
+ 80.25
+ 79.25
+ 76.5
+ 76.25
+ 75.75
+ 74.75
+ 73.5
+ 73
+ 72
+ 72
+ 71.25
+ 67.75
+ 70.5
+ 75.75
+ 75.75
+ 75.75
+ 76.25
+ 81
+ 80
+ 78.75
+ 77
+ 71.25
+ 64.5
+ 34
+ 33.5
+ 33
+ 32.5
+ 32
+ 29.75
+ 28.75
+ 24.75
+ 19.75
+ 19
+ 18.5
+ 18
+ 16.25
+ 14
+ 14
+ 13.75
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13.25
+ 14.25
+ 14.75
+ 14.75
+ 15
+ 15
+ 16.25
+ 16.75
+ 17.25
+ 16.5
+ 16
+ 15
+ 13.5
+ 13
+ 13
+ 13.25
+ 13.25
+ 13.25
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 14
+ 14
+ 13
+ 13
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 13.5
+ 14.5
+ 15.25
+ 15.5
+ 16.25
+ 16.5
+ 17
+ 17.25
+ 17.75
+ 18
+ 18.25
+ 18.25
+ 18.75
+ 20
+ 13
+ 12.25
+ 12.75
+ 13
+ 13.5
+ 14.25
+ 16.5
+ 19.25
+ 19
+ 18.5
+ 19
+ 19
+ 23
+ 24.5
+ 27.5
+ 30.25
+ 33
+ 36
+ 38.25
+ 39.75
+ 41.5
+ 44.25
+ 46.25
+ 55.25
+ 57
+ 57.25
+ 57.5
+ 57.75
+ 57.5
+ 57.25
+ 56
+ 55.25
+ 54
+ 51.75
+ 47.5
+ 45.5
+ 41.5
+ 40.25
+ 38.5
+ 52
+ 56
+ 57.5
+ 58.5
+ 59.25
+ 60
+ 61.25
+ 59.5
+ 58.5
+ 58.5
+ 59.75
+ 59.75
+ 58.75
+ 58.5
+ 58.5
+ 58.5
+ 58.5
+ 59.5
+ 59.5
+ 59.5
+ 59
+ 58.25
+ 56.75
+ 58
+ 59.5
+ 60
+ 59.75
+ 56
+ 54.25
+ 53.25
+ 52.25
+ 50.75
+ 50
+ 50
+ 49.75
+ 49
+ 47.5
+ 45.75
+ 43
+ 42.5
+ 42.75
+ 43
+ 43.75
+ 43.75
+ 46.75
+ 50
+ 54
+ 54
+ 54
+ 54.25
+ 53.75
+ 53.75
+ 54
+ 54
+ 54.5
+ 54.5
+ 54.5
+ 54.25
+ 54
+ 51.5
+ 51.25
+ 49.5
+ 48.25
+ 47.25
+ 46.25
+ 45.5
+ 45
+ 45
+ 42.75
+ 41.75
+ 40.5
+ 39.5
+ 39.5
+ 39
+ 38.75
+ 36.75
+ 35.75
+ 35
+ 30.75
+ 28.75
+ 26.5
+ 26.75
+ 27
+ 27
+ 27
+ 27.5
+ 27.5
+ 27
+ 27.25
+ 27.25
+ 27.5
+ 27.5
+ 27.75
+ 28
+ 28
+ 28
+ 29.5
+ 28
+ 28
+ 28
+ 27.75
+ 27.5
+ 27.5
+ 27.25
+ 27.25
+ 27
+ 27.5
+ 27.5
+ 27
+ 27
+ 27
+ 26.75
+ 26.5
+ 28.75
+ 30.75
+ 35
+ 35.75
+ 36.75
+ 38.75
+ 39
+ 39.5
+ 39.5
+ 40.5
+ 41.75
+ 42.75
+ 45
+ 45
+ 45.5
+ 46.25
+ 47.25
+ 48.25
+ 49.5
+ 51.25
+ 51.5
+ 54
+ 54.25
+ 54.5
+ 54.5
+ 54.5
+ 54
+ 54
+ 53.75
+ 53.75
+ 54.25
+ 54
+ 54
+ 54
+ 50
+ 46.75
+ 43.75
+ 42.75
+ 42.5
+ 42.5
+ 42.5
+ 43
+ 45.75
+ 47.5
+ 49
+ 49.75
+ 50
+ 50
+ 50.75
+ 52.25
+ 53.25
+ 54.25
+ 56
+ 59.75
+ 60
+ 59.5
+ 58
+ 56.75
+ 58.25
+ 59
+ 59.5
+ 59.5
+ 59.5
+ 58.5
+ 58.5
+ 58.5
+ 58.5
+ 58.75
+ 59.75
+ 59.75
+ 58.5
+ 58.5
+ 59.5
+ 61.25
+ 60
+ 59.25
+ 58.5
+ 57.5
+ 56
+ 52
+ 38.5
+ 40.25
+ 41.5
+ 45.5
+ 47.5
+ 51.75
+ 54
+ 55.25
+ 56
+ 57.25
+ 57.5
+ 57.75
+ 57.5
+ 57.25
+ 57
+ 55.25
+ 46.25
+ 44.25
+ 41.5
+ 39.75
+ 38.25
+ 36
+ 33
+ 30.25
+ 27.5
+ 24.5
+ 23
+ 19
+ 19
+ 18.5
+ 19
+ 19.25
+ 16.5
+ 14.25
+ 13.5
+ 13
+ 12.75
+ 12.25
+ 13
+ 20
+ 18.75
+ 18.25
+ 18.25
+ 18
+ 17.75
+ 17.25
+ 17
+ 16.5
+ 16.25
+ 15.5
+ 15.25
+ 14.5
+ 13.5
+ 12.25
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 13
+ 13
+ 14
+ 14
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.25
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 12.75
+ 12.5
+ 12.25
+ 11.75
+ 11.5
+ 11.5
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.5
+ 12.75
+ 13.25
+ 13.5
+ 13.75
+ 13.75
+ 14
+ 14.25
+ 14.5
+ 14.5
+ 14.5
+ 15
+ 15
+ 15.25
+ 15.5
+ 15.5
+ 15.25
+ 15.25
+ 15
+ 15
+ 15
+ 15
+ 14.75
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 14.25
+ 14.25
+ 14
+ 14
+ 14
+ 14.25
+ 14.75
+ 15
+ 15
+ 15
+ 15.25
+ 15.75
+ 16.5
+ 17.75
+ 17.75
+ 18
+ 18.5
+ 18.5
+ 18
+ 17.75
+ 17.5
+ 17
+ 17
+ 17
+ 17.5
+ 17.5
+ 17.25
+ 17.25
+ 17.5
+ 17.25
+ 16.25
+ 16
+ 15.75
+ 15.75
+ 15.75
+ 16.25
+ 16.5
+ 17
+ 17.25
+ 17.75
+ 18
+ 18
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 16
+ 15.75
+ 15.5
+ 15.5
+ 15.25
+ 14.25
+ 15.75
+ 15
+ 14.25
+ 13.5
+ 12.25
+ 11
+ 9.75
+ 8.5
+ 6.75
+ 7
+ 6.5
+ 6.25
+ 6.25
+ 7.5
+ 8.5
+ 9.75
+ 11.5
+ 13
+ 12.5
+ 12.25
+ 11.5
+ 10.25
+ 8.75
+ 8
+ 7
+ 8.25
+ 9
+ 9.25
+ 9.25
+ 9.75
+ 10
+ 10.25
+ 10.5
+ 10.75
+ 11.25
+ 10.25
+ 10.5
+ 11
+ 11.75
+ 12
+ 12
+ 11.75
+ 11.75
+ 13.25
+ 13.75
+ 14.25
+ 14.75
+ 15.5
+ 18.5
+ 19
+ 19.75
+ 22.5
+ 28
+ 29.75
+ 34.75
+ 33.25
+ 30.75
+ 30.5
+ 31.25
+ 31.25
+ 31.25
+ 31
+ 30
+ 28.5
+ 27
+ 26.75
+ 26.5
+ 26
+ 25.5
+ 25
+ 25.25
+ 25.5
+ 26
+ 27.25
+ 30
+ 31.5
+ 33
+ 33
+ 33.25
+ 33.5
+ 33.5
+ 33.75
+ 38.75
+ 38.75
+ 38
+ 37.5
+ 36.75
+ 36.5
+ 36.5
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.75
+ 37.5
+ 37.75
+ 37.5
+ 36.25
+ 36
+ 35.5
+ 35
+ 33.75
+ 33
+ 31.25
+ 30.5
+ 16.5
+ 18.5
+ 19.5
+ 19.75
+ 20
+ 20
+ 20.25
+ 20.25
+ 20
+ 20
+ 19.75
+ 19.25
+ 19.25
+ 17.5
+ 17
+ 16.75
+ 16.75
+ 16.75
+ 16.5
+ 16.75
+ 17.25
+ 17.5
+ 17.75
+ 17.75
+ 17.75
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 19.25
+ 19.25
+ 19.25
+ 19.5
+ 19.5
+ 19.5
+ 19.5
+ 19.25
+ 19.25
+ 20.5
+ 23.25
+ 23.5
+ 24.5
+ 24.75
+ 25.5
+ 26.5
+ 27
+ 27.5
+ 28.5
+ 28.75
+ 29.5
+ 30
+ 37
+ 38
+ 40.25
+ 42.5
+ 43
+ 43.75
+ 44.75
+ 46.25
+ 46.75
+ 47.25
+ 48
+ 48.75
+ 50.25
+ 51
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.5
+ 51.5
+ 51
+ 51
+ 50.5
+ 49.75
+ 50.75
+ 52.75
+ 59
+ 58.5
+ 58.25
+ 58.25
+ 58
+ 57.75
+ 57.5
+ 53
+ 45.75
+ 44.5
+ 43.75
+ 41.75
+ 41
+ 40
+ 36.75
+ 35.75
+ 32.25
+ 36.5
+ 36.5
+ 36
+ 35
+ 34.5
+ 34
+ 34
+ 34.25
+ 34.5
+ 35.75
+ 36
+ 37.25
+ 37.5
+ 38
+ 38.75
+ 38.75
+ 37.75
+ 37.25
+ 37
+ 36.5
+ 35.25
+ 34
+ 33.75
+ 32.75
+ 31.25
+ 29
+ 27.25
+ 18
+ 16.5
+ 15.5
+ 12
+ 11
+ 10.5
+ 10.25
+ 10
+ 9.75
+ 9.25
+ 9.5
+ 9.5
+ 8.75
+ 8.75
+ 9
+ 9
+ 9.25
+ 9.25
+ 9
+ 9
+ 9
+ 8.25
+ 7.75
+ 7.5
+ 7.5
+ 6.75
+ 6.5
+ 6.5
+ 5.5
+ 6
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 6
+ 6
+ 6.5
+ 8
+ 8.75
+ 9
+ 9.75
+ 10
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 11
+ 11.25
+ 11.75
+ 12
+ 12.75
+ 13.25
+ 13.5
+ 13.25
+ 12
+ 9.75
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 10.75
+ 12.25
+ 12.75
+ 12.5
+ 10.25
+ 9.25
+ 9.25
+ 9.5
+ 9.75
+ 8.5
+ 7
+ 5.5
+ 3.75
+ 3.75
+ 3.5
+ 3
+ 2.75
+ 3.75
+ 3.25
+ 3.25
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 3.5
+ 3.5
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 5
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 6.5
+ 8.75
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 10.5
+ 11.75
+ 13.75
+ 13.75
+ 13
+ 12.5
+ 12.25
+ 12.25
+ 12.5
+ 17
+ 20.5
+ 21.25
+ 22.75
+ 20.5
+ 20.25
+ 19.75
+ 19
+ 17.75
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 16.25
+ 15.75
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 17.25
+ 17.5
+ 17.75
+ 17.25
+ 16
+ 16.25
+ 16.5
+ 16.5
+ 16.75
+ 17
+ 17
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.5
+ 16.25
+ 16.25
+ 16.5
+ 16.75
+ 17
+ 17
+ 17.25
+ 18.25
+ 20.5
+ 21.75
+ 22.25
+ 22.25
+ 22.5
+ 23
+ 23.75
+ 23.75
+ 23.75
+ 23.75
+ 24.25
+ 25
+ 25
+ 25.25
+ 26.75
+ 27.25
+ 28.25
+ 28.5
+ 28.75
+ 28.75
+ 28.5
+ 28.25
+ 24.75
+ 24.5
+ 22
+ 23.5
+ 25.5
+ 27
+ 28.25
+ 28.75
+ 29
+ 29
+ 28.75
+ 28.5
+ 28
+ 28.5
+ 29
+ 35.5
+ 32
+ 30
+ 27
+ 26.25
+ 27
+ 26.25
+ 27.25
+ 30.5
+ 30.5
+ 30
+ 29.75
+ 29.5
+ 28.75
+ 28
+ 28.75
+ 28.5
+ 28
+ 28.5
+ 29.25
+ 29
+ 29.5
+ 29.75
+ 29.75
+ 30
+ 34.75
+ 35.5
+ 36
+ 36.5
+ 36.75
+ 38
+ 38.25
+ 38.5
+ 39
+ 39.5
+ 40.25
+ 41.25
+ 41.75
+ 42
+ 42.5
+ 42.75
+ 42.75
+ 42
+ 40.75
+ 38.75
+ 39.5
+ 40
+ 40.25
+ 40.5
+ 41.5
+ 41.75
+ 42.25
+ 42.25
+ 42.75
+ 43
+ 43
+ 42.75
+ 42.5
+ 42.5
+ 42.25
+ 42.25
+ 42
+ 41.75
+ 41.25
+ 40.25
+ 40.5
+ 41
+ 42
+ 42.5
+ 42.75
+ 43
+ 42.75
+ 42
+ 41.75
+ 42
+ 42.25
+ 42.75
+ 43.5
+ 44.25
+ 44.75
+ 45.25
+ 44.75
+ 44.25
+ 44
+ 43.25
+ 43
+ 42.5
+ 41.75
+ 41.5
+ 41.25
+ 41
+ 40.5
+ 40.25
+ 39.75
+ 39.5
+ 39.25
+ 39
+ 38.25
+ 38
+ 37.5
+ 34.75
+ 33
+ 31.75
+ 29.5
+ 31.5
+ 31.5
+ 30.75
+ 33.25
+ 33.75
+ 33.75
+ 33.5
+ 33.25
+ 33.25
+ 33.25
+ 33
+ 33
+ 33
+ 32.75
+ 32.75
+ 33
+ 37.25
+ 38.25
+ 38.5
+ 38.5
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.5
+ 38.75
+ 39
+ 39.25
+ 39.25
+ 39.5
+ 39.75
+ 39.75
+ 39.75
+ 40
+ 40.25
+ 39.75
+ 39.75
+ 37
+ 31.75
+ 28.75
+ 27.75
+ 26.25
+ 27
+ 27.25
+ 28
+ 29.5
+ 29.25
+ 29
+ 28.25
+ 29.25
+ 29.75
+ 30
+ 30.25
+ 30.75
+ 30.5
+ 30.25
+ 31.75
+ 32.5
+ 32.5
+ 32.75
+ 33
+ 33
+ 33
+ 33.25
+ 33.75
+ 35.25
+ 35.5
+ 36.5
+ 38
+ 37
+ 36.75
+ 37
+ 37.5
+ 38.25
+ 38.5
+ 35
+ 33.75
+ 27.75
+ 27.75
+ 28.5
+ 30
+ 30.5
+ 32
+ 32
+ 33
+ 33.75
+ 36.75
+ 36.75
+ 39
+ 41.5
+ 41.75
+ 40.75
+ 40.25
+ 40.5
+ 40.75
+ 41
+ 42.5
+ 43.5
+ 44.25
+ 45.25
+ 45.75
+ 46.75
+ 47.25
+ 47.25
+ 47.5
+ 47.5
+ 47.5
+ 47.5
+ 47.25
+ 47.25
+ 47
+ 46.5
+ 45.5
+ 44.75
+ 40.75
+ 40.5
+ 40.25
+ 40.25
+ 40.25
+ 40
+ 39.75
+ 39.75
+ 39.25
+ 38.75
+ 38.5
+ 38.5
+ 37.75
+ 37.75
+ 38
+ 38.25
+ 38
+ 38
+ 37.75
+ 37.5
+ 37.5
+ 37.5
+ 39.25
+ 39.25
+ 39.25
+ 39.25
+ 39.25
+ 39
+ 39.25
+ 39.75
+ 39.75
+ 39.75
+ 39
+ 39.5
+ 39.25
+ 39
+ 39
+ 39
+ 39
+ 38.75
+ 38.25
+ 37.75
+ 37
+ 36
+ 36.5
+ 36.75
+ 37
+ 37
+ 36.75
+ 36.75
+ 37.5
+ 38
+ 38.5
+ 38.75
+ 38.75
+ 38.5
+ 38
+ 38
+ 39.75
+ 39.25
+ 38.25
+ 38
+ 38.25
+ 39
+ 39.5
+ 39.5
+ 39.75
+ 40
+ 40
+ 40.25
+ 40.5
+ 40.75
+ 41.25
+ 41.75
+ 42
+ 42.25
+ 42.5
+ 42.5
+ 42.75
+ 42.75
+ 42.75
+ 42.5
+ 42.5
+ 42.25
+ 41.5
+ 40.5
+ 38.75
+ 38.25
+ 38
+ 38.5
+ 39.25
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39.25
+ 39.25
+ 39.25
+ 39.5
+ 39.75
+ 39.75
+ 41.5
+ 41.75
+ 42.25
+ 44.75
+ 47
+ 47.5
+ 47.75
+ 48
+ 48
+ 48
+ 48.25
+ 48.25
+ 49
+ 49.75
+ 50
+ 50.75
+ 51.25
+ 52
+ 53.25
+ 54
+ 55
+ 56
+ 55.5
+ 55
+ 53.75
+ 53.25
+ 53
+ 52.75
+ 52
+ 52.25
+ 52.25
+ 52.5
+ 52
+ 50.75
+ 50
+ 49.75
+ 49.25
+ 48.25
+ 44.25
+ 41
+ 41.5
+ 42.25
+ 42.75
+ 42.75
+ 43
+ 44.25
+ 44.5
+ 44.75
+ 45.75
+ 46
+ 46
+ 46.75
+ 47.25
+ 48.75
+ 48.75
+ 49.25
+ 50.75
+ 48.5
+ 48
+ 48.25
+ 49
+ 49.75
+ 50.25
+ 50.5
+ 50.5
+ 50.5
+ 50.5
+ 50.25
+ 50
+ 49.25
+ 48.5
+ 48
+ 47.25
+ 47
+ 47.5
+ 49
+ 49.25
+ 49.5
+ 52.75
+ 53.5
+ 54.25
+ 55
+ 55.25
+ 55.75
+ 56
+ 55.5
+ 55.25
+ 54.75
+ 53
+ 52.5
+ 51.75
+ 51.25
+ 51
+ 50.5
+ 50
+ 49.25
+ 48.5
+ 48.5
+ 48.5
+ 48.25
+ 48.25
+ 48
+ 47.25
+ 47.25
+ 46.75
+ 46
+ 45.5
+ 45
+ 45.25
+ 45.5
+ 45.75
+ 45.75
+ 46
+ 46
+ 46
+ 46.25
+ 46.25
+ 46.5
+ 47.25
+ 48.25
+ 48.5
+ 49.5
+ 51.25
+ 52.25
+ 52.5
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.5
+ 53
+ 53.5
+ 53.75
+ 54.5
+ 55.25
+ 56
+ 56
+ 57.5
+ 58.25
+ 58.25
+ 58
+ 57.75
+ 56.75
+ 56.25
+ 56.25
+ 56
+ 56
+ 56
+ 56
+ 56
+ 55.75
+ 55.75
+ 55
+ 56.75
+ 56.75
+ 58
+ 58.25
+ 58.75
+ 59
+ 58.25
+ 56.5
+ 56.75
+ 56.75
+ 56.75
+ 57.25
+ 57.5
+ 57
+ 56.5
+ 56.5
+ 56.5
+ 56.5
+ 56
+ 55.5
+ 54
+ 53.75
+ 53.5
+ 53.5
+ 53.25
+ 54.25
+ 55.5
+ 56
+ 56.25
+ 55.25
+ 55.25
+ 55.5
+ 56
+ 56.25
+ 56.25
+ 55.75
+ 57.5
+ 61
+ 64
+ 66.25
+ 67.75
+ 68.25
+ 70
+ 70.5
+ 71
+ 71
+ 71.25
+ 71.5
+ 71.5
+ 71.75
+ 71.5
+ 71.25
+ 71
+ 71
+ 71
+ 70.75
+ 70
+ 69.75
+ 69.5
+ 69.25
+ 68.75
+ 69
+ 69.25
+ 69.5
+ 70.5
+ 71
+ 71.5
+ 71.75
+ 72
+ 72.75
+ 73
+ 73.25
+ 76.5
+ 78
+ 78.75
+ 79
+ 79
+ 78.75
+ 78.25
+ 76.25
+ 76.25
+ 76.5
+ 76.75
+ 77.5
+ 78.5
+ 76
+ 73.5
+ 69
+ 69.25
+ 65.5
+ 63.75
+ 66.5
+ 70.5
+ 69.25
+ 65.75
+ 63
+ 60.75
+ 59
+ 59
+ 59
+ 60
+ 62
+ 61.25
+ 60.75
+ 60.75
+ 61
+ 61.5
+ 62.5
+ 63.25
+ 62.25
+ 61.25
+ 60.75
+ 60.5
+ 60.5
+ 60.5
+ 60.75
+ 61.5
+ 61.75
+ 61.75
+ 61.75
+ 61.5
+ 59.75
+ 59.25
+ 58.75
+ 58.5
+ 58
+ 58
+ 57.5
+ 56.75
+ 44
+ 42.5
+ 41
+ 39.5
+ 38
+ 37.25
+ 36.5
+ 36
+ 36
+ 36
+ 35.75
+ 35.25
+ 34.5
+ 33.75
+ 32.75
+ 31.75
+ 29.5
+ 24.5
+ 23.75
+ 22.75
+ 23
+ 23.5
+ 24.5
+ 24.75
+ 25.25
+ 25.25
+ 24.75
+ 25
+ 25.5
+ 26
+ 26.5
+ 27
+ 27.5
+ 28
+ 31.25
+ 32.25
+ 33.75
+ 41.5
+ 42.75
+ 43.5
+ 44
+ 44.5
+ 45.5
+ 46.5
+ 47.75
+ 50
+ 50.5
+ 51.5
+ 52.5
+ 53.75
+ 55.5
+ 56
+ 55.5
+ 55
+ 56.75
+ 57.25
+ 48.5
+ 43.5
+ 39.5
+ 38.75
+ 38.25
+ 37.75
+ 36.75
+ 36
+ 34.5
+ 32.25
+ 30.75
+ 29.75
+ 28.75
+ 28
+ 27.5
+ 27
+ 25.75
+ 24.25
+ 20
+ 18.25
+ 16.75
+ 15.25
+ 14
+ 13.25
+ 12.5
+ 11.25
+ 10.25
+ 9
+ 8.5
+ 7.75
+ 7
+ 6.25
+ 6.5
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 6.75
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 4.75
+ 4.75
+ 6.25
+ 7.5
+ 8.25
+ 8.75
+ 7.5
+ 7
+ 6.75
+ 6.5
+ 6.25
+ 6.5
+ 7
+ 8.25
+ 9
+ 9.75
+ 11.25
+ 13.5
+ 16
+ 19.25
+ 25
+ 29.5
+ 29
+ 28.5
+ 27
+ 26.75
+ 27
+ 26.5
+ 25.75
+ 28.5
+ 29.75
+ 29.5
+ 28.75
+ 29.25
+ 30.5
+ 30.75
+ 31.25
+ 31.5
+ 31.75
+ 37.25
+ 39
+ 40.75
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 42.25
+ 50.5
+ 52.75
+ 52.25
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51
+ 50.75
+ 49.75
+ 49.5
+ 49.25
+ 49
+ 49.75
+ 50
+ 50
+ 50
+ 50
+ 50
+ 50.25
+ 50.75
+ 51
+ 51.25
+ 51.75
+ 52
+ 52.75
+ 54
+ 54.5
+ 55
+ 55.75
+ 56.25
+ 57
+ 57
+ 57.5
+ 58
+ 58.25
+ 59
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.75
+ 61.5
+ 61.5
+ 62.25
+ 62.5
+ 62.75
+ 62.75
+ 63
+ 62.5
+ 61.75
+ 65.5
+ 68.5
+ 71.75
+ 73.25
+ 74.75
+ 73.75
+ 72.25
+ 71.75
+ 71
+ 71
+ 70.75
+ 71
+ 71.75
+ 71.25
+ 70
+ 68.75
+ 67
+ 64
+ 62.5
+ 61.25
+ 61.25
+ 61.75
+ 61.75
+ 62.25
+ 62.75
+ 63
+ 63.25
+ 63
+ 62.75
+ 61.5
+ 59
+ 58.75
+ 58.25
+ 57.5
+ 58
+ 58
+ 58
+ 58
+ 57.25
+ 56.75
+ 56
+ 55.25
+ 55
+ 54.75
+ 56.75
+ 56.75
+ 56.75
+ 56.5
+ 56.5
+ 56.5
+ 56.75
+ 54
+ 53.75
+ 52.75
+ 52.5
+ 50
+ 50
+ 50
+ 50
+ 49.75
+ 49.5
+ 49.25
+ 49.25
+ 49.25
+ 49
+ 49
+ 48.5
+ 48.25
+ 48.25
+ 48
+ 47.75
+ 47.75
+ 47.75
+ 48
+ 48
+ 48.25
+ 48.25
+ 48.25
+ 48.25
+ 48
+ 48
+ 47.75
+ 48
+ 48.75
+ 49
+ 49
+ 49.25
+ 49.75
+ 50.5
+ 51.25
+ 51.75
+ 52
+ 53.5
+ 53.5
+ 54
+ 53.5
+ 49.25
+ 48.5
+ 48.25
+ 46.5
+ 46.25
+ 46
+ 45.25
+ 45.75
+ 46.5
+ 47.75
+ 49.5
+ 50.25
+ 51
+ 50.25
+ 49
+ 48.75
+ 48.25
+ 48.25
+ 48.5
+ 48.5
+ 48.75
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 49.75
+ 50
+ 50
+ 50
+ 50
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 50
+ 50
+ 50.25
+ 50.75
+ 51
+ 51.5
+ 52
+ 49.75
+ 49
+ 48.5
+ 48.25
+ 48.25
+ 48.25
+ 48
+ 47.75
+ 46.75
+ 46.25
+ 46
+ 34.75
+ 34
+ 33.25
+ 32.75
+ 33
+ 34
+ 34.25
+ 34.75
+ 33.75
+ 32.25
+ 32.75
+ 32.5
+ 32.25
+ 32.75
+ 33.75
+ 35
+ 36.75
+ 39
+ 41
+ 42.5
+ 46.5
+ 47.75
+ 48.5
+ 46.75
+ 41.25
+ 41.25
+ 41
+ 40.25
+ 41.25
+ 44.75
+ 45.5
+ 46.75
+ 47.75
+ 48.5
+ 49
+ 50
+ 50.75
+ 51.25
+ 51.5
+ 52
+ 52
+ 52
+ 53
+ 54.5
+ 56
+ 56.75
+ 57
+ 56.75
+ 56.5
+ 56.75
+ 57.75
+ 57.5
+ 57.5
+ 57.5
+ 57.25
+ 57.25
+ 57.25
+ 57
+ 56.75
+ 55.75
+ 55
+ 54
+ 54.75
+ 55
+ 54.5
+ 51
+ 49.75
+ 48.75
+ 48.5
+ 46.75
+ 45.5
+ 44.75
+ 44.25
+ 44.25
+ 43.5
+ 41
+ 40.5
+ 40.25
+ 40
+ 39.5
+ 38
+ 37.5
+ 37
+ 36.5
+ 36.75
+ 36.75
+ 37
+ 37
+ 37
+ 37
+ 36.75
+ 36.5
+ 36.5
+ 36.75
+ 36.75
+ 36.25
+ 37.5
+ 37.5
+ 38
+ 38.5
+ 39.25
+ 39.75
+ 39.5
+ 39.25
+ 39.25
+ 40.25
+ 41.5
+ 41.75
+ 42
+ 42
+ 41.5
+ 40.5
+ 40.5
+ 40
+ 40
+ 39.5
+ 39
+ 38.5
+ 37.5
+ 36
+ 35.75
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 36.25
+ 36
+ 35.25
+ 34.5
+ 33.75
+ 32.5
+ 31.75
+ 31.75
+ 33
+ 32.75
+ 31.5
+ 30.75
+ 30.25
+ 30.25
+ 30
+ 30
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 29
+ 30
+ 31
+ 31.5
+ 31.75
+ 31
+ 30.75
+ 30.75
+ 30.75
+ 31
+ 32.75
+ 34.75
+ 35.25
+ 35.75
+ 35.25
+ 35.25
+ 35.25
+ 35
+ 35.25
+ 36
+ 35.75
+ 35.5
+ 35.25
+ 35.75
+ 36.25
+ 36.75
+ 37
+ 37.5
+ 37.75
+ 37.75
+ 37.5
+ 37.25
+ 37.25
+ 37.25
+ 38.25
+ 39
+ 39.5
+ 39.5
+ 39.5
+ 39.5
+ 39.5
+ 39.25
+ 39.25
+ 39.75
+ 40
+ 39.75
+ 39.5
+ 39
+ 38.75
+ 38.25
+ 37.75
+ 37.5
+ 37.75
+ 38.25
+ 38.5
+ 38.5
+ 38.75
+ 39
+ 39.5
+ 39.75
+ 39.75
+ 40.25
+ 41
+ 41.5
+ 41.5
+ 41.5
+ 41
+ 40.75
+ 40.5
+ 40
+ 38.75
+ 38.25
+ 39.25
+ 40.75
+ 41.75
+ 42
+ 43.25
+ 43.5
+ 44.5
+ 44.75
+ 46.25
+ 46
+ 45.75
+ 45
+ 45.5
+ 44.5
+ 43.75
+ 44
+ 44.25
+ 45.75
+ 48
+ 48.25
+ 45.25
+ 45
+ 44.5
+ 43.75
+ 43.75
+ 43.75
+ 44
+ 43.75
+ 43.75
+ 43.75
+ 44
+ 44
+ 44
+ 44
+ 43.75
+ 43.5
+ 43.5
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 45
+ 46.5
+ 49
+ 48.75
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 49.5
+ 49.5
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 51.25
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 52.25
+ 52
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 52
+ 51.75
+ 51.5
+ 51.25
+ 51.25
+ 51.25
+ 51.25
+ 51
+ 51
+ 50.75
+ 50.5
+ 50.25
+ 50.25
+ 50
+ 49.75
+ 50
+ 50
+ 50.25
+ 50
+ 50
+ 50
+ 50
+ 49.5
+ 49
+ 48.75
+ 48.75
+ 48.75
+ 48.75
+ 48.75
+ 50.5
+ 50.75
+ 50.75
+ 52.75
+ 53.5
+ 54.25
+ 54.5
+ 54.75
+ 55.25
+ 55.25
+ 55.5
+ 55.25
+ 55.25
+ 55.25
+ 55.5
+ 56
+ 56.5
+ 57
+ 57.25
+ 57.5
+ 58
+ 58.25
+ 58.25
+ 58
+ 57.75
+ 57.5
+ 57
+ 56.75
+ 56.5
+ 55.75
+ 54.5
+ 53.75
+ 52.75
+ 52.25
+ 52
+ 52
+ 52
+ 52
+ 51.75
+ 51.5
+ 51.5
+ 51.25
+ 51
+ 50.75
+ 50.25
+ 50.25
+ 50.5
+ 51.5
+ 51.5
+ 50.75
+ 48.5
+ 47.75
+ 46.5
+ 45.5
+ 44.25
+ 42.75
+ 42
+ 41
+ 40.5
+ 40
+ 39.75
+ 38.5
+ 37
+ 35.25
+ 33
+ 32.5
+ 31.25
+ 30
+ 30
+ 33
+ 33.25
+ 33.75
+ 34.5
+ 35
+ 36
+ 37
+ 37.75
+ 38.75
+ 39.25
+ 39.5
+ 39.75
+ 39.75
+ 40.75
+ 42.25
+ 42.25
+ 42.25
+ 42.25
+ 41.25
+ 40.25
+ 38.75
+ 38
+ 37
+ 35.25
+ 33.25
+ 31.75
+ 31.5
+ 32
+ 33
+ 33.5
+ 35.75
+ 36.25
+ 36.5
+ 36.75
+ 36.75
+ 36.25
+ 36
+ 37.25
+ 37.5
+ 37.75
+ 36.25
+ 36
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.25
+ 34.5
+ 34
+ 34
+ 34.25
+ 36.5
+ 36.5
+ 35.75
+ 35.75
+ 35.25
+ 34.75
+ 34
+ 33.5
+ 31.75
+ 29.5
+ 31.5
+ 33
+ 35.25
+ 35.5
+ 36.75
+ 37
+ 37
+ 36.75
+ 36.75
+ 36.25
+ 36.5
+ 37
+ 36.5
+ 36.25
+ 35.5
+ 35
+ 34.5
+ 32.75
+ 32.25
+ 31.5
+ 31.5
+ 32
+ 32.5
+ 33.25
+ 35.5
+ 35
+ 34
+ 33.25
+ 33.75
+ 34
+ 34.25
+ 34.25
+ 34
+ 34
+ 34
+ 34.25
+ 34.75
+ 35.75
+ 36
+ 36.25
+ 36.5
+ 36.5
+ 36.5
+ 36.5
+ 36
+ 35.75
+ 35.5
+ 35.25
+ 35.25
+ 35
+ 35
+ 35
+ 35.25
+ 36
+ 36.5
+ 37
+ 38.25
+ 38.5
+ 39
+ 39
+ 39.25
+ 39.25
+ 39.5
+ 39.5
+ 39.5
+ 39.75
+ 39.75
+ 39.5
+ 38.75
+ 38
+ 37
+ 36
+ 34.75
+ 34.25
+ 32.75
+ 31.75
+ 31.5
+ 30.75
+ 30
+ 25.25
+ 25.75
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 25.75
+ 27.5
+ 28.75
+ 29.25
+ 30.25
+ 31
+ 31.5
+ 31.5
+ 31.5
+ 31.25
+ 29.75
+ 28.75
+ 28
+ 27.5
+ 26.25
+ 25
+ 24
+ 23
+ 22.5
+ 22.75
+ 22.25
+ 20.5
+ 20
+ 19
+ 18.75
+ 18.75
+ 18.5
+ 18.5
+ 18.25
+ 18.25
+ 18.25
+ 18
+ 19.5
+ 19.5
+ 20.25
+ 23.25
+ 23.75
+ 23.5
+ 21.5
+ 19.25
+ 17.75
+ 17.75
+ 17.75
+ 17.75
+ 17.5
+ 17
+ 16.5
+ 16.25
+ 15.75
+ 15.25
+ 14.5
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 13.5
+ 13
+ 12.25
+ 12
+ 11.75
+ 12
+ 12.5
+ 11.5
+ 11.25
+ 11
+ 10.75
+ 9.75
+ 9.25
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 10
+ 11.5
+ 12.25
+ 11.5
+ 10.75
+ 8.5
+ 7.75
+ 7.25
+ 6.75
+ 6
+ 5
+ 5
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 5.75
+ 5.75
+ 6.5
+ 7.75
+ 8.5
+ 9
+ 9.75
+ 10
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 10
+ 10.25
+ 11.5
+ 12
+ 12.25
+ 13.25
+ 13.75
+ 15.25
+ 15.25
+ 14.25
+ 15.25
+ 17.25
+ 23.75
+ 24
+ 23.5
+ 22.75
+ 21.75
+ 21.5
+ 21.5
+ 21.75
+ 21.75
+ 21.25
+ 25
+ 28
+ 31.5
+ 34.5
+ 36
+ 34.75
+ 35
+ 35.75
+ 36.5
+ 36.5
+ 37.25
+ 38
+ 36.5
+ 35.75
+ 36.25
+ 37.75
+ 38.75
+ 39
+ 39
+ 39.25
+ 38.5
+ 37
+ 35.25
+ 35
+ 33.75
+ 32.75
+ 32.25
+ 30.75
+ 29.5
+ 28.25
+ 27.5
+ 27.5
+ 27.25
+ 27.25
+ 27.75
+ 28.5
+ 29
+ 29.25
+ 28.5
+ 27.75
+ 25.75
+ 24.25
+ 23.75
+ 23.25
+ 22.75
+ 22.25
+ 21.75
+ 21
+ 20.5
+ 20.25
+ 20.75
+ 21
+ 21.5
+ 21.75
+ 21.75
+ 22
+ 22.5
+ 23.5
+ 24
+ 26.75
+ 27.5
+ 28.25
+ 29
+ 28.75
+ 28.75
+ 29
+ 30
+ 29.5
+ 29.25
+ 28.25
+ 28.25
+ 29.25
+ 29.75
+ 30
+ 30.25
+ 30
+ 29.75
+ 30.25
+ 28.75
+ 28.75
+ 28.5
+ 28.5
+ 28.5
+ 28.5
+ 28
+ 28.5
+ 29.5
+ 31
+ 31.5
+ 30.5
+ 30
+ 29.5
+ 30.25
+ 31.5
+ 32.5
+ 32.5
+ 30.75
+ 30.75
+ 30.25
+ 27.5
+ 25
+ 25
+ 25
+ 25.25
+ 25.25
+ 25
+ 24.75
+ 24.75
+ 24.25
+ 24
+ 24
+ 24.75
+ 25
+ 25.5
+ 25.75
+ 25.5
+ 25
+ 25
+ 25
+ 25
+ 27.25
+ 28
+ 30
+ 30.25
+ 29
+ 28.5
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28.5
+ 28.75
+ 28.75
+ 29
+ 29.25
+ 29.5
+ 29.75
+ 30
+ 30
+ 31
+ 31.25
+ 31.5
+ 31.75
+ 32
+ 32.75
+ 33.75
+ 35.5
+ 36
+ 34
+ 33.75
+ 34
+ 34.25
+ 34.75
+ 34.75
+ 35.5
+ 35.25
+ 36.5
+ 36
+ 36.5
+ 38.75
+ 38.5
+ 37
+ 36.75
+ 36
+ 35.5
+ 34.75
+ 35
+ 35.75
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36.75
+ 38.25
+ 39.5
+ 39
+ 38.5
+ 38.75
+ 39
+ 40
+ 40.75
+ 40.5
+ 39
+ 37.5
+ 38
+ 37.75
+ 37.5
+ 37.25
+ 36.5
+ 36.25
+ 36
+ 35.5
+ 35
+ 33.5
+ 32
+ 34.5
+ 36.5
+ 36.5
+ 35.5
+ 34.5
+ 34.5
+ 34.5
+ 34.5
+ 35.75
+ 36.5
+ 36.75
+ 37
+ 36.75
+ 36.5
+ 35.75
+ 35.75
+ 35
+ 34.5
+ 34.25
+ 34
+ 33.5
+ 33.25
+ 33.25
+ 33
+ 33
+ 32.75
+ 32.5
+ 32.25
+ 32.25
+ 32
+ 31.75
+ 31.75
+ 31.75
+ 31.75
+ 31.5
+ 31.5
+ 31.25
+ 30.75
+ 30.5
+ 30.5
+ 29.75
+ 29.75
+ 29.5
+ 29.25
+ 28.25
+ 28
+ 28
+ 26.75
+ 26
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 25.25
+ 25
+ 25
+ 25
+ 25
+ 24.5
+ 24.25
+ 24
+ 23.5
+ 23
+ 22.5
+ 22.25
+ 22
+ 21.75
+ 22
+ 22
+ 22
+ 22
+ 22
+ 22.25
+ 22.5
+ 23.25
+ 23.5
+ 24.25
+ 24.5
+ 26.75
+ 27.25
+ 28
+ 30.75
+ 32
+ 33.25
+ 32.75
+ 32.25
+ 31.75
+ 31
+ 28.75
+ 28.75
+ 28.5
+ 28.25
+ 28
+ 28.25
+ 28.5
+ 29.75
+ 30.25
+ 30.5
+ 31
+ 32
+ 32.5
+ 33.25
+ 34
+ 37.5
+ 37.75
+ 39.25
+ 40.25
+ 40.5
+ 41
+ 41.25
+ 42.5
+ 43.25
+ 44.5
+ 48.5
+ 49.25
+ 50
+ 50
+ 50
+ 49.75
+ 48
+ 47.5
+ 47.25
+ 45.75
+ 45.25
+ 45.25
+ 45.25
+ 45
+ 44.75
+ 44.75
+ 44
+ 43.75
+ 44.5
+ 44.5
+ 44.75
+ 45
+ 45.25
+ 45.5
+ 46
+ 46.75
+ 49
+ 50.5
+ 51
+ 51.75
+ 52.5
+ 53
+ 53.5
+ 54.25
+ 54.5
+ 55
+ 55.5
+ 57
+ 57
+ 57
+ 57
+ 57
+ 57
+ 57.25
+ 57.25
+ 57.5
+ 57.5
+ 57.75
+ 58
+ 58.25
+ 58.5
+ 57.75
+ 57.5
+ 57
+ 56
+ 54
+ 54
+ 57
+ 57.75
+ 54
+ 54
+ 55.75
+ 56
+ 56.25
+ 59.5
+ 60
+ 61
+ 63
+ 63.25
+ 63
+ 62.75
+ 62
+ 60.75
+ 60.5
+ 61.5
+ 61.75
+ 62.75
+ 63.25
+ 63.25
+ 63.25
+ 62.5
+ 62
+ 60
+ 59.25
+ 55.75
+ 56
+ 56
+ 56.25
+ 55.5
+ 52.75
+ 52.75
+ 53
+ 56
+ 64.75
+ 66.5
+ 67.25
+ 67.75
+ 68.25
+ 69.75
+ 70.25
+ 72.25
+ 75
+ 77
+ 76.75
+ 76
+ 70.75
+ 69
+ 65.5
+ 65.25
+ 66.75
+ 67.5
+ 68.5
+ 69.75
+ 70.75
+ 72.75
+ 73.5
+ 74.75
+ 75.25
+ 75.5
+ 76.75
+ 77
+ 77.25
+ 77
+ 77.25
+ 77.5
+ 77.75
+ 78.75
+ 78
+ 77.75
+ 77.75
+ 78
+ 79
+ 79.5
+ 80.5
+ 81.5
+ 81.75
+ 81.5
+ 81
+ 80.5
+ 80.75
+ 80.75
+ 80.5
+ 80.25
+ 81
+ 84
+ 85
+ 85.25
+ 91.5
+ 93.25
+ 91.75
+ 90.75
+ 90.25
+ 89.25
+ 88.5
+ 87.5
+ 86.5
+ 85
+ 84
+ 84
+ 84
+ 84.25
+ 84.25
+ 80
+ 77.5
+ 77.5
+ 77.75
+ 77.75
+ 78
+ 78.25
+ 78.75
+ 77.25
+ 74
+ 69.5
+ 64.25
+ 62
+ 61.5
+ 61.25
+ 60.5
+ 61.75
+ 62
+ 62.25
+ 62.75
+ 63
+ 63.25
+ 63.25
+ 63
+ 63.25
+ 64
+ 64.75
+ 65.25
+ 67
+ 67
+ 67.75
+ 68
+ 68.75
+ 68.5
+ 67.5
+ 67.25
+ 66.75
+ 65.75
+ 65.75
+ 65.75
+ 65.25
+ 65.25
+ 65.25
+ 65.25
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 66.5
+ 66.75
+ 67.25
+ 68.25
+ 68.25
+ 68.75
+ 69.25
+ 70.5
+ 71
+ 72.75
+ 74
+ 74.5
+ 76.25
+ 76.25
+ 76.5
+ 76.75
+ 76.75
+ 78
+ 78.75
+ 79
+ 79.5
+ 81.5
+ 83
+ 83.75
+ 85.25
+ 86.25
+ 86.25
+ 86.25
+ 86
+ 85
+ 84.5
+ 84.75
+ 85
+ 85.25
+ 85.25
+ 85.5
+ 85.75
+ 85.75
+ 84.25
+ 84.25
+ 84.5
+ 84.75
+ 85
+ 85.25
+ 85.75
+ 87
+ 87.25
+ 88
+ 88.75
+ 90.5
+ 93
+ 93.75
+ 95
+ 96.25
+ 99
+ 99.5
+ 99.5
+ 99.5
+ 99.5
+ 105.5
+ 106.5
+ 103.5
+ 101.25
+ 101
+ 101
+ 101.25
+ 101.5
+ 101.5
+ 101.75
+ 101.75
+ 104.25
+ 105
+ 107
+ 107
+ 108
+ 109.75
+ 110.75
+ 109.5
+ 109.25
+ 109
+ 108.5
+ 108.75
+ 109
+ 109
+ 109.25
+ 109.25
+ 109.25
+ 108.75
+ 108.75
+ 108.5
+ 108.25
+ 108.75
+ 108.75
+ 108.75
+ 108.75
+ 108.5
+ 108
+ 107.75
+ 107.75
+ 107.75
+ 107.75
+ 107.75
+ 106.75
+ 106.5
+ 106.25
+ 106.25
+ 104.75
+ 104
+ 103.5
+ 103.5
+ 103.25
+ 103
+ 102.5
+ 101.75
+ 101.5
+ 101.25
+ 100.25
+ 99.75
+ 99.75
+ 99.5
+ 99
+ 98.5
+ 97.25
+ 94.5
+ 92.5
+ 93.25
+ 99.75
+ 100.25
+ 100.5
+ 100.75
+ 101.5
+ 102.25
+ 102.25
+ 101.75
+ 101
+ 99.25
+ 99
+ 99.5
+ 99.75
+ 100
+ 100
+ 99.75
+ 98.5
+ 97
+ 97.25
+ 97.25
+ 96.5
+ 96
+ 95.75
+ 95.5
+ 95.5
+ 95.75
+ 96.5
+ 97.75
+ 98.75
+ 98.75
+ 98.5
+ 98.5
+ 98.5
+ 98.75
+ 98.75
+ 99.5
+ 99.75
+ 99.5
+ 98.25
+ 95.25
+ 93.75
+ 92.5
+ 92.25
+ 92
+ 91.25
+ 91
+ 91.25
+ 91.75
+ 92
+ 93
+ 93
+ 93
+ 93
+ 94.5
+ 95.25
+ 95.5
+ 97
+ 97.75
+ 98.75
+ 100.75
+ 101.5
+ 102
+ 102.5
+ 103.5
+ 104
+ 104.5
+ 105.75
+ 109.5
+ 110.25
+ 110.5
+ 109.25
+ 108.5
+ 108.25
+ 108
+ 107.75
+ 108
+ 108
+ 108
+ 108
+ 107
+ 104.75
+ 104
+ 98.25
+ 95.75
+ 88.5
+ 88
+ 88
+ 88.25
+ 88.75
+ 89.25
+ 89.75
+ 90.5
+ 90.5
+ 90.75
+ 90.5
+ 90.25
+ 89.75
+ 85.25
+ 85.75
+ 87.25
+ 88.75
+ 89
+ 89
+ 89.25
+ 90.5
+ 91
+ 91.25
+ 91.5
+ 91.75
+ 91.75
+ 92
+ 92
+ 91.5
+ 91.25
+ 90.75
+ 90.5
+ 90.25
+ 89.5
+ 89.25
+ 89
+ 88.5
+ 88.25
+ 87.5
+ 87
+ 87
+ 87
+ 87
+ 87.5
+ 87.5
+ 87.25
+ 87.25
+ 86.75
+ 85.25
+ 85
+ 85
+ 84.75
+ 84.25
+ 83.75
+ 83
+ 83.25
+ 83.25
+ 83.25
+ 83
+ 82.75
+ 81
+ 79
+ 78.25
+ 77
+ 75.5
+ 72.75
+ 72.5
+ 72
+ 71.5
+ 71.25
+ 70.75
+ 70.75
+ 70.75
+ 70.75
+ 70.75
+ 68.5
+ 66
+ 62.5
+ 57.75
+ 56.25
+ 56.5
+ 57.25
+ 58
+ 57.5
+ 57
+ 56.75
+ 56
+ 55
+ 53
+ 51.5
+ 49.5
+ 46.25
+ 43.5
+ 42.75
+ 42.5
+ 41.5
+ 41
+ 40.75
+ 40
+ 39.5
+ 38.75
+ 42.25
+ 46.75
+ 49
+ 53
+ 53
+ 52.5
+ 52.75
+ 52.75
+ 52.75
+ 53
+ 53.5
+ 54.25
+ 55
+ 56
+ 55.75
+ 56.75
+ 52.75
+ 53
+ 53.25
+ 53.5
+ 52.75
+ 51.5
+ 52
+ 53
+ 56
+ 56.25
+ 60
+ 62
+ 62.5
+ 62.25
+ 61.5
+ 60.75
+ 60.5
+ 60.5
+ 60
+ 59.75
+ 59.75
+ 58.25
+ 57.75
+ 56.5
+ 54.75
+ 55.5
+ 53.5
+ 51.5
+ 49.25
+ 47
+ 44.5
+ 42
+ 40.5
+ 38.75
+ 38.5
+ 39
+ 39.75
+ 40.75
+ 42
+ 42.75
+ 43.5
+ 43.75
+ 43.75
+ 44.25
+ 44.5
+ 45
+ 45
+ 45
+ 45.25
+ 45.5
+ 46
+ 47.25
+ 48.5
+ 49.5
+ 50.75
+ 52
+ 52
+ 52
+ 52.75
+ 53.5
+ 53.5
+ 52.25
+ 51.75
+ 51.5
+ 51.75
+ 51.25
+ 52.25
+ 52.25
+ 52.75
+ 52.5
+ 52.25
+ 52.25
+ 53
+ 53.5
+ 53
+ 49
+ 45
+ 42.25
+ 41.5
+ 41.75
+ 42.25
+ 45.5
+ 47.25
+ 48
+ 48
+ 47.75
+ 42.75
+ 40.5
+ 39.5
+ 37.75
+ 36.25
+ 36.5
+ 36.75
+ 37.25
+ 37.75
+ 38.25
+ 38.75
+ 38.5
+ 38.5
+ 38.5
+ 38.75
+ 38.25
+ 37.75
+ 37.5
+ 37
+ 36.5
+ 35.75
+ 34.75
+ 33
+ 32.5
+ 32
+ 32.25
+ 32.25
+ 32.75
+ 33.5
+ 35.75
+ 36.25
+ 36.5
+ 36.75
+ 36.75
+ 34.5
+ 34.5
+ 34.5
+ 35.5
+ 35
+ 34
+ 33
+ 33.25
+ 32.5
+ 32.25
+ 30.25
+ 30.25
+ 29.5
+ 29.5
+ 30.5
+ 31.75
+ 34
+ 36
+ 41
+ 46.75
+ 42.75
+ 39
+ 25
+ 24.75
+ 23.25
+ 23.25
+ 22
+ 19
+ 21.25
+ 22.25
+ 23.75
+ 23.75
+ 23
+ 22.25
+ 21.5
+ 20.75
+ 14.75
+ 14.25
+ 13.5
+ 13.25
+ 13.25
+ 12.75
+ 12.25
+ 11.75
+ 11.75
+ 8.75
+ 8.25
+ 8
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 7.5
+ 8
+ 9.5
+ 9.5
+ 10
+ 10.25
+ 10.5
+ 11
+ 11.5
+ 11.75
+ 12.25
+ 13.5
+ 13.75
+ 13.75
+ 14.25
+ 14.5
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 15
+ 15
+ 15
+ 14.25
+ 11.25
+ 12.25
+ 11.25
+ 14.25
+ 15.75
+ 15.75
+ 15.5
+ 15.75
+ 15.75
+ 15.75
+ 14.5
+ 14.5
+ 17
+ 12.75
+ 12.5
+ 11.5
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 10.25
+ 12.25
+ 13
+ 13.5
+ 14
+ 13.25
+ 15.25
+ 16
+ 15
+ 14
+ 15.5
+ 16.75
+ 17.75
+ 17.5
+ 17.5
+ 18.5
+ 18
+ 17
+ 17
+ 17
+ 15.25
+ 16.75
+ 18.25
+ 19.5
+ 23.75
+ 25.75
+ 27.75
+ 29.75
+ 32.75
+ 38.75
+ 43.75
+ 47.75
+ 49.25
+ 48.5
+ 49.5
+ 50
+ 50.75
+ 51
+ 52
+ 52.25
+ 52.25
+ 52.5
+ 52.75
+ 53
+ 53
+ 52.5
+ 53
+ 53.25
+ 53.25
+ 54.25
+ 54.75
+ 55
+ 55
+ 55.25
+ 56
+ 56.75
+ 58.25
+ 62.25
+ 64
+ 62.25
+ 63
+ 63.25
+ 63.75
+ 64.25
+ 68
+ 68
+ 66
+ 65.75
+ 65.25
+ 65.5
+ 65.5
+ 65
+ 64.75
+ 64.75
+ 64.5
+ 64.75
+ 65
+ 66.25
+ 69
+ 69.5
+ 69.75
+ 70.5
+ 72
+ 72.5
+ 73
+ 73.5
+ 73.5
+ 73
+ 71.75
+ 70.75
+ 70.5
+ 70.5
+ 70.5
+ 70
+ 69.75
+ 69.25
+ 69.25
+ 69.5
+ 67.75
+ 64.5
+ 61.5
+ 60.75
+ 58.25
+ 58
+ 57.5
+ 56.5
+ 56.5
+ 57
+ 58
+ 58
+ 57.5
+ 53
+ 53.25
+ 53.5
+ 52.25
+ 50.5
+ 50.75
+ 51
+ 51.5
+ 52
+ 52.5
+ 52.5
+ 52
+ 51.25
+ 51
+ 50.75
+ 50.5
+ 50.5
+ 51
+ 51.75
+ 53
+ 53.25
+ 53.5
+ 53.5
+ 54.5
+ 54.75
+ 55
+ 55.5
+ 56.25
+ 56.75
+ 57
+ 57.25
+ 57.25
+ 57.75
+ 58
+ 58.25
+ 58.5
+ 58.5
+ 57.75
+ 57.5
+ 53
+ 53
+ 53
+ 52.5
+ 51.75
+ 52.25
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 51.5
+ 51.75
+ 51.25
+ 50.5
+ 49.25
+ 51.5
+ 52.5
+ 53
+ 53.25
+ 53.25
+ 53
+ 53.25
+ 53.5
+ 54.5
+ 54.75
+ 55
+ 55.25
+ 55.25
+ 56.75
+ 57
+ 57.5
+ 57.75
+ 58
+ 57.75
+ 57.25
+ 55.75
+ 55.25
+ 55
+ 55.5
+ 56.5
+ 57.25
+ 60.75
+ 60.25
+ 60
+ 60.75
+ 61.25
+ 61.75
+ 59.75
+ 58.25
+ 57
+ 56.25
+ 53.25
+ 52.5
+ 54.25
+ 55.75
+ 57.5
+ 58.75
+ 60
+ 61.25
+ 63
+ 64
+ 64.25
+ 63.75
+ 61.75
+ 61.5
+ 61.75
+ 62.75
+ 63
+ 62.5
+ 61.75
+ 63
+ 63.75
+ 64.25
+ 64.75
+ 64.75
+ 64.5
+ 64.25
+ 64.75
+ 65
+ 61.5
+ 59.75
+ 59.5
+ 61.5
+ 64
+ 66
+ 67.25
+ 67.5
+ 66.75
+ 65.75
+ 67.75
+ 68.25
+ 68
+ 67.25
+ 65.75
+ 64.5
+ 63.5
+ 62.75
+ 62.25
+ 62
+ 62
+ 62.25
+ 63.25
+ 63
+ 62.75
+ 61.75
+ 61.5
+ 60.75
+ 64.75
+ 65.75
+ 66.5
+ 66.75
+ 67.25
+ 68
+ 67.5
+ 65.5
+ 63.75
+ 62.5
+ 61.5
+ 60.25
+ 59.5
+ 59.5
+ 62.25
+ 62.25
+ 61.75
+ 61
+ 58.5
+ 58.5
+ 58.25
+ 58
+ 58
+ 57.75
+ 56.75
+ 57
+ 57.5
+ 58.75
+ 58
+ 57.5
+ 57.25
+ 57.5
+ 57.75
+ 59.5
+ 59.75
+ 59.5
+ 59.5
+ 59.75
+ 59.75
+ 60
+ 59.75
+ 59
+ 57.25
+ 55.5
+ 53.75
+ 52.75
+ 51.5
+ 50.5
+ 50
+ 50.75
+ 58.25
+ 61.75
+ 63
+ 64.75
+ 65.5
+ 66
+ 66.25
+ 66.25
+ 66
+ 65.5
+ 64
+ 59.75
+ 58.25
+ 57.75
+ 58.25
+ 59
+ 60
+ 61
+ 61.25
+ 61.25
+ 64.75
+ 65
+ 66.5
+ 71.5
+ 72
+ 72.25
+ 73
+ 72.5
+ 71.25
+ 70.25
+ 68.25
+ 65.75
+ 61.75
+ 59
+ 58.25
+ 58.5
+ 58.5
+ 57.25
+ 56.75
+ 56
+ 55
+ 54.75
+ 57
+ 57.5
+ 58.25
+ 59
+ 59.5
+ 59.75
+ 60.25
+ 60
+ 60.75
+ 61
+ 61.25
+ 61.25
+ 60.75
+ 59.25
+ 56.75
+ 56
+ 56
+ 56
+ 56
+ 56
+ 56
+ 56.75
+ 57.5
+ 58
+ 58
+ 57.5
+ 57
+ 57.5
+ 55.25
+ 53
+ 51
+ 49.75
+ 49
+ 51
+ 52.5
+ 53.5
+ 54
+ 54
+ 54.25
+ 53.5
+ 56
+ 57.5
+ 58.25
+ 59
+ 59.75
+ 60.75
+ 57.75
+ 56.25
+ 53
+ 49.5
+ 45.75
+ 44.25
+ 43.5
+ 43.75
+ 45.5
+ 46
+ 46.25
+ 46
+ 45.25
+ 43.5
+ 42
+ 41.25
+ 38.5
+ 36.5
+ 36.25
+ 36
+ 35.75
+ 35.75
+ 36
+ 35.5
+ 34
+ 33
+ 31.5
+ 30.25
+ 29.25
+ 29.5
+ 29.75
+ 30
+ 30
+ 30
+ 30.5
+ 31
+ 32.25
+ 32.25
+ 32.25
+ 33
+ 32.5
+ 31.25
+ 30.5
+ 29.5
+ 33
+ 32
+ 26.5
+ 24.5
+ 23.25
+ 23.25
+ 23.5
+ 24.5
+ 24.75
+ 26.75
+ 27
+ 27.5
+ 27.5
+ 27.25
+ 24.25
+ 21.5
+ 20.5
+ 20.25
+ 20.25
+ 19.5
+ 18
+ 17.25
+ 16.75
+ 16.75
+ 17
+ 17.25
+ 17.5
+ 17.75
+ 18.25
+ 18.75
+ 19.25
+ 19.25
+ 19.5
+ 21
+ 21.25
+ 21
+ 21
+ 21.5
+ 21.75
+ 21.75
+ 20.5
+ 20
+ 19.5
+ 18.25
+ 17.25
+ 17.25
+ 16.75
+ 16.5
+ 16.5
+ 16.75
+ 19.25
+ 19.5
+ 19.5
+ 19.5
+ 18.75
+ 18.25
+ 17.75
+ 17.25
+ 15.75
+ 15.5
+ 15.5
+ 15.75
+ 16.5
+ 16.75
+ 18.25
+ 19.75
+ 20.75
+ 21
+ 21
+ 20.75
+ 20.75
+ 20.75
+ 26
+ 26.25
+ 26
+ 26
+ 26
+ 26
+ 26.5
+ 29
+ 29.75
+ 31.25
+ 31.5
+ 31.5
+ 31.75
+ 32.5
+ 33.75
+ 34.25
+ 33.25
+ 32.5
+ 32
+ 31.5
+ 31
+ 30.75
+ 29.75
+ 29
+ 27.75
+ 23
+ 21.5
+ 20.25
+ 19
+ 18.5
+ 17.5
+ 16.25
+ 16
+ 16.25
+ 16.25
+ 16
+ 15.75
+ 15.5
+ 15
+ 14.5
+ 11.25
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 9.25
+ 9.5
+ 9.25
+ 8.5
+ 8.25
+ 8.25
+ 11.25
+ 14.5
+ 15.25
+ 15.25
+ 13.75
+ 13.5
+ 14
+ 14.5
+ 15.25
+ 15.5
+ 15.75
+ 15.75
+ 16.25
+ 16.25
+ 17.5
+ 20.25
+ 20.75
+ 20.25
+ 20.75
+ 20.5
+ 18
+ 17
+ 16.25
+ 16
+ 15.5
+ 15
+ 14.5
+ 13.75
+ 13.5
+ 13.75
+ 13.75
+ 14
+ 14.75
+ 15.75
+ 15.5
+ 17
+ 20.5
+ 20.25
+ 22.75
+ 23.5
+ 23.5
+ 24.5
+ 24.75
+ 24.75
+ 24.75
+ 24.75
+ 24.5
+ 24.25
+ 24
+ 23.25
+ 22.75
+ 21.75
+ 16.75
+ 16.75
+ 17.5
+ 19
+ 19.5
+ 20
+ 21.25
+ 22
+ 22.25
+ 24.25
+ 24.5
+ 24.75
+ 24.75
+ 24.5
+ 23.25
+ 22
+ 22.25
+ 22.25
+ 22
+ 21.25
+ 21.5
+ 21.5
+ 22.75
+ 23.5
+ 24.25
+ 25.25
+ 26.25
+ 26
+ 25.75
+ 26.5
+ 27.25
+ 27.5
+ 28.25
+ 28
+ 27.75
+ 27.25
+ 27
+ 27
+ 26.75
+ 26.75
+ 26.5
+ 26.25
+ 26
+ 25.75
+ 25.75
+ 25.5
+ 25.25
+ 25
+ 25
+ 24.5
+ 24.5
+ 23.75
+ 23.25
+ 22.75
+ 22.75
+ 22.5
+ 22.25
+ 21.25
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 20.75
+ 20.75
+ 20.25
+ 19.5
+ 19.5
+ 19.5
+ 19.25
+ 18.5
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.5
+ 19.25
+ 19.75
+ 20
+ 19.75
+ 19.5
+ 19
+ 19
+ 18.75
+ 18.75
+ 18.5
+ 18.75
+ 18
+ 16
+ 14
+ 13.25
+ 13
+ 12.25
+ 11.75
+ 11.75
+ 12.25
+ 14
+ 14
+ 14.25
+ 14.25
+ 12.5
+ 12.5
+ 11.75
+ 12
+ 12
+ 11.5
+ 11
+ 10
+ 9.25
+ 9
+ 8.75
+ 9.75
+ 11
+ 14.25
+ 16.5
+ 19.5
+ 21
+ 22.5
+ 23.75
+ 24.5
+ 27.25
+ 29
+ 30.75
+ 30.5
+ 30
+ 26.75
+ 25.5
+ 23.5
+ 20.5
+ 19.25
+ 18.5
+ 18.25
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.5
+ 20.5
+ 22.25
+ 22.75
+ 22.75
+ 20.5
+ 19.25
+ 18.25
+ 18.25
+ 18
+ 18.5
+ 18.75
+ 18.75
+ 19
+ 19
+ 19
+ 19.25
+ 19.25
+ 19.25
+ 19
+ 18.75
+ 18.75
+ 18.75
+ 19.5
+ 12.25
+ 13.75
+ 14.75
+ 14.75
+ 14.5
+ 14.75
+ 15
+ 15.25
+ 15.75
+ 18.75
+ 19.25
+ 22
+ 22
+ 21.5
+ 26.5
+ 26.25
+ 25.25
+ 27.25
+ 26.75
+ 27
+ 26
+ 22
+ 21.25
+ 21.5
+ 21
+ 19.25
+ 16.5
+ 20.25
+ 17.25
+ 16.5
+ 18
+ 17.75
+ 16.25
+ 11.75
+ 12.25
+ 12.5
+ 12.25
+ 12
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 11.25
+ 10.75
+ 10.5
+ 10
+ 9.75
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.5
+ 6.75
+ 7.25
+ 7.5
+ 7.75
+ 8.25
+ 8.75
+ 9.25
+ 9.75
+ 10.5
+ 10.5
+ 10.5
+ 9.25
+ 9.5
+ 9.5
+ 8.75
+ 8.25
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 9.25
+ 9.5
+ 9.5
+ 9.75
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.75
+ 13
+ 13
+ 13.25
+ 13.25
+ 12.75
+ 12.75
+ 12.5
+ 12
+ 11.75
+ 11.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 11
+ 11.25
+ 11.5
+ 11.5
+ 11
+ 10.75
+ 10
+ 9.5
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8.75
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8
+ 7.25
+ 6.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 6
+ 6.5
+ 7
+ 8.75
+ 8.75
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 8.5
+ 8.75
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.75
+ 9
+ 9
+ 8.5
+ 8.75
+ 9.5
+ 10.5
+ 11.5
+ 14.5
+ 14.5
+ 15.5
+ 16.25
+ 18.25
+ 24.75
+ 25.25
+ 25.5
+ 25.5
+ 23.25
+ 23
+ 23
+ 23
+ 23
+ 21.75
+ 20.5
+ 20
+ 20
+ 19.75
+ 19.75
+ 19.75
+ 19.75
+ 19.75
+ 19.5
+ 19
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 19.25
+ 20.75
+ 21
+ 21.75
+ 22.5
+ 23.75
+ 24.75
+ 25.25
+ 26
+ 26.75
+ 26.75
+ 26.75
+ 26.75
+ 26.5
+ 26.5
+ 26
+ 26.25
+ 26.75
+ 28
+ 28.25
+ 28.25
+ 28.5
+ 28.75
+ 29
+ 29.25
+ 30.75
+ 32.25
+ 34
+ 34
+ 34
+ 33.75
+ 33.25
+ 33
+ 32.75
+ 32.75
+ 32.75
+ 33
+ 33
+ 33
+ 33
+ 32.75
+ 32.5
+ 32.5
+ 31.75
+ 31.5
+ 31.25
+ 31
+ 30.75
+ 30
+ 29.5
+ 29.25
+ 29.25
+ 29.25
+ 28.25
+ 28
+ 27.75
+ 26.25
+ 25.75
+ 28.25
+ 28.5
+ 29.25
+ 29.5
+ 30.25
+ 30.75
+ 31
+ 31.25
+ 32
+ 35.75
+ 36
+ 36
+ 36
+ 36.25
+ 36.5
+ 36.25
+ 36
+ 36.25
+ 34.5
+ 33
+ 32.75
+ 32.5
+ 33.75
+ 34
+ 34
+ 35.75
+ 36
+ 37.25
+ 37.5
+ 37.75
+ 38
+ 38.25
+ 43.25
+ 45.5
+ 45.75
+ 45.75
+ 46
+ 46
+ 46
+ 46.25
+ 46.25
+ 46.5
+ 46.5
+ 46.75
+ 49.5
+ 50
+ 51.5
+ 52.25
+ 52.25
+ 51.75
+ 51
+ 51
+ 51
+ 50.75
+ 50.75
+ 50.5
+ 51
+ 53.25
+ 53.75
+ 54.5
+ 53.75
+ 47.5
+ 47
+ 45.5
+ 44.75
+ 43.25
+ 42.5
+ 40.75
+ 37.75
+ 33.5
+ 31.5
+ 28
+ 27.5
+ 27.25
+ 26
+ 25.5
+ 25
+ 23.75
+ 23.75
+ 24.75
+ 24.75
+ 25.75
+ 26
+ 26
+ 25.75
+ 25.25
+ 25
+ 24.5
+ 24.5
+ 24.25
+ 24
+ 24.5
+ 24.5
+ 24.5
+ 24.25
+ 24
+ 23.25
+ 22.75
+ 22.5
+ 22.25
+ 21.5
+ 21.5
+ 21.75
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 22.25
+ 22
+ 21.5
+ 21.5
+ 21.5
+ 22
+ 22.25
+ 22.25
+ 22
+ 21.75
+ 21.5
+ 21.25
+ 20.75
+ 21.25
+ 21.25
+ 21.25
+ 18.75
+ 19
+ 19
+ 19
+ 19
+ 18.25
+ 17.25
+ 15.75
+ 12.75
+ 12
+ 11.75
+ 10.5
+ 10.25
+ 10.5
+ 11.25
+ 15.25
+ 15.5
+ 15.75
+ 16
+ 16
+ 15.25
+ 15
+ 12.25
+ 11.5
+ 13.75
+ 14.25
+ 14.75
+ 14
+ 13.5
+ 13.25
+ 12.25
+ 12
+ 11.75
+ 11.5
+ 11.5
+ 11.5
+ 13.5
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 12.25
+ 9.75
+ 10
+ 9.25
+ 9.25
+ 9
+ 9
+ 9
+ 8.75
+ 8.25
+ 8.25
+ 8
+ 8
+ 8.75
+ 9
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 8.25
+ 8.25
+ 6
+ 5.5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6.75
+ 7.25
+ 8
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 9
+ 9
+ 8.75
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 9.5
+ 10
+ 10.75
+ 11
+ 11.5
+ 11.5
+ 11.25
+ 11
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 11.25
+ 11.75
+ 12
+ 12.5
+ 12.75
+ 12.75
+ 13.25
+ 13.25
+ 13
+ 12.5
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 9.75
+ 9.75
+ 9.5
+ 9.25
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 8.25
+ 8.75
+ 9.5
+ 9.5
+ 9.25
+ 10.5
+ 10.5
+ 10.5
+ 9.75
+ 9.25
+ 8.75
+ 8.25
+ 7.75
+ 7.5
+ 7.25
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.75
+ 10
+ 10.25
+ 10.75
+ 11
+ 11.25
+ 11.75
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.5
+ 12.5
+ 12.25
+ 11.75
+ 16.25
+ 17.75
+ 18
+ 16.5
+ 17.25
+ 20.25
+ 16.5
+ 19.25
+ 21
+ 21.5
+ 21.25
+ 22
+ 26
+ 27
+ 26.75
+ 27.25
+ 25.25
+ 26.25
+ 26.5
+ 21.5
+ 22
+ 22
+ 19.25
+ 18.75
+ 15.75
+ 15.25
+ 15
+ 14.75
+ 14.5
+ 14.75
+ 14.75
+ 13.75
+ 12.25
+ 19.5
+ 18.75
+ 18.75
+ 18.75
+ 19
+ 19.25
+ 19.25
+ 19.25
+ 19
+ 19
+ 19
+ 18.75
+ 18.75
+ 18.5
+ 18
+ 18.25
+ 18.25
+ 19.25
+ 20.5
+ 22.75
+ 22.75
+ 22.25
+ 20.5
+ 18.5
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 18.25
+ 18.5
+ 19.25
+ 20.5
+ 23.5
+ 25.5
+ 26.75
+ 30
+ 30.5
+ 30.75
+ 29
+ 27.25
+ 24.5
+ 23.75
+ 22.5
+ 21
+ 19.5
+ 16.5
+ 14.25
+ 11
+ 9.75
+ 8.75
+ 9
+ 9.25
+ 10
+ 11
+ 11.5
+ 12
+ 12
+ 11.75
+ 12.5
+ 12.5
+ 14.25
+ 14.25
+ 14
+ 14
+ 12.25
+ 11.75
+ 11.75
+ 12.25
+ 13
+ 13.25
+ 14
+ 16
+ 18
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 19
+ 19
+ 19.25
+ 19.5
+ 19.25
+ 19.25
+ 18.75
+ 18.5
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.5
+ 18.5
+ 19.25
+ 19.5
+ 19.5
+ 19.5
+ 20.25
+ 20.75
+ 20.75
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21.25
+ 22.25
+ 22.5
+ 22.75
+ 23
+ 23.25
+ 24
+ 24.5
+ 24.75
+ 25
+ 25.25
+ 25.25
+ 25.5
+ 25.75
+ 25.75
+ 26.25
+ 26.25
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 27.25
+ 27.25
+ 28
+ 28
+ 28.25
+ 27.5
+ 27.25
+ 26.5
+ 25.75
+ 26
+ 26.25
+ 25.25
+ 24.25
+ 23.5
+ 22.75
+ 21.5
+ 21.5
+ 21.25
+ 22
+ 22.25
+ 22.25
+ 22
+ 23.25
+ 24.5
+ 24.75
+ 24.75
+ 24.5
+ 24.25
+ 22.25
+ 22
+ 21.25
+ 20
+ 19.5
+ 19
+ 17.5
+ 16.75
+ 16.75
+ 21.75
+ 22.75
+ 23.25
+ 24
+ 24.25
+ 24.5
+ 24.75
+ 24.75
+ 24.75
+ 24.75
+ 24.5
+ 23.5
+ 23.5
+ 22.75
+ 20.25
+ 20.5
+ 17
+ 15.5
+ 15.75
+ 14.75
+ 14
+ 13.75
+ 13.75
+ 13.5
+ 13.75
+ 14.5
+ 15
+ 15.5
+ 16
+ 16.25
+ 17
+ 18
+ 20.5
+ 20.75
+ 20.25
+ 20.75
+ 20.25
+ 17.5
+ 16.25
+ 15.75
+ 15.5
+ 15.25
+ 15.25
+ 15.25
+ 14.5
+ 14
+ 13.5
+ 13.75
+ 15.25
+ 15.25
+ 14.5
+ 11.25
+ 8.25
+ 8.25
+ 8.5
+ 9.25
+ 9.5
+ 9.25
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 11.25
+ 14.5
+ 15
+ 15.5
+ 15.75
+ 16
+ 16.25
+ 16.25
+ 16
+ 16.25
+ 17.5
+ 18.5
+ 19
+ 20.25
+ 21.5
+ 23
+ 27.75
+ 29
+ 29.75
+ 30.75
+ 31
+ 31.5
+ 32
+ 32.5
+ 33.25
+ 34.25
+ 33.75
+ 32.5
+ 31.75
+ 31.5
+ 31.5
+ 31.25
+ 29.75
+ 29
+ 26.5
+ 26
+ 26
+ 24
+ 24.25
+ 24
+ 22.25
+ 23
+ 22.75
+ 21.75
+ 21.5
+ 20.75
+ 19.75
+ 19.5
+ 20.75
+ 21.5
+ 23
+ 23.5
+ 24.25
+ 24.75
+ 24
+ 21.25
+ 20
+ 19.5
+ 18.75
+ 17.75
+ 17.5
+ 17
+ 16.75
+ 16.75
+ 16.75
+ 17.25
+ 18
+ 19.5
+ 20.25
+ 20.25
+ 20.5
+ 21.5
+ 24.25
+ 27.25
+ 27.5
+ 27.5
+ 27
+ 26.75
+ 24.75
+ 24.5
+ 23.5
+ 23.25
+ 23.25
+ 24.5
+ 26.5
+ 32
+ 33
+ 29.5
+ 30.5
+ 31.25
+ 32.5
+ 33
+ 32.25
+ 32.25
+ 32.25
+ 31
+ 30.5
+ 30
+ 30
+ 30
+ 29.75
+ 29.5
+ 29.25
+ 30.25
+ 31.5
+ 33
+ 34
+ 35.5
+ 36
+ 35.75
+ 35.75
+ 36
+ 36.25
+ 36.5
+ 38.5
+ 41.25
+ 42
+ 43.5
+ 45.25
+ 46
+ 46.25
+ 46
+ 45.5
+ 43.75
+ 43.5
+ 44.25
+ 45.75
+ 49.5
+ 53
+ 56.25
+ 57.75
+ 60.75
+ 59.75
+ 59
+ 58.25
+ 57.5
+ 56
+ 53.5
+ 54.25
+ 54
+ 54
+ 53.5
+ 52.5
+ 51
+ 49
+ 49.75
+ 51
+ 53
+ 55.25
+ 57.5
+ 57
+ 57.5
+ 58
+ 58
+ 57.5
+ 56.75
+ 56
+ 56
+ 56
+ 56
+ 56
+ 56
+ 56.75
+ 59.25
+ 60.75
+ 61.25
+ 61.25
+ 61
+ 60.75
+ 60
+ 60.25
+ 59.75
+ 59.5
+ 59
+ 58.25
+ 57.5
+ 57
+ 54.75
+ 55
+ 56
+ 56.75
+ 57.25
+ 58.5
+ 58.5
+ 58.25
+ 59
+ 61.75
+ 65.75
+ 68.25
+ 70.25
+ 71.25
+ 72.5
+ 73
+ 72.25
+ 72
+ 71.5
+ 66.5
+ 65
+ 64.75
+ 61.25
+ 61.25
+ 61
+ 60
+ 59
+ 58.25
+ 57.75
+ 58.25
+ 59.75
+ 64
+ 65.5
+ 66
+ 66.25
+ 66.25
+ 66
+ 65.5
+ 64.75
+ 63
+ 61.75
+ 58.25
+ 50.75
+ 50
+ 50.5
+ 51.5
+ 52.75
+ 53.75
+ 55.5
+ 57.25
+ 59
+ 59.75
+ 60
+ 59.75
+ 59.75
+ 59.5
+ 59.5
+ 59.75
+ 59.5
+ 57.75
+ 57.5
+ 57.25
+ 57.5
+ 58
+ 58.75
+ 57.5
+ 57
+ 56.75
+ 57.75
+ 58
+ 58
+ 58.25
+ 58.5
+ 58.5
+ 61
+ 61.75
+ 62.25
+ 62.25
+ 59.5
+ 59.5
+ 60.25
+ 61.5
+ 62.5
+ 63.75
+ 65.5
+ 67.5
+ 68
+ 67.25
+ 66.75
+ 66.5
+ 65.75
+ 64.75
+ 60.75
+ 61.5
+ 61.75
+ 62.75
+ 63
+ 63.25
+ 62.25
+ 62
+ 62
+ 62.25
+ 62.75
+ 63.5
+ 64.5
+ 65.75
+ 67.25
+ 68
+ 68.25
+ 67.75
+ 65.75
+ 66.75
+ 67.5
+ 67.25
+ 66
+ 64
+ 61.5
+ 59.5
+ 59.75
+ 61.5
+ 65
+ 64.75
+ 64.25
+ 64.5
+ 64.75
+ 64.75
+ 64.25
+ 63.75
+ 63
+ 61.75
+ 62.5
+ 63
+ 62.75
+ 61.75
+ 61.5
+ 61.75
+ 63.75
+ 64.25
+ 64
+ 63
+ 61.25
+ 60
+ 58.75
+ 57.5
+ 55.75
+ 54.25
+ 52.5
+ 53.25
+ 56.25
+ 57
+ 58.25
+ 59.75
+ 61.75
+ 61.25
+ 60.75
+ 60
+ 60.25
+ 60.75
+ 57.25
+ 56.5
+ 55.5
+ 55
+ 55.25
+ 55.75
+ 57.25
+ 57.75
+ 58
+ 57.75
+ 57.5
+ 57
+ 56.75
+ 55.25
+ 55.25
+ 55
+ 54.75
+ 54.5
+ 53.5
+ 53.25
+ 53
+ 53.25
+ 53.25
+ 53
+ 52.5
+ 51.5
+ 49.25
+ 50.5
+ 51.25
+ 51.75
+ 51.5
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52
+ 52.25
+ 51.75
+ 52.5
+ 53
+ 53
+ 53
+ 57.5
+ 57.75
+ 58.5
+ 58.5
+ 58.25
+ 58
+ 57.75
+ 57.25
+ 57.25
+ 57
+ 56.75
+ 56.25
+ 55.5
+ 55
+ 54.75
+ 54.5
+ 53.5
+ 53.5
+ 53.25
+ 53
+ 51.75
+ 51
+ 50.5
+ 50.5
+ 50.75
+ 51
+ 51.25
+ 52
+ 52.5
+ 52.5
+ 52
+ 51.5
+ 51
+ 50.75
+ 50.5
+ 52.25
+ 53.5
+ 53.25
+ 53
+ 57.5
+ 58
+ 58
+ 57
+ 56.5
+ 56.5
+ 57.5
+ 58
+ 58.25
+ 60.75
+ 61.5
+ 64.5
+ 67.75
+ 69.5
+ 69.25
+ 69.25
+ 69.75
+ 70
+ 70.5
+ 70.5
+ 70.5
+ 70.75
+ 71.75
+ 73
+ 73.5
+ 73.5
+ 73
+ 72.5
+ 72
+ 70.5
+ 69.75
+ 69.5
+ 69
+ 66.25
+ 65
+ 64.75
+ 64.5
+ 64.75
+ 64.75
+ 65
+ 65.5
+ 65.5
+ 65.25
+ 65.75
+ 66
+ 68
+ 68
+ 64.25
+ 63.75
+ 63.25
+ 63
+ 62.25
+ 64
+ 62.25
+ 58.25
+ 56.75
+ 56
+ 55.25
+ 55
+ 55
+ 54.75
+ 54.25
+ 53.25
+ 53.25
+ 53
+ 52.5
+ 53
+ 53
+ 52.75
+ 52.5
+ 52.25
+ 52.25
+ 52
+ 51
+ 50.75
+ 50
+ 49.5
+ 48.5
+ 49.25
+ 47.75
+ 43.75
+ 38.75
+ 32.75
+ 29.75
+ 27.75
+ 25.75
+ 23.75
+ 19.5
+ 18.25
+ 16.75
+ 15.25
+ 17
+ 17
+ 17
+ 18
+ 18.5
+ 17.5
+ 17.5
+ 17.75
+ 16.75
+ 15.5
+ 14
+ 15
+ 16
+ 15.25
+ 13.25
+ 14
+ 13.5
+ 13
+ 12.25
+ 10.25
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 11.5
+ 12.5
+ 12.75
+ 17
+ 14.5
+ 14.5
+ 15.75
+ 15.75
+ 15.75
+ 15.5
+ 15.75
+ 15.75
+ 14.25
+ 11.25
+ 12.25
+ 11.25
+ 14.25
+ 15
+ 15
+ 15
+ 15
+ 15
+ 15
+ 15
+ 15
+ 14.25
+ 13.75
+ 13.5
+ 13.25
+ 13
+ 12.75
+ 12.5
+ 11.25
+ 11
+ 10.75
+ 10.25
+ 9.75
+ 9.5
+ 9.25
+ 8.75
+ 8.75
+ 7.5
+ 7.5
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 8.25
+ 8.75
+ 11.75
+ 11.75
+ 12.25
+ 12.75
+ 13.25
+ 13.25
+ 13.5
+ 14.25
+ 14.75
+ 20.75
+ 21.5
+ 22.25
+ 23
+ 23.75
+ 23.75
+ 22.25
+ 21.25
+ 19
+ 22
+ 23.25
+ 23.25
+ 24.75
+ 25
+ 39
+ 42.75
+ 46.75
+ 41
+ 36
+ 34
+ 31.75
+ 30.5
+ 29.5
+ 29.5
+ 30.25
+ 31.25
+ 32.75
+ 33.25
+ 33.25
+ 33
+ 34
+ 35
+ 35.5
+ 34.5
+ 34.5
+ 34.5
+ 36.75
+ 36.75
+ 36.5
+ 36.25
+ 35.75
+ 33.5
+ 32.75
+ 32.25
+ 32.25
+ 32
+ 32.5
+ 33
+ 34.75
+ 35.75
+ 36.5
+ 37
+ 37.5
+ 37.75
+ 38.25
+ 38.75
+ 38.5
+ 38.5
+ 38.5
+ 38.75
+ 38.25
+ 37.75
+ 37.25
+ 36.75
+ 36.5
+ 36.25
+ 37.75
+ 39.5
+ 40.5
+ 42.75
+ 47.75
+ 48
+ 48
+ 47.25
+ 45.5
+ 42.25
+ 41.75
+ 41.5
+ 42.25
+ 45
+ 49
+ 53
+ 53.5
+ 53
+ 52.25
+ 52.25
+ 52.5
+ 52.75
+ 52.25
+ 52.25
+ 51.25
+ 51.75
+ 51.5
+ 51.75
+ 52.25
+ 53.5
+ 53.5
+ 52.75
+ 52
+ 52
+ 52
+ 50.75
+ 49.5
+ 48.5
+ 47.25
+ 46
+ 45.5
+ 45.25
+ 45
+ 45
+ 45
+ 44.5
+ 44.25
+ 43.75
+ 43.75
+ 43.5
+ 42.75
+ 42
+ 40.75
+ 39.75
+ 39
+ 38.5
+ 38.75
+ 40.5
+ 42
+ 44.5
+ 47
+ 49.25
+ 51.5
+ 53.5
+ 55.5
+ 54.75
+ 56.5
+ 57.75
+ 58.25
+ 59.75
+ 59.75
+ 60
+ 60.5
+ 60.5
+ 60.75
+ 61.5
+ 62.25
+ 62.5
+ 62
+ 60
+ 56.25
+ 56
+ 53
+ 52
+ 51.5
+ 52.75
+ 53.5
+ 53.25
+ 53
+ 52.75
+ 56.75
+ 55.75
+ 56
+ 55
+ 54.25
+ 53.5
+ 53
+ 52.75
+ 52.75
+ 52.75
+ 52.5
+ 53
+ 53
+ 49
+ 46.75
+ 42.25
+ 38.75
+ 39.5
+ 40
+ 40.75
+ 41
+ 41.5
+ 42.5
+ 42.75
+ 43.5
+ 46.25
+ 49.5
+ 51.5
+ 53
+ 55
+ 56
+ 56.75
+ 57
+ 57.5
+ 58
+ 57.25
+ 56.5
+ 56.25
+ 57.75
+ 62.5
+ 66
+ 68.5
+ 70.75
+ 70.75
+ 70.75
+ 70.75
+ 70.75
+ 71.25
+ 71.5
+ 72
+ 72.5
+ 72.75
+ 75.5
+ 77
+ 78.25
+ 79
+ 81
+ 82.75
+ 83
+ 83.25
+ 83.25
+ 83.25
+ 83
+ 83.75
+ 84.25
+ 84.75
+ 85
+ 85
+ 85.25
+ 86.75
+ 87.25
+ 87.25
+ 87.5
+ 87.5
+ 87
+ 87
+ 87
+ 87
+ 87.5
+ 88.25
+ 88.5
+ 89
+ 89.25
+ 89.5
+ 90.25
+ 90.5
+ 90.75
+ 91.25
+ 91.5
+ 92
+ 92
+ 91.75
+ 91.75
+ 91.5
+ 91.25
+ 91
+ 90.5
+ 89.25
+ 89
+ 89
+ 88.75
+ 87.25
+ 85.75
+ 85.25
+ 89.75
+ 90.25
+ 90.5
+ 90.75
+ 90.5
+ 90.5
+ 89.75
+ 89.25
+ 88.75
+ 88.25
+ 88
+ 88
+ 88.5
+ 95.75
+ 98.25
+ 104
+ 104.75
+ 107
+ 108
+ 108
+ 108
+ 108
+ 107.75
+ 108
+ 108.25
+ 108.5
+ 109.25
+ 110.5
+ 110.25
+ 109.5
+ 105.75
+ 104.5
+ 104
+ 103.5
+ 102.5
+ 102
+ 101.5
+ 100.75
+ 98.75
+ 97.75
+ 97
+ 95.5
+ 95.25
+ 94.5
+ 93
+ 93
+ 93
+ 93
+ 92
+ 91.75
+ 91.25
+ 91
+ 91.25
+ 92
+ 92.25
+ 92.5
+ 93.75
+ 95.25
+ 98.25
+ 99.5
+ 99.75
+ 99.5
+ 98.75
+ 98.75
+ 98.5
+ 98.5
+ 98.5
+ 98.75
+ 98.75
+ 97.75
+ 96.5
+ 95.75
+ 95.5
+ 95.5
+ 95.75
+ 96
+ 96.5
+ 97.25
+ 97.25
+ 97
+ 98.5
+ 99.75
+ 100
+ 100
+ 99.75
+ 99.5
+ 99
+ 99.25
+ 101
+ 101.75
+ 102.25
+ 102.25
+ 101.5
+ 100.75
+ 100.5
+ 100.25
+ 99.75
+ 93.25
+ 92.5
+ 94.5
+ 97.25
+ 98.5
+ 99
+ 99.5
+ 99.75
+ 99.75
+ 100.25
+ 101.25
+ 101.5
+ 101.75
+ 102.5
+ 103
+ 103.25
+ 103.5
+ 103.5
+ 104
+ 104.75
+ 106.25
+ 106.25
+ 106.5
+ 106.75
+ 107.75
+ 107.75
+ 107.75
+ 107.75
+ 107.75
+ 108
+ 108.5
+ 108.75
+ 108.75
+ 108.75
+ 108.75
+ 108.25
+ 108.5
+ 108.75
+ 108.75
+ 109.25
+ 109.25
+ 109.25
+ 109
+ 108.5
+ 108.5
+ 108.25
+ 108.25
+ 107.75
+ 107.5
+ 107.25
+ 107
+ 107
+ 107
+ 107
+ 107.25
+ 107.5
+ 107.75
+ 108.5
+ 108.75
+ 109.25
+ 109.5
+ 110.75
+ 109.75
+ 108
+ 107
+ 107
+ 105
+ 104.25
+ 102.75
+ 101.75
+ 101.5
+ 101.5
+ 101.5
+ 101.5
+ 101.25
+ 101
+ 101
+ 101.25
+ 103.5
+ 106.5
+ 105.5
+ 99.5
+ 99.5
+ 99.5
+ 99.5
+ 99
+ 96.25
+ 95
+ 93.75
+ 93
+ 90.5
+ 88.75
+ 88
+ 87.25
+ 87
+ 85.75
+ 85.25
+ 85
+ 84.75
+ 84.5
+ 84.25
+ 84.25
+ 85.75
+ 85.75
+ 85.5
+ 85.25
+ 85.25
+ 85
+ 84.75
+ 84.5
+ 85
+ 86
+ 86.25
+ 86.25
+ 86.25
+ 85.25
+ 83.75
+ 83
+ 81.5
+ 79.5
+ 79
+ 78.75
+ 78
+ 76.75
+ 76.75
+ 76.25
+ 76.25
+ 76.25
+ 76
+ 75.25
+ 74.25
+ 73.25
+ 72.75
+ 71.25
+ 70.75
+ 70.25
+ 69.75
+ 69.75
+ 69.75
+ 69.5
+ 69.25
+ 68.75
+ 68.25
+ 68.25
+ 68
+ 68
+ 67.5
+ 66.75
+ 66.5
+ 65
+ 65
+ 65
+ 65.25
+ 65.25
+ 65.25
+ 65.5
+ 65.75
+ 65.75
+ 66.75
+ 67.25
+ 67.5
+ 68.5
+ 68.75
+ 68
+ 67.75
+ 67
+ 66.5
+ 65.5
+ 64.75
+ 64.75
+ 64
+ 63.25
+ 63
+ 63.25
+ 63.25
+ 63
+ 62.75
+ 62.25
+ 62
+ 61.5
+ 60.5
+ 60.25
+ 60.75
+ 61.5
+ 62
+ 64.25
+ 69.5
+ 74
+ 77.25
+ 78.75
+ 78.25
+ 78
+ 77.75
+ 77.75
+ 77.5
+ 77.5
+ 80
+ 84.25
+ 84.25
+ 84
+ 84
+ 84.75
+ 84.5
+ 84.25
+ 84.25
+ 83
+ 82.75
+ 82.5
+ 82.5
+ 81.75
+ 81.75
+ 81
+ 80.5
+ 80.25
+ 80
+ 79.75
+ 79.75
+ 80
+ 77.25
+ 76
+ 74.75
+ 73.75
+ 72.75
+ 71.75
+ 71
+ 71
+ 71.25
+ 71.25
+ 71.5
+ 72.25
+ 72.25
+ 72.5
+ 72.5
+ 72.5
+ 72.5
+ 73.75
+ 74
+ 74
+ 74
+ 74.25
+ 74.25
+ 74
+ 74.5
+ 74.5
+ 74.5
+ 74.5
+ 74.25
+ 74.25
+ 74.25
+ 74.25
+ 74.5
+ 74.75
+ 75
+ 74.25
+ 74
+ 74
+ 73.5
+ 73.5
+ 73.25
+ 73
+ 73
+ 73
+ 73
+ 73.25
+ 73.5
+ 73.5
+ 74
+ 75
+ 76.75
+ 78
+ 80.5
+ 81
+ 80.75
+ 79.75
+ 78.75
+ 78.25
+ 77.5
+ 77.75
+ 77.75
+ 78
+ 78.75
+ 77.75
+ 77.5
+ 77.25
+ 77
+ 76.75
+ 76.5
+ 76
+ 74.5
+ 74
+ 73
+ 72.75
+ 70.75
+ 69.75
+ 68.5
+ 67.5
+ 66.75
+ 65.25
+ 65.5
+ 69
+ 70.75
+ 76
+ 76.75
+ 76.5
+ 76.75
+ 76.5
+ 74.25
+ 73.75
+ 71.25
+ 70.5
+ 69.5
+ 69.75
+ 68.25
+ 67.75
+ 67.25
+ 66.5
+ 64.75
+ 56
+ 53
+ 52.75
+ 52.75
+ 55.5
+ 56.25
+ 56
+ 56
+ 55.75
+ 59.25
+ 59.75
+ 61.5
+ 63
+ 63
+ 62.5
+ 62
+ 61.5
+ 60.5
+ 60.75
+ 62
+ 62.75
+ 63
+ 63.25
+ 63
+ 61
+ 60
+ 59.5
+ 56.25
+ 56
+ 55.75
+ 54
+ 54
+ 57.75
+ 57
+ 54
+ 54
+ 56
+ 57
+ 57.5
+ 57.5
+ 58
+ 58
+ 57.75
+ 57.75
+ 57.5
+ 57.5
+ 57.25
+ 57.25
+ 57
+ 57
+ 57
+ 57
+ 57
+ 57
+ 55.5
+ 55
+ 54.5
+ 54.25
+ 53.5
+ 53
+ 52.5
+ 51.75
+ 51
+ 50.5
+ 49
+ 46.75
+ 46
+ 45.5
+ 45.25
+ 45
+ 44.75
+ 44.5
+ 44.5
+ 43.75
+ 44
+ 44.75
+ 44.75
+ 45
+ 45.25
+ 45.25
+ 45.25
+ 45.75
+ 47.25
+ 47.5
+ 48
+ 49.75
+ 50
+ 50
+ 50
+ 49.25
+ 48.5
+ 44.5
+ 43.25
+ 42.5
+ 41.25
+ 41
+ 40.5
+ 40.25
+ 39.25
+ 37.75
+ 37.5
+ 34
+ 33.25
+ 32.5
+ 32
+ 31
+ 30.5
+ 30.25
+ 29.75
+ 28.5
+ 28.25
+ 28
+ 28.25
+ 28.5
+ 28.75
+ 28.75
+ 31
+ 31.75
+ 32.25
+ 32.75
+ 33.25
+ 32
+ 30.75
+ 28
+ 27.25
+ 26.75
+ 24.5
+ 24.25
+ 23.5
+ 23.25
+ 22.5
+ 22.25
+ 22
+ 22
+ 22
+ 22
+ 22
+ 21.75
+ 22
+ 22.25
+ 22.5
+ 23
+ 23.5
+ 24
+ 24.25
+ 24.5
+ 25
+ 25
+ 25
+ 25
+ 25.25
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 26
+ 26.75
+ 28
+ 28
+ 28.25
+ 29.25
+ 29.5
+ 29.75
+ 29.75
+ 30.5
+ 30.5
+ 30.75
+ 31.25
+ 31.5
+ 31.5
+ 31.75
+ 31.75
+ 31.75
+ 31.75
+ 32
+ 32.25
+ 32.25
+ 32.5
+ 32.75
+ 33
+ 33
+ 33.25
+ 33.25
+ 33.5
+ 34
+ 34.25
+ 34.5
+ 35
+ 35.75
+ 35.75
+ 36.5
+ 36.75
+ 37
+ 36.75
+ 36.5
+ 35.75
+ 34.5
+ 34.5
+ 34.5
+ 34.5
+ 35.5
+ 36.5
+ 36.5
+ 34.5
+ 32
+ 33.5
+ 35
+ 35.5
+ 36
+ 36.25
+ 36.5
+ 37.25
+ 37.5
+ 37.75
+ 38
+ 37.5
+ 39
+ 40.5
+ 40.75
+ 40
+ 39
+ 38.75
+ 38.5
+ 39
+ 39.5
+ 38.25
+ 36.75
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 35.75
+ 35
+ 34.75
+ 35.5
+ 36
+ 36.75
+ 37
+ 38.5
+ 38.75
+ 36.5
+ 36
+ 36.5
+ 35.25
+ 35.5
+ 34.75
+ 34.75
+ 34.25
+ 34
+ 33.75
+ 34
+ 36
+ 35.5
+ 33.75
+ 32.75
+ 32
+ 31.75
+ 31.5
+ 31.25
+ 31
+ 30
+ 30
+ 29.75
+ 29.5
+ 29.25
+ 29
+ 28.75
+ 28.75
+ 28.5
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28.5
+ 29
+ 30.25
+ 30
+ 28
+ 27.25
+ 25
+ 25
+ 25
+ 25
+ 25.5
+ 25.75
+ 25.5
+ 25
+ 24.75
+ 24
+ 24
+ 24.25
+ 24.75
+ 24.75
+ 25
+ 25.25
+ 25.25
+ 25
+ 25
+ 25
+ 27.5
+ 30.25
+ 30.75
+ 30.75
+ 32.5
+ 32.5
+ 31.5
+ 30.25
+ 29.5
+ 30
+ 30.5
+ 31.5
+ 31
+ 29.5
+ 28.5
+ 28
+ 28.5
+ 28.5
+ 28.5
+ 28.5
+ 28.75
+ 28.75
+ 30.25
+ 29.75
+ 30
+ 30.25
+ 30
+ 29.75
+ 29.25
+ 28.25
+ 28.25
+ 29.25
+ 29.5
+ 30
+ 29
+ 28.75
+ 28.75
+ 29
+ 28.25
+ 27.5
+ 26.75
+ 24
+ 23.5
+ 22.5
+ 22
+ 21.75
+ 21.75
+ 21.5
+ 21
+ 20.75
+ 20.25
+ 20.5
+ 21
+ 21.75
+ 22.25
+ 22.75
+ 23.25
+ 23.75
+ 24.25
+ 25.75
+ 27.75
+ 28.5
+ 29.25
+ 29
+ 28.5
+ 27.75
+ 27.25
+ 27.25
+ 27.5
+ 27.5
+ 28.25
+ 29.5
+ 30.75
+ 32.25
+ 32.75
+ 33.75
+ 35
+ 35.25
+ 37
+ 38.5
+ 39.25
+ 39
+ 39
+ 38.75
+ 37.75
+ 36.25
+ 35.75
+ 36.5
+ 38
+ 37.25
+ 36.5
+ 36.5
+ 35.75
+ 35
+ 34.75
+ 36
+ 34.5
+ 31.5
+ 28
+ 25
+ 21.25
+ 21.75
+ 21.75
+ 21.5
+ 21.5
+ 21.75
+ 22.75
+ 23.5
+ 24
+ 23.75
+ 17.25
+ 15.25
+ 15.25
+ 15.25
+ 13.75
+ 13.25
+ 12.25
+ 12
+ 11.5
+ 10.25
+ 10
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 10
+ 9.75
+ 9
+ 8.5
+ 7.75
+ 6.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 5
+ 5
+ 6
+ 6.75
+ 7.25
+ 7.75
+ 8.5
+ 10.75
+ 11.5
+ 12.25
+ 11.5
+ 10
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 9.25
+ 9.75
+ 10.75
+ 11
+ 11.25
+ 11.5
+ 12.5
+ 12
+ 11.75
+ 12
+ 12.25
+ 13
+ 13.5
+ 14
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.5
+ 15.25
+ 15.75
+ 16.25
+ 16.5
+ 17
+ 17.5
+ 17.75
+ 17.75
+ 17.75
+ 17.75
+ 19.25
+ 21.5
+ 23.5
+ 23.75
+ 23.25
+ 20.25
+ 19.5
+ 19.5
+ 18
+ 18.25
+ 18.25
+ 18.25
+ 18.5
+ 18.5
+ 18.75
+ 18.75
+ 19
+ 20
+ 20.5
+ 22.25
+ 22.75
+ 22.5
+ 23
+ 24
+ 25
+ 26.25
+ 27.5
+ 28
+ 28.75
+ 29.75
+ 31.25
+ 31.5
+ 31.5
+ 31.5
+ 31
+ 30.25
+ 29.25
+ 28.75
+ 27.5
+ 25.75
+ 25.5
+ 25.5
+ 25.5
+ 25.5
+ 25.75
+ 25.25
+ 30
+ 30.75
+ 31.5
+ 31.75
+ 32.75
+ 34.25
+ 34.75
+ 36
+ 37
+ 38
+ 38.75
+ 39.5
+ 39.75
+ 39.75
+ 39.5
+ 39.5
+ 39.5
+ 39.25
+ 39.25
+ 39
+ 39
+ 38.75
+ 38.75
+ 38.75
+ 38.25
+ 37
+ 36.5
+ 36
+ 35.25
+ 35
+ 35
+ 35
+ 35.25
+ 35.25
+ 35.5
+ 35.75
+ 36
+ 36.5
+ 36.5
+ 36.5
+ 36.5
+ 36.25
+ 36
+ 35.75
+ 34.75
+ 34.25
+ 34
+ 34
+ 34
+ 34.25
+ 34.25
+ 34
+ 33.75
+ 33.25
+ 34
+ 35
+ 35.5
+ 33.25
+ 32.5
+ 32
+ 31.5
+ 31.5
+ 32.25
+ 32.75
+ 34.5
+ 35
+ 35.5
+ 36.25
+ 36.5
+ 37
+ 36.5
+ 36.25
+ 36.75
+ 36.75
+ 37
+ 37
+ 36.75
+ 35.5
+ 35.25
+ 33
+ 31.5
+ 29.5
+ 31.75
+ 33.5
+ 34
+ 34.75
+ 35.25
+ 35.75
+ 35.75
+ 36.5
+ 36.5
+ 34.25
+ 34
+ 34
+ 34.5
+ 35.25
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 36
+ 36.25
+ 37.75
+ 37.5
+ 37.25
+ 36
+ 36.25
+ 36.75
+ 36.75
+ 36.5
+ 36.25
+ 35.75
+ 33.5
+ 33
+ 32
+ 31.5
+ 31.75
+ 33.25
+ 35.25
+ 37
+ 38
+ 38.75
+ 40.25
+ 41.25
+ 42.25
+ 42.25
+ 42.25
+ 42.25
+ 40.75
+ 39.75
+ 39.75
+ 39.5
+ 39.25
+ 38.75
+ 37.75
+ 37
+ 36
+ 35
+ 34.5
+ 33.75
+ 33.25
+ 33
+ 30
+ 30
+ 31.25
+ 32.5
+ 33
+ 35.25
+ 37
+ 38.5
+ 39.75
+ 40
+ 40.5
+ 41
+ 42
+ 42.75
+ 44.25
+ 45.5
+ 46.5
+ 47.75
+ 48.5
+ 50.75
+ 51.5
+ 51.5
+ 50.5
+ 50.25
+ 50.25
+ 50.75
+ 51
+ 51.25
+ 51.5
+ 51.5
+ 51.75
+ 52
+ 52
+ 52
+ 52.5
+ 53
+ 53.25
+ 53.25
+ 53.75
+ 54.5
+ 54.75
+ 54.75
+ 55
+ 55
+ 55
+ 54.75
+ 55
+ 55
+ 55
+ 55
+ 55
+ 55
+ 55
+ 55
+ 54.75
+ 54.75
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.5
+ 54.75
+ 54.75
+ 55
+ 55.5
+ 55.25
+ 55
+ 54.5
+ 54.75
+ 55.25
+ 55.25
+ 55.25
+ 55.5
+ 55.5
+ 55.5
+ 55.5
+ 55.75
+ 55.75
+ 55.75
+ 56.25
+ 56.25
+ 56
+ 55
+ 54.75
+ 54.25
+ 54.25
+ 54
+ 52.25
+ 52
+ 52
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 52
+ 52.25
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.25
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 49.5
+ 49.5
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 48.75
+ 49
+ 46.5
+ 45
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 44.25
+ 43.5
+ 43.5
+ 43.75
+ 44
+ 44
+ 44
+ 44
+ 43.75
+ 43.75
+ 43.75
+ 44
+ 43.75
+ 43.75
+ 43.75
+ 44.5
+ 45
+ 45.25
+ 48.25
+ 48
+ 45.75
+ 44.25
+ 44
+ 43.75
+ 44.5
+ 45.5
+ 45
+ 45.75
+ 46
+ 46.25
+ 44.75
+ 44.5
+ 43.5
+ 43.25
+ 42
+ 41.75
+ 40.75
+ 39.25
+ 38.25
+ 38.75
+ 40
+ 40.5
+ 40.75
+ 41
+ 41.5
+ 41.5
+ 41.5
+ 41
+ 40.25
+ 39.75
+ 39.75
+ 39.5
+ 39
+ 38.75
+ 38.5
+ 38.5
+ 38.25
+ 37.75
+ 37.5
+ 37.75
+ 38.25
+ 38.75
+ 39
+ 39.5
+ 39.75
+ 40
+ 39.75
+ 39.25
+ 39.25
+ 39.5
+ 39.5
+ 39.5
+ 39.5
+ 39.5
+ 39
+ 38.25
+ 37.25
+ 37.25
+ 37.25
+ 37.5
+ 37.75
+ 37.75
+ 37.5
+ 37
+ 36.75
+ 36.25
+ 35.75
+ 35.25
+ 35.5
+ 35.75
+ 36
+ 35.25
+ 35
+ 35.25
+ 35.25
+ 35.25
+ 35.75
+ 35.25
+ 34.75
+ 32.75
+ 31
+ 30.75
+ 30.75
+ 30.75
+ 31
+ 31.75
+ 31.5
+ 31
+ 30
+ 29
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 30
+ 30
+ 30.25
+ 30.25
+ 30.75
+ 31.5
+ 32.75
+ 33
+ 31.75
+ 31.75
+ 32.5
+ 33.75
+ 34.5
+ 35.25
+ 36
+ 36.25
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35.75
+ 36
+ 37.5
+ 38.5
+ 39
+ 39.5
+ 40
+ 40
+ 40.5
+ 40.5
+ 41.5
+ 42
+ 42
+ 41.75
+ 41.5
+ 40.25
+ 39.25
+ 39.25
+ 39.5
+ 39.75
+ 39.25
+ 38.5
+ 38
+ 37.5
+ 37.5
+ 36.25
+ 36.75
+ 36.75
+ 36.5
+ 36.5
+ 36.75
+ 37
+ 37
+ 37
+ 37
+ 36.75
+ 36.75
+ 36.5
+ 37
+ 37.5
+ 38
+ 39.5
+ 40
+ 40.25
+ 40.5
+ 41
+ 43.5
+ 44.25
+ 44.25
+ 44.75
+ 45.5
+ 46.75
+ 48.5
+ 48.75
+ 49.75
+ 51
+ 54.5
+ 55
+ 54.75
+ 54
+ 55
+ 55.75
+ 56.75
+ 57
+ 57.25
+ 57.25
+ 57.25
+ 57.5
+ 57.5
+ 57.5
+ 57.75
+ 56.75
+ 56.5
+ 56.75
+ 57
+ 56.75
+ 56
+ 54.5
+ 53
+ 52
+ 52
+ 52
+ 51.5
+ 51.25
+ 50.75
+ 50
+ 49
+ 48.5
+ 47.75
+ 46.75
+ 45.5
+ 44.75
+ 41.25
+ 40.25
+ 41
+ 41.25
+ 41.25
+ 46.75
+ 48.5
+ 47.75
+ 46.5
+ 42.5
+ 41
+ 39
+ 36.75
+ 35
+ 33.75
+ 32.75
+ 32.25
+ 32.5
+ 32.75
+ 32.25
+ 33.75
+ 34.75
+ 34.25
+ 34
+ 33
+ 32.75
+ 33.25
+ 34
+ 34.75
+ 46
+ 46.25
+ 46.75
+ 47.75
+ 48
+ 48.25
+ 48.25
+ 48.25
+ 48.5
+ 49
+ 49.75
+ 52
+ 51.5
+ 51
+ 50.75
+ 50.25
+ 50
+ 50
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 50
+ 50
+ 50
+ 50
+ 49.75
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 48.75
+ 48.5
+ 48.5
+ 48.25
+ 48.25
+ 48.75
+ 49
+ 50.25
+ 51
+ 50.25
+ 49.5
+ 47.75
+ 46.5
+ 45.75
+ 45.25
+ 46
+ 46.25
+ 46.5
+ 48.25
+ 48.5
+ 49.25
+ 53.5
+ 54
+ 53.5
+ 53.5
+ 52
+ 51.75
+ 51.25
+ 50.5
+ 49.75
+ 49.25
+ 49
+ 49
+ 48.75
+ 48
+ 47.75
+ 48
+ 48
+ 48.25
+ 48.25
+ 48.25
+ 48.25
+ 48
+ 48
+ 47.75
+ 47.75
+ 47.75
+ 48
+ 48.25
+ 48.25
+ 48.5
+ 49
+ 49
+ 49.25
+ 49.25
+ 49.25
+ 49.5
+ 49.75
+ 50
+ 50
+ 50
+ 50
+ 52.5
+ 52.75
+ 53.75
+ 54
+ 56.75
+ 56.5
+ 56.5
+ 56.5
+ 56.75
+ 56.75
+ 56.75
+ 54.75
+ 55
+ 55.25
+ 56
+ 56.75
+ 57.25
+ 58
+ 58
+ 58
+ 58
+ 57.5
+ 58.25
+ 58.75
+ 59
+ 61.5
+ 62.75
+ 63
+ 63.25
+ 63
+ 62.75
+ 62.25
+ 61.75
+ 61.75
+ 61.25
+ 61.25
+ 62.5
+ 64
+ 67
+ 68.75
+ 70
+ 71.25
+ 71.75
+ 71
+ 70.75
+ 71
+ 71
+ 71.75
+ 72.25
+ 73.75
+ 74.75
+ 73.25
+ 71.75
+ 68.5
+ 65.5
+ 61.75
+ 62.5
+ 63
+ 62.75
+ 62.75
+ 62.5
+ 62.25
+ 61.5
+ 61.5
+ 60.75
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 60.5
+ 59
+ 58.25
+ 58
+ 57.5
+ 57
+ 56.5
+ 55.75
+ 55.25
+ 54.5
+ 54
+ 53.25
+ 52
+ 52
+ 51.75
+ 51.25
+ 51
+ 50.75
+ 50.25
+ 50
+ 50
+ 50
+ 50
+ 50
+ 49.75
+ 49
+ 49.25
+ 49.5
+ 49.75
+ 50.75
+ 51
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 52.25
+ 52.75
+ 50.5
+ 42.25
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 40.75
+ 39
+ 37.25
+ 31.75
+ 31.5
+ 31.25
+ 30.75
+ 30.5
+ 29.25
+ 28.75
+ 29.5
+ 29.75
+ 28.5
+ 25.75
+ 26.5
+ 27
+ 26.75
+ 27
+ 28.5
+ 29
+ 29.5
+ 25
+ 19.25
+ 16
+ 13.5
+ 11.25
+ 9.75
+ 9
+ 8.25
+ 7
+ 6.5
+ 6.25
+ 6.5
+ 6.75
+ 7
+ 7.5
+ 8.75
+ 8.25
+ 7.5
+ 6.25
+ 4.75
+ 4.75
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6.75
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.5
+ 7
+ 7.75
+ 8.75
+ 9.5
+ 10.25
+ 10.25
+ 11.25
+ 12.5
+ 13.25
+ 14
+ 15.25
+ 16.75
+ 18.25
+ 20
+ 24.25
+ 25.75
+ 27
+ 27.5
+ 28
+ 28.75
+ 29.75
+ 30.75
+ 32.25
+ 34.5
+ 36
+ 36.75
+ 37.75
+ 38.25
+ 38.75
+ 39.5
+ 43.5
+ 48.5
+ 57.25
+ 56.75
+ 55
+ 55.5
+ 56
+ 55.5
+ 53.75
+ 52.5
+ 51.5
+ 50.5
+ 50
+ 47.75
+ 46.5
+ 45.5
+ 44.5
+ 44
+ 43.5
+ 42.75
+ 41.5
+ 33.75
+ 32.25
+ 31.25
+ 28
+ 27.5
+ 27
+ 26.5
+ 26
+ 25.5
+ 25
+ 24.75
+ 25.25
+ 25.25
+ 24.75
+ 24.5
+ 23.5
+ 23
+ 22.75
+ 23.75
+ 24.5
+ 29.5
+ 31.75
+ 32.75
+ 33.75
+ 34.5
+ 35.25
+ 35.75
+ 36
+ 36
+ 36
+ 36.5
+ 37.25
+ 38
+ 39.5
+ 41
+ 42.5
+ 44
+ 56.75
+ 57.5
+ 58
+ 58
+ 58.5
+ 58.75
+ 59.25
+ 59.75
+ 61.5
+ 61.75
+ 61.75
+ 61.75
+ 61.5
+ 60.75
+ 60.5
+ 60.5
+ 60.5
+ 60.75
+ 61.25
+ 62.25
+ 63.25
+ 62.5
+ 61.5
+ 61
+ 60.75
+ 60.75
+ 61.25
+ 62
+ 60
+ 59
+ 59
+ 59
+ 60.75
+ 63
+ 65.75
+ 69.25
+ 70.5
+ 66.5
+ 63.75
+ 65.5
+ 69.25
+ 69
+ 73.5
+ 76
+ 78.5
+ 77.5
+ 76.75
+ 76.5
+ 76.25
+ 76.25
+ 78.25
+ 78.75
+ 79
+ 79
+ 78.75
+ 78
+ 76.5
+ 73.25
+ 73
+ 72.75
+ 72
+ 71.75
+ 71.5
+ 71
+ 70.5
+ 69.5
+ 69.25
+ 69
+ 68.75
+ 69.25
+ 69.5
+ 69.75
+ 70
+ 70.75
+ 71
+ 71
+ 71
+ 71.25
+ 71.5
+ 71.75
+ 71.5
+ 71.5
+ 71.25
+ 71
+ 71
+ 70.5
+ 70
+ 68.25
+ 67.75
+ 66.25
+ 64
+ 61
+ 57.5
+ 55.75
+ 56.25
+ 56.25
+ 56
+ 55.5
+ 55.25
+ 55.25
+ 56.25
+ 56
+ 55.5
+ 54.25
+ 53.25
+ 53.5
+ 53.5
+ 53.75
+ 54
+ 55.5
+ 56
+ 56.5
+ 56.5
+ 56.5
+ 56.5
+ 57
+ 57.5
+ 57.25
+ 56.75
+ 56.75
+ 56.75
+ 56.5
+ 58.25
+ 59
+ 58.75
+ 58.25
+ 58
+ 56.75
+ 56.75
+ 55
+ 55.75
+ 55.75
+ 56
+ 56
+ 56
+ 56
+ 56
+ 56.25
+ 56.25
+ 56.75
+ 57.75
+ 58
+ 58.25
+ 58.25
+ 57.5
+ 56
+ 56
+ 55.25
+ 54.5
+ 53.75
+ 53.5
+ 53
+ 52.5
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.5
+ 52.25
+ 51.25
+ 49.5
+ 48.5
+ 48.25
+ 47.25
+ 46.5
+ 46.25
+ 46
+ 46
+ 46
+ 46
+ 45.75
+ 45.75
+ 45.25
+ 45
+ 45.5
+ 46
+ 46.75
+ 47.25
+ 47.25
+ 47.75
+ 48
+ 48
+ 48.25
+ 48.25
+ 48.5
+ 48.5
+ 48.5
+ 49.5
+ 50.25
+ 50.5
+ 51
+ 51.25
+ 51.75
+ 52.5
+ 53
+ 54.75
+ 55.25
+ 55.5
+ 56
+ 55.75
+ 55.25
+ 55
+ 54.25
+ 53.5
+ 52.75
+ 49.5
+ 49.25
+ 49
+ 47.5
+ 47
+ 47.25
+ 48
+ 48.5
+ 49.25
+ 50
+ 50.25
+ 50.5
+ 50.5
+ 50.5
+ 50.25
+ 50
+ 49.75
+ 49.5
+ 49.25
+ 49.25
+ 48.5
+ 50.75
+ 48.75
+ 48
+ 47.5
+ 47.25
+ 48
+ 48.75
+ 48.75
+ 47.25
+ 46.75
+ 46
+ 46
+ 45.75
+ 44.75
+ 44.5
+ 44.25
+ 43
+ 42.75
+ 42.75
+ 42.25
+ 41.5
+ 41
+ 44.25
+ 48.25
+ 49.25
+ 49.75
+ 50
+ 50.75
+ 52
+ 52.5
+ 52.25
+ 52.25
+ 52
+ 52.75
+ 53
+ 53.25
+ 53.75
+ 55
+ 55.5
+ 56
+ 55
+ 54
+ 53.25
+ 52
+ 51.25
+ 50.75
+ 50
+ 49.75
+ 49
+ 48.25
+ 48.25
+ 48
+ 48
+ 48
+ 47.75
+ 47.5
+ 47
+ 44.75
+ 42.25
+ 41.75
+ 41.5
+ 39.75
+ 39.75
+ 39.5
+ 39.25
+ 39.25
+ 39.25
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39.25
+ 38.5
+ 38
+ 38.25
+ 38.75
+ 40.5
+ 41.5
+ 42.25
+ 42.5
+ 42.5
+ 42.75
+ 42.5
+ 42.5
+ 42.25
+ 42
+ 41.75
+ 41.5
+ 41.25
+ 41
+ 40.75
+ 40.5
+ 40.25
+ 40
+ 40
+ 39.75
+ 39.5
+ 39.5
+ 39
+ 38.25
+ 38
+ 38.25
+ 39.25
+ 39.75
+ 38
+ 38
+ 38.5
+ 38.75
+ 38.75
+ 38.5
+ 38
+ 37.5
+ 36.75
+ 36.75
+ 37
+ 37
+ 36.75
+ 36.5
+ 36
+ 37
+ 37.75
+ 38.25
+ 38.75
+ 39
+ 39
+ 39
+ 39
+ 39.25
+ 39.5
+ 39
+ 39.75
+ 39.75
+ 39.75
+ 39.25
+ 39
+ 39.25
+ 39.25
+ 39.25
+ 39.25
+ 39.25
+ 37.5
+ 37.5
+ 37.5
+ 37.75
+ 38
+ 38
+ 38.25
+ 38
+ 37.75
+ 37.75
+ 38.5
+ 38.5
+ 38.75
+ 39.25
+ 39.75
+ 39.75
+ 40
+ 40.25
+ 40.25
+ 40.25
+ 40.5
+ 40.75
+ 44.75
+ 45.5
+ 46.5
+ 47
+ 47.25
+ 47.25
+ 47.5
+ 47.75
+ 48
+ 48.25
+ 48.75
+ 48.25
+ 46.25
+ 45.25
+ 44.25
+ 43.5
+ 42.5
+ 41.75
+ 41.25
+ 41
+ 40.75
+ 41.75
+ 41.5
+ 39
+ 36.75
+ 36.75
+ 33.75
+ 33
+ 32
+ 31
+ 29.75
+ 29
+ 27.75
+ 27.75
+ 27.75
+ 33.75
+ 35
+ 38.5
+ 38.25
+ 37.5
+ 37
+ 36.75
+ 37
+ 38
+ 36.5
+ 35.5
+ 35.25
+ 33.75
+ 33.25
+ 33
+ 33
+ 33
+ 32.75
+ 32.5
+ 32.5
+ 31.75
+ 30.25
+ 30.5
+ 30.75
+ 30.25
+ 30
+ 29.75
+ 29.25
+ 28.25
+ 29
+ 29.25
+ 29.5
+ 28
+ 27.25
+ 27
+ 26.25
+ 27.75
+ 28.75
+ 31.75
+ 37
+ 39.75
+ 39.75
+ 40.25
+ 40
+ 39.75
+ 39.75
+ 39.75
+ 39.5
+ 39.25
+ 39.25
+ 39
+ 38.75
+ 38.5
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.5
+ 38.5
+ 38.25
+ 37.25
+ 33
+ 32.75
+ 32.75
+ 33
+ 33
+ 33
+ 33.25
+ 33.25
+ 33.25
+ 33.25
+ 33.5
+ 33.75
+ 33.75
+ 33.25
+ 30.75
+ 31.5
+ 31.5
+ 29.5
+ 31.75
+ 33
+ 34.75
+ 37.5
+ 38
+ 38.25
+ 39
+ 39.25
+ 39.5
+ 39.75
+ 40.25
+ 40.5
+ 41
+ 41.25
+ 41.5
+ 41.75
+ 42.5
+ 43
+ 43.25
+ 44
+ 44.25
+ 44.75
+ 45.25
+ 44.75
+ 44.25
+ 43.5
+ 42.75
+ 42.25
+ 42
+ 41.75
+ 42
+ 42.75
+ 43
+ 42.75
+ 42.5
+ 42
+ 41
+ 40.5
+ 40.25
+ 41.25
+ 41.75
+ 42
+ 42.25
+ 42.25
+ 42.5
+ 42.5
+ 42.75
+ 43
+ 43
+ 42.75
+ 42.25
+ 42.25
+ 41.75
+ 41.5
+ 40.5
+ 40.25
+ 40
+ 39.5
+ 38.75
+ 40.75
+ 42
+ 42.75
+ 42.75
+ 42.5
+ 42
+ 41.75
+ 41.25
+ 40.25
+ 39.5
+ 39
+ 38.5
+ 38.25
+ 38
+ 36.75
+ 36.5
+ 36
+ 35.5
+ 34.75
+ 30
+ 29.75
+ 29.75
+ 29.5
+ 29
+ 29.25
+ 28.5
+ 28
+ 28.5
+ 28.75
+ 28
+ 28.75
+ 29.5
+ 29.75
+ 30
+ 30.5
+ 30.5
+ 27.25
+ 26.25
+ 27
+ 26.25
+ 27
+ 30
+ 32
+ 35.5
+ 29
+ 28.5
+ 28
+ 28.5
+ 28.75
+ 29
+ 29
+ 28.75
+ 28.25
+ 27
+ 25.5
+ 23.5
+ 22
+ 24.5
+ 24.75
+ 28.25
+ 28.5
+ 28.75
+ 28.75
+ 28.5
+ 28.25
+ 27.25
+ 26.75
+ 25.25
+ 25
+ 25
+ 24.25
+ 23.75
+ 23.75
+ 23.75
+ 23.75
+ 23
+ 22.5
+ 22.25
+ 22.25
+ 21.75
+ 20.5
+ 18.25
+ 17.25
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 16.25
+ 16.5
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.5
+ 16.75
+ 17
+ 17
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.5
+ 16.25
+ 16
+ 17.25
+ 17.75
+ 17.5
+ 17.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 15.75
+ 16.25
+ 16.25
+ 16.5
+ 16.5
+ 16.5
+ 17.75
+ 19
+ 19.75
+ 20.25
+ 20.5
+ 22.75
+ 21.25
+ 20.5
+ 17
+ 12.5
+ 12.25
+ 12.25
+ 12.5
+ 13
+ 13.75
+ 13.75
+ 11.75
+ 10.5
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 6.5
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 5
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 3.5
+ 3.5
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 3.25
+ 3.25
+ 3.75
+ 2.75
+ 3
+ 3.5
+ 3.75
+ 3.75
+ 5.5
+ 7
+ 8.5
+ 9.75
+ 9.5
+ 9.25
+ 9.25
+ 10.25
+ 12.5
+ 12.75
+ 12.25
+ 10.75
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 9.75
+ 12
+ 13.25
+ 13.5
+ 13.25
+ 12.75
+ 12
+ 11.75
+ 11.25
+ 11
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10
+ 9.75
+ 9
+ 8.75
+ 8
+ 6.5
+ 6
+ 6
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.25
+ 6
+ 6
+ 5.5
+ 6.5
+ 6.5
+ 6.75
+ 7.5
+ 7.5
+ 7.75
+ 8.25
+ 9
+ 9
+ 9
+ 9.25
+ 9.25
+ 9
+ 9
+ 8.75
+ 8.75
+ 9.5
+ 9.5
+ 9.25
+ 9.75
+ 10
+ 10.25
+ 10.5
+ 11
+ 12
+ 15.5
+ 16.5
+ 18
+ 27.25
+ 29
+ 31.25
+ 32.75
+ 33.75
+ 34
+ 35.25
+ 36.5
+ 37
+ 37.25
+ 37.75
+ 38.75
+ 38.75
+ 38
+ 37.5
+ 37.25
+ 36
+ 35.75
+ 34.5
+ 34.25
+ 34
+ 34
+ 34.5
+ 35
+ 36
+ 36.5
+ 36.5
+ 32.25
+ 35.75
+ 36.75
+ 40
+ 41
+ 41.75
+ 43.75
+ 44.5
+ 45.75
+ 53
+ 57.5
+ 57.75
+ 58
+ 58.25
+ 58.25
+ 58.5
+ 59
+ 52.75
+ 50.75
+ 49.75
+ 50.5
+ 51
+ 51
+ 51.5
+ 51.5
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51
+ 50.25
+ 48.75
+ 48
+ 47.25
+ 46.75
+ 46.25
+ 44.75
+ 43.75
+ 43
+ 42.5
+ 40.25
+ 38
+ 37
+ 30
+ 29.5
+ 28.75
+ 28.5
+ 27.5
+ 27
+ 26.5
+ 25.5
+ 24.75
+ 24.5
+ 23.5
+ 23.25
+ 20.5
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 17.75
+ 17.75
+ 17.75
+ 17.5
+ 17.25
+ 16.75
+ 16.5
+ 16.75
+ 16.75
+ 16.75
+ 17
+ 17.5
+ 18.75
+ 19
+ 18.5
+ 16.5
+ 30.5
+ 31.5
+ 34
+ 35
+ 35.5
+ 36
+ 36.5
+ 37.5
+ 37.75
+ 37.5
+ 36.75
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.5
+ 36.5
+ 36.75
+ 37.5
+ 38
+ 38.75
+ 38.75
+ 33.75
+ 33.5
+ 33.5
+ 33.25
+ 33
+ 33
+ 31.5
+ 30
+ 27.25
+ 26
+ 25.5
+ 25.25
+ 25
+ 25.5
+ 26
+ 26.5
+ 26.75
+ 27
+ 28.5
+ 30
+ 31
+ 31.25
+ 31.25
+ 31.25
+ 30.5
+ 30.75
+ 33.25
+ 34.75
+ 29.75
+ 28
+ 22.5
+ 19.75
+ 19
+ 18.5
+ 15.5
+ 14.75
+ 14.25
+ 13.75
+ 13.25
+ 11.75
+ 11.75
+ 12
+ 12
+ 11.75
+ 11
+ 10.5
+ 10.25
+ 11.25
+ 10.75
+ 10.5
+ 10.25
+ 10
+ 9.75
+ 9.25
+ 9.25
+ 9
+ 8.25
+ 7
+ 8
+ 8.75
+ 10.25
+ 11.5
+ 12.25
+ 12.5
+ 13
+ 11.5
+ 9.75
+ 8.5
+ 7.5
+ 6.25
+ 6.25
+ 6.5
+ 7
+ 6.75
+ 8.5
+ 9.75
+ 11
+ 12.25
+ 13.5
+ 14.25
+ 15
+ 15.75
+ 14.25
+ 14.75
+ 15.75
+ 16
+ 16.25
+ 16.5
+ 16.75
+ 16.75
+ 17
+ 17.25
+ 18
+ 18
+ 18
+ 17.75
+ 17.25
+ 17
+ 16.5
+ 16.25
+ 15.75
+ 15.75
+ 15.75
+ 16
+ 16.25
+ 17.25
+ 17.5
+ 17.25
+ 17.25
+ 17.5
+ 17.5
+ 17
+ 17
+ 17
+ 17.5
+ 17.75
+ 18
+ 18.5
+ 18.5
+ 18
+ 17.75
+ 17.75
+ 16.5
+ 15.75
+ 15.25
+ 15
+ 15
+ 15
+ 14.75
+ 14.25
+ 14
+ 14
+ 14
+ 14.25
+ 14.25
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.75
+ 15
+ 15
+ 15
+ 15
+ 15.25
+ 15.25
+ 15.5
+ 15.5
+ 15.25
+ 15
+ 15
+ 14.5
+ 14.5
+ 14.5
+ 14.75
+ 15
+ 15
+ 15.5
+ 16.25
+ 16.75
+ 17.25
+ 17.75
+ 18
+ 18
+ 17.75
+ 17.75
+ 16
+ 15
+ 13.75
+ 14
+ 14
+ 16.25
+ 18
+ 18.5
+ 19
+ 19.75
+ 24.75
+ 28.75
+ 29.75
+ 32
+ 32.5
+ 33
+ 33.5
+ 34
+ 64.5
+ 71.25
+ 77
+ 78.75
+ 80
+ 81
+ 76.25
+ 75.75
+ 75.75
+ 75.75
+ 70.5
+ 67.75
+ 71.25
+ 72
+ 72
+ 73
+ 73.5
+ 74.75
+ 75.75
+ 76.25
+ 76.5
+ 79.25
+ 80.25
+ 81
+ 80.5
+ 81.5
+ 94.25
+ 77.75
+ 76.5
+ 75.25
+ 74.25
+ 73
+ 71.5
+ 68.75
+ 67.25
+ 66
+ 65.25
+ 64.25
+ 63
+ 60.75
+ 60.25
+ 60
+ 59.75
+ 59.5
+ 59
+ 61.25
+ 62
+ 60.25
+ 57.75
+ 57.25
+ 57
+ 56.5
+ 56.25
+ 49.5
+ 49.75
+ 55
+ 61.75
+ 62.75
+ 63.25
+ 63.75
+ 65
+ 65
+ 67.5
+ 69.25
+ 72
+ 76.25
+ 76.75
+ 77.5
+ 79
+ 82.5
+ 82.5
+ 84.25
+ 85
+ 85.25
+ 86
+ 86.25
+ 86.5
+ 86.75
+ 85.75
+ 84.25
+ 84
+ 83.5
+ 83.5
+ 83.25
+ 83
+ 82.5
+ 80.75
+ 79
+ 78.5
+ 76
+ 69
+ 67.25
+ 66.5
+ 65.5
+ 66
+ 68.5
+ 70.5
+ 70.75
+ 68.75
+ 69.5
+ 69.75
+ 69.75
+ 69.5
+ 65.25
+ 65.75
+ 66.75
+ 66.25
+ 65
+ 65.75
+ 66.75
+ 66.5
+ 66.25
+ 66.25
+ 66.5
+ 66.25
+ 66
+ 65.75
+ 66
+ 66
+ 66
+ 65
+ 65.5
+ 65.5
+ 65
+ 64.25
+ 63.25
+ 63
+ 63
+ 62.5
+ 65.5
+ 68
+ 71
+ 71.5
+ 72
+ 72.5
+ 76.5
+ 77.25
+ 77.25
+ 77.5
+ 74
+ 75.25
+ 70.75
+ 65.25
+ 58.75
+ 48
+ 45
+ 44.5
+ 44
+ 43.75
+ 39
+ 38.25
+ 37.75
+ 37.75
+ 37.5
+ 37
+ 36.5
+ 35.75
+ 35.25
+ 37.25
+ 42.75
+ 43
+ 43
+ 44
+ 43.75
+ 41
+ 40.25
+ 40
+ 39.75
+ 39
+ 38.5
+ 38
+ 37.75
+ 37
+ 36.25
+ 35.75
+ 35.5
+ 35
+ 34.25
+ 34
+ 34
+ 34
+ 33.75
+ 32.5
+ 30.75
+ 29
+ 27.75
+ 28.5
+ 29
+ 31
+ 30.5
+ 30.25
+ 32.5
+ 32.5
+ 31.5
+ 29.75
+ 28
+ 24.75
+ 22.75
+ 22.75
+ 24.5
+ 23.75
+ 23.25
+ 23.5
+ 23.25
+ 21
+ 20
+ 19.75
+ 19.75
+ 18.75
+ 14.75
+ 24.75
+ 23
+ 23
+ 22.5
+ 20.75
+ 19.25
+ 18
+ 18.25
+ 18.75
+ 19.25
+ 19.25
+ 20
+ 20.25
+ 20.75
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21.25
+ 21.5
+ 21.5
+ 21.75
+ 21.75
+ 22
+ 22.25
+ 23
+ 22.5
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.25
+ 20.25
+ 19.75
+ 19.5
+ 20.25
+ 21.25
+ 23
+ 22.5
+ 22
+ 21.75
+ 24.25
+ 25.75
+ 34.25
+ 37
+ 37
+ 36.5
+ 36
+ 35.5
+ 34.75
+ 33.25
+ 34.25
+ 38.5
+ 43.75
+ 47
+ 52.75
+ 53.5
+ 55.25
+ 56
+ 56
+ 55.5
+ 57.75
+ 60.5
+ 63.75
+ 64.75
+ 78.75
+ 79.75
+ 79
+ 78.5
+ 81
+ 82.25
+ 81.5
+ 80.5
+ 79.25
+ 78.75
+ 76.25
+ 75
+ 75.25
+ 75.75
+ 75.5
+ 75.25
+ 73.25
+ 72
+ 72.75
+ 75.25
+ 76.25
+ 76.5
+ 78.5
+ 79.25
+ 80.75
+ 82
+ 84.5
+ 87.25
+ 89.25
+ 89.75
+ 90.25
+ 90.75
+ 89.75
+ 89.25
+ 88
+ 86.75
+ 83.25
+ 81.75
+ 80.5
+ 79.5
+ 77.25
+ 75
+ 71.5
+ 72
+ 71.5
+ 71
+ 69.25
+ 68
+ 66
+ 64.75
+ 63.25
+ 62.25
+ 61.75
+ 62
+ 63.25
+ 64
+ 65
+ 65.25
+ 65.75
+ 65.75
+ 66.25
+ 67.25
+ 68.5
+ 68
+ 68
+ 67.5
+ 64.5
+ 62
+ 56.5
+ 50
+ 46.5
+ 47.25
+ 48.75
+ 50
+ 52.5
+ 54.5
+ 54.75
+ 53.75
+ 51
+ 51.75
+ 51.5
+ 52
+ 52.5
+ 53.25
+ 53.75
+ 54.75
+ 54.75
+ 54.25
+ 52.25
+ 48.75
+ 41.5
+ 31.25
+ 29
+ 27.5
+ 23.75
+ 18
+ 13.5
+ 12.75
+ 11.75
+ 10.75
+ 9.5
+ 9
+ 8.75
+ 8.5
+ 8
+ 7.75
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6
+ 7
+ 13.5
+ 14.75
+ 15.75
+ 16.5
+ 17.5
+ 18.5
+ 19
+ 20
+ 21.75
+ 21.75
+ 21.25
+ 19.75
+ 19.25
+ 21.5
+ 23.5
+ 22
+ 19.75
+ 19.75
+ 16.5
+ 14.5
+ 11.5
+ 10.5
+ 10
+ 10
+ 9.75
+ 9.75
+ 12.5
+ 16.25
+ 20.5
+ 21.5
+ 21
+ 20.25
+ 22.25
+ 25
+ 26.5
+ 27
+ 26
+ 25
+ 23.5
+ 23
+ 21.75
+ 20.25
+ 19
+ 18
+ 17.25
+ 17.5
+ 17
+ 15.25
+ 14.5
+ 14
+ 16.75
+ 17
+ 14.75
+ 12.75
+ 12
+ 9
+ 7.5
+ 6.75
+ 6.5
+ 6
+ 5.75
+ 4
+ 4.25
+ 7
+ 8.25
+ 9
+ 10.75
+ 11.25
+ 11.75
+ 11.75
+ 11.5
+ 11.75
+ 12.5
+ 12.75
+ 13.75
+ 14.25
+ 14.25
+ 13
+ 13
+ 13.75
+ 13.25
+ 13
+ 13.25
+ 13.5
+ 13.75
+ 14.5
+ 15.25
+ 15.25
+ 16
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 16.25
+ 15.75
+ 15.25
+ 16.25
+ 16.5
+ 18.5
+ 20
+ 21
+ 22
+ 22.25
+ 23.25
+ 21
+ 20.5
+ 21
+ 27.75
+ 29
+ 30
+ 30.5
+ 30.25
+ 29.75
+ 26.75
+ 24.5
+ 23.5
+ 22.25
+ 22.5
+ 23
+ 22.25
+ 21.75
+ 21.5
+ 21.5
+ 20.75
+ 18.25
+ 17.5
+ 16.75
+ 15.25
+ 15.75
+ 16.25
+ 16.25
+ 16
+ 15.75
+ 15.25
+ 14.25
+ 14
+ 12.75
+ 15.25
+ 17.5
+ 17.75
+ 18
+ 13.75
+ 11.25
+ 10.75
+ 11.25
+ 10
+ 10
+ 10
+ 10
+ 9.75
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 9
+ 9
+ 9
+ 9.75
+ 10.5
+ 11.5
+ 12.25
+ 13
+ 14
+ 16.75
+ 17.5
+ 18.25
+ 18.25
+ 18.75
+ 19
+ 19.25
+ 19.75
+ 20.25
+ 22
+ 22.5
+ 23.25
+ 23.75
+ 24.75
+ 25.5
+ 26
+ 26.5
+ 26.75
+ 29.75
+ 31
+ 33.75
+ 35.25
+ 35.25
+ 36
+ 36.5
+ 36
+ 35.5
+ 35.25
+ 34.25
+ 34.25
+ 34.5
+ 34
+ 33.75
+ 35.25
+ 37.5
+ 37.5
+ 37.25
+ 37
+ 36
+ 35.75
+ 35
+ 34.75
+ 34.75
+ 33.75
+ 35.5
+ 35
+ 34.5
+ 33
+ 31.5
+ 29
+ 27.25
+ 25.5
+ 23.25
+ 21.5
+ 18.25
+ 16.5
+ 15.75
+ 15.5
+ 17.75
+ 14.5
+ 14
+ 13.75
+ 14.5
+ 15.5
+ 16.75
+ 17.25
+ 17.75
+ 17.5
+ 15
+ 12.5
+ 13.5
+ 16.75
+ 18.5
+ 15.75
+ 14.5
+ 13.25
+ 11
+ 10.5
+ 10.5
+ 10.5
+ 11.75
+ 11.75
+ 11.75
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 11.25
+ 11
+ 10
+ 8.5
+ 7.75
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8.25
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 9.25
+ 8.25
+ 7
+ 7
+ 6.75
+ 7
+ 7
+ 7.75
+ 8.75
+ 9
+ 9.25
+ 9
+ 8.75
+ 8
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6
+ 6.75
+ 8
+ 7.5
+ 7.5
+ 5.75
+ 7.75
+ 9
+ 12.5
+ 13.5
+ 16.25
+ 18.5
+ 19
+ 20.25
+ 21.25
+ 23
+ 24.75
+ 25.5
+ 26
+ 26.5
+ 27
+ 26
+ 24
+ 22.5
+ 21.25
+ 20.25
+ 18.5
+ 22
+ 22.5
+ 23.25
+ 25.25
+ 27.5
+ 28
+ 28.25
+ 28.25
+ 28.25
+ 26.5
+ 24
+ 20.5
+ 18.5
+ 16.75
+ 16.5
+ 14.25
+ 13.75
+ 15
+ 14.5
+ 14.25
+ 14
+ 14
+ 13.25
+ 12.75
+ 12.5
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.5
+ 12.75
+ 13.25
+ 12.75
+ 12.25
+ 12
+ 11.75
+ 10.75
+ 10
+ 9.5
+ 8.5
+ 8.25
+ 8.25
+ 6
+ 6.5
+ 7.25
+ 7.5
+ 8
+ 8.75
+ 9.5
+ 9.5
+ 12.75
+ 14
+ 13.75
+ 10.75
+ 8.75
+ 8.5
+ 6.25
+ 6.25
+ 7
+ 8
+ 8.25
+ 9
+ 9.25
+ 9.5
+ 9.5
+ 10.75
+ 12
+ 13.75
+ 13.5
+ 12.25
+ 12
+ 12
+ 12.25
+ 12.5
+ 12.75
+ 13.25
+ 13.75
+ 14.25
+ 13.5
+ 11.75
+ 11.25
+ 10.75
+ 10.5
+ 10.25
+ 10
+ 9.75
+ 9.25
+ 9.25
+ 9.25
+ 9.25
+ 8.25
+ 7
+ 5.75
+ 4.25
+ 4.75
+ 6.75
+ 6.75
+ 5.75
+ 5
+ 4.25
+ 4.25
+ 10.75
+ 14
+ 18.5
+ 33.5
+ 42.75
+ 43
+ 39.5
+ 38
+ 38.25
+ 38.75
+ 39.25
+ 39
+ 40.25
+ 36.5
+ 33.25
+ 29.25
+ 25
+ 19.5
+ 18.5
+ 16.5
+ 13.25
+ 14
+ 12.25
+ 11.5
+ 11
+ 13.25
+ 14.75
+ 15.75
+ 16.75
+ 18.5
+ 19
+ 19.25
+ 19.25
+ 18.75
+ 18.25
+ 18
+ 17.75
+ 17.5
+ 17.25
+ 16.25
+ 15.25
+ 13.5
+ 12.5
+ 11
+ 11.75
+ 12.5
+ 13.75
+ 15
+ 16.25
+ 16.25
+ 15.75
+ 14.5
+ 14.5
+ 14.5
+ 14.25
+ 14.75
+ 13.5
+ 12
+ 9.5
+ 6.75
+ 5
+ 5
+ 5.75
+ 6
+ 5.75
+ 6
+ 6
+ 6
+ 6.75
+ 7
+ 7.75
+ 8.75
+ 10.25
+ 12.75
+ 14.5
+ 16.25
+ 18
+ 22.5
+ 24
+ 22
+ 21
+ 20.25
+ 19.25
+ 17.75
+ 16.75
+ 14.5
+ 13.25
+ 13.25
+ 13.25
+ 11.25
+ 8.25
+ 8.25
+ 9
+ 9.5
+ 10.5
+ 11.25
+ 12.5
+ 13.25
+ 14
+ 14.25
+ 13.75
+ 16
+ 16.5
+ 15.75
+ 14
+ 12.75
+ 11.5
+ 10.25
+ 8.25
+ 7
+ 6.25
+ 5.25
+ 4.75
+ 4
+ 3.5
+ 3.5
+ 4
+ 5.25
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 5.25
+ 3
+ 4.25
+ 4.5
+ 5
+ 5.5
+ 5.75
+ 6.75
+ 7
+ 4.75
+ 2.75
+ 3
+ 3
+ 3
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 5.25
+ 5.75
+ 6.5
+ 7.25
+ 8
+ 10
+ 11.25
+ 11
+ 10
+ 9.25
+ 9
+ 8.25
+ 7.75
+ 9.25
+ 10.75
+ 12
+ 12.75
+ 14.75
+ 16
+ 16.25
+ 14
+ 12.5
+ 14.25
+ 13
+ 12
+ 11.25
+ 10.75
+ 10
+ 10
+ 9.75
+ 10.25
+ 10.75
+ 11.5
+ 13.25
+ 14
+ 15.25
+ 15.25
+ 14.75
+ 14.25
+ 12.75
+ 11.5
+ 10
+ 11.75
+ 12.25
+ 13
+ 13.5
+ 14
+ 14.5
+ 15.25
+ 15.5
+ 17.5
+ 19.75
+ 20.75
+ 21.25
+ 21.75
+ 22.5
+ 23.25
+ 23.75
+ 24
+ 24
+ 22.75
+ 22.25
+ 20
+ 19
+ 19
+ 17.5
+ 16
+ 14.75
+ 14.5
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.75
+ 13.25
+ 12.75
+ 11.25
+ 10.5
+ 11
+ 11
+ 11.25
+ 12.25
+ 16
+ 15.25
+ 14.75
+ 14.5
+ 14.25
+ 16.25
+ 17.25
+ 19.75
+ 24.5
+ 27
+ 28.25
+ 29.5
+ 29.25
+ 28.75
+ 28.5
+ 28.25
+ 27
+ 26.25
+ 25.5
+ 25.25
+ 25.25
+ 26.5
+ 27
+ 27.5
+ 28
+ 28.75
+ 28.5
+ 27.25
+ 23
+ 21.75
+ 20
+ 18.75
+ 19
+ 19.25
+ 19.5
+ 19.5
+ 19.75
+ 21.75
+ 22.25
+ 22.25
+ 22
+ 21.75
+ 21.5
+ 21.25
+ 21.25
+ 21
+ 20.5
+ 18.5
+ 17.75
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.75
+ 7.75
+ 10.75
+ 11
+ 11.25
+ 11.5
+ 11.25
+ 11.25
+ 11.25
+ 11.25
+ 11.5
+ 11.5
+ 11.75
+ 12
+ 12
+ 12
+ 12.25
+ 12.5
+ 13.75
+ 13
+ 12.5
+ 12.5
+ 12.25
+ 10.25
+ 10.25
+ 10.25
+ 9.75
+ 8.75
+ 8
+ 7.5
+ 7.75
+ 8
+ 8
+ 8
+ 9
+ 10.75
+ 11.75
+ 12.25
+ 12.75
+ 13.25
+ 13.75
+ 13.75
+ 14
+ 13.75
+ 13.5
+ 12.5
+ 11.75
+ 11
+ 10.75
+ 11.5
+ 13.5
+ 15.5
+ 16.25
+ 16.75
+ 18
+ 17
+ 10.25
+ 9.5
+ 10.75
+ 16.25
+ 19
+ 21
+ 22.25
+ 22.5
+ 21.5
+ 19.5
+ 19.75
+ 21
+ 22.75
+ 22.5
+ 25.25
+ 25.75
+ 23.5
+ 23.5
+ 23.5
+ 23.75
+ 23.75
+ 24
+ 23.5
+ 23
+ 23.5
+ 21.75
+ 22.25
+ 23
+ 23.25
+ 23
+ 23
+ 22.75
+ 23
+ 23.5
+ 24
+ 24.25
+ 23
+ 24.75
+ 22.75
+ 21.25
+ 20
+ 18
+ 15.25
+ 11.5
+ 10.25
+ 9.5
+ 9.25
+ 6
+ 6.75
+ 6.75
+ 9.75
+ 11
+ 11.5
+ 11.75
+ 11.5
+ 11.5
+ 10.75
+ 9.75
+ 9
+ 8.25
+ 7.5
+ 6.5
+ 6
+ 5.5
+ 4.75
+ 5
+ 5.5
+ 6.75
+ 8.25
+ 11.75
+ 8.5
+ 13
+ 18
+ 18
+ 17.5
+ 15.5
+ 15
+ 15.25
+ 20.25
+ 27
+ 26.25
+ 25.25
+ 25.75
+ 29.5
+ 33
+ 34.25
+ 37.25
+ 37.5
+ 37.25
+ 37.5
+ 40
+ 43
+ 53.5
+ 56
+ 59
+ 59.5
+ 58.75
+ 55.5
+ 54.75
+ 53.75
+ 47
+ 46.5
+ 46.5
+ 46.25
+ 46.5
+ 46.5
+ 46.75
+ 47.5
+ 48.75
+ 49.5
+ 50
+ 50.25
+ 48.75
+ 47.25
+ 44.5
+ 44.5
+ 46.25
+ 47.25
+ 46
+ 44
+ 43.25
+ 42.75
+ 42.75
+ 42.5
+ 43.25
+ 44.25
+ 48.75
+ 50
+ 50.75
+ 51.25
+ 51.25
+ 50.75
+ 50.25
+ 50
+ 49.75
+ 49
+ 48.25
+ 46.25
+ 45
+ 43.75
+ 43
+ 42.5
+ 42.5
+ 42.25
+ 42
+ 42
+ 41.75
+ 41.75
+ 41.75
+ 40
+ 37.5
+ 33
+ 31
+ 30.5
+ 32.25
+ 30.75
+ 26.5
+ 23.75
+ 21.5
+ 19.25
+ 17.25
+ 15.5
+ 16
+ 19
+ 19.5
+ 18.75
+ 15.75
+ 13.5
+ 12.25
+ 12
+ 12
+ 11.75
+ 11.75
+ 12.25
+ 14.5
+ 18.75
+ 19.75
+ 21.25
+ 21.75
+ 22
+ 22.75
+ 22.75
+ 23.75
+ 23.25
+ 21.75
+ 22.75
+ 25.75
+ 26.5
+ 27.25
+ 26.25
+ 23.25
+ 25
+ 25.75
+ 25.5
+ 25.25
+ 25
+ 25.5
+ 26.25
+ 27.75
+ 27.75
+ 28.25
+ 29.25
+ 30
+ 31.5
+ 30.75
+ 29.25
+ 27.5
+ 26.5
+ 26.25
+ 26
+ 26.5
+ 27
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 28.25
+ 29.5
+ 30.25
+ 30
+ 29.75
+ 31.75
+ 32.75
+ 33.5
+ 34.25
+ 35
+ 38
+ 42
+ 43.75
+ 46.5
+ 47.25
+ 49.25
+ 51.25
+ 51.5
+ 52
+ 53.75
+ 55.75
+ 57.75
+ 56.75
+ 55.75
+ 55.75
+ 56
+ 56.5
+ 56.75
+ 57
+ 56.5
+ 55.5
+ 54.75
+ 53.75
+ 53
+ 52.75
+ 52.25
+ 52.25
+ 52.5
+ 52.5
+ 52.25
+ 51.75
+ 51.75
+ 52.25
+ 52
+ 51.5
+ 50.75
+ 50.25
+ 50
+ 49.75
+ 49.75
+ 49
+ 48.5
+ 47.25
+ 45
+ 44
+ 43
+ 42
+ 41
+ 40.5
+ 39.25
+ 38.75
+ 39
+ 39.5
+ 40.25
+ 40.75
+ 41.75
+ 42.75
+ 43
+ 43.25
+ 43.75
+ 44.75
+ 45.5
+ 46.5
+ 46.75
+ 48
+ 48.75
+ 49
+ 49.75
+ 50.5
+ 50.75
+ 51.25
+ 52.25
+ 53.25
+ 53.75
+ 54
+ 54
+ 54.25
+ 55.75
+ 56.75
+ 57.5
+ 58
+ 59.25
+ 59.5
+ 61
+ 61.25
+ 60.75
+ 58.25
+ 58
+ 60
+ 61.75
+ 62
+ 60.5
+ 60.75
+ 59.5
+ 59.5
+ 59.25
+ 59.25
+ 58.75
+ 57
+ 52.25
+ 47.25
+ 39.25
+ 35.75
+ 33
+ 31.5
+ 31
+ 29.5
+ 29.5
+ 28.5
+ 28.25
+ 27.75
+ 24
+ 22.25
+ 21
+ 19.25
+ 19
+ 20
+ 21.5
+ 22.5
+ 23
+ 23
+ 23.5
+ 23.5
+ 23.5
+ 24.25
+ 25
+ 25.75
+ 25.25
+ 25
+ 25
+ 23.5
+ 23
+ 23.25
+ 23.5
+ 23.75
+ 24
+ 24
+ 25.75
+ 25.75
+ 26.75
+ 28.25
+ 30
+ 33.75
+ 35
+ 32
+ 31.25
+ 29.75
+ 27
+ 33
+ 37.75
+ 39.5
+ 40.75
+ 40.75
+ 40.5
+ 39.5
+ 37.75
+ 37.75
+ 38.25
+ 38.5
+ 39.5
+ 40.25
+ 41
+ 41.75
+ 42.75
+ 45.5
+ 52
+ 56
+ 57.25
+ 57.75
+ 58.75
+ 60.5
+ 62.5
+ 65.75
+ 83.5
+ 85
+ 84.75
+ 86.25
+ 86.75
+ 92.5
+ 95.75
+ 96.5
+ 96.75
+ 97.5
+ 97.75
+ 97.5
+ 96.75
+ 97
+ 97
+ 95
+ 93
+ 92.5
+ 93.75
+ 93.75
+ 93.75
+ 93.5
+ 92.75
+ 91.25
+ 89.75
+ 88
+ 85.5
+ 77.5
+ 72.25
+ 68.75
+ 65.75
+ 62.5
+ 61.25
+ 58.75
+ 55.25
+ 54.5
+ 54.25
+ 54
+ 53.75
+ 53.25
+ 53.25
+ 53.25
+ 54.25
+ 54
+ 52
+ 47.75
+ 45.75
+ 41.5
+ 38.75
+ 38
+ 38.5
+ 39.25
+ 39.5
+ 39.75
+ 40.5
+ 42.75
+ 44.5
+ 47.25
+ 49.5
+ 51.25
+ 56.75
+ 61.75
+ 66.5
+ 66.75
+ 67
+ 69.75
+ 72.5
+ 75.25
+ 77.75
+ 78.75
+ 79.75
+ 78.75
+ 77.25
+ 76.75
+ 75
+ 74.5
+ 75
+ 75.75
+ 78
+ 78.75
+ 68.5
+ 62.75
+ 62.25
+ 62
+ 61.5
+ 60.5
+ 60.25
+ 59.5
+ 56.75
+ 55
+ 54.25
+ 57.5
+ 64
+ 67.75
+ 71
+ 77
+ 85.5
+ 89.25
+ 90.75
+ 90.25
+ 90.25
+ 91.25
+ 90.5
+ 90
+ 90
+ 90
+ 90.5
+ 91.25
+ 92.75
+ 87.25
+ 81.75
+ 79.25
+ 78.5
+ 77.5
+ 76.5
+ 76
+ 75.75
+ 75
+ 74
+ 74.75
+ 75.25
+ 75.75
+ 76.75
+ 77
+ 77.25
+ 77.5
+ 77.75
+ 78.25
+ 78.25
+ 78.25
+ 78.25
+ 78.5
+ 78.75
+ 79.25
+ 79.75
+ 80.25
+ 81.25
+ 81.75
+ 81.75
+ 81.75
+ 81.75
+ 82
+ 82.25
+ 82.25
+ 82.75
+ 83.25
+ 83.25
+ 83.5
+ 83.75
+ 84
+ 84
+ 84
+ 83.75
+ 83.5
+ 83.75
+ 84
+ 83.25
+ 82
+ 82.5
+ 84.75
+ 86.25
+ 86
+ 86
+ 85.5
+ 84.5
+ 83.75
+ 83.75
+ 83
+ 86.25
+ 87.5
+ 88.25
+ 89.25
+ 89.5
+ 90
+ 90.25
+ 90.75
+ 91.25
+ 91.75
+ 92
+ 92.5
+ 92.75
+ 92.75
+ 93
+ 93.25
+ 93.25
+ 93.5
+ 93.5
+ 94
+ 94.5
+ 95.25
+ 97
+ 101.5
+ 102.25
+ 102.5
+ 103
+ 103.5
+ 103.75
+ 103.5
+ 102.5
+ 101
+ 102.5
+ 103
+ 103.25
+ 103.25
+ 104.25
+ 103.75
+ 102.75
+ 102
+ 101.25
+ 100.5
+ 98
+ 91.25
+ 89.5
+ 86.25
+ 85.75
+ 84.75
+ 83
+ 83
+ 83
+ 82.5
+ 82
+ 81.75
+ 82.5
+ 82.5
+ 82.75
+ 83.75
+ 85.25
+ 86
+ 86
+ 84.25
+ 85
+ 85
+ 85
+ 84.75
+ 85
+ 85
+ 85
+ 84.75
+ 85
+ 85
+ 84.75
+ 84.5
+ 82.75
+ 82.25
+ 82.5
+ 81.75
+ 81.75
+ 82.25
+ 82.75
+ 83.5
+ 84.5
+ 85.75
+ 86.25
+ 86.5
+ 87.25
+ 88
+ 88.75
+ 89
+ 89.5
+ 92
+ 92
+ 91.75
+ 92
+ 92
+ 92.5
+ 93
+ 92.25
+ 91.25
+ 90.75
+ 90.5
+ 90
+ 89
+ 88.25
+ 87.5
+ 87.25
+ 87.25
+ 87
+ 86.25
+ 85
+ 83.75
+ 83
+ 82.5
+ 82.25
+ 81.75
+ 82.5
+ 82.75
+ 83
+ 82
+ 82
+ 82.75
+ 83.75
+ 84
+ 84.25
+ 84.75
+ 84
+ 83
+ 81.25
+ 81.25
+ 81.5
+ 82.25
+ 83.5
+ 84.5
+ 85.25
+ 85.5
+ 85.25
+ 85
+ 84.25
+ 83
+ 82.25
+ 82
+ 83
+ 89.25
+ 86.25
+ 86
+ 87
+ 87.5
+ 87.25
+ 87.5
+ 87.75
+ 87.25
+ 86.5
+ 86.75
+ 86.75
+ 88.25
+ 89.25
+ 89.25
+ 89
+ 88.5
+ 88
+ 89
+ 89.75
+ 91.5
+ 92
+ 92.5
+ 92.75
+ 93.25
+ 93
+ 90.75
+ 90.5
+ 90
+ 90
+ 89.75
+ 89.5
+ 89.25
+ 89.25
+ 89.5
+ 90
+ 90
+ 90.5
+ 91.75
+ 93
+ 93
+ 92
+ 91
+ 90.25
+ 89.5
+ 88.5
+ 88.25
+ 88.25
+ 85.75
+ 85.75
+ 87.75
+ 88.5
+ 90.25
+ 91
+ 91.75
+ 92.25
+ 92
+ 92.75
+ 93.5
+ 94
+ 94.25
+ 94.25
+ 94.25
+ 93.25
+ 91.25
+ 86
+ 86
+ 85.25
+ 83.5
+ 81.5
+ 82
+ 82
+ 82
+ 82
+ 82.25
+ 81.25
+ 80.75
+ 80.5
+ 80.25
+ 79.75
+ 78.5
+ 77.75
+ 77.25
+ 74.5
+ 71.5
+ 70.25
+ 69.5
+ 68.75
+ 67.25
+ 66.75
+ 66
+ 65
+ 63.25
+ 60.75
+ 61.25
+ 63
+ 64
+ 64.5
+ 66.5
+ 67.5
+ 68.25
+ 69
+ 71.75
+ 72.25
+ 72.5
+ 72.5
+ 72.5
+ 72.5
+ 72.75
+ 72.75
+ 72.5
+ 72.5
+ 72.5
+ 72.5
+ 72.25
+ 72
+ 72.25
+ 72.25
+ 72.75
+ 72.75
+ 72.75
+ 72.75
+ 73
+ 72.75
+ 72.25
+ 71.75
+ 71
+ 70.75
+ 70.25
+ 70.25
+ 70
+ 69.75
+ 69.75
+ 69.5
+ 69
+ 68.75
+ 68.25
+ 68
+ 68.25
+ 68.5
+ 71.25
+ 73.75
+ 71.75
+ 71.5
+ 70
+ 64.5
+ 61.75
+ 57.5
+ 56.25
+ 54.5
+ 54
+ 54.5
+ 55.25
+ 55.75
+ 56
+ 55
+ 54.5
+ 53.75
+ 51.75
+ 50
+ 47.5
+ 44.25
+ 44
+ 46.5
+ 49.5
+ 45.75
+ 42.75
+ 44.25
+ 44.25
+ 44.25
+ 44
+ 43.25
+ 41.75
+ 41
+ 39.75
+ 38.75
+ 37.25
+ 36.25
+ 35.5
+ 35
+ 34.75
+ 34
+ 33.75
+ 33
+ 33
+ 33
+ 32.75
+ 31.75
+ 31.5
+ 31
+ 28.75
+ 27.25
+ 27
+ 26.25
+ 23.75
+ 22.75
+ 22.75
+ 22.5
+ 22.5
+ 22.5
+ 22.25
+ 22.25
+ 22
+ 22
+ 22
+ 22
+ 22
+ 21.5
+ 20.25
+ 19.75
+ 19.5
+ 18.75
+ 18.25
+ 18
+ 17.75
+ 17.25
+ 16.75
+ 16.5
+ 15.75
+ 14
+ 12.5
+ 11.75
+ 11
+ 10.25
+ 10.75
+ 10.75
+ 10
+ 9.75
+ 9.25
+ 9
+ 7.25
+ 6
+ 5.5
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 7
+ 7.75
+ 9.5
+ 12.75
+ 15.75
+ 17.5
+ 18.75
+ 17.25
+ 14.75
+ 12
+ 14
+ 14.25
+ 13.75
+ 14.5
+ 15
+ 16.75
+ 16.75
+ 17.25
+ 17.5
+ 17.25
+ 17
+ 18.5
+ 19.5
+ 20
+ 20.75
+ 22.25
+ 22.75
+ 21.75
+ 21.25
+ 21
+ 21
+ 21
+ 21.25
+ 21
+ 19.75
+ 18.5
+ 17.75
+ 17.25
+ 17
+ 16.5
+ 16.25
+ 15.5
+ 14
+ 13.25
+ 13
+ 13.5
+ 14.75
+ 15
+ 15
+ 15
+ 15.5
+ 15.5
+ 16
+ 18.25
+ 19.75
+ 20.75
+ 23
+ 23.5
+ 24.75
+ 24.75
+ 24.5
+ 25
+ 25.25
+ 26
+ 27.75
+ 28.5
+ 28
+ 27.5
+ 26.25
+ 25
+ 24.25
+ 24
+ 24
+ 24
+ 24.25
+ 24.25
+ 24.25
+ 24.25
+ 24.75
+ 25.25
+ 27
+ 28
+ 28.25
+ 29.25
+ 30
+ 30.75
+ 31.25
+ 32
+ 32.75
+ 33
+ 33.75
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35
+ 36.75
+ 36.75
+ 36.75
+ 36.75
+ 37.5
+ 37.75
+ 37.75
+ 37.75
+ 37.75
+ 37.25
+ 36.75
+ 36.25
+ 34.25
+ 32.25
+ 31.75
+ 31.5
+ 30.75
+ 29.5
+ 29.25
+ 29
+ 28.75
+ 28.75
+ 28.5
+ 28.5
+ 28.75
+ 28.75
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 28.75
+ 28.75
+ 28.5
+ 28.5
+ 28.25
+ 28.25
+ 28.25
+ 28.25
+ 28
+ 27.5
+ 27.5
+ 27.75
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 27.75
+ 27.5
+ 27.25
+ 27.25
+ 27
+ 27
+ 26.75
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 26.75
+ 26.75
+ 26.5
+ 26.75
+ 26.75
+ 25.5
+ 24.25
+ 24
+ 26.25
+ 35
+ 34.75
+ 34.75
+ 35
+ 34.5
+ 34
+ 34.25
+ 34
+ 34.5
+ 35.5
+ 36.25
+ 36.75
+ 39
+ 41
+ 44
+ 46.75
+ 45.75
+ 44.25
+ 42.5
+ 45.25
+ 47.5
+ 48.75
+ 51.5
+ 50
+ 46.5
+ 46
+ 43.75
+ 45.5
+ 45.75
+ 45.5
+ 45.5
+ 45.5
+ 45.5
+ 45.5
+ 45.75
+ 46
+ 46
+ 46.25
+ 46.5
+ 46.75
+ 47
+ 47
+ 48.25
+ 49
+ 51
+ 53.5
+ 55.75
+ 57.5
+ 58.25
+ 57.25
+ 56.25
+ 55.25
+ 54.75
+ 54.5
+ 53.5
+ 51.75
+ 50
+ 45.5
+ 42.25
+ 36.25
+ 31.5
+ 31.5
+ 33.75
+ 33
+ 31.75
+ 29
+ 28
+ 26
+ 25
+ 24.25
+ 24
+ 23
+ 22.25
+ 21.5
+ 19
+ 19
+ 19.5
+ 20.5
+ 20.75
+ 16.75
+ 15.25
+ 12.75
+ 12.5
+ 11.75
+ 10.5
+ 11
+ 11.75
+ 12.5
+ 14
+ 13.25
+ 12.75
+ 13.25
+ 13.75
+ 15.25
+ 16.25
+ 25.5
+ 28.5
+ 24.25
+ 24
+ 25.75
+ 28
+ 28.5
+ 29.25
+ 29
+ 27
+ 22.5
+ 20.5
+ 18.5
+ 16.5
+ 16.75
+ 16.75
+ 17
+ 17.25
+ 17.75
+ 18
+ 21
+ 24.75
+ 26.25
+ 26.5
+ 24
+ 23.25
+ 22.5
+ 22
+ 22
+ 22
+ 21.25
+ 20.75
+ 20.75
+ 21
+ 21
+ 21.25
+ 21.5
+ 21.5
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.75
+ 26.25
+ 26.5
+ 26.75
+ 26.75
+ 26.25
+ 24
+ 22.75
+ 21.75
+ 20.75
+ 20
+ 23.75
+ 31
+ 36
+ 38.5
+ 39
+ 36.25
+ 33.75
+ 31.75
+ 29.5
+ 27
+ 26.25
+ 25.5
+ 25.5
+ 29.5
+ 31.75
+ 35
+ 35.75
+ 35.25
+ 36.5
+ 37.75
+ 37.75
+ 35.75
+ 27.5
+ 27.25
+ 27
+ 27
+ 27.5
+ 29.25
+ 31
+ 32
+ 33.25
+ 35.5
+ 37.25
+ 38.5
+ 39
+ 39.5
+ 40.25
+ 40.5
+ 40
+ 39.5
+ 39.5
+ 39.25
+ 39.25
+ 37.75
+ 37.75
+ 39.5
+ 42
+ 42
+ 41.5
+ 42.25
+ 43.25
+ 42.5
+ 40.75
+ 39.75
+ 40
+ 40.5
+ 40
+ 41.25
+ 45
+ 45.75
+ 45.75
+ 49
+ 50
+ 50
+ 48.5
+ 47.25
+ 46
+ 46
+ 45.5
+ 45.25
+ 45.5
+ 45.75
+ 46.25
+ 46.5
+ 47.75
+ 48.5
+ 49.25
+ 56.5
+ 62.75
+ 63
+ 63.25
+ 56.75
+ 61.5
+ 63.5
+ 64.5
+ 65
+ 66.5
+ 68.25
+ 73.5
+ 77.5
+ 78
+ 78.5
+ 78.5
+ 77.75
+ 76
+ 72.75
+ 71.5
+ 68.5
+ 66
+ 65.75
+ 63.25
+ 57.5
+ 56.25
+ 57
+ 57.25
+ 58.25
+ 58.25
+ 58.75
+ 59
+ 59.25
+ 59.75
+ 60
+ 60.25
+ 60.5
+ 60.75
+ 61
+ 61.25
+ 61.5
+ 61.5
+ 61.5
+ 61.5
+ 61.25
+ 61.25
+ 61.25
+ 61
+ 60.75
+ 60.75
+ 60.25
+ 60
+ 60
+ 60.25
+ 60.5
+ 60.75
+ 59.5
+ 67
+ 70.25
+ 74.25
+ 75
+ 76.5
+ 80
+ 83.5
+ 85
+ 85
+ 85
+ 85
+ 84
+ 83.75
+ 82.5
+ 82.25
+ 82.5
+ 82.5
+ 83
+ 83.75
+ 83.5
+ 82.25
+ 79.75
+ 79
+ 77.5
+ 76.5
+ 75.25
+ 73.5
+ 68
+ 66.5
+ 65.5
+ 65.25
+ 64.75
+ 63.5
+ 63.25
+ 55.5
+ 58.75
+ 59.5
+ 61
+ 62.25
+ 61.5
+ 59
+ 58.75
+ 59
+ 59.25
+ 59
+ 60
+ 60.5
+ 60.25
+ 60.5
+ 60.75
+ 60.75
+ 60.75
+ 61
+ 61.25
+ 60.75
+ 60.5
+ 60.5
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.25
+ 60.5
+ 60.75
+ 62.25
+ 64.5
+ 66
+ 69.75
+ 70.5
+ 72
+ 73
+ 75.75
+ 81
+ 82.25
+ 81.5
+ 80.75
+ 80.25
+ 80
+ 79.75
+ 80
+ 80
+ 80
+ 79.75
+ 79.5
+ 79.5
+ 81
+ 81.75
+ 82
+ 83.25
+ 84.25
+ 87
+ 88.5
+ 88.25
+ 88.25
+ 87.75
+ 87.5
+ 88
+ 87.75
+ 87.75
+ 87.75
+ 88.25
+ 86.5
+ 84.25
+ 82.5
+ 82
+ 81
+ 79.25
+ 75
+ 72.75
+ 64.5
+ 64.5
+ 62.75
+ 59.75
+ 59.5
+ 59
+ 58.75
+ 58.5
+ 58.5
+ 58.75
+ 59
+ 58.75
+ 58.5
+ 58.25
+ 57.5
+ 57.25
+ 56.5
+ 55.75
+ 55.25
+ 54
+ 52
+ 51.5
+ 50.5
+ 49.25
+ 48.75
+ 48.5
+ 48
+ 47.75
+ 47.5
+ 47
+ 46.25
+ 46
+ 45.5
+ 45
+ 44.5
+ 43.75
+ 42.75
+ 42.75
+ 42.25
+ 40.75
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 39.75
+ 39.25
+ 38.75
+ 38.75
+ 38.75
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 38.5
+ 38.5
+ 38.75
+ 39
+ 39
+ 39.25
+ 39.5
+ 39.75
+ 40
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40
+ 39.75
+ 39.5
+ 39.25
+ 38.5
+ 38
+ 38.25
+ 38.25
+ 37.5
+ 36.5
+ 36.5
+ 36.5
+ 36.25
+ 36.25
+ 36.5
+ 36.75
+ 37
+ 37.25
+ 37.75
+ 37.75
+ 37.5
+ 37.5
+ 37.5
+ 36.75
+ 34
+ 33.75
+ 33.5
+ 33.25
+ 32.25
+ 29
+ 28.25
+ 26.75
+ 26.75
+ 24.25
+ 23.25
+ 23
+ 22.5
+ 21.75
+ 20
+ 19.75
+ 19
+ 18
+ 15.25
+ 14
+ 13.75
+ 13.25
+ 13.25
+ 13
+ 12.5
+ 12.25
+ 12.5
+ 12.5
+ 12.75
+ 13.25
+ 13.5
+ 13.75
+ 14.25
+ 14.5
+ 15.5
+ 14.5
+ 14
+ 13.5
+ 12.75
+ 12.75
+ 12.25
+ 12
+ 10.75
+ 11
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 11.25
+ 15
+ 15.75
+ 16
+ 16.25
+ 15.5
+ 15.5
+ 16.25
+ 16.25
+ 16.25
+ 16
+ 15.5
+ 14.75
+ 10.75
+ 10.75
+ 10.25
+ 8
+ 8.25
+ 8.25
+ 8
+ 8
+ 7.5
+ 6.75
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 5.25
+ 5.25
+ 9.25
+ 7
+ 6.5
+ 4
+ 4.75
+ 5
+ 7.25
+ 10
+ 13
+ 14.25
+ 15.25
+ 16.25
+ 17.25
+ 16
+ 14.25
+ 9
+ 7.75
+ 4.5
+ 4.5
+ 5
+ 5.25
+ 5.5
+ 6.25
+ 6.75
+ 7
+ 7.5
+ 7.5
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 6.5
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 7
+ 7.75
+ 10.25
+ 11
+ 11.25
+ 11.5
+ 12
+ 12.25
+ 10.75
+ 10.25
+ 10.25
+ 9.5
+ 9
+ 8.5
+ 8
+ 7.75
+ 7.25
+ 6.75
+ 5
+ 4
+ 3.75
+ 3.5
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2.25
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 1.75
+ 2
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.75
+ 3
+ 2.5
+ 2.5
+ 1.75
+ 2
+ 2
+ 2.25
+ 2.25
+ 2.25
+ 2.25
+ 2.25
+ 5
+ 5
+ 5
+ 5.25
+ 5.5
+ 5.75
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.25
+ 5.75
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 4.75
+ 4.25
+ 3.5
+ 3
+ 3
+ 3
+ 3
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 15
+ 15.5
+ 15.75
+ 22.5
+ 22.5
+ 22.25
+ 22
+ 21.75
+ 22
+ 22
+ 23
+ 23.5
+ 23.5
+ 23.75
+ 24.5
+ 25
+ 23.75
+ 22.5
+ 21.75
+ 21.25
+ 22.25
+ 22.5
+ 22.75
+ 23.5
+ 24.25
+ 24.75
+ 27.75
+ 28.25
+ 28.5
+ 28.25
+ 27.25
+ 25.5
+ 23
+ 21.75
+ 20.75
+ 19.25
+ 18.75
+ 18.5
+ 18.5
+ 18.5
+ 19.25
+ 20
+ 20.75
+ 22
+ 22.75
+ 23
+ 25.25
+ 26.5
+ 26.5
+ 26.5
+ 26.25
+ 25.75
+ 21.5
+ 21.25
+ 20.5
+ 19.75
+ 20
+ 15.75
+ 14.25
+ 16.25
+ 17
+ 17
+ 16.5
+ 12.5
+ 11
+ 10.75
+ 11.75
+ 12
+ 12.5
+ 13
+ 14
+ 15
+ 18.5
+ 22
+ 23.5
+ 23.75
+ 25
+ 27
+ 28.75
+ 33.25
+ 36
+ 38.5
+ 46.25
+ 50.5
+ 53.5
+ 56.25
+ 58.75
+ 60.75
+ 62.75
+ 64.25
+ 65.25
+ 66
+ 66.75
+ 67
+ 67
+ 66.75
+ 67
+ 67
+ 67
+ 67
+ 67
+ 68.25
+ 69.25
+ 70.25
+ 71
+ 72.75
+ 74
+ 74.5
+ 75
+ 75.5
+ 75.5
+ 75.25
+ 75
+ 74
+ 72.75
+ 71.25
+ 71.75
+ 72.25
+ 73
+ 74.25
+ 75
+ 73.75
+ 73.5
+ 73.25
+ 73
+ 72.25
+ 71
+ 70
+ 65.75
+ 65.25
+ 64.25
+ 59.5
+ 57.75
+ 56.25
+ 50.75
+ 49.5
+ 45.75
+ 45.5
+ 43.5
+ 43.25
+ 42.5
+ 41.25
+ 41
+ 41.25
+ 42.25
+ 45
+ 46.25
+ 46.75
+ 47.5
+ 48.5
+ 49.25
+ 49.5
+ 49.5
+ 49.25
+ 49.25
+ 49.25
+ 49.25
+ 49
+ 48.25
+ 46
+ 45.75
+ 45
+ 45
+ 44.5
+ 42.5
+ 42
+ 43
+ 44.5
+ 46.25
+ 47.5
+ 46.75
+ 43.75
+ 42.75
+ 42.25
+ 42
+ 42
+ 41.75
+ 41.5
+ 42
+ 42.5
+ 43.25
+ 43.25
+ 42.5
+ 42
+ 41
+ 39
+ 37.75
+ 36.75
+ 35.75
+ 35
+ 35
+ 35.25
+ 35.25
+ 35.5
+ 35.5
+ 36
+ 36.5
+ 37
+ 37.25
+ 37.5
+ 38.25
+ 38.5
+ 38.75
+ 39.25
+ 39
+ 38.75
+ 38.5
+ 38
+ 37.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36
+ 35
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35.25
+ 35.5
+ 35.5
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 36
+ 36
+ 36
+ 36
+ 36.25
+ 36.25
+ 36.25
+ 36.5
+ 36.25
+ 36
+ 35.75
+ 36.5
+ 38
+ 38.75
+ 40.75
+ 41.75
+ 42.25
+ 42
+ 41.75
+ 41.5
+ 42
+ 41.75
+ 43
+ 42.5
+ 55.5
+ 50
+ 45.5
+ 28
+ 22
+ 19.25
+ 14.75
+ 14.5
+ 12.25
+ 11.25
+ 15.25
+ 16.75
+ 17.25
+ 18
+ 18
+ 17.5
+ 16.75
+ 16.5
+ 16.5
+ 16.75
+ 17.25
+ 18
+ 18.75
+ 20.5
+ 19.75
+ 24.75
+ 28.5
+ 28.5
+ 28.25
+ 27.25
+ 25.75
+ 25.75
+ 27.75
+ 29.25
+ 31.75
+ 30.25
+ 31.5
+ 33.5
+ 35.25
+ 36.25
+ 37.25
+ 39.5
+ 41.75
+ 42.5
+ 43.25
+ 44
+ 43.5
+ 39.25
+ 29
+ 27.5
+ 27.25
+ 27
+ 27
+ 27.25
+ 26.5
+ 24.75
+ 28.5
+ 29.25
+ 29.75
+ 27.75
+ 24
+ 22.5
+ 20.25
+ 18.25
+ 15.5
+ 14
+ 12.75
+ 12
+ 11
+ 10.25
+ 11.75
+ 12.25
+ 14.25
+ 16
+ 16
+ 10.5
+ 9.75
+ 8.25
+ 6.75
+ 5.5
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 4
+ 3.75
+ 3
+ 3
+ 2.5
+ 2.5
+ 2.25
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 2
+ 3
+ 4.75
+ 3.75
+ 3
+ 1.25
+ 0.5
+ 0.5
+ 1.5
+ 1.75
+ 4.25
+ 6
+ 6.5
+ 8.5
+ 10.25
+ 11.25
+ 9.5
+ 8.25
+ 8.25
+ 8.25
+ 9
+ 11.75
+ 12.25
+ 13.25
+ 14.75
+ 17
+ 18
+ 19.5
+ 20.25
+ 17.5
+ 17.75
+ 17.5
+ 17.25
+ 17.5
+ 17.75
+ 18.5
+ 19.25
+ 21.75
+ 25.25
+ 25.5
+ 27.25
+ 28
+ 28.5
+ 28.75
+ 27.5
+ 26.75
+ 26
+ 25.75
+ 26.5
+ 27
+ 27.25
+ 27.5
+ 27.25
+ 26.5
+ 26.25
+ 26
+ 25.75
+ 25.5
+ 25
+ 24.25
+ 24.75
+ 25.25
+ 25.75
+ 26
+ 26.5
+ 26.5
+ 28.5
+ 29.25
+ 31.25
+ 32.75
+ 40.75
+ 43.75
+ 45.5
+ 46.25
+ 48.25
+ 48
+ 47.75
+ 48.25
+ 48
+ 47.75
+ 48
+ 47.75
+ 46.5
+ 44.5
+ 43.75
+ 43
+ 42.5
+ 42.5
+ 43.25
+ 44.75
+ 48.25
+ 49.25
+ 50
+ 50.5
+ 50.5
+ 50.5
+ 51.5
+ 52.25
+ 53
+ 54.25
+ 55
+ 55
+ 55.5
+ 55.75
+ 56.25
+ 57.75
+ 60.75
+ 65.5
+ 70.75
+ 77.75
+ 78
+ 77.5
+ 76.5
+ 75.75
+ 76
+ 76
+ 72
+ 73.25
+ 74
+ 74.25
+ 74.25
+ 74.25
+ 74.5
+ 74.75
+ 75
+ 76
+ 80
+ 80.75
+ 81
+ 84.5
+ 85.5
+ 85.75
+ 84
+ 82
+ 80.75
+ 78.5
+ 75.25
+ 72.25
+ 70
+ 68
+ 66
+ 64.25
+ 62
+ 60.75
+ 61.5
+ 63.5
+ 64
+ 63.5
+ 61.25
+ 62
+ 62.5
+ 62.25
+ 60.75
+ 60
+ 60
+ 59
+ 58.5
+ 57.25
+ 56
+ 56.25
+ 56.5
+ 56.75
+ 57.25
+ 58.25
+ 59
+ 60
+ 59
+ 56.5
+ 53.75
+ 53.25
+ 53
+ 51.5
+ 50.5
+ 50.5
+ 59.75
+ 65.25
+ 69
+ 73.25
+ 76.5
+ 75.75
+ 76.75
+ 77
+ 76.75
+ 75
+ 68.75
+ 66.5
+ 66
+ 65.5
+ 65.5
+ 65.5
+ 65.5
+ 65.75
+ 66.5
+ 67.75
+ 68.5
+ 69.25
+ 71.25
+ 71.25
+ 71.25
+ 72
+ 76
+ 76.75
+ 78.25
+ 79.5
+ 79.75
+ 79.75
+ 78.25
+ 78
+ 78
+ 77.5
+ 77
+ 76
+ 74.5
+ 72.75
+ 71.75
+ 70.75
+ 70.25
+ 69.5
+ 68.5
+ 65.25
+ 63
+ 62.5
+ 62.25
+ 62
+ 61.75
+ 61.25
+ 60
+ 58.5
+ 57.5
+ 56.75
+ 56.25
+ 55.25
+ 54.75
+ 54.5
+ 53.25
+ 52.5
+ 50.75
+ 50.25
+ 51
+ 52.5
+ 53.25
+ 54.25
+ 55.75
+ 58
+ 59.5
+ 61
+ 62
+ 62.75
+ 63.25
+ 63.25
+ 63.25
+ 62.25
+ 58.25
+ 56.5
+ 54.75
+ 52.5
+ 49.75
+ 49.5
+ 50.75
+ 51.5
+ 53
+ 54.75
+ 58.25
+ 61.5
+ 65.75
+ 66
+ 66
+ 66.25
+ 68
+ 68.5
+ 67
+ 65
+ 63.5
+ 61.75
+ 60.25
+ 59.75
+ 59.25
+ 58.25
+ 57.75
+ 57
+ 56
+ 54.75
+ 53.5
+ 52.25
+ 51.25
+ 49.75
+ 48.5
+ 49.25
+ 50.75
+ 50.75
+ 51.75
+ 52.25
+ 52.75
+ 53
+ 51.75
+ 50.75
+ 52.5
+ 55.5
+ 55.5
+ 55
+ 54
+ 52.75
+ 51
+ 50
+ 48
+ 46
+ 45
+ 42.5
+ 42
+ 40.75
+ 39.5
+ 38
+ 36.75
+ 36.25
+ 35
+ 33.75
+ 33
+ 31.5
+ 31.5
+ 31.5
+ 29.75
+ 28.25
+ 26.75
+ 26
+ 25.5
+ 25
+ 24.5
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 22.75
+ 21.75
+ 21.25
+ 21.25
+ 21.25
+ 21.5
+ 21
+ 20.75
+ 20.5
+ 20.25
+ 17.25
+ 17.25
+ 17.25
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 16.75
+ 16.75
+ 16.25
+ 16
+ 14.25
+ 13.5
+ 13
+ 12
+ 10.5
+ 12.75
+ 13
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 13.25
+ 14.25
+ 16
+ 17
+ 17.5
+ 17.5
+ 18.5
+ 18.5
+ 18
+ 18
+ 18.5
+ 19
+ 19.25
+ 19.25
+ 19
+ 18.75
+ 18.5
+ 18.5
+ 18.5
+ 18.5
+ 18.25
+ 17.75
+ 17.5
+ 17
+ 17
+ 16.75
+ 16
+ 15.5
+ 15
+ 14.5
+ 11.25
+ 10.75
+ 11
+ 11
+ 11.25
+ 12
+ 13.5
+ 16
+ 17.25
+ 18
+ 18.25
+ 18.25
+ 18.75
+ 19.5
+ 20.5
+ 22.5
+ 23.25
+ 24
+ 24
+ 23.75
+ 23.5
+ 22
+ 21.25
+ 20.25
+ 19.25
+ 17.75
+ 20
+ 19.75
+ 19.5
+ 19.25
+ 19.5
+ 19.25
+ 19
+ 18.5
+ 18.5
+ 18.5
+ 18.25
+ 18.25
+ 18.75
+ 19.5
+ 20.25
+ 20.25
+ 19.5
+ 18.25
+ 16.5
+ 14.5
+ 13.25
+ 12
+ 11.5
+ 11.25
+ 10.5
+ 10
+ 9.75
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.5
+ 9.5
+ 9.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8
+ 8
+ 8.25
+ 8.5
+ 8.75
+ 8.75
+ 8.5
+ 7.75
+ 6.5
+ 6.5
+ 6.75
+ 6.5
+ 6.25
+ 5
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3
+ 3.75
+ 4.5
+ 4.75
+ 5.25
+ 5.75
+ 6
+ 6.75
+ 4.25
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 5.25
+ 5.5
+ 5.75
+ 7
+ 9
+ 8
+ 4.5
+ 4
+ 4
+ 4
+ 4
+ 3.5
+ 4
+ 3.75
+ 3.25
+ 2.75
+ 2.5
+ 2.25
+ 2.5
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 3.5
+ 2.25
+ 2
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 3.25
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.5
+ 3.75
+ 5.75
+ 6
+ 6.75
+ 7.5
+ 8
+ 8
+ 8
+ 7.25
+ 6.75
+ 6.25
+ 5.5
+ 5
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.25
+ 3.25
+ 3
+ 2.5
+ 2.75
+ 2.75
+ 3
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 5.75
+ 6.25
+ 6.25
+ 6
+ 5.75
+ 5.75
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 5.75
+ 6.25
+ 6.75
+ 6.25
+ 5.5
+ 4.5
+ 3.75
+ 2.75
+ 2.5
+ 2.75
+ 5.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 6.25
+ 6.5
+ 6.75
+ 7
+ 6.75
+ 6.25
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 3.75
+ 2.5
+ 2
+ 2
+ 3
+ 3
+ 3.25
+ 3.5
+ 3.75
+ 4.25
+ 5
+ 6
+ 6
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5
+ 5
+ 5
+ 4.75
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5
+ 5.25
+ 6.25
+ 6.75
+ 7
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 8.25
+ 8.75
+ 8
+ 6.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5.75
+ 6.25
+ 6.25
+ 5.75
+ 4.75
+ 3
+ 2.75
+ 2
+ 2
+ 2
+ 2
+ 2.25
+ 2
+ 2
+ 2
+ 4
+ 5.5
+ 4.25
+ 3.25
+ 2.25
+ 1.5
+ 1.75
+ 2
+ 2
+ 2.5
+ 2.5
+ 2.75
+ 3
+ 3
+ 3
+ 3.25
+ 4.25
+ 5.75
+ 5
+ 5
+ 6
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 7.5
+ 8
+ 8
+ 8.25
+ 9.5
+ 11
+ 11.5
+ 14.75
+ 15.75
+ 16.5
+ 16.5
+ 16.25
+ 15.5
+ 16
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 19
+ 19.25
+ 20.5
+ 22.25
+ 24
+ 23.5
+ 22.75
+ 21.75
+ 21.25
+ 19.5
+ 17
+ 16.75
+ 16.5
+ 16
+ 15.25
+ 14.75
+ 13.75
+ 13
+ 13
+ 13.5
+ 13.75
+ 14.25
+ 14.5
+ 15
+ 15.25
+ 14.5
+ 14.25
+ 14
+ 13.75
+ 13.5
+ 13
+ 12.25
+ 12
+ 11.75
+ 11.5
+ 11.25
+ 11.25
+ 11
+ 11
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.25
+ 12.5
+ 13.5
+ 17.5
+ 19
+ 17.25
+ 15
+ 14
+ 13.25
+ 12.5
+ 12
+ 12.25
+ 12.5
+ 12
+ 11.25
+ 11
+ 10.25
+ 9.75
+ 9.25
+ 8.75
+ 8.25
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 7.5
+ 7.5
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.75
+ 7.5
+ 7
+ 7.25
+ 7.25
+ 6.75
+ 7.5
+ 6
+ 6.25
+ 6.75
+ 7
+ 6.75
+ 6.75
+ 7
+ 7
+ 11.75
+ 13.5
+ 16.75
+ 17.75
+ 18.5
+ 19
+ 21
+ 20
+ 19.5
+ 19.25
+ 19
+ 18.75
+ 18.25
+ 18.25
+ 18.25
+ 22
+ 22.5
+ 24.25
+ 24.75
+ 25
+ 25.25
+ 26
+ 25.25
+ 24.75
+ 24.25
+ 23.75
+ 26
+ 26.75
+ 27
+ 27
+ 25
+ 24.75
+ 24.5
+ 24.25
+ 24
+ 23.5
+ 23
+ 22.5
+ 21.75
+ 21.25
+ 19
+ 18.5
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 18.75
+ 18.75
+ 18.25
+ 18.25
+ 17.75
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.25
+ 18.5
+ 19
+ 19
+ 18.5
+ 17.75
+ 14.5
+ 13.75
+ 13.75
+ 13.25
+ 13
+ 12.75
+ 12.75
+ 12.5
+ 12
+ 11.5
+ 10.75
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.75
+ 11.25
+ 12.75
+ 14.25
+ 14.75
+ 14.75
+ 15
+ 15.25
+ 15.5
+ 18
+ 19
+ 19.5
+ 19.75
+ 20
+ 20.5
+ 21.25
+ 21.75
+ 21.75
+ 22.75
+ 23.75
+ 24.25
+ 24.5
+ 25
+ 25
+ 25
+ 25
+ 26
+ 27.75
+ 29.75
+ 31.25
+ 32.25
+ 31
+ 32
+ 32.5
+ 33
+ 34
+ 37
+ 36.75
+ 34.75
+ 34.75
+ 35.5
+ 34
+ 32.75
+ 33.75
+ 34.75
+ 35.75
+ 36.5
+ 36.75
+ 37
+ 36
+ 32.75
+ 30.25
+ 27.5
+ 27.5
+ 29
+ 37
+ 37.5
+ 35.25
+ 31
+ 29
+ 27
+ 27.25
+ 28.5
+ 31.75
+ 34
+ 34.5
+ 34.75
+ 32.75
+ 31
+ 30
+ 29
+ 27.75
+ 27.75
+ 27.75
+ 27.75
+ 28
+ 28
+ 28
+ 28
+ 27.75
+ 27.5
+ 27.5
+ 27.25
+ 27.25
+ 27.25
+ 27.25
+ 27
+ 26.5
+ 26.5
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 26.75
+ 27.75
+ 28
+ 28.25
+ 28.25
+ 28.5
+ 32.25
+ 33
+ 33
+ 33
+ 32.5
+ 31.75
+ 31.5
+ 30.5
+ 30.5
+ 31
+ 31.25
+ 31.75
+ 31.5
+ 31
+ 30.5
+ 30.25
+ 30
+ 30
+ 30.5
+ 31
+ 31.25
+ 31
+ 31
+ 31
+ 30.75
+ 30.5
+ 30.5
+ 30.25
+ 29.75
+ 29.5
+ 29
+ 30.75
+ 31
+ 31
+ 31
+ 28.75
+ 27.25
+ 25.75
+ 25
+ 25.5
+ 26.25
+ 26.25
+ 27.25
+ 27.75
+ 27.75
+ 28
+ 29.75
+ 30.5
+ 31
+ 31.75
+ 32
+ 32.25
+ 33.25
+ 35.5
+ 36
+ 36.75
+ 40.25
+ 42.25
+ 47.25
+ 54.5
+ 54.75
+ 55.75
+ 54
+ 53.5
+ 53.25
+ 53.25
+ 49.5
+ 49.25
+ 49
+ 49
+ 48.75
+ 48.5
+ 48.25
+ 47
+ 47.25
+ 47.5
+ 51.25
+ 51.5
+ 52.25
+ 52.5
+ 52.5
+ 52.5
+ 52.25
+ 52.25
+ 52.25
+ 53
+ 54.75
+ 57
+ 57.75
+ 59
+ 61.5
+ 64.75
+ 66.5
+ 66.75
+ 65.25
+ 64.25
+ 62.25
+ 60
+ 59
+ 56.75
+ 54.75
+ 53.5
+ 46.25
+ 44.5
+ 42.75
+ 41
+ 34.25
+ 33
+ 36.75
+ 37
+ 38.25
+ 39.5
+ 40
+ 40.5
+ 41
+ 41.75
+ 43.25
+ 45.5
+ 46.25
+ 45.5
+ 45
+ 44.5
+ 42.75
+ 39.25
+ 38.5
+ 38.25
+ 38.25
+ 38.25
+ 38.25
+ 37.75
+ 37.5
+ 37.25
+ 36.5
+ 35.25
+ 34.5
+ 34
+ 33.75
+ 32.25
+ 31.75
+ 31.75
+ 31.5
+ 31
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 33.75
+ 34.5
+ 35
+ 35.5
+ 35.75
+ 36.25
+ 35.75
+ 34.25
+ 33.5
+ 33.25
+ 33.25
+ 33.25
+ 33
+ 32.75
+ 31.75
+ 31.5
+ 31
+ 29
+ 27.25
+ 26
+ 25.75
+ 26
+ 26
+ 26
+ 25
+ 25
+ 24.75
+ 24.5
+ 24.5
+ 23.75
+ 23.25
+ 23
+ 23
+ 23
+ 22.5
+ 22.5
+ 19.25
+ 19
+ 19.25
+ 19.25
+ 19.5
+ 19.75
+ 19.75
+ 20.25
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.75
+ 20.75
+ 20.75
+ 22
+ 22
+ 22.25
+ 22.5
+ 23.75
+ 24
+ 23
+ 22.75
+ 22.75
+ 22
+ 22.5
+ 23
+ 24.5
+ 26.75
+ 26.75
+ 27
+ 26.75
+ 25.5
+ 25
+ 24.5
+ 22.25
+ 21.25
+ 21
+ 21
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21
+ 20.75
+ 20.75
+ 21
+ 21
+ 21.25
+ 21.75
+ 22
+ 22
+ 21.5
+ 20.75
+ 20.25
+ 20
+ 20
+ 20.5
+ 20.75
+ 21
+ 21.25
+ 21.5
+ 22
+ 22.25
+ 22.5
+ 23
+ 23.75
+ 24
+ 23.75
+ 23.5
+ 23.25
+ 23.25
+ 23.25
+ 23.75
+ 24
+ 24
+ 24
+ 23
+ 21.5
+ 21.5
+ 21.75
+ 21.5
+ 21.5
+ 21.5
+ 21.75
+ 21.75
+ 21.75
+ 22
+ 22
+ 21.75
+ 21.5
+ 21.5
+ 21.5
+ 21.75
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 23.5
+ 24.25
+ 24.5
+ 25
+ 25.25
+ 25.75
+ 25.75
+ 25.5
+ 25
+ 25
+ 25
+ 25.25
+ 25.25
+ 25.75
+ 25.75
+ 25.75
+ 26
+ 26.25
+ 26
+ 26
+ 26
+ 26.5
+ 28.75
+ 32.5
+ 34.5
+ 35.75
+ 37
+ 39.5
+ 39.75
+ 40
+ 40
+ 40.25
+ 40.25
+ 40.25
+ 40.25
+ 40
+ 39.25
+ 38.75
+ 39
+ 40.5
+ 41.25
+ 42.75
+ 43.5
+ 42.25
+ 40.75
+ 38.5
+ 34.75
+ 33.75
+ 33.5
+ 33
+ 32.75
+ 32.5
+ 32.5
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.5
+ 32.75
+ 32.75
+ 32.75
+ 32.75
+ 32.75
+ 35
+ 35.25
+ 35.5
+ 35.75
+ 36.25
+ 36.75
+ 37.25
+ 37.25
+ 37.25
+ 37.5
+ 37.75
+ 38
+ 38.75
+ 39
+ 40
+ 40.5
+ 41
+ 41
+ 40.75
+ 40.5
+ 40
+ 41
+ 40.5
+ 40.25
+ 40.25
+ 40.75
+ 41.75
+ 41.75
+ 41.75
+ 41.75
+ 42
+ 42
+ 41.75
+ 41.75
+ 41.75
+ 41.5
+ 41.25
+ 40.5
+ 35
+ 33.75
+ 31
+ 28
+ 26.75
+ 24
+ 21.5
+ 19.5
+ 18.5
+ 17.75
+ 17.25
+ 16.75
+ 14.5
+ 14
+ 13.5
+ 12.5
+ 12
+ 12
+ 11.75
+ 11.75
+ 11.25
+ 11
+ 10.75
+ 10.5
+ 10
+ 9.75
+ 8.75
+ 8.25
+ 8
+ 7.75
+ 7
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 8.25
+ 8.5
+ 8.75
+ 9.25
+ 9.75
+ 10.5
+ 10.75
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10
+ 10.25
+ 10.75
+ 10.75
+ 12
+ 12.25
+ 12.25
+ 12.75
+ 13
+ 13.5
+ 13.75
+ 13.75
+ 14
+ 13.5
+ 13
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.25
+ 12.25
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 11.25
+ 11.25
+ 11.25
+ 8.25
+ 8
+ 7.75
+ 7.25
+ 7.25
+ 7.25
+ 6.75
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.25
+ 5
+ 5.75
+ 5.75
+ 6.5
+ 7.25
+ 6.5
+ 6.25
+ 5.25
+ 4.5
+ 3.25
+ 3.5
+ 4
+ 4.75
+ 5.5
+ 5.75
+ 6
+ 5.75
+ 5
+ 4.75
+ 4.25
+ 4.25
+ 4
+ 4.5
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6.5
+ 6.75
+ 7.25
+ 7.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.75
+ 8.25
+ 8
+ 7.25
+ 7
+ 6
+ 5.5
+ 4.75
+ 4
+ 1.5
+ 1.75
+ 2.25
+ 2.5
+ 2.75
+ 3.25
+ 3.5
+ 4
+ 4.5
+ 4.5
+ 4
+ 3.5
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3
+ 2.75
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 1.25
+ 1
+ 0.75
+ 0.75
+ 0.5
+ 0.75
+ 1
+ 1
+ 0.75
+ 0.25
+ -2.25
+ -3.75
+ -4
+ 8
+ 8.5
+ 8.75
+ 9.25
+ 9.5
+ 9.75
+ 10
+ 10.25
+ 11
+ 11.75
+ 12
+ 12.25
+ 12.75
+ 13.5
+ 13.5
+ 13.75
+ 14
+ 15
+ 15.5
+ 15.5
+ 15.25
+ 14.75
+ 13.75
+ 12.25
+ 11.5
+ 10.75
+ 9.25
+ 8.75
+ 8.25
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.75
+ 8
+ 8.75
+ 11
+ 11.5
+ 12
+ 11.75
+ 10.75
+ 7.75
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 5.5
+ 6.25
+ 6.5
+ 7
+ 7
+ 7
+ 7
+ 8.5
+ 8.75
+ 9.5
+ 11.5
+ 13.5
+ 13.75
+ 15.25
+ 20.25
+ 15.75
+ 14.5
+ 13.5
+ 13.25
+ 14
+ 9.25
+ 7.75
+ 5.25
+ 4.75
+ 4.5
+ 4
+ 4
+ 3.75
+ 4
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3.75
+ 4
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5.25
+ 5.75
+ 6.25
+ 6.75
+ 7
+ 6.25
+ 5.75
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2
+ 2.25
+ 2.75
+ 3.25
+ 3.75
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 6
+ 7.5
+ 7.25
+ 7
+ 7
+ 7.5
+ 8
+ 8
+ 8.25
+ 7.5
+ 7
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 4
+ 5.5
+ 6.25
+ 6.5
+ 6.75
+ 8.5
+ 9.25
+ 11
+ 13
+ 14
+ 15
+ 16
+ 14.5
+ 12.5
+ 10.5
+ 6.5
+ 2.75
+ 6.25
+ 11.5
+ 11.25
+ 17
+ 19.25
+ 19.25
+ 18.75
+ 14.5
+ 13
+ 15.25
+ 19
+ 13
+ 11.5
+ 11.75
+ 9.5
+ 9.25
+ 9.25
+ 9
+ 8.5
+ 8.5
+ 8.75
+ 12.25
+ 16.75
+ 17.75
+ 18
+ 18
+ 15.25
+ 14
+ 13.75
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.75
+ 15.5
+ 16.5
+ 17
+ 17
+ 17.25
+ 17.25
+ 17.25
+ 15.25
+ 15
+ 13.5
+ 12.75
+ 11.75
+ 11.25
+ 10.75
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.5
+ 8.75
+ 8.75
+ 8.25
+ 5.75
+ 5.25
+ 5
+ 4.5
+ 4
+ 4.25
+ 5
+ 5.25
+ 6.5
+ 7
+ 6.25
+ 6
+ 5.75
+ 5.75
+ 6
+ 6.25
+ 6.75
+ 3.75
+ 2.5
+ 3
+ 3.75
+ 4.25
+ 4.75
+ 3.5
+ 4.25
+ 4.5
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5
+ 5
+ 5.25
+ 6.5
+ 8
+ 10.5
+ 13
+ 14
+ 15
+ 16
+ 19.75
+ 20.25
+ 20.75
+ 21
+ 21
+ 20.75
+ 20.25
+ 20
+ 19.5
+ 19
+ 15.75
+ 15.5
+ 15.25
+ 15.25
+ 15
+ 15
+ 14.75
+ 14.75
+ 14.5
+ 14.75
+ 14.75
+ 13.75
+ 12.75
+ 12.25
+ 11.25
+ 11.25
+ 11
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 11.25
+ 11.5
+ 11.75
+ 12.25
+ 12.5
+ 13
+ 14.25
+ 16
+ 16.25
+ 16.25
+ 16.5
+ 16.75
+ 17
+ 17
+ 17
+ 17
+ 17.5
+ 17.25
+ 17
+ 16.75
+ 16.5
+ 16
+ 15.5
+ 13.5
+ 13
+ 12.5
+ 11.75
+ 10.75
+ 10.25
+ 9.25
+ 8.5
+ 8.25
+ 8
+ 8.25
+ 8.25
+ 8.5
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 7.5
+ 7.5
+ 7.25
+ 7.25
+ 7
+ 6.5
+ 6
+ 6
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 6.5
+ 6
+ 6
+ 6
+ 6.25
+ 6.75
+ 6
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 4.5
+ 4.25
+ 4.75
+ 5
+ 5.25
+ 6
+ 6.25
+ 6
+ 6.25
+ 6.5
+ 7.25
+ 7.25
+ 9.5
+ 9.75
+ 8.5
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 7.25
+ 8
+ 9.5
+ 11
+ 12.75
+ 13.75
+ 14.25
+ 16.75
+ 17
+ 17.25
+ 17
+ 13.25
+ 12.5
+ 11.5
+ 7.25
+ 7
+ 6.25
+ 6.25
+ 6
+ 5.75
+ 6
+ 6.5
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 8.25
+ 8.25
+ 8.5
+ 9
+ 8.5
+ 8.25
+ 7
+ 7
+ 6
+ 6.75
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.5
+ 7.25
+ 7
+ 6
+ 6
+ 6
+ 5.75
+ 5.5
+ 5.5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 5.5
+ 6.25
+ 6.75
+ 7.25
+ 8.25
+ 9
+ 9.75
+ 9.75
+ 8.5
+ 7.75
+ 7.75
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 8.25
+ 8.5
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 6.25
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 6.5
+ 6.25
+ 6
+ 6
+ 6
+ 5.75
+ 6
+ 6.5
+ 8.75
+ 9
+ 10
+ 10.75
+ 11.5
+ 11.5
+ 11
+ 8
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5.5
+ 5
+ 3.75
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 3.25
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 4.75
+ 5
+ 5
+ 5
+ 4.75
+ 4.25
+ 3.5
+ 3.5
+ 3.25
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 3.5
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 6.25
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 6
+ 5.75
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5.5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 6.5
+ 6.75
+ 6.75
+ 6.75
+ 6.25
+ 6.25
+ 6.25
+ 6.25
+ 5.75
+ 5.5
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 5.25
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.25
+ 6.25
+ 6
+ 5.25
+ 5
+ 5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.75
+ 7.5
+ 8
+ 8.25
+ 8.75
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8
+ 8
+ 7.75
+ 7.5
+ 7
+ 6.75
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 6
+ 6.25
+ 6.75
+ 7.5
+ 8.5
+ 9
+ 9.5
+ 9.75
+ 10
+ 11.75
+ 14.25
+ 15
+ 15.5
+ 10
+ 10
+ 10
+ 9.75
+ 10.75
+ 10.25
+ 9.5
+ 9.25
+ 9.25
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 7.75
+ 7
+ 7
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 7.5
+ 5.25
+ 4.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 6.5
+ 4.25
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 6
+ 7.5
+ 5.5
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.75
+ 5
+ 5.25
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 5
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 4.5
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.5
+ 4.5
+ 4.5
+ 5
+ 5
+ 4
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 4
+ 4.25
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5
+ 4.75
+ 4.75
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.25
+ 4.25
+ 3.5
+ 3.25
+ 3
+ 3.5
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.75
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 6.25
+ 6.25
+ 6.25
+ 6.75
+ 7
+ 8
+ 9.5
+ 9.25
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 10
+ 9.75
+ 10
+ 11
+ 12
+ 12
+ 12.25
+ 12.25
+ 12.25
+ 12.75
+ 12.75
+ 13
+ 12.75
+ 12.75
+ 11.75
+ 11
+ 10.75
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 10.5
+ 10.75
+ 11
+ 11
+ 11.25
+ 11.25
+ 11.25
+ 11.25
+ 11
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.75
+ 11
+ 11.75
+ 12
+ 12.25
+ 12.25
+ 12.5
+ 12.5
+ 12.25
+ 11.5
+ 11.5
+ 11.5
+ 15
+ 16.5
+ 19
+ 20
+ 18.75
+ 17.5
+ 11.5
+ 10
+ 10.5
+ 11
+ 11
+ 11
+ 11
+ 10.5
+ 10.25
+ 12
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.25
+ 14.75
+ 14.75
+ 15
+ 15.25
+ 16.25
+ 16.5
+ 16.75
+ 17
+ 17
+ 17.5
+ 17.5
+ 17
+ 16.25
+ 15
+ 14.75
+ 14.5
+ 14
+ 14
+ 14
+ 13.75
+ 13.5
+ 14
+ 14.25
+ 14.5
+ 14.5
+ 18
+ 19
+ 19
+ 16.75
+ 16.5
+ 16.25
+ 16.5
+ 16.75
+ 18
+ 18.5
+ 19
+ 19.5
+ 19.25
+ 18.5
+ 19
+ 19.25
+ 19.25
+ 19.75
+ 19.75
+ 20.25
+ 20.5
+ 20.5
+ 20.5
+ 20.75
+ 21.5
+ 23.5
+ 24.5
+ 25.25
+ 26
+ 26.25
+ 27.25
+ 28.25
+ 30.5
+ 31.25
+ 32.5
+ 32.75
+ 33
+ 33.25
+ 33.5
+ 33.75
+ 33.75
+ 32.75
+ 32
+ 31.75
+ 31.25
+ 30.25
+ 28.25
+ 27.25
+ 26
+ 26
+ 26
+ 26
+ 26
+ 26.25
+ 27.25
+ 27.75
+ 27.75
+ 24.75
+ 22.5
+ 23.75
+ 23.75
+ 23.75
+ 23
+ 23.25
+ 23.5
+ 23.5
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 23.75
+ 23.75
+ 23.75
+ 24
+ 22.75
+ 22.5
+ 24
+ 22
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 22.5
+ 23.75
+ 24.25
+ 25
+ 26.25
+ 26
+ 27.75
+ 27.5
+ 27.25
+ 27
+ 26.75
+ 26.75
+ 27.25
+ 27.75
+ 27.75
+ 27.5
+ 27
+ 27.25
+ 27
+ 28
+ 28.5
+ 29
+ 29.5
+ 31.5
+ 32.5
+ 31.5
+ 31.5
+ 29.25
+ 28.5
+ 27.25
+ 25
+ 22.5
+ 18.75
+ 16.5
+ 15.75
+ 18
+ 18.5
+ 16.75
+ 15.5
+ 15.25
+ 14.25
+ 14
+ 14
+ 14
+ 13.75
+ 13.75
+ 13.25
+ 13
+ 13.5
+ 16.5
+ 17.5
+ 17
+ 16.75
+ 16.25
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 16
+ 16.5
+ 16.75
+ 17.5
+ 17.5
+ 17.75
+ 18
+ 18.75
+ 19.5
+ 20
+ 20.75
+ 21.25
+ 21.75
+ 22
+ 21.5
+ 20.25
+ 17.75
+ 14.5
+ 13
+ 13.5
+ 16
+ 16.75
+ 20.25
+ 20.25
+ 20
+ 20.25
+ 20
+ 20
+ 20
+ 19.75
+ 19
+ 21.5
+ 22
+ 21
+ 20.5
+ 20.25
+ 20.25
+ 20.25
+ 20
+ 19.75
+ 19.75
+ 19.5
+ 21.75
+ 21
+ 20
+ 21.5
+ 19
+ 15.75
+ 16.5
+ 17.5
+ 15.75
+ 14.75
+ 14.5
+ 14
+ 13.75
+ 13.25
+ 12.5
+ 12.25
+ 12
+ 12.25
+ 12.5
+ 13
+ 13.5
+ 13.75
+ 14
+ 13
+ 12.5
+ 12.5
+ 12.75
+ 14.75
+ 16
+ 16.25
+ 16.75
+ 17.75
+ 18.25
+ 18.25
+ 19
+ 21.25
+ 22.75
+ 23.25
+ 23
+ 22.5
+ 22.5
+ 24.75
+ 25.75
+ 23
+ 22.75
+ 19.5
+ 19.25
+ 19
+ 19
+ 19
+ 18.5
+ 18.5
+ 18
+ 18
+ 17.75
+ 17.75
+ 17
+ 17.5
+ 17.75
+ 16.5
+ 16
+ 15.25
+ 16.5
+ 17
+ 17.75
+ 18
+ 16.75
+ 16.5
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 17
+ 16
+ 16
+ 15.5
+ 15
+ 14.75
+ 14.75
+ 14.75
+ 16
+ 20.25
+ 21.25
+ 21.75
+ 21.75
+ 21.5
+ 20
+ 18.5
+ 14
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.25
+ 13.5
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.75
+ 12.5
+ 12.5
+ 12.25
+ 12.25
+ 12
+ 12
+ 12
+ 12
+ 12.25
+ 12.25
+ 13.25
+ 13.75
+ 14
+ 14.25
+ 15
+ 15.5
+ 18.25
+ 20
+ 20.75
+ 21.75
+ 22.75
+ 23
+ 22.75
+ 22.5
+ 22.25
+ 21.75
+ 20.5
+ 18.5
+ 17.5
+ 16.25
+ 15.25
+ 14.25
+ 14.25
+ 14.5
+ 15
+ 15
+ 15.25
+ 15.5
+ 15.25
+ 14.75
+ 14.75
+ 13.75
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 14
+ 17
+ 18.5
+ 18.75
+ 17.75
+ 18
+ 18.5
+ 17.75
+ 15.25
+ 14.25
+ 14
+ 13.25
+ 13
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.75
+ 11.5
+ 16.25
+ 16.25
+ 16.25
+ 15.5
+ 14.75
+ 13.75
+ 12
+ 11.5
+ 11.25
+ 11.25
+ 11
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 9.75
+ 10.25
+ 10.25
+ 10.5
+ 10.25
+ 10
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8
+ 5.5
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 5.25
+ 5.5
+ 5.25
+ 4
+ 4
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 4.25
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.75
+ 4.75
+ 5.25
+ 5.25
+ 5.5
+ 5.25
+ 5.25
+ 4.75
+ 4.75
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5
+ 5
+ 6.25
+ 6.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4.5
+ 5.75
+ 5.5
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.75
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 6
+ 7.5
+ 8
+ 7.5
+ 7.5
+ 7.25
+ 4.75
+ 4.25
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 5
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 5.75
+ 5.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3.75
+ 3.5
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 3.75
+ 3.25
+ 3
+ 3.25
+ 3
+ 3
+ 3
+ 3.25
+ 3.25
+ 3.5
+ 4
+ 4
+ 6.25
+ 11
+ 12
+ 13
+ 13.5
+ 13
+ 13
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.25
+ 12.25
+ 12.5
+ 13
+ 13.5
+ 13.75
+ 14
+ 14.25
+ 14.5
+ 15.75
+ 17.75
+ 18
+ 18.25
+ 19
+ 20.25
+ 21
+ 21.25
+ 21.25
+ 21
+ 20.75
+ 20.5
+ 20.5
+ 20.25
+ 20.5
+ 21.25
+ 22.75
+ 23.75
+ 24.25
+ 24.5
+ 24.75
+ 25.25
+ 25.5
+ 25.5
+ 25.75
+ 26
+ 26.25
+ 26
+ 26.25
+ 26.5
+ 27.25
+ 28.75
+ 30.5
+ 32.75
+ 33
+ 33.25
+ 33.25
+ 33.25
+ 33
+ 33.25
+ 31.5
+ 30.5
+ 30.5
+ 30.25
+ 30
+ 28.25
+ 23
+ 22.75
+ 22.5
+ 19.5
+ 16
+ 15.25
+ 14.5
+ 13.5
+ 12.5
+ 9.75
+ 8.5
+ 7.25
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 5.75
+ 5.25
+ 5.25
+ 4.25
+ 3.75
+ 3.5
+ 3.25
+ 3.25
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3
+ 3.25
+ 4.5
+ 5.25
+ 5.5
+ 5.75
+ 5.75
+ 5.5
+ 5.5
+ 5.25
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 4.75
+ 4.75
+ 5.5
+ 9.5
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 10.5
+ 10.75
+ 11
+ 11
+ 10.5
+ 10.25
+ 11.25
+ 10.75
+ 10.75
+ 11
+ 11
+ 10.75
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 12.25
+ 12.5
+ 14.25
+ 14.25
+ 14.75
+ 15.25
+ 13.75
+ 12.5
+ 11
+ 10.5
+ 10.25
+ 10
+ 9.25
+ 8.25
+ 8
+ 8.5
+ 9.25
+ 10
+ 10.5
+ 11.25
+ 9.5
+ 11.5
+ 12
+ 8.75
+ 8
+ 8
+ 7.75
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 5.5
+ 4
+ 4
+ 4
+ 3
+ 4
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5.25
+ 6
+ 6.5
+ 7
+ 7.25
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 7.75
+ 9
+ 10
+ 11
+ 12.25
+ 13.75
+ 16
+ 18.25
+ 19.75
+ 20.75
+ 21.75
+ 22
+ 22
+ 22
+ 25
+ 25.75
+ 26.25
+ 26.5
+ 27.25
+ 28.5
+ 29
+ 29
+ 28.75
+ 28.25
+ 27.25
+ 26.75
+ 26.5
+ 26.75
+ 27
+ 27.25
+ 28
+ 28.75
+ 29.75
+ 30
+ 29.75
+ 28.5
+ 27.25
+ 26.5
+ 25.25
+ 24.25
+ 23.5
+ 22.5
+ 21.75
+ 21.75
+ 21
+ 20.75
+ 20
+ 19.75
+ 19.75
+ 20.25
+ 20
+ 20
+ 19.5
+ 20.75
+ 20.25
+ 18.25
+ 12.75
+ 11.5
+ 10.5
+ 8.75
+ 8.75
+ 8.25
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4.5
+ 3.75
+ 4.75
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 4.5
+ 4
+ 2.25
+ 2.5
+ 2.5
+ 2.75
+ 2
+ 2
+ 2
+ 1
+ 1
+ 1
+ 1.25
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.25
+ 1
+ 1.25
+ 1
+ 1
+ 1.75
+ 1.25
+ 1
+ 2
+ 2
+ 1.25
+ 1.75
+ 2
+ 2.25
+ 2.25
+ 1.75
+ 1.25
+ 0.25
+ 1.75
+ 2.25
+ 3
+ 4.25
+ 5.25
+ 5.75
+ 6.25
+ 6.75
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 4.75
+ 5.5
+ 5
+ 5
+ 4.25
+ 3.5
+ 3.5
+ 3
+ 2.75
+ 2.25
+ 2
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 5
+ 6.5
+ 7.75
+ 9.5
+ 10.25
+ 10.5
+ 9.75
+ 9.25
+ 6.25
+ 5.5
+ 4.75
+ 4
+ 3
+ 3.25
+ 4
+ 4
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4.25
+ 4.25
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 5.5
+ 5.5
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 5.25
+ 5.25
+ 5.25
+ 5
+ 4.75
+ 4.75
+ 5
+ 5.5
+ 5.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4.5
+ 4.5
+ 4.75
+ 5
+ 5.25
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6
+ 6.75
+ 8
+ 7.75
+ 8
+ 8
+ 8
+ 7.75
+ 8
+ 8
+ 7.75
+ 6
+ 6
+ 6
+ 8.5
+ 8.75
+ 9
+ 10.75
+ 12.25
+ 14.25
+ 14
+ 15.5
+ 15.25
+ 13.75
+ 13.75
+ 15.5
+ 14
+ 14.5
+ 14.75
+ 14.75
+ 14.5
+ 14.5
+ 14.25
+ 13.5
+ 12.5
+ 11
+ 10
+ 8.75
+ 7
+ 5.5
+ 3.75
+ 3.25
+ 3.5
+ 3.5
+ 6.25
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.75
+ 8.75
+ 9
+ 8.5
+ 6.5
+ 6.75
+ 6.25
+ 5.5
+ 4
+ 3.25
+ 3
+ 3
+ 3
+ 2
+ 1.5
+ 2
+ 2.5
+ 3.25
+ 3.25
+ 3
+ 3.5
+ 4
+ 4.75
+ 5
+ 5.5
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 6.5
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8
+ 8.25
+ 8.75
+ 9.5
+ 10
+ 10.25
+ 10.5
+ 10.75
+ 12
+ 13.75
+ 14.5
+ 15.25
+ 15.5
+ 16
+ 15.5
+ 14
+ 13.75
+ 13.75
+ 13.5
+ 14
+ 14
+ 14
+ 14.25
+ 14.25
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.75
+ 14.5
+ 14.25
+ 14.25
+ 14.5
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 13
+ 11.5
+ 8.75
+ 8.25
+ 8
+ 7.75
+ 7.5
+ 7
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.25
+ 8.25
+ 10.5
+ 13.25
+ 13.75
+ 14.5
+ 16.25
+ 18.25
+ 19.25
+ 20.25
+ 23.5
+ 32.25
+ 34
+ 34
+ 35
+ 35.75
+ 35.75
+ 36.5
+ 36.25
+ 35.5
+ 35.5
+ 34.5
+ 32.75
+ 26
+ 24
+ 22.5
+ 19.75
+ 17
+ 15.5
+ 14
+ 13
+ 13.5
+ 14.5
+ 14.5
+ 14.25
+ 13.5
+ 12.75
+ 12.75
+ 12.5
+ 9.5
+ 8.5
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 8.25
+ 8
+ 8
+ 7.75
+ 7.25
+ 7.5
+ 8.25
+ 9
+ 9.25
+ 9.5
+ 12
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.25
+ 12
+ 12.5
+ 13
+ 13.5
+ 13.5
+ 13.25
+ 13.25
+ 13
+ 12
+ 11.75
+ 12.5
+ 12.75
+ 12.5
+ 12.5
+ 12
+ 11.5
+ 10.5
+ 10.25
+ 10.5
+ 10.75
+ 12.75
+ 13
+ 13.25
+ 15.75
+ 16
+ 16
+ 16.25
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.75
+ 16.75
+ 17
+ 16.75
+ 16
+ 16
+ 16.25
+ 16.75
+ 17
+ 17.75
+ 18.25
+ 18.5
+ 20.5
+ 20
+ 19.25
+ 19
+ 18.75
+ 19
+ 18.25
+ 18
+ 18
+ 17.75
+ 17.5
+ 17.5
+ 17.5
+ 17.25
+ 17
+ 16.75
+ 16.5
+ 15.75
+ 15.25
+ 14
+ 13.25
+ 11.25
+ 10.75
+ 10.5
+ 10.25
+ 9.75
+ 8.75
+ 8.5
+ 8.5
+ 8.75
+ 8.25
+ 7.5
+ 7.25
+ 6.75
+ 6.75
+ 7
+ 6.75
+ 6.25
+ 6.25
+ 6
+ 6.25
+ 7
+ 7.25
+ 8.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 6
+ 6.25
+ 6.5
+ 7.25
+ 7.75
+ 8
+ 8
+ 8
+ 7.5
+ 7.25
+ 7
+ 7.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 7.75
+ 7
+ 6.75
+ 6.75
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8.25
+ 8.5
+ 8.5
+ 9.25
+ 9.5
+ 9.75
+ 10
+ 11
+ 11.5
+ 12.25
+ 13
+ 13.5
+ 14.5
+ 16
+ 16.5
+ 16.25
+ 15.5
+ 14.75
+ 14.25
+ 13.75
+ 13
+ 12.5
+ 11.5
+ 10.5
+ 9.25
+ 9
+ 9.5
+ 9
+ 7.75
+ 7.5
+ 7.25
+ 7.25
+ 8.75
+ 7.5
+ 6.5
+ 5.25
+ 5
+ 5.5
+ 5.5
+ 4.75
+ 4.5
+ 4
+ 3.25
+ 3.25
+ 3
+ 3
+ 2.75
+ 2.75
+ 2.75
+ 2
+ 2
+ 2.25
+ 2.25
+ 2.5
+ 3
+ 2.25
+ 2
+ 2
+ 1.25
+ 1.75
+ 1.75
+ 1.5
+ 2
+ 2.5
+ 2
+ 2
+ 2
+ 2.5
+ 2.25
+ 2.5
+ 3
+ 3
+ 2.5
+ 2.75
+ 3.25
+ 3.25
+ 3.5
+ 2.75
+ 2
+ 2
+ 2
+ 2.25
+ 1.5
+ 1.5
+ 1.5
+ 1.5
+ 1.5
+ 2
+ 2
+ 2
+ 2
+ 2.25
+ 2.25
+ 2.25
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.25
+ 2.25
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 2
+ 2
+ 2
+ 2
+ 2.25
+ 2.25
+ 3
+ 3.75
+ 4.25
+ 5.25
+ 5.5
+ 5.5
+ 6.25
+ 7.25
+ 7.75
+ 7.5
+ 7.75
+ 8.25
+ 8.25
+ 8.5
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.75
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 12.5
+ 13.25
+ 13.75
+ 14.5
+ 15.75
+ 16.5
+ 17
+ 17.5
+ 18.25
+ 18.75
+ 19.25
+ 19.75
+ 20.25
+ 20.5
+ 20.75
+ 20.75
+ 21
+ 21
+ 21
+ 21
+ 20.75
+ 20.5
+ 20.25
+ 19.5
+ 19.25
+ 18
+ 17.75
+ 17.75
+ 17.75
+ 18.25
+ 18.5
+ 19
+ 19
+ 19
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19.25
+ 19
+ 19
+ 19
+ 19
+ 19.25
+ 20.25
+ 21.5
+ 21.75
+ 22.5
+ 22.75
+ 22.5
+ 22
+ 21
+ 20
+ 20
+ 19.5
+ 19.25
+ 17.25
+ 16.75
+ 16.25
+ 15.5
+ 15
+ 14.75
+ 15
+ 14.5
+ 14.25
+ 13.75
+ 11.75
+ 11
+ 10.5
+ 10
+ 9.5
+ 8.5
+ 7.5
+ 6.5
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 4.25
+ 4.75
+ 5.25
+ 5.75
+ 5.75
+ 5.25
+ 5.25
+ 5
+ 5
+ 5
+ 7
+ 7.75
+ 8.25
+ 8.75
+ 9.25
+ 9.75
+ 10.5
+ 10.75
+ 11
+ 11.25
+ 11.25
+ 12.75
+ 14.25
+ 15.25
+ 15.5
+ 16.25
+ 16
+ 15
+ 15
+ 14.5
+ 14.25
+ 12.75
+ 10
+ 10
+ 10
+ 10
+ 9.75
+ 9.75
+ 9.75
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.5
+ 9.75
+ 9.5
+ 9.25
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 5
+ 4.5
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3.25
+ 3.25
+ 3.25
+ 3.5
+ 3.5
+ 2.75
+ 3.5
+ 4.5
+ 8.25
+ 9
+ 9.25
+ 12.25
+ 13
+ 13.25
+ 14.25
+ 15
+ 15.5
+ 15
+ 15.25
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.5
+ 15.25
+ 13.75
+ 13.25
+ 12.5
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 11.25
+ 11
+ 10.25
+ 10
+ 9.75
+ 11
+ 11
+ 11
+ 10.25
+ 10
+ 9.75
+ 8.75
+ 7.75
+ 7.5
+ 7
+ 7
+ 7
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 7.5
+ 7
+ 6.25
+ 5.5
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 3.25
+ 3.5
+ 3.25
+ 2.75
+ 3
+ 3
+ 2.75
+ 2.25
+ 2
+ 2
+ 2
+ 1.75
+ 2.25
+ 2.5
+ 1.25
+ 1
+ 1
+ 1.25
+ 1.75
+ 1.75
+ 1.75
+ 1.5
+ 1.25
+ 1.25
+ 1
+ 1
+ 1
+ 1.5
+ 2
+ 1.5
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 1.25
+ 1.5
+ 1.75
+ 1.75
+ 2.25
+ 2.75
+ 3.25
+ 3.5
+ 4
+ 4.25
+ 5.75
+ 6.5
+ 7
+ 6.75
+ 6.75
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 7
+ 7
+ 7
+ 7
+ 6.75
+ 6.75
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.5
+ 5.5
+ 5.25
+ 5
+ 5
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4
+ 3.25
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2.25
+ 2
+ 2
+ 2
+ 1.75
+ 1.75
+ 1.75
+ 1.75
+ 1.5
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1
+ 1
+ 1.75
+ 1.75
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 1.75
+ 2
+ 2.25
+ 2.25
+ 2.25
+ 2.5
+ 2.5
+ 2.75
+ 3
+ 3
+ 3
+ 3.25
+ 3
+ 3
+ 3
+ 3.5
+ 4.25
+ 4.5
+ 4.5
+ 5
+ 5.25
+ 5.25
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 5.5
+ 5
+ 6.25
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 10
+ 10
+ 10.5
+ 11.25
+ 12.75
+ 12.75
+ 13
+ 13.25
+ 13.25
+ 13.25
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 14
+ 14.25
+ 14.5
+ 14.25
+ 13.5
+ 13.75
+ 15
+ 15.25
+ 16.25
+ 16.25
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.75
+ 17
+ 16.75
+ 16.75
+ 16.75
+ 16.75
+ 17
+ 16.25
+ 16
+ 16.25
+ 16.5
+ 15.75
+ 15
+ 15
+ 15.5
+ 15.75
+ 16
+ 15.75
+ 16
+ 15.5
+ 14.25
+ 14.25
+ 13.5
+ 14.25
+ 14
+ 14
+ 14
+ 14.25
+ 15
+ 14.5
+ 13.25
+ 13.5
+ 13
+ 13
+ 13
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 14.75
+ 14.5
+ 14.25
+ 14.25
+ 16
+ 16.75
+ 18.25
+ 18.5
+ 18.75
+ 19.25
+ 19.25
+ 19.5
+ 20
+ 21
+ 21.25
+ 21.5
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 22
+ 22.5
+ 26.25
+ 27.5
+ 28.25
+ 29.5
+ 29.25
+ 28.75
+ 28.25
+ 27.5
+ 27.75
+ 28.25
+ 28.5
+ 28.75
+ 29
+ 29
+ 28.5
+ 27.75
+ 27.25
+ 27.75
+ 28
+ 27.75
+ 27.25
+ 27.25
+ 27
+ 27
+ 26.5
+ 26
+ 25.75
+ 25
+ 24.5
+ 24.25
+ 24
+ 24
+ 24
+ 24.5
+ 24.5
+ 24.5
+ 23.75
+ 23.25
+ 22.5
+ 21.5
+ 19.25
+ 18.25
+ 17
+ 16
+ 14.25
+ 13
+ 12.75
+ 12.25
+ 11.75
+ 11.25
+ 11.25
+ 11
+ 11
+ 11
+ 11
+ 11
+ 11
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.75
+ 11
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 12
+ 12.25
+ 12.5
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.75
+ 13
+ 13.75
+ 14.25
+ 21
+ 21.75
+ 23.5
+ 24.5
+ 25
+ 25
+ 25.5
+ 26.25
+ 26.25
+ 26.25
+ 25.5
+ 26.75
+ 27.25
+ 27.75
+ 26.5
+ 26
+ 26.25
+ 26.5
+ 27
+ 27.75
+ 29
+ 29
+ 29
+ 29
+ 29.5
+ 30
+ 30.5
+ 31.75
+ 33.75
+ 33.25
+ 32
+ 32
+ 32
+ 32.25
+ 32.5
+ 33.5
+ 34.25
+ 34.5
+ 33
+ 32.25
+ 32.25
+ 32
+ 30.25
+ 27.75
+ 30.25
+ 32.25
+ 32.25
+ 31
+ 30.5
+ 30
+ 29.5
+ 29.25
+ 29.25
+ 29.75
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 30.25
+ 30
+ 30
+ 30
+ 29.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.75
+ 28.5
+ 28.5
+ 28.25
+ 28
+ 28
+ 28
+ 28
+ 28.75
+ 28.75
+ 29
+ 29
+ 29.5
+ 28.75
+ 28
+ 28.75
+ 29.25
+ 29.75
+ 29.75
+ 29.5
+ 29
+ 29.25
+ 30
+ 30.5
+ 31.25
+ 30.75
+ 29
+ 28.25
+ 27
+ 26
+ 26
+ 26
+ 25.75
+ 25.75
+ 28.75
+ 32.25
+ 31.5
+ 30.25
+ 29.75
+ 29.75
+ 30
+ 31
+ 36.25
+ 31.5
+ 26.25
+ 25.5
+ 25
+ 22.25
+ 19.75
+ 18.5
+ 17
+ 15.75
+ 15.25
+ 14
+ 13.5
+ 14.75
+ 14.25
+ 14
+ 13.5
+ 13.75
+ 14.25
+ 14.5
+ 15.25
+ 15.5
+ 16
+ 16
+ 16.25
+ 17.25
+ 16.5
+ 16.5
+ 15.75
+ 14.75
+ 14.75
+ 14.5
+ 14.25
+ 14
+ 13.75
+ 13.25
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13
+ 13.25
+ 13.75
+ 13.25
+ 13.25
+ 13.25
+ 13.25
+ 13.5
+ 13.25
+ 13.75
+ 14
+ 14.75
+ 14.75
+ 14.75
+ 14.75
+ 15
+ 15
+ 15
+ 15.25
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.25
+ 15
+ 15
+ 15.25
+ 15.75
+ 16
+ 16.5
+ 17.5
+ 17.75
+ 19.75
+ 19
+ 19
+ 19.25
+ 19.25
+ 18.75
+ 17.75
+ 16.5
+ 16.25
+ 16
+ 16
+ 16.25
+ 16.75
+ 15.75
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 18.5
+ 17.5
+ 15.5
+ 15
+ 17.25
+ 19.75
+ 20.5
+ 20.5
+ 21
+ 21.5
+ 20.5
+ 19.25
+ 21.25
+ 22.25
+ 24.25
+ 27.75
+ 32
+ 32
+ 32.25
+ 33
+ 33.75
+ 36.5
+ 37.5
+ 37.5
+ 37.25
+ 37.5
+ 38.5
+ 38.75
+ 39
+ 39
+ 39.25
+ 31.25
+ 28.25
+ 28
+ 28.25
+ 27.5
+ 27.75
+ 28.25
+ 28.75
+ 31
+ 32.25
+ 31.75
+ 31.75
+ 31.75
+ 31.75
+ 31.5
+ 22
+ 21.75
+ 21.25
+ 21.75
+ 22.5
+ 24
+ 24.25
+ 24.5
+ 24.75
+ 25
+ 25.75
+ 24.5
+ 23.25
+ 22.75
+ 23
+ 23.25
+ 23.5
+ 23.75
+ 25.5
+ 25.25
+ 25
+ 24.5
+ 24.5
+ 24.25
+ 24.25
+ 24
+ 24
+ 24
+ 24
+ 24
+ 23.5
+ 23.25
+ 23.75
+ 23.5
+ 23.25
+ 19.5
+ 19
+ 19
+ 18.75
+ 17.5
+ 17.5
+ 17.75
+ 17.5
+ 17.25
+ 17
+ 17.25
+ 17.5
+ 17.5
+ 17.75
+ 18
+ 18.5
+ 18
+ 17.75
+ 17.5
+ 17.25
+ 17
+ 17
+ 17
+ 16.25
+ 17.25
+ 17.75
+ 19.25
+ 18.5
+ 18
+ 18
+ 18
+ 15.75
+ 15.75
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.5
+ 16.75
+ 16.25
+ 15.25
+ 15.25
+ 15.75
+ 15.75
+ 16
+ 16
+ 17.25
+ 18.25
+ 18.25
+ 18.25
+ 17.75
+ 16.5
+ 12.75
+ 12.75
+ 13.25
+ 13.75
+ 13.5
+ 12.75
+ 11.75
+ 11.25
+ 11
+ 11
+ 11.25
+ 11.75
+ 12
+ 12
+ 12.75
+ 13
+ 12.75
+ 13.5
+ 14
+ 14.5
+ 14.75
+ 14.5
+ 13.5
+ 13.5
+ 14.25
+ 14.25
+ 14.5
+ 15
+ 15.5
+ 15.75
+ 16.75
+ 16.5
+ 16.25
+ 17
+ 18
+ 20
+ 21.5
+ 23
+ 25
+ 29.5
+ 29.75
+ 31.5
+ 35.25
+ 35.75
+ 35.75
+ 36
+ 36
+ 36.25
+ 36.25
+ 36.5
+ 36.5
+ 36.5
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 36.25
+ 35.5
+ 35
+ 34.5
+ 33.5
+ 32.25
+ 29.75
+ 27.5
+ 27.25
+ 27
+ 26.75
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.75
+ 26.75
+ 26.25
+ 26
+ 25.75
+ 25.5
+ 25
+ 24.75
+ 24.75
+ 24
+ 23.5
+ 23.25
+ 23.25
+ 23.25
+ 22.25
+ 22
+ 21.75
+ 21.75
+ 21.75
+ 21.5
+ 21.5
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 22
+ 22
+ 22.25
+ 22.75
+ 22.75
+ 22.5
+ 22.25
+ 22.25
+ 22.75
+ 22.75
+ 23
+ 22.5
+ 22.25
+ 21.5
+ 21
+ 21
+ 21.5
+ 20.25
+ 17
+ 16.25
+ 15
+ 15
+ 14.25
+ 13.5
+ 12.75
+ 14
+ 11
+ 11.5
+ 11.75
+ 12.25
+ 12.75
+ 12.25
+ 10.25
+ 10
+ 10.25
+ 10.5
+ 10.25
+ 11.25
+ 11.25
+ 11.25
+ 14
+ 15.5
+ 21.75
+ 29
+ 29.5
+ 34
+ 31.75
+ 28.75
+ 28
+ 25.5
+ 24.75
+ 24.5
+ 24.5
+ 24.5
+ 24.25
+ 24.25
+ 24.25
+ 24.25
+ 24.25
+ 24.5
+ 24.5
+ 24.75
+ 25
+ 25
+ 25.5
+ 26.25
+ 26.75
+ 25.5
+ 23.5
+ 21.75
+ 19.25
+ 17.25
+ 15.25
+ 14.25
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14.5
+ 14
+ 12.25
+ 11.25
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 12
+ 12
+ 12
+ 12.25
+ 12
+ 12.25
+ 12
+ 12.25
+ 12.25
+ 12.25
+ 12
+ 12
+ 12
+ 12
+ 12
+ 12.5
+ 13.25
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.5
+ 12.75
+ 12.25
+ 11.5
+ 11.5
+ 12
+ 12
+ 12
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.25
+ 16.25
+ 16
+ 16.25
+ 16.25
+ 16.25
+ 16.25
+ 15
+ 14.5
+ 13.75
+ 14.5
+ 14.5
+ 12.75
+ 12.5
+ 12.75
+ 13.25
+ 14
+ 14.75
+ 13.5
+ 13.5
+ 14
+ 15
+ 15
+ 14.5
+ 14.25
+ 14.75
+ 13.5
+ 12.25
+ 11.75
+ 11.25
+ 10.75
+ 10.5
+ 10.5
+ 11.75
+ 11.5
+ 11.75
+ 11.75
+ 12.5
+ 13.25
+ 14
+ 15.5
+ 16.25
+ 16.25
+ 15.75
+ 15.5
+ 14.5
+ 14.25
+ 15
+ 19.5
+ 18
+ 17.25
+ 17.5
+ 18
+ 19.75
+ 16.75
+ 11.25
+ 11.25
+ 11.75
+ 10.5
+ 10.5
+ 11.75
+ 12.5
+ 12.25
+ 12.75
+ 14.5
+ 16
+ 14.75
+ 14.25
+ 14.75
+ 15.25
+ 15.25
+ 15.25
+ 15.5
+ 17
+ 18.25
+ 19.5
+ 20
+ 19.75
+ 26.25
+ 26.25
+ 26.5
+ 27.75
+ 29.75
+ 31.75
+ 31
+ 28.5
+ 28.25
+ 28
+ 27.25
+ 27.25
+ 27
+ 25.5
+ 24.25
+ 24
+ 24
+ 24
+ 22
+ 21.5
+ 21.75
+ 22
+ 22.25
+ 24
+ 24.25
+ 26.75
+ 27.5
+ 26.25
+ 24.75
+ 26.5
+ 25.25
+ 24.75
+ 23.75
+ 21
+ 20.5
+ 20
+ 19.5
+ 19.5
+ 19.5
+ 19.75
+ 21.25
+ 22.75
+ 21.75
+ 18
+ 18.75
+ 19
+ 19.25
+ 20
+ 19
+ 18.75
+ 18.75
+ 19.75
+ 20.75
+ 20
+ 19.5
+ 19
+ 18.75
+ 19
+ 19.75
+ 20
+ 20.5
+ 20.75
+ 20.5
+ 20.75
+ 20.75
+ 21.5
+ 22
+ 23.75
+ 24.25
+ 25
+ 25.25
+ 26.25
+ 26
+ 25.75
+ 25.5
+ 25.75
+ 26.5
+ 26.25
+ 25.75
+ 25.75
+ 25.75
+ 26
+ 26.25
+ 26.5
+ 27
+ 27.75
+ 28.25
+ 28
+ 28.25
+ 28.5
+ 28.25
+ 28.25
+ 28
+ 27.5
+ 27.25
+ 27.25
+ 26.75
+ 26.25
+ 25.5
+ 24.75
+ 23.25
+ 22.5
+ 22.25
+ 22.25
+ 22.25
+ 22.25
+ 22
+ 22
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.25
+ 17.75
+ 17
+ 17.75
+ 17.25
+ 17
+ 17
+ 17.25
+ 18
+ 18
+ 21.25
+ 21.5
+ 21.5
+ 21.5
+ 22
+ 22.25
+ 22
+ 21.5
+ 21.75
+ 21.75
+ 21.75
+ 23
+ 23.25
+ 24.25
+ 25
+ 25
+ 25
+ 26.25
+ 27
+ 27.25
+ 28.25
+ 28.75
+ 29
+ 29.25
+ 29.25
+ 29
+ 28
+ 26.5
+ 25.5
+ 23.75
+ 23.75
+ 23.75
+ 22.75
+ 22
+ 22
+ 22.75
+ 23
+ 26.25
+ 28
+ 30
+ 33
+ 33.25
+ 32.75
+ 32.5
+ 32.25
+ 31.75
+ 31.25
+ 30.25
+ 32
+ 23.25
+ 21
+ 21.5
+ 23.75
+ 23.25
+ 21
+ 21.5
+ 22.25
+ 23.25
+ 23.25
+ 24.25
+ 24.25
+ 23.25
+ 23
+ 22.75
+ 21.75
+ 21.25
+ 21
+ 21
+ 21
+ 21
+ 21
+ 21
+ 27
+ 29.25
+ 30.5
+ 32.75
+ 35.5
+ 37.25
+ 40.25
+ 42.5
+ 42.5
+ 42.25
+ 40.75
+ 39.5
+ 37.75
+ 35.5
+ 34.25
+ 34
+ 33.75
+ 33.25
+ 32.5
+ 31.25
+ 25.75
+ 26.25
+ 26.5
+ 26.75
+ 27
+ 27
+ 27.5
+ 27.5
+ 27.5
+ 27.5
+ 27.5
+ 26.25
+ 25.75
+ 25
+ 24.25
+ 23.75
+ 23.5
+ 22.25
+ 22
+ 21.75
+ 21.5
+ 20
+ 21
+ 24.25
+ 24
+ 23.5
+ 23.25
+ 23
+ 22.75
+ 22.25
+ 21.75
+ 21
+ 21.5
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 21.75
+ 22.5
+ 21.25
+ 20.75
+ 20.5
+ 20.25
+ 20.5
+ 20.75
+ 20.75
+ 22
+ 22.75
+ 24
+ 24.75
+ 25
+ 25.75
+ 27
+ 27
+ 27.5
+ 28.25
+ 28.75
+ 29
+ 29.5
+ 30.25
+ 31.75
+ 31.75
+ 32.25
+ 32.75
+ 32.5
+ 32.25
+ 32.5
+ 32.5
+ 32
+ 32.75
+ 33
+ 34
+ 34.25
+ 34.75
+ 35
+ 35
+ 34.75
+ 34.5
+ 34.25
+ 34
+ 34
+ 34
+ 34
+ 32
+ 29.75
+ 24.75
+ 22.25
+ 20
+ 19
+ 18.5
+ 17.25
+ 15
+ 13.5
+ 13.75
+ 15
+ 16.5
+ 17.5
+ 20
+ 23.75
+ 23.5
+ 23
+ 23
+ 22.5
+ 21.75
+ 22.25
+ 22.5
+ 22.75
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.25
+ 23.5
+ 23.75
+ 24.75
+ 26
+ 26.75
+ 26.75
+ 26.5
+ 26
+ 25.75
+ 25.25
+ 25.25
+ 25.5
+ 25.75
+ 25.75
+ 26
+ 26
+ 26
+ 26
+ 26
+ 26.25
+ 26.25
+ 26.5
+ 26.75
+ 26.25
+ 25.75
+ 25.25
+ 24.25
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24.5
+ 25.25
+ 25.75
+ 25.5
+ 23.25
+ 20.5
+ 19.75
+ 19
+ 19.75
+ 20
+ 19.25
+ 19.5
+ 19.25
+ 19
+ 19.5
+ 20
+ 18.75
+ 19.75
+ 19.25
+ 18.75
+ 18.75
+ 19.5
+ 20.5
+ 23
+ 23.75
+ 23.5
+ 20.5
+ 19
+ 18.25
+ 19
+ 19
+ 19
+ 19
+ 18.75
+ 19
+ 19
+ 19
+ 18.75
+ 17.5
+ 16.5
+ 16
+ 16.25
+ 17.25
+ 17.5
+ 17
+ 17.25
+ 17.25
+ 17
+ 17
+ 17
+ 17.75
+ 18
+ 18
+ 18.25
+ 18.25
+ 18.5
+ 18.5
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 18.75
+ 19
+ 19
+ 19.25
+ 19.25
+ 21.25
+ 22
+ 22.25
+ 21.5
+ 21.5
+ 22.75
+ 22.25
+ 21.75
+ 19.5
+ 19
+ 19
+ 18.75
+ 18.5
+ 17.75
+ 17
+ 16.25
+ 16
+ 15.75
+ 15.25
+ 14.5
+ 13.75
+ 11
+ 10.75
+ 10.75
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 10
+ 10
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 10
+ 10
+ 10.25
+ 10.5
+ 10.75
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11.5
+ 10.75
+ 10.25
+ 9.5
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.75
+ 9.25
+ 9.5
+ 9.75
+ 9.75
+ 9.5
+ 9
+ 8.5
+ 7.5
+ 6.75
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.25
+ 5
+ 4.75
+ 4.5
+ 4.5
+ 4.25
+ 4
+ 3.5
+ 3.5
+ 3.5
+ 3.75
+ 3.75
+ 4.5
+ 5
+ 5.5
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5
+ 4.75
+ 4.75
+ 4.75
+ 5.75
+ 6.5
+ 6.75
+ 6.5
+ 6.25
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6.25
+ 6.75
+ 6.75
+ 7
+ 7
+ 6.75
+ 6.25
+ 6.25
+ 8
+ 8
+ 8.25
+ 8.25
+ 8
+ 7
+ 6.25
+ 5.25
+ 4.75
+ 4.5
+ 3.5
+ 4
+ 4.5
+ 5.25
+ 5.5
+ 5.5
+ 5.75
+ 5.75
+ 6.25
+ 7
+ 8
+ 8.75
+ 9.5
+ 9.5
+ 9.25
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.75
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 9
+ 9.25
+ 10
+ 10
+ 10
+ 9
+ 9
+ 8
+ 8
+ 8.75
+ 9
+ 9
+ 8.25
+ 8.5
+ 8.75
+ 8
+ 8
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 7.75
+ 8.5
+ 8.5
+ 8.75
+ 8.5
+ 8.25
+ 8
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.25
+ 6
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7.25
+ 7.75
+ 8
+ 8.25
+ 8.75
+ 8.75
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8
+ 8
+ 7
+ 7.25
+ 7.5
+ 8
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 7.75
+ 7.5
+ 7.5
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 7.75
+ 7.75
+ 7.5
+ 7.25
+ 7
+ 6.75
+ 6.25
+ 6.25
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5.75
+ 5.5
+ 5.25
+ 5
+ 5.25
+ 5.25
+ 5.5
+ 6.25
+ 6.25
+ 6.75
+ 7.75
+ 8
+ 8.25
+ 9
+ 9.5
+ 9.5
+ 9.75
+ 10
+ 10.5
+ 10.75
+ 11
+ 11
+ 11
+ 11
+ 11.25
+ 11.75
+ 12
+ 12
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8
+ 7.5
+ 7.5
+ 7.75
+ 7.75
+ 8
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 9
+ 7
+ 6.75
+ 7
+ 7
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.5
+ 9
+ 10.25
+ 11.75
+ 12
+ 12
+ 12.25
+ 12.5
+ 12.5
+ 12.5
+ 12
+ 12
+ 11.5
+ 11.25
+ 11.25
+ 10.75
+ 10.75
+ 10.75
+ 10.25
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 9.75
+ 9.5
+ 9.5
+ 9.75
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8
+ 7.75
+ 7.5
+ 6.75
+ 6.5
+ 6
+ 5.75
+ 6
+ 6.25
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 10.75
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 11.5
+ 11.5
+ 11.5
+ 11.5
+ 11.5
+ 11.25
+ 11
+ 11
+ 10
+ 7.5
+ 5.5
+ 5.5
+ 5.5
+ 5.75
+ 6
+ 6.25
+ 6.75
+ 6.75
+ 7
+ 7.75
+ 8.25
+ 8.5
+ 8.75
+ 9
+ 10
+ 10.25
+ 11.5
+ 12.25
+ 12
+ 12
+ 12
+ 11.5
+ 11.25
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 10.5
+ 10.5
+ 10.75
+ 11.25
+ 11.5
+ 10.75
+ 10.5
+ 10.5
+ 11
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 10.75
+ 10.75
+ 10
+ 8.25
+ 8.25
+ 8.5
+ 8.75
+ 9.25
+ 9.75
+ 10
+ 10
+ 10
+ 10
+ 10.75
+ 12
+ 12.25
+ 12.5
+ 15
+ 16.25
+ 17
+ 17
+ 17.25
+ 16.75
+ 13.75
+ 13.25
+ 13
+ 12.75
+ 11
+ 11
+ 10.75
+ 10.75
+ 11.25
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 10
+ 9.5
+ 9
+ 9.25
+ 9.5
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 11.5
+ 11.5
+ 12.5
+ 13
+ 12
+ 11.75
+ 13.5
+ 13.75
+ 13.75
+ 13.75
+ 14
+ 15.75
+ 16.5
+ 17
+ 18.5
+ 18.75
+ 21
+ 22.75
+ 22.5
+ 25
+ 26.75
+ 26.5
+ 26
+ 24.25
+ 23.5
+ 22.75
+ 21.25
+ 18.5
+ 18.25
+ 17.25
+ 17
+ 18
+ 18.25
+ 18.25
+ 17.5
+ 16.5
+ 12
+ 11
+ 9.75
+ 7.75
+ 6.75
+ 6.5
+ 7
+ 9
+ 9.75
+ 16.5
+ 16.25
+ 16
+ 20
+ 25
+ 20.25
+ 15
+ 17
+ 18.25
+ 17.25
+ 15.75
+ 14.5
+ 13.25
+ 12.5
+ 11.75
+ 10.75
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 10.25
+ 10.25
+ 10
+ 9.75
+ 9.75
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8.5
+ 8.25
+ 8.75
+ 9
+ 9.25
+ 9.75
+ 10
+ 10
+ 10
+ 9.75
+ 9.5
+ 9
+ 8.75
+ 8.25
+ 7.5
+ 7
+ 6.25
+ 6.5
+ 6.75
+ 7
+ 7.25
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 8.5
+ 9.25
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 8.75
+ 8.5
+ 7.75
+ 8.25
+ 9
+ 9.5
+ 5.25
+ 5
+ 5
+ 4.75
+ 4.25
+ 4.25
+ 7
+ 7.75
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 11.5
+ 11.5
+ 12
+ 12
+ 12.25
+ 12.5
+ 12.5
+ 12.75
+ 12.75
+ 12.5
+ 12.25
+ 12
+ 12
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 10.5
+ 10
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.5
+ 8.5
+ 11.5
+ 10.5
+ 9.5
+ 12.75
+ 18.5
+ 19.75
+ 19.75
+ 19.75
+ 19.75
+ 19.5
+ 17.5
+ 17
+ 15.25
+ 14.25
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 11
+ 11.5
+ 12
+ 10.5
+ 8.75
+ 8.75
+ 9.5
+ 9
+ 8.75
+ 8.75
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 7.75
+ 7.75
+ 7.75
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.25
+ 8.25
+ 7.75
+ 6.25
+ 6.25
+ 5.75
+ 6
+ 6.5
+ 7
+ 7.5
+ 7.5
+ 8
+ 8
+ 8.25
+ 8.5
+ 8.75
+ 8.75
+ 9
+ 9
+ 9
+ 8.25
+ 8.25
+ 8.25
+ 8.5
+ 8.75
+ 9
+ 8.75
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 7.25
+ 7.5
+ 7.25
+ 8
+ 8.5
+ 9.5
+ 8.25
+ 8
+ 8
+ 9.25
+ 9.5
+ 9.5
+ 9.75
+ 11.75
+ 9
+ 8.75
+ 8.75
+ 9
+ 8.75
+ 8
+ 8
+ 8.75
+ 9
+ 9.5
+ 10
+ 9.75
+ 10.25
+ 11
+ 10.5
+ 11.5
+ 11.75
+ 11.5
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11.25
+ 11.25
+ 11.25
+ 11
+ 10.75
+ 10
+ 10
+ 10
+ 10
+ 10
+ 9.25
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.75
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 9.75
+ 9.5
+ 9
+ 9
+ 8.75
+ 8.5
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 8
+ 9
+ 11
+ 11.75
+ 11.5
+ 11.25
+ 10.5
+ 9.75
+ 9
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 9.5
+ 9.75
+ 10.25
+ 10
+ 9.75
+ 9.25
+ 9
+ 9.25
+ 10
+ 10.75
+ 11
+ 12.25
+ 15
+ 15
+ 14.75
+ 14.75
+ 14
+ 14
+ 14
+ 14
+ 14.5
+ 14.5
+ 14.25
+ 13.5
+ 13
+ 13
+ 13
+ 13
+ 13.25
+ 13.5
+ 13.25
+ 12.75
+ 12
+ 12.5
+ 12.25
+ 12
+ 12
+ 11.75
+ 10
+ 8
+ 6.75
+ 6.5
+ 6
+ 6
+ 5.5
+ 5.75
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.5
+ 6.5
+ 6.5
+ 6.75
+ 6.75
+ 7
+ 7.5
+ 8
+ 8.75
+ 7
+ 7
+ 7.25
+ 7.75
+ 6.75
+ 6.75
+ 7.25
+ 7.5
+ 7.25
+ 7
+ 8.25
+ 8.5
+ 9
+ 9
+ 9
+ 10.5
+ 11.5
+ 12
+ 13.25
+ 14.25
+ 15
+ 15
+ 16
+ 16.25
+ 17
+ 17
+ 18
+ 18.25
+ 18.75
+ 19
+ 19.25
+ 20.25
+ 22.25
+ 24.5
+ 65.75
+ 71.5
+ 87.25
+ 92.75
+ 96.75
+ 109.75
+ 111.5
+ 120.75
+ 128.25
+ 130.75
+ 132.75
+ 134
+ 134.75
+ 135.5
+ 138.25
+ 150.75
+ 152
+ 153.5
+ 155.25
+ 157.5
+ 159
+ 161.5
+ 163.25
+ 164.5
+ 165.5
+ 165.25
+ 165.5
+ 166.25
+ 167.5
+ 171.25
+ 174
+ 175
+ 175
+ 175.25
+ 175.5
+ 176.75
+ 178
+ 178.75
+ 181.5
+ 185.5
+ 188
+ 190.25
+ 191.75
+ 191
+ 187.75
+ 188
+ 188
+ 188.25
+ 188.25
+ 188.25
+ 188.5
+ 188.75
+ 188.75
+ 188.5
+ 187.5
+ 187.25
+ 187
+ 187
+ 182
+ 177.5
+ 175.5
+ 173.75
+ 171
+ 169.75
+ 169.25
+ 169.75
+ 170
+ 170.25
+ 170.25
+ 169
+ 168.25
+ 169.25
+ 170.25
+ 171.5
+ 173
+ 173
+ 173
+ 175.25
+ 173.75
+ 173.25
+ 170.5
+ 156.75
+ 156.5
+ 156.25
+ 156.75
+ 157.25
+ 158
+ 158.5
+ 160.5
+ 159.5
+ 158.5
+ 157
+ 155.75
+ 156.75
+ 154.75
+ 151.5
+ 150.75
+ 150.5
+ 150.5
+ 150
+ 150
+ 149.75
+ 147
+ 142.75
+ 141
+ 138.75
+ 138
+ 139.75
+ 140
+ 139.5
+ 139.25
+ 136.25
+ 136.5
+ 138.75
+ 136.25
+ 133.25
+ 131.5
+ 132.75
+ 129.25
+ 124
+ 125.5
+ 120.75
+ 107.75
+ 104
+ 104.75
+ 107
+ 105.75
+ 103.75
+ 101.25
+ 100.5
+ 99.75
+ 97.25
+ 95
+ 93.5
+ 91.75
+ 92.25
+ 90.5
+ 89.5
+ 87.75
+ 85
+ 82.5
+ 77.25
+ 76.75
+ 75.25
+ 75
+ 75
+ 76
+ 76.5
+ 76
+ 74.5
+ 74.25
+ 72.75
+ 71
+ 69.75
+ 69
+ 68.25
+ 68
+ 68.25
+ 68.25
+ 68.25
+ 67.75
+ 67
+ 66.5
+ 65.5
+ 63.75
+ 62.75
+ 59.5
+ 58.5
+ 50.5
+ 46
+ 41.75
+ 40.25
+ 39
+ 38.25
+ 37
+ 37.5
+ 36
+ 34.25
+ 34.25
+ 34.5
+ 34.75
+ 34.75
+ 35
+ 34.75
+ 34.75
+ 34.75
+ 34.5
+ 34.5
+ 34.25
+ 34
+ 34
+ 33.75
+ 33.75
+ 33.75
+ 33.75
+ 33.75
+ 33.5
+ 33.5
+ 33.5
+ 33.25
+ 32.5
+ 29
+ 24.75
+ 24.5
+ 22.5
+ 21.25
+ 21
+ 21.25
+ 20.75
+ 20.75
+ 20.75
+ 19.75
+ 16
+ 16.25
+ 17
+ 17
+ 17
+ 16.75
+ 16.5
+ 16.25
+ 16
+ 16
+ 16
+ 16
+ 16
+ 15.75
+ 15.25
+ 15
+ 15
+ 14.75
+ 15
+ 14
+ 15
+ 15.5
+ 16
+ 16
+ 16
+ 16
+ 17.25
+ 18.75
+ 18.75
+ 14
+ 13.25
+ 13
+ 12.5
+ 12.5
+ 12
+ 12
+ 12
+ 12.5
+ 12.75
+ 14
+ 18.25
+ 19
+ 22.75
+ 25.25
+ 27.75
+ 28.75
+ 31
+ 31.75
+ 32.25
+ 32.25
+ 31.75
+ 31.5
+ 31.25
+ 31
+ 31
+ 31
+ 31
+ 30.75
+ 30.75
+ 30.5
+ 30.25
+ 29.25
+ 29.5
+ 30
+ 30
+ 29.25
+ 27.5
+ 27
+ 27
+ 26.75
+ 24.5
+ 23.75
+ 23.5
+ 23.5
+ 23.5
+ 23.5
+ 22.25
+ 21.75
+ 21.25
+ 21
+ 20.75
+ 20.25
+ 19.75
+ 19
+ 19
+ 18.75
+ 18.25
+ 17.5
+ 17.5
+ 16.25
+ 15.25
+ 12.5
+ 10.75
+ 10
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8
+ 8
+ 7.75
+ 7.25
+ 8
+ 8.75
+ 8.5
+ 8.5
+ 8.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.5
+ 7.75
+ 8.5
+ 8.75
+ 9.75
+ 10.25
+ 13.5
+ 14.25
+ 14.5
+ 15
+ 15
+ 15.5
+ 16.25
+ 16.75
+ 17.25
+ 17.75
+ 18.25
+ 19
+ 19.25
+ 18
+ 18.25
+ 18
+ 18
+ 20.25
+ 20.5
+ 21.5
+ 21
+ 20.5
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 17.75
+ 17.75
+ 17.25
+ 17
+ 17
+ 16.75
+ 16.75
+ 16.75
+ 16.5
+ 16.25
+ 15.75
+ 15.75
+ 15.5
+ 15.25
+ 14.75
+ 14.25
+ 13
+ 13
+ 13.5
+ 13.75
+ 11
+ 11.75
+ 11
+ 9.75
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.75
+ 10.5
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.75
+ 11
+ 11.25
+ 11.75
+ 11.75
+ 11.5
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 9.5
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 7.75
+ 8.5
+ 9.5
+ 10.75
+ 11
+ 11.25
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.5
+ 11
+ 11
+ 11.25
+ 13
+ 13.25
+ 13.25
+ 13.5
+ 13.75
+ 15.5
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.5
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 16.25
+ 16.25
+ 16.25
+ 14
+ 14
+ 14.5
+ 14.75
+ 15
+ 15
+ 16
+ 16
+ 16.5
+ 16.75
+ 17.25
+ 18.25
+ 16.5
+ 16
+ 15.5
+ 15.25
+ 15.25
+ 15.5
+ 16.25
+ 16.5
+ 15.5
+ 15.5
+ 15.5
+ 15.25
+ 15.25
+ 15.25
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 14
+ 14
+ 14
+ 14
+ 13.75
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 13.25
+ 14
+ 14.5
+ 15.75
+ 16
+ 14.75
+ 12.5
+ 12.75
+ 16.25
+ 16.25
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.75
+ 17
+ 17
+ 19.75
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18.25
+ 18.75
+ 19.25
+ 19.5
+ 19.75
+ 20.75
+ 20.75
+ 20.75
+ 20.75
+ 20.75
+ 20.5
+ 20.5
+ 20.5
+ 20.5
+ 20.75
+ 20.5
+ 19.25
+ 18.5
+ 17.75
+ 17.5
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 15.25
+ 14.75
+ 14.75
+ 14.75
+ 15
+ 15
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 15.75
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16
+ 16.25
+ 16.75
+ 16.75
+ 17
+ 17
+ 15.5
+ 15.25
+ 15
+ 14.5
+ 14
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 13.5
+ 14
+ 14.25
+ 14.25
+ 14.25
+ 14
+ 14
+ 14
+ 13.75
+ 13.75
+ 13.25
+ 13
+ 11.25
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 11
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 10
+ 9.75
+ 6.5
+ 6
+ 5
+ 4.75
+ 3.75
+ 3.5
+ 4
+ 4.25
+ 4.75
+ 5
+ 6.25
+ 6.5
+ 7.75
+ 7.75
+ 7.5
+ 7.5
+ 7
+ 7.25
+ 7.75
+ 6.75
+ 9
+ 9.5
+ 11.75
+ 12.25
+ 11.75
+ 11
+ 11
+ 11
+ 10
+ 10.75
+ 11
+ 11
+ 11
+ 10.75
+ 10.5
+ 10.5
+ 10.25
+ 10
+ 10
+ 9.75
+ 9.75
+ 9.25
+ 8.25
+ 6.75
+ 6.5
+ 6.75
+ 7.25
+ 7.25
+ 7.25
+ 8
+ 8.5
+ 9.5
+ 10
+ 10.25
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 11
+ 11.25
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.75
+ 11.75
+ 11
+ 10.25
+ 9.75
+ 9.25
+ 9
+ 9
+ 8.75
+ 7.75
+ 7.25
+ 7
+ 7
+ 8.5
+ 8.75
+ 8.25
+ 9
+ 9.5
+ 8.75
+ 8
+ 8.75
+ 9.75
+ 10.25
+ 10.75
+ 9.75
+ 9.25
+ 10
+ 11
+ 10.75
+ 10.5
+ 11
+ 11
+ 11.5
+ 11.75
+ 11.75
+ 12
+ 11
+ 10.25
+ 10.25
+ 10.5
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 13.25
+ 13.75
+ 13
+ 14.5
+ 14.75
+ 16.25
+ 17
+ 17
+ 16.75
+ 16.75
+ 16.25
+ 16.75
+ 16.75
+ 16.25
+ 15.75
+ 14
+ 13.75
+ 13.5
+ 15
+ 12
+ 12.75
+ 13.75
+ 27
+ 27
+ 27
+ 26.75
+ 26.5
+ 26.25
+ 25.75
+ 24.25
+ 22.5
+ 22
+ 21.75
+ 21.75
+ 21.75
+ 21.5
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 21.25
+ 22.75
+ 23
+ 23
+ 23.25
+ 23.5
+ 25.5
+ 25.75
+ 25.75
+ 25.5
+ 25.5
+ 23.5
+ 21.5
+ 23.5
+ 31.5
+ 31.5
+ 31.75
+ 31.75
+ 31.5
+ 31.25
+ 31.5
+ 31.75
+ 31.25
+ 31.25
+ 30.25
+ 29.25
+ 28.75
+ 27.75
+ 28
+ 27.5
+ 26.5
+ 26.25
+ 26.25
+ 26
+ 26
+ 26
+ 26.5
+ 26.75
+ 26.75
+ 27
+ 27
+ 26.75
+ 26.75
+ 27
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.5
+ 26.75
+ 27
+ 27
+ 27
+ 27
+ 27
+ 27
+ 27.25
+ 27.25
+ 27.5
+ 28
+ 29
+ 29
+ 28.25
+ 28
+ 28
+ 28.25
+ 28
+ 27.75
+ 27.5
+ 27.5
+ 29
+ 29.75
+ 31.75
+ 33.5
+ 35
+ 34.75
+ 34.5
+ 34
+ 32.75
+ 32.5
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32.25
+ 32
+ 32
+ 32
+ 32.25
+ 32.5
+ 43.5
+ 44.5
+ 42.75
+ 41.75
+ 42
+ 42
+ 41.75
+ 41.75
+ 41.75
+ 42.25
+ 43.75
+ 44
+ 44
+ 44.5
+ 45
+ 46
+ 46.25
+ 47
+ 48.5
+ 48.75
+ 49
+ 49.25
+ 49.5
+ 49.5
+ 49.5
+ 49.5
+ 49.75
+ 49.75
+ 49.75
+ 49.75
+ 50.25
+ 50.5
+ 52
+ 52.75
+ 52.5
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 52.25
+ 51.5
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 51.75
+ 52
+ 52
+ 52
+ 52.25
+ 54.5
+ 54.75
+ 55.5
+ 55.75
+ 55
+ 55.25
+ 56
+ 57
+ 57.25
+ 58.25
+ 58.75
+ 58.5
+ 58
+ 57.5
+ 59
+ 60.25
+ 61
+ 62
+ 62.25
+ 62.75
+ 64
+ 66
+ 67.25
+ 67.75
+ 68
+ 68
+ 68.25
+ 70.75
+ 72.25
+ 73.25
+ 74
+ 73.75
+ 73.75
+ 73.75
+ 74
+ 74.25
+ 74.75
+ 75
+ 74.75
+ 74
+ 73.5
+ 73.5
+ 74
+ 74
+ 74
+ 74
+ 73.75
+ 73.75
+ 73.5
+ 73
+ 73.25
+ 74.75
+ 75
+ 75.25
+ 75.75
+ 75.75
+ 78.25
+ 81
+ 81.5
+ 81.75
+ 81.25
+ 81
+ 81
+ 79.75
+ 79.75
+ 78.75
+ 78.5
+ 78
+ 79
+ 80.75
+ 81.25
+ 80.5
+ 80
+ 80.75
+ 81
+ 80.75
+ 80
+ 81
+ 81.25
+ 81
+ 78.5
+ 76.75
+ 76
+ 76.5
+ 77.25
+ 77.75
+ 77
+ 77
+ 74
+ 73
+ 76
+ 76
+ 76
+ 71.75
+ 70.25
+ 69.75
+ 68.75
+ 62.25
+ 61.5
+ 62
+ 63.5
+ 67.25
+ 70.75
+ 70.5
+ 70.5
+ 70.25
+ 70
+ 71.5
+ 71.75
+ 72
+ 72
+ 72.5
+ 72.5
+ 72.75
+ 74.25
+ 74
+ 70.75
+ 71
+ 71.5
+ 71.25
+ 71
+ 71
+ 72.25
+ 72.75
+ 73
+ 73.25
+ 73.75
+ 74.25
+ 76.25
+ 76.75
+ 77
+ 77.5
+ 77.75
+ 78
+ 77
+ 75.5
+ 73.25
+ 72
+ 71
+ 70.5
+ 70.25
+ 70.75
+ 70.25
+ 71.25
+ 72.25
+ 72.5
+ 73.25
+ 74.75
+ 75.5
+ 75.75
+ 74.25
+ 72.75
+ 68.75
+ 68.5
+ 67.5
+ 68.75
+ 68
+ 67
+ 67
+ 67.5
+ 67
+ 66.25
+ 65.5
+ 65.25
+ 64
+ 63.75
+ 62.5
+ 61.5
+ 61
+ 61.25
+ 61.75
+ 62.5
+ 63.5
+ 64.75
+ 64.75
+ 60.75
+ 53
+ 52
+ 51.75
+ 52
+ 50.25
+ 50
+ 47
+ 46.25
+ 45.25
+ 43
+ 29
+ 28.25
+ 27.5
+ 28
+ 29
+ 29.25
+ 29.5
+ 29.75
+ 30.5
+ 30.75
+ 31.75
+ 32.25
+ 33.25
+ 33.5
+ 34.5
+ 36
+ 36.5
+ 39
+ 43
+ 44.5
+ 44.5
+ 45.75
+ 46
+ 46.5
+ 47
+ 48.5
+ 50.75
+ 51
+ 48.75
+ 46
+ 45.75
+ 41.25
+ 40.5
+ 40.25
+ 40.25
+ 37.5
+ 36.25
+ 34.5
+ 33.5
+ 33.25
+ 31.75
+ 31.25
+ 30.5
+ 30
+ 29.75
+ 29.25
+ 28
+ 27
+ 26
+ 24
+ 22.25
+ 22.25
+ 19.5
+ 19.25
+ 19
+ 18.75
+ 18.5
+ 18.5
+ 18.25
+ 18.25
+ 18
+ 17.75
+ 17.5
+ 17
+ 16.75
+ 16.75
+ 16.5
+ 16.5
+ 16.5
+ 16.5
+ 16.25
+ 19.25
+ 17.75
+ 14.75
+ 14.25
+ 12.5
+ 11.75
+ 11.25
+ 11.75
+ 10.5
+ 10.75
+ 13.25
+ 14
+ 16
+ 17.75
+ 18
+ 18.5
+ 19.25
+ 19.75
+ 20
+ 20.25
+ 20.25
+ 19.75
+ 19.5
+ 18.5
+ 17.75
+ 17.5
+ 15.75
+ 15.75
+ 15.5
+ 15.25
+ 14.75
+ 13.75
+ 13
+ 13.5
+ 13.75
+ 14
+ 14
+ 14
+ 13.5
+ 13.25
+ 12.75
+ 12.5
+ 12
+ 13.5
+ 14.25
+ 14
+ 13
+ 13
+ 13
+ 13.75
+ 12.5
+ 12.5
+ 12.75
+ 13
+ 10
+ 7.75
+ 6.5
+ 4.5
+ 3.75
+ 5.75
+ 8.5
+ 11.75
+ 13
+ 13
+ 13
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.25
+ 12
+ 12.5
+ 12
+ 11.75
+ 11.75
+ 11.75
+ 14.75
+ 16
+ 16.75
+ 16.5
+ 16.5
+ 16.25
+ 16.5
+ 16.75
+ 16.75
+ 17
+ 17.25
+ 17.5
+ 16.25
+ 14.5
+ 13.75
+ 13.25
+ 12.5
+ 11.75
+ 11.5
+ 11
+ 11.5
+ 11.5
+ 11.5
+ 11.75
+ 11.5
+ 11.5
+ 10.75
+ 9.25
+ 9
+ 9
+ 9.5
+ 11.5
+ 12
+ 14.5
+ 16.5
+ 14.75
+ 11.25
+ 11
+ 11.5
+ 12.25
+ 12.25
+ 13.5
+ 13.75
+ 15.25
+ 16.75
+ 16.75
+ 16.5
+ 18.25
+ 17.75
+ 17
+ 16
+ 16
+ 16
+ 16.25
+ 16.5
+ 17.25
+ 17.25
+ 16.75
+ 16
+ 14.75
+ 14.5
+ 14.25
+ 14
+ 14
+ 14.5
+ 16
+ 17.25
+ 17
+ 17
+ 17.25
+ 17.25
+ 15.75
+ 15.5
+ 13
+ 9.25
+ 13.5
+ 13.5
+ 13.75
+ 13.75
+ 13.5
+ 13.5
+ 14.75
+ 16.75
+ 13.5
+ 11.75
+ 10.5
+ 8
+ 8
+ 8.5
+ 8.75
+ 9
+ 9
+ 9
+ 9.5
+ 9.25
+ 10.25
+ 12
+ 13.25
+ 12.5
+ 12
+ 11.5
+ 11.5
+ 11.5
+ 11.75
+ 11.75
+ 11.5
+ 12
+ 11.75
+ 11.75
+ 12
+ 12
+ 10.25
+ 10.25
+ 9.5
+ 10
+ 11
+ 11
+ 11
+ 11
+ 10.5
+ 9
+ 9.25
+ 9.5
+ 7.75
+ 8.5
+ 8.75
+ 9
+ 9
+ 9
+ 9.25
+ 9
+ 9
+ 8.75
+ 8.75
+ 9
+ 8.75
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 8.75
+ 8.75
+ 10
+ 10
+ 10.5
+ 10
+ 9.5
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9
+ 9.25
+ 9.75
+ 11
+ 11
+ 11
+ 11
+ 11.75
+ 14.25
+ 14.25
+ 14
+ 14.5
+ 14.75
+ 14.25
+ 14
+ 13.75
+ 13
+ 12.5
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.75
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12.5
+ 12
+ 12
+ 10.5
+ 9.5
+ 6.75
+ 3.5
+ 1.75
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0.25
+ 1
+ 1.25
+ 2.5
+ 3.5
+ 4
+ 4
+ 4
+ 4
+ 4
+ 3.75
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2.75
+ 3
+ 3.5
+ 4
+ 4.5
+ 5
+ 5.75
+ 5.75
+ 5.75
+ 5.75
+ 6
+ 7
+ 7.75
+ 8
+ 8.75
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8
+ 8.25
+ 7.75
+ 7.75
+ 7
+ 7
+ 7
+ 6.75
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 6.5
+ 7
+ 7
+ 8.5
+ 9
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 9.25
+ 9.5
+ 10.25
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 12
+ 12
+ 12
+ 12
+ 12
+ 11.75
+ 11
+ 11
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 12.25
+ 12.5
+ 12.25
+ 12.25
+ 12
+ 11.5
+ 11.5
+ 11.25
+ 11
+ 10.5
+ 10
+ 9.5
+ 8.75
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 7.75
+ 8
+ 8.25
+ 8.25
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.5
+ 8.75
+ 8.75
+ 8.75
+ 9
+ 9
+ 9
+ 9.25
+ 9.25
+ 9
+ 9
+ 8.75
+ 8.75
+ 9
+ 9.25
+ 9.5
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 9.75
+ 10
+ 10
+ 10.25
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 11
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 11.75
+ 11.5
+ 11.25
+ 11
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10
+ 10.25
+ 10.75
+ 10.75
+ 10.75
+ 10.75
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 11.75
+ 11.25
+ 11
+ 10.5
+ 10.5
+ 10.25
+ 11.25
+ 11.5
+ 12
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 12.25
+ 11.75
+ 11.75
+ 11.5
+ 11
+ 11.25
+ 11.5
+ 11.75
+ 12
+ 14
+ 14.75
+ 15.75
+ 14.5
+ 11.75
+ 8.5
+ 7
+ 6.75
+ 5.5
+ 4.5
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4.25
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 2.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 1.25
+ 0.25
+ 2.75
+ 3
+ 2.75
+ 2.75
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 1.5
+ 1.5
+ 1.5
+ 1.75
+ 2
+ 3.5
+ 3.5
+ 3.5
+ 3.25
+ 3
+ 3.25
+ 3.25
+ 3.75
+ 3.75
+ 4
+ 4.25
+ 4.75
+ 4.75
+ 4
+ 4.25
+ 4
+ 3.75
+ 3.5
+ 5
+ 6
+ 6.25
+ 6.5
+ 7
+ 7.75
+ 7.5
+ 7.5
+ 7.25
+ 7
+ 7
+ 7
+ 6.75
+ 6.5
+ 6.5
+ 6.25
+ 6
+ 5.75
+ 5.5
+ 5.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 3.75
+ 3.5
+ 3
+ 2.75
+ 2.5
+ 1
+ 0.75
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ -0.25
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ -0.25
+ -0.75
+ -1
+ -1.25
+ -1.5
+ -1.75
+ -1.75
+ -1.75
+ -1.75
+ -1.5
+ -0.5
+ -0.25
+ 0.25
+ 0.25
+ 0.5
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+ 1
+ 1
+ 0.75
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 1
+ 2
+ 2
+ 2
+ 2
+ 2
+ 1.5
+ 1.5
+ 1.75
+ 1.75
+ 2
+ 2
+ 2
+ 1.75
+ 1.75
+ 1.5
+ 1.75
+ 1.75
+ 2
+ 2
+ 2.25
+ 3.75
+ 3
+ 2.75
+ 2.5
+ 2.25
+ 1.75
+ 1.5
+ 1.25
+ 1
+ 1
+ 1
+ 1
+ 1.5
+ 2
+ 2
+ 1.5
+ 1.5
+ 1
+ 1.25
+ 1.5
+ 0.75
+ 0.75
+ 1.75
+ 2
+ 2.5
+ 3.25
+ 3.5
+ 3.25
+ 2.75
+ 2.25
+ 2.25
+ 3.25
+ 3.25
+ 6.75
+ 9.25
+ 10.75
+ 11.5
+ 11
+ 9.5
+ 8.75
+ 6
+ 4.5
+ 3
+ 2.5
+ 2.5
+ 2.75
+ 2.75
+ 2.75
+ 1.5
+ 0.75
+ 1.5
+ 2.75
+ 3
+ 2.75
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0.25
+ 0.5
+ 0.25
+ 0
+ 0
+ -0.5
+ -1.5
+ -1.75
+ -1.25
+ -0.75
+ -0.5
+ -0.25
+ 0
+ -0.25
+ -0.5
+ -0.75
+ -0.75
+ -0.75
+ -0.75
+ -0.5
+ -0.75
+ -0.75
+ -0.75
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0.25
+ 1.75
+ 1.25
+ 1
+ 1.75
+ 1.75
+ 2
+ 1.5
+ 3.25
+ 3.5
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.75
+ 2.5
+ 2.25
+ 2
+ 1.75
+ 1.5
+ 1.5
+ 1.25
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1.25
+ 2
+ 2.25
+ 2.5
+ 2.75
+ 3
+ 3
+ 3.5
+ 3.5
+ 3.5
+ 3
+ 3
+ 2.75
+ 2.5
+ 2.5
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2.5
+ 2.5
+ 4.25
+ 6.5
+ 1.5
+ 1
+ 0.75
+ 0.25
+ 0
+ 1.25
+ 2.25
+ 2.25
+ 2.25
+ 2.5
+ 4
+ 4.75
+ 5
+ 5
+ 5
+ 5
+ 4.75
+ 4.75
+ 4.5
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 5.25
+ 5.5
+ 6
+ 6.25
+ 6.5
+ 6.25
+ 6.25
+ 6.25
+ 6
+ 4.75
+ 4
+ 4.5
+ 4.25
+ 4.25
+ 5
+ 6.75
+ 8
+ 8
+ 8
+ 7.75
+ 7.5
+ 7.5
+ 7.5
+ 7.75
+ 8
+ 8.25
+ 9.5
+ 10
+ 9.75
+ 9.5
+ 9.75
+ 9.75
+ 9.75
+ 9.5
+ 8.25
+ 8
+ 7.5
+ 7.25
+ 6
+ 6
+ 6.5
+ 6.75
+ 7
+ 7
+ 7.25
+ 7.5
+ 6
+ 7.75
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7.25
+ 7
+ 7
+ 7
+ 7.25
+ 7.75
+ 7.75
+ 8.5
+ 9
+ 9.25
+ 9.25
+ 9.75
+ 9.75
+ 10.25
+ 10.5
+ 10.5
+ 10.5
+ 10.5
+ 9.75
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.25
+ 9
+ 8.75
+ 8.75
+ 8.25
+ 8.25
+ 8
+ 7
+ 6.75
+ 6.75
+ 6.75
+ 6.75
+ 7.5
+ 8.5
+ 9.25
+ 9.5
+ 9.25
+ 9.25
+ 8.5
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 8.25
+ 9
+ 9.5
+ 10
+ 10.75
+ 11
+ 9.75
+ 9
+ 9.25
+ 9.25
+ 10
+ 10.25
+ 10.25
+ 11
+ 11.5
+ 12.5
+ 12.25
+ 12.75
+ 17.25
+ 17.25
+ 17
+ 16.75
+ 16.5
+ 18.25
+ 19.75
+ 21.75
+ 21
+ 20.75
+ 20.75
+ 20.5
+ 20.25
+ 19.25
+ 18.5
+ 19
+ 19.5
+ 19.75
+ 20
+ 20.5
+ 20.5
+ 20.5
+ 19.75
+ 19.5
+ 18.75
+ 18.75
+ 18.5
+ 18.5
+ 18.25
+ 18.25
+ 18.25
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 17.75
+ 18
+ 18
+ 18.25
+ 18.5
+ 18.75
+ 18.75
+ 19
+ 19
+ 19
+ 19
+ 19
+ 19
+ 22.75
+ 23
+ 23.25
+ 23.75
+ 24
+ 26.25
+ 27.5
+ 24.75
+ 23.25
+ 23.25
+ 24.75
+ 24.25
+ 20.75
+ 21.25
+ 21
+ 20.75
+ 20.75
+ 21
+ 21.25
+ 21.5
+ 21.5
+ 22
+ 24.75
+ 25
+ 25
+ 24
+ 25.5
+ 25.5
+ 26.25
+ 26.5
+ 26.5
+ 26.75
+ 27
+ 28
+ 28
+ 27.75
+ 28
+ 28
+ 28
+ 27.75
+ 28
+ 27.75
+ 28
+ 29.75
+ 30.75
+ 32.5
+ 34.5
+ 34.75
+ 34
+ 34
+ 33.5
+ 33.25
+ 33
+ 32.5
+ 32.25
+ 31.75
+ 31.25
+ 31.25
+ 30.75
+ 30.75
+ 30.5
+ 30.25
+ 29.75
+ 29
+ 28.25
+ 28
+ 28
+ 28
+ 27.75
+ 27.25
+ 27
+ 26.75
+ 26.75
+ 26.25
+ 26
+ 26
+ 26
+ 26
+ 26
+ 25.75
+ 25.75
+ 26.25
+ 26.25
+ 26.25
+ 26
+ 26.25
+ 26.75
+ 27
+ 27.25
+ 27.5
+ 27.75
+ 28
+ 28
+ 28
+ 28
+ 28.25
+ 28.25
+ 28
+ 28
+ 28.75
+ 29
+ 29.75
+ 29.5
+ 29.5
+ 29.5
+ 29.75
+ 30
+ 31.5
+ 32.25
+ 32.5
+ 33
+ 33.25
+ 33.5
+ 33.75
+ 34
+ 33.75
+ 33.5
+ 33.5
+ 33
+ 33
+ 33.5
+ 34.25
+ 34.25
+ 34
+ 33.75
+ 33.25
+ 32.5
+ 33.5
+ 33.75
+ 33.75
+ 34
+ 34
+ 33.75
+ 33.75
+ 33.5
+ 33
+ 33
+ 33
+ 33.5
+ 33.5
+ 33.75
+ 34
+ 34.5
+ 35
+ 37
+ 37.75
+ 38.25
+ 38.75
+ 38.5
+ 38.5
+ 38.25
+ 38.25
+ 38
+ 38
+ 38
+ 38.25
+ 38.25
+ 38.5
+ 38.75
+ 39.25
+ 40.25
+ 40.25
+ 40.5
+ 40.5
+ 40.5
+ 40.75
+ 41
+ 41
+ 41.25
+ 41.25
+ 41.75
+ 42.5
+ 42.25
+ 45.5
+ 46
+ 46.5
+ 47.75
+ 48
+ 48.5
+ 48.25
+ 48
+ 48
+ 48.25
+ 48.25
+ 48.75
+ 49
+ 49.25
+ 49
+ 48.75
+ 48.25
+ 47.75
+ 47.75
+ 47.5
+ 47.5
+ 47.5
+ 47.5
+ 47.25
+ 47
+ 46.75
+ 46.5
+ 46.25
+ 46.25
+ 46
+ 45.5
+ 45
+ 44.75
+ 44
+ 43.75
+ 43.75
+ 43.25
+ 42
+ 44
+ 44.25
+ 44.25
+ 44.25
+ 43.75
+ 43.5
+ 43
+ 42.25
+ 42
+ 40.5
+ 40
+ 39.75
+ 39.5
+ 39.75
+ 40
+ 40
+ 40
+ 40
+ 39.25
+ 40
+ 40.25
+ 40
+ 38.75
+ 38
+ 38
+ 38
+ 38.75
+ 38.75
+ 38.75
+ 38.5
+ 38.5
+ 38.5
+ 39
+ 39.5
+ 39.5
+ 39.5
+ 39.25
+ 39
+ 39
+ 38.75
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 37.75
+ 38
+ 38
+ 37.75
+ 37.75
+ 37.5
+ 37.25
+ 35.75
+ 35.5
+ 35.75
+ 35.25
+ 34.5
+ 33.75
+ 33.25
+ 32.75
+ 33
+ 33.25
+ 33.25
+ 33
+ 33
+ 32.25
+ 32.25
+ 34.25
+ 35
+ 34.75
+ 34.75
+ 34.5
+ 34.75
+ 34.75
+ 34.75
+ 35
+ 35
+ 35
+ 35.25
+ 35.75
+ 36.25
+ 35.75
+ 35.75
+ 35.75
+ 35.75
+ 36
+ 36
+ 36
+ 36.25
+ 36.75
+ 37.5
+ 37.75
+ 37.5
+ 37.5
+ 36.75
+ 36.75
+ 36.5
+ 36.25
+ 35.75
+ 35.75
+ 35.75
+ 35.5
+ 35.5
+ 35.5
+ 35.75
+ 35.75
+ 35.5
+ 36
+ 36
+ 36
+ 36.25
+ 36.25
+ 36.25
+ 36.75
+ 37
+ 37.25
+ 37.5
+ 38
+ 38.25
+ 38.75
+ 39.75
+ 40.75
+ 42
+ 41.75
+ 41.5
+ 41.25
+ 40.25
+ 40
+ 40
+ 40.5
+ 40.75
+ 41
+ 41.25
+ 41.75
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 41.75
+ 41.75
+ 41.75
+ 41.25
+ 40.25
+ 40
+ 40.5
+ 41.5
+ 42.5
+ 43.25
+ 44
+ 44
+ 43.75
+ 44
+ 44
+ 44.25
+ 44.25
+ 44.25
+ 44
+ 44
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.5
+ 43.5
+ 43.5
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.75
+ 43.25
+ 43
+ 43
+ 43.25
+ 43.75
+ 43.5
+ 43.5
+ 43.25
+ 43
+ 43
+ 42.75
+ 42.75
+ 42.75
+ 42.5
+ 42.25
+ 42.25
+ 42.25
+ 42
+ 42.25
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42.25
+ 42
+ 43.25
+ 42.75
+ 42
+ 41.5
+ 41
+ 40
+ 39.25
+ 38.25
+ 37.5
+ 36.75
+ 36
+ 36.5
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37.25
+ 37.25
+ 37.25
+ 37.25
+ 37.25
+ 37
+ 37.25
+ 37.5
+ 37.75
+ 38.25
+ 38.75
+ 38.25
+ 37.75
+ 37
+ 36.5
+ 36
+ 35.75
+ 35.25
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35.5
+ 35.75
+ 35.75
+ 35.75
+ 36
+ 36.25
+ 36.5
+ 37
+ 37
+ 37.25
+ 37.25
+ 37.5
+ 37.5
+ 37.75
+ 37.75
+ 38.25
+ 40.25
+ 40
+ 39.75
+ 39.75
+ 39.25
+ 38.5
+ 37.5
+ 38
+ 38
+ 38
+ 38
+ 38
+ 37.75
+ 37.25
+ 36.75
+ 36.5
+ 36.75
+ 37
+ 37.75
+ 37.5
+ 37
+ 37
+ 37
+ 37.25
+ 38.25
+ 39
+ 39
+ 39.25
+ 39.75
+ 38.75
+ 38.25
+ 37.25
+ 36.5
+ 35
+ 35.25
+ 35.75
+ 36
+ 35.5
+ 35.25
+ 35
+ 35
+ 33.5
+ 33
+ 33
+ 33
+ 32.75
+ 32.5
+ 32.25
+ 32.5
+ 32.5
+ 32.75
+ 33
+ 32.75
+ 32.5
+ 33.25
+ 34.25
+ 35.25
+ 35.75
+ 36
+ 36.25
+ 36.75
+ 37.5
+ 38.25
+ 39.75
+ 39.75
+ 39.75
+ 39.25
+ 38
+ 37.75
+ 37.75
+ 37.5
+ 37.5
+ 36.5
+ 36
+ 35.75
+ 36
+ 36
+ 35.75
+ 35.5
+ 35.25
+ 35.25
+ 35.25
+ 35.5
+ 35.5
+ 35.5
+ 35.75
+ 35.75
+ 36
+ 36
+ 36
+ 36
+ 35
+ 34.5
+ 33.75
+ 33.5
+ 32.75
+ 32.25
+ 32
+ 32
+ 31.75
+ 31.5
+ 31.25
+ 31.25
+ 31.5
+ 32.5
+ 33
+ 33
+ 35
+ 35
+ 34.75
+ 34.5
+ 34
+ 34.75
+ 34.75
+ 34.75
+ 34.5
+ 33.75
+ 32.25
+ 31.75
+ 31.25
+ 31.5
+ 32.25
+ 33
+ 33.5
+ 34
+ 34.25
+ 34.25
+ 34
+ 33.75
+ 33.25
+ 33.25
+ 32.75
+ 32
+ 30.5
+ 30
+ 29.75
+ 29
+ 29
+ 27
+ 26.75
+ 26.5
+ 25.75
+ 25.25
+ 25
+ 25.25
+ 25.5
+ 26
+ 27.25
+ 27.75
+ 28
+ 29.25
+ 30
+ 30.5
+ 30.75
+ 30.75
+ 30.5
+ 30.75
+ 31
+ 30.75
+ 30.25
+ 29.75
+ 29.75
+ 28
+ 27.5
+ 27
+ 21.5
+ 20.25
+ 20
+ 22.75
+ 18.75
+ 18.25
+ 17.75
+ 17.75
+ 18
+ 19.25
+ 20.25
+ 20.5
+ 20
+ 20
+ 20
+ 19.75
+ 19.75
+ 19.75
+ 18.75
+ 18.5
+ 18.25
+ 18
+ 18
+ 17.75
+ 17.75
+ 17.75
+ 17.75
+ 17.5
+ 17.5
+ 17.5
+ 17.25
+ 17
+ 17
+ 17.25
+ 17.75
+ 17.5
+ 17.25
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17
+ 17.25
+ 17.25
+ 17.25
+ 17.25
+ 17
+ 17.25
+ 17.5
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 18
+ 17.75
+ 17.5
+ 17.5
+ 17.5
+ 17.25
+ 16
+ 15.75
+ 15
+ 14.5
+ 14.25
+ 14.25
+ 14
+ 14
+ 13.5
+ 13.25
+ 12.5
+ 10.75
+ 10.5
+ 10.5
+ 10
+ 10
+ 9.75
+ 9.5
+ 9.5
+ 9.5
+ 9.25
+ 9.25
+ 9.25
+ 9
+ 9
+ 8.75
+ 8.5
+ 8
+ 7.75
+ 7.5
+ 7.5
+ 7.5
+ 7.75
+ 8.25
+ 8.75
+ 8.75
+ 8.75
+ 8.25
+ 8.25
+ 8
+ 8
+ 8
+ 8
+ 8
+ 7.75
+ 7.75
+ 7.5
+ 6.5
+ 6.25
+ 6
+ 6
+ 5.75
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 5
+ 4.5
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4
+ 4.5
+ 4.75
+ 6
+ 6
+ 6
+ 6
+ 5.75
+ 4.75
+ 4
+ 4
+ 4.25
+ 4.5
+ 4.75
+ 4.75
+ 4.75
+ 4.75
+ 4
+ 3.75
+ 3.5
+ 3.5
+ 3.25
+ 3.5
+ 3.5
+ 3.25
+ 3
+ 2.75
+ 1.75
+ 1.5
+ 1.5
+ 0.75
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+ 0.75
+ 0.5
+
+
+
\ No newline at end of file
diff --git a/tests/test_forced_stop.sh b/tests/test_forced_stop.sh
new file mode 100755
index 0000000..8b0ecaa
--- /dev/null
+++ b/tests/test_forced_stop.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+cd "$(dirname "$0")/.."
+
+# Create a test GPX file with a simple route
+cat > test_route.gpx << EOF
+
+
+
+ Test Route
+
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+
+EOF
+
+# Run the bicycle planner with a 1-night forced stop
+echo "Testing with 1-night forced stop at 59.5,18.5"
+go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000 --multiStop="59.5,18.5:1"
+
+# The number of segments is now shown in the output
+echo "Check the output above for the number of segments created"
+
+# Clean up
+rm test_route.gpx
diff --git a/tests/test_multi_night_stop.sh b/tests/test_multi_night_stop.sh
new file mode 100755
index 0000000..3799efb
--- /dev/null
+++ b/tests/test_multi_night_stop.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+cd "$(dirname "$0")/.."
+
+# Create a test GPX file with a simple route
+cat > test_route.gpx << EOF
+
+
+
+ Test Route
+
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+
+EOF
+
+# Run the bicycle planner with a 2-night forced stop
+echo "Testing with 2-night forced stop at 59.5,18.5"
+go run main.go --input="test_route.gpx" --days=6 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000 --multiStop="59.5,18.5:2"
+
+# The number of segments is now shown in the output
+echo "Check the output above for the number of segments created"
+
+# Clean up
+rm test_route.gpx
diff --git a/tests/test_town_avoidance.sh b/tests/test_town_avoidance.sh
new file mode 100755
index 0000000..a022371
--- /dev/null
+++ b/tests/test_town_avoidance.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+cd "$(dirname "$0")/.."
+
+# Create a test GPX file with a simple route
+cat > test_route.gpx << EOF
+
+
+
+ Test Route
+
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+
+EOF
+
+# Run the bicycle planner with debug output to see town avoidance in action
+echo "Testing town avoidance feature with performance improvements"
+echo "Running first time (no cache)..."
+time go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000
+
+echo ""
+echo "Running second time (with cache)..."
+time go run main.go --input="test_route.gpx" --days=5 --elevFactor=4 --forestRadius=5 --resupplyRadius=5000
+
+# Clean up
+rm test_route.gpx
diff --git a/tests/test_uneven_effort.sh b/tests/test_uneven_effort.sh
new file mode 100755
index 0000000..169833b
--- /dev/null
+++ b/tests/test_uneven_effort.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# Test script for uneven effort distribution
+echo "Testing uneven effort distribution..."
+cd "$(dirname "$0")/.."
+go run main.go -input tests/gpx/test_uneven_effort.gpx -days 12 -elevFactor 4.0
diff --git a/tests/test_uneven_effort_with_stops.sh b/tests/test_uneven_effort_with_stops.sh
new file mode 100755
index 0000000..058469b
--- /dev/null
+++ b/tests/test_uneven_effort_with_stops.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Test script for uneven effort distribution with forced stops
+echo "Testing uneven effort distribution with forced stops..."
+cd "$(dirname "$0")/.."
+
+# Run the bicycle planner with the test GPX file and forced stops
+go run main.go -input tests/gpx/test_uneven_effort.gpx -days 12 -elevFactor 4.0 -multiStop="60.5,19.5:1;62.5,21.5:2;64.5,23.5:1"
diff --git a/tests/test_very_long_route_with_forced_stops.sh b/tests/test_very_long_route_with_forced_stops.sh
new file mode 100755
index 0000000..5a73350
--- /dev/null
+++ b/tests/test_very_long_route_with_forced_stops.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Test script for the issue with uneven effort distribution
+echo "Testing issue with uneven effort distribution..."
+cd "$(dirname "$0")/.."
+
+# Run the bicycle planner with the specified parameters and debug logging
+# Filter the output to only show the relevant parts
+go run main.go -input tests/gpx/very_long_route.gpx -days 12 -forestRadius 5 -resupplyRadius 5000 -multiStop "59.126854,11.380377:1;59.92199,10.744629:2"
diff --git a/tests/test_very_long_route_with_forced_stops_and_more_days.sh b/tests/test_very_long_route_with_forced_stops_and_more_days.sh
new file mode 100755
index 0000000..780fbeb
--- /dev/null
+++ b/tests/test_very_long_route_with_forced_stops_and_more_days.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Test script for the issue with uneven effort distribution
+echo "Testing issue with uneven effort distribution..."
+cd "$(dirname "$0")/.."
+
+# Run the bicycle planner with the specified parameters and debug logging
+# Filter the output to only show the relevant parts
+go run main.go -input tests/gpx/very_long_route.gpx -days 14 -forestRadius 5 -resupplyRadius 5000 -multiStop "59.126854,11.380377:1;59.92199,10.744629:2"