Skip to content

Instantly share code, notes, and snippets.

@floybix floybix/nyc-taxi-knn.clj

Last active Jan 1, 2016
Embed
What would you like to do?
;; gorilla-repl.fileformat = 1
;; **
;;; # Forecasting NYC taxi passengers
;; **
;; **
;;; _Felix Andrews_
;;;
;;; Adapted from part of Marcus Lewis' [Predicting power consumptions with HTM](http://mrcslws.com/gorilla/?path=hotgym.clj).
;;;
;;; This is just an extra comparison on the case study presented in the paper
;;; * [Continuous online sequence learning with an unsupervised neural network model](http://arxiv.org/abs/1512.05463).
;;;
;;; I show results from a weighted running/sliding average by hour (k-NN) method.
;;;
;; **
;; @@
(ns comportex.notebook.nyc-taxi
(:require [clj-time.core :as t]
[clj-time.format :as f]
[clj-time.predicates :as pr]
[clojure.data.csv :as csv]
[clojure.java.io :as io]
[clojure.set :as set]
[gorilla-plot.core :as plot]
[gorilla-repl.table :refer [table-view]]
[gorilla-renderable.core :as renderable])
(:use [clojure.pprint]
[clojure.stacktrace]))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-nil'>nil</span>"}
;; <=
;; **
;;; ## <a name="the_data" /> The data
;; **
;; **
;;; Load in the NYC taxi (perturbed) dataset.
;; **
;; @@
(def the-data
(with-open [in-file (io/reader "data/nyc_taxi_perturb.csv")]
(doall (->> (csv/read-csv in-file)
(drop 3)
(map (fn [[timestamp-str val-str]]
[timestamp-str
(int (Double/parseDouble val-str))]))))))
(def perturbed-at (* 24 2 274))
(pprint (take 10 the-data))
;; @@
;; ->
;;; ([&quot;2014-07-01 00:00:00&quot; 10844]
;;; [&quot;2014-07-01 00:30:00&quot; 8127]
;;; [&quot;2014-07-01 01:00:00&quot; 6210]
;;; [&quot;2014-07-01 01:30:00&quot; 4656]
;;; [&quot;2014-07-01 02:00:00&quot; 3820]
;;; [&quot;2014-07-01 02:30:00&quot; 2873]
;;; [&quot;2014-07-01 03:00:00&quot; 2369]
;;; [&quot;2014-07-01 03:30:00&quot; 2064]
;;; [&quot;2014-07-01 04:00:00&quot; 2221]
;;; [&quot;2014-07-01 04:30:00&quot; 2158])
;;;
;; <-
;; =>
;;; {"type":"html","content":"<span class='clj-nil'>nil</span>"}
;; <=
;; **
;;; Each row is a `[timestamp passenger-count]` pair.
;;;
;;; Here's some data around the point of perturbation:
;; **
;; @@
(let [[n-drop n-take] [0 (* 24 2 10)]]
(plot/list-plot (->> (map-indexed (fn [i [timestamp passengers]]
[i passengers])
the-data)
(drop n-drop)
(take n-take))
:joined true
:color "red"))
;; @@
;; =>
;;; {"type":"html","content":"<svg class=\"marks\" width=\"460\" height=\"277.2187957763672\"><g transform=\"translate(50,10)\"><g id=\"g114\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"400\" height=\"247.2187957763672\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g115\"><path d=\"M0,163.3008017893824L0.8350730688935281,186.46264551780962L1.6701461377870561,202.80466039723365L2.5052192066805845,216.05217793642242L3.3402922755741122,223.1788990836308L4.175365344467641,231.25187148363835L5.010438413361169,235.5483636585104L5.845511482254697,238.1484234071929L6.6805845511482245,236.810031995576L7.515657620041753,237.347093517435L8.350730688935283,234.3037448935673L9.18580375782881,218.5414154663086L10.020876826722338,200.11082800187737L10.855949895615865,161.63846850743786L11.691022964509393,137.615621386824L12.526096033402922,120.49785097582586L13.361169102296449,102.97941561994878L14.196242171189976,82.2982846353465L15.031315240083506,89.1777869867785L15.866388308977033,84.33570850398624L16.701461377870565,93.90904325077452L17.53653444676409,104.68437283219961L18.37160751565762,108.69954706705028L19.206680584551147,98.35045678868786L20.041753653444676,94.5569269914298L20.8768267223382,94.74447228477743L21.71189979123173,100.78002081614528L22.54697286012526,89.85976987167885L23.382045929018787,89.11811348434975L24.217118997912316,80.20971205033925L25.052192066805844,90.53322797051791L25.887265135699373,97.65994911772628L26.722338204592898,117.40335363559066L27.557411273486426,127.7609687000143L28.39248434237995,109.09168722586796L29.227557411273487,89.29713399163606L30.062630480167012,59.96334515486092L30.89770354906054,20.47653611913222L31.732776617954066,27.04914617235906L32.567849686847595,43.44230976815058L33.40292275574113,60.73910068643505L34.23799582463465,81.8890949044063L35.07306889352818,56.25506321821541L35.90814196242171,47.40633528663369L36.74321503131524,56.96262046129948L37.57828810020876,70.47440636838715L38.413361169102295,84.36128286216999L39.24843423799582,118.40075360475737L40.08350730688935,141.7671921986547L40.918580375782874,170.9645844584498L41.7536534446764,191.2024265678669L42.58872651356994,205.30242271318107L43.42379958246346,214.65411302237675L44.25887265135699,224.76450929102404L45.09394572025052,230.22889715628787L45.929018789144045,234.13324917234223L46.764091858037574,233.83488166019833L47.5991649269311,234.55948847540495L48.43423799582463,231.29449541394465L49.26931106471816,217.53549071108063L50.10438413361169,197.8773340538288L50.93945720250521,161.30600185104896L51.774530271398746,138.70679400266448L52.60960334029227,113.37965461467874L53.444676409185796,92.4427800482388L54.27974947807933,85.64852555741933L55.11482254697285,89.49320407104491L55.94989561586638,93.82379539016196L56.7849686847599,108.17101033125252L57.62004175365344,103.11581219692889L58.455114822546975,109.68842225015572L59.290187891440496,97.27633374496986L60.125260960334025,92.63032534158643L60.960334029227546,91.56472708392963L61.79540709812108,96.61140043219206L62.63048016701461,93.10771336101664L63.46555323590813,97.64289954560377L64.30062630480167,97.24223460072486L65.13569937369519,102.57875067506987L65.97077244258872,114.02753835533406L66.80584551148226,130.9918626172296L67.64091858037577,137.3513530189251L68.4759916492693,107.1565607899633L69.31106471816283,68.8887961609939L70.14613778705636,54.277312852004485L70.98121085594988,46.78402590416218L71.81628392484342,43.587231131191885L72.65135699373695,26.665530799602635L73.48643006263048,68.12156541548106L74.321503131524,100.0895131451837L75.15657620041752,78.05294117684201L75.99164926931105,63.28801171875L76.82672233820459,64.77984927946943L77.66179540709811,93.2952586543642L78.49686847599165,106.40637961657293L79.33194154488517,125.25468159800562L80.1670146137787,147.93913730700262L81.00208768267223,165.70479145865605L81.83716075156575,183.99898234610723L82.67223382045928,195.23465037484004L83.5073068893528,206.07817824475518L84.34237995824634,218.37944453114477L85.17745302713988,227.86753141732052L86.0125260960334,230.61251252904432L86.84759916492692,228.924604888916L87.68267223382044,229.51281512714255L88.51774530271398,230.1692236538591L89.35281837160751,216.59776424434267L90.18789144050103,200.45181944432753L91.02296450939457,169.5324204001591L91.85803757828809,151.40020044787175L92.69311064718163,131.50334978090484L93.52818371607515,112.71472130190094L94.36325678496867,94.53987741930732L95.1983298538622,99.31375761360957L96.03340292275573,108.96381543494914L96.86847599164926,118.52010060961493L97.70354906054278,115.86036735850365L98.53862212943632,120.25915696611075L99.37369519832984,112.71472130190094L100.20876826722338,105.67324801530506L101.0438413361169,96.62845000431454L101.87891440501042,93.38903130103802L102.71398747390397,91.54767751180714L103.54906054279749,90.67814933355925L104.38413361169101,93.10771336101664L105.21920668058453,100.65214902522644L106.05427974947807,113.93376570866025L106.88935281837159,131.15383355239342L107.72442588726511,138.45105042082687L108.55949895615866,110.7540205078125L109.39457202505218,88.70039896734829L110.2296450939457,73.92694472319502L111.06471816283923,62.563404903543386L111.89979123173276,0.12787179091878897L112.7348643006263,72.4521567345981L113.5699373695198,62.36733482413456L114.40501043841336,66.59562871051656L115.24008350730688,62.5463553314209L116.0751565762004,88.88794426069589L116.91022964509395,109.66284789197198L117.74530271398747,114.18098450443662L118.58037578288099,117.93189037138842L119.41544885177451,119.17650913633148L120.25052192066805,122.83364235660947L121.08559498956157,133.0292864858693L121.92066805845509,148.8853885598018L122.75574112734864,159.06398311693914L123.59081419624216,170.6662169463059L124.42588726513569,184.10127977884227L125.26096033402922,194.36512219659213L126.09603340292274,199.66753912669213L126.93110647181626,207.51886708910712L127.76617954070979,217.60368899957064L128.60125260960334,226.2563468517435L129.43632567849684,227.816382700953L130.27139874739038,225.09697594741294L131.10647181628391,219.5984889379041L131.94154488517745,214.5859147338867L132.77661795407096,213.75048569988382L133.61169102296452,211.7130618312441L134.44676409185803,206.5044175478179L135.28183716075154,193.18870172013908L136.11691022964507,188.9177839034508L136.9519832985386,182.23435163142764L137.78705636743214,172.78888867555816L138.62212943632565,161.76634029835668L139.45720250521921,142.952137461169L140.29227557411272,139.69566918576996L141.12734864300626,138.63859571417447L141.96242171189976,122.9785637196508L142.7974947807933,134.46997533022125L143.63256784968684,98.20553542564653L144.46764091858034,100.03836442881618L145.3027139874739,114.44525287233552L146.13778705636742,115.79216907001364L146.97286012526095,130.40365237900306L147.8079331941545,140.92323837859055L148.643006263048,152.55104656614105L149.47807933194153,156.20817978641904L150.31315240083504,123.7202201069799L151.1482254697286,127.21538239209406L151.9832985386221,127.88031570487186L152.81837160751564,132.24500616823394L153.65344467640918,132.85879076464423L154.4885177453027,138.1356333365605L155.32359081419622,136.08968468185952L156.15866388308976,136.2175564727783L156.9937369519833,122.81659278448697L157.8288100208768,114.32590586747793L158.66388308977034,102.43382931202854L159.49895615866387,101.99906522290459L160.3340292275574,105.91194202502021L161.16910229645092,117.73582029197956L162.00417536534445,132.63714632705162L162.839248434238,148.8853885598018L163.6743215031315,161.91978644745924L164.50939457202503,177.73326459108551L165.34446764091857,187.46004548697636L166.1795407098121,195.25169994696256L167.0146137787056,201.1252775431666L167.84968684759914,218.05550266081713L168.68475991649268,229.0951006101411L169.5198329853862,234.31226967962857L170.35490605427975,234.00537738142341L171.18997912317326,228.9075553167935L172.0250521920668,224.55991442555396L172.8601252609603,218.70338640147241L173.69519832985384,215.83053349882982L174.53027139874737,202.48071852690597L175.36534446764088,192.1998265370336L176.20041753653445,178.93525942572234L177.03549060542795,168.1087811279297L177.8705636743215,157.8108395659348L178.70563674321502,156.89868745738062L179.54070981210856,144.08593400731579L180.37578288100207,148.13520738641148L181.21085594989557,144.6570946734198L182.04592901878914,142.67934430720888L182.88100208768265,141.94621270594104L183.71607515657618,137.9139888989679L184.55114822546972,138.8176162214608L185.38622129436325,137.0870846510262L186.22129436325676,134.6660454096301L187.0563674321503,143.3954263363542L187.89144050104383,138.88581450995082L188.72651356993734,137.27462994437383L189.56158663883087,130.08823529473665L190.3966597077244,131.49482499484358L191.23173277661795,118.62239804235L192.06680584551145,100.74592167190025L192.901878914405,112.00716405881684L193.73695198329852,135.2031069314891L194.57202505219203,132.33025402884647L195.40709812108557,125.37402860286318L196.2421711899791,123.97596368881752L197.07724425887264,118.93781512661639L197.91231732776615,106.75589584508435L198.74739039665968,116.01381350760624L199.58246346555322,110.77107007993501L200.41753653444675,124.23170727065514L201.2526096033403,131.15383355239342L202.0876826722338,143.8642895697232L202.92275574112733,151.55364659697432L203.75782881002084,160.82861383161872L204.59290187891438,177.784413307453L205.42797494780794,182.22582684536638L206.26304801670145,188.5256437446331L207.09812108559498,194.6464401366135L207.9331941544885,214.78198481329557L208.76826722338203,229.29117068954994L209.60334029227553,232.97387826801167L210.43841336116907,234.34636882387358L211.27348643006263,230.8767808969432L212.10855949895614,228.5580390882821L212.94363256784968,220.7322854840509L213.77870563674318,220.60441369313207L214.61377870563672,207.54444144729086L215.44885177453023,201.52594248804553L216.28392484342376,184.08423020671975L217.11899791231733,175.84928687154837L217.95407098121083,161.39977449772277L218.78914405010437,156.89868745738062L219.62421711899788,145.6971185728928L220.4592901878914,138.82614100752204L221.29436325678492,139.3973016736261L222.12943632567845,133.87324030593345L222.96450939457202,129.59379770318395L223.79958246346553,123.83956711183745L224.63465553235906,119.07421170359643L225.4697286012526,130.76169339357574L226.3048016701461,129.26985583285625L227.1398747390396,138.95401279844086L227.9749478079332,131.58007285545614L228.8100208768267,124.53007478279903L229.64509394572025,111.96454012851058L230.48016701461376,111.73437090485669L231.3152400835073,111.8707674818368L232.1503131524008,110.60909914477116L232.98538622129433,120.33588004066203L233.8204592901879,132.24500616823394L234.6555323590814,135.04113599632527L235.49060542797494,118.19615873928728L236.32567849686845,117.94041515744965L237.16075156576198,136.18345732853328L237.9958246346555,136.6523205619023L238.83089770354903,143.23345540119038L239.6659707724426,158.94463611208158L240.5010438413361,181.7910627562424L241.33611691022963,194.5356179178172L242.17118997912314,211.60223961244782L243.00626304801668,224.55991442555396L243.84133611691018,228.6262373767721L244.67640918580372,235.26704571848902L245.51148225469728,239.17139773454338L246.3465553235908,239.7425584006474L247.18162839248433,236.50313969737087L248.01670146137783,236.30706961796201L248.85177453027137,233.79225772989207L249.68684759916488,220.16112481794687L250.52192066805844,201.6452894929031L251.35699373695198,165.43199830469592L252.19206680584549,148.05848431186018L253.02713987473902,128.78394302736478L253.86221294363253,115.34035540876715L254.69728601252606,93.78969624591696L255.53235908141957,104.07058823578933L256.36743215031316,115.97118957729995L257.20250521920667,135.30540436422413L258.0375782881002,135.02408642420275L258.8726513569937,135.0837599266315L259.70772442588725,127.24095675027782L260.54279749478076,126.26913113929486L261.37787056367426,123.75431925122491L262.21294363256783,124.99041323010674L263.04801670146134,117.28400663073307L263.8830897703549,114.41115372809048L264.7181628392484,111.80256919334673L265.5532359081419,112.32258114308323L266.3883089770354,117.31810577497811L267.22338204592904,121.88739110381029L268.05845511482255,126.74651915872508L268.89352818371606,106.5598257656755L269.72860125260956,92.34900740156502L270.5636743215031,73.33020969890725L271.39874739039664,64.94182021463325L272.23382045929014,65.89659625349373L273.0688935281837,80.34610862731932L273.9039665970772,95.27300902057516L274.7390396659708,103.0731882666226L275.5741127348643,87.74562292848785L276.4091858037578,93.21001079375168L277.2442588726513,104.38600532005572L278.07933194154487,114.37705458384545L278.91440501043843,128.25540629156706L279.74947807933194,154.7333917978221L280.58455114822544,176.5312697564487L281.41962421711895,186.60756688085095L282.2546972860125,193.06935471528152L283.089770354906,212.70193701434957L283.92484342379953,226.32454514023354L284.7599164926931,234.72998419663003L285.5949895615866,237.6284114574564L286.43006263048017,239.7425584006474L287.2651356993737,238.10579947688663L288.1002087682672,238.01202683021282L288.9352818371607,235.49721494214288L289.77035490605425,219.0614274160451L290.6054279749478,200.01705535520355L291.4405010438413,159.1492309775517L292.27557411273483,140.10485891671016L293.11064718162834,115.46822719968597L293.9457202505219,99.65474905605976L294.7807933194154,82.79272222689923L295.615866388309,88.96466733524716L296.4509394572025,90.53322797051791L297.286012526096,115.02493832450077L298.12108559498955,111.34223074603904L298.95615866388306,118.38370403263485L299.79123173277657,106.24440868140911L300.6263048016701,101.274458407698L301.46137787056364,101.97349086472082L302.2964509394572,103.40565492301153L303.1315240083507,98.65734908689302L303.9665970772442,94.01986546957082L304.8016701461377,93.16738686344542L305.6367432150313,96.79042093947837L306.4718162839248,100.34525672702131L307.30688935281836,119.54307493696541L308.14196242171187,127.650146481218L308.9770354906054,107.42935394392342L309.81210855949894,77.87392066955564L310.64718162839245,52.214314625180975L311.48225469728595,40.15174234850653L312.3173277661795,38.27628941503065L313.1524008350731,46.58795582475332L313.9874739039666,68.86322180281016L314.8225469728601,84.28455978761872L315.6576200417536,67.52483039119323L316.4926931106471,58.72725117597909L317.3277661795407,40.84225001946811L318.16283924843424,68.38583378337992L318.99791231732775,99.5695011954472L319.83298538622125,128.88624046009983L320.6680584551148,152.99433544132626L321.5031315240083,175.53386978728196L322.33820459290183,189.76173772351495L323.17327766179534,208.6185644910089L324.0083507306889,215.9584052897486L324.84342379958247,228.10622542703564L325.678496868476,232.9142047655829L326.5135699373695,235.53983887244914L327.348643006263,234.64473633601747L328.18371607515655,236.10247475249193L329.01878914405006,234.50833975903743L329.8538622129436,220.64703762343834L330.68893528183713,200.88658353345147L331.52400835073064,161.39977449772277L332.3590814196242,141.64784519379714L333.1941544885177,109.16841030041925L334.0292275574112,97.94979184380892L334.8643006263048,81.29235988011854L335.6993736951983,87.14888790420005L336.53444676409185,94.38643127020475L337.36951983298536,108.7506957834178L338.20459290187887,106.64507362628805L339.0396659707724,114.5901742353768L339.87473903966594,103.74664636546169L340.7098121085595,100.56690116461391L341.544885177453,101.22330969133046L342.3799582463465,101.25740883557549L343.21503131524,98.13733713715652L344.0501043841336,98.14586192321778L344.8851774530271,97.6769986898488L345.7202505219206,100.25148408034752L346.55532359081417,107.47197787422971L347.3903966597077,126.37995335809116L348.22546972860124,124.80286793675916L349.06054279749475,109.94416583199336L349.89561586638825,88.99024169343093L350.73068893528176,65.96479454198376L351.5657620041753,44.968246473115045L352.4008350730689,34.141768175322426L353.2359081419624,31.379737491476106L354.0709812108559,42.666554236576474L354.9060542797494,80.69562485583074L355.741127348643,55.769150412723945L356.5762004175365,45.34333705981024L357.41127348643005,51.53233174028068L358.24634655532356,54.08976755865689L359.0814196242171,69.08486624040273L359.9164926931106,90.89126898509059L360.75156576200413,126.29470549747862L361.58663883089764,158.05805836171118L362.42171189979115,180.32479955370673L363.25678496868477,199.65048955456965L364.0918580375783,211.01402937422128L364.9269311064718,220.5617897628258L365.7620041753653,226.41831778690732L366.59707724425886,230.53578945449303L367.43215031315236,232.05320137339623L368.26722338204587,234.158823530526L369.10229645093943,232.57321332313273L369.93736951983294,217.816808651102L370.7724425887265,199.4714690472833L371.60751565762,160.24892837945345L372.4425887265135,136.9592128601074L373.277661795407,109.32185644952182L374.1127348643006,93.28673386830297L374.94780793319416,75.7682985124259L375.78288100208766,86.25378536776839L376.61795407098117,93.56805180832433L377.4530271398747,110.91599144297632L378.28810020876824,111.00123930358885L379.12317327766175,116.09906136821877L379.9582463465553,103.87451815638047L380.7933194154488,102.05021393927211L381.6283924843423,106.60244969598176L382.4634655532359,110.18285984170848L383.2985386221294,100.30263279671505L384.1336116910229,101.52167720347438L384.9686847599164,98.07766363472774L385.80375782881,106.36375568626667L386.63883089770354,113.26030760982118L387.47390396659705,130.1308592250429L388.30897703549056,139.72124354395373L389.14405010438406,116.8748168997929L389.9791231732776,92.47687919248384L390.81419624217114,69.34913460830163L391.6492693110647,48.190615604269084L392.4843423799582,32.51353403762292L393.3194154488517,35.360812582081735L394.1544885177453,51.19134029783049L394.9895615866388,71.06261660661366L395.8246346555323,42.39376108261635L396.65970772442586,38.94974751386968L397.49478079331936,37.142492868883835L398.32985386221293,45.5735062834641L399.16492693110644,58.360685375345156L399.99999999999994,69.36618418042411\" style=\"fill: none; stroke: red; stroke-width: 2px; stroke-opacity: 1;\"></path></g><g id=\"g116\"><g transform=\"translate(0,247.2187957763672)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g117\" style=\"pointer-events: none;\"></g><g id=\"g118\" style=\"pointer-events: none;\"><line x1=\"0.5\" y1=\"0\" x2=\"0.5\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"42.2536534446764\" y1=\"0\" x2=\"42.2536534446764\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"84.0073068893528\" y1=\"0\" x2=\"84.0073068893528\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"125.76096033402922\" y1=\"0\" x2=\"125.76096033402922\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"167.5146137787056\" y1=\"0\" x2=\"167.5146137787056\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"209.26826722338203\" y1=\"0\" x2=\"209.26826722338203\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"251.02192066805844\" y1=\"0\" x2=\"251.02192066805844\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"292.77557411273483\" y1=\"0\" x2=\"292.77557411273483\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"334.5292275574112\" y1=\"0\" x2=\"334.5292275574112\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"376.28288100208766\" y1=\"0\" x2=\"376.28288100208766\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g119\" style=\"pointer-events: none;\"></g><g id=\"g120\"><text x=\"0.5\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">0</text><text x=\"42.2536534446764\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">50</text><text x=\"84.0073068893528\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">100</text><text x=\"125.76096033402922\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">150</text><text x=\"167.5146137787056\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">200</text><text x=\"209.26826722338203\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">250</text><text x=\"251.02192066805844\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">300</text><text x=\"292.77557411273483\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">350</text><text x=\"334.5292275574112\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">400</text><text x=\"376.28288100208766\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">450</text></g><g id=\"g121\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M0,6V0H400V6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g122\"></g></g></g><g id=\"g123\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g124\" style=\"pointer-events: none;\"></g><g id=\"g125\" style=\"pointer-events: none;\"><line x1=\"-6\" y1=\"213.61965153135102\" x2=\"0\" y2=\"213.61965153135102\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"170.9957212250808\" x2=\"0\" y2=\"170.9957212250808\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"128.3717909188106\" x2=\"0\" y2=\"128.3717909188106\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"85.74786061254042\" x2=\"0\" y2=\"85.74786061254042\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"43.12393030627021\" x2=\"0\" y2=\"43.12393030627021\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"0.5\" x2=\"0\" y2=\"0.5\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g126\" style=\"pointer-events: none;\"></g><g id=\"g127\"><text x=\"-9\" y=\"213.61965153135102\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">5,000</text><text x=\"-9\" y=\"170.9957212250808\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">10,000</text><text x=\"-9\" y=\"128.3717909188106\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">15,000</text><text x=\"-9\" y=\"85.74786061254042\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">20,000</text><text x=\"-9\" y=\"43.12393030627021\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">25,000</text><text x=\"-9\" y=\"0.5\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">30,000</text></g><g id=\"g128\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M-6,0H0V247.2187957763672H-6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g129\"></g></g></g></g></g></g></svg>"}
;; <=
;; **
;;; It covers every half hour between the dates:
;; **
;; @@
[(first the-data)
(last the-data)]
;; @@
;; =>
;;; {"type":"list-like","open":"<span class='clj-vector'>[</span>","close":"<span class='clj-vector'>]</span>","separator":" ","items":[{"type":"list-like","open":"<span class='clj-vector'>[</span>","close":"<span class='clj-vector'>]</span>","separator":" ","items":[{"type":"html","content":"<span class='clj-string'>&quot;2014-07-01 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>10844</span>"}]},{"type":"list-like","open":"<span class='clj-vector'>[</span>","close":"<span class='clj-vector'>]</span>","separator":" ","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-06-30 23:30:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>17090</span>"}]}]}
;; <=
;; **
;;; Let's shape the data into the sequence of inputs that will go into our model. Just fetch everything we might use.
;; **
;; @@
(def inputs
(->> the-data
(map (fn [[timestamp-string passengers]]
(let [timestamp (f/parse timestamp-string)]
{:timestamp timestamp-string
:day-of-week (t/day-of-week timestamp)
:hour-of-day (t/hour timestamp)
:is-weekend? (pr/weekend? timestamp)
:passengers passengers})))))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;comportex.notebook.nyc-taxi/inputs</span>"}
;; <=
;; @@
(table-view
(->> inputs
(drop (- perturbed-at (* 24 2 1)))
(take-nth 24)
(take 10)
(map (juxt :timestamp :day-of-week :hour-of-day :is-weekend? :passengers)))
:columns [:timestamp :day-of-week :hour-of-day :is-weekend? :passengers]
)
;; @@
;; =>
;;; {"type":"list-like","open":"<center><table>","close":"</table></center>","separator":"\n","items":[{"type":"list-like","open":"<tr><th>","close":"</th></tr>","separator":"</th><th>","items":[{"type":"html","content":"<span class='clj-keyword'>:timestamp</span>"},{"type":"html","content":"<span class='clj-keyword'>:day-of-week</span>"},{"type":"html","content":"<span class='clj-keyword'>:hour-of-day</span>"},{"type":"html","content":"<span class='clj-keyword'>:is-weekend?</span>"},{"type":"html","content":"<span class='clj-keyword'>:passengers</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-03-31 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>2</span>"},{"type":"html","content":"<span class='clj-unkown'>0</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>10141</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-03-31 12:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>2</span>"},{"type":"html","content":"<span class='clj-unkown'>12</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>17433</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-01 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>3</span>"},{"type":"html","content":"<span class='clj-unkown'>0</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>11660</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-01 12:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>3</span>"},{"type":"html","content":"<span class='clj-unkown'>12</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>18087</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-02 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>4</span>"},{"type":"html","content":"<span class='clj-unkown'>0</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>13647</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-02 12:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>4</span>"},{"type":"html","content":"<span class='clj-unkown'>12</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>18037</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-03 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>5</span>"},{"type":"html","content":"<span class='clj-unkown'>0</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>18876</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-03 12:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>5</span>"},{"type":"html","content":"<span class='clj-unkown'>12</span>"},{"type":"html","content":"<span class='clj-unkown'>false</span>"},{"type":"html","content":"<span class='clj-unkown'>20660</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-04 00:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>6</span>"},{"type":"html","content":"<span class='clj-unkown'>0</span>"},{"type":"html","content":"<span class='clj-unkown'>true</span>"},{"type":"html","content":"<span class='clj-unkown'>20851</span>"}]},{"type":"list-like","open":"<tr><td>","close":"</td></tr>","separator":"</td><td>","items":[{"type":"html","content":"<span class='clj-string'>&quot;2015-04-04 12:00:00&quot;</span>"},{"type":"html","content":"<span class='clj-unkown'>6</span>"},{"type":"html","content":"<span class='clj-unkown'>12</span>"},{"type":"html","content":"<span class='clj-unkown'>true</span>"},{"type":"html","content":"<span class='clj-unkown'>19010</span>"}]}]}
;; <=
;; **
;;; ## Shift (baseline) forecast
;; **
;; @@
(def lagged-inputs
(concat (repeat 5 (assoc (first inputs) :passengers 0))
(drop-last 5 inputs)))
(println "lagged values corresponding")
(pprint (map (fn [i in lagged]
{:i i, :in (:passengers in), :lagged (:passengers lagged)})
(range 10) inputs lagged-inputs))
;; @@
;; ->
;;; lagged values corresponding
;;; ({:i 0, :in 10844, :lagged 0}
;;; {:i 1, :in 8127, :lagged 0}
;;; {:i 2, :in 6210, :lagged 0}
;;; {:i 3, :in 4656, :lagged 0}
;;; {:i 4, :in 3820, :lagged 0}
;;; {:i 5, :in 2873, :lagged 10844}
;;; {:i 6, :in 2369, :lagged 8127}
;;; {:i 7, :in 2064, :lagged 6210}
;;; {:i 8, :in 2221, :lagged 4656}
;;; {:i 9, :in 2158, :lagged 3820})
;;;
;; <-
;; =>
;;; {"type":"html","content":"<span class='clj-nil'>nil</span>"}
;; <=
;; @@
(def shift-forecast
(map :passengers inputs))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;comportex.notebook.nyc-taxi/shift-forecast</span>"}
;; <=
;; **
;;; ### Running average by hour
;;;
;;; Simply calculate the average 5-step-ahead value for this `hour-of-day` + `is-weekend?` combination.
;;;
;;; In other words, "It's hour 12 on a Tuesday. What usually happens after this?"
;; **
;; @@
(def avg-by-hour-forecast
(first
(reduce
(fn [[output average-builder] [i input prev-input]]
(when (zero? (mod i 1000)) (print "."))
(let [{:keys [is-weekend? hour-of-day passengers]} input
average-builder (update average-builder [(:is-weekend? prev-input )
(:hour-of-day prev-input)]
#(if-let [[total n] %]
[(+ total passengers) (inc n)]
[passengers 1]))
prediction (if-let [[total n] (get average-builder
[is-weekend? hour-of-day])]
(quot total n)
passengers)]
[(conj output prediction) average-builder]))
[[] {}]
(map vector (range) inputs lagged-inputs))))
(println)
;; @@
;; ->
;;; ..................
;;;
;; <-
;; =>
;;; {"type":"html","content":"<span class='clj-nil'>nil</span>"}
;; <=
;; **
;;; ### Weighted running average by hour (k-NN)
;;;
;;; A k-Nearest-Neighbors estimator. It simply calculates the weighted average next value for this `hour-of-day` + `day-of-week` combination, weighted by the nearness of the data points' current passenger count.
;;;
;;; In other words, "It's hour 12 on a Tuesday, and the current passenger count is 3200. What usually happens after this?"
;; **
;; @@
(defn weighted-mean
[weighted-xs]
(let [[total weight-sum] (reduce (fn [[total weight-sum] [x weight]]
[(+ total (* weight x))
(+ weight-sum weight)])
[0 0]
weighted-xs)]
(when-not (zero? weight-sum)
(/ total weight-sum))))
(def knn-by-hour-forecast
(let [k 10]
(first
(reduce
(fn [[output average-builder] [i input prev-input]]
(when (zero? (mod i 1000)) (print ".") (flush))
(let [{:keys [is-weekend? day-of-week hour-of-day passengers]} input
average-builder (update average-builder [(:day-of-week prev-input)
(:hour-of-day prev-input)]
#(assoc (or % (sorted-map))
(:passengers prev-input) passengers))
ordered-obs (get average-builder [day-of-week
hour-of-day])
closest-index (if (seq ordered-obs)
(dec
(Math/abs
(java.util.Collections/binarySearch (keys ordered-obs) passengers
compare)))
0)
predictions (->> ordered-obs
(drop (- closest-index k))
(take (* k 2))
(sort-by (fn [[old-passengers _]]
(Math/abs (int (- old-passengers passengers)))))
(take k))
aggregated (if (empty? predictions)
passengers
(->> predictions
(map (fn [[old-passengers v]]
[v
(/ 1 (-> (- old-passengers passengers)
int Math/abs
(+ 0.01)))]))
weighted-mean))]
[(conj output aggregated) average-builder]))
[[] {}]
(map vector (range) inputs lagged-inputs)))))
;; @@
;; ->
;;; ..................
;; <-
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;comportex.notebook.nyc-taxi/knn-by-hour-forecast</span>"}
;; <=
;; **
;;; ### Weighted sliding average by hour (k-NN)
;; **
;; @@
(defn knn-by-hour-sliding
[k window-steps]
(first
(reduce
(fn [[output average-builder] [i input prev-input]]
(when (zero? (mod i 1000)) (print ".") (flush))
(let [{:keys [is-weekend? day-of-week hour-of-day passengers]} input
average-builder (update average-builder [(:day-of-week prev-input)
(:hour-of-day prev-input)]
#(assoc (or % (sorted-map))
i [(:passengers prev-input) passengers]))
indexed-obs (get average-builder [day-of-week
hour-of-day] (sorted-map))
predictions (->> (subseq indexed-obs > (- i window-steps))
(vals)
(sort-by (fn [[old-passengers _]]
(Math/abs (int (- old-passengers passengers)))))
(take k))
aggregated (if (empty? predictions)
passengers
(->> predictions
(map (fn [[old-passengers v]]
[v
(/ 1 (-> (- old-passengers passengers)
int Math/abs
(+ 0.01)))]))
weighted-mean))]
[(conj output aggregated) average-builder]))
[[] {}]
(map vector (range) inputs lagged-inputs))))
(def knn-by-hour-sliding-forecast-1000 (knn-by-hour-sliding 10 1000))
(def knn-by-hour-sliding-forecast-3000 (knn-by-hour-sliding 10 3000))
;; @@
;; ->
;;; ....................................
;; <-
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;comportex.notebook.nyc-taxi/knn-by-hour-sliding-forecast-3000</span>"}
;; <=
;; **
;;; ## Forecast results
;; **
;; @@
(defn mean [xs] (/ (reduce + xs) (count xs)))
(defn abs [x] (if (neg? x) (- x) x))
(defn mae
"mean absolute error"
[predicted observed]
(mean (map (comp abs -) observed predicted)))
(defn mape
"mean absolute error divided by mean actual value."
[predicted observed]
(double
(/ (mae predicted observed)
(mean observed))))
(defn mape-excluding-warmup
[forecast warmup-steps]
(mape (drop warmup-steps forecast)
(drop (+ warmup-steps 5) (map :passengers inputs))))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-var'>#&#x27;comportex.notebook.nyc-taxi/mape-excluding-warmup</span>"}
;; <=
;; **
;;; ### Shift
;; **
;; @@
(mape-excluding-warmup shift-forecast (* 24 2 7))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.3265029292302994</span>"}
;; <=
;; **
;;; ### Running average by hour
;; **
;; @@
(mape-excluding-warmup avg-by-hour-forecast (* 24 2 7))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.1521830792015254</span>"}
;; <=
;; @@
(mape-excluding-warmup avg-by-hour-forecast perturbed-at)
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.1481880237819002</span>"}
;; <=
;; **
;;; ### Weighted running KNN by hour
;; **
;; @@
(mape-excluding-warmup knn-by-hour-forecast (* 24 2 7))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.09039234737451765</span>"}
;; <=
;; @@
(mape-excluding-warmup knn-by-hour-forecast perturbed-at)
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.10309088173334977</span>"}
;; <=
;; **
;;; ### Weighted sliding KNN by hour (1000 steps)
;; **
;; @@
(mape-excluding-warmup knn-by-hour-sliding-forecast-1000 (* 24 2 7))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.0914515448043314</span>"}
;; <=
;; @@
(mape-excluding-warmup knn-by-hour-sliding-forecast-1000 perturbed-at)
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.07595319209615771</span>"}
;; <=
;; **
;;; ### Weighted sliding KNN by hour (3000 steps)
;; **
;; @@
(mape-excluding-warmup knn-by-hour-sliding-forecast-3000 (* 24 2 7))
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.08553116118479587</span>"}
;; <=
;; @@
(mape-excluding-warmup knn-by-hour-sliding-forecast-3000 perturbed-at)
;; @@
;; =>
;;; {"type":"html","content":"<span class='clj-double'>0.08106487414326526</span>"}
;; <=
;; @@
(let [[n-drop n-take] [(- perturbed-at (* 24 2 7)) (* 24 2 14)]]
(plot/compose
(plot/list-plot (->> (map-indexed (fn [i v]
[i (:passengers v)])
inputs)
(drop n-drop)
(take n-take))
:joined true
:color "black"
:plot-size 700)
(plot/list-plot (->> (map-indexed (fn [i v]
[(+ i 5) v])
knn-by-hour-sliding-forecast-1000)
(drop n-drop)
(take n-take))
:joined true
:color "blue"
:plot-size 700)
))
;; @@
;; =>
;;; {"type":"html","content":"<svg class=\"marks\" width=\"760\" height=\"462.63287353515625\"><g transform=\"translate(50,10)\"><g id=\"g372\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"700\" height=\"432.63287353515625\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g373\"><path d=\"M0,281.89761304552803L1.0432190760059612,323.13200140591323L2.0864381520119224,350.8205053121633L3.1296572280178836,378.867050217201L4.172876304023845,388.6385858091157L5.216095380029806,403.58679750850285L6.259314456035767,408.68888174122776L7.302533532041729,414.85017059536636L8.34575260804769,412.2991284790039L9.38897168405365,418.7289480822333L10.432190760059612,412.0604344798121L11.475409836065575,385.43113519497575L12.518628912071534,351.0293625614561L13.561847988077496,284.2547162875471L14.605067064083459,234.14389483221643L15.64828614008942,188.73236148597454L16.69150521609538,175.12680353204132L17.73472429210134,153.31613935588967L18.7779433681073,171.41212816961882L19.821162444113263,191.40275060193292L20.864381520119224,213.51178227707433L21.90760059612519,210.81155641121697L22.95081967213115,222.40313374696927L23.99403874813711,202.0693886908169L25.03725782414307,198.66799920233362L26.08047690014903,206.82835029970363L27.12369597615499,206.94769729929956L28.166915052160952,189.6722191077923L29.210134128166917,186.27082961930898L30.25335320417288,155.76275284760573L31.29657228017884,152.00332236033472L32.3397913561848,194.26707859223464L33.38301043219076,228.89262684999662L34.42622950819672,245.51169654372643L35.46944858420268,213.959333525559L36.51266766020864,173.81398653648642L37.5558867362146,138.69613190539127L38.59910581222057,120.48079609206627L39.642324888226526,96.25335517409752L40.68554396423249,79.78346922986259L41.72876304023845,86.31771745773835L42.77198211624441,112.06683262055492L43.81520119225038,104.54797164601291L44.85842026825634,113.69293549004914L45.9016393442623,119.01879534701646L46.94485842026826,139.48680577771415L47.98807749627422,180.22888776476628L49.031296572280176,223.70103236757475L50.07451564828614,268.20254484189786L51.1177347242921,306.8262175861227L52.16095380029806,343.4060729622677L53.20417287630402,370.1248824968009L54.24739195230998,383.8945425751785L55.29061102831594,394.3672417897192L56.333830104321905,406.40637037395607L57.377049180327866,413.9103129735486L58.420268256333834,412.47814897839777L59.463487332339795,413.8058843489022L60.50670640834576,411.4636994818326L61.54992548435172,385.5206454446727L62.59314456035768,351.760362933981L63.63636363636364,284.1353692879512L64.6795827123696,238.7387543166588L65.72280178837556,185.73376812112744L66.76602086438152,167.0112075595198L67.80923994038749,149.75064774296203L68.85245901639344,167.08579943426724L69.89567809239941,172.2475571667901L70.93889716840536,201.2339596936456L71.98211624441133,203.50155268596782L73.02533532041728,205.30667605485587L74.06855439642324,185.73376812112744L75.1117734724292,176.1412530286065L76.15499254843517,187.85217736395472L77.19821162444114,208.2903510447535L78.2414307004471,192.49179197324554L79.28464977645305,175.26106890658673L80.32786885245902,196.63910020920326L81.37108792846497,201.8605314415241L82.41430700447094,227.41570772999728L83.4575260804769,255.41749751018654L84.50074515648286,270.00766821078594L85.54396423248882,230.25019897040005L86.58718330849479,181.22841888638197L87.63040238450075,141.66488852033945L88.67362146050671,130.69988293246564L89.71684053651268,126.14977857287175L90.76005961251863,120.43604096721776L91.8032786885246,121.390816963985L92.84649776453055,132.41549605165682L93.88971684053652,122.76330745933797L94.93293591654248,94.6123339296538L95.97615499254844,93.71723143268451L97.0193740685544,105.24913526863884L98.06259314456035,127.68637119266901L99.10581222056632,159.93989783346245L100.14903129657228,184.82374724920865L101.19225037257824,228.34064697686557L102.2354694485842,276.7507736879546L103.27868852459017,313.15160856470567L104.32190760059612,336.37951836105873L105.36512667660209,363.4862056442787L106.40834575260804,374.74957873114226L107.45156482861401,385.162604445885L108.49478390461996,388.16119781073206L109.53800298062592,404.2581243812298L110.58122205663189,401.6921638899178L111.62444113263784,377.3155392224542L112.66766020864381,341.64570471822805L113.71087928464976,279.3167341792665L114.75409836065573,232.5774654625202L115.79731743666169,189.07548410981275L116.84053651266767,174.21678266012253L117.88375558867364,158.74642783750335L118.92697466467959,174.26153778497098L119.97019374068554,179.79625489123111L121.01341281669151,199.0558769510203L122.05663189269747,202.57661343909953L123.09985096870344,210.85631153606542L124.14307004470939,186.12164586981407L125.18628912071536,185.73376812112744L126.22950819672131,187.71791198940932L127.27272727272728,205.93324780273437L128.31594634873323,191.49226085162985L129.3591654247392,178.14031527183798L130.40238450074517,172.1729652920427L131.44560357675113,186.16640099466258L132.48882265275708,209.87169878939923L133.53204172876303,233.81569058332772L134.575260804769,247.60026903665477L135.61847988077497,212.4078225308122L136.66169895678092,161.19304132921945L137.70491803278688,123.25561383267103L138.74813710879283,88.3764532007678L139.79135618479881,72.8464248783506L140.83457526080477,71.04130150946258L141.87779433681072,78.7541013583479L142.92101341281668,99.95311216157057L143.96423248882266,89.45057619713089L145.0074515648286,88.91351469894931L146.05067064083457,75.29303837006665L147.09388971684052,74.50236449774377L148.13710879284648,63.49260378502157L149.18032786885246,76.81471261491441L150.2235469448584,83.85618559107286L151.2667660208644,99.04309128965184L152.30998509687035,135.38425266660494L153.3532041728763,161.2228780791184L154.3964232488823,176.5142124023438L155.43964232488824,214.5859052734375L156.4828614008942,243.2590219263537L157.52608047690015,269.7689742115941L158.5692995529061,291.26635251380657L159.61251862891208,356.37014079337285L160.65573770491804,387.69872818729795L161.698956780924,398.49963165072734L162.74217585692995,394.6954460386079L163.78539493293593,374.6749868563948L164.82861400894188,370.08012737195247L165.87183308494784,341.3473372192383L166.9150521609538,326.01124777116445L167.95827123695977,283.210430041083L169.00149031296573,266.2034825986665L170.04470938897168,211.9304345324286L171.08792846497764,210.73696453646954L172.1311475409836,174.5897420338598L173.17436661698957,157.62754971629175L174.21758569299553,127.70128956761852L175.2608047690015,121.86820496236862L176.30402384500744,107.03934026257741L177.34724292101342,114.99083411065459L178.39046199701937,120.83883709085399L179.43368107302535,139.87468352640082L180.47690014903128,141.63505177044044L181.52011922503726,143.8728080128637L182.56333830104322,140.36698989973394L183.6065573770492,162.2074908257846L184.64977645305513,175.72353853002085L185.6929955290611,151.1678933631634L186.73621460506706,100.62443903429755L187.77943368107304,77.18767198865169L188.82265275707897,51.990536698966196L189.86587183308495,32.43254714018718L190.9090909090909,36.863304500185166L191.9523099850969,62.56766453815328L192.99552906110281,63.47768541007207L194.0387481371088,77.69489673693425L195.08196721311475,67.35646289693898L196.1251862891207,41.93555198301118L197.16840536512666,49.7975355813914L198.21162444113264,8.085759222622528L199.25484351713857,26.793401409280705L200.29806259314455,56.31686543431772L201.34128166915053,77.82916211147966L202.3845007451565,106.39785013974944L203.42771982116247,127.4476771934772L204.4709388971684,154.59911960154568L205.51415797317438,179.08017289365569L206.55737704918033,209.94629066414666L207.6005961251863,237.63479457039668L208.64381520119224,265.68133947543436L209.68703427719822,341.6158679683291L210.73025335320418,379.15049934124124L211.77347242921016,398.63389702527274L212.81669150521608,399.00685639900996L213.85991058122207,388.6833409339642L214.90312965722802,387.3854423133587L215.94634873323398,365.54494138730803L216.98956780923993,348.3888101953967L218.0327868852459,319.4620811683392L219.07600596125184,297.8006007416824L220.11922503725782,250.39000515220906L221.16244411326377,229.0418105994915L222.20566318926976,182.06384788355334L223.24888226527568,172.08345504234575L224.29210134128166,151.92873048558727L225.33532041728762,145.81219675629717L226.3785394932936,145.2452985082166L227.42175856929953,154.49469097689922L228.4649776453055,151.82430186094086L229.50819672131146,146.22991125488278L230.55141579731745,164.49000219305628L231.59463487332337,177.27504952476764L232.63785394932935,185.94262537042025L233.68107302533534,190.13468873122642L234.7242921013413,201.7710211918272L235.76751117734727,183.8838896273909L236.8107302533532,166.63824818578257L237.85394932935918,157.910998840332L238.89716840536514,167.33941180840856L239.9403874813711,163.87834882012731L240.98360655737704,177.8419477728482L242.02682563338303,188.59809611142913L243.07004470938895,200.71181657041353L244.11326378539493,206.50014605081492L245.1564828614009,218.12156013646617L246.19970193740687,229.71313747221848L247.2429210134128,248.98767790695715L248.28614008941878,275.05007894371295L249.32935916542473,298.94931561279293L250.37257824143072,336.3347632362103L251.41579731743664,364.2768795166016L252.45901639344262,380.2097039626549L253.50223546944858,392.51736329598265L254.54545454545456,403.1392462600182L255.5886736214605,413.8804762236496L256.63189269746647,418.49025408304146L257.6751117734724,421.2501534486968L258.7183308494784,418.01286608465784L259.76154992548436,415.98396709152746L260.80476900149034,409.12151461476293L261.84798807749627,382.53697045477503L262.89120715350225,351.6559343093346L263.9344262295082,277.0491411869444L264.97764530551416,238.48514194251752L266.0208643815201,185.6144211215315L267.06408345752607,177.9165396475956L268.10730253353205,171.9342712928509L269.150521609538,180.85545951264479L270.19374068554396,191.77570997567014L271.23695976154994,211.5574751586914L272.2801788375559,214.24278264959926L273.32339791356185,218.88239725889008L274.36661698956783,206.2614520516231L275.40983606557376,209.21529029162178L276.45305514157974,223.71595074252426L277.49627421758566,221.95558249848463L278.53949329359165,216.6297226415174L279.58271236959763,213.959333525559L280.6259314456036,194.9234870900121L281.66915052160954,186.2260744944605L282.7123695976155,209.72251503990435L283.75558867362145,224.31268574050378L284.79880774962743,229.22083109888536L285.84202682563335,194.461017466578L286.88524590163934,167.80188143184267L287.9284649776453,139.51664252761316L288.97168405365124,134.78751766862536L290.0149031296572,138.18890715710864L291.0581222056632,139.72549977690596L292.10134128166914,129.70035181084995L293.1445603576751,150.64575023993126L294.18777943368104,145.08119638377224L295.230998509687,168.8312493033573L296.27421758569295,183.03354225527008L297.31743666169893,195.57989558778962L298.3606557377049,227.5201363546437L299.4038748137109,269.1274840887662L300.4470938897168,296.2640081218851L301.4903129657228,341.0042145954001L302.5335320417288,367.499248505691L303.5767511177347,386.35607444184404L304.6199701937407,395.99334465921334L305.6631892697466,409.74808636264146L306.7064083457526,415.1037829695077L307.7496274217586,419.4450300798087L308.7928464977646,420.45947957637395L309.8360655737705,419.6837240790005L310.8792846497765,412.3886387287008L311.9225037257824,388.310381560227L312.9657228017884,352.73005730569776L314.0089418777943,273.8566089477539L315.0521609538003,225.55091086131128L316.0953800298062,170.03963767426586L317.1385991058122,159.02987696154366L318.1818181818182,158.76134621245285L319.22503725782417,171.2480260451744L320.2682563338301,185.58458437163256L321.3114754098361,203.81483855990703L322.354694485842,199.68244869889884L323.397913561848,210.7071277865706L324.4411326378539,197.8474885801118L325.4843517138599,187.4792179902175L326.5275707898659,199.68244869889884L327.57078986587186,178.5431113954741L328.6140089418778,163.8037569453798L329.65722801788377,157.3441005922515L330.7004470938897,148.57209612195243L331.7436661698957,139.4718874027647L332.7868852459016,188.1803816128435L333.8301043219076,221.89590899868668L334.87332339791357,241.8865314310008L335.91654247391955,203.57614456071522L336.9597615499255,162.4760215748754L338.00298062593146,118.54140734863284L339.04619970193744,110.2617092516669L340.08941877794337,102.17595002904432L341.13263785394935,102.10135815429686L342.1758569299553,83.90094071592131L343.21907600596126,108.42674913287982L344.2622950819672,114.15540511348331L345.30551415797316,116.55726348035085L346.34873323397915,131.63974055428338L347.39195230998513,154.59911960154568L348.43517138599105,188.25497348759092L349.47839046199704,232.4282817130253L350.521609538003,273.6029965736126L351.56482861400895,317.776304799047L352.60804769001487,347.67272819782124L353.65126676602085,368.78222875134696L354.69448584202684,386.5201765662884L355.7377049180328,400.3047550196154L356.78092399403874,408.46510611698545L357.82414307004467,414.7755787206189L358.8673621460507,411.6725567311254L359.91058122205663,415.0142727198107L360.95380029806256,409.1662697396114L361.99701937406854,379.03115234164534L363.0402384500745,340.3328877226731L364.08345752608045,263.05570548432445L365.12667660208643,260.89254111664866L366.16989567809236,211.12484228515623L367.2131147540984,198.7276727021316L368.2563338301043,198.1160193292026L369.29955290611025,210.76680128636852L370.3427719821163,229.3103413485823L371.3859910581222,245.4221862940295L372.42921013412814,243.96018554897967L373.4724292101341,202.81530743829134L374.5156482861401,187.97152436355063L375.5588673621461,177.72260077325225L376.602086438152,193.2824658455684L377.64530551415794,195.3113648386988L378.688524590164,184.43586950052196L379.7317436661699,174.24661941002154L380.77496274217583,173.038231039113L381.8181818181818,174.6494155336577L382.8614008941878,205.1127371805125L383.9046199701938,229.54903534777412L384.9478390461997,247.5256771619073L385.99105812220563,212.13929178172145L387.03427719821167,161.04385757972454L388.0774962742176,127.49243231832565L389.1207153502235,108.85938200641499L390.1639344262295,93.67247630783606L391.2071535022355,93.61280280803811L392.2503725782414,95.9699060500572L393.2935916542474,91.27061794096846L394.3368107302533,27.68850390624999L395.38002980625936,35.69967125412512L396.4232488822653,45.87400296967604L397.4664679582712,65.3126455288591L398.50968703427714,106.7857278884361L399.5529061102832,153.55483335508148L400.5961251862891,243.96018554897967L401.6393442622951,292.26588363542226L402.68256333830107,330.59118888065734L403.72578241430705,358.27969278690733L404.769001490313,371.70623024144663L405.8122205663189,391.21946467537714L406.85543964232494,402.9900625105233L407.89865871833086,408.12198349314724L408.9418777943368,405.4366760022394L409.9850968703428,411.8366588555698L411.02831594634876,408.0324732434503L412.0715350223547,383.0740319529566L413.11475409836066,350.17901518933525L414.1579731743666,273.5284046988652L415.2011922503726,262.71258286048624L416.24441132637855,216.8534982657597L417.2876304023845,202.83022581324084L418.3308494783904,205.66471705364359L419.37406855439644,222.28378674737337L420.41728763040237,231.33924034171267L421.46050670640835,243.16951167665678L422.5037257824143,249.28604540594694L423.5469448584203,206.06751317727975L424.59016393442624,168.42845317972115L425.63338301043217,178.4685195207267L426.6766020864381,183.8391345025424L427.71982116244413,189.92583148193356L428.76304023845006,180.02003051547348L429.80625931445604,168.5925553041655L430.84947839046197,160.86483708033063L431.89269746646795,174.18694591022359L432.93591654247393,204.79945130657327L433.97913561847986,232.39844496312634L435.0223546944859,250.01704577847184L436.0655737704918,215.25723214616445L437.10879284649775,169.7860253001246L438.1520119225037,129.43182106175914L439.1952309985097,111.05238312398973L440.23845007451564,108.889218756314L441.2816691505216,104.11533877247774L442.32488822652755,97.70043754419783L443.3681073025336,104.51813489611396L444.4113263785395,38.608754369275346L445.45454545454544,33.55142526139883L446.49776453055136,42.5024502310917L447.5409836065574,48.93226983432112L448.58420268256333,57.49541705532732L449.6274217585693,74.74105849693558L450.67064083457524,165.9520029381061L451.7138599105813,193.81952734374997L452.7570789865872,230.89168909322805L453.80029806259313,281.1367759231041L454.84351713859905,304.6928899683459L455.8867362146051,328.78606551176927L456.929955290611,351.1337911861025L457.973174366617,361.39763315135036L459.0163934426229,371.94492424063844L460.0596125186289,390.68240317719557L461.1028315946349,397.3509167796168L462.1460506706408,387.47495256305564L463.18926974664674,369.45355562407394L464.2324888226528,332.814026748131L465.2757078986587,343.9580528353987L466.31892697466463,311.65977106975686L467.3621460506707,295.95072224794586L468.4053651266766,259.5349689962453L469.4485842026826,244.60167567180764L470.4918032786885,238.06742744393185L471.53502235469455,221.83623549888873L472.5782414307005,225.58074761121026L473.6214605067064,172.0386999174973L474.6646795827123,158.40330521366513L475.70789865871836,139.3376220282193L476.7511177347243,152.19726123467808L477.7943368107303,155.3301199740706L478.8375558867362,159.35808121043237L479.8807749627422,163.6396548209355L480.92399403874816,159.88022433366444L481.9672131147541,168.04057543103448L483.01043219076,190.73142372920597L484.05365126676605,214.85443602252826L485.096870342772,226.58027873282595L486.1400894187779,187.4046261154701L487.1833084947839,138.69613190539127L488.22652757078987,110.69434212520201L489.26974664679585,111.39550574782794L490.3129657228018,109.76940287833378L491.3561847988077,132.176802052465L492.39940387481374,146.81172787791286L493.44262295081967,162.07322545123918L494.4858420268256,91.92702643874594L495.5290611028316,87.58577932844491L496.57228017883756,71.19048525895738L497.61549925484354,29.150504651299855L498.65871833084947,43.293124103414584L499.7019374068554,54.12386431674298L500.74515648286143,136.48821241286703L501.78837555886736,162.77438907386517L502.8315946348733,182.1831948831492L503.8748137108793,205.91832942778487L504.91803278688525,223.77562424232218L505.96125186289123,254.11959888958106L507.00447093889716,276.42256943906585L508.04769001490314,292.7581900087554L509.0909090909091,313.2858739392511L510.13412816691505,360.9351635279162L511.177347242921,390.786831801842L512.220566318927,401.5877352652714L513.2637853949329,397.0674676555765L514.3070044709389,380.2544590875034L515.3502235469448,373.3920066107388L516.3934426229508,355.32585454690866L517.4366616989568,350.9100155618602L518.4798807749627,314.06162943662446L519.5230998509687,295.01086462612807L520.5663189269746,241.05110243382947L521.6095380029807,230.62315834413724L522.6527570789866,198.5784889526367L523.6959761549925,190.5822399797111L524.7391952309986,169.11469842739763L525.7824143070045,163.9529406948747L526.8256333830104,148.90030037084114L527.8688524590164,150.67558698983026L528.9120715350224,150.0490152419518L529.9552906110283,163.07275657285493L530.9985096870342,155.34503834902006L532.0417287630402,155.0317524750808L533.0849478390462,154.70354822619208L534.1281669150521,174.6643339086072L535.1713859910581,180.39298988921067L536.2146050670641,155.55389559831292L537.25782414307,113.43932311590788L538.301043219076,100.50509203470165L539.344262295082,108.72511663186958L540.3874813710879,90.52469919349409L541.430700447094,110.91811774944432L542.4739195230999,134.68308904397895L543.5171385991058,130.59545430781924L544.5603576751118,148.98981062053815L545.6035767511178,128.2383510658001L546.6467958271237,117.81040697610791L547.6900149031296,108.48642263267777L548.7332339791357,88.95826982379776L549.7764530551416,85.72098245975889L550.8196721311475,124.8369615773168L551.8628912071534,165.1165739409348L552.9061102831595,175.87272227951576L553.9493293591654,205.44094142940125L554.9925484351713,221.3588475005051L556.0357675111774,249.16669840635103L557.0789865871833,271.51442408068425L558.1222056631892,291.81833238693764L559.1654247391953,303.3054810980435L560.2086438152012,362.6955317719558L561.2518628912072,391.35373004992255L562.2950819672132,401.94577626405913L563.3383010432191,401.9905313889076L564.381520119225,392.2935876717403L565.424739195231,391.6371791739628L566.467958271237,371.70623024144663L567.5111773472429,357.1906514155947L568.5543964232489,323.75857315379176L569.5976154992549,310.0784233251111L570.6408345752608,268.35172859139277L571.6840536512667,241.99096005564724L572.7272727272727,198.38455007829336L573.7704918032787,201.18920456879715L574.8137108792846,187.4792179902175L575.8569299552906,184.31652250092603L576.9001490312966,167.6825344322467L577.9433681073025,172.45641441608296L578.9865871833085,153.62942522982894L580.0298062593145,157.13524334295863L581.0730253353205,179.99019376557447L582.1162444113264,178.22982552153488L583.1594634873323,180.0946223902209L584.2026825633383,199.32440770011112L585.2459016393443,204.0087774342504L586.2891207153502,198.4293052031418L587.3323397913562,193.01393509647764L588.3755588673621,184.7491553744612L589.4187779433681,180.75103088799835L590.461997019374,199.16030557566674L591.50521609538,200.32393882172684L592.5484351713859,202.1588989405139L593.591654247392,211.03533203545933L594.6348733233979,208.02182029566274L595.6780923994039,220.77703087747508L596.7213114754098,227.35603423019936L597.7645305514159,247.0482891635237L598.8077496274218,274.4831806956324L599.8509687034277,297.5619067424906L600.8941877794337,332.5604143739898L601.9374068554397,355.7435690454943L602.9806259314456,381.92531708184606L604.0238450074515,396.5453245323444L605.0670640834576,404.60124700506805L606.1102831594635,415.49166071819434L607.1535022354694,419.9522548280913L608.1967213114754,421.8618068216258L609.2399403874814,416.64037558930494L610.2831594634873,418.38582545839506L611.3263785394932,411.00122985839846L612.3695976154992,384.55095107295597L613.4128166915052,361.7556741501381L614.4560357675111,296.6518858705718L615.4992548435172,299.73998948511587L616.5424739195231,264.5326246043238L617.5856929955291,257.4314781283675L618.6289120715351,238.75367269160827L619.672131147541,245.55645166857488L620.7153502235469,252.25480202089506L621.758569299553,270.4403010843211L622.8017883755589,264.9503391029094L623.8450074515648,224.41711436515018L624.8882265275707,212.33323065606479L625.9314456035768,218.58402975990032L626.9746646795827,213.58637415182181L628.0178837555886,218.98682588353648L629.0611028315946,206.76867679990573L630.1043219076006,202.56169506415003L631.1475409836065,198.5934073275862L632.1907600596124,200.56263282091865L633.2339791356185,198.25028470374798L634.2771982116244,221.92574574858565L635.3204172876304,227.56489147949216L636.3636363636364,201.81577631667565L637.4068554396424,181.66105175991714L638.4500745156483,149.79540286781048L639.4932935916543,137.86070290821993L640.5365126676602,144.3203592613483L641.5797317436662,147.13993212680157L642.6229508196722,146.55811550377155L643.6661698956781,158.53757058821054L644.709388971684,91.83751618904904L645.75260804769,130.49102568317284L646.795827123696,134.38472154498925L647.8390461997019,184.28668575102708L648.8822652757078,206.72392167505726L649.9254843517139,164.81820644194505L650.9687034277198,296.59221237077384L652.0119225037258,342.7347460895407L653.0551415797318,361.90485789963293L654.0983606557377,383.9989711998249L655.1415797317437,395.33693616143586L656.1847988077496,409.0170859901165L657.2280178837556,413.8357210988012L658.2712369597616,418.93780533152614L659.3144560357675,416.7000490891029L660.3576751117735,419.8925813282934L661.4008941877794,414.5518030963766L662.4441132637854,388.83252468345904L663.4873323397914,359.1897136588261L664.5305514157973,288.223004024111L665.5737704918032,282.47942966855805L666.6169895678092,237.26183519665946L667.6602086438152,226.69962573242185L668.7034277198211,222.68658287100953L669.7466467958271,227.10242185605804L670.7898658718331,238.93269319100216L671.8330849478391,260.96713299139617L672.876304023845,249.42031078049231L673.919523099851,215.77937526939655L674.962742175857,197.41485570657662L676.0059612518629,182.31746025769465L677.0491803278688,190.8806074787008L678.0923994038749,193.95379271829538L679.1356184798808,174.94778303264746L680.1788375558867,175.26106890658673L681.2220566318927,170.0993111740638L682.2652757078987,172.9487207894161L683.3084947839046,193.20787397082097L684.3517138599105,218.50943788515286L685.3949329359165,229.08656572433998L686.4381520119225,185.82327837082437L687.4813710879284,148.43783074740702L688.5245901639344,109.88874987792968L689.5678092399404,75.27811999511715L690.6110283159463,42.293592981798895L691.6542473919524,75.78534474339978L692.6974664679583,93.5680476831896L693.7406855439642,119.9288162189352L694.7839046199703,48.64882071028086L695.8271236959762,56.09308981007541L696.8703427719821,66.75972789895945L697.913561847988,78.18720311026738L698.9567809239941,136.23460003872572L700,209.94629066414666\" style=\"fill: none; stroke: black; stroke-width: 2px; stroke-opacity: 1;\"></path></g><g id=\"g374\"><path d=\"M5.216095380029806,402.51790884137927L6.259314456035767,408.7945171209675L7.302533532041729,406.0462639243284L8.34575260804769,412.47076142675735L9.38897168405365,411.4543163233841L10.432190760059612,414.3860240343491L11.475409836065575,367.62912713882196L12.518628912071534,365.038653996163L13.561847988077496,256.3677844982951L14.605067064083459,242.2123630931788L15.64828614008942,166.23930181285527L16.69150521609538,155.55172452929406L17.73472429210134,146.63869117097403L18.7779433681073,154.576913272762L19.821162444113263,169.01412003907836L20.864381520119224,185.8679160359217L21.90760059612519,197.94909741810812L22.95081967213115,199.11162534032752L23.99403874813711,188.68931346698753L25.03725782414307,185.98446593750288L26.08047690014903,200.92488115398876L27.12369597615499,201.6574272671238L28.166915052160952,196.5923060380788L29.210134128166917,181.89528601253318L30.25335320417288,186.40090065145108L31.29657228017884,185.05456300289225L32.3397913561848,219.98661192848658L33.38301043219076,219.1583795206754L34.42622950819672,228.2484744653865L35.46944858420268,223.24688391721466L36.51266766020864,152.68560449900662L37.5558867362146,152.8450219201992L38.59910581222057,104.05432693044878L39.642324888226526,110.69976977629523L40.68554396423249,95.83498730812244L41.72876304023845,97.56210602856515L42.77198211624441,100.67170028459265L43.81520119225038,97.10391851852967L44.85842026825634,109.41804706085514L45.9016393442623,101.3970329170948L46.94485842026826,139.13360565497698L47.98807749627422,143.917954962073L49.031296572280176,234.16245717176423L50.07451564828614,230.1742746779852L51.1177347242921,309.1930503753958L52.16095380029806,324.0342470229808L53.20417287630402,369.38604829210146L54.24739195230998,376.02828823904395L55.29061102831594,398.91605738892457L56.333830104321905,407.2180118844748L57.377049180327866,412.5426677594565L58.420268256333834,410.112516090982L59.463487332339795,414.5227345252752L60.50670640834576,410.1638954972179L61.54992548435172,359.8277542623141L62.59314456035768,353.9944746956155L63.63636363636364,251.547543098699L64.6795827123696,244.63805701458605L65.72280178837556,174.84137699691587L66.76602086438152,158.39643123858696L67.80923994038749,151.8088013566766L68.85245901639344,158.02885737639326L69.89567809239941,176.82856841028232L70.93889716840536,187.95329141885517L71.98211624441133,184.85353135626207L73.02533532041728,191.55048096748544L74.06855439642324,167.4318749861789L75.1117734724292,166.23782229031457L76.15499254843517,181.22135962992652L77.19821162444114,181.3109640544288L78.2414307004471,174.03249519630657L79.28464977645305,173.8114577670026L80.32786885245902,177.4035962673104L81.37108792846497,175.3827462586002L82.41430700447094,216.06155207007905L83.4575260804769,210.66132033666685L84.50074515648286,250.39133454694073L85.54396423248882,232.45590194115243L86.58718330849479,126.39514326160202L87.63040238450075,133.9278564044718L88.67362146050671,87.32066454518133L89.71684053651268,89.58850964046394L90.76005961251863,79.05812197838515L91.8032786885246,78.82147973808753L92.84649776453055,84.71042475532602L93.88971684053652,85.30571210887217L94.93293591654248,85.2135886119367L95.97615499254844,85.20299400439148L97.0193740685544,109.94721383187306L98.06259314456035,109.58803818561631L99.10581222056632,167.46133774233044L100.14903129657228,167.94048809250768L101.19225037257824,256.6647972253054L102.2354694485842,282.67033559145125L103.27868852459017,332.17162217120017L104.32190760059612,340.0387727279386L105.36512667660209,363.06005749833434L106.40834575260804,371.6324441587827L107.45156482861401,387.0107639209896L108.49478390461996,387.6171852898351L109.53800298062592,402.50858662379795L110.58122205663189,401.55090928770153L111.62444113263784,364.07506117854535L112.66766020864381,351.96924834733807L113.71087928464976,277.5402419714118L114.75409836065573,241.62489206355352L115.79731743666169,180.6912880938832L116.84053651266767,168.8177879752078L117.88375558867364,152.3087691525579L118.92697466467959,165.10938594565772L119.97019374068554,180.441945130107L121.01341281669151,196.13469546786533L122.05663189269747,199.60839097321727L123.09985096870344,201.6100596906324L124.14307004470939,175.91458796792585L125.18628912071536,173.88980977250674L126.22950819672131,187.9732961462489L127.27272727272728,188.60157560516947L128.31594634873323,176.63661797027189L129.3591654247392,178.4581058590546L130.40238450074517,175.88925989926952L131.44560357675113,177.76424583449946L132.48882265275708,212.21654224763114L133.53204172876303,212.60082998273282L134.575260804769,239.59630439701004L135.61847988077497,227.20765564990688L136.66169895678092,140.51407583416074L137.70491803278688,114.76604094242708L138.74813710879283,80.79769507010764L139.79135618479881,65.9518586245079L140.83457526080477,65.87889493847888L141.87779433681072,78.9292062509191L142.92101341281668,96.39490520992968L143.96423248882266,98.60484598576966L145.0074515648286,103.618391072961L146.05067064083457,105.84548186182224L147.09388971684052,74.32658899823127L148.13710879284648,85.47730669294572L149.18032786885246,99.2312555453446L150.2235469448584,98.66534121569396L151.2667660208644,132.38313535896617L152.30998509687035,129.68151360020335L153.3532041728763,183.3364235628277L154.3964232488823,185.43692168284267L155.43964232488824,225.07403226196638L156.4828614008942,242.64573528462938L157.52608047690015,272.74111889930066L158.5692995529061,292.970927464464L159.61251862891208,367.07163884822637L160.65573770491804,380.98038935530417L161.698956780924,394.5079600393419L162.74217585692995,392.4605514457343L163.78539493293593,375.7348197491488L164.82861400894188,364.79870035595576L165.87183308494784,335.41248310593727L166.9150521609538,332.00320489718024L167.95827123695977,272.3080536003853L169.00149031296573,253.15935576075674L170.04470938897168,220.99215798670832L171.08792846497764,208.39473363774917L172.1311475409836,180.76743806793996L173.17436661698957,181.7770585941852L174.21758569299553,162.5461173427213L175.2608047690015,141.16460680501353L176.30402384500744,127.45698139266113L177.34724292101342,125.48958597582839L178.39046199701937,142.41891808452783L179.43368107302535,143.33696715265768L180.47690014903128,152.66758799916005L181.52011922503726,154.01507430074616L182.56333830104322,162.9777210296998L183.6065573770492,162.58719931185436L184.64977645305513,172.34718236231686L185.6929955290611,175.4082239252299L186.73621460506706,110.69369622647264L187.77943368107304,110.64373344834826L188.82265275707897,75.97863524982199L189.86587183308495,68.06932231477055L190.9090909090909,55.63380758289742L191.9523099850969,73.32146904864129L192.99552906110281,120.98784557121968L194.0387481371088,102.65601157193856L195.08196721311475,88.09437519800093L196.1251862891207,87.83120225349887L197.16840536512666,67.43006203209279L198.21162444113264,67.56147241972565L199.25484351713857,78.02779746545514L200.29806259314455,77.05307018703297L201.34128166915053,103.50959118455643L202.3845007451565,103.9933836934947L203.42771982116247,137.28666689903218L204.4709388971684,134.9786643940995L205.51415797317438,198.10637251875522L206.55737704918033,181.7887295381877L207.6005961251863,244.78787940040377L208.64381520119224,261.4801308646427L209.68703427719822,355.2004529189765L210.73025335320418,370.78229749282133L211.77347242921016,393.161755346338L212.81669150521608,393.0048066432405L213.85991058122207,383.0693085151962L214.90312965722802,379.91998512364006L215.94634873323398,367.04889091093617L216.98956780923993,357.917807028997L218.0327868852459,317.7724739831035L219.07600596125184,313.94410284790075L220.11922503725782,262.2956755171259L221.16244411326377,256.688008605875L222.20566318926976,198.2517825920338L223.24888226527568,194.91660823332165L224.29210134128166,161.95140150630255L225.33532041728762,161.3870977973162L226.3785394932936,146.39828925290533L227.42175856929953,152.66175172441268L228.4649776453055,147.30273665155715L229.50819672131146,150.85961171045358L230.55141579731745,160.27178714774567L231.59463487332337,159.80046400952745L232.63785394932935,178.9818246871033L233.68107302533534,173.1230438962794L234.7242921013413,177.60737668846053L235.76751117734727,181.063607753307L236.8107302533532,158.42691491824502L237.85394932935918,158.31130270145928L238.89716840536514,161.91363349708922L239.9403874813711,161.63439142942224L240.98360655737704,171.56349197789518L242.02682563338303,180.3274886340456L243.07004470938895,209.38821888560273L244.11326378539493,203.88764796074884L245.1564828614009,212.1131702749991L246.19970193740687,229.89783587252523L247.2429210134128,257.9696922168843L248.28614008941878,276.23387528316255L249.32935916542473,325.8151189406206L250.37257824143072,318.67333984945L251.41579731743664,367.44788897587483L252.45901639344262,361.8876438047624L253.50223546944858,392.79253206457247L254.54545454545456,401.23896253825023L255.5886736214605,410.7490241439031L256.63189269746647,415.9490488690231L257.6751117734724,420.3427981807778L258.7183308494784,412.7477396419465L259.76154992548436,411.85286093910554L260.80476900149034,406.16797363315794L261.84798807749627,363.4149717361237L262.89120715350225,376.45679686097577L263.9344262295082,258.29341944210387L264.97764530551416,248.6832337021812L266.0208643815201,204.0098739396889L267.06408345752607,195.76076775517797L268.10730253353205,177.3703917339741L269.150521609538,179.17112041512783L270.19374068554396,206.25259733614817L271.23695976154994,218.0750926124836L272.2801788375559,230.79531645746727L273.32339791356185,231.42805952352293L274.36661698956783,218.9799932911513L275.40983606557376,219.30717834630147L276.45305514157974,225.74339873304953L277.49627421758566,225.19907548039058L278.53949329359165,214.41865802604815L279.58271236959763,214.24298092349306L280.6259314456036,209.19277299786145L281.66915052160954,215.40291523646883L282.7123695976155,231.64609183896695L283.75558867362145,231.32163951617358L284.79880774962743,234.7182026257985L285.84202682563335,217.19092570831006L286.88524590163934,161.03712073111984L287.9284649776453,164.96045770511955L288.97168405365124,127.85470357830405L290.0149031296572,124.91546681186082L291.0581222056632,141.4051717116585L292.10134128166914,134.71015377451664L293.1445603576751,152.95733149771092L294.18777943368104,148.43822971139593L295.230998509687,179.68746792805723L296.27421758569295,184.0337296973294L297.31743666169893,211.69190619368285L298.3606557377049,235.20965333065965L299.4038748137109,299.8005557185474L300.4470938897168,297.1091594886122L301.4903129657228,355.0270995329359L302.5335320417288,367.00667942550444L303.5767511177347,391.23736900260747L304.6199701937407,395.6127757571485L305.6631892697466,411.58140819956645L306.7064083457526,415.47836636069235L307.7496274217586,422.3048804672084L308.7928464977646,419.49532400291605L309.8360655737705,419.94674194264644L310.8792846497765,415.85125752839156L311.9225037257824,381.8731643518327L312.9657228017884,366.48290956436256L314.0089418777943,252.96791900517576L315.0521609538003,271.43435938298944L316.0953800298062,188.26188595209308L317.1385991058122,175.13488739327738L318.1818181818182,143.34044018258595L319.22503725782417,172.17950418797454L320.2682563338301,203.66157067369724L321.3114754098361,211.83973335577008L322.354694485842,224.54754133397228L323.397913561848,224.69709870602628L324.4411326378539,214.09911045200133L325.4843517138599,201.08060770326466L326.5275707898659,214.21584873689613L327.57078986587186,215.84467956636033L328.6140089418778,207.6469312511857L329.65722801788377,208.60142040269054L330.7004470938897,202.06832558912086L331.7436661698957,199.91186654884186L332.7868852459016,232.69239385223622L333.8301043219076,232.19384217823497L334.87332339791357,222.7251163612519L335.91654247391955,223.0002728653955L336.9597615499255,140.80049409170056L338.00298062593146,143.23194466257138L339.04619970193744,101.4730462941908L340.08941877794337,89.8835854187015L341.13263785394935,85.77283218046858L342.1758569299553,91.87502158819859L343.21907600596126,110.05748439953345L344.2622950819672,91.75604040177132L345.30551415797316,105.57962041343228L346.34873323397915,105.51722396953346L347.39195230998513,136.90863722782274L348.43517138599105,156.09848075263807L349.47839046199704,268.02125142212145L350.521609538003,253.25213578394323L351.56482861400895,323.7058720060046L352.60804769001487,344.9875263542964L353.65126676602085,376.1757600452752L354.69448584202684,384.60764554713586L355.7377049180328,392.7192825944903L356.78092399403874,405.14581481212184L357.82414307004467,404.81940862127243L358.8673621460507,409.34768857961615L359.91058122205663,413.3674277351766L360.95380029806256,412.5027465087815L361.99701937406854,383.2984688392909L363.0402384500745,351.51001159642215L364.08345752608045,270.66823554100984L365.12667660208643,257.34845059814495L366.16989567809236,179.35431479158927L367.2131147540984,161.10555751813388L368.2563338301043,145.71527857482278L369.29955290611025,156.47274445363468L370.3427719821163,185.62649099235503L371.3859910581222,187.1762371869896L372.42921013412814,204.71469403210665L373.4724292101341,204.74577266633784L374.5156482861401,192.19191648002715L375.5588673621461,190.88865538503688L376.602086438152,200.14235069205597L377.64530551415794,200.22795413077088L378.688524590164,184.3730002187411L379.7317436661699,184.16821830796133L380.77496274217583,179.59701778032553L381.8181818181818,166.79875521506636L382.8614008941878,212.77615527419107L383.9046199701938,223.75558461481714L384.9478390461997,222.13942252041969L385.99105812220563,222.68619726313506L387.03427719821167,149.8261962078961L388.0774962742176,130.10535734712607L389.1207153502235,115.10028703556134L390.1639344262295,95.04718934652715L391.2071535022355,79.61980781460056L392.2503725782414,82.20765148200013L393.2935916542474,102.7626447970884L394.3368107302533,98.9619610642423L395.38002980625936,112.23159021479461L396.4232488822653,112.2058311466962L397.4664679582712,161.9504887794718L398.50968703427714,149.37627860860954L399.5529061102832,238.87357409509303L400.5961251862891,238.6657067375224L401.6393442622951,323.64362023255626L402.68256333830107,322.99253303651784L403.72578241430705,373.6631159151997L404.769001490313,370.30042735319284L405.8122205663189,399.66711499733043L406.85543964232494,403.7587589104729L407.89865871833086,413.44436375785534L408.9418777943368,412.4059908237822L409.9850968703428,413.4119642814192L411.02831594634876,412.28810526755257L412.0715350223547,374.69053584221103L413.11475409836066,375.9361714008612L414.1579731743666,261.09720632383693L415.2011922503726,269.96326983140773L416.24441132637855,185.8187889679476L417.2876304023845,165.34046391319845L418.3308494783904,151.11091111567657L419.37406855439644,162.7981555184648L420.41728763040237,179.06099896934396L421.46050670640835,180.7717489415974L422.5037257824143,195.52934836373464L423.5469448584203,195.53866530500449L424.59016393442624,174.5775465834485L425.63338301043217,174.57930778602167L426.6766020864381,191.33782849453493L427.71982116244413,191.15842552498646L428.76304023845006,190.47715890290968L429.80625931445604,172.6623017369875L430.84947839046197,188.21109678427507L431.89269746646795,186.37027952910975L432.93591654247393,241.49181074830142L433.97913561847986,212.5247388287065L435.0223546944859,235.56178077275166L436.0655737704918,238.45948545440024L437.10879284649775,154.21798582483063L438.1520119225037,134.9977208252418L439.1952309985097,102.37988379315772L440.23845007451564,99.21112787775826L441.2816691505216,102.6942199172608L442.32488822652755,103.34023749087947L443.3681073025336,118.69244585866312L444.4113263785395,98.09816376613605L445.45454545454544,91.01439640613688L446.49776453055136,89.95994103494343L447.5409836065574,115.807852057079L448.58420268256333,114.75213222413635L449.6274217585693,177.57786663336185L450.67064083457524,177.4055735400567L451.7138599105813,258.22354025178043L452.7570789865872,257.9006597362235L453.80029806259313,331.1231009139176L454.84351713859905,330.7496918165248L455.8867362146051,368.2203330348867L456.929955290611,367.7047274245416L457.973174366617,388.32959357612447L459.0163934426229,387.57220434654994L460.0596125186289,403.4640988066901L461.1028315946349,403.74067000369564L462.1460506706408,363.7231480187121L463.18926974664674,365.1215124440007L464.2324888226528,266.2320009376824L465.2757078986587,275.9675051414048L466.31892697466463,186.01787543712L467.3621460506707,178.94670799876133L468.4053651266766,158.2719381172601L469.4485842026826,158.52888842049492L470.4918032786885,186.63761579917897L471.53502235469455,186.0183470507601L472.5782414307005,205.003461045418L473.6214605067064,204.8991545269814L474.6646795827123,184.26634158616397L475.70789865871836,184.2482860988362L476.7511177347243,191.2558051527549L477.7943368107303,191.11367145299047L478.8375558867362,178.87718102374615L479.8807749627422,179.24686408474005L480.92399403874816,175.22279900257604L481.9672131147541,175.0126167113288L483.01043219076,222.67290019201752L484.05365126676605,223.14759862236608L485.096870342772,202.02961478302933L486.1400894187779,209.9917749093209L487.1833084947839,145.19784586773136L488.22652757078987,147.05893509160205L489.26974664679585,81.70563486916319L490.3129657228018,83.67497202029307L491.3561847988077,76.1505139393139L492.39940387481374,84.94028212642229L493.44262295081967,113.09132710818778L494.4858420268256,111.70103386451711L495.5290611028316,94.29153510159256L496.57228017883756,94.28643060111074L497.61549925484354,80.9668499261548L498.65871833084947,80.58432274289044L499.7019374068554,85.78740316513154L500.74515648286143,83.64864774064051L501.78837555886736,126.16762391979915L502.8315946348733,138.71118967046283L503.8748137108793,183.1522231772102L504.91803278688525,177.89079854066657L505.96125186289123,261.7915791618007L507.00447093889716,277.6053537839448L508.04769001490314,310.098887004007L509.0909090909091,316.55040622110295L510.13412816691505,378.3232849127632L511.177347242921,388.48235661148703L512.220566318927,395.1495581635692L513.2637853949329,395.1934820125851L514.3070044709389,374.6479247427671L515.3502235469448,370.74334584832724L516.3934426229508,335.98599640017926L517.4366616989568,331.6427875622838L518.4798807749627,278.9106893007112L519.5230998509687,269.27795343407695L520.5663189269746,216.70539325324842L521.6095380029807,218.16830695766126L522.6527570789866,181.0510580237027L523.6959761549925,181.847420549529L524.7391952309986,144.360512998641L525.7824143070045,144.67046761216545L526.8256333830104,132.33416288486563L527.8688524590164,131.2394299719798L528.9120715350224,148.7053972599199L529.9552906110283,147.46212504857232L530.9985096870342,146.74492121446514L532.0417287630402,147.91600540673682L533.0849478390462,167.2831843155668L534.1281669150521,169.05731314681788L535.1713859910581,173.81278936631207L536.2146050670641,170.00155461871594L537.25782414307,108.88574997634629L538.301043219076,109.46031331876532L539.344262295082,43.953635708781974L540.3874813710879,54.49786030133515L541.430700447094,49.90665922242562L542.4739195230999,70.62774644664552L543.5171385991058,111.45384441639743L544.5603576751118,103.84997712076097L545.6035767511178,77.59281633743808L546.6467958271237,76.38928471008239L547.6900149031296,43.63862578682904L548.7332339791357,43.908618254104226L549.7764530551416,58.79498286320222L550.8196721311475,60.440609178796876L551.8628912071534,91.00312990406303L552.9061102831595,90.3989238669102L553.9493293591654,136.05922014856128L554.9925484351713,136.13242416022348L556.0357675111774,194.00466781835954L557.0789865871833,193.39345569435193L558.1222056631892,253.61987808167356L559.1654247391953,252.92294386071367L560.2086438152012,365.5775584980511L561.2518628912072,364.2744983853684L562.2950819672132,396.49808007155116L563.3383010432191,396.45619075063223L564.381520119225,387.24828806026983L565.424739195231,387.7378003916124L566.467958271237,354.6508176698932L567.5111773472429,352.4439521221845L568.5543964232489,315.10962089425743L569.5976154992549,312.0736791579685L570.6408345752608,254.87003853105188L571.6840536512667,242.42237864000157L572.7272727272727,188.6082100291666L573.7704918032787,185.88258235260838L574.8137108792846,156.74672632045554L575.8569299552906,158.9131732510072L576.9001490312966,148.34217358044026L577.9433681073025,156.55223239735597L578.9865871833085,153.27449360883878L580.0298062593145,153.05066413257805L581.0730253353205,164.56254346236722L582.1162444113264,161.5896033882164L583.1594634873323,177.83221684718512L584.2026825633383,182.8435966106336L585.2459016393443,182.38795466099532L586.2891207153502,186.4196573426008L587.3323397913562,164.9117120014496L588.3755588673621,162.78607922551015L589.4187779433681,163.4635100828965L590.461997019374,163.44849621485616L591.50521609538,177.56951966003342L592.5484351713859,177.02557277407507L593.591654247392,198.7076100179219L594.6348733233979,199.0720521120513L595.6780923994039,218.58896044670766L596.7213114754098,218.51242019952738L597.7645305514159,269.7185682353171L598.8077496274218,261.40021572460176L599.8509687034277,316.65813137827354L600.8941877794337,327.9216638268472L601.9374068554397,367.2591227529782L602.9806259314456,377.700343286265L604.0238450074515,392.7482363126623L605.0670640834576,401.72119425356334L606.1102831594635,414.24753870319955L607.1535022354694,420.63607566590235L608.1967213114754,420.71029788005933L609.2399403874814,417.70084399806757L610.2831594634873,414.26097696059816L611.3263785394932,408.62720966703523L612.3695976154992,368.19124637654915L613.4128166915052,369.52324331685753L614.4560357675111,248.20693729324418L615.4992548435172,268.6886236514566L616.5424739195231,186.42633015635954L617.5856929955291,179.92577745130396L618.6289120715351,171.29194185620128L619.672131147541,176.73716061389914L620.7153502235469,204.46212583901033L621.758569299553,202.7879712786036L622.8017883755589,223.29036300194306L623.8450074515648,223.24449135724996L624.8882265275707,210.57845978550006L625.9314456035768,210.5526957074534L626.9746646795827,222.37562265112282L628.0178837555886,222.39037690090544L629.0611028315946,213.51936625603815L630.1043219076006,214.09341889451542L631.1475409836065,207.0219115647614L632.1907600596124,202.8105847133439L633.2339791356185,218.1094651926669L634.2771982116244,226.75186122244267L635.3204172876304,205.24203601747027L636.3636363636364,204.33051581005688L637.4068554396424,152.66562557851307L638.4500745156483,153.82778930926958L639.4932935916543,131.66206780928889L640.5365126676602,129.6414937395553L641.5797317436662,135.69607224771352L642.6229508196722,134.52316182581302L643.6661698956781,146.213243756206L644.709388971684,147.66042320471405L645.75260804769,173.04092498760656L646.795827123696,171.98476172426075L647.8390461997019,234.53500494605927L648.8822652757078,224.0061597863472L649.9254843517139,287.9664862894582L650.9687034277198,284.2214009640178L652.0119225037258,351.0254124075548L653.0551415797318,345.5730986230988L654.0983606557377,389.941481496315L655.1415797317437,391.11440789554536L656.1847988077496,409.80933622722506L657.2280178837556,414.9583556044693L658.2712369597616,419.81903963274243L659.3144560357675,420.03358553481445L660.3576751117735,419.5158728629339L661.4008941877794,414.43629361369807L662.4441132637854,380.4001350819902L663.4873323397914,358.8748987038474L664.5305514157973,257.0939566369741L665.5737704918032,245.88024612886056L666.6169895678092,181.27059865467132L667.6602086438152,160.9759270337252L668.7034277198211,150.2225168188807L669.7466467958271,164.50526368514346L670.7898658718331,192.05789973679322L671.8330849478391,187.19010258342988L672.876304023845,208.83828318757546L673.919523099851,208.79274308930965L674.962742175857,196.29999126980678L676.0059612518629,196.47069034468495L677.0491803278688,200.8485412440357L678.0923994038749,200.9989893457029L679.1356184798808,183.31628315695576L680.1788375558867,160.4159041748278L681.2220566318927,162.97076224232097L682.2652757078987,164.9509480234903L683.3084947839046,220.93887783075328L684.3517138599105,201.2547159599882L685.3949329359165,224.62443805218732L686.4381520119225,226.09742462646335L687.4813710879284,141.52286287036264L688.5245901639344,134.6199761378361L689.5678092399404,111.29847410054668L690.6110283159463,112.51105875835424L691.6542473919524,106.84799534374417L692.6974664679583,97.63124690498847L693.7406855439642,114.04145347561365L694.7839046199703,114.06309436827945L695.8271236959762,122.55049908923769L696.8703427719821,122.74175601542288L697.913561847988,167.81892643411777L698.9567809239941,187.50159189894282L700,256.1069599397337L701.043219076006,256.0919967533948L702.0864381520119,332.5782157849308L703.1296572280179,332.16724251074425L704.1728763040239,378.5689875033131L705.2160953800297,380.1965253607826\" style=\"fill: none; stroke: blue; stroke-width: 2px; stroke-opacity: 1;\"></path></g><g id=\"g375\"><g transform=\"translate(0,432.63287353515625)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g376\" style=\"pointer-events: none;\"></g><g id=\"g377\" style=\"pointer-events: none;\"><line x1=\"88.13040238450075\" y1=\"0\" x2=\"88.13040238450075\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"192.4523099850969\" y1=\"0\" x2=\"192.4523099850969\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"296.77421758569295\" y1=\"0\" x2=\"296.77421758569295\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"401.0961251862891\" y1=\"0\" x2=\"401.0961251862891\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"505.41803278688525\" y1=\"0\" x2=\"505.41803278688525\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"609.7399403874814\" y1=\"0\" x2=\"609.7399403874814\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g378\" style=\"pointer-events: none;\"></g><g id=\"g379\"><text x=\"88.13040238450075\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">12,900</text><text x=\"192.4523099850969\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,000</text><text x=\"296.77421758569295\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,100</text><text x=\"401.0961251862891\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,200</text><text x=\"505.41803278688525\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,300</text><text x=\"609.7399403874814\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,400</text></g><g id=\"g380\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M0,6V0H700V6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g381\"></g></g></g><g id=\"g382\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g383\" style=\"pointer-events: none;\"></g><g id=\"g384\" style=\"pointer-events: none;\"><line x1=\"-6\" y1=\"373.4593737372037\" x2=\"0\" y2=\"373.4593737372037\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"298.8674989897629\" x2=\"0\" y2=\"298.8674989897629\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"224.27562424232218\" x2=\"0\" y2=\"224.27562424232218\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"149.68374949488145\" x2=\"0\" y2=\"149.68374949488145\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"75.09187474744073\" x2=\"0\" y2=\"75.09187474744073\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"0.5\" x2=\"0\" y2=\"0.5\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g385\" style=\"pointer-events: none;\"></g><g id=\"g386\"><text x=\"-9\" y=\"373.4593737372037\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">5,000</text><text x=\"-9\" y=\"298.8674989897629\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">10,000</text><text x=\"-9\" y=\"224.27562424232218\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">15,000</text><text x=\"-9\" y=\"149.68374949488145\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">20,000</text><text x=\"-9\" y=\"75.09187474744073\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">25,000</text><text x=\"-9\" y=\"0.5\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">30,000</text></g><g id=\"g387\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M-6,0H0V432.63287353515625H-6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g388\"></g></g></g></g></g></g></svg>"}
;; <=
;; @@
(let [[n-drop n-take] [(- perturbed-at (* 24 2 7)) (* 24 2 14)]]
(plot/compose
(plot/list-plot (->> (map (fn [i v x]
[i (- v x)])
(range)
(drop 5 (map :passengers inputs))
knn-by-hour-forecast)
(drop n-drop)
(take n-take))
:joined true
:color "blue"
:opacity 0.5
:plot-size 700)
(plot/list-plot (->> (map (fn [i v x]
[i (- v x)])
(range)
(drop 5 (map :passengers inputs))
knn-by-hour-sliding-forecast-1000)
(drop n-drop)
(take n-take))
:joined true
:color "red"
:opacity 0.5
:plot-size 700)
(plot/list-plot [[n-drop 0] [(+ n-drop n-take) 0]]
:joined true
:color "black"
)
))
;; @@
;; =>
;;; {"type":"html","content":"<svg class=\"marks\" width=\"760\" height=\"462.63287353515625\"><g transform=\"translate(50,10)\"><g id=\"g389\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"700\" height=\"432.63287353515625\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g390\"><path d=\"M0,196.7365291958432L1.0432190760059612,189.147577450415L2.0864381520119224,192.9272981801925L3.1296572280178836,191.0852534160277L4.172876304023845,199.1521309758153L5.216095380029806,191.05908938434646L6.259314456035767,220.62394867738954L7.302533532041729,190.30082632956905L8.34575260804769,280.7658980790956L9.38897168405365,230.1625203665584L10.432190760059612,251.06831756268215L11.475409836065575,221.7488715255124L12.518628912071534,214.74651079786062L13.561847988077496,209.31472414779424L14.605067064083459,225.3690466515168L15.64828614008942,223.20872786966143L16.69150521609538,187.75243256206366L17.73472429210134,221.04187009985017L18.7779433681073,224.11334359632545L19.821162444113263,184.58739756191557L20.864381520119224,208.04441740080364L21.90760059612519,205.51885299617598L22.95081967213115,184.35932248643886L23.99403874813711,201.10634080045682L25.03725782414307,162.098944947103L26.08047690014903,138.09785081650438L27.12369597615499,170.03752448573596L28.166915052160952,205.44540455037748L29.210134128166917,219.8028888378806L30.25335320417288,243.71878300846413L31.29657228017884,240.79774039964755L32.3397913561848,192.40513283832726L33.38301043219076,241.835537248984L34.42622950819672,194.31998028031077L35.46944858420268,163.9380291931193L36.51266766020864,163.0963647686923L37.5558867362146,198.9154495592387L38.59910581222057,205.81973934169923L39.642324888226526,208.555998923495L40.68554396423249,248.9587994044372L41.72876304023845,200.7170220347817L42.77198211624441,192.3386748633009L43.81520119225038,166.1164567413827L44.85842026825634,180.84804272338712L45.9016393442623,201.97938051620287L46.94485842026826,206.5338776467123L47.98807749627422,175.18444507548327L49.031296572280176,236.56276805366386L50.07451564828614,182.773445305805L51.1177347242921,196.48645589608148L52.16095380029806,210.3999333572182L53.20417287630402,193.6544697268368L54.24739195230998,191.83079093893625L55.29061102831594,192.42412243097203L56.333830104321905,284.4465633441929L57.377049180327866,190.0381958885009L58.420268256333834,258.50789920623134L59.463487332339795,198.6750681380703L60.50670640834576,232.36151680920366L61.54992548435172,245.44821349110484L62.59314456035768,189.24942594941456L63.63636363636364,192.42789497225755L64.6795827123696,188.49241072030063L65.72280178837556,222.3455585632018L66.76602086438152,186.69568223356782L67.80923994038749,223.59323829600578L68.85245901639344,212.2204634957433L69.89567809239941,186.97196814743822L70.93889716840536,184.66834140600756L71.98211624441133,215.68168531582572L73.02533532041728,205.00972639388016L74.06855439642324,185.2917127951694L75.1117734724292,246.1029156631643L76.15499254843517,230.34202032599336L77.19821162444114,233.71572522127744L78.2414307004471,266.4258876343109L79.28464977645305,221.68574104179442L80.32786885245902,174.66733707197943L81.37108792846497,263.3308342786273L82.41430700447094,103.1113496199817L83.4575260804769,246.31483741286004L84.50074515648286,197.6752922785124L85.54396423248882,211.26770908015212L86.58718330849479,275.6946170264807L87.63040238450075,244.1465844672646L88.67362146050671,234.53421796499515L89.71684053651268,58.919276063010216L90.76005961251863,135.65263942552815L91.8032786885246,164.94612715764544L92.84649776453055,235.93892850530239L93.88971684053652,184.1996412096938L94.93293591654248,163.27277250305303L95.97615499254844,133.3972891998194L97.0193740685544,175.4840995738494L98.06259314456035,166.6023677366099L99.10581222056632,170.27412260267226L100.14903129657228,197.92145248395872L101.19225037257824,196.87217718853478L102.2354694485842,204.69778744415268L103.27868852459017,183.6108715914488L104.32190760059612,200.11740177537553L105.36512667660209,188.01063874100083L106.40834575260804,204.1601857869009L107.45156482861401,159.00264708446332L108.49478390461996,267.31657580419983L109.53800298062592,148.95879146432225L110.58122205663189,224.95999257083963L111.62444113263784,242.41729852984898L112.66766020864381,221.4862897425312L113.71087928464976,210.52095715261942L114.75409836065573,191.0631036426773L115.79731743666169,205.8769970709302L116.84053651266767,191.59821520727274L117.88375558867364,216.07929938295686L118.92697466467959,179.24952926785647L119.97019374068554,209.13874549756721L121.01341281669151,180.54105735020016L122.05663189269747,206.28029411680126L123.09985096870344,197.57437848448998L124.14307004470939,197.2263637914404L125.18628912071536,189.16705744032973L126.22950819672131,214.83282980029756L127.27272727272728,230.9404436823438L128.31594634873323,209.86100675080235L129.3591654247392,217.82669027970064L130.40238450074517,160.40056560065807L131.44560357675113,242.19601797000897L132.48882265275708,175.56831823040505L133.53204172876303,175.01894347908262L134.575260804769,174.81357964535113L135.61847988077497,209.1552746178488L136.66169895678092,168.59134478637299L137.70491803278688,226.27199085153939L138.74813710879283,219.44520789302288L139.79135618479881,192.0060924841799L140.83457526080477,147.56159764741676L141.87779433681072,206.10337119028853L142.92101341281668,181.23001091088977L143.96423248882266,206.74388989807528L145.0074515648286,220.44189988105768L146.05067064083457,177.97658313372148L147.09388971684052,224.02650833419747L148.13710879284648,206.14520205912203L149.18032786885246,179.29771192668557L150.2235469448584,157.19763687613278L151.2667660208644,208.17977208796574L152.30998509687035,178.74325815773497L153.3532041728763,200.45093848220526L154.3964232488823,183.81238697111604L155.43964232488824,193.25972344601348L156.4828614008942,200.82438677858707L157.52608047690015,201.87229997775435L158.5692995529061,190.85736175364684L159.61251862891208,192.23930970341812L160.65573770491804,192.58268032589595L161.698956780924,172.99939824095839L162.74217585692995,192.2960687887468L163.78539493293593,201.09483662398418L164.82861400894188,173.10748245954142L165.87183308494784,191.9530600343806L166.9150521609538,156.48716236546858L167.95827123695977,196.4261407420016L169.00149031296573,151.66788154240646L170.04470938897168,144.86076243726188L171.08792846497764,142.44355143856518L172.1311475409836,147.59935775849675L173.17436661698957,190.03166476754456L174.21758569299553,216.37049090114346L175.2608047690015,201.80157641271094L176.30402384500744,230.24806742672783L177.34724292101342,157.8293568353983L178.39046199701937,190.08390256138009L179.43368107302535,185.36059002698627L180.47690014903128,140.425557051969L181.52011922503726,189.15748354305643L182.56333830104322,123.12036001602235L183.6065573770492,118.64204549268254L184.64977645305513,124.650004764019L185.6929955290611,106.19532662134122L186.73621460506706,155.52420698253894L187.77943368107304,133.17733964203L188.82265275707897,161.80783987678967L189.86587183308495,173.50588507954552L190.9090909090909,137.63427466920865L191.9523099850969,188.72473927245065L192.99552906110281,123.72634710715619L194.0387481371088,137.68854347140996L195.08196721311475,203.64077026246767L196.1251862891207,190.23216772170633L197.16840536512666,301.4497203143916L198.21162444113264,182.8452195108403L199.25484351713857,233.67847483303805L200.29806259314455,174.4784317780269L201.34128166915053,178.2096190918981L202.3845007451565,177.47960717331244L203.42771982116247,167.4125213404934L204.4709388971684,175.68173318401153L205.51415797317438,203.4750491266001L206.55737704918033,196.21620324295202L207.6005961251863,197.97555679890888L208.64381520119224,199.04579290439412L209.68703427719822,196.87973617757L210.73025335320418,190.10920987128912L211.77347242921016,189.44881676000608L212.81669150521608,166.78963131034607L213.85991058122207,171.38267459941818L214.90312965722802,193.7710386253715L215.94634873323398,185.21309917658192L216.98956780923993,96.83721859184203L218.0327868852459,186.96954387868365L219.07600596125184,193.05134844043835L220.11922503725782,201.58394060278502L221.16244411326377,188.14518976101473L222.20566318926976,237.7124267426517L223.24888226527568,191.4526567977479L224.29210134128166,193.5376306771806L225.33532041728762,192.57905179521066L226.3785394932936,209.2569269539046L227.42175856929953,203.50944644447168L228.4649776453055,194.2792666210643L229.50819672131146,249.31123205142717L230.55141579731745,174.66251740827425L231.59463487332337,230.9649101023874L232.63785394932935,183.1294832275538L233.68107302533534,263.10503325235925L234.7242921013413,171.1158199483673L235.76751117734727,147.38416940115172L236.8107302533532,209.78664130853178L237.85394932935918,193.37825131458737L238.89716840536514,161.2524557711056L239.9403874813711,202.20407410745062L240.98360655737704,217.2014741506409L242.02682563338303,171.65535545787355L243.07004470938895,225.01229825701623L244.11326378539493,176.31006802432165L245.1564828614009,214.6131752673765L246.19970193740687,204.1363917375174L247.2429210134128,251.37514929646503L248.28614008941878,189.38918552704084L249.32935916542473,196.28339640941644L250.37257824143072,193.9484300119182L251.41579731743664,187.9711718947416L252.45901639344262,194.51648653385206L253.50223546944858,190.73313369270122L254.54545454545456,196.71493931841604L255.5886736214605,181.00289441746273L256.63189269746647,217.56003528644544L257.6751117734724,193.1212664610571L258.7183308494784,197.3043304141297L259.76154992548436,160.80509688434114L260.80476900149034,129.75935423828656L261.84798807749627,163.98086447688445L262.89120715350225,177.5084403996683L263.9344262295082,187.63217861169684L264.97764530551416,164.69242947905593L266.0208643815201,185.9326780942191L267.06408345752607,180.01954460386273L268.10730253353205,203.59343308888478L269.150521609538,195.79284376853326L270.19374068554396,195.40729861627221L271.23695976154994,216.61166531892385L272.2801788375559,214.95151578769304L273.32339791356185,231.08722769437102L274.36661698956783,217.17983976261374L275.40983606557376,203.48488932403737L276.45305514157974,168.1943562429134L277.49627421758566,154.59308720683987L278.53949329359165,228.22127383551316L279.58271236959763,183.52470773247572L280.6259314456036,166.41371430485304L281.66915052160954,213.97540456589874L282.7123695976155,177.84944097841287L283.75558867362145,207.2525038109473L284.79880774962743,218.9322826566555L285.84202682563335,157.70198925116733L286.88524590163934,213.41214400024728L287.9284649776453,196.6281393715182L288.97168405365124,193.7160075911525L290.0149031296572,169.46070912551426L291.0581222056632,176.36976598380426L292.10134128166914,148.9478324824484L293.1445603576751,169.74006804707852L294.18777943368104,178.62414766547667L295.230998509687,198.833744409129L296.27421758569295,191.8499406066049L297.31743666169893,196.65393439187739L298.3606557377049,203.19860447523595L299.4038748137109,194.1419333151L300.4470938897168,201.9004317777009L301.4903129657228,187.84971706935744L302.5335320417288,194.89896987781404L303.5767511177347,197.45542796854141L304.6199701937407,196.52295576505793L305.6631892697466,189.62623532014933L306.7064083457526,222.16121317516541L307.7496274217586,201.40954496982653L308.7928464977646,227.8166118287703L309.8360655737705,156.33098912087115L310.8792846497765,197.4787582405873L311.9225037257824,171.57563867935283L312.9657228017884,201.36539195643215L314.0089418777943,204.34138486083188L315.0521609538003,206.57293469384086L316.0953800298062,191.4520961941048L317.1385991058122,192.4384084472615L318.1818181818182,213.0683519929916L319.22503725782417,210.25328957534632L320.2682563338301,181.34607499947458L321.3114754098361,177.8686957197968L322.354694485842,172.30073242699729L323.397913561848,156.4977766698724L324.4411326378539,143.04447139008607L325.4843517138599,152.07852170701267L326.5275707898659,118.662063321527L327.57078986587186,151.5603759406547L328.6140089418778,207.23954795294125L329.65722801788377,246.30400742436973L330.7004470938897,183.32220378244884L331.7436661698957,215.88944824907185L332.7868852459016,124.88487001521548L333.8301043219076,215.2075327453554L334.87332339791357,197.96107550020355L335.91654247391955,215.11550287091512L336.9597615499255,170.6401620176755L338.00298062593146,194.28934594107596L339.04619970193744,208.7344305732643L340.08941877794337,201.1588026709907L341.13263785394935,225.48342611029207L342.1758569299553,181.0437580975106L343.21907600596126,212.99288680428677L344.2622950819672,171.27815968005302L345.30551415797316,221.72062388113204L346.34873323397915,163.9920718608169L347.39195230998513,221.57366339749314L348.43517138599105,183.3454697140266L349.47839046199704,221.6078647898939L350.521609538003,199.39939128422745L351.56482861400895,193.8231205942737L352.60804769001487,195.5972642224049L353.65126676602085,189.34499351983985L354.69448584202684,199.90314504356687L355.7377049180328,187.84541974344847L356.78092399403874,210.31709382595713L357.82414307004467,176.32666941563303L358.8673621460507,189.2772327021071L359.91058122205663,217.8165636101223L360.95380029806256,269.15885937800937L361.99701937406854,287.77856378894467L363.0402384500745,264.54441578013115L364.08345752608045,277.80568895101453L365.12667660208643,276.37471600188996L366.16989567809236,320.38919567172775L367.2131147540984,243.5411561407763L368.2563338301043,177.5782388059145L369.29955290611025,147.85524020036092L370.3427719821163,158.94792149204574L371.3859910581222,174.55827320994445L372.42921013412814,176.34600220312564L373.4724292101341,202.71477963559192L374.5156482861401,185.7577809189659L375.5588673621461,196.69837661581155L376.602086438152,179.4553188083757L377.64530551415794,193.8884926351291L378.688524590164,193.65483351038426L379.7317436661699,223.17292613497645L380.77496274217583,168.54425261651892L381.8181818181818,208.01919316668506L382.8614008941878,175.21975228676257L383.9046199701938,217.8439274998758L384.9478390461997,215.571687877987L385.99105812220563,181.7687711329953L387.03427719821167,194.098050609943L388.0774962742176,185.46296595289033L389.1207153502235,104.14453835875247L390.1639344262295,94.81542793148816L391.2071535022355,109.85724866579955L392.2503725782414,88.9422226287561L393.2935916542474,184.7787140864969L394.3368107302533,126.64919717799188L395.38002980625936,284.07679690237336L396.4232488822653,276.43141951608936L397.4664679582712,425.3754220304691L398.50968703427714,245.91710438708543L399.5529061102832,214.40766556620386L400.5961251862891,195.26057754453623L401.6393442622951,190.7738645919564L402.68256333830107,192.27828626370626L403.72578241430705,189.25521347684955L404.769001490313,192.13225668153873L405.8122205663189,189.96552843920034L406.85543964232494,205.14275757306035L407.89865871833086,184.11270296074883L408.9418777943368,205.84072936972422L409.9850968703428,189.55145494621783L411.02831594634876,272.52872890439784L412.0715350223547,271.479677795373L413.11475409836066,286.5891479484476L414.1579731743666,267.6758398707294L415.2011922503726,276.41112322551567L416.24441132637855,306.99487043766555L417.2876304023845,257.70263120310506L418.3308494783904,186.9237703582404L419.37406855439644,131.7673259934287L420.41728763040237,151.1191120577971L421.46050670640835,121.33606695670801L422.5037257824143,136.78403961587708L423.5469448584203,190.23153033939414L424.59016393442624,202.12303251253294L425.63338301043217,170.9925291196883L426.6766020864381,197.48970601747396L427.71982116244413,177.78632637490512L428.76304023845006,204.8094326030175L429.80625931445604,237.77059016836384L430.84947839046197,183.0495529950406L431.89269746646795,257.6523816687228L432.93591654247393,200.94806841100169L433.97913561847986,230.13811445054617L435.0223546944859,224.05955708953007L436.0655737704918,199.659307253139L437.10879284649775,206.54772679541873L438.1520119225037,178.57777571282517L439.1952309985097,108.46893135012823L440.23845007451564,67.55325014167943L441.2816691505216,88.06693517279291L442.32488822652755,82.45374474374631L443.3681073025336,127.56286829451301L444.4113263785395,66.07723355053884L445.45454545454544,215.1377368104931L446.49776453055136,156.63316965703052L447.5409836065574,214.57518322819874L448.58420268256333,179.10625186387972L449.6274217585693,217.92237182188612L450.67064083457524,154.3761649162118L451.7138599105813,177.9228732433113L452.7570789865872,169.56625362635788L453.80029806259313,180.60300026438978L454.84351713859905,191.53696435909296L455.8867362146051,190.351613885553L456.929955290611,204.07186390542068L457.973174366617,187.4883498653135L459.0163934426229,257.139315937737L460.0596125186289,332.14210941258415L461.1028315946349,419.15749896854567L462.1460506706408,327.2143726090635L463.18926974664674,212.71407723678118L464.2324888226528,378.58910469615654L465.2757078986587,132.85938663223476L466.31892697466463,177.23378061215618L467.3621460506707,168.86060441838606L468.4053651266766,109.19872892567406L469.4485842026826,114.42204459445855L470.4918032786885,85.17649328022799L471.53502235469455,106.139902752556L472.5782414307005,114.02402852936541L473.6214605067064,184.4795114554408L474.6646795827123,198.82036504647752L475.70789865871836,210.164545277258L476.7511177347243,225.37539550911575L477.7943368107303,138.06469223492388L478.8375558867362,181.92875258695238L479.8807749627422,197.29934058244513L480.92399403874816,160.70203666340194L481.9672131147541,194.6319001320188L483.01043219076,177.78976937758085L484.05365126676605,248.888325885061L485.096870342772,232.7570911091355L486.1400894187779,178.37266454977538L487.1833084947839,320.60082906796987L488.22652757078987,297.10314332067026L489.26974664679585,216.11007143129547L490.3129657228018,96.55799751343142L491.3561847988077,63.173220743327875L492.39940387481374,59.38177647563816L493.44262295081967,33.92247889283834L494.4858420268256,163.74058513608833L495.5290611028316,291.8179236424065L496.57228017883756,253.25932151608052L497.61549925484354,315.949808811419L498.65871833084947,280.48445215465676L499.7019374068554,333.6606402670169L500.74515648286143,177.12103928738543L501.78837555886736,182.24495663023174L502.8315946348733,164.07957431371983L503.8748137108793,187.55516103250957L504.91803278688525,149.9015308857205L505.96125186289123,199.15928535561275L507.00447093889716,206.62397475027382L508.04769001490314,188.90572368446882L509.0909090909091,191.49833193317667L510.13412816691505,192.74855844025538L511.177347242921,247.83568008457397L512.220566318927,206.55592510357414L513.2637853949329,231.7068447908861L514.3070044709389,235.5267756700209L515.3502235469448,247.33380010196078L516.3934426229508,183.63333458448798L517.4366616989568,128.7708373965135L518.4798807749627,200.62818538860262L519.5230998509687,139.33742922608366L520.5663189269746,234.72360070895365L521.6095380029807,157.3781358417673L522.6527570789866,235.4483552071754L523.6959761549925,169.58077505631212L524.7391952309986,214.58710439665046L525.7824143070045,185.4588973507602L526.8256333830104,203.27419859600948L527.8688524590164,179.3675390358304L528.9120715350224,206.60723600277066L529.9552906110283,213.0223306594241L530.9985096870342,175.9033822721176L532.0417287630402,227.05498526965684L533.0849478390462,184.85244650565033L534.1281669150521,248.80311197125621L535.1713859910581,250.5651235033316L536.2146050670641,263.78102556105955L537.25782414307,256.33592762740113L538.301043219076,248.09483736415612L539.344262295082,226.4956816892561L540.3874813710879,179.59259449737175L541.430700447094,194.98356424573214L542.4739195230999,232.34675369003142L543.5171385991058,216.05147767040404L544.5603576751118,164.46242652527286L545.6035767511178,292.7655981687202L546.6467958271237,249.16509489166643L547.6900149031296,295.03770271116343L548.7332339791357,260.10560117524926L549.7764530551416,263.9328338865523L550.8196721311475,212.3990041798774L551.8628912071534,191.92346026786404L552.9061102831595,191.709148247228L553.9493293591654,176.47119438321982L554.9925484351713,162.19893779971846L556.0357675111774,209.31523437445153L557.0789865871833,196.6786796046718L558.1222056631892,193.79036947875036L559.1654247391953,189.98896627588442L560.2086438152012,192.0794406411075L561.2518628912072,208.16425044503904L562.2950819672132,177.34820031053124L563.3383010432191,189.56595737738277L564.381520119225,204.483076705936L565.424739195231,177.38222407421944L566.467958271237,169.82789719592068L567.5111773472429,204.97700575162327L568.5543964232489,281.0118149049245L569.5976154992549,211.638123006312L570.6408345752608,239.65161072231624L571.6840536512667,189.2658905619453L572.7272727272727,220.0375186535371L573.7704918032787,180.50625748398173L574.8137108792846,177.5832731974045L575.8569299552906,179.16432604916287L576.9001490312966,212.15377182596546L577.9433681073025,170.6590067083107L578.9865871833085,224.69778115792363L580.0298062593145,236.85815647376924L581.0730253353205,155.97111402671493L582.1162444113264,251.95902822827153L583.1594634873323,240.0611624574167L584.2026825633383,212.00297404753405L585.2459016393443,331.61635785482764L586.2891207153502,188.81134031375325L587.3323397913562,227.45079302468943L588.3755588673621,192.72468096366663L589.4187779433681,184.80640100085836L590.461997019374,173.26864642891428L591.50521609538,192.43270175178577L592.5484351713859,183.86609896568456L593.591654247392,207.82467647970503L594.6348733233979,185.8744029171178L595.6780923994039,227.9317816760233L596.7213114754098,210.35746314537317L597.7645305514159,213.86750547960395L598.8077496274218,195.67304423863322L599.8509687034277,192.69404614415384L600.8941877794337,193.78201895000848L601.9374068554397,193.08357980148676L602.9806259314456,195.39596630019358L604.0238450074515,193.42743624912623L605.0670640834576,199.79762949004865L606.1102831594635,198.29596179671793L607.1535022354694,233.2309678812193L608.1967213114754,202.323952296461L609.2399403874814,241.58957575666014L610.2831594634873,233.78146208292065L611.3263785394932,214.22278262311363L612.3695976154992,286.7283426413129L613.4128166915052,246.557992172777L614.4560357675111,280.7385600316541L615.4992548435172,256.99927309689883L616.5424739195231,288.2007548067664L617.5856929955291,260.8306619247377L618.6289120715351,189.12508774862803L619.672131147541,195.90579688093945L620.7153502235469,203.86324500951218L621.758569299553,182.20186074103708L622.8017883755589,192.81706400512584L623.8450074515648,187.76834109395264L624.8882265275707,203.73407692573622L625.9314456035768,184.71714374120643L626.9746646795827,215.18832399442522L628.0178837555886,165.71185884563624L629.0611028315946,219.9491368051432L630.1043219076006,222.784849132519L631.1475409836065,185.74712027700951L632.1907600596124,242.44909747182024L633.2339791356185,196.03977114054646L634.2771982116244,234.34415873457604L635.3204172876304,241.52189650518196L636.3636363636364,195.4292102551564L637.4068554396424,194.16957402609654L638.4500745156483,193.15193472824018L639.4932935916543,101.2251654178591L640.5365126676602,98.40496286657515L641.5797317436662,114.47019702021555L642.6229508196722,119.3339133729728L643.6661698956781,152.74208037786235L644.709388971684,17.547733550690168L645.75260804769,237.99573739703612L646.795827123696,225.15923250221698L647.8390461997019,216.58886814110699L648.8822652757078,203.3799239665605L649.9254843517139,223.00657116035703L650.9687034277198,197.8932734761988L652.0119225037258,186.86104951155784L653.0551415797318,202.97713725909733L654.0983606557377,189.21386760448675L655.1415797317437,192.60069170567107L656.1847988077496,190.12689505629933L657.2280178837556,266.19329696622026L658.2712369597616,203.62707257959724L659.3144560357675,217.7617507719362L660.3576751117735,252.55805406270528L661.4008941877794,244.100601394395L662.4441132637854,286.03184616755266L663.4873323397914,283.701475827392L664.5305514157973,275.9361874709233L665.5737704918032,260.64031638324L666.6169895678092,322.07435479419166L667.6602086438152,268.32553673078286L668.7034277198211,210.75111035148032L669.7466467958271,186.37192292258828L670.7898658718331,171.19217707128405L671.8330849478391,149.99982861419846L672.876304023845,150.46460952218655L673.919523099851,164.5787403656443L674.962742175857,186.5567963022655L676.0059612518629,193.4848251522755L677.0491803278688,186.2007506425621L678.0923994038749,143.33358838089214L679.1356184798808,190.9520862035458L680.1788375558867,193.45209451133715L681.2220566318927,113.46677121803907L682.2652757078987,169.99457912116935L683.3084947839046,127.28006055040947L684.3517138599105,151.68405525909793L685.3949329359165,93.47973499512864L686.4381520119225,163.37411371471393L687.4813710879284,220.12018956461174L688.5245901639344,222.27717284902448L689.5678092399404,109.33861728220575L690.6110283159463,105.3157616916381L691.6542473919524,136.99545749444655L692.6974664679583,99.95031704118037L693.7406855439642,146.812957011673L694.7839046199703,177.70277448395137L695.8271236959762,313.1188367330462L696.8703427719821,227.2074416109797L697.913561847988,280.4586094814049L698.9567809239941,227.54766950199942L700,222.82929459036677\" style=\"fill: none; stroke: blue; stroke-width: 2px; stroke-opacity: 0.5;\"></path></g><g id=\"g391\"><path d=\"M0,194.00337553487964L1.0432190760059612,192.11108679271095L2.0864381520119224,206.46534898563058L3.1296572280178836,192.00475737757773L4.172876304023845,204.00151718265982L5.216095380029806,188.53449395553758L6.259314456035767,220.96229010609503L7.302533532041729,169.71075203748597L8.34575260804769,237.21022278719764L9.38897168405365,179.28207826185235L10.432190760059612,228.52009548898386L11.475409836065575,223.81890440894003L12.518628912071534,203.03938809132245L13.561847988077496,219.40467890500537L14.605067064083459,228.35184858911285L15.64828614008942,236.8186171819265L16.69150521609538,213.00412772674483L17.73472429210134,229.80648511521449L18.7779433681073,213.83806498735012L19.821162444113263,212.7158584978523L20.864381520119224,201.792421861499L21.90760059612519,200.8044899563526L22.95081967213115,181.13224818349667L23.99403874813711,199.3307640487638L25.03725782414307,142.9198167760964L26.08047690014903,139.0320560915045L27.12369597615499,150.84425119610802L28.166915052160952,207.96423115730923L29.210134128166917,220.09424603072821L30.25335320417288,177.31800149573527L31.29657228017884,226.32144818712013L32.3397913561848,169.48584321399005L33.38301043219076,218.746144109342L34.42622950819672,169.00649804541757L35.46944858420268,166.4204980006508L36.51266766020864,174.1653177626264L37.5558867362146,210.64010144578648L38.59910581222057,204.27447383212578L39.642324888226526,199.16859737377087L40.68554396423249,220.67189437494318L41.72876304023845,192.85032176892375L42.77198211624441,250.78222441996414L43.81520119225038,175.42675938665303L44.85842026825634,253.549045724151L45.9016393442623,188.4680465217961L46.94485842026826,223.49144114003155L47.98807749627422,193.47162112319631L49.031296572280176,204.95468689050836L50.07451564828614,184.95262977246074L51.1177347242921,190.9736324709004L52.16095380029806,194.48470552721793L53.20417287630402,196.09257455646147L54.24739195230998,191.12635184257957L55.29061102831594,194.3754057686154L56.333830104321905,233.6753795872027L57.377049180327866,188.6818748441027L58.420268256333834,244.78388598719798L59.463487332339795,182.7768450022978L60.50670640834576,209.83012949352133L61.54992548435172,206.1606389771279L62.59314456035768,188.96536297130697L63.63636363636364,206.87301710886635L64.6795827123696,184.90075901222093L65.72280178837556,213.67790934723172L66.76602086438152,222.32531149126203L67.80923994038749,214.44403587861063L68.85245901639344,221.76766051081975L69.89567809239941,208.23680442731757L70.93889716840536,202.9642612537816L71.98211624441133,235.74806727781478L73.02533532041728,222.02125526736006L74.06855439642324,194.61676174051058L75.1117734724292,223.2718112553412L76.15499254843517,234.93993103255795L77.19821162444114,210.57408346771547L78.2414307004471,264.3884514618512L79.28464977645305,223.8853702518201L80.32786885245902,188.72764456274612L81.37108792846497,280.6237767444372L82.41430700447094,204.74649553563384L83.4575260804769,262.17001786180526L84.50074515648286,251.1855437400598L85.54396423248882,258.94570216429986L86.58718330849479,260.8652093240154L87.63040238450075,269.13944754860233L88.67362146050671,252.62962519137545L89.71684053651268,207.42370013861364L90.76005961251863,205.99865965009712L91.8032786885246,184.71215055263656L92.84649776453055,221.43970252698773L93.88971684053652,180.1634017180042L94.93293591654248,219.48208354586535L95.97615499254844,146.64792394869409L97.0193740685544,182.74420517110258L98.06259314456035,161.63792187182827L99.10581222056632,186.3858117578741L100.14903129657228,192.96784913964643L101.19225037257824,197.30332727109317L102.2354694485842,189.30368686128975L103.27868852459017,193.15774174373684L104.32190760059612,195.09997684704297L105.36512667660209,192.50885398586232L106.40834575260804,213.61315841970037L107.45156482861401,175.6489012798366L108.49478390461996,195.14340346161327L109.53800298062592,177.7048676028491L110.58122205663189,205.78914848573376L111.62444113263784,200.9796574524321L112.66766020864381,202.65306056359273L113.71087928464976,207.02641064562974L114.75409836065573,191.24099840854726L115.79731743666169,196.98762507181917L116.84053651266767,197.06341332176862L117.88375558867364,207.17801621104493L118.92697466467959,208.7259815242227L119.97019374068554,211.36321002173605L121.01341281669151,191.8698248740501L122.05663189269747,220.20452677836838L123.09985096870344,216.2153684355905L124.14307004470939,191.76928118066485L125.18628912071536,186.29391359287064L126.22950819672131,205.81808266255445L127.27272727272728,188.50347377736244L128.31594634873323,226.4607747610279L129.3591654247392,205.17655349060814L130.40238450074517,168.4371015459725L131.44560357675113,225.59738820210842L132.48882265275708,205.95892233879584L133.53204172876303,204.49149855946627L134.575260804769,203.38918942459375L135.61847988077497,200.59848771332088L136.66169895678092,191.99916368870478L137.70491803278688,198.01394388215755L138.74813710879283,177.53273135615146L139.79135618479881,168.59008741305064L140.83457526080477,143.05789594557433L141.87779433681072,192.56447098706178L142.92101341281668,156.8614779973027L143.96423248882266,156.1657357388209L145.0074515648286,168.42208195373536L146.05067064083457,138.56676168172964L147.09388971684052,201.46902340038307L148.13710879284648,156.65389829187114L149.18032786885246,177.90580106371007L150.2235469448584,175.38373920077288L151.2667660208644,193.26935004951414L152.30998509687035,187.49282179654233L153.3532041728763,189.53501748401024L154.3964232488823,175.03997470502765L155.43964232488824,203.10526746717053L156.4828614008942,198.712303611746L157.52608047690015,195.88194063747684L158.5692995529061,190.57376857729912L159.61251862891208,200.79024287473072L160.65573770491804,201.8429865314989L161.698956780924,182.62756842371067L162.74217585692995,209.8462169478601L163.78539493293593,213.29681481003513L164.82861400894188,177.68183378372987L165.87183308494784,196.05487135245227L166.9150521609538,182.32832240516245L167.95827123695977,153.37373504568552L169.00149031296573,136.14238793351495L170.04470938897168,161.19262971358603L171.08792846497764,159.38618863937904L172.1311475409836,175.36662134395618L173.17436661698957,157.5133688591505L174.21758569299553,186.70315350665564L175.2608047690015,174.5066354249101L176.30402384500744,175.94095921848105L177.34724292101342,155.8528769729022L178.39046199701937,191.669524565846L179.43368107302535,197.72096206359257L180.47690014903128,153.22741122118447L181.52011922503726,176.05858498378728L182.56333830104322,138.37984477500265L183.6065573770492,153.63378501702385L184.64977645305513,134.8664726787963L185.6929955290611,162.03991104903304L186.73621460506706,174.95570319317204L187.77943368107304,99.62601908933152L188.82265275707897,152.06614767034023L189.86587183308495,158.87019619724737L190.9090909090909,118.33828502428366L191.9523099850969,163.87331784505056L192.99552906110281,96.45929475362561L194.0387481371088,109.73697236956622L195.08196721311475,158.87294724736154L196.1251862891207,150.9072525090013L197.16840536512666,196.1551397345909L198.21162444113264,176.42957149000864L199.25484351713857,223.8920105165104L200.29806259314455,161.62795550852024L201.34128166915053,237.6462367185589L202.3845007451565,180.75686267839131L203.42771982116247,199.04989099967824L204.4709388971684,170.39500137291515L205.51415797317438,205.76338010474598L206.55737704918033,201.0975053872421L207.6005961251863,201.95124617769798L208.64381520119224,201.3261071347511L209.68703427719822,204.30895815461614L210.73025335320418,189.85824733866855L211.77347242921016,176.92900445038003L212.81669150521608,195.0034220362824L213.85991058122207,166.27230151116203L214.90312965722802,173.09991931659226L215.94634873323398,147.7401803386739L216.98956780923993,166.200715651962L218.0327868852459,155.49453031905267L219.07600596125184,176.13364048225043L220.11922503725782,167.1883810050943L221.16244411326377,190.42368092695972L222.20566318926976,195.23434592240886L223.24888226527568,199.56602107518756L224.29210134128166,184.82231528164985L225.33532041728762,199.07729025529216L226.3785394932936,220.43477601240087L227.42175856929953,203.49590044985783L228.4649776453055,219.68892713859518L229.50819672131146,231.21159327104905L230.55141579731745,196.8250645905379L231.59463487332337,205.5106473911022L232.63785394932935,191.63634312825332L233.68107302533534,201.0228088505283L234.7242921013413,195.8965418117609L235.76751117734727,202.39656701860477L236.8107302533532,205.60614472918738L237.85394932935918,178.3026289522646L238.89716840536514,196.49030182739807L239.9403874813711,201.96146079243306L240.98360655737704,191.9837074817974L242.02682563338303,177.81025407185345L243.07004470938895,190.37404969095616L244.11326378539493,148.99748287634714L245.1564828614009,220.7357925831832L246.19970193740687,187.1724285534625L247.2429210134128,221.80015182556292L248.28614008941878,191.83794966623023L249.32935916542473,195.34284534513998L250.37257824143072,197.32639436632775L251.41579731743664,196.37544108265467L252.45901639344262,193.74312728060562L253.50223546944858,200.7639808399933L254.54545454545456,198.93694815008254L255.5886736214605,197.0397598193219L256.63189269746647,223.0889417290077L257.6751117734724,152.32433190464752L258.7183308494784,222.4988288267569L259.76154992548436,175.85101818061122L260.80476900149034,162.6441586974825L261.84798807749627,163.53224295340897L262.89120715350225,183.52308308270426L263.9344262295082,194.99493456162452L264.97764530551416,168.95740304596592L266.0208643815201,181.7806712289598L267.06408345752607,165.61330599183765L268.10730253353205,172.06882125593876L269.150521609538,171.7902940186073L270.19374068554396,176.02212414975213L271.23695976154994,189.0148331420009L272.2801788375559,187.05564954477651L273.32339791356185,195.84354789610316L274.36661698956783,191.82428965228672L275.40983606557376,169.29187205297882L276.45305514157974,145.27414482016718L277.49627421758566,156.9599589504686L278.53949329359165,180.98907382149034L279.58271236959763,183.42440077782047L280.6259314456036,155.66086940394553L281.66915052160954,203.18005825567843L282.7123695976155,151.2884637851979L283.75558867362145,203.4508109389205L284.79880774962743,213.66626434963538L285.84202682563335,189.5751390096348L286.88524590163934,184.20992951860634L287.9284649776453,188.55706287809116L288.97168405365124,186.87272343223128L290.0149031296572,174.7907026758307L291.0581222056632,190.66986402564046L292.10134128166914,166.32303781724147L293.1445603576751,179.8926108875993L294.18777943368104,142.86355061208855L295.230998509687,190.91964436923132L296.27421758569295,169.6888513940395L297.31743666169893,193.0748606448144L298.3606557377049,184.41696922328393L299.4038748137109,192.89441591339624L300.4470938897168,189.3275919450235L301.4903129657228,191.67778166316083L302.5335320417288,187.67374039148103L303.5767511177347,193.8346388839738L304.6199701937407,191.85752612419543L305.6631892697466,186.7026135050122L306.7064083457526,202.65234929581572L307.7496274217586,170.12390404333166L308.7928464977646,225.93527758977865L309.8360655737705,118.35794339736572L310.8792846497765,162.9232104569034L311.9225037257824,166.3343158756095L312.9657228017884,217.12607017485496L314.0089418777943,190.7805623411137L315.0521609538003,163.15724364007633L316.0953800298062,179.3522799556234L317.1385991058122,152.2208501035622L318.1818181818182,169.7418795342797L319.22503725782417,166.09810855535846L320.2682563338301,170.36792703349346L321.3114754098361,168.86635484329605L322.354694485842,132.18430618475276L323.397913561848,121.64505185627115L324.4411326378539,109.70003965436212L325.4843517138599,106.09290742963145L326.5275707898659,94.90575516916732L327.57078986587186,120.56747962993666L328.6140089418778,175.6901625596861L329.65722801788377,223.1524458502204L330.7004470938897,160.98684819141795L331.7436661698957,227.20296029407334L332.7868852459016,152.50207812094624L333.8301043219076,206.44078966933645L334.87332339791357,212.08564233228836L335.91654247391955,218.58834675123722L336.9597615499255,179.43414683251157L338.00298062593146,189.65398141934972L339.04619970193744,228.36914249560533L340.08941877794337,209.96747984566048L341.13263785394935,234.36755384661095L342.1758569299553,220.78260983995628L343.21907600596126,244.08895986638237L344.2622950819672,134.9370481509701L345.30551415797316,225.06877506564788L346.34873323397915,182.72808551552663L347.39195230998513,196.607435652415L348.43517138599105,180.36947670874062L349.47839046199704,195.36257710203745L350.521609538003,204.50231603388207L351.56482861400895,197.6290242290164L352.60804769001487,208.32177339790545L353.65126676602085,196.026898037501L354.69448584202684,194.93452737975784L355.7377049180328,186.90584233196196L356.78092399403874,185.40615610275162L357.82414307004467,174.27368866347376L358.8673621460507,180.01664536874304L359.91058122205663,197.99120073988104L360.95380029806256,243.46712697748288L361.99701937406854,252.8946849231768L363.0402384500745,276.70469278657015L364.08345752608045,279.75503535725176L365.12667660208643,262.66081381176895L366.16989567809236,286.1219729103003L367.2131147540984,255.51012457058704L368.2563338301043,189.1710831482167L369.29955290611025,185.48175649463508L370.3427719821163,171.06930025219424L371.3859910581222,181.22924042961728L372.42921013412814,184.3601054895089L373.4724292101341,192.38256652516077L374.5156482861401,176.2964789022775L375.5588673621461,181.71434293256036L376.602086438152,204.92956319557769L377.64530551415794,179.93465908692065L378.688524590164,201.61516997427785L379.7317436661699,233.18135404913286L380.77496274217583,175.28904051779193L381.8181818181818,210.3541760035708L382.8614008941878,188.07156458033543L383.9046199701938,182.2264856908892L384.9478390461997,190.0664616755116L385.99105812220563,214.82554683838543L387.03427719821167,214.45379837527253L388.0774962742176,173.76634496965403L389.1207153502235,77.45181837219286L390.1639344262295,68.97985213454632L391.2071535022355,85.4133317304258L392.2503725782414,36.586974111860115L393.2935916542474,123.66316763312335L394.3368107302533,54.823305934495295L395.38002980625936,200.8112707674172L396.4232488822653,141.72825705357576L397.4664679582712,204.52355598673861L398.50968703427714,167.4968731978206L399.5529061102832,194.54618178003392L400.5961251862891,178.67117383025578L401.6393442622951,191.04282181570613L402.68256333830107,183.70633114470638L403.72578241430705,181.05293658091716L404.769001490313,189.74328505175643L405.8122205663189,185.42498108790468L406.85543964232494,205.78802086071514L407.89865871833086,150.78363656372204L408.9418777943368,212.30931895317045L409.9850968703428,180.59961478469594L411.02831594634876,242.2816421065445L412.0715350223547,252.6814490768044L413.11475409836066,280.17352002679405L414.1579731743666,288.11923855108887L415.2011922503726,276.5073326711079L416.24441132637855,292.81100597766516L417.2876304023845,278.8892890280781L418.3308494783904,209.24442092095737L419.37406855439644,182.37440442073097L420.41728763040237,198.5472293659831L421.46050670640835,180.20004791741485L422.5037257824143,190.29543116848424L423.5469448584203,175.43368139142217L424.59016393442624,185.72446342941186L425.63338301043217,148.22341427038123L426.6766020864381,172.652572962975L427.71982116244413,133.16580913728518L428.76304023845006,224.30002589885692L429.80625931445604,215.57031519150752L430.84947839046197,154.89986901902284L431.89269746646795,217.36311850359866L432.93591654247393,183.31399417445846L433.97913561847986,206.25363715974325L435.0223546944859,207.8737568755203L436.0655737704918,194.57085750458566L437.10879284649775,183.19493276819352L438.1520119225037,169.44488724262908L439.1952309985097,96.437228654016L440.23845007451564,99.70204583799142L441.2816691505216,115.82198638719728L442.32488822652755,84.53728354562622L443.3681073025336,100.03434713254376L444.4113263785395,26.59975290693825L445.45454545454544,173.828302268038L446.49776453055136,88.51925633046483L447.5409836065574,148.76682442413232L448.58420268256333,111.74775353042554L449.6274217585693,150.30087414911463L450.67064083457524,128.7482905617136L451.7138599105813,165.58365763147316L452.7570789865872,148.89089644237777L453.80029806259313,167.1039925116565L454.84351713859905,171.68854527921712L455.8867362146051,181.98667471016458L456.929955290611,230.54807333706736L457.973174366617,199.26068002796518L459.0163934426229,299.55231871023665L460.0596125186289,301.82160396705956L461.1028315946349,394.70433120153996L462.1460506706408,380.78774452820005L463.18926974664674,355.4272713206566L464.2324888226528,330.95410103162885L465.2757078986587,275.14041810994905L466.31892697466463,249.98787518205447L467.3621460506707,225.4335721494014L468.4053651266766,139.33943358923392L469.4485842026826,150.61305185993245L470.4918032786885,119.92520723518663L471.53502235469455,129.35362303650118L472.5782414307005,134.6299997440318L473.6214605067064,160.83383853861943L474.6646795827123,167.13632886838423L475.70789865871836,167.56268460460075L476.7511177347243,181.04854395292855L477.7943368107303,140.82000949220634L478.8375558867362,178.92007071588628L479.8807749627422,231.83512460140847L480.92399403874816,155.89087073664314L481.9672131147541,181.8062935207438L483.01043219076,133.6938773475361L484.05365126676605,240.11495798680718L485.096870342772,234.32230462024614L486.1400894187779,282.54585242014616L487.1833084947839,291.96305083747086L488.22652757078987,271.1965577905412L489.26974664679585,160.4231540518826L490.3129657228018,181.4775594922204L491.3561847988077,155.071142964378L492.39940387481374,108.79938751724751L493.44262295081967,132.20101265202499L494.4858420268256,141.267797870999L495.5290611028316,277.4116868764344L496.57228017883756,251.25884320828683L497.61549925484354,262.3195077471753L498.65871833084947,228.96000386377307L499.7019374068554,266.20682964607016L500.74515648286143,179.9208644659378L501.78837555886736,190.37568012665344L502.8315946348733,164.3434875232752L503.8748137108793,187.0217528948636L504.91803278688525,164.26708156226044L505.96125186289123,195.99404271119687L507.00447093889716,202.65389579058964L508.04769001490314,195.3004762182222L509.0909090909091,201.31402690436676L510.13412816691505,196.54856391062148L511.177347242921,223.43993747424454L512.220566318927,223.3229222371647L513.2637853949329,248.91334734570745L514.3070044709389,233.73985626948516L515.3502235469448,231.50491969545L516.3934426229508,212.34742658272523L517.4366616989568,220.5199158455742L518.4798807749627,206.3540417642517L519.5230998509687,232.16302031751064L520.5663189269746,223.34748375998993L521.6095380029807,218.97116529858553L522.6527570789866,223.5950856554952L523.6959761549925,194.4459949866763L524.7391952309986,217.43173902696924L525.7824143070045,206.13702139907454L526.8256333830104,203.74553629240143L527.8688524590164,172.0140856494101L528.9120715350224,201.3148105762856L529.9552906110283,202.88271130251712L530.9985096870342,169.00449314942006L532.0417287630402,199.61758940714085L533.0849478390462,177.85342061352247L534.1281669150521,296.6353297250439L535.1713859910581,250.32451756410325L536.2146050670641,290.5775158647107L537.25782414307,295.48155131132893L538.301043219076,223.1205375073601L539.344262295082,265.0065644319327L540.3874813710879,273.8768608557639L541.430700447094,259.01530744422155L542.4739195230999,296.7582831561591L543.5171385991058,264.86127132235356L544.5603576751118,235.66205425452176L545.6035767511178,296.03095599101823L546.6467958271237,311.6862702972518L547.6900149031296,329.9890634581561L548.7332339791357,304.06293919031157L549.7764530551416,329.5905147305232L550.8196721311475,281.15343751850014L551.8628912071534,318.142837304716L552.9061102831595,253.8232312852171L553.9493293591654,273.45314267576754L554.9925484351713,187.63801184580484L556.0357675111774,235.90892814185108L557.0789865871833,201.05812099244346L558.1222056631892,201.1977148217353L559.1654247391953,200.40981538966074L560.2086438152012,198.5636096094118L561.2518628912072,219.75944182535002L562.2950819672132,199.92873709945255L563.3383010432191,206.21570021154133L564.381520119225,189.0666982849103L565.424739195231,214.0017777795075L566.467958271237,191.58621385194294L567.5111773472429,208.0320472058847L568.5543964232489,216.94194625281798L569.5976154992549,241.7947359280193L570.6408345752608,233.20889536271642L571.6840536512667,223.44074738797988L572.7272727272727,217.9046814902407L573.7704918032787,192.85311140499797L574.8137108792846,198.86198807679372L575.8569299552906,217.13693594857006L576.9001490312966,219.0905238970825L577.9433681073025,195.92626383496042L578.9865871833085,218.83369499311658L580.0298062593145,227.1148249280915L581.0730253353205,211.63015423538548L582.1162444113264,237.55708100205902L583.1594634873323,227.6662331444906L584.2026825633383,220.13339397940018L585.2459016393443,249.8169699858198L586.2891207153502,228.94117466501987L587.3323397913562,232.77385817266523L588.3755588673621,212.1426070438797L589.4187779433681,206.7003480892212L590.461997019374,195.80650170963912L591.50521609538,206.52932195392978L592.5484351713859,155.75693862217997L593.591654247392,213.35938735784103L594.6348733233979,161.51513743575242L595.6780923994039,199.75481967491024L596.7213114754098,173.72844059801213L597.7645305514159,199.08817935295L598.8077496274218,198.39880814733507L599.8509687034277,196.92136211527148L600.8941877794337,194.28569592867223L601.9374068554397,191.17956577692945L602.9806259314456,194.13648597703767L604.0238450074515,190.57274469039635L605.0670640834576,198.92686637318667L606.1102831594635,196.1060874350435L607.1535022354694,218.63857913761373L608.1967213114754,179.7668601359103L609.2399403874814,270.331472056875L610.2831594634873,242.30847763652042L611.3263785394932,318.1191959595674L612.3695976154992,317.1515726620051L613.4128166915052,300.9696212504474L614.4560357675111,303.15680160371375L615.4992548435172,269.28058875310603L616.5424739195231,301.276697369281L617.5856929955291,259.40012751162647L618.6289120715351,194.17050308390867L619.672131147541,195.10840797375707L620.7153502235469,205.22064865567833L621.758569299553,178.12082121119556L622.8017883755589,186.79777826541945L623.8450074515648,181.40516633630045L624.8882265275707,173.70238873336967L625.9314456035768,178.70202030017606L626.9746646795827,188.6595768556065L628.0178837555886,160.28593078347785L629.0611028315946,184.50586886329975L630.1043219076006,228.245877593327L631.1475409836065,188.22975238739966L632.1907600596124,238.99613041899818L633.2339791356185,185.7846545266075L634.2771982116244,202.2679670083472L635.3204172876304,215.93056046740264L636.3636363636364,210.71860693193352L637.4068554396424,211.6709247190026L638.4500745156483,212.1371370227433L639.4932935916543,102.3443713792758L640.5365126676602,123.728661580704L641.5797317436662,131.70343461568746L642.6229508196722,111.32565175696197L643.6661698956781,164.43767128076894L644.709388971684,-6.124284849812852L645.75260804769,212.21202883762086L646.795827123696,178.92409250326887L647.8390461997019,218.59355596115222L648.8822652757078,182.7072327601686L649.9254843517139,199.08423933289302L650.9687034277198,191.00487396695004L652.0119225037258,190.47258820093745L653.0551415797318,190.86151075255432L654.0983606557377,186.91057951975645L655.1415797317437,192.88819632092637L656.1847988077496,192.4673757377182L657.2280178837556,205.86679370688037L658.2712369597616,192.7884789986462L659.3144560357675,242.43363125045664L660.3576751117735,251.24662838513763L661.4008941877794,282.48938044438364L662.4441132637854,298.16945836352517L663.4873323397914,309.0289390996104L664.5305514157973,293.1322541798762L665.5737704918032,267.8017776918505L666.6169895678092,311.14427056179284L667.6602086438152,257.66343269310215L668.7034277198211,203.5375178613205L669.7466467958271,194.0774476081987L670.7898658718331,169.47885087547394L671.8330849478391,176.22182828258548L672.876304023845,180.9306825603573L673.919523099851,178.79869359312832L674.962742175857,216.19848697234772L676.0059612518629,203.76616151676626L677.0491803278688,205.16657769406098L678.0923994038749,147.60354868573404L679.1356184798808,220.08055133950143L680.1788375558867,199.4702605985376L681.2220566318927,127.39515260376209L682.2652757078987,203.42205870641874L683.3084947839046,152.436523707998L684.3517138599105,134.2484844013219L685.3949329359165,79.15313782006359L686.4381520119225,142.23589560395902L687.4813710879284,185.73501171383802L688.5245901639344,201.766472657643L689.5678092399404,86.89161401107162L690.6110283159463,85.21100662141907L691.6542473919524,102.08800960576718L692.6974664679583,47.8746117716438L693.7406855439642,109.68445690749746L694.7839046199703,117.91130996051254L695.8271236959762,250.12879534091186L696.8703427719821,180.6436149692488L697.913561847988,228.79921402796433L698.9567809239941,193.19412215042388L700,210.78554708244903\" style=\"fill: none; stroke: red; stroke-width: 2px; stroke-opacity: 0.5;\"></path></g><g id=\"g392\"><path d=\"M0,192.28127712673611L701.043219076006,192.28127712673611\" style=\"fill: none; stroke: black; stroke-width: 2px; stroke-opacity: 1;\"></path></g><g id=\"g393\"><g transform=\"translate(0,432.63287353515625)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g394\" style=\"pointer-events: none;\"></g><g id=\"g395\" style=\"pointer-events: none;\"><line x1=\"88.13040238450075\" y1=\"0\" x2=\"88.13040238450075\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"192.4523099850969\" y1=\"0\" x2=\"192.4523099850969\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"296.77421758569295\" y1=\"0\" x2=\"296.77421758569295\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"401.0961251862891\" y1=\"0\" x2=\"401.0961251862891\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"505.41803278688525\" y1=\"0\" x2=\"505.41803278688525\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"609.7399403874814\" y1=\"0\" x2=\"609.7399403874814\" y2=\"6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g396\" style=\"pointer-events: none;\"></g><g id=\"g397\"><text x=\"88.13040238450075\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">12,900</text><text x=\"192.4523099850969\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,000</text><text x=\"296.77421758569295\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,100</text><text x=\"401.0961251862891\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,200</text><text x=\"505.41803278688525\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,300</text><text x=\"609.7399403874814\" y=\"9\" dy=\".9em\" text-anchor=\"middle\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">13,400</text></g><g id=\"g398\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M0,6V0H700V6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g399\"></g></g></g><g id=\"g400\"><g transform=\"translate(0,0)\"><rect class=\"background\" width=\"0\" height=\"0\" style=\"pointer-events: none; fill: none;\"></rect><g id=\"g401\" style=\"pointer-events: none;\"></g><g id=\"g402\" style=\"pointer-events: none;\"><line x1=\"-6\" y1=\"433.13287353515625\" x2=\"0\" y2=\"433.13287353515625\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"385.06255425347223\" x2=\"0\" y2=\"385.06255425347223\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"336.9922349717882\" x2=\"0\" y2=\"336.9922349717882\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"288.92191569010413\" x2=\"0\" y2=\"288.92191569010413\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"240.85159640842014\" x2=\"0\" y2=\"240.85159640842014\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"192.78127712673611\" x2=\"0\" y2=\"192.78127712673611\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"144.71095784505206\" x2=\"0\" y2=\"144.71095784505206\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"96.64063856336804\" x2=\"0\" y2=\"96.64063856336804\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"48.57031928168402\" x2=\"0\" y2=\"48.57031928168402\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line><line x1=\"-6\" y1=\"0.5\" x2=\"0\" y2=\"0.5\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px; opacity: 1;\"></line></g><g id=\"g403\" style=\"pointer-events: none;\"></g><g id=\"g404\"><text x=\"-9\" y=\"433.13287353515625\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">-10,000</text><text x=\"-9\" y=\"385.06255425347223\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">-8,000</text><text x=\"-9\" y=\"336.9922349717882\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">-6,000</text><text x=\"-9\" y=\"288.92191569010413\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">-4,000</text><text x=\"-9\" y=\"240.85159640842014\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">-2,000</text><text x=\"-9\" y=\"192.78127712673611\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">0</text><text x=\"-9\" y=\"144.71095784505206\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">2,000</text><text x=\"-9\" y=\"96.64063856336804\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">4,000</text><text x=\"-9\" y=\"48.57031928168402\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">6,000</text><text x=\"-9\" y=\"0.5\" dy=\".35em\" text-anchor=\"end\" style=\"font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: sans-serif; fill: rgb(0, 0, 0); opacity: 1;\">8,000</text></g><g id=\"g405\" style=\"pointer-events: none;\"><path transform=\"translate(0.5,0.5)\" d=\"M-6,0H0V432.63287353515625H-6\" style=\"fill: none; stroke: rgb(0, 0, 0); stroke-width: 1px;\"></path></g><g id=\"g406\"></g></g></g></g></g></g></svg>"}
;; <=
;; @@
;; @@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.