Do not announce robot account token before account ID is available
[chromium-blink-merge.git] / chrome / test / data / third_party / kraken / tests / kraken-1.1 / audio-beat-detection-data.js
bloba5a5bddb462caa8e471821499ebf8ac25f257dd9
1 var console = undefined;
2 // Audio sample data.
3 var channels          = 2,
4     rate              = 44100,
5     frameBufferLength = 2048,
6     getFramebuffer    = (function(f) {
7       var frames  = f,
8           current = 0,
9           max     = frames.length - 1;
11       return function() {
12         if (current == max) {
13           current = 0;
14         }
15         return frames[current++];
16       };
17     })([
18 new Array(-9.063918018914485e-12,-3.261597155551632e-12,-7.691810383070319e-11,-4.440857404031107e-12,-1.680772881984538e-10,6.000556301843929e-11,-1.9150961372282893e-10,2.4246665786265e-10,-4.565171851655947e-11,5.450795370620654e-10,3.362514988669574e-10,9.004306744664348e-10,9.466241124300723e-10,1.175186170598863e-9,1.6831636084901902e-9,1.1990984871701471e-9,2.3562511941577213e-9,8.144737662085788e-10,2.725613068577104e-9,-6.554523590551753e-11,2.5597279851297117e-9,-1.405781158148045e-9,1.7045438394092116e-9,-3.0212734536405605e-9,1.442163333198465e-10,-4.585516411026447e-9,-1.9632779846290305e-9,-5.679597681051973e-9,-4.288398525176262e-9,-5.877284880995148e-9,-6.374909933271056e-9,-4.851113288850684e-9,-7.722416484057248e-9,-2.47689069254875e-9,-7.892031916867381e-9,1.0892343693669204e-9,-6.61385790579061e-9,5.384448886758264e-9,-3.872107523505974e-9,9.678744916641335e-9,5.3583804060508555e-11,1.3082328997882087e-8,4.604661096863083e-9,1.4708005480201791e-8,9.020721947194943e-9,1.3861386705116274e-8,1.2467070042987416e-8,1.0221797630549645e-8,1.4191283703723911e-8,3.973642304089253e-9,1.3679061439120233e-8,-4.147063581427801e-9,1.0777899461800189e-8,-1.2912646063512057e-8,5.7606563963474855e-9,-2.0772752407083317e-8,-6.882053815715494e-10,-2.6112324746918603e-8,-7.566866244701487e-9,-2.7557987891668745e-8,-1.3718089775238695e-8,-2.427747425315374e-8,-1.8031725446121527e-8,-1.6211833653301255e-8,-1.965133300529942e-8,-4.18648893329987e-9,-1.8145057012475263e-8,1.0134575845199834e-8,-1.3606820559175503e-8,2.4460184988583933e-8,-6.6646101970491145e-9,3.6226321498133984e-8,1.6094849897285712e-9,4.304074607830444e-8,9.874586481828374e-9,4.314259527404829e-8,1.6751737774711728e-8,3.579163276867803e-8,2.1068517597200298e-8,2.1507027270217804e-8,2.2072077499046827e-8,2.0971653302837012e-9,1.9569721843026855e-8,-1.95445934991767e-8,1.3969719603323938e-8,-3.986041718917477e-8,6.212331538080207e-9,-5.5206413662745035e-8,-2.396835618867499e-9,-6.249566553151453e-8,-1.0421006280125766e-8,-5.979339334771794e-8,-1.6550259829273273e-8,-4.6752756333034995e-8,-1.9834619280345578e-8,-2.479977112557208e-8,-1.9848005905487298e-8,2.9843314486299732e-9,-1.6751785736346392e-8,3.2283470119409685e-8,-1.124725823586914e-8,5.8215224640889573e-8,-4.4262269405237475e-9,7.614446673187558e-8,2.4491135786064433e-9,8.2506318221931e-8,8.19313505928676e-9,7.549270009121756e-8,1.1920842091228678e-8,5.54726611312617e-8,1.3204600968208524e-8,2.5057047992049775e-8,1.2132561622024696e-8,-1.1224615015237305e-8,9.258342537066255e-9,-4.759798244435842e-8,5.454737994625702e-9,-7.796932521841882e-8,1.702851637475078e-9,-9.695299496570442e-8,-1.136488791964041e-9,-1.0082637658115345e-7,-2.519120245736417e-9,-8.824257946571379e-8,-2.3383373015661846e-9,-6.056658463649e-8,-9.41838385060123e-10,-2.176004265663778e-8,9.601706096873386e-10,2.218358652328334e-8,2.4775965723478066e-9,6.417361220201201e-8,2.774252605419747e-9,9.717964388755718e-8,1.3009872068536765e-9,1.1542026356892165e-7,-2.0265045197476184e-9,1.153803879105908e-7,-6.7495498079495064e-9,9.647719423355738e-8,-1.1913705577626388e-8,6.124944462726489e-8,-1.623966028319046e-8,1.502435864608742e-8,-1.8389696876397466e-8,-3.4896281420060404e-8,-1.7278706465617688e-8,-8.040503729489501e-8,-1.2363916113145024e-8,-1.1392285870215346e-7,-3.8492862231009894e-9,-1.2967566931365582e-7,7.248555089489628e-9,-1.2469702426187723e-7,1.920039238711979e-8,-9.9380230267343e-8,2.98255180553042e-8,-5.747872222627848e-8,3.68760453284267e-8,-5.544654957390094e-9,3.8477701025385613e-8,4.810972953350756e-8,3.3544857558354124e-8,9.4760721935927e-8,2.2083437301034792e-8,1.2670979288031958e-7,5.314396478439676e-9,1.3856883640528395e-7,-1.442367381088161e-8,1.2817720573821134e-7,-3.3992773040836255e-8,9.6993083786856e-8,-4.995281699393672e-8,4.988867274846598e-8,-5.91591415854964e-8,-5.620970799924407e-9,-5.9357120107961236e-8,-6.059254786805468e-8,-4.9664652834735534e-8,-1.0611310585773026e-7,-3.084448252366201e-8,-1.3476119420374744e-7,-5.303653960453403e-9,-1.4182997176703793e-7,2.3200103171916453e-8,-1.26107053688429e-7,5.0111530924823455e-8,-9.008256540710136e-8,7.080907948875392e-8,-3.954905736236469e-8,8.139625862213506e-8,1.7340529012699335e-8,7.941753921159034e-8,7.14021481940108e-8,6.436970778622708e-8,1.1391774989988335e-7,3.790681546433916e-8,1.3805393450638803e-7,3.6889740151480055e-9,1.399694014025954e-7,-3.312028695745539e-8,1.1943076572151767e-7,-6.66380657321497e-8,7.98368589016718e-8,-9.120827826336608e-8,2.7651497092051613e-8,-1.023566014168864e-7,-2.8660446460548883e-8,-9.759249763874323e-8,-8.001645568356253e-8,-7.691699011047604e-8,-1.1819189182915579e-7,-4.293638866670335e-8,-1.3714550561871874e-7,-5.487733045761445e-10,-1.3398140197296016e-7,4.376378370807288e-8,-1.0939224637240841e-7,8.29331057161653e-8,-6.751718473196888e-8,1.1043897529816604e-7,-1.5242454409758466e-8,1.2139599903093767e-7,3.8936597945848916e-8,1.1341180794488537e-7,8.630295411649058e-8,8.706772547384389e-8,1.193270264820967e-7,4.592902058675463e-8,1.3286879152474285e-7,-3.930692660247814e-9,1.2498067292199266e-7,-5.482997877948037e-8,9.718515769918668e-8,-9.866953121218103e-8,5.418847948135408e-8,-1.28227270579373e-7,3.083594934949474e-9,-1.3834954870617366e-7,-4.782260987212794e-8,-1.26842650161052e-7,-9.036366321879541e-8,-9.491133567962606e-8,-1.1782764630652309e-7,-4.70599381685588e-8,-1.2601940113654564e-7,9.539609990838471e-9,-1.1390253007448337e-7,6.612728498112119e-8,-8.372249027388534e-8,1.1371697183903962e-7,-4.059829450397956e-8,1.4452912466822454e-7,8.344371416058038e-9,1.5326465074849693e-7,5.515137502243306e-8,1.3801113141198584e-7,9.23356182624957e-8,1.0062770883223493e-7,1.1407795597051518e-7,4.653392693398928e-8,1.1714049463762422e-7,-1.6075322406550185e-8,1.0134900918501444e-7,-7.747640040633996e-8,6.957183984468429e-8,-1.2793385906206822e-7,2.7206713326677345e-8,-1.5925049012821546e-7,-1.8734009898935255e-8,-1.6610192687949166e-7,-6.078472836179571e-8,-1.4693922878450394e-7,-9.224238795013662e-8,-1.0430580488218766e-7,-1.0823826812611514e-7,-4.45076224764307e-8,-1.0649359438730244e-7,2.3321303999068732e-8,-8.764186532062013e-8,8.862036082746272e-8,-5.5072241877951456e-8,1.410538743584766e-7,-1.4327970809802082e-8,1.7215407410731132e-7,2.783478691981145e-8,1.7669236740402994e-7,6.45675726218542e-8,1.5355695381913392e-7,9.00446011087297e-8,1.0598996880162304e-7,1.0038979780802038e-7,4.1135439943218444e-8,9.426747737961705e-8,-3.103694723449735e-8,7.304740989866332e-8,-9.927160249389999e-8,4.052454016800766e-8,-1.5279019294212048e-7,2.248076613753369e-9,-1.8300160320450232e-7,-3.542269766398931e-8,-1.8488543673811364e-7,-6.637513649820903e-8,-1.578263635337862e-7,-8.573766052677456e-8,-1.0576047060339988e-7,-9.064876138609179e-8,-3.660183267584216e-8,-8.067998180649738e-8,3.896485267773642e-8,-5.78489469660326e-8,1.091430661404047e-7,-2.6230463134879756e-8,1.6287407333948067e-7,8.762894410097033e-9,1.9158729003265762e-7,4.1304232922811934e-8,1.9057252131915448e-7,6.612271619133026e-8,1.597534549091506e-7,7.93595944514891e-8,1.0373634040661273e-7,7.916997901702416e-8,3.1118556620413074e-8,6.597691282195228e-8,-4.683636234403821e-8,4.234251704815506e-8,-1.1795428633831762e-7,1.2487103795422172e-8,-1.7106017935475393e-7,-1.8456139727618392e-8,-1.9774194015553803e-7,-4.5320295072315275e-8,-1.936883222697361e-7,-6.376741623626003e-8,-1.5938736908083229e-7,-7.099095000739908e-8,-1.0007260442534971e-7,-6.614403957883042e-8,-2.4920090879732015e-8,-5.042738848715089e-8,5.4377210290113e-8,-2.6831063593135696e-8,1.2543733873826568e-7,4.190550129123949e-10,1.7713182387524284e-7,2.660926767816818e-8,2.0133609268668806e-7,4.734960157293244e-8,1.9421217700710258e-7,5.9309229527571006e-8,1.568193965795217e-7,6.075319447518268e-8,9.495667541159492e-8,5.1793612954043056e-8,1.8258184297792468e-8,3.4318482278195006e-8,-6.131359242544931e-8,1.1618418227499205e-8,-1.3134261678260373e-7,-1.2217928002655754e-8,-1.8090540265802701e-7,-3.3030893575869413e-8,-2.0228301877978083e-7,-4.731122515977404e-8,-1.9216858504478296e-7,-5.279125758761438e-8,-1.5218093096791563e-7,-4.880642023863402e-8,-8.86045441461647e-8,-3.636942480511607e-8,-1.1396908305982834e-8,-1.794975901248108e-8,6.737802493717027e-8,2.9967353043502953e-9,1.354440257728129e-7,2.2661327037099e-8,1.8223443021270214e-7,3.756455413395088e-8,2.0054038429861976e-7,4.51666153367114e-8,1.8762639797387237e-7,4.429934108429734e-8,1.4564022876584204e-7,3.534657722070733e-8,8.125561379301871e-8,2.0145094481449632e-8,4.6065018466379115e-9,1.627221024591563e-9,-7.23151174497616e-8,-1.672687943710116e-8,-1.3754423378031788e-7,-3.1527999766467474e-8,-1.8101286514138337e-7,-4.0092068331887276e-8,-1.9611144352893461e-7,-4.0920408395095365e-8,-1.8069772522721905e-7,-3.3960340317662485e-8,-1.373995388576077e-7,-2.060184201013726e-8,-7.316809558233217e-8,-3.4121434566714015e-9,1.8424062275812503e-9,1.4342575127557211e-8,7.58872715778125e-8,2.930133291556558e-8,1.3747893490290153e-7,3.862820463496064e-8,1.771775828274258e-7,4.053629965028449e-8,1.8904509602180042e-7,3.4620917688243935e-8,1.7153544717984914e-7,2.1940055106028922e-8,1.2769024237968551e-7,4.8280348607931955e-9,6.461311841121642e-8,-1.3525756514809473e-8,-7.684699099286263e-9,-2.9658723477155036e-8,-7.788023737020922e-8,-4.047191026756991e-8,-1.3512089935829863e-7,-4.380772722356596e-8,-1.7071022284653736e-7,-3.8862765450176084e-8,-1.794353323703035e-7,-2.6359270322018347e-8,-1.6033061456255382e-7,-8.440215637506299e-9,-1.1676839051233401e-7,1.1695799884137159e-8,-5.586884554986682e-8,3.035879103663319e-8,1.2666705906383413e-8,4.4031899903984595e-8,7.810783131390053e-8,5.001792047210074e-8,1.3038322776992572e-7,4.6951285526120046e-8,1.6163825478088256e-7,3.50808093685373e-8,1.6741982733492478e-7,1.6268021596488325e-8,1.4730845521171432e-7,-6.305238997583729e-9,1.0490954593933566e-7,-2.867316517551899e-8,4.721489688108704e-8,-4.677700715660649e-8,-1.6551972237266455e-8,-5.7190277402696665e-8,-7.641661170509906e-8,-5.775084588321988e-8,-1.232217812230374e-7,-4.798507191594581e-8,-1.500348929539541e-7,-2.9243762966757458e-8,-1.531775808416569e-7,-4.518951435272811e-9,-1.327244092408364e-7,2.2034459590258848e-8,-9.240281428901653e-8,4.5795644609825104e-8,-3.8925911383103085e-8,6.247649508850373e-8,1.9126481731746026e-8,6.888492265488821e-8,7.268964452578075e-8,6.35182573205384e-8,1.1363691498900153e-7,4.687864318952961e-8,1.360183716769825e-7,2.144827604411148e-8,1.3692603317849716e-7,-8.680026475360592e-9,1.1685883549716891e-7,-3.846272988994315e-8,7.954528058462529e-8,-6.274878217027435e-8,3.126580239154464e-8,-7.716540295632512e-8,-2.020383149670124e-8,-7.889514108683215e-8,-6.68497079914232e-8,-6.720723888520297e-8,-1.0167435959829163e-7,-4.3645762559663126e-8,-1.1975075153713988e-7,-1.1832858248794764e-8,-1.1891678042275089e-7,2.308856750232735e-8,-1.0001188144315165e-7,5.528772462071174e-8,-6.663564988684811e-8,7.921842382074828e-8,-2.4482059046704308e-8,9.056988403699506e-8,1.9629631253792468e-8,8.703290887979165e-8,5.8861960638978417e-8,6.874705604786868e-8,8.742540558159817e-8,3.8344889929931014e-8,1.0143502748860556e-7,5.755360632520024e-10,9.94316948776941e-8,-3.843843643380751e-8,8.249778460367452e-8,-7.219536968250395e-8,5.3968339130960885e-8,-9.489680508067977e-8,1.8800008660946332e-8,-1.0243961412470526e-7,-1.728548326696e-8,-9.314704385587902e-8,-4.873542280847687e-8,-6.811089292568795e-8,-7.102593002628055e-8,-3.107823687287237e-8,-8.131225115448615e-8,1.2109261149362283e-8,-7.877756758034593e-8,5.4438466179362877e-8,-6.463856294658399e-8,8.88658746589499e-8,-4.182719237633137e-8,1.0948871675964256e-7,-1.441798502810343e-8,1.1255299625645421e-7,1.309215491573923e-8,9.71264810800676e-8,3.652399271913964e-8,6.531689678013208e-8,5.2654801407925333e-8,2.1990270937521927e-8,5.965749494407646e-8,-2.597437287477078e-8,5.7280796994518823e-8,-7.077982644432268e-8,4.6758000138424904e-8,-1.0498003177872306e-7,3.0479803569960495e-8,-1.2271735272406659e-7,1.1502635288707097e-8,-1.207218360832485e-7,-7.012232572378707e-9,-9.89030155551518e-8,-2.232631501897231e-8,-6.042829170382902e-8,-3.253148150861307e-8,-1.126556270492074e-8,-3.677537208091053e-8,4.0744591700558885e-8,-3.5281200183590045e-8,8.714194166259404e-8,-2.9175275528814382e-8,1.2022522355437104e-7,-2.0171768255750067e-8,1.3433009371510707e-7,-1.0184898258103203e-8,1.2679538485826924e-7,-9.48340073136933e-10,9.845307857858643e-8,6.285233666858403e-9,5.355287413522092e-8,1.0912705405985434e-8,-8.745786317376769e-10,1.2994831877222168e-8,-5.6121411518006425e-8,1.3126058462376022e-8,-1.0319883614329228e-7,1.2198796639495413e-8,-1.3430187095764268e-7,1.1121471743535949e-8,-1.4410350956950424e-7,1.0556746588008536e-8,-1.306638210962774e-7,1.0739150013705512e-8,-9.579873250231685e-8,1.1414194034387037e-8,-4.4841215185442707e-8,1.1911470920722422e-8,1.4175789431192243e-8,1.1336403815676022e-8,7.178886107794824e-8,8.836241960352709e-9,1.186250813134393e-7,3.879819132635021e-9,1.4692922434278444e-7,-3.515509661156102e-9,1.5184838275672519e-7,-1.2668508020396985e-8,1.3226078010575293e-7,-2.226547479722285e-8,9.100791231730909e-8,-3.054695696391718e-8,3.4484436639559135e-8,-3.5622434779725154e-8,-2.835523815747365e-8,-3.585806140904424e-8,-8.741915280552348e-8,-3.0262789607604645e-8,-1.331023611328419e-7,-1.8791553202390787e-8,-1.5785127516210196e-7,-2.495440298844187e-9,-1.5741350978260016e-7,1.6527152979506354e-8,-1.315653577194098e-7,3.5388893593335524e-8,-8.419365826739522e-8,5.085162513296382e-8,-2.2711049041390652e-8,5.987803319840168e-8,4.3106652469759865e-8,6.020332676826001e-8,1.0267898886695548e-7,5.082233300868211e-8,1.4632553302362794e-7,3.229512657298983e-8,1.6684182924109336e-7,6.800249252592039e-9,1.6068939601154852e-7,-2.209532112829038e-8,1.2860309084317123e-7,-4.9929113288271765e-8,7.551252423354526e-8,-7.203408358691377e-8,9.782965548765787e-9,-8.431845088807677e-8,-5.810602488054428e-8,-8.400549944553859e-8,-1.1723588499990001e-7,-7.020152992254225e-8,-1.5800895880602184e-7,-4.4182222325162e-8,-1.737094663667449e-7,-9.329681915914989e-9,-1.6161074256615393e-7,2.929103004589706e-8,-1.2344602851044328e-7,6.566628485416004e-8,-6.51622968916854e-8,9.377239962304884e-8,4.008910536867916e-9,1.0857223031734975e-7,7.30174321006416e-8,1.0690452256767458e-7,1.3076454763449874e-7,8.811070983938407e-8,1.6789185508514493e-7,5.428115912309295e-8,1.7830146248343226e-7,1.0058755606223713e-8,1.6015852111195272e-7,-3.7988669987498724e-8,1.1621219186963572e-7,-8.234437132159655e-8,5.337874142696819e-8,-1.1572207370136312e-7,-1.8349950892115885e-8,-1.3226288331225078e-7,-8.749950097808323e-8,-1.2855345232765103e-7,-1.429532971997105e-7,-1.0428958319153026e-7,-1.757441623340128e-7,-6.246106920571037e-8,-1.8050761241283908e-7,-9.007450785247784e-9,-1.5636099703897344e-7,4.8020453391472984e-8,-1.0706388309245085e-7,9.967530445464945e-8,-4.043157275646081e-8,1.3752170957559429e-7,3.290755046236882e-8,1.5501495909120422e-7,1.0121155469278165e-7,1.4862459352116275e-7,1.535100864202832e-7,1.18511877644778e-7,1.8137095025849703e-7,6.863422186142998e-8,1.8026273096438672e-7,6.241009486984694e-9,1.502937152508821e-7,-5.9178759670430736e-8,9.6205269528582e-8,-1.1734320537470921e-7,2.661998621533712e-8,-1.587992954910078e-7,-4.7336740749415185e-8,-1.7646118521952303e-7,-1.1382016396055405e-7,-1.6681565284670796e-7,-1.621684049268879e-7,-1.305898820191942e-7,-1.8461685158399632e-7,-7.275829716490989e-8,-1.7754862824403972e-7,-1.8693526726565324e-9,-1.4207904541763128e-7,7.12196168706214e-8,-8.387929995024024e-8,1.350101968000672e-7,-1.226757717631699e-8,1.791784427496168e-7,6.128705365426868e-8,1.9624867775291932e-7,1.2500586876740272e-7,1.8285521719008102e-7,1.6869270780262013e-7,1.4037811979505932e-7,1.8536968582338886e-7,7.483755837256467e-8,1.7239531757695659e-7,-3.954397698180401e-9,1.3188457614887739e-7,-8.386642491586827e-8,7.036361182599649e-8,-1.523217889598527e-7,-2.283826461280114e-9,-1.982851216553172e-7,-7.440858951213158e-8,-2.140455137578101e-7,-1.3446904745251231e-7,-1.9650781268865103e-7,-1.7288331832787662e-7,-1.4777623391637462e-7,-1.8356305986344523e-7,-7.492307929624076e-8,-1.648810297183445e-7,1.1036519254048471e-8,-1.199205286184224e-7,9.681468782218872e-8,-5.59659980581273e-8,1.689130897375435e-7,1.6679663872309902e-8,2.1575439745902258e-7,8.635897330577791e-8,2.2954650091833173e-7,1.419358568455209e-7,2.0757832430717826e-7,1.745807907127528e-7,1.5273110420821467e-7,1.791784427496168e-7,7.311207639304484e-8,1.5513171547354432e-7,-1.9145318219671026e-8,1.064367722847237e-7,-1.0973732855745766e-7,4.1019006857823115e-8,-1.8441545535097248e-7,-3.0559448305211845e-8,-2.3123673997815786e-7,-9.680942980594409e-8,-2.424790750410466e-7,-1.4716398766267957e-7,-2.15915846979442e-7,-1.7366949123243103e-7,-1.5523812635365175e-7,-1.7224643045210541e-7,-6.954682874038554e-8,-1.4331929776290053e-7,2.801593268486613e-8,-9.171864689960785e-8,1.2229020285303704e-7,-2.5874314246721042e-8,1.9846278576096665e-7,4.356334670774231e-8,2.4440464585495647e-7,1.054514413567631e-7,2.5260820279982e-7,1.4994745356489148e-7,2.214165988334571e-7,1.7008042618726904e-7,1.5534149611085013e-7,1.6284681692013692e-7,6.44118358650303e-8,1.2965963946953707e-7,-3.735416953531967e-8,7.608232976963336e-8,-1.3411838040156e-7,1.0896656021941453e-8,-2.1069845956844802e-7,-5.533853197903227e-8,-2.5495873501313326e-7,-1.1200258853705236e-7,-2.5974125605898735e-7,-1.5012123810720368e-7,-2.2402615229566436e-7,-1.6379334510929766e-7,-1.5313399615024537e-7,-1.5110805406948202e-7,-5.793131663267559e-8,-1.1440880598456715e-7,4.684170562541112e-8,-5.986959195070085e-8,1.4486286659121106e-7,3.543078719303594e-9,2.207816862664913e-7,6.554610365583358e-8,2.626331934152404e-7,1.1621221318591779e-7,2.637312945807935e-7,1.4756460586795583e-7,2.2374074148956424e-7,1.548379913174358e-7,1.487551344325766e-7,1.372055606907452e-7,5.036477546127571e-8,9.785939880657679e-8,-5.614236897599767e-8,4.344204285189335e-8,-1.5416648579957837e-7,-1.707385877125489e-8,-2.2839421376374958e-7,-7.386714173662767e-8,-2.672012158200232e-7,-1.1786644904532295e-7,-2.6448051926308835e-7,-1.4220435673450993e-7,-2.2060758908537537e-7,-1.4329432929116592e-7,-1.423892257435e-7,-1.2135944871261017e-7,-4.200282432975655e-8,-8.033579490529519e-8,6.490785153800971e-8,-2.7174962724529905e-8,1.6168131367066962e-7,2.9331772566365544e-8,2.3324616904574214e-7,8.000931472906814e-8,2.684793400931085e-7,1.1679284739329887e-7,2.619423185024061e-7,1.3401688647718402e-7,2.1472467892635905e-7,1.2929177728437935e-7,1.3426242162495328e-7,1.0383159576576872e-7,3.3161711598950205e-8,6.218888870535011e-8,-7.2784388294167e-8,1.1450310921645723e-8,-1.6707475936073024e-7,-3.9966550957615254e-8,-2.350818988361425e-7,-8.37119387142593e-8,-2.6633134098119626e-7,-1.1286404344446055e-7,-2.5612271770114603e-7,-1.2302950835874071e-7,-2.062390649371082e-7,-1.1300813440584534e-7,-1.2463814869079215e-7,-8.492092717915511e-8,-2.4177921886803233e-8,-4.378986773190263e-8,7.941886792650621e-8,3.3493563478259603e-9,1.7003641517021606e-7,4.864789104885858e-8,2.3368514234789473e-7,8.475183221889893e-8,2.606714133435162e-7,1.0600088984347167e-7,2.47080549797829e-7,1.093205383995155e-7,1.9534485318217776e-7,9.466675976455008e-8,1.1381365538909449e-7,6.495940851891646e-8,1.540166749691707e-8,2.5524627744744066e-8,-8.446616561741394e-8,-1.6848247241796344e-8,-1.7028382615080773e-7,-5.507182265773736e-8,-2.2888355033501284e-7,-8.29474018360088e-8,-2.5146613324977807e-7,-9.61746167149613e-8,-2.3492745526709768e-7,-9.30190964254507e-8,-1.8228004705633793e-7,-7.453374450960837e-8,-1.0211371659352153e-7,-4.430629019225307e-8,-7.190720907601644e-9,-7.786582045810064e-9,8.7595566355958e-8,2.868361548280518e-8,1.6756843024268164e-7,5.8966605820387485e-8,2.2055249360164453e-7,7.816283442707572e-8,2.387361348610284e-7,8.340805379702942e-8,2.1982599207603926e-7,7.430342918723909e-8,1.6732249719098036e-7,5.291352067615662e-8,8.988544664134679e-8,2.3342494159805938e-8,-9.657696864451282e-11,-9.029974989971379e-9,-8.849696087054326e-8,-3.851283736366895e-8,-1.6168071681477159e-7,-6.009787512084586e-8,-2.086184167637839e-7,-7.031114535038796e-8,-2.2255642306845402e-7,-6.777638361654681e-8,-2.0198783090563666e-7,-5.339874320497984e-8,-1.5078565240855824e-7,-3.0144647666929814e-8,-7.74920465573814e-8,-2.4640200990688754e-9,6.107484296080656e-9,2.4536632281524362e-8,8.688752473062777e-8,4.6019223987059377e-8,1.5245490203597e-7,5.827331506225164e-8,1.930607993472222e-7,5.9356413117939155e-8,2.0305571979406523e-7,4.9406320812295235e-8,1.8167025928050862e-7,3.057391495531192e-8,1.3301294643497386e-7,6.593907642127306e-9,6.530615337396739e-8,-1.7924634221344604e-8,-1.0502304803594598e-8,-3.8357740095307236e-8,-8.251703320638626e-8,-5.09184445718347e-8,-1.3977266632991814e-7,-5.334685226898728e-8,-1.7391343476447219e-7,-4.531527508788713e-8,-1.8041541238744685e-7,-2.847492908131244e-8,-1.5917244411411957e-7,-6.137511832093878e-9,-1.1437219882282079e-7,1.7349023551105347e-8,-5.37032178726804e-8,3.741698151316086e-8,1.296049845223024e-8,5.013745862925134e-8,7.517348876717733e-8,5.296352867389942e-8,1.2356650813671877e-7,4.5221725031296955e-8,1.512654534963076e-7,2.825746747703306e-8,1.548669530393454e-7,5.2072621770093974e-9,1.3483074212672364e-7,-1.9566755327105056e-8,9.524914901248849e-8,-4.127851127577742e-8,4.305459810893808e-8,-5.561204829973576e-8,-1.3186848946133978e-8,-5.95453570895188e-8,-6.468775382018066e-8,-5.194998209390178e-8,-1.0382181869772467e-7,-3.385292757229763e-8,-1.252602146450954e-7,-8.305409693321053e-9,-1.266889739781618e-7,2.01266487920293e-8,-1.0901331393142755e-7,4.616561000148067e-8,-7.604103302583098e-8,6.477917224856355e-8,-3.372076662344625e-8,7.212108243948023e-8,1.0917915460595395e-8,6.628347648529598e-8,5.093718868920405e-8,4.771956696458801e-8,8.057844524955726e-8,1.924885140169863e-8,9.609434670210248e-8,-1.4367117273650365e-8,9.62030739515285e-8,-4.7215870324635034e-8,8.211441127059516e-8,-7.326191564516193e-8,5.714957751479233e-8,-8.743310786485381e-8,2.6044631340482738e-8,-8.657399064304627e-8,-5.926722224103287e-9,-7.00910334217042e-8,-3.384931801519997e-8,-4.016405341644713e-8,-5.3931231036585814e-8,-1.4717116414431075e-9,-6.401522512078373e-8,3.953713800797232e-8,-6.376927785822772e-8,7.571323124011542e-8,-5.454768370327656e-8,1.0044124110208941e-7,-3.897437750310928e-8,1.0882675383072637e-7,-2.034499857472838e-8,9.862651495495811e-8,-1.9718697785719996e-9,7.074959285091609e-8,1.3404161336438847e-8,2.9227308573354094e-8,2.4029375822465227e-8,-1.9362573766557034e-8,2.931786724502672e-8,-6.693563392445867e-8,2.9780522936562193e-8,-1.0524054516736214e-7,2.673979793144099e-8,-1.2727836917747481e-7,2.1905208313910407e-8,-1.2855795716859575e-7,1.6910888689380954e-8,-1.0796576077609643e-7,1.2917411140733748e-8,-6.808754449139087e-8,1.0364715308242012e-8,-1.4907442391631776e-8,8.924573080548726e-9,4.308567014277287e-8,7.658934819687602e-9,9.625129138157718e-8,5.343167686078232e-9,1.3539460042011342e-7,8.767813142185332e-10,1.5334450154114165e-7,-6.316128065009252e-9,1.4624281163833075e-7,-1.5995510693755932e-8,1.1431623647695233e-7,-2.7000339741789503e-8,6.198324342676642e-8,-3.7368934613368765e-8,-2.7429507554188604e-9,-4.467732850343964e-8,-6.947900033082988e-8,-4.65375258329459e-8,-1.271353227139116e-7,-4.11612219863855e-8,-1.657535761978579e-7,-2.787074038224091e-8,-1.7821416520291677e-7,-7.4418835538381245e-9,-1.6152242210409895e-7,1.78118000349059e-8,-1.174446140339569e-7,4.425945121511177e-8,-5.236780964423815e-8,6.74662032906781e-8,2.361669260153576e-8,8.292775532936503e-8,9.827665792272455e-8,8.690673070077537e-8,1.5920657858714549e-7,7.721943973137968e-8,1.9588374300383293e-7,5.381905054946401e-8,2.01472317939988e-7,1.9046609622819233e-8,1.7406878782821877e-7,-2.252760111787211e-8,1.1716433334640897e-7,-6.468043523000233e-8,3.9226861758834275e-8,-1.0046120735296427e-7,-4.755322891014657e-8,-1.2333094900895958e-7,-1.291692797167343e-7,-1.283278550090472e-7,-1.920576551128761e-7,-1.1305681368867226e-7,-2.2534644017468963e-7,-7.831395976154454e-8,-2.2272135424827866e-7,-2.8210422442498384e-8,-1.835907994518493e-7,3.026283934559615e-8,-1.1333888494391431e-7,8.819482388844335e-8,-2.2601398086408153e-8,1.3610795690510713e-7,7.434063320488349e-8,1.6550283987726289e-7,1.6180867135062726e-7,1.70341195371293e-7,2.2526110399212484e-7,1.482129619034822e-7,2.537052807838336e-7,1.0096973568352041e-7,2.415877418115997e-7,3.468574050202733e-8,1.8983951122208964e-7,-4.1086096302933584e-8,1.0588495058527769e-7,-1.1468043936702088e-7,2.5876758513732057e-9,-1.7411272779099818e-7,-1.0371854131108194e-7,-2.0902572828163102e-7,-1.9581293031478708e-7,-2.124729689967353e-7,-2.5837624662017333e-7,-1.8223526865313033e-7,-2.805332712796371e-7,-1.2142896821387694e-7,-2.5772834533199784e-7,-3.826910699444852e-8,-1.9261226213984628e-7,5.501317446032772e-8,-9.477400908508571e-8,1.4396246683645586e-7,2.0663790678554506e-8,2.141380548437155e-7,1.353819669702716e-7,2.5345423182443483e-7,2.3077254240888578e-7,2.542422521401022e-7,2.909561942487926e-7,2.1468599697982427e-7,3.054196326957026e-7,1.3936859488694608e-7,2.708362671910436e-7,3.880498411490407e-8,1.9175661236658925e-7,-7.20061592573984e-8,8.003340923323776e-8,-1.7581527345100767e-7,-4.695015576317019e-8,-2.5569300987626775e-7,-1.6888239429135865e-7,-2.9772394327665097e-7,-2.6572107003630663e-7,-2.942533399163949e-7,-3.216046877696499e-7,-2.4395217224082444e-7,-3.2649120385030983e-7,-1.5415402287999314e-7,-2.794814122353273e-7,-3.692490579965124e-8,-1.8526327494328143e-7,9.23838996413906e-8,-5.7667513431169937e-8,2.1058662014183938e-7,7.687667391564901e-8,2.963788858778571e-7,2.0058980965131923e-7,3.4519857194936776e-7,3.073854202284565e-7,3.573021274405619e-7,3.7416907616716344e-7,3.1087432716958574e-7,3.706501559008757e-7,1.8159762760205922e-7,2.960990173050959e-7,3.2668427962789792e-9,1.7206878055731067e-7,-1.4935011449779267e-7,2.215257310922425e-8,-2.558177527589578e-7,-1.244094391950057e-7,-3.4790230074577266e-7,-2.48221766696588e-7,-4.0844787463356624e-7,-3.424703720611433e-7,-3.83691684646692e-7,-3.784057298616972e-7,-3.049817678402178e-7,-3.52345750798122e-7,-2.4648699081808445e-7,-3.195747524387116e-7,-1.5783344053943438e-7,-2.518800101825036e-7,3.3997068271673925e-8,-6.30552534630624e-8,2.2121484732906538e-7,1.4892148669787275e-7,3.141547040286241e-7,2.5954253146664996e-7,4.2449011061762576e-7,3.912932697858196e-7,5.711276571673807e-7,5.997012522129808e-7,5.73685213112185e-7,6.688356961603859e-7,3.7676232977901236e-7,5.146665671418305e-7,1.2447100061763194e-7,2.9143745905457763e-7,-7.52123909819602e-8,5.3134645128238844e-8,-2.977363067202532e-7,-2.6843949285648705e-7,-6.520573947454977e-7,-6.28192310614395e-7,-9.370967291033594e-7,-8.570544878239161e-7,-8.548654477635864e-7,-9.001176977108116e-7,-5.94005030052358e-7,-8.865962399795535e-7,-4.7458777885367454e-7,-8.468994110444328e-7,-3.512149930884334e-7,-6.936784302524757e-7,-8.961339403867896e-8,-4.980943231203128e-7,1.230076236424793e-7,-3.2142719419425703e-7,2.4483753691129095e-7,-8.036778353925911e-8,3.2601849397906335e-7,1.5931499319776776e-7,2.634457132444368e-7,3.075739698488178e-7,1.0006087336478231e-7,4.02592405635005e-7,-1.3917727414991532e-8,2.7964540549874073e-7,-1.6491451049205352e-7,-1.252113293048751e-7,-4.322458266869944e-7,-3.4416802918713074e-7,-5.973930683467188e-7,-1.608441806411065e-7,-5.607481625702349e-7,-9.189005822918261e-8,-6.423296667890099e-7,-4.1814701035036705e-7,-8.845384513733734e-7,-6.042727704880235e-7,-6.649395345448283e-7,-1.4977459272813576e-7,2.076261296224402e-7,6.342019105431973e-7,9.887080523185432e-7,0.0000011756283129216172,0.0000012178294355180697,0.0000014045423313291394,0.0000012169082310720114,0.0000014515543398374575,0.0000013197013686294667,0.0000013726862562180031,0.0000014580078868675628,0.0000013222773986854008,0.0000011356053164490731,0.0000010844875077964389,1.0777938541650656e-7,2.2619612138896628e-7,-7.482602768504876e-7,-7.17060970600869e-7,-6.657965059275739e-7,-8.349057907253155e-7,-3.209282795069157e-7,-3.6607696074497653e-7,-3.680989948406932e-7,-1.1575120595352928e-7,-4.95609242534556e-7,-3.544887476891745e-7,-5.947504178038798e-7,-8.185001547644788e-7,-7.568756359432882e-7,-9.477171829530562e-7,-7.301545679183619e-7,-6.806443479945301e-7,-6.662963869530358e-7,-7.349966608671821e-7,-9.223255688084464e-7,-0.0000011680775742206606,-9.623134928915533e-7,-0.0000011299755442450987,-5.716998430216336e-8,-4.1727275856828783e-7,0.0000012798651596312993,4.575892944558291e-7,0.0000017962800029636128,0.0000010811531865329016,0.0000012475534276745748,0.0000010263622698403196,6.50961169412767e-7,3.0017449148544983e-7,6.232056648514117e-7,-2.1072614231343323e-7,5.681872607965488e-7,-1.0082136014943899e-7,5.6389637848042184e-8,-3.821854477337183e-8,-1.9356215830157453e-7,-8.707064580448787e-8,3.1259128263627645e-7,3.307707174826646e-7,6.644752374995733e-7,5.657690280713723e-7,2.2780943709221901e-7,-9.992874083764036e-8,-3.080589294768288e-8,-4.176954746526462e-7,3.027119532816869e-7,2.994362375829951e-7,2.1587086962426838e-7,4.623799156888708e-7,-6.439171329475357e-8,-1.8978136040459503e-7,6.838890840299428e-7,1.823492823405104e-7,0.0000016455330751341535,0.000001461430429117172,0.0000012464244036891614,0.0000017142567685368704,1.521793251413328e-7,8.734431844459323e-7,-2.2615671468884102e-7,3.06045933484711e-7,-2.8238775939826155e-7,7.30272518012498e-8,-0.00000103277864127449,-6.274767088143562e-7,-0.0000019067788343818393,-0.0000013300996215548366,-0.0000018798998553393176,-0.0000011391654197723255,-0.0000017127154023910407,-0.0000010173259852308547,-0.000002217254632341792,-0.0000019248880107625155,-0.0000020913898879371118,-0.0000021242335606075358,-5.66933863410668e-7,-2.713406956900144e-7,8.740189514355734e-7,0.0000017201797390953288,0.000001283963001696975,0.0000020493916963459924,0.000001458434553569532,0.0000017541703982715262,0.0000023141244582802756,0.0000024709238459763583,0.000003410554882066208,0.0000036500086935120635,0.000002940127160400152,0.0000032614680094411597,9.374844012199901e-7,0.0000014839671393929166,5.367808171286015e-7,0.0000010193630259891506,0.0000026928789793601027,0.000002544775270507671,0.0000042918609324260615,0.000004003791673312662,0.0000036620276659959927,0.000004126029125472996,0.0000026585357773001306,0.0000032682805795047898,0.000002984725369969965,0.000002696561978154932,0.0000035732336982619017,0.0000029659092888323357,0.0000024645387384225614,0.0000024580745048297103,7.03024511494732e-7,8.939995268519851e-7,3.9872708157417946e-7,4.0552660607318103e-7,2.736072133302514e-7,5.195767585064459e-7,-6.794140290367068e-7,-3.420753387217701e-7,-8.344152320205467e-7,-9.72813950284035e-7,-8.701111937625683e-7,-0.0000012382436125335516,-0.0000019544306724128546,-0.0000023187603801488876,-0.000002346559995203279,-0.0000032190364436246455,-0.000002146023462046287,-0.0000034883794342022156,-0.000002175008376070764,-0.0000032290981835103594,-7.618077688675839e-7,-0.0000014997837070040987,3.1260697141988203e-7,-6.726122592226602e-7,-0.0000018081600501318462,-0.0000030780636279814644,-0.0000033705023270158563,-0.0000045586630221805535,-0.0000017679449229035527,-0.0000024891428438422736,-7.876126346673118e-7,-8.457274702777795e-7,-0.000001939183221111307,-0.0000018313490954824374,-0.0000030375533697224455,-0.0000032928546715993434,-0.000002612765911180759,-0.0000027941657663177466,-1.2583780062414007e-7,-1.304837837778905e-7,0.000002071829158012406,0.0000012727984994853614,0.0000010511553227843251,-1.8225119902126607e-7,-8.205987001019821e-7,-6.519076123367995e-7,-5.326791665538622e-7,7.292591703844664e-7,3.8590383155678865e-7,6.530359542011865e-7,8.554245312097919e-8,-2.893132773351681e-7,-0.0000011364130614310852,-3.044409879748855e-7,-0.0000015163764146564063,-2.6364565997027967e-7,2.97657777537097e-7,6.473703706433298e-8,0.000001827797973419365,7.450047974089102e-7,0.0000011695537978084758,8.898541636881419e-7,0.0000016373277276215958,0.00000214285728361574,0.000004091570190212224,0.000004667096163757378,0.000004342218744568527,0.000004851250650972361,0.0000016070987385319313,0.000002105672592733754,-8.746696380512731e-7,-4.304055778447946e-7,-9.53932840275229e-7,-0.000001061122361534217,9.499452744421433e-7,-3.891087771989987e-7,0.0000013530089972846326,-2.494775799277704e-7,-0.0000016349131328752264,-0.00000132011086861894,-0.0000037219176647340646,-0.0000016550230839129654,-0.0000018801339365381864,-5.213034341977618e-7,3.8171768323991273e-7,4.5613657562171284e-7,5.042894031248579e-7,8.237010433731484e-7,3.6334296282802825e-7,8.760717378208938e-7,0.0000012198424883536063,2.7994315132673364e-7,0.000002176149791921489,-5.067900019639637e-7,0.000002342127800147864,-8.856314934746479e-7,0.0000014781663821850088,-0.0000013078295069135493,-3.082652710872935e-7,-0.0000021032362838013796,-0.000002368892637605313,-0.000002730813321250025,-0.0000034160445920861093,-0.0000024211738036683528,-0.0000029086347694828874,-0.000001562975739943795,-0.0000019350463844602928,-0.0000014834488410997437,-0.0000014534834917867556,-0.0000016977220411718008,-0.000001213783093589882,-6.728521384502528e-7,-5.774323881269083e-7,6.11771270087047e-7,9.30576675273187e-7,8.939668418861402e-7,0.0000027284738735033898,0.0000018481326833352796,0.000003407468284422066,0.000004100708338228287,0.000003105833684458048,0.000004962969796906691,0.0000029469849778251955,0.0000037807042190252105,0.000002233268787676934,0.0000031275560559151927,8.682991392561235e-8,0.0000028762378860847093,-0.0000017796860447560903,6.71204247737478e-7,-0.000001924816388054751,-0.0000020046747977175983,-0.0000019394990431464976,-0.000002175224835809786,-0.000002797315119096311,-9.022790550261561e-7,-0.0000029163450108171673,-4.2059861016241484e-7,-0.000002293946636200417,-8.709507710591424e-7,-0.000002271910261697485,-0.000001970868197531672,-0.000001801297685233294,-0.0000029321738566068234,-4.773514774569776e-7,-0.000002368856030443567,5.963245541806828e-8,-3.129603953766491e-7,8.343644140040851e-7,0.000001990498731174739,0.0000029133886982890544,0.0000031243421290128026,0.0000034031081668217666,0.0000025283086415583966,0.0000014670375776404398,0.0000014539837138727307,1.7197021406900603e-7,6.120799866948801e-7,7.339646117543452e-7,-1.7980983102461323e-7,0.00000206096865440486,2.195063188992208e-7,0.0000024490736905136146,9.115740340348566e-7,0.000001012251686915988,-7.794897669555212e-7,2.7506416699907277e-8,-0.0000024963355826912448,4.2787877418959397e-7,-0.0000011866404747706838,-6.74784530474426e-7,1.879491264844546e-7,-0.000002654897798493039,-3.367568979228963e-7,-0.0000023314582904276904,-6.135625199021888e-7,-7.370135222117824e-7,5.8683184533947497e-8,8.916401839087484e-7,0.0000014124995004749508,0.000002813352239172673,0.0000026935217647405807,0.0000029301741051313,0.0000022357385205395985,0.000001388805912938551,0.0000018279930600328953,0.000001394297441947856,0.0000029639745662279893,0.0000018493608422431862,0.0000016150321471286588,3.5992877656099154e-7,-0.000002704265398278949,-0.0000010994443755407701,-0.000004828819328395184,-0.0000013743367617280455,-0.000005059882369096158,-0.000002426815854050801,-0.000006455979018937796,-0.000003922141331713647,-0.000006152407877380028,-0.0000028160709462099476,-0.0000024322541776200524,0.0000010553062566032168,3.0933875905247987e-7,0.0000034888794289145153,4.5727097131020855e-7,0.000002063457259282586,0.0000012197371006550384,-2.0020483049165705e-8,0.0000027144808427692624,2.0493121155595873e-7,0.000002951913074866752,5.058386705059092e-7,0.0000032117116006702418,-0.0000018270185364599456,0.0000033168328172905603,-0.000004480983534449479,4.185849320492707e-7,-0.000003851749170280527,-0.0000025518065740470774,-0.000001983080892387079,-0.0000010308563105354551,-0.000002553476633693208,0.0000011045649443985894,-0.000003134451389996684,-7.845445111342997e-7,-0.0000015007548199719167,-0.000004307928065827582,-7.732348876743345e-7,-0.000005889574822504073,-6.64547201267851e-7,-0.0000036463213746174006,0.0000014335303148982348,9.660944897404988e-7,0.0000030718933885509614,0.000002293975967404549,0.000004045246441819472,4.4917024411006423e-7,0.00000643897510599345,0.000001357122073386563,0.000005552279162657214,0.000003269643684689072,7.760314701954485e-8,9.674236025603022e-7,-0.000001983548600037466,-0.000003136755140076275,6.122683657849848e-7,-0.000005188488557905657,0.0000012430969036358874,-0.000005397181666921824,-0.0000011439969966886565,-0.000004655254997487646,-0.0000034371810215816367,-0.0000031633135222364217,-0.000004312693818064872,-4.008234952834755e-7,-0.0000041818429963313974,0.0000022276451545621967,-0.000004215441549604293,0.0000017187583125632955,-0.0000034841016258724267,6.790135671508324e-7,-0.0000010553040965533,0.0000027846174361911835,2.2888437456458632e-7,0.0000037306460853869794,-3.539622639436857e-7,4.354231180059287e-7,-4.999796487936692e-8,-0.000002381189915467985,3.447065068939992e-7,-0.0000015586550716761849,-0.000001388713258165808,0.0000010854568017748534,-0.0000035118382584187202,0.0000024505141027475474,-0.0000027599924123933306,0.0000012928514934174018,3.452988153185288e-7,9.147630066763668e-7,4.678361165133538e-8,0.0000029235700367280515,-0.000004951607479597442,0.000002497083642083453,-0.0000061007790463918354,-0.000002038024604189559,-8.928830084187211e-7,-0.000005155670351086883,0.0000024980663511087187,-0.0000027834005322802113,0.0000030437615805567475,0.0000020207432953611715,0.000005872328074474353,0.0000023667914774705423,0.000008525761586497538,-0.000001744319888530299,0.000006328796189336572,-0.0000031836743801250122,5.817118449158443e-7,-0.000002760403958745883,-0.0000035621792449092027,-0.000005721019078919198,-0.0000031907666198094375,-0.00000798531254986301,-0.0000031328777367889415,-0.000007057904895191314,-0.000006145962288428564,-0.0000067292294261278585,-0.000004455939688341459,-0.0000036864155390503583,0.0000028903127713419963,0.000003648249503385159,0.0000055629725466133095,0.0000065096337493741885,0.000002313576715096133,0.000003299622903796262,-7.386475431303552e-7,0.0000011346337487339042,-0.000002999298430950148,0.0000012600233958437457,-0.000004482871645450359,0.0000012339850172793376,-0.000005028339273849269,-3.190280040143989e-8,-0.0000065708190959412605,-0.000002137759793185978,-0.000007463507699867478,-0.000002253582579214708,-0.000006214255336089991,-7.441607294822461e-7,-0.000005036740731156897,-8.026523801163421e-7,-0.0000038829380173410755,-0.0000014424687151404214,-0.000002219082944066031,-0.0000020632605810533278,-2.967931038710958e-7,-0.0000033134051591332536,0.000003112592821707949,-0.000001956977257577819,0.000004888274361292133,0.000001258301949746965,0.000002539396518841386,0.0000012315238109295024,0.0000029573939173133112,-3.9749210145600955e-7,0.000007965088116179686,-3.201979836831015e-7,0.000008430645721091423,-5.8561276716773136e-8,0.0000023614306883246172,-6.812036303927016e-7,-0.000002683240154510713,-0.000002635863893374335,-0.000002422957550152205,-0.000004931941020913655,6.032428245816845e-7,-0.000004697282747656573,9.093607786780922e-7,-0.000004782049927598564,-0.0000014407632988877594,-0.0000074239114837837406,-7.167645890149288e-7,-0.000005518366833712207,0.0000017230380535693257,0.0000018537798496254254,3.114373328116926e-7,0.00000475042725156527,-0.000002284921265527373,0.000001991696535696974,-0.0000018958348846354056,0.0000018167754660680657,-4.297342002246296e-7,0.000005431287263490958,-2.5431930339436803e-7,0.000006547586508531822,-0.0000019510043784976006,0.0000021715609364036936,-0.000005160231921763625,-0.000003922723863070132,-0.00000864976755110547,-0.0000069777229327883106,-0.00001098142092814669,-0.000004680390702560544,-0.000009758781743585132,0.0000025811777959461324,-0.0000064820569605217315,0.000006200225016073091,-0.0000068604194893850945,-0.000001493326294621511,-0.000008256333785539027,-0.00000808436016086489,-0.000005116302872920642,-0.0000019706062630575616,-0.0000036357112094265176,9.638056326366495e-7,-0.000006723561000399059,-0.000010043848305940628,-0.000005082299139758106,-0.000017330961782136,0.0000022783654003433185,-0.000010823952834471129,0.000007848390850995202,4.930726049678924e-8,0.000009791321645025164,0.000010214233043370768,0.000006767637387383729,0.000014693004231958184,6.522810167552962e-7,0.00000584156759941834,0.000001056483142747311,-0.0000061027412812109105,0.000005941973086009966,-0.000003799846808760776,0.0000032200546229432803,0.000007958360583870672,-0.000002986663048432092,0.000010821105206559878,-0.0000017829129319579806,5.535289915314934e-7,0.000002348450379940914,-0.000008360521860595327,0.0000030174969651852734,-0.0000035998295970784966,0.000003019416453753365,0.000005565047104028054,0.0000018894493223342579,0.0000023230936676554848,-0.0000034996205613424536,-0.000009694063919596374,-0.000008751128007133957,-0.000014601409930037335,-0.000007933239430713002,-0.000009449898243474308,-0.000002970120021927869,-0.000001097449057851918,-9.543623491481412e-7,0.00000434171261076699,-0.000004111882390134269,6.79061088249e-7,-0.000004496859673963627,-0.000008936454833019525,0.0000034232402867928613,-0.00000979360265773721,0.000009566062544763554,-3.9706472421130456e-7,0.000004433742105902638,0.000003042325033675297,-0.0000030128887829050655,-0.0000029714519769186154,-0.000003187324637110578,-0.000004348108632257208,-0.0000033043913845176576,0.000002110427658408298,-0.000010759151336969808,0.0000043579448174568824,-0.00001797520599211566,-8.999119245345355e-7,-0.000014672106772195548,-0.0000032756438486103434,-0.000003837559233943466,7.575903282486252e-7,0.0000024387154553551227,0.0000023866900846769568,0.00000110207599846035,-3.6517462831398007e-7,8.478238555653661e-7,3.2741291988713783e-7,0.000003992907295469195,0.0000034631802918738686,0.0000039670776459388435,0.000002545645429563592,0.0000018931576732938993,0.000001866697971308895,0.000004212356543575879,0.0000053428002502187155,0.000007821597137080971,0.000004359905233286554,0.000005222345862421207,-0.000005469212737807538,-0.0000021719831693189917,-0.000014025296877662186,-0.000007200156233011512,-0.000013071728062641341,-0.000008534292646800168,-0.00000858534622238949,-0.00000976859428192256,-0.000009199759006150998,-0.000009531527211947832,-0.000010971834853990003,-0.000005088163561595138,-0.000006511634637718089,-0.000001014210738503607,-0.0000015070510244186153,-3.342962884289591e-7,-0.0000030100443382252706,8.833947049424751e-7,-0.000003861757249978837,0.000002195649585701176,0.000002458319613651838,-1.23842681887254e-7,0.00000901737621461507,-0.000003161710992571898,0.000009653032066125888,-0.0000028306942567724036,0.000009005831088870764,9.146923218850134e-9,0.000010942871995212045,0.0000025969563921535155,0.000009264066648029257,0.0000022111939870228525,6.530254381686973e-8,-9.742769861986744e-7,-0.000006675535132671939,-0.000003203911774107837,-0.000003444060439505847,-0.0000023708191747573437,0.000001115949544328032,5.889252463475714e-8,-4.270693807484349e-7,0.000001317725491389865,-0.0000026383902422821848,0.0000010433889201522106,1.8245710009523464e-7,0.0000014354809536598623,0.000004203336175123695,0.000001658768496781704,6.893950512676383e-7,0.0000023416355361405294,-0.000008033041922317352,0.000007374636879831087,-0.000007646023732377216,0.000008112931027426384,5.110888992021501e-7,-0.0000038381062950065825,0.0000019791827980952803,-0.000011966791134909727,8.282994201636029e-8,-0.00000741668827686226,-9.075603202290949e-7,-0.000007570427897007903,-0.000009879624485620297,-0.000012811858141503762,-0.000015449104466824792,-0.000011708017154887784,-0.000005085837074148003,-0.000013832926015311386,-0.000002735949237830937,-0.00001657587563386187,-0.000017186963304993697,-0.0000036362621358421165,-0.000018992810510098934,0.000007856337106204592,-0.0000052445338951656595,0.0000016284280945910723,0.0000011946658560191281,-1.574869372689136e-7,0.0000027136939024785534,0.00000893616470420966,0.000007166011528170202,0.000008467269253742415,0.0000052992504606663715,0.000002132426743628457,-0.0000022123847429611487,0.0000036260689739719965,-0.000002493302417860832,0.0000036938338325853692,0.000005352163043426117,-0.000002791706265270477,0.000009312153451901395,-0.000001128120175053482,0.0000035371313060750253,0.00001125568087445572,-0.0000020741836124216206,0.000012978097402083222,2.395776448338438e-7,-0.000004805451681022532,0.000002885989260903443,-0.00001947880446095951,-1.5120596685846976e-7,-0.000016683519788784906,-0.000007136851309041958,-0.000011193683349119965,-0.000014262281183619052,-0.000010445800398883875,-0.000009302071703132242,-0.000006918155577295693,0.000010121770174009725,-0.0000032635687148285797,0.000020283247067709453,-0.0000016351533531633322,0.000010875545740418602,0.000003298426008768729,7.659355674149992e-7,0.000006105294687586138,-0.0000028685344659606926,0.0000018908134507000796,-0.000006559243047377095,-0.0000019376418549654773,-0.000005664392574544763,-0.000003935931545129279,2.3137319260513323e-7,-0.00000724212304703542,-4.4132727339274425e-7,-0.000008509233339282218,-0.000007299334811250446,-0.000008296520718431566,-0.00000775383068685187,-0.000009888088243314996,-6.643310825893423e-7,-0.000009194859558192547,0.0000012217028597660828,-0.0000027014796160074184,-0.000005580995548370993,0.000005727384177589556,-0.000007603383437526645,0.000008626728231320158,6.461232260335237e-8,0.0000024963719624793157,0.00000464674667455256,-0.0000041028060877579264,2.581153353276022e-7,2.623970658532926e-7,-0.000006722665148117812,0.000012226168109918945,-0.000011507665476528928,0.000016527443222003058,-0.000011158333109051455,0.0000042172537177975755,-0.0000065073568293883,-0.000012681543921644334,-0.0000026030968456325354,-0.000012896824046038091,2.7767310939452727e-7,-7.741859917587135e-7,1.6417632764387236e-7,-2.5143609150291013e-7,-0.000006684098025289131,-0.000011173764505656436,-0.000009685449185781181,-0.000015014666132628918,-0.0000022032122615200933,-0.000009355964721180499,-1.9668235040626314e-7,-0.0000019861199689330533,-0.000008735361916478723,2.1953218265480245e-7,-0.000010307759112038184,-0.000009043864338309504,-7.931564027785498e-7,-0.00001973225880647078,0.0000075621992436936125,-0.000012366611372272018,0.000009776677870831918,0.00000898778216651408,0.000007269413345056819,0.0000215316831599921,0.0000028081617529096548,0.00001463560329284519,0.0000013555286386690568,-8.18370210708963e-7,0.000003976112566306256,-0.000005741392214986263,0.000006475459940702422,0.0000016396104456362082,0.0000032634761737426743)
22 new Array(0.000003079756197621464,-0.000007045533948257798,-0.000005584218797594076,-0.000014535641639668029,-0.000009336939911008812,-0.000009002875231090002,-0.000005781885192845948,0.00000253107532444119,-0.000002653517412909423,0.0000052440332183323335,2.61081083863246e-7,-0.000004180499217909528,-0.000001123604306485504,-0.00001392687681800453,-0.000013051283531240188,-0.000008770004569669254,-0.00002213554034824483,0.000006507052603410557,-0.000012553733540698886,0.000008663148946652655,0.0000043216405174462125,-0.000003365547172506922,0.000009666131518315524,-0.0000036936494325345848,0.000008714309842616785,0.000011746677955670748,0.00001345210421277443,0.000016736059478716925,0.000014740943697688635,0.0000011494975069581415,0.0000037885874917265028,-0.000013101015611027833,-0.0000028683189157163724,-0.000007050486146908952,0.000006106271939643193,0.000007029236712696729,0.000013492718608176801,0.000005168927600607276,0.000007264246960403398,-0.000009827103895077016,-0.00000253483312917524,-0.000016045227312133648,-0.000009338813470094465,-0.000011414746950322296,-0.000013670570297108497,-0.000009242834494216368,-0.000013137173482391518,-0.000009129987120104488,-0.000011171797268616501,-0.0000058122036534768995,-0.000011200489097973332,-0.000004491418167162919,-0.00000646262924419716,-0.000006156059498607647,3.744167713648494e-7,-0.000003603997356549371,-0.0000037651313959941035,9.045492106452002e-7,-0.000011486084076750558,-0.0000013693146456716931,-0.000005032851731812116,-0.000007804138476785738,0.000005861616500624223,-0.000010557558198343031,0.000001025069195748074,-0.000010377891157986596,-0.00001071288625098532,-0.000007369986633420922,-0.000011507268027344253,0.0000020538736862363294,-0.000008385878572880756,0.000009365067853650544,-0.000009505479283689056,0.000005552293714572443,-0.000003929438207705971,0.000001957044105438399,0.000007157846994232386,0.000005618156137643382,0.000008056893420871347,0.000004114352577744285,0.000004444902970135445,-0.0000015129552366488497,0.000009714583939057775,0.0000034346257962170057,0.000016184803826035932,0.000013940394637756981,0.000017429176295991056,0.0000162159776664339,0.000018516269847168587,0.000009985662472900003,0.00001675341081863735,-5.474975068864296e-7,0.000010761052180896513,-0.000010513853339944035,0.000006836903139628703,-0.000015860308849369176,0.0000032462696708535077,-0.000019273027646704577,-0.0000022639590042672353,-0.0000182041221705731,-0.00000642911572867888,-0.000009331621185992844,-0.000010752169146144297,-0.000006398724053724436,-0.00001092150341719389,-0.000013978446986584459,-0.0000019830717974400613,-0.000011518278370203916,-7.679133773308422e-7,0.00000411232394981198,-0.000015622126738890074,0.00001020661602524342,-0.000023934420823934488,0.000003655438376881648,-0.000017996595488511957,0.000005628106464428129,-0.000014397246559383348,0.000023149037588154897,-0.000012422369763953611,0.00003686188574647531,-0.000005164674803381786,0.000029579034162452444,-0.000004279142558516469,0.000011904862731171306,-0.000011054169590352103,0.0000026817510843102355,-0.000007146421012294013,7.300119477804401e-7,0.00000716379463483463,-9.475870115238649e-7,0.000011135504792036954,-0.0000028848432975792093,0.000004333846391091356,-0.00001217265071318252,0.00000525720497535076,-0.000030126569981803186,0.000012700701518042479,-0.000037628265999956056,0.000014790118257224094,-0.00002364890133321751,0.000018574042769614607,-0.000005623247034236556,0.00002481713454471901,-0.0000035716459478862816,0.000016272791981464252,-0.00001041365885612322,7.962548806972336e-7,-0.000004117006483284058,0.000002073728182949708,0.000012243942364875693,0.000011528453796927352,0.000014823122910456732,0.00001140338645200245,0.000006756795755791245,0.000006846646101621445,0.000009838297046371736,0.0000024178214061976178,0.000019338038327987306,-0.0000035010277770197717,0.000020548633983707987,-0.00000739722554499167,0.000016951227735262364,-0.000011693926353473216,0.00001124812479247339,-0.000018294836991117336,4.6700102984686964e-7,-0.000020315797883085907,-0.00001102216265280731,-0.000019213801351725124,-0.000017865449990495108,-0.000017930700778379105,-0.00001534548937343061,-0.000010813826520461589,-0.000003645355718617793,-0.000004975350748281926,0.0000019148487808706705,-0.000009077783943212125,-0.000004406498646858381,-0.000008117423021758441,-0.000006159430995467119,0.0000044337293729768135,-0.0000020885263438685797,0.00001081783830159111,-0.0000062843064370099455,0.000009586233318259474,-0.000010778067007777281,0.000013238699466455728,-0.0000024827570541674504,0.000012394535588100553,0.000008359386811207514,-0.0000011964989425905515,0.000011864392945426516,-0.000006844144081696868,0.00001212747156387195,0.000005946681085333694,0.000008978144251159392,0.000013611196663987357,0.0000014777727983528166,0.000004516868557402631,-0.000001135800971496792,-4.0124223232851364e-7,0.000004324659130361397,0.000007783763066981919,0.0000074882691478705965,0.00001351374066871358,0.000005585980943578761,0.000013525607755582314,0.0000072519515015301295,0.00001596198126208037,0.000011330633242323529,0.00001667377546255011,0.000011497910236357711,0.00001142141263699159,0.00001416644317941973,0.0000030732642244402086,0.000019874687495757826,-0.000009063298421096988,0.000012172569768154062,-0.00001685972347331699,-0.000006543353720189771,-0.000007671710591239389,-0.00000897354129847372,0.0000036098872442380525,0.000008662557775096502,-0.000004769496172229992,0.000016347627024515532,-0.000018694472601055168,-0.0000016639005480101332,-0.00001712615448923316,-0.000021529813238885254,-0.00001112355494115036,-0.00001515701660537161,-0.000012410739145707339,0.000004771038675244199,-0.000005557539680012269,0.000004452776920516044,0.00001637774403207004,-0.000011125454875582363,0.000028977285182918422,-0.00000831189208838623,0.000017143711374956183,0.00001176083787868265,0.0000014372878922586096,0.000018619317415868863,-4.095253984814917e-7,0.0000057142856348946225,0.000003475568746580393,-0.0000069119478212087415,0.000007696536158618983,-0.000003389268840692239,0.000012544330274977256,0.000012063308531651273,0.0000075440393629833125,0.00001954874096554704,-0.000004191128937236499,0.000009394925655215047,-0.000002214434289271594,-0.000004688718945544679,0.000007948830898385495,-0.000009118418347497936,0.0000011970444120379398,-0.0000056666431191843,-0.00002026224865403492,-0.0000019875728867191356,-0.00002999846219609026,-0.000003943970114050899,-0.000012564681128424127,-0.000010138632205780596,0.00001746085581544321,-0.000013649312677443959,0.000027959269573329948,-0.000010523734999878798,0.000012849625818489585,0.000001351437390439969,-3.670769785912853e-7,0.00001497308949183207,0.000002791178758343449,0.000012750263522320893,0.000013458100511343218,4.066057215368346e-7,0.00002175646659452468,0.0000032445300348626915,0.00001627408346394077,0.000014102012755756732,3.48547814610356e-7,0.000009687917554401793,0.0000011480459534141119,-4.2791418763954425e-7,0.000019152239474351518,-6.341405196508276e-7,0.000018948061551782303,0.0000036513481518340996,-0.0000062531571529689245,0.000009545680768496823,-0.000024813129130052403,0.000016652278645779006,-0.000018440034182276577,0.000017343440049444325,-3.587248897929385e-7,0.000010243666110909544,0.00000628847419648082,-2.8749840907948965e-7,-0.000003840634690277511,-0.000006959578513487941,-0.000013347347703529522,1.2497545753831218e-7,-0.000008933499884733465,0.000012038509339618031,0.000004157961939199595,0.00000892525349627249,0.000014358175576489884,-0.0000017458401089243125,0.000015531888493569568,0.0000011401114079490071,0.000013105558537063189,0.000012283217984077055,0.000013530539945350029,0.000011530215488164686,0.00001159277690021554,5.350490255295881e-7,0.0000063530819716106635,-6.013257234371849e-7,0.0000031688239232607884,0.000008902071385819,-0.0000030289324968180154,0.0000104135970104835,-0.000009928397048497573,0.000004485893896344351,-0.000005377505658543669,-0.0000013817983699482284,0.0000027258081445324933,-0.00001797814547899179,0.000005427595169749111,-0.00003357703462825157,0.00001153597349912161,-0.000016713764125597663,0.00001749700095388107,0.00001582923869136721,0.000018839591575670056,0.000024307311832671985,0.000028232167096575722,0.000012363442692731041,0.00003313900015200488,4.921504341837135e-7,0.000008201181117328815,-0.000004780452854902251,-0.00002234796374978032,-3.537929842423182e-7,-0.000019479883121675812,0.0000035339492114871973,0.0000019553631318558473,-0.000006310787284746766,0.0000048780952965898905,-0.000016523783415323123,-0.000006488742656074464,-0.00000970436303759925,-0.000006401556220225757,0.0000040938898564490955,-0.0000037819918361492455,0.0000036536346215143567,-0.000015109381820366252,-0.000009658116141508799,-0.000016028870959416963,-0.000012950125892530195,2.9602941253870085e-7,-0.0000048607880671625026,-0.0000029371478831308195,-0.000002008118826779537,-0.000014304634532891214,0.000009825911547522992,0.000006691116141155362,0.00003514895070111379,0.00003057632056879811,0.00003202812513336539,0.0000256546882155817,0.000005390306341723772,0.00002182609387091361,0.000009715551641420461,0.000023998347387532704,0.000029058137442916632,0.000014241700228012633,0.000018586209989734925,0.000014010002814757172,0.0000015582974128847127,0.000022730857381247915,-4.4055727244085574e-7,0.000007286446361831622,-0.000004155114311288344,-0.000015673245798097923,-0.0000013827599332216778,-0.000014323575669550337,0.000014420313164009713,-0.000004594429810822476,0.00001533803515485488,-0.000003257871640016674,-0.0000015057372593219043,-0.000002804571522574406,-0.000008264756615972146,-0.000002011342530749971,-1.9574802934130275e-7,-0.0000025387560071976623,0.0000055548180171172135,-1.6860264295814886e-8,0.0000012650032203964656,0.000004872145836998243,-0.0000017890718027047114,0.000006571066933247494,0.000007390759037662065,0.0000020470258732530056,0.000013906128515372984,-0.000004494631411944283,5.931532598424383e-8,-0.000005363530362956226,-0.000019025612346013077,-9.746487705797335e-8,-0.000022788828573538922,0.000005759361101809191,-0.000019057089957641438,0.000006455238690250553,-0.000020634686734410934,1.0177009812650795e-7,-0.000019465514924377203,-0.000004779817118105711,-0.000005687471002602251,-0.000001974281985894777,0.000007814288437657524,6.800347023272479e-7,0.000006204283181432402,0.0000022189678929862566,0.000003214903017578763,0.000011109933439001907,0.000014264518540585414,0.000020891659005428664,0.000024231410861830227,0.000021565774659393355,0.00002063306419586297,0.000018980705135618336,0.000019460489056655206,0.000016109910575323738,0.00002946244967461098,0.000004959099442203296,0.000031635663617635146,-0.000011636377166723832,0.000012494529073592275,-0.000017649961591814645,-0.000009775249054655433,-0.000009684803444542922,-0.000012299901754886378,-0.0000045431584112520795,-0.000004680217443819856,-0.000009361619959236123,-0.000006417827080440475,-0.000009478884749114513,-0.000008635995982331224,-0.000002210264710811316,-0.0000013944970760348951,-0.0000027300702640786767,3.419471852339484e-7,-0.000005760077328886837,-0.000005887148290639743,0.000009123318704951089,-0.0000018179079006586107,0.000034976685128640383,0.00000800656562205404,0.00004315484329708852,0.0000026375134893896757,0.000026162653739447705,-0.000009777288141776808,0.000008337022336490918,-0.0000043383224692661315,0.000008042879017011728,0.000011266129149589688,0.000007552520855824696,0.000007821462531865109,-0.000010834794011316262,-0.0000071405156631954014,-0.000023741020413581282,0.0000010096468940901104,-0.000008777444236329757,0.000024047909391811118,0.00001084489394997945,0.000021773150365334004,0.000009878775927063543,-0.000002468845650582807,0.0000019583242192311445,-0.000011829857612610795,0.000007180449301813496,0.0000019898930077033583,0.00002007572038564831,0.000023562599380966276,0.000022493708456750028,0.00003725415081134997,0.000009227091140928678,0.000025104887754423544,-0.000004577635081659537,-0.0000057226006902055815,-0.000007426877800753573,-0.000013954405403637793,-0.000007396818546112627,0.000010363718502048869,-0.000005682496066583553,0.000023153961592470296,0.000005215436885919189,-5.851776450072066e-7,0.000008301271009258926,-0.00002839875378413126,-0.000008671786417835392,-0.00002114908602379728,-0.000016385081835323945,0.000010340518201701343,-0.000003332814912937465,0.00001631920167710632,-0.00000240609824686544,-0.00001683917253103573,-0.000019458128008409403,-0.00004172520129941404,-0.00002798895184241701,-0.00002957127071567811,-0.00002257167943753302,-0.0000011277380735918996,-0.000006745275186403887,0.000029834796805516817,0.00001443145356461173,0.00004889423871645704,0.000019520353816915303,0.000028781312721548602,0.00001101738143916009,-0.000002304964709765045,0.000015570509276585653,0.000006559727353305789,0.00002491160194040276,0.0000246861109189922,0.00002092513932439033,0.000005571321253228234,0.000019767994672292843,-0.000017234433471458033,0.000029364162401179783,-0.000006860925623186631,0.00003287310028099455,0.000014419410035770852,0.00002570765900600236,0.000020948997189407237,0.000014982444554334506,0.00001133622572524473,0.000005069058261142345,-0.000007599034233862767,-1.9249199567639153e-7,-0.00002135621070920024,4.192748974674032e-7,-0.00001811559559428133,0.000005204026820138097,-0.00000684716133037,0.000006793804459448438,-0.000007115300377336098,-9.464126833336195e-7,-0.000015396170056192204,-0.000005022252480557654,-0.0000057560728237149306,0.00000310011228066287,0.00001830806468205992,0.000005690162652172148,0.000025002680558827706,-0.0000018066829170493293,0.000016883142961887643,-9.190588343699346e-7,0.00001677891305007506,0.000008744715159991756,0.000017492679035058245,0.000009262767889595125,0.000009641324140829965,-0.000007944317985675298,0.0000026682307634473545,-0.000028819362341891974,-5.567349248281062e-9,-0.000027849970138049684,2.9275554425112205e-7,-0.000011288384484942071,8.639408122235182e-8,-0.000010010178812080994,-0.0000057664710766403005,-0.000018038146663457155,-0.000005938334197708173,-0.000011676184840325732,0.00000538736594535294,6.286371672103996e-7,0.000010601774192764424,0.00000795031610323349,0.000006878713065816555,0.000014448815818468574,0.0000053991193453839514,0.000019121212972095236,0.0000037922372939647175,0.00002377148666710127,0.000004110886493435828,0.000028523567380034365,0.000009884578503260855,0.000025298351829405874,0.000009547493391437456,0.000019423143385211006,0.0000016244050584646175,0.00001698599044175353,-0.0000035492291772243334,0.000010943429515464231,-0.000004347200501797488,0.0000019216581677028444,-0.000004650058144761715,-0.000010098739949171431,-0.000013551755728258286,-0.00002283834692207165,-0.000026392148356535472,-0.000012812127351935487,-0.000015902620361885056,0.00001567458821227774,0.000012308804798522033,0.00002283371395606082,0.000024552044123993255,0.000011854270269395784,0.00002660317659319844,0.000012907260497740936,0.00003121679401374422,0.000015185296433628537,0.00002326429785171058,-7.34506613753183e-7,0.000012328557204455137,-0.000023603226509294473,0.000014685990208818112,-0.00003268428554292768,0.000009220393621944822,-0.00002234849307569675,-0.000007605170594615629,-0.000011407089004933368,-0.000006624821708101081,-0.000009982724805013277,0.00001263109425053699,0.000003306656026325072,0.00002181891250074841,0.000024524020773242228,0.000007929559615149628,0.000019206416254746728,-0.000012103923836548347,-0.000002410376964689931,-0.000014605987416871358,-0.000003715801540238317,-0.000006302369911281858,0.000010128199392056558,-0.000007889429980423301,0.000014167191693559289,-0.00001256161522178445,0.0000057639072110760026,-0.000005861424597242149,-9.619938055038801e-7,0.00000681865458318498,0.0000016880826478882227,0.000011544870176294353,0.0000037514641917368863,-2.56049020208593e-7,0.0000014714703411300434,-0.000014694560377392918,0.000007349543466261821,-0.000010221549928246532,0.000018233196897199377,-7.090650342433946e-7,0.00002102341750287451,-0.000006131372174422722,0.000020034074623254128,-0.000009446019248571247,0.000019742274162126705,0.0000019139167761750286,0.000014728439964528661,0.000014092046512814704,0.000003048159214813495,0.000020496132492553443,-0.000008900403372535948,0.000023662334569962695,-0.000005791300736746052,0.000022625017663813196,0.0000075333286986278836,0.000012899877219751943,-0.0000017856511931313435,-0.000006809377737226896,-0.000028199405278428458,-0.00001746432280924637,-0.00003172568540321663,-0.000006750207376171602,-0.00001866254024207592,-0.0000010079621688419138,-0.000013011737792112399,-0.00000956672738539055,-0.000004242810973664746,-0.000002119594682881143,0.000006584605671378085,0.00002223004776169546,0.000006579176442755852,0.000033968506613746285,0.000009475802471570205,0.000025046378141269088,0.000017056823708117008,0.000005184896053833654,0.000012699285434791818,-0.000006306862815108616,0.000008491949301969726,0.000004087344223080436,0.000018048402125714347,0.000011509853720781393,0.000021365476641221903,-0.000005565815172303701,0.000006844592917332193,-0.000022027259547030553,-0.000005569290806306526,-0.00002120573481079191,-0.000002695209104786045,-0.00001900665483844932,4.4863107007131475e-8,-0.000016556557966396213,-0.000010590822967060376,-0.0000065892354541574605,-0.000017760654372978024,-8.225159149333194e-7,-0.0000025858541903289733,0.0000011124238881166093,0.000020903720724163577,0.00001814771349017974,0.000027480426069814712,0.00004084043393959291,0.0000177144720510114,0.00004253354563843459,0.000010023189133789856,0.000033290092687821016,0.0000067583277996163815,0.000030763236281927675,-0.000003997994099336211,0.00001618833266547881,-0.000014886847566231154,-0.000012435123608156573,-0.00001306923968513729,-0.00002227741242677439,-0.000013466869859257713,-0.000015753304978716187,-0.000023232454623212107,-0.00001852498644439038,-0.00002162655619031284,-0.0000210459329537116,-0.00000750824165152153,-0.000011541855201357976,0.000005184509518585401,-0.0000010159284329347429,0.000017868627764983103,0.000005208628408581717,0.000021801406546728685,0.000004908810751658166,0.00000935355910769431,0.000002482380750734592,0.0000020374698124214774,0.000012640602108149324,0.0000043602076402748935,0.000021848769392818213,-0.000003835069946944714,0.000009052029781742021,-0.000015977773728081957,-0.00000437899689131882,-0.000015400755728478543,-0.0000011541671938175568,-0.000007877672032918781,-8.166315268454127e-8,-0.000005477804279507836,-0.0000075803836807608604,-0.000016252544810413383,-0.000015123989214771427,-0.00003125966031802818,-0.000023901306121842936,-0.00002719650547078345,-0.00002844541631930042,-0.000010009978723246604,-0.000019015275029232726,-0.000002046205736405682,3.0927870398045343e-7,0.000004475987225305289,0.000018435192032484338,0.000017293778000748716,0.000025111336071859114,0.00002306950045749545,0.000019393164620851167,0.000024574750568717718,0.000011862235623993911,0.00003010806358361151,0.000008740132216189522,0.000028634845875785686,0.000012442340448615141,0.00002007111288548913,0.000022071695639169775,0.00001786083885235712,0.000019058017642237246,0.000014229030057322234,-0.000005833061550220009,-0.0000042547835619188845,-0.00002718412179092411,-0.000025061946871574037,-0.00003152936915284954,-0.00003277888026786968,-0.00003887666389346123,-0.000034648659493541345,-0.000050274011300643906,-0.00003677815038827248,-0.00004247226388542913,-0.00002903110726037994,-0.000020898798538837582,-0.000010089145689562429,-0.000010234728506475221,0.000006811966159148142,-0.000005313822384778177,0.0000156254736793926,0.000009165262781607453,0.00002019751991610974,0.00002104634950228501,0.000026244979380862787,0.000020415984181454405,0.00003609451960073784,0.000021696680050808936,0.0000403553967771586,0.00002973491973534692,0.00002806495649565477,0.000031540897907689214,0.000004485058980208123,0.000023197349946713075,-0.00001706145121715963,0.000012635712664632592,-0.0000292308959615184,0.0000058418190747033805,-0.000030073091693338938,-1.1923079057396535e-7,-0.00002137258525181096,-0.000009712542123452295,-0.000012220786629768554,-0.000016407961084041744,-0.000012456388503778726,-0.000015059623365232255,-0.000008678027370478958,-0.000009216743819706608,0.000019928700567106716,0.000004287425326765515,0.00004467799226404168,0.00002016187136177905,0.000024435452360194176,0.000019308243281557225,-0.000007724876013526227,0.000009188834155793302,-0.0000019114108908979688,0.000012105027053621598,0.00002055629374808632,0.000020270883396733552,0.000018115131751983427,0.00001163760225608712,-0.00001510960100858938,-0.000021670934074791148,-0.00005311196582624689,-0.00005914847133681178,-0.00005459808380692266,-0.00006084770575398579,-0.000027462207071948797,-0.00003233471579733305,-0.000024315484552062117,-0.00001873439396149479,-0.00003443852983764373,-0.00001817194242903497,-0.000014029920748725999,-0.000009114837666857056,0.000012373760910122655,-0.000003239905254304176,0.000010735915566328913,-5.519689239008585e-8,-0.0000018883721395468456,0.00000311321650769969,-0.0000017775488458937616,-0.000006557762844749959,0.000015179120964603499,-0.00000455604003946064,0.000022281594283413142,0.000017691370885586366,-0.0000038258062886598054,0.000012033361599605996,-0.000019834642444038764,-0.000010000385373132303,0.000010684007975214627,0.000009171661986329127,0.00004517719935392961,0.00004714382521342486,0.0000477431713079568,0.00005181042797630653,0.000026211499061901122,0.00002550805947976187,0.000003884897068928694,0.00000662306683807401,0.000017071641195798293,0.00003120501423836686,0.00004284991882741451,0.00006512828258564696,0.000018203174477093853,0.00004200913826934993,-0.000014842201380815823,0.000003909772658516886,0.000008061370863288175,0.000021963762264931574,0.00003848099004244432,0.00005715851148124784,0.000043984284275211394,0.00006707866123178974,0.000052957908337702975,0.00006693915202049538,0.000049615926400292665,0.00005375961336540058,0.0000309937859128695,0.00003500019374769181,0.000029505476049962454,0.000029334600185393356,0.000023507789592258632,0.00001465066452510655,-1.0310985487649305e-7,-0.000006374973509082338,-0.000008675759090692736,-0.000009088520528166555,-0.000021084319087094627,-0.000024063272576313466,-0.0000631984366918914,-0.0000610212046012748,-0.00009105104982154444,-0.00007528847345383838,-0.00008082981366897002,-0.00007128059951355681,-0.00007338736031670123,-0.00008348179107997566,-0.00009302627586293966,-0.00010063370427815244,-0.00010311997175449505,-0.00009475899423705414,-0.00006107790977694094,-0.00005710756522603333,-0.0000045567167035187595,-0.000016807351130410098,-0.000008728594366402831,-0.000024047727492870763,-0.000054534481023438275,-0.00006562787166330963,-0.00006661251245532185,-0.0000764136275392957,-0.00004220175833324902,-0.00005006900755688548,-0.000025705265215947293,-0.000036733610613737255,-0.00002846791539923288,-0.0000510317986481823,-0.000025806351914070547,-0.00004952012750436552,0.000005754276116931578,-0.0000016414161336797406,0.0000425573016400449,0.00004579619053401984,0.00004338672079029493,0.000038616690289927647,0.000029018654458923265,0.000013091679647914134,0.00003744493369595148,0.000019917650206480175,0.000044882068323204294,0.00003138934698654339,0.00002662312181200832,0.000016957039406406693,0.000012313065781199839,0.000002333392103537335,0.00001934301690198481,0.0000014684613915960654,0.000014003498108650092,-0.000012435083590389695,-0.00001898372829600703,-0.000038960213714744896,-0.00003305000063846819,-0.00003180839848937467,-0.000003220078497179202,0.000009098755072045606,0.00001692907972028479,0.00001644175426918082,-0.0000025018243832164444,-0.000015483534298255108,-0.00001627800338610541,-0.000018092352547682822,-0.000013463391951518133,0.0000019396563857299043,-0.00003174218363710679,-0.0000160226827574661,-0.00005453410267364234,-0.00004583518239087425,-0.000040986185922520235,-0.000035656023101182655,-0.00001567927210999187,-0.000013575969205703586,-0.000018654585801414214,-0.000008182525562006049,-0.000031149891583481804,0.000004068513590027578,-0.000022341226213029586,0.000019159466319251806,-0.00001293922196055064,0.000003855884187942138,-0.00003387294782442041,-0.00002583240348030813,-0.000057961613492807373,-0.000027385123757994734,-0.000033527012419654056,0.0000016514985645699198,0.00003071745595661923,0.000041599003452574834,0.00007069997809594497,0.00007186799484770745,0.00005709023025701754,0.00006439198477892205,0.000029486905987141654,0.000029499340598704293,0.0000209078880288871,0.000017297805243288167,0.000013292264156916644,0.000027950874937232584,-0.0000013293877145770239,0.000019151208107359707,-0.000006482500339188846,-0.0000067296255110704806,-0.000007697241926507559,-0.000014276416550274007,0.0000016702936136425706,0.000015172436178545468,0.00004288800846552476,0.00006377120007527992,0.00006793632928747684,0.00007132426253519952,0.00002048872920568101,0.000012990089089726098,-0.000048709236580180004,-0.000047732733946759254,-0.00007167227886384353,-0.00006812359788455069,-0.000064849853515625,-0.00008061769040068612,-0.00006814341759309173,-0.00010230079351458699,-0.00008719259494682774,-0.0001180777617264539,-0.00008941548003349453,-0.00011921609257115051,-0.00003779408143600449,-0.00008811964653432369,0.000030435225198743865,-0.000025285318770329468,0.00004108916618861258,0.000014433621799980756,0.00001024217635858804,-0.000005194896857574349,0.000005180342213861877,-0.000034165761462645605,0.000023372396753984503,-0.000010869540346902795,0.00002539250453992281,0.00003357906825840473,0.000018433291188557632,0.00003062555697397329,0.000026741767214844003,-7.219643407552212e-7,0.00003656093031167984,-0.000001136163632509124,0.00003117337473668158,0.000021541796741075814,0.0000293058437819127,0.000043496882426552474,0.000037782541767228395,0.00007139385706977919,0.0000416023212892469,0.00009288021101383492,0.00005254682037048042,0.00009893468813970685,0.00006880204455228522,0.00010826986544998363,0.00005927990423515439,0.00011457254731794819,0.00005459919702843763,0.00010707223555073142,0.000094101473223418,0.00010680824925657362,0.00011209934746148065,0.00010920516069745645,0.000056838165619410574,0.00008033691119635478,-0.0000068494009610731155,0.000025022674890351482,-0.00002701147059269715,-0.000019174229237250984,-0.00003586516322684474,-0.00004372096373117529,-0.0000652634262223728,-0.00007542935782112181,-0.00009048141509993002,-0.00010400706378277391,-0.00006278631190070882,-0.00007421393820550293,0.0000025940585146599915,-0.000008294062354252674,0.0000325960099871736,0.000008096650162769947,0.00003069816739298403,-0.0000037499498830584344,0.000056778833823045716,0.000025616709535825066,0.00007991064921952784,0.00004987000284017995,0.000045740198402199894,0.000019337981939315796,0.000004544684998109005,-0.000008798326234682463,0.000008757365321798716,-0.0000021096132059028605,0.00001856036215031054,0.000004826958502235357,0.000005461828550323844,0.000007710723366471939,0.000010949572242680006,0.000018963972252095118,0.000044504369725473225,0.00002303562177985441,0.00004023867586511187,0.000010020921763498336,-0.000025972738512791693,-0.00001586198777658865,-0.00007700323476456106,-0.00004665309825213626,-0.000055274140322580934,-0.000052602150390157476,-0.0000061497439673985355,-0.00001668721961323172,0.000008728478860575706,0.000013330021829460748,-0.0000029871407605241984,-0.000004125208306504646,-0.0000026293639621144393,-0.00002612005664559547,0.0000065824074226839,-0.000017083671991713345,-0.0000046906184252293315,-0.00001556396091473289,-0.00002643541301949881,-0.00003281334284110926,-0.000039624956116313115,-0.00004113918112125248,-0.00007187780283857137,-0.00006438163109123707,-0.0001236143143614754,-0.00011173521488672122,-0.00012688638526014984,-0.00011649612861219794,-0.00006469413347076625,-0.00005987553595332429,-0.000014351888239616528,-0.000007210273906821385,-0.000016002846678020433,0.000014015030501468573,-0.000009058734576683491,0.00003463930625002831,0.000044094260374549776,0.00006039829531800933,0.00007179840031312779,0.00006237921479623765,0.000030082985176704824,0.000039645121432840824,-0.0000010439434845466167,0.000020206653061904944,0.00001813493508961983,-8.59565261634998e-7,0.000021399320758064277,-0.000031689640309195966,0.000003812285285675898,-0.00003198267222614959,0.00001682609217823483,0.0000013957578630652279,0.00004154344787821174,0.000013956621842226014,0.00004097841519978829,9.028317435877398e-7,0.000013097586816002149,-0.000017888380170916207,-0.000026429661375004798,-0.000042822484829230234,-0.00003054921762668528,-0.00004142971010878682,-0.000001531986526970286,-0.00001933212115545757,-0.0000132069308165228,-0.000039306974940700457,-0.00004899566920357756,-0.000061745238781441,-0.000037255726056173444,-0.000020425879483809695,-0.000015082103345775977,0.000013367198334890418,-0.00003093281702604145,-0.000012532468645076733,-0.000054078089306131005,-0.00003815422678599134,-0.00006230008148122579,-0.000032039140933193266,-0.000044264997995924205,9.833966032601893e-7,-5.77034370508045e-7,0.000045075670641381294,0.000020452816897886805,0.00004831075420952402,0.000016518073607585393,0.00002406950807198882,0.000028525224479380995,0.000029365415684878826,0.00002138098716386594,0.000015089812222868204,-0.00003114295031991787,-0.00005498417158378288,-0.00005744315421907231,-0.00008467251609545201,-0.000022096755856182426,-0.000038503785617649555,0.000013987733836984262,-0.000011090352927567437,0.000002372082235524431,-0.000031918280001264066,-0.000031449904781766236,-0.000032338593882741407,-0.00003993864811491221,-0.000005635174602502957,-0.00003002981611643918,-0.000012256874470040202,-0.00002950612542917952,-0.000029784107027808204,-0.000014617784472648054,0.00001263211561308708,0.00002073836003546603,0.000060902915720362216,0.00002685291474335827,0.00002972178117488511,0.000003865030521410517,-0.000011656133210635744,-0.0000019173003238392994,0.000016705547750461847,0.000012224107194924727,0.000058518213336355984,0.000023397415134240873,0.00006208814738783985,0.000014334675142890774,0.000048294361477019265,-0.000011518812243593857,0.00003706568531924859,-0.000009435871106688865,0.00004311736120143905,0.000036349370930111036,0.00005881915785721503,0.0000780311384005472,0.00005478940511238761,0.00009043554018717259,0.00005104908996145241,0.00008298666216433048,0.00006888940697535872,0.00006298254447756335,0.00007044045923976228,0.000054575710237259045,0.00005354037421057001,0.000060902479162905365,0.00005536368189495988,0.00004294863174436614,0.00005029814929002896,0.000005725249138777144,0.000005086803867015988,-0.000010700321581680328,-0.00004252125654602423,-0.000021980682504363358,-0.000058042256569024175,-0.00005544697341974825,-0.000054441989050246775,-0.00008118953701341525,-0.00004292158700991422,-0.00007777901191730052,-0.000035333177947904915,-0.00007716101390542462,-0.00005428513395600021,-0.00008297056774608791,-0.0000670280642225407,-0.00005144996976014227,-0.000014605345313611906,-0.00000779076071921736,0.0000432292181358207,-0.00003144462971249595,0.000004673118382925168,-0.00008541214629076421,-0.00005519864134839736,-0.00006174968439154327,-0.000014400528016267344,0.000012012095794489142,0.000047868241381365806,0.000030405124562093988,0.00002368395507801324,0.000001922777300933376,-0.000011832757991214748,0.0000026430798243382014,0.000012279679140192457,0.00003241767262807116,0.000024375991415581666,0.00003544256105669774,-0.00002144496829714626,0.0000066679922383627854,-0.00006405106250895187,-0.000002957086053356761,-0.00005756971222581342,0.000015621615602867678,-0.00003508651934680529,0.00001469517155783251,-0.00004308757706894539,-0.000010895128070842475,-0.0000762795825721696,-0.00001937178421940189,-0.00009255228360416368,-0.000009577730452292599,-0.00007198793900897726,-0.00001064251409843564,-0.00004143540354561992,-0.000017639989891904406,-0.00002866461181838531,-0.000003194289547536755,-0.00001008950584946433,0.000025677494704723358,0.0000337935853167437,0.00002025209141720552,0.00004816519140149467,-0.00003013358946191147,0.000005368628990254365,-0.00005807228444609791,-0.000014198250937624834,-0.000024669036065461114,0.00002980853787448723,0.00001305967180087464,0.0000615404496784322,0.000003169276169501245,0.000039045036828611046,-0.000026213239834760316,0.000006035425030859187,-0.000030444816729868762,-0.000012050156328768935,-0.000019078106561210006,-0.000029675369660253637,-0.000031799194402992725,-0.000055997508752625436,-0.0000721602700650692,-0.00009207191760651767,-0.00010938722698483616,-0.00013436700101010501,-0.00012641138164326549,-0.0001619315444258973,-0.00012095387501176447,-0.00015179513138718903,-0.00009973258420359343,-0.00012022676673950627,-0.00008012935722945258,-0.0001016552560031414,-0.000054741190979257226,-0.00008083759166765958,-0.00000593823006056482,-0.00002722652061493136,0.000044529537262860686,0.000031446641514776275,0.00007436021405737847,0.00005673569467035122,0.00008370971045223996,0.000051376631745370105,0.00005631861131405458,0.0000279171799775213,-0.0000013176068023312837,0.0000014861398085486144,-0.000035487813875079155,-0.00001107328716898337,-0.000028035083232680336,-0.000009004481398733333,-0.000013428236343315803,0.000007951015504659154,-0.000012215399692649953,0.000026802747015608475,-0.000010574289262876846,0.00001737370803311933,0.000018003340301220305,5.736237653763965e-7,0.00006992507405811921,0.00002058242716884706,0.00009748925367603078,0.000049604932428337634,0.00007757225830573589,0.0000480062335554976,0.000046539622417185456,0.000040741320844972506,0.0000359866680810228,0.000044753498514182866,0.00003149465555907227,0.00003402285074116662,0.000016869544197106734,0.000012217524272273295,0.000014416894373425748,0.00001694033562671393,0.00002633786789374426,0.00003387614560779184,-0.0000031246981961885467,0.000006746628059772775,-0.00006808514444855973,-0.0000424836362071801,-0.00007945387915242463,-0.000040809682104736567,-0.00004131623427383602,-0.000006584262791875517,-0.000027186131774215028,0.000009418003173777834,-0.00001379865534545388,0.000029131773771950975,0.00003061928873648867,0.00005724620132241398,0.00004902021464658901,0.0000633458184893243,0.000014305432159744669,0.000058562731283018366,-0.000027793557819677517,0.000046056477003730834,-0.000024998287699418142,0.00002725913145695813,0.000025247172743547708,0.000039892023778520525,0.00004112611713935621,0.000050569287850521505,-0.000014535172340401914,0.0000067802211560774595,-0.00004382204497233033,-0.000026799832994583994,-0.000016543841411476023,-0.0000244089933403302,-0.000021907017071498558,-0.00005314009467838332,-0.00005711687481380068,-0.00007939628267195076,-0.00006287739233812317,-0.00005297015013638884,-0.000055925644119270146,-0.0000416878356190864,-0.000044781805627280846,-0.00005816018165205605,-0.000014692141121486202,-0.000038615464291069657,0.000015342511687777005,-0.0000019092221918981522,0.00004032142896903679,0.000013651363587996457,0.0000466067940578796,0.000017852991732070222,1.3027107570451335e-7,0.0000011722290764737409,-0.0000434878165833652,-0.000021812964405398816,0.000001429963049304206,0.00001604595672688447,0.00008827573037706316,0.00010605066927382722,0.00011196303967153654,0.00014238811854738742,0.00007170428580138832,0.00009203513036482036,0.00005030815373174846,0.00005320513810147531,0.00006844555173302069,0.00007133291364880279,0.00004482951044337824,0.000057309403928229585,-0.00004976908894605003,-0.000016540670912945643,-0.00012368492025416344,-0.00006704733095830306,-0.00012687843991443515,-0.00008667777001392096,-0.00010667263995856047,-0.00010933732846751809,-0.0000810641358839348,-0.0000843552261358127,-0.00003626633406383917,-0.000011461594112915918,-0.000003800034392043017,0.000010872363418457098,-0.00001115972099796636,-0.000024820123144309036,-0.000016356738342437893,-0.00003160407504765317,0.000021647872927132994,0.00000160533340931579,0.000044044452806701884,0.000006865130671940278,-0.000021276600818964653,-0.00004543062095763162,-0.0001009973420877941,-0.00010950845899060369,-0.00008220582094509155,-0.00012713325850199908,-0.000009265588232665323,-0.00009223717643180862,0.00001942663948284462,-0.00004278800042811781,0.000014971864402468782,-0.000015608507965225726,0.000012556516594486311,-0.00001997295839828439,-0.00001677776890574023,-0.00004871925193583593,-0.00008439271186944097,-0.00009608511754777282,-0.00012681048247031868,-0.00012660387437790632,-0.00009491848322795704,-0.00009672807937022299,-0.000038584679714404047,-0.00004915422323392704,-0.000011407275451347232,-0.00003619683411670849,0.000020544717699522153,-0.000004877408628090052,0.000057512861530994996,0.00005082879215478897,0.000023422402591677383,0.00003235676922486164,-0.00007216427911771461,-0.000044125583372078836,-0.00013907243555877358,-0.00007763699250062928,-0.0001589777530170977,-0.00009526571375317872,-0.0001702349109109491,-0.00015039237041492015,-0.00018199183978140354,-0.00018227424880024046,-0.0001656827371334657,-0.00014178658602759242,-0.00009661682270234451,-0.00006982849299674854,-0.000024176955776056275,-0.000023143686121329665,-0.000021666413886123337,-0.000022818921934231184,-0.00004684945088229142,-0.00003441434455453418,-0.000010103430213348474,0.0000032032912713475525,0.00006675547047052532,0.00008603621245129034,0.00010718784324126318,0.0001322274620179087,0.00010200230462942272,0.00010818237205967307,0.00009606129606254399,0.00009692880848888308,0.00011241745960433036,0.00014431362797040492,0.00011704491771524772,0.00014793468290008605,0.00008428628643741831,0.000059725869505200535,0.00006823895819252357,0.00001569482628838159,0.00011798230116255581,0.00008751583663979545,0.00017217642744071782,0.00014552491484209895,0.00014642594032920897,0.00009886995394481346,0.0000820255299913697,0.0000389802225981839,0.0000945738865993917,0.00006543559720739722,0.00017948643653653562,0.00013175995263736695,0.000207908742595464,0.00013581017265096307,0.0001348408404737711,0.00007278104749275371,0.000048818663344718516,0.000009134634638030548,0.00001749626790115144,-0.000027329901058692485,0.000009467278687225189,-0.000057572869991417974,-0.000054372627346310765,-0.00011624617764027789,-0.00017348630353808403,-0.00019637461809907109,-0.00020912816398777068,-0.00020959861285518855,-0.00009173363650916144,-0.00011212546814931557,0.000036042500141775236,2.3283064365386963e-8,0.00005594479080173187,0.00004100982187082991,0.000023640137442271225,0.00002810826299537439,0.000004636331141227856,0.0000017502184164186474,-0.0000016116446204250678,-0.000008960413651948329,-0.00001896120375022292,-0.000017643205865169875,-0.00007192717748694122,-0.00006774204666726291,-0.00011022477701772004,-0.0001006519451038912,-0.00004939598875353113,-0.000025064480723813176,0.00006950402894290164,0.00008736859308555722,0.00013112671149428934,0.00011726255615940318,0.00009332889749202877,0.00006975586438784376,-0.000007504016139137093,-0.0000017577287962922128,-0.0000711821558070369,-0.00003985501825809479,-0.000008704300853423774,0.00001219889509229688,0.00010966281115543097,0.00010688483598642051,0.0001459826744394377,0.00014799759082961828,0.00012049888755427673,0.00015319800877477974,0.0001315882836934179,0.0001693947851890698,0.00013466438394971192,0.00013570465671364218,0.00003885695696226321,0.000019557321138563566,-0.0000759758404456079,-0.00006659913924522698,-0.00009499234874965623,-0.00006112013215897605,-0.00007698169065406546,-0.000060936577938264236,-0.00006680353544652462,-0.00007666349119972438,0.000022440679458668455,0.000004864556558459299,0.00012551239342428744,0.00011123484728159383,0.00006374843360390514,0.0000694217742420733,-0.00006522072362713516,-0.000034445423807483166,-0.000056505523389205337,-0.00003903900505974889,0.000005489092927746242,-0.000015380668628495187,-0.000013067590771242976,-0.000028134491003584117,-0.000019961922589573078,0.00001111600886360975,0.00003626819307100959,0.00007595207716803998,0.00005631609747069888,0.000051114606321789324,0.000038434911402873695,4.5267279347172007e-7,0.000059726120525738224,0.00003945884600398131,0.00009166861127596349,0.00010432150884298608,0.00008447789878118783,0.00009268712892662734,0.00006632134318351746,0.000032154312066268176,0.00006209970160853118,3.4997174225281924e-7,0.00007809824455762282,0.0000330825278069824,0.00011409471335355192,0.00009687244892120361,0.00010992292664013803,0.00010118685167981312,0.000043402149458415806,0.00003681848829728551,0.00002333584961888846,0.00002146193219232373,0.00008825006807455793,0.00008878691733116284,0.00010468476102687418,0.00011617453128565103,0.000010868432582356036,0.00003768633177969605,-0.0000832886653370224,-0.00006463406316470355,-0.00009575632429914549,-0.00009790592594072223,-0.00008047091250773519,-0.00008127279579639435,-0.00011930312030017376,-0.00010817989095812663,-0.00019761906878557056,-0.00018406282470095903,-0.00025037425803020597,-0.00022929937404114753,-0.00028175031184218824,-0.00026143481954932213,-0.00030704058008268476,-0.00032354859285987914,-0.00028720812406390905,-0.0003314026980660856,-0.00023685301130171865,-0.0002623709151521325,-0.00020041537936776876,-0.00023299336316995323,-0.0001476819161325693,-0.0002481380943208933,-0.00007395316060865298,-0.00019933024304918945,-0.00001707856063148938,-0.00007966350676724687,0.00003398122498765588,0.000010577972716419026,0.00004213210195302963,-0.000016719475752324797,-0.00003703224865603261,-0.00011134900705656037,-0.00007891521818237379,-0.00010674398799892515,-0.000002282263267261442,0.000002869634954549838,0.00004155691203777678,0.00003237165219616145,-0.000040039492887444794,-0.00005632107422570698,-0.00011622216698015109,-0.00010217920498689637,-0.000052099829190410674,-0.000006442031008191407,0.00011611672380240634,0.00016018351016100496,0.0002177420974476263,0.00024585469509474933,0.00016871566185727715,0.0002069331967504695,0.00009723335824673995,0.00016305266763083637,0.00010130155715160072,0.0001628038880880922,0.00009905041952151805,0.00012441941362340003,0.00005324347148416564,0.00006661077350145206,0.000056269716878887266,0.00009563506318954751,0.0001445938105462119,0.00020467364811338484,0.00022031216940376908,0.00027645783848129213,0.00018519532750360668,0.00023159629199653864,0.00010800627205753699,0.0001519494253443554,0.00012027759657939896,0.00017234316328540444,0.00015244039241224527,0.00021870264026802033,0.000060043548728572205,0.00012630523997358978,-0.00008305638039018959,-0.00003651895167422481,-0.00011915012873942032,-0.0000871685188030824,-0.000041786948713706806,-0.000004809240635950118,0.00004110886584385298,0.000093799018941354,0.00001830440669436939,0.00009007014887174591,-0.00008894543861970305,-0.000008388842616113834,-0.00012280653754714876,-0.000059225996665190905,-0.00004686256579589099,-0.000004007886218460044,0.000010301017027813941,0.00006117883458500728,-0.000004959066245646682,0.00006308007868938148,-0.00005623497781925835,0.0000016901053641049657,-0.00012405106099322438,-0.00009191863500745967,-0.00018024181190412492,-0.0001593408960616216,-0.00019957635959144682,-0.00017160963034257293,-0.00017814745660871267,-0.00013509401469491422,-0.00011708180682035163,-0.00006468065839726478,-0.00006644428503932431,-0.000022329521016217768,-0.00005872109250049107,-0.000030379385862033814,-0.00001940926449606195,-9.50950834521791e-7,0.00007214264041977003,0.00007613632624270394,0.00011203531175851822,0.00009669607970863581,0.00008747195533942431,0.00006836865213699639,0.000107871564978268,0.00009087040234589949,0.00019871782569680363,0.00016566846170462668,0.0002717904862947762,0.0002240440808236599,0.00026444465038366616,0.00022366063785739243,0.0002072927018161863,0.00016754464013502002,0.00017488887533545494,0.00011745865049306303,0.00018788142187986523,0.00012361693370621651,0.00018892365915235132,0.0001353108964394778,0.00012977307778783143,0.00008753158908803016,0.00003708814620040357,0.000010673960787244141,-0.00001981318746402394,-0.00003052715692319907,0.0000012943901310791261,-0.000012440191312634852,0.00007004603685345501,0.000053042742365505546,0.00011080254625994712,0.00010929033305728808,0.00010538451169850305,0.00010385063797002658,0.0001238908589584753,0.00009580529876984656,0.00019793650426436216,0.00016720773419365287,0.00024815084179863334,0.0002446943544782698,0.00019588206487242132,0.00019575741316657513,0.00005647114085149951,0.000033640259061940014,-0.00008082586282398552,-0.00010941842629108578,-0.000123425226774998,-0.0001422984933014959,-0.00009261527156922966,-0.00010913527512457222,-0.00009859810234047472,-0.00011477481893962249,-0.00013260109699331224,-0.00014256648137234151,-0.00009395734377903864,-0.00008956607052823529,-0.000003257652451793547,0.000024219256374635734,0.00006157296593300998,0.00009329195017926395,0.0000909910086193122,0.00009424033487448469,0.00007284159801201895,0.00006831511564087123,0.00001874280314950738,0.00005567546031670645,0.000005360243903851369,0.00006956124707357958,0.00004115957926842384,0.00008636829443275928,0.00006720854435116053,0.00010175880743190646,0.000058497971622273326,0.00010565094271441922,-0.00000532744888914749,0.00003650475264294073,-0.00008412737224716693,-0.00005737183892051689,-0.00004074765456607565,-0.000015765856005600654,0.00012070624507032335,0.00012950683594681323,0.0002018612576648593,0.0001815898867789656,0.0001366319484077394,0.00012036338011967018,0.00008128847548505291,0.00008533558138879016,0.00012598736793734133,0.00011848862050101161,0.0001826434163376689,0.00015625306696165353,0.00019109569257125258,0.00017093791393563151,0.00020420609507709742,0.00018747098511084914,0.00021713862952310592,0.00019607768626883626,0.00015462526062037796,0.00015112361870706081,0.00005944148142589256,0.00007137679494917393,0.00002383520950388629,0.00001862557473941706,-0.0000068000390456290916,-0.000017121023120125756,-0.00010218597890343517,-0.00007586612628074363,-0.0001744521432556212,-0.0001242063590325415,-0.0001295977272093296,-0.00010483716323506087,-0.00002151472472178284,-0.000034661545214476064,0.00004824878487852402,0.000019321976651553996,0.000060638627473963425,0.000033946442272281274,0.000049855512770591304,0.00003052474494324997,0.00003425036265980452,0.000019722010620171204,0.00003538441160344519,0.00002866454451577738,0.00006024901085766032,0.00007192634075181559,0.00005440136737888679,0.00007213866047095507,0.000019199043890694156,0.000010913217920460738,0.000045549073547590524,0.000012097194485249929,0.00010095175093738362,0.00006870793731650338,0.00007156033825594932,0.00003835436291410588,0.000020153316654614173,-0.000019508930563461035,0.0000535928484168835,0.00003740128158824518,0.00010149527952307835,0.00011497524246806279,0.00008390550647163764,0.0000843971865833737,0.00003986573210568167,0.000023354001314146444,0.000007602353434776887,0.000020408371710800566,-0.000010802616088767536,0.000026732461265055463,-0.000005622944627248216,0.0000034467293517082,0.000030874678486725315,0.000010173034752369858,0.00007900789205450565,0.0000685180420987308,0.00007322894089156762,0.00007221940177259967,-0.000027310783480061218,-0.000044682725274469703,-0.0001466236572014168,-0.00017769132682587951,-0.00018490885850042105,-0.00021317791834007949,-0.00014575586828868836,-0.00016396366117987782,-0.00008703183266334236,-0.000096126452262979,-0.00003868097337544896,-0.00006154235597932711,0.0000013577704294220894,-0.00006000530629535206,0.00003719485175679438,-0.000029292279577930458,0.00005176669219508767,0.000037953537685098127,0.00004797007568413392,0.0000610950737609528,0.00007513132004532963,0.000035335040593054146,0.00014191074296832085,0.000057879464293364435,0.00018908843048848212,0.0001475651515647769,0.00020764136570505798,0.00022060774790588766,0.00025390449445694685,0.0002503087744116783,0.00030238457839004695,0.0002672707778401673,0.0002528578625060618,0.000237257219851017,0.00013433310959953815,0.00013784827024210244,0.00008091441122815013,0.000059937723563052714,0.00008225104829762131,0.00005401169983088039,0.00003974448191002011,0.00004953946336172521,-0.000010107636626344174,0.00001073527801054297,-0.000020950206817360595,-0.00003656994522316381,-0.00005993116428726353,-0.0000808492986834608,-0.00011625375918811187,-0.0000944273269851692,-0.00010681073763407767,-0.00007551605085609481,-0.00007586299034301192,-0.00009075189882423729,-0.00008544810407329351,-0.00012747022265102714,-0.00006861256406409666,-0.00007860875484766439,0.000004575975708576152,0.00004120101948501542,0.00003772617856157012,0.0000848198906169273,-0.000009577727723808493,0.000012361198059807066,-0.00005892533590667881,-0.00005592560046352446,-0.00008714772411622107,-0.00006369994662236422,-0.0001394686260027811,-0.00008136204269248992,-0.00015996844740584493,-0.00010361209569964558,-0.00011126687604701146,-0.00008401738159591332,-0.00014169493806548417,-0.00011784620437538251,-0.0002762835065368563,-0.00022666376025881618,-0.0002874225901905447,-0.00022627771249972284)
26 new Array(-0.00014015505439601839,-0.00009424725431017578,-0.0000367982174793724,-0.000012330742720223498,-0.000009979183232644573,-0.000005074737146060215,0.000015334489944507368,0.000006053265224181814,0.000033470423659309745,0.000029470638764905743,0.00009303881961386651,0.00010694590309867635,0.00022122845984995365,0.00022976046602707356,0.00027943524764850736,0.00024943548487499356,0.000181631650775671,0.00012874089588876814,0.000033948716009035707,0.00001643829637032468,-0.000038822603528387845,-0.000005076801244285889,-0.000026619280106388032,-0.000004013060788565781,-0.000020743873392348178,-0.000060739057516912,-0.00009209522977471352,-0.00015305288252420723,-0.0001557939249323681,-0.00016957358457148075,-0.00011526542220963165,-0.00008990408241515979,-0.00003546544030541554,-0.000018380367691861466,0.000005372870873543434,0.000013720681636186782,0.000005543797669815831,0.00003979273242293857,-0.000014010610357217956,0.00005891008913749829,-0.00001633692954783328,0.00006351392949000001,-0.000011691547115333378,0.000035224747989559546,-0.00004958381759934127,-0.000023805565433576703,-0.00012163100473117083,-0.00007665240264032036,-0.00016238178068306297,-0.00010357973224017769,-0.00012000015703961253,-0.00009269107249565423,-0.000049141810450237244,-0.00005715646693715826,-0.00004356173303676769,-0.00003632663720054552,-0.00001985907510970719,0.0000020384477465995587,0.00012762073311023414,0.00011586706386879086,0.00021797671797685325,0.00020374754967633635,0.00008666064240969718,0.00011644592450466007,-0.00006568098615389317,-0.000046202490921132267,-0.00004137075302423909,-0.00007593315240228549,0.000004579069354804233,-0.00002532761573093012,-0.00009905502520268783,-0.00007579676457680762,-0.00019283377332612872,-0.00017823997768573463,-0.00014772501890547574,-0.00019722098659258336,-0.00013216372462920845,-0.000167879305081442,-0.00019680026161950082,-0.00015686158440075815,-0.0002077507524518296,-0.00015023740706965327,-0.00017501234833616763,-0.00013415997091215104,-0.00017168966587632895,-0.00013525885879062116,-0.00015167739184107631,-0.00012130104005336761,-0.00008563465962652117,-0.000041452833102084696,-0.00007153890328481793,-0.000001365100615657866,-0.00008754107693675905,-0.0000252203899435699,-0.00003187061520293355,-0.000009977433364838362,0.000022157373678055592,0.00003242286038585007,0.00003615911191445775,0.00009324029088020325,0.000014359744454850443,0.00007800778257660568,-0.000049274443881586194,-0.00005691000842489302,-0.00007130674202926457,-0.00010760929581010714,-0.000036453122447710484,-0.000047757712309248745,0.000054562337027164176,0.000027955291443504393,0.00009254179894924164,0.00002200369090132881,-0.00004265725874574855,-0.00010851425759028643,-0.0001688027841737494,-0.00016441606567241251,-0.00021186693629715592,-0.0001573815243318677,-0.00018332900071982294,-0.0001501880760770291,-0.00010138592188013718,-0.00008154666284099221,-0.00013429764658212662,-0.00008883286500349641,-0.0001400368637405336,-0.00010151389869861305,-0.000043619606003630906,-0.00004538596476777457,-0.000031638654036214575,-0.00003416767867747694,-0.00006974972347961739,-0.00005143813177710399,-0.00010723905870690942,-0.00012572293053381145,-0.00002397704156464897,-0.00009767053415998816,0.00011572502262424678,0.00005432979014585726,0.00007883126090746373,0.0000620109640294686,0.00007341729360632598,0.00004993831316824071,0.00011931547487620264,0.00005841327947564423,0.00005921594856772572,0.00001511409482191084,0.000033078180422307923,0.000019489067199174315,0.000033935510145965964,-0.000011722012459358666,0.00004304029425838962,-0.000035746488720178604,0.00003718510197359137,-0.000058436104154679924,-0.00001174940280179726,-0.00013024899817537516,0.000020506238797679543,-0.00007963776442920789,0.00003176229074597359,-0.00005422571848612279,-0.00002636853423609864,-0.00014182373706717044,-0.000049795104132499546,-0.00017246516654267907,-0.00009185299859382212,-0.00017978546384256333,-0.00013231371121946722,-0.00016474576841574162,-0.0001400558976456523,-0.00015335241914726794,-0.0001470029092160985,-0.00018156964506488293,-0.00014865070988889784,-0.0001718680141493678,-0.00012142615742050111,-0.00014900251699145883,-0.00007435568841174245,-0.00012459667050279677,-0.00008725070802029222,-0.00011005691339960322,-0.00008626709313830361,-0.00012864137534052134,-0.00004616122896550223,-0.0001554132904857397,-0.00009952057007467374,-0.00021355791250243783,-0.0001459539489587769,-0.00023241406597662717,-0.00013092698645778,-0.00017168368503917009,-0.00015152087144088,-0.00015848565089982003,-0.0001564635313116014,-0.00018872391956392676,-0.00011087577149737626,-0.00015771349717397243,-0.0000527798110852018,-0.00008749643166083843,-0.000036134504625806585,-0.00004221020935801789,-0.00008243389311246574,-0.00005874632915947586,-0.0001164921632152982,-0.00013457277964334935,-0.0001483543310314417,-0.00019349232024978846,-0.00023352073912974447,-0.00023075437638908625,-0.00028925627702847123,-0.00027289867284707725,-0.00029771780828014016,-0.0003031028318218887,-0.0002913945645559579,-0.0003263660764787346,-0.00015898887068033218,-0.00020953141211066395,0.000021462499717017636,0.000016161218809429556,0.00006929994560778141,0.00007043606456136331,0.000042957883124472573,-0.000021664078303729184,0.000008055478247115389,-0.00008845835691317916,0.00006582804780919105,-0.000016302576113957912,0.00015406384773086756,0.00010176366777159274,0.00009414566011400893,0.0000354732692358084,0.00007631623884662986,-0.000012391613381623756,0.00007941365765873343,0.0000648690911475569,0.00001397199412167538,0.00010448538523633033,0.000029168595574446954,0.00008860438538249582,-0.00006609586125705391,-0.00006593324360437691,-0.0002065992885036394,-0.0001552091707708314,-0.00018771870236378163,-0.00007774525874992833,-0.00012997548037674278,-0.00007887235551606864,-0.0000391396097256802,-0.000076210533734411,-0.0000876762715051882,-0.0000996374583337456,-0.00014420422667171806,-0.0001080437286873348,0.000032678239222150296,0.00001941799564519897,0.00008381356747122481,0.000031045052310219035,0.00006379729165928438,0.000027837693778565153,0.00006071649841032922,0.00002810096339089796,-0.000023521930415881798,-0.000042365853005321696,0.000022846543288324028,-0.000005697456799680367,0.00003526679938659072,-0.00004256410466041416,-0.0000757251400500536,-0.00013366315397433937,-0.00011955667287111282,-0.00011828384594991803,-0.00017747009405866265,-0.00016866534133441746,-0.0001741003361530602,-0.00016113329911604524,-0.00020356231834739447,-0.0001154246274381876,-0.00034802500158548355,-0.00014464158448390663,-0.0003696058120112866,-0.00011752495629480109,-0.00038095645140856504,-0.00015291014278773218,-0.0003850535140372813,-0.00025106975226663053,-0.00019905260705854744,-0.0002682860067579895,0.0000021677478798665106,-0.0002483882417436689,0.0001757844293024391,-0.0002012909681070596,0.00042002167901955545,-0.00011912333138752729,0.000566192960832268,0.000036280973290558904,0.0006151891429908574,0.000419270625570789,0.0007446972886100411,0.0009848694317042828,0.0007311853696592152,0.0014010249869897962,0.000447156373411417,0.001734805991873145,0.000048851674364414066,0.002086761873215437,-0.00039686530362814665,0.002081888262182474,-0.0007315071416087449,0.0017690588720142841,-0.0011235257843509316,0.0012453674571588635,-0.001530013862065971,0.0005929881590418518,-0.0015843822620809078,0.00013364609912969172,-0.001662310678511858,-0.0004051764262840152,-0.0017336646560579538,-0.0008209687657654285,-0.0017958111129701138,-0.0008799072238616645,-0.0023105277214199305,-0.0009375008521601558,-0.0026750226970762014,-0.00045945230522193015,-0.00301142456009984,0.00032612154609523714,-0.0037594083696603775,0.000844741880428046,-0.004248717334121466,0.001590814790688455,-0.004585081245750189,0.0022387588396668434,-0.004611271433532238,0.002747831167653203,-0.004052754957228899,0.0032969240564852953,-0.003427402814850211,0.0034304591827094555,-0.0024721764493733644,0.003596643218770623,-0.001401375513523817,0.003709446405991912,-0.0006295255152508616,0.0034894035197794437,0.000059773577959276736,0.003397291759029031,0.00038508654688484967,0.0033650926779955626,0.0005159653373993933,0.003734476398676634,0.00030270108254626393,0.0044049047864973545,-0.0007104952237568796,0.004650060087442398,-0.0020415415056049824,0.004571670666337013,-0.003501879284158349,0.004163370467722416,-0.00479539530351758,0.0036168238148093224,-0.005974814295768738,0.002774751279503107,-0.007256212644279003,0.001289845909923315,-0.007495714817196131,0.00010230821499135345,-0.006734591443091631,-0.0007406961522065103,-0.00581145565956831,-0.0016243165591731668,-0.00462182704359293,-0.002173752523958683,-0.0036379247903823853,-0.002846694318577647,-0.002800004556775093,-0.0035107601433992386,-0.0017736477311700583,-0.003419754095375538,-0.0011825866531580687,-0.0027814360801130533,-0.0008575308602303267,-0.0018417327664792538,-0.0002217306027887389,-0.000598331680521369,0.0005840326775796711,0.0008799363858997822,0.0010996086057275534,0.0021491702646017075,0.001309904851950705,0.0030024773441255093,0.0020673295948654413,0.003890095977112651,0.003430642420426011,0.004317090380936861,0.004580176901072264,0.003661549184471369,0.00580180948600173,0.0027171203400939703,0.007631687913089991,0.0020412683952599764,0.009570170193910599,0.0011816845508292317,0.010828486643731594,-0.00026033760514110327,0.010754303075373173,-0.0022562353406101465,0.009428870864212513,-0.00440824031829834,0.00784861296415329,-0.006088739261031151,0.006158956792205572,-0.007177523337304592,0.003770801005885005,-0.00812677014619112,0.0011826830450445414,-0.008794397115707397,-0.0005873069749213755,-0.008513960987329483,-0.0010649776086211205,-0.007513529155403376,-0.0007121718372218311,-0.007079744245857,-0.0002848606090992689,-0.007748864591121674,0.0008878273656591773,-0.008503956720232964,0.0035180600825697184,-0.008739612065255642,0.006504544522613287,-0.009005337953567505,0.008940945379436016,-0.00949372723698616,0.0112361591309309,-0.009555941447615623,0.01331779919564724,-0.008684584870934486,0.014238296076655388,-0.007197503000497818,0.013849114067852497,-0.005386539734899998,0.012764517217874527,-0.003275955095887184,0.01142237801104784,-0.0009684885153546929,0.010298161767423153,0.0016993064200505614,0.009333365596830845,0.00391809456050396,0.008427868597209454,0.0044991616159677505,0.008336156606674194,0.0039911759085953236,0.008962663821876049,0.0027452115900814533,0.009156675077974796,0.00011548047768883407,0.008277789689600468,-0.00374692864716053,0.006709702778607607,-0.008039569482207298,0.00510604539886117,-0.011835870333015919,0.0028857786674052477,-0.014525201171636581,-0.0005683306371793151,-0.015833331272006035,-0.004239668603986502,-0.015388516709208488,-0.006670473609119654,-0.012940594926476479,-0.007479296065866947,-0.008850338868796825,-0.007622465491294861,-0.004532064776867628,-0.0072344085201621056,-0.0008344601956196129,-0.0057411170564591885,0.0022335564717650414,-0.0032891982700675726,0.004121846053749323,0.0008299641194753349,0.005279644392430782,0.003736786311492324,0.0047928947024047375,0.0013215296203270555,0.0010782248573377728,-0.000013336036317923572,-0.0011458239750936627,0.0031413149554282427,-0.00009486293856753036,-0.0011687587248161435,-0.0041114469058811665,-0.017392633482813835,-0.015722988173365593,-0.034477073699235916,-0.027795441448688507,-0.04571573808789253,-0.036322321742773056,-0.05450707674026489,-0.0428432859480381,-0.06265253573656082,-0.047500766813755035,-0.05975385755300522,-0.041561610996723175,-0.032463666051626205,-0.013804420828819275,0.01827487349510193,0.03537826985120773,0.08266807347536087,0.097795769572258,0.15217961370944977,0.1658187061548233,0.22064581513404846,0.23351822793483734,0.28683555126190186,0.298629492521286,0.3469022810459137,0.35707736015319824,0.3909241557121277,0.4009797275066376,0.4156057834625244,0.4274917244911194,0.4247729480266571,0.43869462609291077,0.42078956961631775,0.43660423159599304,0.4062882959842682,0.42413580417633057,0.3860650956630707,0.4054466187953949,0.36459267139434814,0.38485953211784363,0.34501156210899353,0.3655964732170105,0.32996436953544617,0.34972891211509705,0.3208392858505249,0.3385865390300751,0.31652164459228516,0.3319227993488312,0.31623896956443787,0.3296041488647461,0.3198554813861847,0.3315024673938751,0.32542842626571655,0.3357532024383545,0.3314844071865082,0.3411482274532318,0.33733949065208435,0.3469061255455017,0.3416065573692322,0.3515341877937317,0.34387338161468506,0.35465532541275024,0.3446221947669983,0.3560125529766083,0.3444567918777466,0.35549405217170715,0.3434079587459564,0.3537798523902893,0.34088873863220215,0.35074639320373535,0.3382267653942108,0.34693875908851624,0.3369491696357727,0.3435756266117096,0.33618712425231934,0.3405708968639374,0.3352181017398834,0.337916761636734,0.3344864845275879,0.3360024392604828,0.3347020149230957,0.33500710129737854,0.33559557795524597,0.3345468044281006,0.3356438875198364,0.33335721492767334,0.33476224541664124,0.3313899040222168,0.33328360319137573,0.3290165960788727,0.33022430539131165,0.325093150138855,0.3257369101047516,0.3194625973701477,0.32044002413749695,0.3130733370780945,0.3142836391925812,0.3061066269874573,0.3078814744949341,0.2988135516643524,0.30184903740882874,0.2917783856391907,0.2964288294315338,0.2853374481201172,0.2916559875011444,0.27951890230178833,0.2874945402145386,0.274495929479599,0.2842196524143219,0.27030646800994873,0.28150874376296997,0.26606911420822144,0.27893924713134766,0.26149675250053406,0.2760584354400635,0.2568477988243103,0.27202627062797546,0.2516094148159027,0.26775065064430237,0.24617767333984375,0.26375263929367065,0.240883007645607,0.2583709955215454,0.2348024845123291,0.2521602511405945,0.22854775190353394,0.24681374430656433,0.22324083745479584,0.24198345839977264,0.21861906349658966,0.23773431777954102,0.21457253396511078,0.23431454598903656,0.2108982503414154,0.23115283250808716,0.20731040835380554,0.22855831682682037,0.20408383011817932,0.22669631242752075,0.2009020447731018,0.22472351789474487,0.19726240634918213,0.22214411199092865,0.19329386949539185,0.2187594175338745,0.1889563798904419,0.21419735252857208,0.18386077880859375,0.20839394629001617,0.17786459624767303,0.2017228603363037,0.1712917685508728,0.19439153373241425,0.16436927020549774,0.18625706434249878,0.1569976955652237,0.17753638327121735,0.14927631616592407,0.16906782984733582,0.14145801961421967,0.16131752729415894,0.13372083008289337,0.15394407510757446,0.1261877566576004,0.14700950682163239,0.11899550259113312,0.14078551530838013,0.11220572888851166,0.13472723960876465,0.10562274605035782,0.1288258135318756,0.09939584136009216,0.12334570288658142,0.09371078014373779,0.11740842461585999,0.08796590566635132,0.11085216701030731,0.08191831409931183,0.10430294275283813,0.0758076012134552,0.09747365862131119,0.06946639716625214,0.09014172852039337,0.06285040080547333,0.08244733512401581,0.05589297041296959,0.0747237503528595,0.0486995093524456,0.06748583912849426,0.04179181903600693,0.06031538173556328,0.034901268780231476,0.05304372310638428,0.02791520208120346,0.04633215442299843,0.021517589688301086,0.039766762405633926,0.015343964099884033,0.03282143175601959,0.008753910660743713,0.0258503258228302,0.0020630136132240295,0.01878304034471512,-0.004641629755496979,0.011329539120197296,-0.01166088879108429,0.003378555178642273,-0.019190803170204163,-0.005097053945064545,-0.027227118611335754,-0.013719238340854645,-0.03537680208683014,-0.022374339401721954,-0.043488986790180206,-0.03137648105621338,-0.05187668651342392,-0.04053819179534912,-0.0604567751288414,-0.049499429762363434,-0.06884048134088516,-0.05849288031458855,-0.07712171971797943,-0.06773670017719269,-0.08554264158010483,-0.07693895697593689,-0.09397900104522705,-0.08596764504909515,-0.10236804187297821,-0.09495700895786285,-0.11071249842643738,-0.10388500988483429,-0.11891487240791321,-0.11278313398361206,-0.1271471083164215,-0.12161137163639069,-0.1353926956653595,-0.1302194446325302,-0.14331747591495514,-0.13882678747177124,-0.15112300217151642,-0.14760717749595642,-0.15909935534000397,-0.1563674807548523,-0.1669865846633911,-0.1650761067867279,-0.17466247081756592,-0.1739044189453125,-0.1824301928281784,-0.18288172781467438,-0.19044317305088043,-0.19180621206760406,-0.1984090507030487,-0.2006174921989441,-0.2061910629272461,-0.2095491737127304,-0.2141258418560028,-0.2184688150882721,-0.22216469049453735,-0.22707563638687134,-0.2299291044473648,-0.23560881614685059,-0.23756471276283264,-0.24421198666095734,-0.24524550139904022,-0.2526945173740387,-0.252858430147171,-0.2611212730407715,-0.2604433596134186,-0.26948052644729614,-0.2679097056388855,-0.27768683433532715,-0.2752090096473694,-0.2859497666358948,-0.28264039754867554,-0.29414576292037964,-0.29005101323127747,-0.30205854773521423,-0.2971515655517578,-0.31004756689071655,-0.30430930852890015,-0.3181053400039673,-0.3115376830101013,-0.32590630650520325,-0.31850019097328186,-0.33365267515182495,-0.32542774081230164,-0.3414079546928406,-0.33242523670196533,-0.34893766045570374,-0.33921313285827637,-0.3563483953475952,-0.3458234965801239,-0.36362698674201965,-0.35227999091148376,-0.3707098960876465,-0.3586232364177704,-0.37783506512641907,-0.36508598923683167,-0.3848576247692108,-0.3714151680469513,-0.3916032016277313,-0.3774167597293854,-0.3983784317970276,-0.38348257541656494,-0.4050813317298889,-0.38953205943107605,-0.4114915728569031,-0.3952938914299011,-0.41792139410972595,-0.40107113122940063,-0.4242797791957855,-0.4067872166633606,-0.430213063955307,-0.4120813012123108,-0.4359695613384247,-0.41720691323280334,-0.4416967034339905,-0.4222995638847351,-0.44718682765960693,-0.42709559202194214,-0.45248913764953613,-0.43165889382362366,-0.45770472288131714,-0.4361976385116577,-0.4627995789051056,-0.4406948685646057,-0.467723548412323,-0.4449848532676697,-0.4723993241786957,-0.4489439129829407,-0.47690653800964355,-0.4527551233768463,-0.4812902808189392,-0.4565407931804657,-0.48539483547210693,-0.4600854218006134,-0.48930904269218445,-0.4634152054786682,-0.4931594729423523,-0.4667051434516907,-0.49675899744033813,-0.46982237696647644,-0.5000807046890259,-0.4727060794830322,-0.5032362341880798,-0.47544509172439575,-0.5061864256858826,-0.4780427813529968,-0.5089499354362488,-0.4805164635181427,-0.5115028023719788,-0.4827759861946106,-0.513809084892273,-0.48477935791015625,-0.5159985423088074,-0.48671194911003113,-0.5179522633552551,-0.4884487986564636,-0.5195164084434509,-0.4897882044315338,-0.520979642868042,-0.4910416007041931,-0.5224595069885254,-0.492371529340744,-0.5237541198730469,-0.4935266375541687,-0.5248284339904785,-0.4944034814834595,-0.5256340503692627,-0.4950096309185028,-0.5261802077293396,-0.4954404830932617,-0.5266210436820984,-0.4957996904850006,-0.5268115997314453,-0.4958656430244446,-0.5266780257225037,-0.4956287741661072,-0.5264650583267212,-0.4954100549221039,-0.526107668876648,-0.495071142911911,-0.5254742503166199,-0.49441009759902954,-0.5246858596801758,-0.4936348795890808,-0.523658812046051,-0.4927383065223694,-0.5223727226257324,-0.4916102886199951,-0.5210084915161133,-0.4903441369533539,-0.5194172263145447,-0.4888645112514496,-0.5174907445907593,-0.4871516525745392,-0.5154325366020203,-0.48535043001174927,-0.5132569074630737,-0.4833911061286926,-0.5109375715255737,-0.4812907576560974,-0.5085335969924927,-0.47917601466178894,-0.5059165954589844,-0.4768742620944977,-0.5030509233474731,-0.4742845892906189,-0.500028669834137,-0.4715332090854645,-0.4968000054359436,-0.46862754225730896,-0.49335336685180664,-0.46553701162338257,-0.4896450638771057,-0.46218371391296387,-0.48560720682144165,-0.4585230052471161,-0.4814741313457489,-0.4548163115978241,-0.47733908891677856,-0.45113861560821533,-0.47292858362197876,-0.44719982147216797,-0.46825575828552246,-0.4430288076400757,-0.46353116631507874,-0.43884843587875366,-0.4587159752845764,-0.43462270498275757,-0.45373016595840454,-0.43027472496032715,-0.44851088523864746,-0.4257199764251709,-0.4430246949195862,-0.42090100049972534,-0.4373963177204132,-0.41597795486450195,-0.43161025643348694,-0.4109745919704437,-0.42553985118865967,-0.40570569038391113,-0.4193096160888672,-0.4002203345298767,-0.41303032636642456,-0.39467763900756836,-0.4066188335418701,-0.38908135890960693,-0.4000610113143921,-0.38337835669517517,-0.3933746814727783,-0.37749603390693665,-0.3865426182746887,-0.37144654989242554,-0.3795803189277649,-0.36532968282699585,-0.37244653701782227,-0.3590787649154663,-0.36512744426727295,-0.3526001274585724,-0.35773417353630066,-0.3460187315940857,-0.3503147065639496,-0.339443564414978,-0.3428031802177429,-0.3328033685684204,-0.33511918783187866,-0.32598936557769775,-0.3272414207458496,-0.318989634513855,-0.319307416677475,-0.31192755699157715,-0.3114268183708191,-0.30487531423568726,-0.3034377694129944,-0.29770565032958984,-0.2951779365539551,-0.29031598567962646,-0.28677380084991455,-0.2827863097190857,-0.2784140706062317,-0.27522894740104675,-0.2700554132461548,-0.26765698194503784,-0.26152825355529785,-0.2599930167198181,-0.25285422801971436,-0.2521980106830597,-0.24422062933444977,-0.2443566769361496,-0.2356354296207428,-0.23653943836688995,-0.22694560885429382,-0.2287016212940216,-0.218154639005661,-0.22078363597393036,-0.20938779413700104,-0.2128010392189026,-0.20065683126449585,-0.20482154190540314,-0.19187307357788086,-0.19685180485248566,-0.18300488591194153,-0.18880067765712738,-0.17411771416664124,-0.1806454360485077,-0.16525717079639435,-0.17248183488845825,-0.15638071298599243,-0.1643337905406952,-0.14744843542575836,-0.15611480176448822,-0.13846251368522644,-0.14778637886047363,-0.12942667305469513,-0.1394030600786209,-0.12038421630859375,-0.13102714717388153,-0.11140423268079758,-0.12266922742128372,-0.10246630012989044,-0.11430176347494125,-0.09349130839109421,-0.10590529441833496,-0.08449366688728333,-0.09749168902635574,-0.07557141780853271,-0.08910224586725235,-0.06675387918949127,-0.0807742029428482,-0.057972121983766556,-0.07248006016016006,-0.0491742342710495,-0.06414788961410522,-0.04038545489311218,-0.05578262731432915,-0.031651221215724945,-0.04744748771190643,-0.023004386574029922,-0.03917189687490463,-0.014445883221924305,-0.03089878335595131,-0.005930168554186821,-0.022583838552236557,0.002562102861702442,-0.014277668669819832,0.010952816344797611,-0.0060509974136948586,0.01916518434882164,0.002093313727527857,0.027261536568403244,0.010179467499256134,0.03536767512559891,0.01820770837366581,0.043512094765901566,0.026199307292699814,0.05165395140647888,0.03420865908265114,0.059800952672958374,0.04223240911960602,0.06799114495515823,0.05020764097571373,0.0762426033616066,0.05816218629479408,0.08457324653863907,0.06622572243213654,0.09293084591627121,0.07437774538993835,0.10108152031898499,0.08233530074357986,0.10879091918468475,0.08987627178430557,0.11614792048931122,0.09715694189071655,0.1234435960650444,0.10448165237903595,0.13069337606430054,0.11183199286460876,0.137596994638443,0.11889855563640594,0.1440371870994568,0.12557530403137207,0.15028083324432373,0.13212789595127106,0.15657037496566772,0.13878726959228516,0.1628297120332718,0.1454436331987381,0.16891765594482422,0.15190395712852478,0.1749131679534912,0.15824180841445923,0.1809864193201065,0.16467547416687012,0.18716280162334442,0.17122480273246765,0.19334079325199127,0.17770837247371674,0.19944238662719727,0.18403005599975586,0.2054712474346161,0.19027374684810638,0.21147370338439941,0.1965131163597107,0.21746426820755005,0.202686607837677,0.22337956726551056,0.2087024450302124,0.22914519906044006,0.2145642787218094,0.23477570712566376,0.22034037113189697,0.2403235286474228,0.22606170177459717,0.24574553966522217,0.23169220983982086,0.25093889236450195,0.23718631267547607,0.25590190291404724,0.242568701505661,0.2607375681400299,0.24794656038284302,0.26550406217575073,0.25342273712158203,0.27017199993133545,0.25899767875671387,0.27470505237579346,0.2645891606807709,0.27907735109329224,0.27013954520225525,0.28324833512306213,0.27565181255340576,0.2872246503829956,0.28112611174583435,0.2910986542701721,0.28652048110961914,0.29492753744125366,0.2917826473712921,0.2986379861831665,0.2968660891056061,0.30215686559677124,0.3017169237136841,0.30556589365005493,0.306292861700058,0.30898672342300415,0.3105788826942444,0.31235742568969727,0.31453004479408264,0.31548088788986206,0.3180347979068756,0.31830263137817383,0.3210201859474182,0.3209911286830902,0.32356560230255127,0.32369938492774963,0.32582664489746094,0.3263929486274719,0.3278847932815552,0.3289925754070282,0.32976004481315613,0.33154329657554626,0.33151277899742126,0.33410102128982544,0.33320218324661255,0.3365638256072998,0.3347967565059662,0.3387991189956665,0.3362775146961212,0.3408724367618561,0.33779776096343994,0.34296247363090515,0.33957409858703613,0.3450830578804016,0.34163421392440796,0.34706878662109375,0.3438357412815094,0.348814994096756,0.34612223505973816,0.35035955905914307,0.34857824444770813,0.3517402708530426,0.3512190878391266,0.35293614864349365,0.35391637682914734,0.35395580530166626,0.3565821945667267,0.35486266016960144,0.35927093029022217,0.35572633147239685,0.36204156279563904,0.356637567281723,0.3648494482040405,0.3577037751674652,0.36761653423309326,0.3589226007461548,0.3702812194824219,0.3601362705230713,0.37273502349853516,0.3612326383590698,0.37484031915664673,0.36232203245162964,0.37658295035362244,0.36361539363861084,0.37812894582748413,0.3651997447013855,0.3796727657318115,0.3670227825641632,0.3812750577926636,0.3690119981765747,0.38286787271499634,0.3711033761501312,0.3843686878681183,0.37321075797080994,0.3857674300670624,0.37523677945137024,0.38710513710975647,0.37706899642944336,0.3883553445339203,0.37854859232902527,0.3893587589263916,0.37954261898994446,0.38997459411621094,0.3800737261772156,0.3902926743030548,0.3802680969238281,0.39055025577545166,0.38013553619384766,0.39079850912094116,0.37950754165649414,0.3908044993877411,0.3782094717025757,0.3903343379497528,0.3761543035507202,0.389335036277771,0.3732477128505707,0.3877517879009247,0.3694034218788147,0.38540199398994446,0.36476823687553406,0.38222476840019226,0.3597945272922516,0.3785027265548706,0.35500597953796387,0.37467244267463684,0.3508549928665161,0.371074914932251,0.3479050397872925,0.3680570721626282,0.3469204604625702,0.3661377429962158,0.34853217005729675,0.3658168911933899,0.3528748154640198,0.36726272106170654,0.35964274406433105,0.3702837824821472,0.36830464005470276,0.37445157766342163,0.37805625796318054,0.37910306453704834,0.38772836327552795,0.3833930492401123,0.3960375189781189,0.38656750321388245,0.4019690752029419,0.3881657123565674,0.4048866331577301,0.38796383142471313,0.40447235107421875,0.38597115874290466,0.40075889229774475,0.3825986981391907,0.394109308719635,0.3785688579082489,0.3850228786468506,0.3744800388813019,0.3740721046924591,0.37065625190734863,0.3620791435241699,0.3674893379211426,0.3500944972038269,0.3655659258365631,0.33906349539756775,0.3652535676956177,0.3297199308872223,0.36647671461105347,0.3227653205394745,0.36900168657302856,0.3185165226459503,0.372326135635376,0.31588882207870483,0.37477192282676697,0.31177088618278503,0.37278440594673157,0.3019689917564392,0.36187323927879333,0.2825281023979187,0.3380492031574249,0.25039106607437134,0.29856887459754944,0.20400939881801605,0.24250024557113647,0.14459776878356934,0.17187324166297913,0.07684291154146194,0.09231474250555038,0.00776814017444849,0.011855741031467915,-0.05500537157058716,-0.060879603028297424,-0.1035246029496193,-0.1170259341597557,-0.12914299964904785,-0.14721639454364777,-0.12436288595199585,-0.14353066682815552,-0.08681271970272064,-0.1035139262676239,-0.021452229470014572,-0.032334811985492706,0.06164011359214783,0.05947559326887131,0.15169209241867065,0.16042886674404144,0.2398754358291626,0.2607254385948181,0.3191983103752136,0.3522929549217224,0.3837544322013855,0.42822763323783875,0.4290175437927246,0.4831486642360687,0.4528612196445465,0.514176607131958,0.4562394618988037,0.521668553352356,0.44294753670692444,0.5091447830200195,0.41847264766693115,0.4822106659412384,0.3884967267513275,0.44692263007164,0.3579346537590027,0.40867704153060913,0.3308313190937042,0.37211814522743225,0.31042635440826416,0.34127500653266907,0.2987293004989624,0.31904998421669006,0.2959997057914734,0.30647990107536316,0.30091267824172974,0.3027843236923218,0.3113101124763489,0.306190550327301,0.3247837424278259,0.31460651755332947,0.3388565182685852,0.32574155926704407,0.3511863946914673,0.33718350529670715,0.35997089743614197,0.34681347012519836,0.3642255961894989,0.3532503843307495,0.3637520968914032,0.35595330595970154,0.3590213358402252,0.3550752103328705,0.351114958524704,0.35131362080574036,0.3415455222129822,0.3457548916339874,0.3318597078323364,0.3396145701408386,0.32324835658073425,0.33392757177352905,0.31639763712882996,0.32932248711586,0.3115268051624298,0.3259360194206238,0.3084493577480316,0.32346779108047485,0.3066614270210266,0.3213740587234497,0.3055570721626282,0.3191356658935547,0.30470365285873413,0.3164435923099518,0.3039399981498718,0.313181608915329,0.30320900678634644,0.30928266048431396,0.3023843467235565,0.3046846091747284,0.3013804256916046,0.2994810938835144,0.3003881573677063,0.29404520988464355,0.2997879981994629,0.28885146975517273,0.2997121810913086,0.28411442041397095,0.2998063862323761,0.2796758711338043,0.2995368540287018,0.2752785384654999,0.2986152470111847,0.2708359360694885,0.2969832122325897,0.2663668990135193,0.29451480507850647,0.26180583238601685,0.2909870147705078,0.25703945755958557,0.2863495647907257,0.25208550691604614,0.2808309495449066,0.24710004031658173,0.27474072575569153,0.2422293871641159,0.26830995082855225,0.23756276071071625,0.261757493019104,0.23320716619491577,0.25537675619125366,0.22930194437503815,0.2494843453168869,0.22595880925655365,0.24431155622005463,0.22322537004947662,0.23989641666412354,0.2210220843553543,0.235987588763237,0.2190142273902893,0.2321094125509262,0.21664059162139893,0.22785964608192444,0.2134196013212204,0.2231336086988449,0.20920293033123016,0.21797817945480347,0.20404097437858582,0.2123415470123291,0.19792068004608154,0.20616373419761658,0.19082854688167572,0.19966572523117065,0.18301355838775635,0.19332806766033173,0.1749725341796875,0.18755415081977844,0.16715316474437714,0.18249043822288513,0.15979434549808502,0.1781284064054489,0.15299631655216217,0.17435649037361145,0.14673756062984467,0.1708746999502182,0.1408073604106903,0.16724835336208344,0.13490109145641327,0.16312113404273987,0.1288263201713562,0.1582898050546646,0.12252052128314972,0.1526111662387848,0.11592620611190796,0.14601793885231018,0.109025739133358,0.1386347860097885,0.10197537392377853,0.13071639835834503,0.09501562267541885,0.12245433777570724,0.08824774622917175,0.11396884173154831,0.0816502720117569,0.10543704777956009,0.0752602368593216,0.09703152626752853,0.06912031024694443,0.08874747902154922,0.06306732445955276,0.0804801806807518,0.05680617690086365,0.07224872708320618,0.050199929624795914,0.06413860619068146,0.04326504096388817,0.056058719754219055,0.03589431941509247,0.04781285300850868,0.02787492424249649,0.03942457586526871,0.019239455461502075,0.031131481751799583,0.010328397154808044,0.023022381588816643,0.001407034695148468,0.014940470457077026,-0.007533639669418335,0.006808610633015633,-0.016492079943418503,-0.0012192577123641968,-0.025234082713723183,-0.009038610383868217,-0.03353056684136391,-0.016785575076937675,-0.041423678398132324,-0.024613576009869576,-0.04908459633588791,-0.03248251974582672,-0.056559376418590546,-0.04031608998775482,-0.0638224333524704,-0.04819875210523605,-0.07095935940742493,-0.05626891925930977,-0.07813222706317902,-0.06454124301671982,-0.08543310314416885,-0.0729595273733139,-0.09288822114467621,-0.0815194621682167,-0.10053624212741852,-0.09023560583591461,-0.10840082168579102,-0.09907303005456924,-0.11644048988819122,-0.1079840436577797,-0.12459170818328857,-0.11693437397480011,-0.1328069120645523,-0.12586098909378052,-0.14102135598659515,-0.1347116231918335,-0.14916948974132538,-0.14354576170444489,-0.15726426243782043,-0.15246544778347015,-0.16536462306976318,-0.16142883896827698,-0.1734473705291748,-0.17029942572116852,-0.18144424259662628,-0.17903432250022888,-0.18932628631591797,-0.18777750432491302,-0.19719542562961578,-0.1966264843940735,-0.2051265984773636,-0.20549310743808746,-0.21306931972503662,-0.2142835110425949,-0.22096262872219086,-0.2230629175901413,-0.2288345843553543,-0.23193064332008362,-0.23672154545783997,-0.24084587395191193,-0.24458253383636475,-0.24968738853931427,-0.2523565888404846,-0.25840240716934204,-0.26002565026283264,-0.2669919431209564,-0.2675635516643524,-0.2754093110561371,-0.2748936712741852,-0.2835761606693268,-0.28195685148239136,-0.2914767563343048,-0.2887730896472931,-0.29917678236961365,-0.2954060733318329,-0.3067672550678253,-0.30192068219184875,-0.31432220339775085,-0.30839264392852783,-0.32188379764556885,-0.31489381194114685,-0.3294561803340912,-0.3214408755302429,-0.3370295464992523,-0.328012615442276,-0.3446136713027954,-0.33462363481521606,-0.35221201181411743,-0.34130868315696716,-0.3597670793533325,-0.34802311658859253,-0.36719390749931335,-0.3546490967273712,-0.3744781017303467,-0.36113351583480835,-0.38167330622673035,-0.36753392219543457,-0.3887888789176941,-0.37389105558395386,-0.39575546979904175,-0.38014477491378784,-0.40252387523651123,-0.38622432947158813,-0.4091200828552246,-0.39214345812797546,-0.4155809283256531,-0.3979530334472656,-0.42190879583358765,-0.40365856885910034,-0.4280899465084076,-0.40922433137893677,-0.43409258127212524,-0.4146045446395874,-0.43986040353775024,-0.4197533428668976,-0.44537705183029175,-0.42464694380760193,-0.4506929814815521,-0.4293072521686554,-0.4558223783969879,-0.43376216292381287,-0.4606941044330597,-0.43799930810928345,-0.4652884602546692,-0.442005455493927,-0.4697306454181671,-0.4458353519439697,-0.4741453230381012,-0.44958731532096863,-0.47850847244262695,-0.45330822467803955,-0.4827500581741333,-0.4569667875766754,-0.4869179129600525,-0.46052834391593933,-0.4911094307899475,-0.4640166759490967,-0.49528059363365173,-0.4674590229988098,-0.49924901127815247,-0.4707924723625183,-0.5029004216194153,-0.4738979935646057,-0.5062958002090454,-0.4767228066921234,-0.5095095038414001,-0.47928720712661743,-0.5124505758285522,-0.4815814197063446,-0.5149758458137512,-0.48357388377189636,-0.5171502828598022,-0.48531922698020935,-0.5192136764526367,-0.4869314432144165,-0.5212603807449341,-0.488446980714798,-0.5231381058692932,-0.48984047770500183,-0.52472984790802,-0.4911395013332367,-0.5261441469192505,-0.4923926889896393,-0.527509868144989,-0.49356329441070557,-0.5287466049194336,-0.49457594752311707,-0.5296869277954102,-0.49541616439819336,-0.5303183197975159,-0.49609023332595825,-0.5307528972625732,-0.49656811356544495,-0.5310207605361938,-0.4968433976173401,-0.5310498476028442,-0.496968537569046,-0.530831515789032,-0.49698033928871155,-0.5304620265960693,-0.49686378240585327,-0.5299873352050781,-0.4966042637825012,-0.5293381810188293,-0.4962059259414673,-0.5284557342529297,-0.49565649032592773,-0.5273529887199402,-0.4949106276035309,-0.526007354259491,-0.4938989281654358,-0.5243396759033203,-0.49257004261016846,-0.5223512649536133,-0.49095845222473145,-0.5201387405395508,-0.48915889859199524,-0.5177398324012756,-0.48719456791877747,-0.5151124596595764,-0.4850119352340698,-0.5122785568237305,-0.482637494802475,-0.5093286633491516,-0.4801918864250183,-0.5062897801399231,-0.4777042865753174,-0.5031248927116394,-0.475080281496048,-0.49982544779777527,-0.4722902476787567,-0.4963882863521576,-0.46941402554512024,-0.49277254939079285,-0.46646642684936523,-0.48896169662475586,-0.46334540843963623,-0.48497438430786133,-0.45997869968414307,-0.48077625036239624,-0.4563928246498108,-0.4763081669807434,-0.45262888073921204,-0.47160157561302185,-0.4486851990222931,-0.4667295813560486,-0.4445449113845825,-0.46167927980422974,-0.4402090609073639,-0.45640772581100464,-0.4357064366340637,-0.45095518231391907,-0.43107399344444275,-0.4453774094581604,-0.4263157844543457,-0.43965455889701843,-0.4214092791080475,-0.43376171588897705,-0.4163581430912018,-0.427729070186615,-0.4111863970756531,-0.42157092690467834,-0.40588706731796265,-0.41525986790657043,-0.40044105052948,-0.4087994396686554,-0.3948689103126526,-0.4022263288497925,-0.38919609785079956,-0.3955446183681488,-0.38339942693710327,-0.3887292444705963,-0.3774532377719879,-0.3817715644836426,-0.37138763070106506,-0.37467828392982483,-0.3652406632900238,-0.36746498942375183,-0.3589944839477539,-0.36015987396240234,-0.35260990262031555,-0.3527684509754181,-0.3460889160633087,-0.3452497124671936,-0.33946171402931213,-0.3375682830810547,-0.3327275514602661,-0.3297394812107086,-0.32584986090660095,-0.3218045234680176,-0.3188246786594391,-0.31380194425582886,-0.31171417236328125,-0.3057512938976288,-0.3045653700828552,-0.29762595891952515,-0.29733529686927795,-0.28938376903533936,-0.28996893763542175,-0.2810479402542114,-0.28250637650489807,-0.2726821303367615,-0.27501970529556274,-0.2642843723297119,-0.26749780774116516,-0.2558106482028961,-0.25989100337028503,-0.24728626012802124,-0.25220686197280884,-0.23876431584358215,-0.24447709321975708,-0.23021483421325684,-0.23670168220996857,-0.22157728672027588,-0.22887814044952393,-0.21286465227603912,-0.221002995967865,-0.20411089062690735,-0.21303793787956238,-0.19533251225948334,-0.20500221848487854,-0.1864926666021347,-0.19693033397197723,-0.1776198148727417,-0.18884466588497162,-0.16875708103179932,-0.1807192862033844,-0.15989913046360016,-0.1725713461637497,-0.15102531015872955,-0.16447541117668152,-0.14213839173316956,-0.15643048286437988,-0.13326241075992584,-0.1483512669801712,-0.12442145496606827,-0.1402113437652588,-0.11559772491455078,-0.13205887377262115,-0.10671859979629517,-0.12390013784170151,-0.09771277010440826,-0.11567951738834381,-0.08856542408466339,-0.10734037309885025,-0.07931990921497345,-0.09885535389184952,-0.07004343718290329,-0.09027108550071716,-0.06076359748840332,-0.08171606063842773,-0.051445167511701584,-0.07325153797864914,-0.042089834809303284,-0.0647740513086319,-0.03280926123261452,-0.056217558681964874,-0.02369919791817665,-0.04774121567606926,-0.014719998463988304,-0.03951798379421234,-0.005831114947795868,-0.031474702060222626,0.0028619803488254547,-0.023466356098651886,0.011266704648733139,-0.015539433807134628,0.019486743956804276,-0.007796190679073334,0.02764134854078293,-0.0002129673957824707,0.035642001777887344,0.007213525474071503,0.043391402810811996,0.014408908784389496,0.051025353372097015,0.021428555250167847,0.05867929756641388,0.028416655957698822,0.0662369579076767,0.03535858541727066,0.07358866930007935,0.042189568281173706,0.08084963262081146,0.0490066260099411,0.08807537704706192,0.05589109659194946,0.09510941803455353,0.06279647350311279,0.10187757015228271,0.06977587193250656,0.10846224427223206,0.07693607360124588,0.11485867202281952,0.08415903151035309,0.12102552503347397,0.09127787500619888,0.12707127630710602,0.09834423661231995,0.13310644030570984,0.10538395494222641,0.1391477882862091,0.11228538304567337,0.14532488584518433,0.11914981156587601,0.15184150636196136,0.12623929977416992,0.15870630741119385,0.13356147706508636,0.16585108637809753,0.14108172059059143,0.17339038848876953,0.1491435021162033,0.1814194768667221,0.15807709097862244,0.18974897265434265,0.16768202185630798,0.198135644197464,0.17754817008972168,0.20657123625278473,0.18749697506427765,0.2151017040014267,0.1973915696144104,0.22352728247642517,0.20688694715499878,0.2315070927143097,0.21554161608219147,0.23887209594249725,0.22295071184635162,0.24563157558441162,0.22886541485786438,0.25171032547950745,0.23340195417404175,0.2569041848182678,0.23695433139801025,0.261075884103775,0.23977386951446533,0.26421427726745605,0.24187617003917694,0.2663898468017578,0.24339160323143005,0.2677948474884033,0.24464905261993408,0.26866623759269714,0.24582798779010773,0.2691427767276764,0.24681979417800903,0.26940131187438965,0.24747145175933838,0.26977843046188354,0.2477508783340454,0.2705434560775757,0.24775663018226624,0.27185192704200745,0.24776995182037354,0.2739870250225067,0.2481580376625061,0.27716192603111267,0.2491474449634552,0.28118157386779785,0.25096777081489563,0.28582748770713806,0.25415366888046265,0.29126155376434326,0.2592353820800781,0.29756784439086914,0.2661699652671814,0.30439600348472595,0.274442195892334,0.3113973140716553,0.2835386097431183,0.3184615671634674,0.2930457592010498,0.3254229426383972,0.3025587797164917,0.33204150199890137,0.3116576075553894,0.33815014362335205,0.3198394179344177,0.3434916138648987,0.3266984820365906,0.34775760769844055,0.3323238790035248,0.35095351934432983,0.33714330196380615,0.35330039262771606,0.34139373898506165,0.3547760844230652,0.3451768755912781,0.35519939661026,0.34872883558273315,0.354733943939209,0.3521868586540222,0.35391494631767273,0.35551464557647705,0.3531007468700409,0.3588149845600128,0.35216692090034485,0.362111359834671,0.3509524166584015,0.3649575114250183,0.3497481942176819,0.3669162392616272,0.34890446066856384,0.3680737018585205,0.34819650650024414,0.36864179372787476,0.34714847803115845,0.3686122000217438,0.34571465849876404,0.36799123883247375,0.34409332275390625,0.36683329939842224,0.34221574664115906,0.36515533924102783,0.33987826108932495,0.3631545305252075,0.33708736300468445,0.36112385988235474,0.33407649397850037,0.3591340482234955,0.33116063475608826,0.35727792978286743,0.3285318911075592,0.35586118698120117,0.3262489140033722,0.35493436455726624,0.3246261179447174,0.3543103337287903,0.324245810508728,0.3542410731315613,0.3252984285354614,0.35525748133659363,0.3275124430656433,0.35742220282554626,0.3308638334274292,0.3604626953601837,0.33558639883995056,0.3642706573009491,0.34152770042419434,0.3687928318977356,0.34815678000450134,0.37390872836112976,0.3549131751060486,0.3794596493244171,0.36118724942207336,0.3849322199821472,0.3664550185203552,0.3894926607608795,0.3704560697078705,0.39263832569122314,0.37284305691719055,0.3941919207572937,0.3731362521648407,0.39371824264526367,0.3713011145591736,0.39081722497940063,0.36774566769599915,0.3857673704624176,0.36292165517807007,0.3792005181312561,0.35753628611564636,0.37164250016212463,0.35247477889060974,0.3638255000114441,0.34811195731163025,0.3568190634250641,0.34460335969924927,0.35156095027923584,0.342583566904068,0.3486330211162567,0.3424295485019684,0.3483543395996094)
30 new Array(0.3436359763145447,0.3507392704486847,0.3458445370197296,0.35553568601608276,0.349070280790329,0.36218830943107605,0.3529009521007538,0.36989903450012207,0.3567352890968323,0.3776802718639374,0.3602409362792969,0.3845756947994232,0.3624301850795746,0.38984495401382446,0.36204901337623596,0.3930245339870453,0.35958513617515564,0.39386096596717834,0.35623884201049805,0.39222022891044617,0.35106125473976135,0.3883177638053894,0.34256747364997864,0.38292935490608215,0.3323298692703247,0.3768877685070038,0.323260098695755,0.37063145637512207,0.3156992495059967,0.3646821975708008,0.3084883987903595,0.35974499583244324,0.3018919825553894,0.35562121868133545,0.29641395807266235,0.3507556915283203,0.2904132902622223,0.34314075112342834,0.28101786971092224,0.33097949624061584,0.26616284251213074,0.31287649273872375,0.2446533590555191,0.2879803478717804,0.21516236662864685,0.255038857460022,0.17608602344989777,0.21176795661449432,0.12704282999038696,0.15780548751354218,0.07108964771032333,0.09810417890548706,0.014752926304936409,0.040358446538448334,-0.035008858889341354,-0.010328201577067375,-0.07317540794610977,-0.05101863294839859,-0.09570048749446869,-0.07671763747930527,-0.09804818034172058,-0.08093484491109848,-0.0764317587018013,-0.06037058308720589,-0.03042197786271572,-0.01648930460214615,0.03596554324030876,0.0465453676879406,0.11531345546245575,0.12299899756908417,0.1989039182662964,0.20528899133205414,0.27868446707725525,0.28483620285987854,0.34824496507644653,0.3541155457496643,0.40280720591545105,0.40809503197669983,0.43914052844047546,0.4442239999771118,0.45606517791748047,0.46168196201324463,0.4549923837184906,0.4612167477607727,0.43956613540649414,0.4456948935985565,0.41455766558647156,0.41990524530410767,0.3848838806152344,0.3890814185142517,0.35493040084838867,0.35762137174606323,0.32800400257110596,0.3289647400379181,0.30628281831741333,0.3057825565338135,0.291183739900589,0.2896957993507385,0.28327441215515137,0.2809591591358185,0.2818855345249176,0.2787399888038635,0.2854923605918884,0.28177735209465027,0.2925439476966858,0.2886710464954376,0.30161160230636597,0.2977151870727539,0.31119534373283386,0.30709391832351685,0.31999343633651733,0.31554341316223145,0.3271985352039337,0.3224572539329529,0.3323807716369629,0.3273491859436035,0.3353782892227173,0.32981887459754944,0.3363034129142761,0.33001670241355896,0.33541586995124817,0.32849812507629395,0.33304548263549805,0.32565680146217346,0.32961732149124146,0.3217451870441437,0.3255370557308197,0.31720080971717834,0.3211156129837036,0.31249549984931946,0.3166646659374237,0.30782362818717957,0.3124258816242218,0.30318742990493774,0.3084467351436615,0.29864123463630676,0.304767370223999,0.29430586099624634,0.3015163242816925,0.290192186832428,0.29865914583206177,0.28612279891967773,0.2959946393966675,0.28194108605384827,0.29342013597488403,0.27772849798202515,0.2908669412136078,0.273634672164917,0.2881903052330017,0.26963305473327637,0.2853950262069702,0.2656824290752411,0.2825847864151001,0.2619113028049469,0.27963492274284363,0.2584269642829895,0.2764520049095154,0.2552037239074707,0.2733556032180786,0.25225701928138733,0.27060335874557495,0.24962079524993896,0.2679532766342163,0.24718371033668518,0.26519572734832764,0.24481931328773499,0.26249805092811584,0.2424980103969574,0.25986188650131226,0.2400670051574707,0.25692054629325867,0.23722389340400696,0.2534322142601013,0.23384401202201843,0.2493741512298584,0.2300342619419098,0.24467289447784424,0.2258572280406952,0.23934808373451233,0.22128351032733917,0.23365342617034912,0.21636269986629486,0.22778062522411346,0.21126005053520203,0.22179719805717468,0.2061673104763031,0.21593421697616577,0.20118600130081177,0.2105105221271515,0.19625036418437958,0.2056254893541336,0.19125910103321075,0.20119091868400574,0.1862357258796692,0.1970648467540741,0.18117842078208923,0.19303493201732635,0.17590683698654175,0.1889193207025528,0.17028747498989105,0.18464966118335724,0.16439872980117798,0.18007981777191162,0.1582980751991272,0.17496532201766968,0.15188351273536682,0.16928313672542572,0.14509545266628265,0.1632496416568756,0.13801680505275726,0.1569652110338211,0.13074497878551483,0.1503717601299286,0.1233326643705368,0.1435215175151825,0.11582323908805847,0.1365867406129837,0.10827413201332092,0.12966367602348328,0.10077520459890366,0.12275254726409912,0.0934087336063385,0.11584542691707611,0.08619605004787445,0.10892727971076965,0.07917298376560211,0.10195941478013992,0.07243507355451584,0.09491272270679474,0.06601165235042572,0.08778388798236847,0.05983836576342583,0.0805385559797287,0.05387263000011444,0.07305917888879776,0.04803667962551117,0.06523420661687851,0.04212284833192825,0.057080116122961044,0.03594566509127617,0.04865209758281708,0.029429901391267776,0.039905570447444916,0.022460641339421272,0.03080851025879383,0.014893142506480217,0.02146265283226967,0.006716256495565176,0.011982964351773262,-0.001997239887714386,0.0024438141845166683,-0.011165347881615162,-0.007014747243374586,-0.020593587309122086,-0.016242871060967445,-0.030016787350177765,-0.025171050801873207,-0.039254624396562576,-0.03368787094950676,-0.04812806844711304,-0.041668251156806946,-0.056405309587717056,-0.04917296767234802,-0.0640219897031784,-0.056338705122470856,-0.07114075869321823,-0.06319992244243622,-0.07793767005205154,-0.06988830864429474,-0.08454476296901703,-0.07669203728437424,-0.09115692973136902,-0.08373631536960602,-0.09804609417915344,-0.09103355556726456,-0.10550685971975327,-0.09883319586515427,-0.11369960010051727,-0.10741837322711945,-0.12249250710010529,-0.11673317849636078,-0.1316787600517273,-0.1266242116689682,-0.14125868678092957,-0.1370970606803894,-0.15116144716739655,-0.1480569839477539,-0.16098646819591522,-0.1592252403497696,-0.1704384982585907,-0.17041613161563873,-0.17959284782409668,-0.18150544166564941,-0.18844667077064514,-0.19222383201122284,-0.1967857927083969,-0.20232486724853516,-0.20461004972457886,-0.21179530024528503,-0.21210674941539764,-0.2207169234752655,-0.21930965781211853,-0.22912082076072693,-0.2262527346611023,-0.23705273866653442,-0.23312364518642426,-0.244648739695549,-0.23997023701667786,-0.25211477279663086,-0.24670550227165222,-0.2596213221549988,-0.2534589469432831,-0.2672247886657715,-0.2604459822177887,-0.27498531341552734,-0.26765093207359314,-0.2830657362937927,-0.2750389277935028,-0.29154103994369507,-0.2827794849872589,-0.3002829849720001,-0.29098790884017944,-0.3091878592967987,-0.29958197474479675,-0.31826746463775635,-0.3085162043571472,-0.32745054364204407,-0.31784147024154663,-0.336588978767395,-0.32749396562576294,-0.34562060236930847,-0.3372446596622467,-0.35447514057159424,-0.3468747138977051,-0.36298662424087524,-0.35627293586730957,-0.3710893392562866,-0.3653349280357361,-0.37888044118881226,-0.3738906681537628,-0.3864019513130188,-0.38183271884918213,-0.3935663104057312,-0.38917502760887146,-0.40029746294021606,-0.39585989713668823,-0.4066075086593628,-0.40175122022628784,-0.4125635325908661,-0.4069103002548218,-0.41820240020751953,-0.41154420375823975,-0.42346662282943726,-0.415698766708374,-0.4283090829849243,-0.4193916618824005,-0.4328407943248749,-0.42285987734794617,-0.4372495412826538,-0.42631256580352783,-0.4416581094264984,-0.4297977387905121,-0.4461841285228729,-0.4335118532180786,-0.451017290353775,-0.43769797682762146,-0.4563363194465637,-0.4422340989112854,-0.46220043301582336,-0.4469219446182251,-0.4685121476650238,-0.4519149363040924,-0.4750834107398987,-0.4572798013687134,-0.4817622900009155,-0.46262893080711365,-0.4883791208267212,-0.4676629602909088,-0.4945853352546692,-0.4724624752998352,-0.5000262260437012,-0.47698476910591125,-0.5046371221542358,-0.4809568226337433,-0.5084781646728516,-0.48434996604919434,-0.5114843249320984,-0.4873488247394562,-0.5136945247650146,-0.48995310068130493,-0.5154111385345459,-0.49210289120674133,-0.516903281211853,-0.4939757287502289,-0.5183118581771851,-0.4957995116710663,-0.5198625922203064,-0.4976169764995575,-0.521746039390564,-0.49945729970932007,-0.5239163041114807,-0.5014687180519104,-0.5263248682022095,-0.5037275552749634,-0.5290380120277405,-0.5061351656913757,-0.5319313406944275,-0.5085968375205994,-0.5346949696540833,-0.5110976099967957,-0.5372004508972168,-0.5135430693626404,-0.5394700765609741,-0.5157400369644165,-0.5414009094238281,-0.5175819993019104,-0.542862057685852,-0.5190489888191223,-0.5438710451126099,-0.5200487375259399,-0.5444741249084473,-0.5204949378967285,-0.5446802377700806,-0.520462155342102,-0.544552206993103,-0.5200443267822266,-0.5441441535949707,-0.5192134380340576,-0.5434141755104065,-0.5179857611656189,-0.542346179485321,-0.5164980292320251,-0.541022777557373,-0.5148156881332397,-0.5394992828369141,-0.5129062533378601,-0.5377427935600281,-0.5108166337013245,-0.5357125997543335,-0.5086457133293152,-0.5334264039993286,-0.5064231157302856,-0.5309809446334839,-0.5041735768318176,-0.5284898281097412,-0.501957893371582,-0.5259407162666321,-0.4997645318508148,-0.5232195854187012,-0.49752259254455566,-0.5203320384025574,-0.4952189326286316,-0.5174044966697693,-0.4928598403930664,-0.5144237279891968,-0.49038657546043396,-0.5112305283546448,-0.48774129152297974,-0.5077933073043823,-0.48493388295173645,-0.5042111873626709,-0.4819803535938263,-0.5004695653915405,-0.47884082794189453,-0.49646249413490295,-0.4754530191421509,-0.4921858608722687,-0.47181081771850586,-0.48766329884529114,-0.4679860472679138,-0.4828302264213562,-0.4640211760997772,-0.4776991307735443,-0.45984530448913574,-0.4724256694316864,-0.4554009437561035,-0.4670521914958954,-0.45078036189079285,-0.46145713329315186,-0.44608256220817566,-0.45564666390419006,-0.4412424862384796,-0.4497779309749603,-0.43617334961891174,-0.44387221336364746,-0.43095916509628296,-0.4378197193145752,-0.4257330596446991,-0.43161824345588684,-0.4204648733139038,-0.4253285229206085,-0.4150194823741913,-0.4189133048057556,-0.4093530774116516,-0.41232648491859436,-0.40354013442993164,-0.40559619665145874,-0.39763739705085754,-0.3987126648426056,-0.3915990889072418,-0.3916330635547638,-0.3853526711463928,-0.38440752029418945,-0.3789190351963043,-0.37710270285606384,-0.37238672375679016,-0.36967653036117554,-0.36577948927879333,-0.3620924651622772,-0.3590465188026428,-0.35440847277641296,-0.3521696627140045,-0.3466413915157318,-0.3451785445213318,-0.3387884497642517,-0.33814793825149536,-0.3308127522468567,-0.33104076981544495,-0.3227776885032654,-0.32384273409843445,-0.31471219658851624,-0.31652259826660156,-0.30657118558883667,-0.3090512454509735,-0.2983539402484894,-0.30152422189712524,-0.2901151776313782,-0.2940562069416046,-0.2818600535392761,-0.2865472733974457,-0.273529976606369,-0.2788337171077728,-0.2650870978832245,-0.27100440859794617,-0.2565560042858124,-0.2632352113723755,-0.2479782998561859,-0.25543200969696045,-0.2393481284379959,-0.24740611016750336,-0.2306208461523056,-0.23924009501934052,-0.22179831564426422,-0.23113234341144562,-0.21295014023780823,-0.22305995225906372,-0.20411615073680878,-0.21488721668720245,-0.19526320695877075,-0.20662233233451843,-0.1863834410905838,-0.19836333394050598,-0.17753858864307404,-0.19014336168766022,-0.16875573992729187,-0.18192589282989502,-0.1599741280078888,-0.17364239692687988,-0.15114164352416992,-0.16524434089660645,-0.14228147268295288,-0.15676435828208923,-0.13342416286468506,-0.1482381820678711,-0.12454365193843842,-0.13959383964538574,-0.11561007052659988,-0.13077281415462494,-0.10667137056589127,-0.12187683582305908,-0.09781067073345184,-0.11302471160888672,-0.08900970220565796,-0.10418687015771866,-0.08015486598014832,-0.09531546384096146,-0.07122906297445297,-0.08648769557476044,-0.06236971542239189,-0.07779493927955627,-0.05368009954690933,-0.0692458227276802,-0.04515216499567032,-0.0608653724193573,-0.036801550537347794,-0.05274923890829086,-0.028654571622610092,-0.04495047777891159,-0.020618632435798645,-0.03741208463907242,-0.012603923678398132,-0.03005238249897957,-0.004660770297050476,-0.022837206721305847,0.0032375603914260864,-0.01571357250213623,0.011317364871501923,-0.008542641997337341,0.01970715820789337,-0.0011973455548286438,0.028333887457847595,0.0063246265053749084,0.0372132882475853,0.014011144638061523,0.04643452912569046,0.021950438618659973,0.05588231235742569,0.03010193258523941,0.06538072973489761,0.03810767084360123,0.07491307705640793,0.04572763293981552,0.08436762541532516,0.05330805480480194,0.09348076581954956,0.06125878542661667,0.10222368687391281,0.06920412927865982,0.11063101887702942,0.07641875743865967,0.11829406023025513,0.08306580036878586,0.1248847246170044,0.09005635231733322,0.1309305727481842,0.09756209701299667,0.13703811168670654,0.10473161935806274,0.14279481768608093,0.11117547750473022,0.1475921869277954,0.11762325465679169,0.15196004509925842,0.1246354728937149,0.15684883296489716,0.1316998451948166,0.1621231585741043,0.1381763368844986,0.1669425070285797,0.1442692130804062,0.17123211920261383,0.15050184726715088,0.17575912177562714,0.15688656270503998,0.18093281984329224,0.16307076811790466,0.18630343675613403,0.16888675093650818,0.19129076600074768,0.17447316646575928,0.1959274560213089,0.1800549030303955,0.2006806880235672,0.18569731712341309,0.20578977465629578,0.1912769377231598,0.21109235286712646,0.19677548110485077,0.21643885970115662,0.20245715975761414,0.22195398807525635,0.20854544639587402,0.22783887386322021,0.21492406725883484,0.23414868116378784,0.22138294577598572,0.2408096045255661,0.22791072726249695,0.24772141873836517,0.2345348745584488,0.2548198699951172,0.24109560251235962,0.26203206181526184,0.24734240770339966,0.26913875341415405,0.2531210780143738,0.2757990062236786,0.25837716460227966,0.2817825675010681,0.26302066445350647,0.28703317046165466,0.26686960458755493,0.2914980947971344,0.2698267996311188,0.2951238453388214,0.27205488085746765,0.29802095890045166,0.27380669116973877,0.3004281520843506,0.27521419525146484,0.30253762006759644,0.2764592170715332,0.3044890761375427,0.2779090106487274,0.30645057559013367,0.27983519434928894,0.3086082339286804,0.2822890281677246,0.31110501289367676,0.28536826372146606,0.31396785378456116,0.28918546438217163,0.3170616328716278,0.29356107115745544,0.3201717436313629,0.29820433259010315,0.3231307864189148,0.3030858337879181,0.3258450925350189,0.308247447013855,0.328314870595932,0.31352299451828003,0.33062970638275146,0.31873950362205505,0.33277279138565063,0.32381922006607056,0.33449500799179077,0.3285626173019409,0.3355770409107208,0.3327631652355194,0.33607345819473267,0.3364887833595276,0.3361404836177826,0.33987191319465637,0.3358767628669739,0.3428524136543274,0.3354545533657074,0.3454176187515259,0.3351161479949951,0.34774285554885864,0.33497175574302673,0.3499442934989929,0.33502712845802307,0.35206130146980286,0.33532264828681946,0.3542133569717407,0.3358570337295532,0.3563973605632782,0.33655038475990295,0.35835447907447815,0.33737021684646606,0.35992562770843506,0.3382839858531952,0.36120814085006714,0.3391556143760681,0.3622129559516907,0.3399306535720825,0.3627970814704895,0.340738445520401,0.36299434304237366,0.34162911772727966,0.36302265524864197,0.34250450134277344,0.3629917502403259,0.34339553117752075,0.36288395524024963,0.3444414734840393,0.36270594596862793,0.34560033679008484,0.3624858260154724,0.34673959016799927,0.3622548580169678,0.3479076623916626,0.3620994985103607,0.349197655916214,0.3621264100074768,0.3505156636238098,0.36238744854927063,0.3517214357852936,0.3628728985786438,0.35284072160720825,0.3635386526584625,0.3538372218608856,0.3641984164714813,0.354625403881073,0.36477917432785034,0.35517418384552,0.3654242753982544,0.35551297664642334,0.3663182854652405,0.3556709885597229,0.36749815940856934,0.3556704521179199,0.3688485622406006,0.35551950335502625,0.37021782994270325,0.3551963269710541,0.3715476989746094,0.3546697497367859,0.37288153171539307,0.35392022132873535,0.37423309683799744,0.3529627323150635,0.37555593252182007,0.3518728017807007,0.37683695554733276,0.3507084548473358,0.3780277371406555,0.34938400983810425,0.3789185583591461,0.34771719574928284,0.3792995512485504,0.3455829322338104,0.3791392147541046,0.3429500460624695,0.37842699885368347,0.33985161781311035,0.3770616948604584,0.3363795876502991,0.37503236532211304,0.33264100551605225,0.3724556863307953,0.32876861095428467,0.3694303035736084,0.3250260651111603,0.36613425612449646,0.32172974944114685,0.3629182279109955,0.31904760003089905,0.36003610491752625,0.3171144723892212,0.3575168550014496,0.3162133991718292,0.3554316759109497,0.31647419929504395,0.35392361879348755,0.31762418150901794,0.35296547412872314,0.31939736008644104,0.3524459898471832,0.32169878482818604,0.3522231876850128,0.32382136583328247,0.3515649437904358,0.323943555355072,0.34879955649375916,0.31993407011032104,0.3419891595840454,0.31043753027915955,0.3298355042934418,0.29507070779800415,0.3119099736213684,0.27397388219833374,0.28838664293289185,0.24728214740753174,0.2595595121383667,0.21489554643630981,0.2254326194524765,0.17702044546604156,0.1861249804496765,0.13509336113929749,0.14292919635772705,0.09184535592794418,0.0985659807920456,0.05040176957845688,0.05621499568223953,0.01354043185710907,0.018598206341266632,-0.016510628163814545,-0.012152232229709625,-0.03795430064201355,-0.03417684882879257,-0.048723407089710236,-0.045258983969688416,-0.045718543231487274,-0.04232113063335419,-0.025622978806495667,-0.022208139300346375,0.012788698077201843,0.016318827867507935,0.067243292927742,0.07123502343893051,0.13267022371292114,0.13764043152332306,0.20275083184242249,0.209126278758049,0.27113276720046997,0.27916431427001953,0.33227863907814026,0.3421016037464142,0.38191530108451843,0.3935193717479706,0.41712698340415955,0.4302797317504883,0.4366118311882019,0.45090678334236145,0.4410606920719147,0.45601534843444824,0.4329354763031006,0.44800302386283875,0.4156544506549835,0.43021994829177856,0.39290153980255127,0.40635135769844055,0.36821553111076355,0.3800208568572998,0.3446190655231476,0.3543797731399536,0.32438135147094727,0.3318696916103363,0.30896732211112976,0.31416574120521545,0.2989675998687744,0.302045077085495,0.29409757256507874,0.2953417897224426,0.29348260164260864,0.29323530197143555,0.2960135340690613,0.2946128845214844,0.3005402088165283,0.2982521057128906,0.3060187101364136,0.3029651343822479,0.31161439418792725,0.30772703886032104,0.31662559509277344,0.31167834997177124,0.32043734192848206,0.31415697932243347,0.3227097988128662,0.31484824419021606,0.32350826263427734,0.313800573348999,0.3231211006641388,0.3112623393535614,0.3218221068382263,0.3076017498970032,0.319834440946579,0.3033114969730377,0.31740814447402954,0.2989150285720825,0.31485068798065186,0.2948548495769501,0.3124483525753021,0.2914617955684662,0.31033024191856384,0.2889053225517273,0.3084651231765747,0.28716087341308594,0.3068024814128876,0.2860954999923706,0.3052840530872345,0.2855125665664673,0.30369892716407776,0.28507593274116516,0.30171483755111694,0.2843456566333771,0.2990935146808624,0.2829536199569702,0.295750230550766,0.28065529465675354,0.29166868329048157,0.2772802710533142,0.2869117259979248,0.2727862298488617,0.28164681792259216,0.2673061490058899,0.2760713994503021,0.2610625922679901,0.27038443088531494,0.25432145595550537,0.26479262113571167,0.24741120636463165,0.2594027817249298,0.24062642455101013,0.25418317317962646,0.23414039611816406,0.24914424121379852,0.22811943292617798,0.24441100656986237,0.2227998822927475,0.2400449812412262,0.21833443641662598,0.2359958440065384,0.2146882712841034,0.23225922882556915,0.2117394655942917,0.2288622409105301,0.20933091640472412,0.22570477426052094,0.20720435678958893,0.22260309755802155,0.20500941574573517,0.21942651271820068,0.2023804634809494,0.21604958176612854,0.1989881694316864,0.2122812718153,0.1946185678243637,0.20795966684818268,0.18923088908195496,0.20303267240524292,0.1828848272562027,0.19751881062984467,0.1756948083639145,0.1914731115102768,0.16792836785316467,0.18498684465885162,0.1600073128938675,0.17818424105644226,0.15231330692768097,0.17123626172542572,0.14508582651615143,0.16434428095817566,0.13850338757038116,0.15764987468719482,0.1326969563961029,0.1512037068605423,0.12764720618724823,0.14503470063209534,0.12316109985113144,0.13916251063346863,0.11896595358848572,0.13355253636837006,0.11481080204248428,0.12815110385417938,0.11050844192504883,0.12291742116212845,0.10589440912008286,0.11774105578660965,0.10077223181724548,0.11239765584468842,0.09496051073074341,0.10665403306484222,0.08838188648223877,0.1003800556063652,0.08106671273708344,0.09346766024827957,0.07306445389986038,0.08584439754486084,0.06449486315250397,0.07751166075468063,0.0555633008480072,0.06856295466423035,0.046484850347042084,0.059176962822675705,0.03744354099035263,0.04958879575133324,0.02862597443163395,0.0400613471865654,0.020237747579813004,0.03086978569626808,0.012458212673664093,0.02223091758787632,0.0053418781608343124,0.01419978216290474,-0.001248285174369812,0.006708775646984577,-0.0075348149985075,-0.0002906918525695801,-0.013653511181473732,-0.006836937740445137,-0.01968599110841751,-0.013062719255685806,-0.02580053173005581,-0.019140519201755524,-0.03219126909971237,-0.025186140090227127,-0.038921840488910675,-0.03132248297333717,-0.04595652595162392,-0.03771370276808739,-0.05326448380947113,-0.044453129172325134,-0.060802243649959564,-0.05154811590909958,-0.06848271191120148,-0.05902509018778801,-0.07619261741638184,-0.06691370159387589,-0.08379656076431274,-0.0751795619726181,-0.09120871871709824,-0.08378754556179047,-0.0985087901353836,-0.09274525940418243,-0.10586851090192795,-0.10203513503074646,-0.11339233070611954,-0.1116054505109787,-0.12117552012205124,-0.12139799445867538,-0.12939989566802979,-0.1313091218471527,-0.1381993591785431,-0.1412314921617508,-0.147567480802536,-0.1511681228876114,-0.15748564898967743,-0.16116419434547424,-0.16794219613075256,-0.1711844801902771,-0.178798109292984,-0.18121357262134552,-0.18982529640197754,-0.1913289576768875,-0.2008262723684311,-0.20152945816516876,-0.21157817542552948,-0.21168290078639984,-0.22180645167827606,-0.22168974578380585,-0.2313070297241211,-0.23146215081214905,-0.23995310068130493,-0.24079033732414246,-0.24763138592243195,-0.24947047233581543,-0.25434255599975586,-0.2574461102485657,-0.2602357864379883,-0.26465606689453125,-0.2654263377189636,-0.2709711790084839,-0.26997777819633484,-0.27640077471733093,-0.2740896940231323,-0.28114989399909973,-0.27805638313293457,-0.2854735553264618,-0.28208595514297485,-0.2896733283996582,-0.2863636612892151,-0.2941269874572754,-0.2911421060562134,-0.299156129360199,-0.2965962886810303,-0.30497097969055176,-0.30276089906692505,-0.31174346804618835,-0.3096446990966797,-0.3195430338382721,-0.3172059655189514,-0.32825422286987305,-0.3252774477005005,-0.3376973867416382,-0.33369049429893494,-0.34769386053085327,-0.3423401415348053,-0.3579603135585785,-0.3510512709617615,-0.3681504428386688,-0.3595849275588989,-0.37799546122550964,-0.36778882145881653,-0.38724061846733093,-0.3755456507205963,-0.3955906927585602,-0.3826776444911957,-0.40288683772087097,-0.3890700340270996,-0.4091619551181793,-0.3947434425354004,-0.41446515917778015,-0.3997305929660797,-0.4188607931137085,-0.40407246351242065,-0.4225817620754242,-0.4079211950302124,-0.42594799399375916,-0.4114592969417572,-0.42920154333114624,-0.41479772329330444,-0.4325565695762634,-0.41806554794311523,-0.4362483620643616,-0.4214438498020172,-0.4404276907444,-0.4250420928001404,-0.4451479911804199,-0.42889899015426636,-0.45045268535614014,-0.43308261036872864,-0.4563312530517578,-0.4376424252986908,-0.4626504182815552,-0.44253748655319214,-0.4692232012748718,-0.44769778847694397,-0.47585803270339966,-0.45304206013679504,-0.4823276400566101,-0.4584178030490875,-0.4884132742881775,-0.4636516273021698,-0.493976354598999,-0.4686329960823059,-0.4989304542541504,-0.47326552867889404,-0.5032305717468262,-0.4774376451969147,-0.5069249272346497,-0.4811008870601654,-0.5101109147071838,-0.4842684268951416,-0.5128448009490967,-0.48692530393600464,-0.5151772499084473,-0.489045113325119,-0.5172102451324463,-0.4906660318374634,-0.5190343856811523,-0.4918709993362427,-0.5206844806671143,-0.4927436411380768,-0.522188127040863,-0.49338048696517944,-0.5235728621482849,-0.493878036737442,-0.524824857711792,-0.49429672956466675,-0.5259182453155518,-0.4946802854537964,-0.5268622040748596,-0.4950801134109497,-0.5276737809181213,-0.4955251216888428,-0.5283466577529907,-0.4960111081600189,-0.5288761854171753,-0.4965241551399231,-0.5292695164680481,-0.49703070521354675,-0.5295256972312927,-0.4974631071090698,-0.5296366214752197,-0.49775710701942444,-0.5296010971069336,-0.4978855848312378,-0.5294173359870911,-0.4978395700454712,-0.5290791988372803,-0.49760928750038147,-0.5285782217979431,-0.4971923828125,-0.5278950333595276,-0.4965905249118805,-0.5270002484321594,-0.4957980513572693,-0.5258727073669434,-0.4948074221611023,-0.5245072245597839,-0.4936217963695526,-0.5229060649871826,-0.49225279688835144,-0.5210745334625244,-0.49071353673934937,-0.5190219283103943,-0.489006906747818,-0.5167518258094788,-0.4871183931827545,-0.5142611265182495,-0.4850262403488159,-0.5115514397621155,-0.4827241599559784,-0.5086349248886108,-0.4802265465259552,-0.5055283308029175,-0.47755685448646545,-0.5022464990615845,-0.47473302483558655,-0.4987978935241699,-0.4717614948749542,-0.49517983198165894,-0.4686356782913208,-0.4913797676563263,-0.4653436839580536,-0.487384557723999,-0.4618803858757019,-0.4831897020339966,-0.4582536518573761,-0.47879987955093384,-0.4544786214828491,-0.4742203950881958,-0.4505634307861328,-0.46944403648376465,-0.4464946985244751,-0.46444201469421387,-0.44223523139953613,-0.4591920077800751,-0.43775704503059387,-0.45380234718322754,-0.4331594705581665,-0.4482576847076416,-0.4284302294254303,-0.44253525137901306,-0.42354726791381836,-0.4366333782672882,-0.4185048043727875,-0.43056467175483704,-0.4133080244064331,-0.42434409260749817,-0.4079691767692566,-0.41797903180122375,-0.4025009870529175,-0.41146841645240784,-0.3969133198261261,-0.40480536222457886,-0.3912079930305481,-0.39798280596733093,-0.3853793740272522,-0.3909948766231537,-0.37941497564315796,-0.3838372826576233,-0.3733018636703491,-0.3765070140361786,-0.3670300245285034,-0.3690025210380554,-0.3605952560901642,-0.36132562160491943,-0.35399699211120605,-0.3534850478172302,-0.347239226102829,-0.3455008566379547,-0.3403315842151642,-0.3374013602733612,-0.3332901895046234,-0.3292185664176941,-0.32613515853881836,-0.3209799826145172,-0.31888967752456665,-0.312707781791687,-0.3115767538547516,-0.3044171929359436,-0.30421483516693115,-0.2961137294769287,-0.2968105673789978,-0.287792831659317,-0.28936243057250977,-0.2794452905654907,-0.2818763852119446,-0.2710641622543335,-0.2743810713291168,-0.26264554262161255,-0.26692333817481995,-0.25418442487716675,-0.25954583287239075,-0.2456752061843872,-0.2522677481174469,-0.23711907863616943,-0.24508249759674072,-0.22852902114391327,-0.2379646897315979,-0.21992439031600952,-0.23087120056152344,-0.21132147312164307,-0.2237369269132614,-0.2027295082807541,-0.21647736430168152,-0.1941550076007843,-0.20900630950927734,-0.18560859560966492,-0.2012595534324646,-0.17710696160793304,-0.1932099461555481,-0.16866502165794373,-0.18486526608467102,-0.16027802228927612,-0.17625293135643005,-0.15190652012825012,-0.16740408539772034,-0.14347873628139496,-0.1583499312400818,-0.13491913676261902,-0.1491309106349945,-0.1261826902627945,-0.13980576395988464,-0.11727005243301392,-0.13044916093349457,-0.10821488499641418,-0.12113991379737854,-0.09906162321567535,-0.11194673925638199,-0.08985001593828201,-0.10291466861963272,-0.08060862869024277,-0.09405313432216644,-0.07135115563869476,-0.08533615618944168,-0.06207706779241562,-0.07672415673732758,-0.0527779683470726,-0.06819739192724228,-0.04344412684440613,-0.0597696527838707,-0.03406934440135956,-0.05147016420960426,-0.024658385664224625,-0.04331723600625992,-0.015245087444782257,-0.035315826535224915,-0.0059119537472724915,-0.02747313305735588,0.0032121874392032623,-0.01980186440050602,0.011983063071966171,-0.012294502928853035,0.020283903926610947,-0.004899730905890465,0.02805602177977562,0.0024668164551258087,0.035305388271808624,0.009879233315587044,0.04209442436695099,0.017361540347337723,0.048530109226703644,0.024878814816474915,0.054752327501773834,0.03234849125146866,0.060921311378479004,0.039657074958086014,0.06720253825187683,0.04667987674474716,0.0737491250038147,0.053318336606025696,0.08068063110113144,0.05954745411872864,0.08805586397647858,0.06543652713298798,0.09584701061248779,0.07112129032611847,0.10393153131008148,0.0767485499382019,0.11212043464183807,0.08244599401950836,0.12021806091070175,0.08833739906549454,0.1280810832977295,0.09456155449151993,0.13564449548721313,0.10125024616718292,0.1429145187139511,0.10847346484661102,0.14995212852954865,0.11621200293302536,0.15686100721359253,0.12438612431287766,0.1637716144323349,0.13290725648403168,0.17080920934677124,0.1417008340358734,0.17805525660514832,0.15069368481636047,0.18551437556743622,0.15979520976543427,0.19309350848197937,0.16889125108718872,0.20060132443904877,0.1778457760810852,0.20778822898864746,0.1865084320306778,0.2144312858581543,0.1947418451309204,0.22041860222816467,0.20246091485023499,0.22577153146266937,0.20964892208576202,0.2305883765220642,0.21632149815559387,0.23496666550636292,0.22246390581130981,0.23896241188049316,0.22799497842788696,0.24260258674621582,0.23279574513435364,0.24591892957687378,0.23678524792194366,0.248972088098526,0.23999035358428955,0.2518520653247833,0.24255631864070892,0.2546519935131073,0.2446899116039276,0.2574346661567688,0.24658453464508057,0.26022133231163025,0.24839113652706146,0.26301535964012146,0.25023961067199707,0.2658284306526184,0.2522519826889038,0.268677294254303,0.25450819730758667,0.2715691924095154,0.25701192021369934,0.27451860904693604,0.2597254514694214,0.2775866389274597,0.2626533806324005,0.2808864414691925,0.2658756375312805,0.28452950716018677,0.2694924473762512,0.28857049345970154,0.27355408668518066,0.29300549626350403,0.2780616283416748,0.29779940843582153,0.28300735354423523,0.3028869032859802,0.28836995363235474,0.3081473112106323,0.2940548062324524,0.3134058713912964,0.2998628318309784,0.3184770941734314,0.30553561449050903,0.3232085108757019,0.31082984805107117,0.3274981677532196,0.3155636787414551,0.33131009340286255,0.3196343183517456,0.334693044424057,0.3230331242084503,0.3377578556537628,0.3258383572101593,0.34059277176856995,0.3281615078449249,0.3431852161884308,0.3300800919532776,0.3454265296459198,0.3316163420677185,0.34718337655067444,0.33276650309562683,0.34835436940193176,0.33353832364082336,0.3488852083683014,0.33397525548934937,0.34878212213516235,0.33417609333992004,0.34813082218170166,0.3342997133731842,0.3470771014690399,0.33452531695365906,0.3457757234573364,0.3350061774253845,0.34440669417381287,0.33591654896736145,0.34304994344711304,0.3373476266860962,0.3417830169200897,0.3393924832344055,0.34067779779434204,0.34211084246635437,0.33976149559020996,0.3454728424549103,0.3390282690525055,0.3493778705596924,0.33848339319229126,0.3537086248397827,0.33814239501953125,0.35832053422927856,0.33798927068710327,0.36298319697380066,0.3379756510257721,0.367387592792511,0.33807292580604553,0.37124550342559814,0.33829233050346375,0.37436410784721375,0.3386392295360565,0.37662485241889954,0.3390907347202301,0.3779562711715698,0.3396499454975128,0.3783873915672302,0.34038105607032776,0.3781013786792755,0.3413267135620117,0.37735795974731445,0.3423877954483032,0.3763378858566284,0.3433307409286499,0.3750898241996765,0.34391772747039795,0.37361714243888855,0.3439900279045105,0.3719516694545746,0.3434370756149292,0.37012267112731934,0.34218382835388184,0.36813002824783325,0.3402870297431946,0.3660232126712799,0.3380109965801239,0.36398354172706604,0.3357272148132324,0.36226099729537964,0.33372917771339417,0.3610217273235321,0.3321700394153595,0.36028921604156494,0.3311302959918976,0.36000531911849976,0.33064302802085876,0.36006680130958557,0.3306368291378021,0.3602849245071411,0.33094003796577454,0.36038947105407715,0.3313939571380615,0.36014264822006226,0.3319329023361206,0.3594413101673126,0.33255091309547424,0.3583035469055176,0.333262175321579,0.35682225227355957,0.33412057161331177,0.35518160462379456,0.33519402146339417,0.3536582589149475,0.33643603324890137,0.35249993205070496,0.33761170506477356,0.3517909646034241,0.338399201631546,0.3514852523803711,0.3385346829891205,0.35154107213020325,0.3378342092037201,0.35194092988967896,0.3361801505088806,0.35261058807373047,0.3336349129676819,0.35345658659935,0.3305266201496124,0.35447537899017334,0.32715994119644165,0.3555591106414795,0.32322508096694946,0.3559531271457672,0.3175520896911621,0.3540116250514984,0.3086777627468109,0.3478134274482727,0.2957591712474823,0.33618342876434326,0.2788720726966858,0.31906312704086304,0.25848230719566345,0.29696816205978394,0.23497503995895386,0.2704699635505676,0.20897898077964783,0.24048924446105957,0.18193909525871277,0.20885144174098969,0.1558382213115692,0.17798171937465668,0.13207562267780304,0.14971758425235748,0.11074550449848175,0.12449001520872116,0.09111859649419785,0.10174734145402908,0.07264640182256699,0.0810067430138588,0.055400654673576355,0.06237410008907318,0.03992924839258194,0.04639582708477974,0.02733016386628151,0.034069087356328964,0.019738657400012016,0.027350082993507385,0.020428039133548737,0.02936420403420925,0.03283391892910004,0.04347808286547661,0.058930449187755585,0.0716032087802887,0.09811178594827652,0.11300875246524811,0.14728772640228271,0.1644417643547058,0.20188573002815247,0.2211862951517105,0.25695711374282837,0.27817416191101074,0.30791592597961426,0.33069124817848206,0.350985586643219,0.3748006820678711,0.3835350275039673,0.40769463777542114,0.40427765250205994,0.4279574751853943,0.4132527709007263,0.4356182813644409,0.41165298223495483,0.43197256326675415,0.4015686511993408,0.41925567388534546,0.38561078906059265,0.4002455770969391,0.366449773311615,0.37785640358924866,0.34647783637046814,0.3547900319099426,0.3276962637901306,0.3333113193511963,0.3116696774959564,0.3151399791240692,0.29941827058792114,0.3013957142829895,0.2913617491722107,0.2925622761249542,0.2874203622341156,0.28850555419921875,0.2871525287628174,0.2885909676551819,0.2898179292678833,0.29186418652534485,0.29446321725845337,0.297207772731781,0.30010247230529785,0.3034416735172272,0.3058544397354126,0.30943411588668823,0.3109593391418457,0.314269483089447,0.31481796503067017,0.31740063428878784,0.3171224594116211,0.3186621069908142,0.3178839385509491,0.3181406259536743,0.31725195050239563,0.316037118434906,0.31534016132354736,0.31262126564979553,0.31226426362991333,0.3082268536090851,0.308246910572052,0.30319613218307495,0.3035838305950165,0.29779696464538574,0.2985372245311737,0.29221609234809875,0.29333794116973877,0.2866310179233551,0.2882595360279083,0.281252384185791,0.28361350297927856,0.27627500891685486,0.27966001629829407,0.2718202471733093,0.27655261754989624,0.2679551839828491,0.2743443250656128,0.26474589109420776,0.2729955017566681,0.26223862171173096,0.27235203981399536,0.2603779137134552,0.2721307873725891,0.2589706778526306,0.2719634175300598,0.2577463686466217,0.27150285243988037,0.2564413845539093,0.27051520347595215,0.25483351945877075,0.26887375116348267,0.2527434229850769,0.26650017499923706,0.25004786252975464,0.2633804380893707,0.2466958910226822,0.25963321328163147,0.2426961213350296,0.2554643154144287,0.23809194564819336,0.2510066032409668,0.23295894265174866,0.24626436829566956,0.227402463555336,0.24122701585292816,0.2215176224708557,0.23593056201934814,0.2153458595275879,0.23035825788974762,0.20890077948570251,0.2243967056274414,0.20224258303642273,0.21798449754714966,0.19549128413200378,0.2112288475036621,0.1887451559305191,0.20431013405323029,0.18202441930770874,0.19738520681858063,0.17536643147468567,0.19055110216140747,0.16883938014507294,0.1839984655380249,0.16257824003696442,0.17794819176197052,0.15667736530303955,0.1724846512079239,0.15111711621284485,0.16753928363323212,0.14582769572734833,0.1630040556192398,0.14079080522060394,0.1587768942117691,0.13602802157402039,0.15470734238624573,0.13150058686733246,0.1505787968635559,0.1270667314529419,0.1461588740348816,0.12255257368087769,0.14124834537506104,0.11782138049602509,0.1357063204050064,0.1127522885799408,0.12947916984558105,0.10719695687294006,0.12260617315769196,0.10102201998233795,0.11518053710460663,0.09419147670269012,0.1073247492313385,0.08678228408098221,0.09920886158943176,0.07892881333827972,0.09102530777454376,0.07078107446432114,0.08291636407375336,0.06251612305641174,0.07497084140777588,0.054358579218387604,0.06728880852460861,0.0465414822101593,0.05996242165565491,0.03921813145279884,0.05297655612230301,0.03241787850856781,0.046202197670936584,0.026083573698997498,0.03949197754263878,0.020098615437746048,0.03272058069705963,0.01425711065530777,0.025761678814888,0.0082787424325943,0.01850035786628723,0.0019084513187408447,0.010851874947547913,-0.005016744136810303,0.0027487576007843018,-0.01258590817451477,-0.005826480686664581,-0.020820386707782745,-0.014778167009353638,-0.02963588386774063,-0.023947954177856445,-0.03883322328329086,-0.03323911130428314,-0.04814644157886505,-0.04261285811662674,-0.05732439458370209,-0.05197104811668396,-0.06621380895376205,-0.061148837208747864,-0.07475987076759338,-0.07004342973232269,-0.0829121470451355,-0.07866489887237549,-0.09059935808181763,-0.08702351152896881,-0.0978403389453888,-0.0950472503900528,-0.10478620231151581,-0.10268557071685791,-0.1115979254245758,-0.11004021763801575,-0.11836123466491699,-0.11728629469871521,-0.1251428872346878,-0.12451077997684479,-0.1320313811302185,-0.1317625343799591,-0.13910743594169617,-0.1392054706811905,-0.14642347395420074,-0.1470346599817276,-0.1539798080921173,-0.15527844429016113,-0.16170451045036316,-0.16384781897068024,-0.16952913999557495,-0.17271344363689423,-0.17747634649276733,-0.181866854429245,-0.18558655679225922,-0.19120028614997864,-0.1938110888004303,-0.20056191086769104,-0.20207038521766663,-0.20982769131660461,-0.21033170819282532,-0.21886520087718964,-0.21855482459068298,-0.2275872528553009,-0.22667238116264343,-0.2360503226518631,-0.23466581106185913,-0.24435371160507202,-0.24255190789699554,-0.2525116801261902,-0.2503094971179962,-0.26056379079818726,-0.25791803002357483,-0.2686459720134735,-0.265402227640152,-0.2768164277076721,-0.2727625370025635,-0.2849910259246826,-0.27996397018432617,-0.2931184768676758,-0.28702080249786377,-0.3011983036994934,-0.29396578669548035,-0.3091249167919159,-0.3007667064666748,-0.3167557120323181,-0.3074030876159668,-0.32409340143203735,-0.3139421045780182,-0.33121705055236816,-0.32043159008026123,-0.3381509780883789,-0.32684582471847534,-0.34494221210479736,-0.3331971764564514,-0.3517029881477356,-0.3395477533340454,-0.35848891735076904,-0.345898300409317,-0.3653014898300171,-0.35221612453460693,-0.37220367789268494,-0.3585188388824463,-0.3792582154273987,-0.3648207187652588,-0.38640761375427246,-0.37110307812690735,-0.393545538187027,-0.37739109992980957,-0.40060749650001526,-0.3837079405784607,-0.4075193405151367,-0.3899625539779663,-0.4141964614391327,-0.3960525691509247,-0.42061641812324524,-0.4020005464553833,-0.42677319049835205,-0.40783387422561646,-0.4326091706752777,-0.4134617745876312,-0.4380987286567688,-0.4187893271446228,-0.44331538677215576,-0.4238043427467346,-0.4483404755592346,-0.42851030826568604,-0.45318907499313354,-0.4329345226287842,-0.45785045623779297,-0.4371677339076996,-0.46233269572257996,-0.4412577748298645,-0.46668684482574463,-0.4451722502708435,-0.47099173069000244,-0.44895413517951965,-0.47526106238365173,-0.45273566246032715,-0.4794234335422516,-0.4565529525279999,-0.48346206545829773,-0.460336834192276,-0.487442284822464,-0.4640561640262604,-0.49133917689323425,-0.4676953852176666,-0.49503153562545776,-0.4711844027042389,-0.49849700927734375,-0.4744860529899597,-0.5017921328544617,-0.4776119589805603,-0.5048731565475464,-0.48050105571746826,-0.5076683163642883,-0.48306500911712646,-0.5102288126945496,-0.4853420853614807,-0.5126030445098877,-0.48742344975471497,-0.5147296190261841,-0.4893101155757904,-0.5166022181510925,-0.49098825454711914,-0.518316924571991,-0.4925043284893036,-0.519883930683136,-0.4938730001449585,-0.5212352275848389,-0.4950759708881378,-0.522398829460144,-0.4961559772491455,-0.5234311819076538,-0.4971415400505066,-0.5242810845375061,-0.4979563057422638,-0.5249060392379761,-0.49855610728263855,-0.5253487229347229,-0.4990082085132599,-0.525596022605896,-0.4993344843387604,-0.5255888104438782,-0.49945956468582153,-0.5253779292106628,-0.49935832619667053,-0.5250194072723389,-0.4990674555301666,-0.5244154930114746,-0.4985846281051636,-0.5235034823417664,-0.4979121685028076,-0.522404134273529,-0.49709317088127136,-0.5211771130561829,-0.49610140919685364,-0.5196942687034607,-0.4948584735393524,-0.517902135848999,-0.4933931529521942,-0.5159035325050354,-0.4917854070663452)
34 new Array(-0.5137231945991516,-0.49000853300094604,-0.5113903284072876,-0.488100528717041,-0.5088633298873901,-0.48603248596191406,-0.5061661005020142,-0.4837847948074341,-0.5032707452774048,-0.4813406467437744,-0.5001466274261475,-0.4787534177303314,-0.49685049057006836,-0.4760761260986328,-0.49342668056488037,-0.4732472896575928,-0.4898289442062378,-0.47021234035491943,-0.4860019385814667,-0.467038094997406,-0.48194417357444763,-0.4637599587440491,-0.4776892066001892,-0.46030497550964355,-0.4732748866081238,-0.45665597915649414,-0.46869802474975586,-0.4528677761554718,-0.46391454339027405,-0.4489230215549469,-0.45892152190208435,-0.4447893500328064,-0.4537576138973236,-0.44052648544311523,-0.4484187066555023,-0.4361549913883209,-0.44290804862976074,-0.4315980076789856,-0.4373047649860382,-0.4268632233142853,-0.4316164255142212,-0.42204850912094116,-0.42571672797203064,-0.41714534163475037,-0.4195888936519623,-0.41207751631736755,-0.4133991301059723,-0.40687015652656555,-0.40720468759536743,-0.401580274105072,-0.4008715748786926,-0.39620015025138855,-0.3943476378917694,-0.39074966311454773,-0.3877306580543518,-0.3852769136428833,-0.38106489181518555,-0.3797324001789093,-0.3743053674697876,-0.3740321695804596,-0.3674202561378479,-0.3681885004043579,-0.3603806793689728,-0.36222216486930847,-0.3531627357006073,-0.35607028007507324,-0.34580618143081665,-0.3496861755847931,-0.3383495807647705,-0.3430899977684021,-0.3307521343231201,-0.3362985849380493,-0.3229793906211853,-0.3293401896953583,-0.315058171749115,-0.32228440046310425,-0.30699875950813293,-0.315151184797287,-0.2987874746322632,-0.30789127945899963,-0.29045185446739197,-0.30051279067993164,-0.28202396631240845,-0.29308781027793884,-0.2735027074813843,-0.2856077551841736,-0.2649257779121399,-0.27798640727996826,-0.2563796639442444,-0.2702132761478424,-0.24790993332862854,-0.2623620629310608,-0.23951497673988342,-0.2544562816619873,-0.23120757937431335,-0.24646149575710297,-0.22298353910446167,-0.2383953332901001,-0.21476247906684875,-0.2303106039762497,-0.20644812285900116,-0.22219493985176086,-0.1980222761631012,-0.21401672065258026,-0.18950195610523224,-0.2058141976594925,-0.18083666265010834,-0.19762080907821655,-0.17196400463581085,-0.18940521776676178,-0.1629542112350464,-0.18119071424007416,-0.15394656360149384,-0.17307928204536438,-0.14496801793575287,-0.16509070992469788,-0.13598699867725372,-0.1571563482284546,-0.12707515060901642,-0.14925628900527954,-0.11832299828529358,-0.14137746393680573,-0.10971798002719879,-0.13344717025756836,-0.10125025361776352,-0.1254633218050003,-0.09293901920318604,-0.11750493198633194,-0.08468332141637802,-0.10955502837896347,-0.07634306699037552,-0.10155733674764633,-0.06794353574514389,-0.09359082579612732,-0.0595434196293354,-0.08573566377162933,-0.0510471872985363,-0.0779324322938919,-0.042377568781375885,-0.07014453411102295,-0.03362184390425682,-0.06238359585404396,-0.02486787736415863,-0.05453343316912651,-0.01613004505634308,-0.0464804507791996,-0.007472425699234009,-0.03832215070724487,0.0009909719228744507,-0.030160509049892426,0.00918087363243103,-0.0219377800822258,0.01705806702375412,-0.013661175966262817,0.024636313319206238,-0.0054317861795425415,0.031981587409973145,0.002793937921524048,0.03918281942605972,0.011097252368927002,0.0463932529091835,0.01936565339565277,0.05372148007154465,0.02748739719390869,0.0609898716211319,0.03553415834903717,0.06804285198450089,0.04353989660739899,0.07528826594352722,0.05137953907251358,0.08313757926225662,0.05894308537244797,0.09104142338037491,0.06621246039867401,0.09819495677947998,0.07324355840682983,0.10493610799312592,0.08019237220287323,0.11213169991970062,0.08720662444829941,0.11955674737691879,0.09431906044483185,0.1262604296207428,0.10157740116119385,0.13215814530849457,0.10906890779733658,0.1380482316017151,0.11671863496303558,0.14434769749641418,0.12434201687574387,0.15068860352039337,0.13187485933303833,0.15661653876304626,0.13927049934864044,0.1622142195701599,0.14633619785308838,0.16797444224357605,0.15291756391525269,0.17413830757141113,0.15904036164283752,0.18042199313640594,0.16477809846401215,0.18657466769218445,0.17019487917423248,0.19275277853012085,0.1753728985786438,0.1990659385919571,0.1803634762763977,0.20531892776489258,0.18523544073104858,0.21139419078826904,0.19012044370174408,0.21729907393455505,0.1950494647026062,0.222874253988266,0.1999734342098236,0.228011816740036,0.2050219029188156,0.23290342092514038,0.210371196269989,0.23768731951713562,0.21597397327423096,0.24231691658496857,0.2218102216720581,0.2469380795955658,0.2279721051454544,0.2518135607242584,0.23417289555072784,0.25691327452659607,0.23994697630405426,0.26207083463668823,0.24547690153121948,0.2672507166862488,0.25112250447273254,0.27232447266578674,0.25628194212913513,0.27704593539237976,0.260145902633667,0.28139808773994446,0.26323676109313965,0.28550174832344055,0.2666539251804352,0.2893005907535553,0.27030205726623535,0.29275497794151306,0.27338463068008423,0.29604265093803406,0.2760785222053528,0.29927703738212585,0.27935171127319336,0.302398145198822,0.2835429012775421,0.30541032552719116,0.28810322284698486,0.3083387315273285,0.29246801137924194,0.31105777621269226,0.2966208755970001,0.3135039806365967,0.3009149432182312,0.31568992137908936,0.30537116527557373,0.3176348805427551,0.30956944823265076,0.3193422853946686,0.31316643953323364,0.3208901584148407,0.3162834644317627,0.3223532438278198,0.31914156675338745,0.32372766733169556,0.3216931223869324,0.3250102996826172,0.3238937258720398,0.32619887590408325,0.32591819763183594,0.32724729180336,0.32787463068962097,0.32814714312553406,0.32968413829803467,0.3289378583431244,0.3313487470149994,0.32962244749069214,0.33299732208251953,0.33025267720222473,0.33466023206710815,0.3309943675994873,0.33627644181251526,0.33193162083625793,0.33788472414016724,0.3330099880695343,0.3396027088165283,0.33427178859710693,0.34145987033843994,0.33584967255592346,0.3433850407600403,0.3376842141151428,0.34532588720321655,0.3395330309867859,0.34727874398231506,0.34122443199157715,0.3492124080657959,0.3427020013332367,0.3510623872280121,0.34393221139907837,0.35280218720436096,0.3448846936225891,0.3544255197048187,0.345511257648468,0.35589224100112915,0.3457866907119751,0.35723280906677246,0.34584540128707886,0.3586302697658539,0.34591227769851685,0.3602270781993866,0.3460692763328552,0.36193689703941345,0.3463064730167389,0.36358287930488586,0.34671613574028015,0.36508455872535706,0.3473617732524872,0.3663909435272217,0.3480914235115051,0.36737513542175293,0.34872686862945557,0.36788907647132874,0.3492404818534851,0.3678523302078247,0.34957072138786316,0.3672947287559509,0.3495337665081024,0.3663550615310669,0.349063515663147,0.36519855260849,0.34828177094459534,0.3639591932296753,0.34726089239120483,0.3627973198890686,0.3459911048412323,0.36188578605651855,0.3445943593978882,0.36128389835357666,0.3432638645172119,0.360962837934494,0.3419889211654663,0.36096450686454773,0.3406458795070648,0.36137494444847107,0.33931952714920044,0.36218199133872986,0.3382019102573395,0.36331093311309814,0.3372468650341034,0.36474165320396423,0.33627501130104065,0.3664785623550415,0.33529964089393616,0.36844712495803833,0.3344076871871948,0.3704620599746704,0.33351296186447144,0.37229543924331665,0.3325388431549072,0.3738071024417877,0.3315884470939636,0.37496477365493774,0.33070746064186096,0.3756759762763977,0.32981252670288086,0.37573686242103577,0.3289702832698822,0.3750419616699219,0.3283597528934479,0.37365415692329407,0.32795339822769165,0.37158074975013733,0.32762959599494934,0.36872994899749756,0.32744911313056946,0.36513349413871765,0.327328085899353,0.36083292961120605,0.32647183537483215,0.3553459048271179,0.3234274387359619,0.3475061357021332,0.3167162835597992,0.3361029028892517,0.30550384521484375,0.3206931948661804,0.289927214384079,0.301763653755188,0.2707938551902771,0.28021207451820374,0.2489292174577713,0.25686004757881165,0.22513742744922638,0.23259875178337097,0.2009105384349823,0.20892499387264252,0.17861606180667877,0.18800251185894012,0.16042542457580566,0.1717921644449234,0.14698050916194916,0.16082054376602173,0.1370360553264618,0.15366528928279877,0.12817446887493134,0.14766347408294678,0.11803093552589417,0.14030992984771729,0.10540719330310822,0.1303406059741974,0.09064079821109772,0.11794678121805191,0.07512999325990677,0.1043713390827179,0.06083159148693085,0.09155081957578659,0.05038084089756012,0.08213365077972412,0.047207534313201904,0.0794491171836853,0.05470795929431915,0.08676983416080475,0.07482234388589859,0.1060170903801918,0.10722704231739044,0.13688474893569946,0.1495549976825714,0.17697802186012268,0.19809097051620483,0.22259706258773804,0.24851331114768982,0.2695668935775757,0.29662609100341797,0.3139076828956604,0.3389118015766144,0.3523290455341339,0.37274593114852905,0.3825106620788574,0.39645275473594666,0.4031810462474823,0.40939658880233765,0.414045125246048,0.41200780868530273,0.41564178466796875,0.40561020374298096,0.4092215895652771,0.3921266198158264,0.3965846300125122,0.3738146126270294,0.37977224588394165,0.3530846834182739,0.360776424407959,0.33230307698249817,0.34146547317504883,0.3134949207305908,0.3235333561897278,0.29809248447418213,0.30826473236083984,0.2869272828102112,0.2963654398918152,0.2803330719470978,0.2880798876285553,0.2781458795070648,0.2833423912525177,0.2797280550003052,0.28175947070121765,0.28418320417404175,0.2826170325279236,0.29055237770080566,0.28502604365348816,0.29783299565315247,0.2880639433860779,0.3050537407398224,0.2908852994441986,0.31150898337364197,0.29286256432533264,0.31685498356819153,0.29363778233528137,0.3209408223628998,0.29303422570228577,0.3236549198627472,0.2910189926624298,0.3249479830265045,0.2877538502216339,0.3248835802078247,0.28355008363723755,0.3236102759838104,0.2787551283836365,0.3212985694408417,0.27375152707099915,0.31806454062461853,0.2689562439918518,0.31393393874168396,0.2646617591381073,0.30892059206962585,0.2609400451183319,0.3031262159347534,0.2577987313270569,0.2967284619808197,0.2553180754184723,0.2899474501609802,0.2535468339920044,0.2830822467803955,0.2523913085460663,0.27646496891975403,0.2516772150993347,0.27031591534614563,0.2512190043926239,0.2647823095321655,0.2508447468280792,0.25996577739715576,0.25032496452331543,0.25594156980514526,0.24949151277542114,0.2525883615016937,0.24821141362190247,0.24961310625076294,0.24631737172603607,0.24674704670906067,0.24365116655826569,0.24378450214862823,0.24015013873577118,0.2405320256948471,0.23586493730545044,0.23689839243888855,0.23092935979366302,0.23295597732067108,0.22551023960113525,0.22881460189819336,0.2197560966014862,0.22456791996955872,0.21381458640098572,0.22040949761867523,0.20788267254829407,0.21659861505031586,0.20215559005737305,0.2132403701543808,0.19671525061130524,0.21023744344711304,0.19153043627738953,0.20741993188858032,0.18653440475463867,0.20455028116703033,0.18163129687309265,0.2012627124786377,0.17666466534137726,0.19717349112033844,0.17145000398159027,0.19201600551605225,0.1658248007297516,0.18561972677707672,0.15966778993606567,0.1779114007949829,0.15292170643806458,0.1690191626548767,0.14558954536914825,0.15924739837646484,0.13767898082733154,0.14891751110553741,0.12920112907886505,0.1383480280637741,0.12023596465587616,0.12793944776058197,0.1109166145324707,0.11810696125030518,0.10136047005653381,0.10913249105215073,0.09172657132148743,0.1011713445186615,0.08230516314506531,0.0943390354514122,0.07342809438705444,0.08870010823011398,0.06534087657928467,0.08421285450458527,0.058251891285181046,0.0807342454791069,0.0523688979446888,0.07804303616285324,0.047738026827573776,0.07584884017705917,0.04413424804806709,0.07380872964859009,0.04118501394987106,0.07154276967048645,0.038487426936626434,0.0686652734875679,0.03558041900396347,0.06486204266548157,0.0319744274020195,0.05993484705686569,0.027289263904094696,0.05376472324132919,0.021312803030014038,0.04630828648805618,0.013984277844429016,0.03766322135925293,0.005423426628112793,0.02805314213037491,-0.0040769875049591064,0.01772705465555191,-0.014155000448226929,0.0069579556584358215,-0.024425312876701355,-0.003892548382282257,-0.034451521933078766,-0.014451511204242706,-0.04383676499128342,-0.024486973881721497,-0.05239381641149521,-0.03391285985708237,-0.06015949696302414,-0.04270743578672409,-0.06728138774633408,-0.05091959983110428,-0.07397614419460297,-0.0586925745010376,-0.0805329903960228,-0.0662003830075264,-0.08724270761013031,-0.07359982281923294,-0.09432008862495422,-0.08105243742465973,-0.10188722610473633,-0.08869340270757675,-0.10994412750005722,-0.09654761105775833,-0.11832835525274277,-0.10454189777374268,-0.1267707496881485,-0.11260934174060822,-0.13502219319343567,-0.12074155360460281,-0.14292706549167633,-0.12895497679710388,-0.15042932331562042,-0.13724792003631592,-0.15755988657474518,-0.14559385180473328,-0.16441892087459564,-0.1539762169122696,-0.1711602807044983,-0.16242380440235138,-0.17798106372356415,-0.17097726464271545,-0.1850680112838745,-0.17961308360099792,-0.19250938296318054,-0.1882379651069641,-0.20026762783527374,-0.19674423336982727,-0.20821866393089294,-0.2050238698720932,-0.21618175506591797,-0.2129627764225006,-0.22394722700119019,-0.22049042582511902,-0.23134419322013855,-0.22762390971183777,-0.2382839024066925,-0.23443394899368286,-0.24473749101161957,-0.24101610481739044,-0.2507375478744507,-0.24751800298690796,-0.25642403960227966,-0.2541276514530182,-0.26202377676963806,-0.26100021600723267,-0.26775965094566345,-0.2682335376739502,-0.2738083004951477,-0.27590224146842957,-0.28030723333358765,-0.2840461730957031,-0.2873222529888153,-0.2926250100135803,-0.2948102355003357,-0.30153170228004456,-0.30264827609062195,-0.3106444776058197,-0.31068146228790283,-0.31983932852745056,-0.3187355399131775,-0.328976571559906,-0.32663577795028687,-0.337910920381546,-0.334236741065979,-0.3465123176574707,-0.34141790866851807,-0.3546822965145111,-0.34808236360549927,-0.3623671531677246,-0.3542081117630005,-0.3695635199546814,-0.3598801791667938,-0.3763040602207184,-0.36523255705833435,-0.3826392590999603,-0.37037503719329834,-0.38862234354019165,-0.3753855526447296,-0.394300252199173,-0.38032299280166626,-0.3997267782688141,-0.3852221369743347,-0.40498611330986023,-0.39010003209114075,-0.41017886996269226,-0.39498022198677063,-0.41537636518478394,-0.3998861610889435,-0.4206025004386902,-0.404814749956131,-0.42585769295692444,-0.4097353518009186,-0.4311356544494629,-0.4146151840686798,-0.43641966581344604,-0.4194323718547821,-0.44168272614479065,-0.42417213320732117,-0.44688862562179565,-0.4288170039653778,-0.45198318362236023,-0.4333416223526001,-0.45690152049064636,-0.43771636486053467,-0.46159815788269043,-0.4419223368167877,-0.46606379747390747,-0.4459584057331085,-0.4703110158443451,-0.4498317539691925,-0.4743539094924927,-0.45354267954826355,-0.4781973659992218,-0.4570796489715576,-0.4818352460861206,-0.4604245722293854,-0.4852607846260071,-0.4635674059391022,-0.4884822368621826,-0.46651771664619446,-0.49152228236198425,-0.46929827332496643,-0.4943970739841461,-0.4719245731830597,-0.4971011281013489,-0.4743885397911072,-0.4996146559715271,-0.47666504979133606,-0.5019261240959167,-0.47873517870903015,-0.5040473341941833,-0.4806043803691864,-0.5060036182403564,-0.4822950065135956,-0.5078047513961792,-0.4838182032108307,-0.5094174146652222,-0.48514917492866516,-0.5107952952384949,-0.48625442385673523,-0.5120333433151245,-0.4872269034385681,-0.5131012201309204,-0.48804327845573425,-0.5139797925949097,-0.48869040608406067,-0.5146780014038086,-0.4891781508922577,-0.5152041912078857,-0.48951324820518494,-0.515548050403595,-0.4896860122680664,-0.5156898498535156,-0.4896797835826874,-0.5156195759773254,-0.4894915819168091,-0.5153493285179138,-0.4891391396522522,-0.5149028897285461,-0.48864948749542236,-0.5142913460731506,-0.4880334436893463,-0.5134984850883484,-0.4872722327709198,-0.512488603591919,-0.4863273799419403,-0.5112295150756836,-0.4851687550544739,-0.5097134113311768,-0.48379451036453247,-0.5079579949378967,-0.48222753405570984,-0.5059928894042969,-0.4804929196834564,-0.5038410425186157,-0.47860074043273926,-0.5015115737915039,-0.4765486717224121,-0.49900615215301514,-0.474336177110672,-0.4963277280330658,-0.4719712436199188,-0.4934810698032379,-0.46946513652801514,-0.49046316742897034,-0.4668181240558624,-0.48725906014442444,-0.46401435136795044,-0.48385322093963623,-0.46102750301361084,-0.48024654388427734,-0.45783665776252747,-0.47645989060401917,-0.45443978905677795,-0.4725186824798584,-0.4508539140224457,-0.4684355556964874,-0.44709959626197815,-0.46420466899871826,-0.44318661093711853,-0.4598103165626526,-0.43911513686180115,-0.4552389979362488,-0.43489035964012146,-0.45048898458480835,-0.43053045868873596,-0.4455726444721222,-0.42605772614479065,-0.44050833582878113,-0.42148131132125854,-0.4353029131889343,-0.4167920649051666,-0.4299459159374237,-0.41197001934051514,-0.4244259297847748,-0.40699324011802673,-0.41875192523002625,-0.40184569358825684,-0.41294997930526733,-0.39652132987976074,-0.40703457593917847,-0.39102911949157715,-0.40099236369132996,-0.3853883147239685,-0.3947983682155609,-0.379618763923645,-0.38843998312950134,-0.3737398684024811,-0.38192009925842285,-0.3677789866924286,-0.3752404749393463,-0.3617693781852722,-0.3683972954750061,-0.3557269871234894,-0.3613896369934082,-0.34962818026542664,-0.3542184829711914,-0.3434188663959503,-0.3468770682811737,-0.33705273270606995,-0.33935868740081787,-0.3305167555809021,-0.3316848576068878,-0.3238251209259033,-0.32391107082366943,-0.31700414419174194,-0.3160881996154785,-0.3100919723510742,-0.30822646617889404,-0.30314183235168457,-0.30031096935272217,-0.29620152711868286,-0.29234418272972107,-0.28928154706954956,-0.2843485474586487,-0.28234970569610596,-0.2763228714466095,-0.2753610908985138,-0.26822763681411743,-0.2682851552963257,-0.2600266933441162,-0.26110294461250305,-0.2517269551753998,-0.25379523634910583,-0.2433546781539917,-0.24635474383831024,-0.23491129279136658,-0.2388077676296234,-0.22638581693172455,-0.23121139407157898,-0.21780720353126526,-0.22362297773361206,-0.20924493670463562,-0.2160770297050476,-0.20073820650577545,-0.20858462154865265,-0.19224850833415985,-0.20113219320774078,-0.18370383977890015,-0.19366946816444397,-0.17507335543632507,-0.1861170083284378,-0.16637077927589417,-0.17841219902038574,-0.1576009839773178,-0.17055565118789673,-0.148741215467453,-0.16260384023189545,-0.1397855281829834,-0.15461835265159607,-0.13077619671821594,-0.14663778245449066,-0.12177445739507675,-0.1386960744857788,-0.11282160133123398,-0.1308393031358719,-0.10394816100597382,-0.1230967789888382,-0.09519916772842407,-0.11543876677751541,-0.08661489933729172,-0.10778286308050156,-0.07818744331598282,-0.10004876554012299,-0.06986398994922638,-0.09220118820667267,-0.06159941852092743,-0.08424758911132812,-0.053382694721221924,-0.07621950656175613,-0.045204222202301025,-0.06816849112510681,-0.03702538460493088,-0.06016238033771515,-0.02880621701478958,-0.05225931107997894,-0.020550966262817383,-0.04448086768388748,-0.012302905321121216,-0.0368179976940155,-0.004100114107131958,-0.029257260262966156,0.004040226340293884,-0.021784842014312744,0.012096323072910309,-0.014362379908561707,0.020029857754707336,-0.0069222599267959595,0.027816027402877808,0.0005943924188613892,0.035470448434352875,0.008194826543331146,0.043032705783843994,0.01583489030599594,0.05053168535232544,0.023451924324035645,0.05797713249921799,0.030986033380031586,0.0653659775853157,0.0383775532245636,0.07267146557569504,0.04556902498006821,0.07983017712831497,0.052524030208587646,0.08677184581756592,0.05924297124147415,0.09348134696483612,0.06576123833656311,0.10002323985099792,0.07214471697807312,0.10649779438972473,0.07848785817623138,0.11298158764839172,0.08489495515823364,0.11951449513435364,0.09144071489572525,0.12612414360046387,0.09814945608377457,0.13283410668373108,0.10502535849809647,0.13964423537254333,0.11209312081336975,0.1465175449848175,0.11938157677650452,0.15339161455631256,0.12685833871364594,0.16019673645496368,0.13440126180648804,0.16686761379241943,0.14185304939746857,0.1733635812997818,0.14909660816192627,0.1796974241733551,0.15606801211833954,0.1859397441148758,0.16272011399269104,0.19217726588249207,0.16901637613773346,0.19845536351203918,0.17497338354587555,0.20475313067436218,0.1806771457195282,0.21099962294101715,0.1862298846244812,0.21710392832756042,0.19168782234191895,0.22298064827919006,0.19706708192825317,0.22857160866260529,0.20239682495594025,0.23385636508464813,0.20773008465766907,0.23883312940597534,0.21309153735637665,0.24349918961524963,0.2184503823518753,0.24790242314338684,0.22379642724990845,0.2520396411418915,0.22907114028930664,0.2559488117694855,0.23422284424304962,0.25970956683158875,0.23919197916984558,0.263393372297287,0.24391581118106842,0.267034649848938,0.24837423861026764,0.2706506550312042,0.25261327624320984,0.2742699086666107,0.25670841336250305,0.27793049812316895,0.2607170045375824,0.2816528379917145,0.26468127965927124,0.28542274236679077,0.26866281032562256,0.2891985774040222,0.2727433443069458,0.292927622795105,0.27697640657424927,0.2965553402900696,0.281343013048172,0.3000248968601227,0.2857591211795807,0.3032781183719635,0.2901217043399811,0.30626803636550903,0.29434892535209656,0.3089806139469147,0.2983919382095337,0.31145021319389343,0.30222588777542114,0.3137483298778534,0.30583545565605164,0.31595122814178467,0.3092058300971985,0.31811270117759705,0.31232768297195435,0.3202593922615051,0.31520572304725647,0.3223975598812103,0.31785526871681213,0.3245071470737457,0.3202867805957794,0.3265295624732971,0.32250121235847473,0.3283746540546417,0.3245077431201935,0.32995209097862244,0.3263428807258606,0.33120396733283997,0.32806700468063354,0.3321175277233124,0.32974594831466675,0.332724928855896,0.3314400613307953,0.3331047594547272,0.3331981897354126,0.33337944746017456,0.33504244685173035,0.33369430899620056,0.33695265650749207,0.3341796398162842,0.3388760983943939,0.33491915464401245,0.3407588005065918,0.33593639731407166,0.3425574004650116,0.3371926546096802,0.3442245423793793,0.3385861814022064,0.3457033038139343,0.33996182680130005,0.3469533324241638,0.3411432206630707,0.34797245264053345,0.3419831097126007,0.34877270460128784,0.34240439534187317,0.349345326423645,0.3424091935157776,0.3496764302253723,0.34206104278564453,0.3498052656650543,0.3414638340473175,0.34984588623046875,0.3407500982284546,0.3499334454536438,0.340066134929657,0.3501625061035156,0.33954519033432007,0.35058847069740295,0.33927953243255615,0.3512694835662842,0.3393147885799408,0.3522685766220093,0.33966028690338135,0.35359981656074524,0.3402900993824005,0.3551881015300751,0.34113386273384094,0.356891930103302,0.3420846462249756,0.3585565388202667,0.34303149580955505,0.36004331707954407,0.34388241171836853,0.3612383306026459,0.344550758600235,0.3620738983154297,0.34493643045425415,0.3625553846359253,0.34495019912719727,0.3627432882785797,0.3445638120174408,0.3626939058303833,0.3438241183757782,0.3624250590801239,0.3428187668323517,0.361955851316452,0.3416540026664734,0.36136651039123535,0.3404766321182251,0.36078914999961853,0.33948343992233276,0.36033061146736145,0.3388586640357971,0.3600243926048279,0.3386785686016083,0.35987240076065063,0.3388814926147461,0.3599116802215576,0.3393232822418213,0.3602134883403778,0.3398509621620178,0.3608211874961853,0.34033000469207764,0.36171820759773254,0.3406338095664978,0.3628429174423218,0.3406321406364441,0.36408504843711853,0.34020528197288513,0.36525389552116394,0.3392985761165619,0.3661157488822937,0.33797401189804077,0.36651450395584106,0.33633241057395935,0.3663865327835083,0.33423125743865967,0.3655090928077698,0.33098775148391724,0.36318421363830566,0.3254320025444031,0.3582824468612671,0.31642067432403564,0.3497524857521057,0.3034154772758484,0.33714884519577026,0.2866259813308716,0.3206908106803894,0.2667217552661896,0.3009462058544159,0.24460870027542114,0.2786709666252136,0.22157062590122223,0.2550315260887146,0.19945719838142395,0.2318165898323059,0.18042144179344177,0.21116450428962708,0.16621296107769012,0.19487625360488892,0.15751305222511292,0.18379129469394684,0.15367744863033295,0.1775275021791458,0.1528540998697281,0.17453670501708984,0.1523725986480713,0.17242954671382904,0.14946037530899048,0.16865786910057068,0.1421966850757599,0.1614331305027008,0.13021358847618103,0.1503685712814331,0.1146666407585144,0.13641898334026337,0.09762406349182129,0.12132522463798523,0.08152692764997482,0.10719214379787445,0.0690765306353569,0.09647108614444733,0.06320425868034363,0.09195809066295624,0.06661736965179443,0.09632152318954468,0.08097830414772034,0.11124186217784882,0.10628615319728851,0.13673646748065948,0.1408746838569641,0.17110836505889893,0.18190903961658478,0.2114475965499878,0.22600501775741577,0.25431403517723083,0.269742876291275,0.29631057381629944,0.3100496232509613,0.334465891122818,0.3444552719593048,0.3664591610431671,0.3712193965911865,0.3907356262207031,0.3893691599369049,0.4065472185611725,0.39870530366897583,0.4139246642589569,0.399762898683548,0.4135751724243164,0.393675297498703,0.4067177474498749,0.38196316361427307,0.3948909044265747,0.36633679270744324,0.37975722551345825,0.3485592305660248,0.36291125416755676,0.330335408449173,0.3457352817058563,0.3131875991821289,0.3293605446815491,0.29833319783210754,0.314715713262558,0.28659963607788086,0.3025423586368561,0.27838796377182007,0.29330089688301086,0.27369534969329834,0.2870592176914215,0.2722085118293762,0.2835167944431305,0.27343297004699707,0.28217101097106934,0.2767919898033142,0.2824866473674774,0.28169888257980347,0.2839967906475067,0.287453293800354,0.28617313504219055,0.29337456822395325,0.2885313928127289,0.29889997839927673,0.2907150387763977,0.30358970165252686,0.2924956679344177,0.3070765733718872,0.2937161922454834,0.3090613782405853,0.2942705750465393,0.30936959385871887,0.2941321134567261,0.3079759478569031,0.29334330558776855,0.30495354533195496,0.29192981123924255,0.30042779445648193,0.28982827067375183,0.2946094274520874,0.28691163659095764,0.28784412145614624,0.2830761671066284,0.2805746793746948,0.27829596400260925,0.2732338309288025,0.27262943983078003,0.26617667078971863,0.2662232518196106,0.25967875123023987,0.2593178451061249,0.25392982363700867,0.25221049785614014,0.24899810552597046,0.24517767131328583,0.24483585357666016,0.2384195476770401,0.2413596510887146,0.23206254839897156,0.23851251602172852,0.2261812388896942,0.2362290471792221,0.22080402076244354,0.2343699336051941,0.21592116355895996,0.2327447235584259,0.21152155101299286,0.23120062053203583,0.20762799680233002,0.22964338958263397,0.20428478717803955,0.22795343399047852,0.20150336623191833,0.2259225845336914,0.19921478629112244,0.22331036627292633,0.19725462794303894,0.2199501097202301,0.19537846744060516,0.2157791703939438,0.19330155849456787,0.2107958346605301,0.1907530426979065,0.2050483673810959,0.18751242756843567,0.1986832618713379,0.18341392278671265,0.19196321070194244,0.17835724353790283,0.18518690764904022,0.1723581850528717,0.17857202887535095,0.1655905842781067,0.17220304906368256,0.15833452343940735,0.1660631000995636,0.1508517861366272,0.16009025275707245,0.14331141114234924,0.15421250462532043,0.13582764565944672,0.14836138486862183,0.12851488590240479,0.1424730122089386,0.12145394831895828,0.13647493720054626,0.11461437493562698,0.13027110695838928,0.10786096751689911,0.12374910712242126,0.10105203837156296,0.11681777238845825,0.09411272406578064,0.10944677889347076,0.0870223417878151,0.10168059915304184,0.07978898286819458,0.09362272918224335,0.07247429341077805,0.08540672063827515,0.06521251797676086,0.07717220485210419,0.05815443769097328,0.06905745714902878,0.05138806998729706,0.06120937690138817,0.044933073222637177,0.053783953189849854,0.03879239410161972,0.04690658301115036,0.032958440482616425,0.040596701204776764,0.02735314890742302,0.03471525385975838,0.021802255883812904,0.028989167883992195,0.01609962061047554,0.023105600848793983,0.010090738534927368,0.016811873763799667,0.003688353579491377,0.009963242337107658,-0.0031575006432831287,0.002516126027330756,-0.01046459749341011,-0.005494528915733099,-0.018199991434812546,-0.013961371034383774,-0.02628650888800621,-0.02269870787858963,-0.03463251143693924,-0.03145888075232506,-0.043135449290275574,-0.039992015808820724,-0.051663435995578766,-0.0481300912797451,-0.060072120279073715,-0.05583951249718666,-0.06826416403055191,-0.063203364610672,-0.0762188732624054,-0.07035306096076965,-0.08395205438137054,-0.077405646443367,-0.09146834164857864,-0.0844445675611496,-0.09877212345600128,-0.09153379499912262,-0.1059095486998558,-0.09873364865779877,-0.1129670962691307,-0.1060994565486908,-0.12002304196357727,-0.11366908252239227,-0.12711678445339203,-0.12144944071769714,-0.13426116108894348,-0.12941238284111023,-0.1414547860622406,-0.13750536739826202,-0.1486705243587494,-0.14567208290100098,-0.1558549851179123,-0.1538686901330948,-0.16296620666980743,-0.16206611692905426,-0.17001113295555115,-0.17024314403533936,-0.17703497409820557,-0.17837992310523987,-0.1840820014476776,-0.18645545840263367,-0.1911834478378296,-0.19444873929023743,-0.19838199019432068,-0.2023506760597229,-0.20574374496936798,-0.21018409729003906,-0.21332889795303345,-0.21801145374774933,-0.22115075588226318,-0.2259119749069214,-0.2291652262210846,-0.23393920063972473,-0.23729002475738525,-0.24209696054458618,-0.24542775750160217,-0.25034987926483154,-0.2534793019294739,-0.2586488425731659,-0.2613561749458313,-0.26694440841674805,-0.2689962685108185,-0.2751891016960144,-0.2763730585575104,-0.2833440899848938,-0.28349441289901733,-0.2913866341114044,-0.29039308428764343,-0.29930567741394043,-0.2971133589744568,-0.307087779045105,-0.30369770526885986,-0.3147141635417938,-0.31017762422561646,-0.322174072265625,-0.31657397747039795,-0.3294750452041626,-0.32290157675743103,-0.3366340100765228,-0.32917243242263794,-0.34366050362586975,-0.33539602160453796,-0.3505537211894989,-0.34157902002334595,-0.35731732845306396,-0.34772777557373047,-0.3639681339263916,-0.35384660959243774,-0.37052851915359497,-0.3599322438240051,-0.3770109713077545,-0.36596933007240295,-0.38341113924980164,-0.3719328045845032,-0.38971376419067383,-0.3777962625026703,-0.395904541015625,-0.3835383355617523,-0.4019785523414612,-0.3891465663909912,-0.4079378843307495,-0.39461749792099,-0.4137786626815796,-0.3999519944190979,-0.41947999596595764,-0.4051479697227478,-0.42500901222229004,-0.4101989269256592,-0.43034130334854126,-0.41509705781936646,-0.43548041582107544,-0.419841468334198,-0.44045743346214294,-0.42443957924842834,-0.4453069567680359,-0.4289010763168335,-0.4500356912612915,-0.4332244396209717,-0.45460939407348633,-0.4373864233493805,-0.4589867889881134,-0.4413633644580841,-0.46323850750923157,-0.44523024559020996,-0.4673311710357666,-0.448950856924057,-0.47124043107032776,-0.4524918496608734,-0.47496506571769714,-0.4558508098125458,-0.47851237654685974,-0.45904505252838135,-0.4818895757198334,-0.46209385991096497,-0.48510071635246277,-0.465003103017807,-0.48814600706100464,-0.46776124835014343,-0.4910202920436859,-0.4703477919101715,-0.4937116503715515,-0.4727475941181183,-0.49620547890663147,-0.4749591052532196,-0.4984930157661438,-0.47699394822120667,-0.5005773305892944,-0.47886550426483154,-0.5024701356887817,-0.48057854175567627,-0.5041794180870056,-0.4821264445781708,-0.5057013034820557,-0.48349958658218384,-0.5070251822471619,-0.4846949577331543,-0.5081486105918884,-0.48571905493736267,-0.509087085723877,-0.48658329248428345,-0.5098643898963928,-0.48729389905929565,-0.5104926228523254,-0.4878467321395874,-0.5109565854072571,-0.48822930455207825,-0.5112249851226807,-0.48842892050743103,-0.5112738013267517,-0.4884416460990906,-0.5111058354377747,-0.4882757067680359,-0.510748028755188,-0.48794835805892944,-0.510232150554657,-0.4874734580516815,-0.5095677971839905,-0.4868512451648712,-0.5087315440177917,-0.4860653281211853,-0.507678210735321,-0.48509278893470764,-0.5063723921775818,-0.48391830921173096,-0.5048164129257202,-0.4825429618358612,-0.5030500292778015,-0.48098352551460266,-0.5011188387870789,-0.4792636036872864,-0.49903959035873413,-0.47740641236305237,-0.49679604172706604,-0.47542843222618103,-0.4943670630455017,-0.4733349680900574,-0.4917532801628113,-0.4711179733276367,-0.4889707863330841,-0.4687599241733551,-0.4860231280326843,-0.46624556183815,-0.48288673162460327,-0.46356797218322754,-0.4795306921005249,-0.4607272446155548,-0.47594529390335083,-0.4577200412750244,-0.4721463918685913,-0.45453545451164246,-0.46815428137779236,-0.45116257667541504,-0.4639756381511688,-0.44760099053382874,-0.45960667729377747,-0.4438607692718506,-0.4550493359565735,-0.43995341658592224,-0.4503166675567627,-0.43588492274284363,-0.44542694091796875,-0.43166229128837585,-0.4403962194919586,-0.42730194330215454,-0.4352371096611023,-0.4228253960609436,-0.42995357513427734,-0.41824057698249817,-0.4245334267616272,-0.4135271906852722,-0.4189499616622925,-0.40864601731300354,-0.41317906975746155,-0.4035632312297821,-0.40721848607063293,-0.3982691168785095,-0.4010874032974243,-0.3927765190601349,-0.394808292388916,-0.38710835576057434,-0.388395220041275,-0.3812902271747589,-0.38185957074165344,-0.3753519058227539,-0.3752199113368988,-0.36932194232940674,-0.3684973418712616,-0.3632151782512665,-0.36169925332069397,-0.3570241928100586,-0.3548104763031006,-0.35072851181030273,-0.34780266880989075,-0.3443145751953125,-0.34065306186676025,-0.33778634667396545,-0.33335644006729126,-0.33115726709365845,-0.3259279131889343,-0.3244384527206421,-0.318397581577301,-0.31764116883277893,-0.31079593300819397,-0.3107862174510956,-0.3031361997127533,-0.3039014935493469,-0.2954109013080597,-0.2970024645328522,-0.2876105010509491,-0.2900755703449249,-0.2797442376613617,-0.28308728337287903,-0.27183473110198975,-0.276012122631073,-0.26388534903526306,-0.2688480317592621,-0.2558617889881134,-0.2616053521633148,-0.2477174997329712,-0.2542847990989685,-0.23943772912025452,-0.24687598645687103,-0.23105037212371826,-0.23937740921974182,-0.22259145975112915,-0.23180991411209106,-0.2140737771987915,-0.22420412302017212,-0.20549969375133514,-0.2165747880935669,-0.1968955248594284,-0.20891325175762177,-0.18831145763397217,-0.20120587944984436,-0.1797809600830078,-0.19345428049564362,-0.17129217088222504,-0.18567350506782532,-0.16281338036060333,-0.17787405848503113,-0.15433865785598755,-0.17005404829978943,-0.14589308202266693,-0.16221165657043457,-0.1374913901090622,-0.1543581485748291,-0.1291087418794632,-0.1465117484331131,-0.12070388346910477,-0.1386767327785492,-0.11226113140583038,-0.13083478808403015,-0.10379426181316376,-0.12296002358198166,-0.09531185775995255,-0.115040622651577,-0.08679930120706558,-0.10708432644605637,-0.07824482023715973,-0.09910604357719421,-0.06966972351074219,-0.09111578017473221,-0.061114951968193054,-0.08311952650547028,-0.052599892020225525,-0.0751243606209755,-0.04410962760448456,-0.06713724881410599,-0.03562984615564346,-0.05916077643632889,-0.027179516851902008,-0.05119534954428673,-0.01879652589559555,-0.04324730113148689,-0.010496310889720917,-0.03532908856868744,-0.002260833978652954,-0.027447693049907684,0.0059290193021297455,-0.019598383456468582,0.014061875641345978,-0.011778898537158966,0.022105101495981216,-0.004013461992144585,0.03003648668527603,0.0036457106471061707,0.03785426914691925,0.011150557547807693,0.04555843397974968,0.018492722883820534,0.053134094923734665,0.02570323459804058,0.060557737946510315,0.03281550854444504,0.06780894100666046,0.039834704250097275,0.07486822456121445,0.04675022140145302,0.0817132443189621,0.053574249148368835,0.08833374828100204,0.060355111956596375,0.0947575718164444,0.06714500486850739,0.10105312615633011,0.07395663857460022,0.10729896277189255,0.08076008409261703,0.11355335265398026,0.0875229686498642,0.11985470354557037,0.09424670785665512,0.12623825669288635,0.10095816850662231,0.1327301263809204,0.10766972601413727,0.1393246352672577,0.11436689645051956,0.14602354168891907,0.12108242511749268,0.15275464951992035,0.12784253060817719,0.15944001078605652,0.13467952609062195,0.166034996509552,0.1416047364473343,0.17252594232559204,0.1485820859670639,0.17891503870487213,0.15553797781467438,0.18521401286125183,0.162397101521492,0.19144229590892792,0.1691051870584488,0.19761662185192108,0.1756211370229721,0.20373423397541046,0.1818981170654297,0.20976819097995758,0.18788672983646393,0.21567688882350922,0.19356295466423035,0.22141236066818237,0.1989491879940033,0.22691985964775085,0.20410071313381195,0.23214197158813477,0.2090718001127243,0.23703992366790771,0.2138986885547638,0.24161241948604584,0.21860937774181366,0.24588878452777863,0.2232365906238556,0.24990510940551758,0.2278122901916504,0.25369614362716675,0.23235124349594116,0.25730907917022705,0.23684369027614594,0.2608065903186798,0.24126189947128296,0.26424169540405273,0.24557729065418243,0.26763802766799927,0.2497827410697937,0.2710042893886566,0.2539080083370209,0.2743600904941559,0.2580043077468872,0.27772846817970276,0.2621048092842102,0.28109848499298096,0.2662014663219452,0.2844138741493225,0.27026814222335815,0.28761327266693115,0.27430057525634766,0.2906782627105713,0.2783187925815582,0.2936345636844635,0.2823316752910614,0.29650774598121643,0.28631120920181274,0.2992847263813019,0.2902001440525055,0.30191662907600403,0.29392778873443604,0.30435478687286377,0.2974175214767456,0.3065836429595947,0.3006058931350708,0.30862122774124146,0.30347740650177,0.31049442291259766,0.306072473526001,0.312222421169281,0.3084503412246704,0.31383374333381653,0.31065377593040466,0.3153923749923706,0.31272828578948975,0.31698936223983765,0.31476086378097534,0.3186992406845093,0.3168686330318451,0.3205533027648926,0.31914153695106506,0.3225567936897278,0.3216134309768677,0.3247084319591522,0.324289470911026,0.3269837200641632,0.3271740972995758,0.3293130397796631,0.33025112748146057,0.33160120248794556,0.3334524631500244,0.3337690830230713,0.3366631269454956,0.3357566297054291,0.33975350856781006,0.33749690651893616,0.34260159730911255,0.3389246463775635,0.3451049029827118,0.34002384543418884,0.3472021222114563,0.34083592891693115,0.3488919138908386,0.34139955043792725,0.3502168655395508,0.3416992127895355,0.35122162103652954,0.3416895866394043,0.35192933678627014,0.3413449227809906,0.3523486256599426,0.3406597077846527,0.35248973965644836,0.3396291136741638,0.3523767590522766,0.3382820785045624,0.352059006690979,0.3367357850074768,0.35161373019218445,0.33517172932624817,0.3511255085468292,0.3337372839450836,0.35066133737564087,0.33248984813690186,0.3502699136734009,0.33143895864486694,0.3499961793422699,0.33060356974601746,0.34987717866897583,0.33000418543815613,0.3499266803264618,0.3296352028846741,0.3501513600349426,0.32948991656303406,0.350592702627182,0.329603374004364,0.3513304591178894,0.33003976941108704,0.35242897272109985,0.33083397150039673,0.35388806462287903,0.3319631814956665,0.35565000772476196,0.3333580195903778,0.35762736201286316,0.334903359413147,0.35970258712768555,0.33642998337745667,0.3617240786552429,0.3377501368522644,0.3635392487049103,0.33872780203819275,0.365033894777298,0.3393082618713379,0.36612892150878906,0.33948349952697754,0.3667609691619873,0.339260458946228,0.3669013977050781,0.33867549896240234,0.366586297750473,0.3378073573112488,0.3658924102783203,0.33674895763397217,0.364884614944458,0.3355695903301239,0.3636193573474884,0.33430618047714233,0.36218708753585815,0.33296605944633484,0.3606922924518585,0.3315345048904419,0.35918036103248596,0.3300207853317261,0.35764509439468384,0.3285069167613983,0.35611510276794434,0.3270561099052429,0.3546077311038971,0.3254457414150238,0.352856308221817,0.3229660391807556,0.350090354681015,0.3185683786869049,0.3452148139476776,0.3112976551055908,0.33729299902915955,0.30062180757522583,0.32587888836860657,0.28643596172332764,0.3109724819660187,0.2689546048641205,0.2928783595561981,0.24881073832511902,0.2723010778427124,0.22731277346611023,0.25058284401893616,0.20648010075092316,0.22969430685043335,0.18861271440982819,0.21180330216884613,0.17556962370872498,0.1986304223537445,0.1681668758392334,0.19092623889446259,0.1659921258687973,0.18827880918979645,0.16763757169246674,0.18928979337215424,0.17113277316093445,0.19200463593006134,0.1743386834859848,0.1943642944097519,0.175251305103302,0.19451621174812317,0.17233914136886597,0.1910596489906311,0.16496074199676514,0.18336881697177887,0.15363140404224396,0.17187567055225372,0.1398496776819229,0.157985121011734,0.12555719912052155,0.1435789316892624,0.11268371343612671,0.13053175806999207,0.10308875143527985,0.12063667923212051,0.09868810325860977,0.11577457934617996,0.10131668299436569,0.11781617254018784,0.11223071813583374,0.12809985876083374,0.1316116750240326,0.14688126742839813,0.15844237804412842,0.17319311201572418,0.19076986610889435,0.20511654019355774,0.2261192500591278,0.24018003046512604,0.2618753910064697,0.2757151126861572)
36 ]);
38 function runTest(test, iterations) {
39  for (var i = 0; i < iterations; i++) {
40    test();
41  }
44 /*  
45  *  DSP.js - a comprehensive digital signal processing  library for javascript 
46  *  
47  *  Created by Corban Brook <corbanbrook@gmail.com> on 2010-01-01.
48  *  Copyright 2010 Corban Brook. All rights reserved.
49  *
50  */
52 ////////////////////////////////////////////////////////////////////////////////
53 //                                  CONSTANTS                                 //
54 ////////////////////////////////////////////////////////////////////////////////
56 /**
57  * DSP is an object which contains general purpose utility functions and constants
58  */
59 DSP = {
60   // Channels
61   LEFT:           0,
62   RIGHT:          1,
63   MIX:            2,
65   // Waveforms
66   SINE:           1,
67   TRIANGLE:       2,
68   SAW:            3,
69   SQUARE:         4,
71   // Filters 
72   LOWPASS:        0,
73   HIGHPASS:       1,
74   BANDPASS:       2,
75   NOTCH:          3,
77   // Window functions
78   BARTLETT:       1,
79   BARTLETTHANN:   2,
80   BLACKMAN:       3,
81   COSINE:         4,
82   GAUSS:          5,
83   HAMMING:        6,
84   HANN:           7,
85   LANCZOS:        8,
86   RECTANGULAR:    9,
87   TRIANGULAR:     10,
89   // Loop modes
90   OFF:            0,
91   FW:             1,
92   BW:             2,
93   FWBW:           3,
95   // Math
96   TWO_PI:         2*Math.PI
99 ////////////////////////////////////////////////////////////////////////////////
100 //                            DSP UTILITY FUNCTIONS                           //
101 ////////////////////////////////////////////////////////////////////////////////
104  * Inverts the phase of a signal
106  * @param {Array} buffer A sample buffer
108  * @returns The inverted sample buffer
109  */
110 DSP.invert = function(buffer) {
111   for ( var i = 0, len = buffer.length; i < len; i++ ) {
112     buffer[i] *= -1;
113   }
115   return buffer;
119  * Converts split-stereo (dual mono) sample buffers into a stereo interleaved sample buffer
121  * @param {Array} left  A sample buffer
122  * @param {Array} right A sample buffer
124  * @returns The stereo interleaved buffer
125  */
126 DSP.interleave = function(left, right) {
127   if ( left.length !== right.length ) {
128     throw "Can not interleave. Channel lengths differ.";
129   }
130   
131   var stereoInterleaved = new Array(left.length * 2);
132   
133   for (var i = 0, len = left.length; i < len; i++ ) {
134     stereoInterleaved[2*i]   = left[i];
135     stereoInterleaved[2*i+1] = right[i];
136   }
137   
138   return stereoInterleaved;
142  * Converts a stereo-interleaved sample buffer into split-stereo (dual mono) sample buffers
144  * @param {Array} buffer A stereo-interleaved sample buffer
146  * @returns an Array containing left and right channels
147  */
148 DSP.deinterleave = function(buffer) {
149   var left  = new Array(buffer.length/2);
150   var right = new Array(buffer.length/2);
151   var mix   = new Array(buffer.length/2);
152   
153   for (var i = 0, len = buffer.length/2; i < len; i ++ ) {
154     left[i]  = buffer[2*i];
155     right[i] = buffer[2*i+1];
156     mix[i]   = (left[i] + right[i]) / 2;
157   }
158   
159   return [left, right, mix];
163  * Separates a channel from a stereo-interleaved sample buffer
165  * @param {Array}  buffer A stereo-interleaved sample buffer
166  * @param {Number} channel A channel constant (LEFT, RIGHT, MIX)
168  * @returns an Array containing a signal mono sample buffer
169  */
170 DSP.getChannel = function(channel, buffer) {
171   return DSP.deinterleave(buffer)[channel];
174 // Biquad filter types
175 DSP.LPF = 0;       // H(s) = 1 / (s^2 + s/Q + 1)
176 DSP.HPF = 1;       // H(s) = s^2 / (s^2 + s/Q + 1)
177 DSP.BPF_CONSTANT_SKIRT = 2;       // H(s) = s / (s^2 + s/Q + 1)  (constant skirt gain, peak gain = Q)
178 DSP.BPF_CONSTANT_PEAK = 3;       // H(s) = (s/Q) / (s^2 + s/Q + 1)      (constant 0 dB peak gain)
179 DSP.NOTCH = 4;     // H(s) = (s^2 + 1) / (s^2 + s/Q + 1)
180 DSP.APF = 5;       // H(s) = (s^2 - s/Q + 1) / (s^2 + s/Q + 1)
181 DSP.PEAKING_EQ = 6;  // H(s) = (s^2 + s*(A/Q) + 1) / (s^2 + s/(A*Q) + 1)
182 DSP.LOW_SHELF = 7;   // H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1)
183 DSP.HIGH_SHELF = 8;   // H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A)
185 // Biquad filter parameter types
186 DSP.Q = 1;
187 DSP.BW = 2; // SHARED with BACKWARDS LOOP MODE
188 DSP.S = 3;
191 /** 
192  * DFT is a class for calculating the Discrete Fourier Transform of a signal.
194  * @param {Number} bufferSize The size of the sample buffer to be computed
195  * @param {Number} sampleRate The sampleRate of the buffer (eg. 44100)
197  * @constructor
198  */
199 DFT = function(bufferSize, sampleRate) {
200   this.bufferSize = bufferSize;
201   this.sampleRate = sampleRate;
203   var N = bufferSize/2 * bufferSize;
204       
205   this.sinTable = new Array(N);
206   this.cosTable = new Array(N);
207   
208   for ( var i = 0; i < N; i++ ) {
209     this.sinTable[i] = Math.sin(i * DSP.TWO_PI / bufferSize);
210     this.cosTable[i] = Math.cos(i * DSP.TWO_PI / bufferSize);
211   }
212   
213   this.spectrum = new Array(bufferSize/2);
214   this.complexValues = new Array(bufferSize/2);
218  * Performs a forward tranform on the sample buffer. 
219  * Converts a time domain signal to frequency domain spectra.
221  * @param {Array} buffer The sample buffer
223  * @returns The frequency spectrum array
224  */
225 DFT.prototype.forward = function(buffer) {
226   var real, imag;
228   for ( var k = 0; k < this.bufferSize/2; k++ ) {
229     real = 0.0;
230     imag = 0.0;
232     for ( var n = 0; n < buffer.length; n++ ) {
233       real += this.cosTable[k*n] * buffer[n];
234       imag += this.sinTable[k*n] * buffer[n];
235     }
237     this.complexValues[k] = {real: real, imag: imag};
238   }
239   
240   for ( var i = 0; i < this.bufferSize/2; i++ ) {
241     this.spectrum[i] = 2 * Math.sqrt(Math.pow(this.complexValues[i].real, 2) + Math.pow(this.complexValues[i].imag, 2)) / this.bufferSize;
242   }
244   return this.spectrum;
248 /** 
249  * FFT is a class for calculating the Discrete Fourier Transform of a signal 
250  * with the Fast Fourier Transform algorithm.
252  * @param {Number} bufferSize The size of the sample buffer to be computed. Must be power of 2
253  * @param {Number} sampleRate The sampleRate of the buffer (eg. 44100)
255  * @constructor
256  */
257 FFT = function(bufferSize, sampleRate) {
258   this.bufferSize = bufferSize;
259   this.sampleRate = sampleRate;
260   this.spectrum         = new Array(bufferSize/2);
261   this.real             = new Array(bufferSize);
262   this.imag             = new Array(bufferSize);
263     
264   this.reverseTable     = new Array(bufferSize);
265   for (var i = 0; i < this.reverseTable.length; i++) {
266     this.reverseTable[i] = 0;
267   }
269   var limit = 1;
270   var bit = bufferSize >> 1;
272   while ( limit < bufferSize ) {
273     for ( var i = 0; i < limit; i++ ) {
274       this.reverseTable[i + limit] = this.reverseTable[i] + bit;
275     }
277     limit = limit << 1;
278     bit = bit >> 1;
279   }
281   this.sinTable = new Array(bufferSize);
282   this.cosTable = new Array(bufferSize);
284   for ( var i = 0; i < bufferSize; i++ ) {
285     this.sinTable[i] = Math.sin(-Math.PI/i);
286     this.cosTable[i] = Math.cos(-Math.PI/i);
287   }
291  * Performs a forward tranform on the sample buffer. 
292  * Converts a time domain signal to frequency domain spectra.
294  * @param {Array} buffer The sample buffer. Buffer Length must be power of 2
296  * @returns The frequency spectrum array
297  */
298 FFT.prototype.forward = function(buffer) {
299   // Locally scope variables for speed up
300   var bufferSize      = this.bufferSize,
301       cosTable        = this.cosTable,
302       sinTable        = this.sinTable,
303       reverseTable    = this.reverseTable,
304       real            = this.real,
305       imag            = this.imag,
306       spectrum        = this.spectrum;
308   var k = Math.floor(Math.log(bufferSize) / Math.LN2);
309   if ( Math.pow(2, k) !== bufferSize ) { throw "Invalid buffer size, must be a power of 2."; }
310   if ( bufferSize !== buffer.length ) { throw "Supplied buffer is not the same size as defined FFT. FFT Size: " + bufferSize + " Buffer Size: " + buffer.length; }
312   for ( var i = 0; i < bufferSize; i++ ) {
313     real[i] = buffer[reverseTable[i]];
314     imag[i] = 0;
315   }
317   var halfSize = 1, 
318       phaseShiftStepReal, 
319       phaseShiftStepImag, 
320       currentPhaseShiftReal, 
321       currentPhaseShiftImag, 
322       off, 
323       tr, 
324       ti, 
325       tmpReal, 
326       i;
328   while ( halfSize < bufferSize ) {
329     phaseShiftStepReal = cosTable[halfSize];
330     phaseShiftStepImag = sinTable[halfSize];
331     currentPhaseShiftReal = 1;
332     currentPhaseShiftImag = 0;
334     for ( var fftStep = 0; fftStep < halfSize; fftStep++ ) {
335       i = fftStep;
337       while ( i < bufferSize ) {
338         off = i + halfSize;
339         tr = (currentPhaseShiftReal * real[off]) - (currentPhaseShiftImag * imag[off]);
340         ti = (currentPhaseShiftReal * imag[off]) + (currentPhaseShiftImag * real[off]);
342         real[off] = real[i] - tr;
343         imag[off] = imag[i] - ti;
344         real[i] += tr;
345         imag[i] += ti;
347         i += halfSize << 1;
348       }
350       tmpReal = currentPhaseShiftReal;
351       currentPhaseShiftReal = (tmpReal * phaseShiftStepReal) - (currentPhaseShiftImag * phaseShiftStepImag);
352       currentPhaseShiftImag = (tmpReal * phaseShiftStepImag) + (currentPhaseShiftImag * phaseShiftStepReal);
353     }
355     halfSize = halfSize << 1;
356   }
358   i = bufferSize/2;
359   while(i--) {
360     spectrum[i] = 2 * Math.sqrt(real[i] * real[i] + imag[i] * imag[i]) / bufferSize;
361   }
363   return spectrum;
366 FFT.prototype.inverse = function(real, imag) {
367   // Locally scope variables for speed up
368   var bufferSize      = this.bufferSize,
369       cosTable        = this.cosTable,
370       sinTable        = this.sinTable,
371       reverseTable    = this.reverseTable,
372       spectrum        = this.spectrum;
373       
374       real = real || this.real;
375       imag = imag || this.imag;
377   for (var i = 0; i < bufferSize; i++) {
378     imag[i] *= -1;
379   }
381   var revReal = new Array(bufferSize);
382   var revImag = new Array(bufferSize);
383   
384   for (var i = 0; i < real.length; i++) {
385     revReal[i] = real[reverseTable[i]];
386     revImag[i] = imag[reverseTable[i]];
387   }
388   
389   real = revReal;
390   imag = revImag;
392   var halfSize = 1, 
393       phaseShiftStepReal, 
394       phaseShiftStepImag, 
395       currentPhaseShiftReal, 
396       currentPhaseShiftImag, 
397       off, 
398       tr, 
399       ti, 
400       tmpReal, 
401       i;
403   while ( halfSize < bufferSize ) {
404     phaseShiftStepReal = cosTable[halfSize];
405     phaseShiftStepImag = sinTable[halfSize];
406     currentPhaseShiftReal = 1;
407     currentPhaseShiftImag = 0;
409     for ( var fftStep = 0; fftStep < halfSize; fftStep++ ) {
410       i = fftStep;
412       while ( i < bufferSize ) {
413         off = i + halfSize;
414         tr = (currentPhaseShiftReal * real[off]) - (currentPhaseShiftImag * imag[off]);
415         ti = (currentPhaseShiftReal * imag[off]) + (currentPhaseShiftImag * real[off]);
417         real[off] = real[i] - tr;
418         imag[off] = imag[i] - ti;
419         real[i] += tr;
420         imag[i] += ti;
422         i += halfSize << 1;
423       }
425       tmpReal = currentPhaseShiftReal;
426       currentPhaseShiftReal = (tmpReal * phaseShiftStepReal) - (currentPhaseShiftImag * phaseShiftStepImag);
427       currentPhaseShiftImag = (tmpReal * phaseShiftStepImag) + (currentPhaseShiftImag * phaseShiftStepReal);
428     }
430     halfSize = halfSize << 1;
431   }
433   var buffer = new Array(bufferSize);
434   for (var i = 0; i < bufferSize; i++) {
435     buffer[i] = real[i] / bufferSize;
436   }
438   return buffer;
441 Sampler = function Sampler(file, bufferSize, sampleRate, playStart, playEnd, loopStart, loopEnd, loopMode) {
442   this.file = file;
443   this.bufferSize = bufferSize;
444   this.sampleRate = sampleRate;
445   this.playStart  = playStart || 0; // 0%
446   this.playEnd    = playEnd   || 1; // 100%
447   this.loopStart  = loopStart || 0;
448   this.loopEnd    = loopEnd   || 1;
449   this.loopMode   = loopMode  || DSP.OFF;
450   this.loaded     = false;
451   this.samples    = [];
452   this.signal     = new Array(bufferSize);
453   this.frameCount = 0;
454   this.envelope   = null;
455   this.amplitude  = 1;
456   this.rootFrequency = 110; // A2 110
457   this.frequency  = 550;
458   this.step       = this.frequency / this.rootFrequency;
459   this.duration   = 0;
460   this.samplesProcessed = 0;
461   this.playhead   = 0;
462   
463   var audio = /* new Audio();*/ document.createElement("AUDIO");
464   var self = this;
465   
466   this.loadSamples = function(event) {
467     var buffer = DSP.getChannel(DSP.MIX, event.frameBuffer);
468     for ( var i = 0; i < buffer.length; i++) {
469       self.samples.push(buffer[i]);
470     }
471   };
472   
473   this.loadComplete = function() {
474     // convert flexible js array into a fast typed array
475     self.samples = new Array(self.samples);
476     self.loaded = true;
477   };
478   
479   this.loadMetaData = function() {
480     self.duration = audio.duration;
481   };
482   
483   audio.addEventListener("MozAudioAvailable", this.loadSamples, false);
484   audio.addEventListener("loadedmetadata", this.loadMetaData, false)
485   audio.addEventListener("ended", this.loadComplete, false);
486   audio.muted = true;
487   audio.src = file;
488   audio.play();
491 Sampler.prototype.applyEnvelope = function() {
492   this.envelope.process(this.signal);
493   return this.signal;
496 Sampler.prototype.generate = function() {
497   var frameOffset = this.frameCount * this.bufferSize;
498   
499   var loopWidth = this.playEnd * this.samples.length - this.playStart * this.samples.length;
500   var playStartSamples = this.playStart * this.samples.length; // ie 0.5 -> 50% of the length
501   var playEndSamples = this.playEnd * this.samples.length; // ie 0.5 -> 50% of the length
502   var offset;
504   for ( var i = 0; i < this.bufferSize; i++ ) {
505     switch (this.loopMode) {
506       case DSP.OFF:
507         this.playhead = Math.round(this.samplesProcessed * this.step + playStartSamples);
508         if (this.playhead < (this.playEnd * this.samples.length) ) {
509           this.signal[i] = this.samples[this.playhead] * this.amplitude;
510         } else {
511           this.signal[i] = 0;
512         }
513         break;
514       
515       case DSP.FW:
516         this.playhead = Math.round((this.samplesProcessed * this.step) % loopWidth + playStartSamples);
517         if (this.playhead < (this.playEnd * this.samples.length) ) {
518           this.signal[i] = this.samples[this.playhead] * this.amplitude;
519         }
520         break;
521         
522       case DSP.BW:
523         this.playhead = playEndSamples - Math.round((this.samplesProcessed * this.step) % loopWidth);
524         if (this.playhead < (this.playEnd * this.samples.length) ) {
525           this.signal[i] = this.samples[this.playhead] * this.amplitude;
526         }
527         break;
528         
529       case DSP.FWBW:
530         if ( Math.floor(this.samplesProcessed * this.step / loopWidth) % 2 == 0 ) {
531           this.playhead = Math.round((this.samplesProcessed * this.step) % loopWidth + playStartSamples);
532         } else {
533           this.playhead = playEndSamples - Math.round((this.samplesProcessed * this.step) % loopWidth);
534         }   
535         if (this.playhead < (this.playEnd * this.samples.length) ) {
536           this.signal[i] = this.samples[this.playhead] * this.amplitude;
537         }
538         break;
539     }
540     this.samplesProcessed++;
541   }
543   this.frameCount++;
545   return this.signal;
548 Sampler.prototype.setFreq = function(frequency) {
549   this.frequency = frequency;
550   this.step = this.frequency / this.rootFrequency;
553 Sampler.prototype.reset = function() {
554   this.samplesProcessed = 0;
555   this.playhead = 0;
559  * Oscillator class for generating and modifying signals
561  * @param {Number} type       A waveform constant (eg. DSP.SINE)
562  * @param {Number} frequency  Initial frequency of the signal
563  * @param {Number} amplitude  Initial amplitude of the signal
564  * @param {Number} bufferSize Size of the sample buffer to generate
565  * @param {Number} sampleRate The sample rate of the signal
567  * @contructor
568  */
569 Oscillator = function Oscillator(type, frequency, amplitude, bufferSize, sampleRate) {
570   this.frequency  = frequency;
571   this.amplitude  = amplitude;
572   this.bufferSize = bufferSize;
573   this.sampleRate = sampleRate;
574   //this.pulseWidth = pulseWidth;
575   this.frameCount = 0;
576   
577   this.waveTableLength = 2048;
579   this.cyclesPerSample = frequency / sampleRate;
581   this.signal = new Array(bufferSize);
582   this.envelope = null;
584   switch(parseInt(type)) {
585     case DSP.TRIANGLE:
586       this.func = Oscillator.Triangle;
587       break;
589     case DSP.SAW:
590       this.func = Oscillator.Saw;
591       break;
593     case DSP.SQUARE:
594       this.func = Oscillator.Square;
595       break;
597     case DSP.SINE:
598     default:
599       this.func = Oscillator.Sine;
600       break;
601   }
603   this.generateWaveTable = function() {
604     Oscillator.waveTable[this.func] = new Array(2048);
605     var waveTableTime = this.waveTableLength / this.sampleRate;
606     var waveTableHz = 1 / waveTableTime;
608     for (var i = 0; i < this.waveTableLength; i++) {
609       Oscillator.waveTable[this.func][i] = this.func(i * waveTableHz/this.sampleRate);
610     }
611   };
613   if ( typeof Oscillator.waveTable === 'undefined' ) {
614     Oscillator.waveTable = {};
615   }
617   if ( typeof Oscillator.waveTable[this.func] === 'undefined' ) { 
618     this.generateWaveTable();
619   }
620   
621   this.waveTable = Oscillator.waveTable[this.func];
622 }; 
625  * Set the amplitude of the signal
627  * @param {Number} amplitude The amplitude of the signal (between 0 and 1)
628  */
629 Oscillator.prototype.setAmp = function(amplitude) {
630   if (amplitude >= 0 && amplitude <= 1) {
631     this.amplitude = amplitude;
632   } else {
633     throw "Amplitude out of range (0..1).";
634   }
636    
638  * Set the frequency of the signal
639  * 
640  * @param {Number} frequency The frequency of the signal
641  */   
642 Oscillator.prototype.setFreq = function(frequency) {
643   this.frequency = frequency;
644   this.cyclesPerSample = frequency / this.sampleRate;
646       
647 // Add an oscillator
648 Oscillator.prototype.add = function(oscillator) {
649   for ( var i = 0; i < this.bufferSize; i++ ) {
650     //this.signal[i] += oscillator.valueAt(i);
651     this.signal[i] += oscillator.signal[i];
652   }
653   
654   return this.signal;
656       
657 // Add a signal to the current generated osc signal
658 Oscillator.prototype.addSignal = function(signal) {
659   for ( var i = 0; i < signal.length; i++ ) {
660     if ( i >= this.bufferSize ) {
661       break;
662     }
663     this.signal[i] += signal[i];
664     
665     /*
666     // Constrain amplitude
667     if ( this.signal[i] > 1 ) {
668       this.signal[i] = 1;
669     } else if ( this.signal[i] < -1 ) {
670       this.signal[i] = -1;
671     }
672     */
673   }
674   return this.signal;
676       
677 // Add an envelope to the oscillator
678 Oscillator.prototype.addEnvelope = function(envelope) {
679   this.envelope = envelope;
682 Oscillator.prototype.applyEnvelope = function() {
683   this.envelope.process(this.signal);
685       
686 Oscillator.prototype.valueAt = function(offset) {
687   return this.waveTable[offset % this.waveTableLength];
689       
690 Oscillator.prototype.generate = function() {
691   var frameOffset = this.frameCount * this.bufferSize;
692   var step = this.waveTableLength * this.frequency / this.sampleRate;
693   var offset;
695   for ( var i = 0; i < this.bufferSize; i++ ) {
696     //var step = (frameOffset + i) * this.cyclesPerSample % 1;
697     //this.signal[i] = this.func(step) * this.amplitude;
698     //this.signal[i] = this.valueAt(Math.round((frameOffset + i) * step)) * this.amplitude; 
699     offset = Math.round((frameOffset + i) * step);
700     this.signal[i] = this.waveTable[offset % this.waveTableLength] * this.amplitude;
701   }
703   this.frameCount++;
705   return this.signal;
708 Oscillator.Sine = function(step) {
709   return Math.sin(DSP.TWO_PI * step);
712 Oscillator.Square = function(step) {
713   return step < 0.5 ? 1 : -1;
716 Oscillator.Saw = function(step) {
717   return 2 * (step - Math.round(step));
720 Oscillator.Triangle = function(step) {
721   return 1 - 4 * Math.abs(Math.round(step) - step);
724 Oscillator.Pulse = function(step) {
725   // stub
727   
728 ADSR = function(attackLength, decayLength, sustainLevel, sustainLength, releaseLength, sampleRate) {
729   this.sampleRate = sampleRate;
730   // Length in seconds
731   this.attackLength  = attackLength;
732   this.decayLength   = decayLength;
733   this.sustainLevel  = sustainLevel;
734   this.sustainLength = sustainLength;
735   this.releaseLength = releaseLength;
736   this.sampleRate    = sampleRate;
737   
738   // Length in samples
739   this.attackSamples  = attackLength  * sampleRate;
740   this.decaySamples   = decayLength   * sampleRate;
741   this.sustainSamples = sustainLength * sampleRate;
742   this.releaseSamples = releaseLength * sampleRate;
743   
744   // Updates the envelope sample positions
745   this.update = function() {
746     this.attack         =                this.attackSamples;
747     this.decay          = this.attack  + this.decaySamples;
748     this.sustain        = this.decay   + this.sustainSamples;
749     this.release        = this.sustain + this.releaseSamples;
750   };
751   
752   this.update();
753   
754   this.samplesProcessed = 0;
758 ADSR.prototype.noteOn = function() {
759   this.samplesProcessed = 0;
760   this.sustainSamples = this.sustainLength * this.sampleRate;
761   this.update();
764 // Send a note off when using a sustain of infinity to let the envelope enter the release phase
765 ADSR.prototype.noteOff = function() {
766   this.sustainSamples = this.samplesProcessed - this.decaySamples;
767   this.update();
770 ADSR.prototype.processSample = function(sample) {
771   var amplitude = 0;
773   if ( this.samplesProcessed <= this.attack ) {
774     amplitude = 0 + (1 - 0) * ((this.samplesProcessed - 0) / (this.attack - 0));
775   } else if ( this.samplesProcessed > this.attack && this.samplesProcessed <= this.decay ) {
776     amplitude = 1 + (this.sustainLevel - 1) * ((this.samplesProcessed - this.attack) / (this.decay - this.attack));
777   } else if ( this.samplesProcessed > this.decay && this.samplesProcessed <= this.sustain ) {
778     amplitude = this.sustainLevel;
779   } else if ( this.samplesProcessed > this.sustain && this.samplesProcessed <= this.release ) {
780     amplitude = this.sustainLevel + (0 - this.sustainLevel) * ((this.samplesProcessed - this.sustain) / (this.release - this.sustain));
781   }
782   
783   return sample * amplitude;
786 ADSR.prototype.value = function() {
787   var amplitude = 0;
789   if ( this.samplesProcessed <= this.attack ) {
790     amplitude = 0 + (1 - 0) * ((this.samplesProcessed - 0) / (this.attack - 0));
791   } else if ( this.samplesProcessed > this.attack && this.samplesProcessed <= this.decay ) {
792     amplitude = 1 + (this.sustainLevel - 1) * ((this.samplesProcessed - this.attack) / (this.decay - this.attack));
793   } else if ( this.samplesProcessed > this.decay && this.samplesProcessed <= this.sustain ) {
794     amplitude = this.sustainLevel;
795   } else if ( this.samplesProcessed > this.sustain && this.samplesProcessed <= this.release ) {
796     amplitude = this.sustainLevel + (0 - this.sustainLevel) * ((this.samplesProcessed - this.sustain) / (this.release - this.sustain));
797   }
798   
799   return amplitude;
801       
802 ADSR.prototype.process = function(buffer) {
803   for ( var i = 0; i < buffer.length; i++ ) {
804     buffer[i] *= this.value();
806     this.samplesProcessed++;
807   }
808   
809   return buffer;
811       
812       
813 ADSR.prototype.isActive = function() {
814   if ( this.samplesProcessed > this.release || this.samplesProcessed === -1 ) {
815     return false;
816   } else {
817     return true;
818   }
821 ADSR.prototype.disable = function() {
822   this.samplesProcessed = -1;
824   
825 IIRFilter = function(type, cutoff, resonance, sampleRate) {
826   this.sampleRate = sampleRate;
827   this.cutoff     = cutoff;
828   this.resonance  = resonance;
830   switch(type) {
831     case DSP.LOWPASS:
832     case DSP.LP12:
833       this.func = new IIRFilter.LP12(cutoff, resonance, sampleRate);
834       break;
835   }
838 IIRFilter.prototype.set = function(cutoff, resonance) {
839   this.func.calcCoeff(cutoff, resonance);
842 IIRFilter.prototype.process = function(buffer) {
843   this.func.process(buffer);
846 // Add an envelope to the filter
847 IIRFilter.prototype.addEnvelope = function(envelope) {
848   if ( envelope instanceof ADSR ) {
849     this.func.addEnvelope(envelope);
850   } else {
851     throw "Not an envelope.";
852   }
855 IIRFilter.LP12 = function(cutoff, resonance, sampleRate) {
856   this.sampleRate = sampleRate;
857   this.vibraPos   = 0; 
858   this.vibraSpeed = 0;
859   this.envelope = false;
860   
861   this.calcCoeff = function(cutoff, resonance) {
862     this.w = 2.0 * Math.PI * cutoff / this.sampleRate;
863     this.q = 1.0 - this.w / (2.0 * (resonance + 0.5 / (1.0 + this.w)) + this.w - 2.0);
864     this.r = this.q * this.q;
865     this.c = this.r + 1.0 - 2.0 * Math.cos(this.w) * this.q;
866     
867     this.cutoff = cutoff;
868     this.resonance = resonance;
869   };
871   this.calcCoeff(cutoff, resonance);
873   this.process = function(buffer) {
874     for ( var i = 0; i < buffer.length; i++ ) {
875       this.vibraSpeed += (buffer[i] - this.vibraPos) * this.c;
876       this.vibraPos   += this.vibraSpeed;
877       this.vibraSpeed *= this.r;
878     
879       /* 
880       var temp = this.vibraPos;
881       
882       if ( temp > 1.0 ) {
883         temp = 1.0;
884       } else if ( temp < -1.0 ) {
885         temp = -1.0;
886       } else if ( temp != temp ) {
887         temp = 1;
888       }
889       
890       buffer[i] = temp;
891       */ 
893       if (this.envelope) {
894         buffer[i] = (buffer[i] * (1 - this.envelope.value())) + (this.vibraPos * this.envelope.value());
895         this.envelope.samplesProcessed++;
896       } else {
897         buffer[i] = this.vibraPos;
898       }
899     }
900   }
901 };  
903 IIRFilter.LP12.prototype.addEnvelope = function(envelope) {
904   this.envelope = envelope;
909 IIRFilter2 = function(type, cutoff, resonance, sampleRate) {
910   this.type = type; 
911   this.cutoff = cutoff;
912   this.resonance = resonance;
913   this.sampleRate = sampleRate;
915   this.f = Array(4);
916   this.f[0] = 0.0; // lp
917   this.f[1] = 0.0; // hp
918   this.f[2] = 0.0; // bp
919   this.f[3] = 0.0; // br  
920   
921   this.calcCoeff = function(cutoff, resonance) {
922     this.freq = 2 * Math.sin(Math.PI * Math.min(0.25, cutoff/(this.sampleRate*2)));   
923     this.damp = Math.min(2 * (1 - Math.pow(resonance, 0.25)), Math.min(2, 2/this.freq - this.freq * 0.5));
924   };
926   this.calcCoeff(cutoff, resonance);
929 IIRFilter2.prototype.process = function(buffer) {
930   var input, output;
931   var f = this.f;
933   for ( var i = 0; i < buffer.length; i++ ) {
934     input = buffer[i]; 
936     // first pass
937     f[3] = input - this.damp * f[2];
938     f[0] = f[0] + this.freq * f[2];
939     f[1] = f[3] - f[0];
940     f[2] = this.freq * f[1] + f[2];
941     output = 0.5 * f[this.type];
943     // second pass
944     f[3] = input - this.damp * f[2];
945     f[0] = f[0] + this.freq * f[2];
946     f[1] = f[3] - f[0];
947     f[2] = this.freq * f[1] + f[2];
948     output += 0.5 * f[this.type];
950     if (this.envelope) {
951       buffer[i] = (buffer[i] * (1 - this.envelope.value())) + (output * this.envelope.value());
952       this.envelope.samplesProcessed++;
953     } else {
954       buffer[i] = output;
955     }
956   }
959 IIRFilter2.prototype.addEnvelope = function(envelope) {
960   if ( envelope instanceof ADSR ) {
961     this.envelope = envelope;
962   } else {
963     throw "This is not an envelope.";
964   }
967 IIRFilter2.prototype.set = function(cutoff, resonance) {
968   this.calcCoeff(cutoff, resonance); 
973 WindowFunction = function(type, alpha) {
974   this.alpha = alpha;
975   
976   switch(type) {
977     case DSP.BARTLETT:
978       this.func = WindowFunction.Bartlett;
979       break;
980       
981     case DSP.BARTLETTHANN:
982       this.func = WindowFunction.BartlettHann;
983       break;
984       
985     case DSP.BLACKMAN:
986       this.func = WindowFunction.Blackman;
987       this.alpha = this.alpha || 0.16;
988       break;
989     
990     case DSP.COSINE:
991       this.func = WindowFunction.Cosine;
992       break;
993       
994     case DSP.GAUSS:
995       this.func = WindowFunction.Gauss;
996       this.alpha = this.alpha || 0.25;
997       break;
998       
999     case DSP.HAMMING:
1000       this.func = WindowFunction.Hamming;
1001       break;
1002       
1003     case DSP.HANN:
1004       this.func = WindowFunction.Hann;
1005       break;
1006     
1007     case DSP.LANCZOS:
1008       this.func = WindowFunction.Lanczoz;
1009       break;
1010       
1011     case DSP.RECTANGULAR:
1012       this.func = WindowFunction.Rectangular;
1013       break;
1014       
1015     case DSP.TRIANGULAR:
1016       this.func = WindowFunction.Triangular;
1017       break;
1018   }
1021 WindowFunction.prototype.process = function(buffer) {
1022   var length = buffer.length;
1023   for ( var i = 0; i < length; i++ ) {
1024     buffer[i] *= this.func(length, i, this.alpha);
1025   }
1026   return buffer;
1029 WindowFunction.Bartlett = function(length, index) {
1030   return 2 / (length - 1) * ((length - 1) / 2 - Math.abs(index - (length - 1) / 2));
1033 WindowFunction.BartlettHann = function(length, index) {
1034   return 0.62 - 0.48 * Math.abs(index / (length - 1) - 0.5) - 0.38 * Math.cos(DSP.TWO_PI * index / (length - 1));
1037 WindowFunction.Blackman = function(length, index, alpha) {
1038   var a0 = (1 - alpha) / 2;
1039   var a1 = 0.5;
1040   var a2 = alpha / 2;
1042   return a0 - a1 * Math.cos(DSP.TWO_PI * index / (length - 1)) + a2 * Math.cos(4 * Math.PI * index / (length - 1));
1045 WindowFunction.Cosine = function(length, index) {
1046   return Math.cos(Math.PI * index / (length - 1) - Math.PI / 2);
1049 WindowFunction.Gauss = function(length, index, alpha) {
1050   return Math.pow(Math.E, -0.5 * Math.pow((index - (length - 1) / 2) / (alpha * (length - 1) / 2), 2));
1053 WindowFunction.Hamming = function(length, index) {
1054   return 0.54 - 0.46 * Math.cos(DSP.TWO_PI * index / (length - 1));
1057 WindowFunction.Hann = function(length, index) {
1058   return 0.5 * (1 - Math.cos(DSP.TWO_PI * index / (length - 1)));
1061 WindowFunction.Lanczos = function(length, index) {
1062   var x = 2 * index / (length - 1) - 1;
1063   return Math.sin(Math.PI * x) / (Math.PI * x);
1066 WindowFunction.Rectangular = function(length, index) {
1067   return 1;
1070 WindowFunction.Triangular = function(length, index) {
1071   return 2 / length * (length / 2 - Math.abs(index - (length - 1) / 2));
1074 function sinh (arg) {
1075     // Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2  
1076     // 
1077     // version: 1004.2314
1078     // discuss at: http://phpjs.org/functions/sinh    // +   original by: Onno Marsman
1079     // *     example 1: sinh(-0.9834330348825909);
1080     // *     returns 1: -1.1497971402636502
1081     return (Math.exp(arg) - Math.exp(-arg))/2;
1085 /*  
1086  *  Biquad filter
1087  *  
1088  *  Created by Ricard Marxer <email@ricardmarxer.com> on 2010-05-23.
1089  *  Copyright 2010 Ricard Marxer. All rights reserved.
1091  */
1092 // Implementation based on:
1093 // http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
1094 Biquad = function(type, sampleRate) {
1095   this.Fs = sampleRate;
1096   this.type = type;  // type of the filter
1097   this.parameterType = DSP.Q; // type of the parameter
1099   this.x_1_l = 0;
1100   this.x_2_l = 0;
1101   this.y_1_l = 0;
1102   this.y_2_l = 0;
1104   this.x_1_r = 0;
1105   this.x_2_r = 0;
1106   this.y_1_r = 0;
1107   this.y_2_r = 0;
1109   this.b0 = 1;
1110   this.a0 = 1;
1112   this.b1 = 0;
1113   this.a1 = 0;
1115   this.b2 = 0;
1116   this.a2 = 0;
1118   this.b0a0 = this.b0 / this.a0;
1119   this.b1a0 = this.b1 / this.a0;
1120   this.b2a0 = this.b2 / this.a0;
1121   this.a1a0 = this.a1 / this.a0;
1122   this.a2a0 = this.a2 / this.a0;
1124   this.f0 = 3000; // "wherever it's happenin', man."  Center Frequency or
1125         // Corner Frequency, or shelf midpoint frequency, depending
1126         // on which filter type.  The "significant frequency".
1128   this.dBgain = 12; // used only for peaking and shelving filters
1130   this.Q = 1;  // the EE kind of definition, except for peakingEQ in which A*Q is
1131            // the classic EE Q.  That adjustment in definition was made so that
1132            // a boost of N dB followed by a cut of N dB for identical Q and
1133                // f0/Fs results in a precisely flat unity gain filter or "wire".
1135   this.BW = -3; // the bandwidth in octaves (between -3 dB frequencies for BPF
1136            // and notch or between midpoint (dBgain/2) gain frequencies for
1137            // peaking EQ
1139   this.S = 1;  // a "shelf slope" parameter (for shelving EQ only).  When S = 1,
1140            // the shelf slope is as steep as it can be and remain monotonically
1141            // increasing or decreasing gain with frequency.  The shelf slope, in
1142            // dB/octave, remains proportional to S for all other values for a
1143            // fixed f0/Fs and dBgain.
1145   this.coefficients = function() {
1146     var b = [this.b0, this.b1, this.b2];
1147     var a = [this.a0, this.a1, this.a2];
1148     return {b: b, a:a};
1149   }
1151   this.setFilterType = function(type) {
1152     this.type = type;
1153     this.recalculateCoefficients();
1154   }
1156   this.setSampleRate = function(rate) {
1157     this.Fs = rate;
1158     this.recalculateCoefficients();
1159   }
1161   this.setQ = function(q) {
1162     this.parameterType = DSP.Q;
1163     this.Q = Math.max(Math.min(q, 115.0), 0.001);
1164     this.recalculateCoefficients();
1165   }
1167   this.setBW = function(bw) {
1168     this.parameterType = DSP.BW;
1169     this.BW = bw;
1170     this.recalculateCoefficients();
1171   } 
1173   this.setS = function(s) {
1174     this.parameterType = DSP.S;
1175     this.S = Math.max(Math.min(s, 5.0), 0.0001);
1176     this.recalculateCoefficients();
1177   }  
1179   this.setF0 = function(freq) {
1180     this.f0 = freq;
1181     this.recalculateCoefficients();
1182   }  
1183   
1184   this.setDbGain = function(g) {
1185     this.dBgain = g;
1186     this.recalculateCoefficients();
1187   }
1189   this.recalculateCoefficients = function() {
1190     var A;
1191     if (type == DSP.PEAKING_EQ || type == DSP.LOW_SHELF || type == DSP.HIGH_SHELF ) {
1192       A = Math.pow(10, (this.dBgain/40));  // for peaking and shelving EQ filters only
1193     } else {
1194       A  = Math.sqrt( Math.pow(10, (this.dBgain/20)) );    
1195     }
1197     var w0 = DSP.TWO_PI * this.f0 / this.Fs;
1199     var cosw0 = Math.cos(w0);
1200     var sinw0 = Math.sin(w0);
1202     var alpha = 0;
1203     
1204     switch (this.parameterType) {
1205       case DSP.Q:
1206     alpha = sinw0/(2*this.Q);
1207     break;
1208       
1209       case DSP.BW:
1210         alpha = sinw0 * sinh( Math.LN2/2 * this.BW * w0/sinw0 );
1211     break;
1213       case DSP.S:
1214         alpha = sinw0/2 * Math.sqrt( (A + 1/A)*(1/this.S - 1) + 2 );
1215     break;
1216     }
1218     /**
1219         FYI: The relationship between bandwidth and Q is
1220              1/Q = 2*sinh(ln(2)/2*BW*w0/sin(w0))     (digital filter w BLT)
1221         or   1/Q = 2*sinh(ln(2)/2*BW)             (analog filter prototype)
1223         The relationship between shelf slope and Q is
1224              1/Q = sqrt((A + 1/A)*(1/S - 1) + 2)
1225     */
1227     switch (this.type) {
1228       case DSP.LPF:       // H(s) = 1 / (s^2 + s/Q + 1)
1229         this.b0 =  (1 - cosw0)/2;
1230         this.b1 =   1 - cosw0;
1231         this.b2 =  (1 - cosw0)/2;
1232         this.a0 =   1 + alpha;
1233         this.a1 =  -2 * cosw0;
1234         this.a2 =   1 - alpha;
1235         break;
1237       case DSP.HPF:       // H(s) = s^2 / (s^2 + s/Q + 1)
1238         this.b0 =  (1 + cosw0)/2;
1239         this.b1 = -(1 + cosw0);
1240         this.b2 =  (1 + cosw0)/2;
1241         this.a0 =   1 + alpha;
1242         this.a1 =  -2 * cosw0;
1243         this.a2 =   1 - alpha;
1244         break;
1246       case DSP.BPF_CONSTANT_SKIRT:       // H(s) = s / (s^2 + s/Q + 1)  (constant skirt gain, peak gain = Q)
1247         this.b0 =   sinw0/2;
1248         this.b1 =   0;
1249         this.b2 =  -sinw0/2;
1250         this.a0 =   1 + alpha;
1251         this.a1 =  -2*cosw0;
1252         this.a2 =   1 - alpha;
1253           break;
1255       case DSP.BPF_CONSTANT_PEAK:       // H(s) = (s/Q) / (s^2 + s/Q + 1)      (constant 0 dB peak gain)
1256         this.b0 =   alpha;
1257         this.b1 =   0;
1258         this.b2 =  -alpha;
1259         this.a0 =   1 + alpha;
1260         this.a1 =  -2*cosw0;
1261         this.a2 =   1 - alpha;
1262           break;
1264       case DSP.NOTCH:     // H(s) = (s^2 + 1) / (s^2 + s/Q + 1)
1265         this.b0 =   1;
1266         this.b1 =  -2*cosw0;
1267         this.b2 =   1;
1268         this.a0 =   1 + alpha;
1269         this.a1 =  -2*cosw0;
1270         this.a2 =   1 - alpha;
1271           break;
1273       case DSP.APF:       // H(s) = (s^2 - s/Q + 1) / (s^2 + s/Q + 1)
1274         this.b0 =   1 - alpha;
1275         this.b1 =  -2*cosw0;
1276         this.b2 =   1 + alpha;
1277         this.a0 =   1 + alpha;
1278         this.a1 =  -2*cosw0;
1279         this.a2 =   1 - alpha;
1280           break;
1282       case DSP.PEAKING_EQ:  // H(s) = (s^2 + s*(A/Q) + 1) / (s^2 + s/(A*Q) + 1)
1283         this.b0 =   1 + alpha*A;
1284         this.b1 =  -2*cosw0;
1285         this.b2 =   1 - alpha*A;
1286         this.a0 =   1 + alpha/A;
1287         this.a1 =  -2*cosw0;
1288         this.a2 =   1 - alpha/A;
1289           break;
1291       case DSP.LOW_SHELF:   // H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1)
1292           var coeff = sinw0 * Math.sqrt( (A^2 + 1)*(1/this.S - 1) + 2*A );
1293         this.b0 =    A*( (A+1) - (A-1)*cosw0 + coeff );
1294         this.b1 =  2*A*( (A-1) - (A+1)*cosw0                   );
1295         this.b2 =    A*( (A+1) - (A-1)*cosw0 - coeff );
1296         this.a0 =        (A+1) + (A-1)*cosw0 + coeff;
1297         this.a1 =   -2*( (A-1) + (A+1)*cosw0                   );
1298         this.a2 =        (A+1) + (A-1)*cosw0 - coeff;
1299           break;
1301       case DSP.HIGH_SHELF:   // H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A)
1302           var coeff = sinw0 * Math.sqrt( (A^2 + 1)*(1/this.S - 1) + 2*A );
1303         this.b0 =    A*( (A+1) + (A-1)*cosw0 + coeff );
1304         this.b1 = -2*A*( (A-1) + (A+1)*cosw0                   );
1305         this.b2 =    A*( (A+1) + (A-1)*cosw0 - coeff );
1306         this.a0 =        (A+1) - (A-1)*cosw0 + coeff;
1307         this.a1 =    2*( (A-1) - (A+1)*cosw0                   );
1308         this.a2 =        (A+1) - (A-1)*cosw0 - coeff;
1309           break;
1310     }
1311     
1312     this.b0a0 = this.b0/this.a0;
1313     this.b1a0 = this.b1/this.a0;
1314     this.b2a0 = this.b2/this.a0;
1315     this.a1a0 = this.a1/this.a0;
1316     this.a2a0 = this.a2/this.a0;
1317   }
1319   this.process = function(buffer) {
1320       //y[n] = (b0/a0)*x[n] + (b1/a0)*x[n-1] + (b2/a0)*x[n-2]
1321       //       - (a1/a0)*y[n-1] - (a2/a0)*y[n-2]
1323       var len = buffer.length;
1324       var output = new Array(len);
1326       for ( var i=0; i<buffer.length; i++ ) {
1327           output[i] = this.b0a0*buffer[i] + this.b1a0*this.x_1_l + this.b2a0*this.x_2_l - this.a1a0*this.y_1_l - this.a2a0*this.y_2_l;
1328           this.y_2_l = this.y_1_l;
1329           this.y_1_l = output[i];
1330           this.x_2_l = this.x_1_l;
1331           this.x_1_l = buffer[i];
1332       }
1334       return output;
1335   }
1337   this.processStereo = function(buffer) {
1338       //y[n] = (b0/a0)*x[n] + (b1/a0)*x[n-1] + (b2/a0)*x[n-2]
1339       //       - (a1/a0)*y[n-1] - (a2/a0)*y[n-2]
1341       var len = buffer.length;
1342       var output = new Array(len);
1343       
1344       for ( var i=0; i<len/2; i++ ) {
1345         output[2*i] = this.b0a0*buffer[2*i] + this.b1a0*this.x_1_l + this.b2a0*this.x_2_l - this.a1a0*this.y_1_l - this.a2a0*this.y_2_l;
1346           this.y_2_l = this.y_1_l;
1347           this.y_1_l = output[2*i];
1348           this.x_2_l = this.x_1_l;
1349           this.x_1_l = buffer[2*i];
1351           output[2*i+1] = this.b0a0*buffer[2*i+1] + this.b1a0*this.x_1_r + this.b2a0*this.x_2_r - this.a1a0*this.y_1_r - this.a2a0*this.y_2_r;
1352           this.y_2_r = this.y_1_r;
1353           this.y_1_r = output[2*i+1];
1354           this.x_2_r = this.x_1_r;
1355           this.x_1_r = buffer[2*i+1];
1356       }
1358       return output;
1359   }
1363 /*  
1364  *  Magnitude to decibels
1365  *  
1366  *  Created by Ricard Marxer <email@ricardmarxer.com> on 2010-05-23.
1367  *  Copyright 2010 Ricard Marxer. All rights reserved.
1369  *  @buffer array of magnitudes to convert to decibels
1370  * 
1371  *  @returns the array in decibels
1373  */
1374 DSP.mag2db = function(buffer) {
1375   var minDb = -120;
1376   var minMag = Math.pow(10.0, minDb / 20.0);
1378   var log = Math.log;
1379   var max = Math.max;
1380   
1381   var result = Array(buffer.length);
1382   for (var i=0; i<buffer.length; i++) {
1383     result[i] = 20.0*log(max(buffer[i], minMag));
1384   }
1386   return result;
1389 /*  
1390  *  Frequency response
1391  *  
1392  *  Created by Ricard Marxer <email@ricardmarxer.com> on 2010-05-23.
1393  *  Copyright 2010 Ricard Marxer. All rights reserved.
1395  *  Calculates the frequency response at the given points.
1397  *  @b b coefficients of the filter
1398  *  @a a coefficients of the filter
1399  *  @w w points (normally between -PI and PI) where to calculate the frequency response
1400  * 
1401  *  @returns the frequency response in magnitude
1403  */
1404 DSP.freqz = function(b, a, w) {
1405   if (!w) {
1406     w = Array(200);
1407     for (var i=0;i<w.length; i++) {
1408       w[i] = DSP.TWO_PI/w.length * i - Math.PI;
1409     }
1410   }
1412   var result = Array(w.length);
1413   
1414   var sqrt = Math.sqrt;
1415   var cos = Math.cos;
1416   var sin = Math.sin;
1417   
1418   for (var i=0; i<w.length; i++) {
1419     var numerator = {real:0.0, imag:0.0};
1420     for (var j=0; j<b.length; j++) {
1421       numerator.real += b[j] * cos(-j*w[i]);
1422       numerator.imag += b[j] * sin(-j*w[i]);
1423     }
1425     var denominator = {real:0.0, imag:0.0};
1426     for (var j=0; j<a.length; j++) {
1427       denominator.real += a[j] * cos(-j*w[i]);
1428       denominator.imag += a[j] * sin(-j*w[i]);
1429     }
1430   
1431     result[i] =  sqrt(numerator.real*numerator.real + numerator.imag*numerator.imag) / sqrt(denominator.real*denominator.real + denominator.imag*denominator.imag);
1432   }
1434   return result;
1437 /*  
1438  *  Graphical Equalizer
1439  *  
1440  *  Created by Ricard Marxer <email@ricardmarxer.com> on 2010-05-23.
1441  *  Copyright 2010 Ricard Marxer. All rights reserved.
1443  */
1444 // Implementation of a graphic equalizer with a configurable bands-per-octave
1445 // and minimum and maximum frequencies
1446 GraphicalEq = function(sampleRate) {
1447   this.FS = sampleRate;
1448   this.minFreq = 40.0;
1449   this.maxFreq = 16000.0;
1451   this.bandsPerOctave = 1.0;
1453   this.filters = []
1454   this.freqzs = []
1456   this.calculateFreqzs = true;
1458   this.recalculateFilters = function() {
1459     var bandCount = Math.round(Math.log(this.maxFreq/this.minFreq) * this.bandsPerOctave/ Math.LN2);
1461     this.filters = [];
1462     for (var i=0; i<bandCount; i++) {
1463       var freq = this.minFreq*(Math.pow(2, i/this.bandsPerOctave));
1464       var newFilter = new Biquad(DSP.PEAKING_EQ, this.FS);
1465       newFilter.setDbGain(0);
1466       newFilter.setBW(1/this.bandsPerOctave);
1467       newFilter.setF0(freq);
1468       this.filters[i] = newFilter;
1469       this.recalculateFreqz(i);
1470     }
1471   }
1473   this.setMinimumFrequency = function(freq) {
1474     this.minFreq = freq;
1475     this.recalculateFilters();
1476   }
1478   this.setMaximumFrequency = function(freq) {
1479     this.maxFreq = freq;
1480     this.recalculateFilters();
1481   }
1483   this.setBandsPerOctave = function(bands) {
1484     this.bandsPerOctave = bands;
1485     this.recalculateFilters();
1486   }
1488   this.setBandGain = function(bandIndex, gain) {
1489     if (bandIndex < 0 || bandIndex > (this.filters.length-1)) {
1490       throw "The band index of the graphical equalizer is out of bounds.";
1491       return;
1492     }
1494     if (!gain) {
1495       throw "A gain must be passed."
1496       return;
1497     }
1498     
1499     
1500     this.filters[bandIndex].setDbGain(gain);
1501     this.recalculateFreqz(bandIndex);
1502   }
1503   
1504   this.recalculateFreqz = function(bandIndex) {
1505     if (!this.calculateFreqzs) {
1506       return;
1507     }
1509     
1510     if (bandIndex < 0 || bandIndex > (this.filters.length-1)) {
1511       throw "The band index of the graphical equalizer is out of bounds. " + bandIndex + " is out of [" + 0 + ", " + this.filters.length-1 + "]"
1512       return;
1513     }
1514         
1515     if (!this.w) {
1516       this.w = Array(400);
1517       for (var i=0; i<this.w.length; i++) {
1518          this.w[i] = Math.PI/this.w.length * i;
1519       }
1520     }
1521     
1522     var b = [this.filters[bandIndex].b0, this.filters[bandIndex].b1, this.filters[bandIndex].b2];
1523     var a = [this.filters[bandIndex].a0, this.filters[bandIndex].a1, this.filters[bandIndex].a2];
1525     this.freqzs[bandIndex] = DSP.mag2db(DSP.freqz(b, a, this.w));
1526   }
1528   this.process = function(buffer) {
1529       var output = buffer;
1530       
1531       for ( var i=0; i<this.filters.length; i++ ) {
1532     output = this.filters[i].process(output);
1533       }
1535       return output;
1536   }
1538   this.processStereo = function(buffer) {
1539       var output = buffer;
1540       
1541       for ( var i=0; i<this.filters.length; i++ ) {
1542     output = this.filters[i].processStereo(output);
1543       }
1545       return output;
1546   }
1553  * MultiDelay effect by Almer Thie (http://code.almeros.com).
1554  * Copyright 2010 Almer Thie. All rights reserved.
1555  * Example: http://code.almeros.com/code-examples/delay-firefox-audio-api/
1556  * 
1557  * This is a delay that feeds it's own delayed signal back into its circular 
1558  * buffer. Also known as a CombFilter.
1560  * Compatible with interleaved stereo (or more channel) buffers and 
1561  * non-interleaved mono buffers.
1562  * 
1563  * @param {Number} maxDelayInSamplesSize Maximum possible delay in samples (size of circular buffer)
1564  * @param {Number} delayInSamples Initial delay in samples
1565  * @param {Number} masterVolume Initial master volume. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1566  * @param {Number} delayVolume Initial feedback delay volume. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1567  * 
1568  * @constructor
1569  */
1570 MultiDelay = function(maxDelayInSamplesSize, delayInSamples, masterVolume, delayVolume){
1571     this.delayBufferSamples     = new Array(maxDelayInSamplesSize); // The maximum size of delay
1572     this.delayInputPointer      = delayInSamples; 
1573     this.delayOutputPointer     = 0;
1574     
1575     this.delayInSamples     = delayInSamples;
1576     this.masterVolume       = masterVolume;
1577     this.delayVolume        = delayVolume;
1581  * Change the delay time in samples.
1583  * @param {Number} delayInSamples Delay in samples
1584  */
1585 MultiDelay.prototype.setDelayInSamples = function (delayInSamples){
1586     this.delayInSamples = delayInSamples;
1587     
1588     this.delayInputPointer = this.delayOutputPointer + delayInSamples;
1589     if(this.delayInputPointer >= this.delayBufferSamples.length-1)
1590         this.delayInputPointer = this.delayInputPointer - this.delayBufferSamples.length;   
1594  * Change the master volume.
1596  * @param {Number} masterVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1597  */
1598 MultiDelay.prototype.setMasterVolume = function (masterVolume){
1599     this.masterVolume = masterVolume;
1603  * Change the delay feedback volume.
1605  * @param {Number} delayVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1606  */
1607 MultiDelay.prototype.setDelayVolume = function (delayVolume){
1608     this.delayVolume = delayVolume;
1612  * Process a given interleaved or mono non-interleaved float value Array and adds the delayed audio.
1614  * @param {Array} samples Array containing Float values or a Float32Array
1615  * 
1616  * @returns A new Float32Array interleaved or mono non-interleaved as was fed to this function.
1617  */
1618 MultiDelay.prototype.process = function (samples){
1619     // NB. Make a copy to put in the output samples to return. 
1620     var outputSamples = new Array(samples.length);
1622     for(var i=0; i<samples.length; i++){
1623     
1624         // delayBufferSamples could contain initial NULL's, return silence in that case
1625         var delaySample = (this.delayBufferSamples[this.delayOutputPointer]==null ? 0.0 : this.delayBufferSamples[this.delayOutputPointer]);
1626         
1627         // Mix normal audio data with delayed audio
1628         var sample = (delaySample * this.delayVolume) + samples[i]; 
1629         
1630         // Add audio data with the delay in the delay buffer
1631         this.delayBufferSamples[this.delayInputPointer] = sample;
1632         
1633         // Return the audio with delay mix
1634         outputSamples[i] = sample * this.masterVolume;
1635         
1636         // Manage circulair delay buffer pointers
1637         this.delayInputPointer++;
1638         if(this.delayInputPointer >= this.delayBufferSamples.length-1)
1639             this.delayInputPointer = 0;
1640             
1641         this.delayOutputPointer++;
1642         if(this.delayOutputPointer >= this.delayBufferSamples.length-1)
1643             this.delayOutputPointer = 0;    
1644             
1645     }
1646     
1647     return outputSamples;
1654  * SingleDelay effect by Almer Thie (http://code.almeros.com).
1655  * Copyright 2010 Almer Thie. All rights reserved.
1656  * Example: See usage in Reverb class
1657  * 
1658  * This is a delay that does NOT feeds it's own delayed signal back into its  
1659  * circular buffer, neither does it return the original signal. Also known as 
1660  * an AllPassFilter(?).
1662  * Compatible with interleaved stereo (or more channel) buffers and 
1663  * non-interleaved mono buffers.
1664  * 
1665  * @param {Number} maxDelayInSamplesSize Maximum possible delay in samples (size of circular buffer)
1666  * @param {Number} delayInSamples Initial delay in samples
1667  * @param {Number} delayVolume Initial feedback delay volume. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1668  * 
1669  * @constructor
1670  */
1671 SingleDelay = function(maxDelayInSamplesSize, delayInSamples, delayVolume){
1672     this.delayBufferSamples     = new Array(maxDelayInSamplesSize); // The maximum size of delay
1673     this.delayInputPointer      = delayInSamples; 
1674     this.delayOutputPointer     = 0;
1675     
1676     this.delayInSamples     = delayInSamples;
1677     this.delayVolume        = delayVolume;
1681  * Change the delay time in samples.
1683  * @param {Number} delayInSamples Delay in samples
1684  */
1685 SingleDelay.prototype.setDelayInSamples = function (delayInSamples){
1686     this.delayInSamples = delayInSamples;
1687     
1688     this.delayInputPointer = this.delayOutputPointer + delayInSamples;
1689     if(this.delayInputPointer >= this.delayBufferSamples.length-1)
1690         this.delayInputPointer = this.delayInputPointer - this.delayBufferSamples.length;   
1694  * Change the return signal volume.
1696  * @param {Number} delayVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1697  */
1698 SingleDelay.prototype.setDelayVolume = function (delayVolume){
1699     this.delayVolume = delayVolume;
1703  * Process a given interleaved or mono non-interleaved float value Array and 
1704  * returns the delayed audio.
1706  * @param {Array} samples Array containing Float values or a Float32Array
1707  * 
1708  * @returns A new Float32Array interleaved or mono non-interleaved as was fed to this function.
1709  */
1710 SingleDelay.prototype.process = function (samples){
1711     // NB. Make a copy to put in the output samples to return. 
1712     var outputSamples = new Array(samples.length);
1714     for(var i=0; i<samples.length; i++){
1716         // Add audio data with the delay in the delay buffer
1717         this.delayBufferSamples[this.delayInputPointer] = samples[i];
1718         
1719         // delayBufferSamples could contain initial NULL's, return silence in that case
1720         var delaySample = this.delayBufferSamples[this.delayOutputPointer];
1722         // Return the audio with delay mix
1723         outputSamples[i] = delaySample * this.delayVolume;
1725         
1726         // Manage circulair delay buffer pointers
1727         this.delayInputPointer++;
1728         if(this.delayInputPointer >= this.delayBufferSamples.length-1)
1729             this.delayInputPointer = 0;
1730             
1731         this.delayOutputPointer++;
1732         if(this.delayOutputPointer >= this.delayBufferSamples.length-1)
1733             this.delayOutputPointer = 0;    
1734             
1735     }
1736     
1737     return outputSamples;
1745  * Reverb effect by Almer Thie (http://code.almeros.com).
1746  * Copyright 2010 Almer Thie. All rights reserved.
1747  * Example: http://code.almeros.com/code-examples/reverb-firefox-audio-api/
1748  * 
1749  * This reverb consists of 6 SingleDelays, 6 MultiDelays and an IIRFilter2 
1750  * for each of the two stereo channels.
1752  * Compatible with interleaved stereo buffers only!
1753  * 
1754  * @param {Number} maxDelayInSamplesSize Maximum possible delay in samples (size of circular buffers)
1755  * @param {Number} delayInSamples Initial delay in samples for internal (Single/Multi)delays
1756  * @param {Number} masterVolume Initial master volume. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1757  * @param {Number} mixVolume Initial reverb signal mix volume. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1758  * @param {Number} delayVolume Initial feedback delay volume for internal (Single/Multi)delays. Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1759  * @param {Number} dampFrequency Initial low pass filter frequency. 0 to 44100 (depending on your maximum sampling frequency)
1760  * 
1761  * @constructor
1762  */
1763 Reverb = function(maxDelayInSamplesSize, delayInSamples, masterVolume, mixVolume, delayVolume, dampFrequency){
1764     this.delayInSamples     = delayInSamples;
1765     this.masterVolume       = masterVolume;
1766     this.mixVolume          = mixVolume;
1767     this.delayVolume        = delayVolume;
1768     this.dampFrequency      = dampFrequency;
1769     
1770     this.NR_OF_MULTIDELAYS = 6;
1771     this.NR_OF_SINGLEDELAYS = 6;
1772     
1773     this.LOWPASSL = new IIRFilter2(DSP.LOWPASS, dampFrequency, 0, 44100);
1774     this.LOWPASSR = new IIRFilter2(DSP.LOWPASS, dampFrequency, 0, 44100);
1775     
1776     this.singleDelays = [];
1777     for(var i = 0; i<this.NR_OF_SINGLEDELAYS; i++){
1778         var delayMultiply = 1.0 + (i/7.0); // 1.0, 1.1, 1.2... 
1779         this.singleDelays[i] = new SingleDelay(maxDelayInSamplesSize, Math.round(this.delayInSamples * delayMultiply), this.delayVolume);
1780     }
1781     
1782     this.multiDelays = [];
1783     for(var i = 0; i<this.NR_OF_MULTIDELAYS; i++){
1784         var delayMultiply = 1.0 + (i/10.0); // 1.0, 1.1, 1.2...  
1785         this.multiDelays[i] = new MultiDelay(maxDelayInSamplesSize, Math.round(this.delayInSamples * delayMultiply), this.masterVolume, this.delayVolume);
1786     }
1790  * Change the delay time in samples as a base for all delays.
1792  * @param {Number} delayInSamples Delay in samples
1793  */
1794 Reverb.prototype.setDelayInSamples = function (delayInSamples){
1795     this.delayInSamples = delayInSamples;
1796     
1797     for(var i = 0; i<this.NR_OF_SINGLEDELAYS; i++){
1798         var delayMultiply = 1.0 + (i/7.0); // 1.0, 1.1, 1.2...
1799         this.singleDelays[i].setDelayInSamples( Math.round(this.delayInSamples * delayMultiply) );
1800     }
1801         
1802     for(var i = 0; i<this.NR_OF_MULTIDELAYS; i++){
1803         var delayMultiply = 1.0 + (i/10.0); // 1.0, 1.1, 1.2...
1804         this.multiDelays[i].setDelayInSamples( Math.round(this.delayInSamples * delayMultiply) );
1805     }
1809  * Change the master volume.
1811  * @param {Number} masterVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1812  */
1813 Reverb.prototype.setMasterVolume = function (masterVolume){
1814     this.masterVolume = masterVolume;
1818  * Change the reverb signal mix level.
1820  * @param {Number} mixVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1821  */
1822 Reverb.prototype.setMixVolume = function (mixVolume){
1823     this.mixVolume = mixVolume;
1827  * Change all delays feedback volume.
1829  * @param {Number} delayVolume Float value: 0.0 (silence), 1.0 (normal), >1.0 (amplify)
1830  */
1831 Reverb.prototype.setDelayVolume = function (delayVolume){
1832     this.delayVolume = delayVolume;
1833     
1834     for(var i = 0; i<this.NR_OF_SINGLEDELAYS; i++){
1835         this.singleDelays[i].setDelayVolume(this.delayVolume);
1836     }   
1837     
1838     for(var i = 0; i<this.NR_OF_MULTIDELAYS; i++){
1839         this.multiDelays[i].setDelayVolume(this.delayVolume);
1840     }   
1844  * Change the Low Pass filter frequency.
1846  * @param {Number} dampFrequency low pass filter frequency. 0 to 44100 (depending on your maximum sampling frequency)
1847  */
1848 Reverb.prototype.setDampFrequency = function (dampFrequency){
1849     this.dampFrequency = dampFrequency;
1850     
1851     this.LOWPASSL.set(dampFrequency, 0);
1852     this.LOWPASSR.set(dampFrequency, 0);    
1856  * Process a given interleaved float value Array and copies and adds the reverb signal.
1858  * @param {Array} samples Array containing Float values or a Float32Array
1859  * 
1860  * @returns A new Float32Array interleaved buffer.
1861  */
1862 Reverb.prototype.process = function (interleavedSamples){   
1863     // NB. Make a copy to put in the output samples to return. 
1864     var outputSamples = new Array(interleavedSamples.length);
1865     
1866     // Perform low pass on the input samples to mimick damp
1867     var leftRightMix = DSP.deinterleave(interleavedSamples);
1868     this.LOWPASSL.process( leftRightMix[DSP.LEFT] );
1869     this.LOWPASSR.process( leftRightMix[DSP.RIGHT] );   
1870     var filteredSamples = DSP.interleave(leftRightMix[DSP.LEFT], leftRightMix[DSP.RIGHT]);
1872     // Process MultiDelays in parallel
1873     for(var i = 0; i<this.NR_OF_MULTIDELAYS; i++){
1874         // Invert the signal of every even multiDelay
1875         outputSamples = mixSampleBuffers(outputSamples, this.multiDelays[i].process(filteredSamples), 2%i==0, this.NR_OF_MULTIDELAYS);
1876     }
1877     
1878     // Process SingleDelays in series
1879     var singleDelaySamples = new Array(outputSamples.length);
1880     for(var i = 0; i<this.NR_OF_SINGLEDELAYS; i++){
1881         // Invert the signal of every even singleDelay
1882         singleDelaySamples = mixSampleBuffers(singleDelaySamples, this.singleDelays[i].process(outputSamples), 2%i==0, 1); 
1883     }
1885     // Apply the volume of the reverb signal
1886     for(var i = 0; i<singleDelaySamples.length; i++){
1887         singleDelaySamples[i] *= this.mixVolume;
1888     }
1889     
1890     // Mix the original signal with the reverb signal
1891     outputSamples = mixSampleBuffers(singleDelaySamples, interleavedSamples, 0, 1); 
1893     // Apply the master volume to the complete signal
1894     for(var i = 0; i<outputSamples.length; i++){
1895         outputSamples[i] *= this.masterVolume;
1896     }
1897         
1898     return outputSamples;
1902  * Helper method (for Reverb) to mix two (interleaved) samplebuffers. It's possible 
1903  * to negate the second buffer while mixing and to perform a volume correction 
1904  * on the final signal.
1905  * 
1906  * @param {Array} sampleBuffer1 Array containing Float values or a Float32Array
1907  * @param {Array} sampleBuffer2 Array containing Float values or a Float32Array
1908  * @param {Boolean} negate When true inverts/flips the audio signal
1909  * @param {Number} volumeCorrection When you add multiple sample buffers, use this to tame your signal ;)
1910  * 
1911  * @returns A new Float32Array interleaved buffer.
1912  */
1913 function mixSampleBuffers(sampleBuffer1, sampleBuffer2, negate, volumeCorrection){
1914     var outputSamples = new Array(sampleBuffer1);
1916     for(var i = 0; i<sampleBuffer1.length; i++){
1917         outputSamples[i] += (negate ? -sampleBuffer2[i] : sampleBuffer2[i]) / volumeCorrection;
1918     }
1919     
1920     return outputSamples;
1921 }   
1924  *  BeatDetektor.js
1926  *  BeatDetektor - CubicFX Visualizer Beat Detection & Analysis Algorithm
1927  *  Javascript port by Charles J. Cliffe and Corban Brook
1929  *  Created by Charles J. Cliffe on 09-11-30.
1930  *  Copyright 2009 Charles J. Cliffe. All rights reserved.
1932  *  BeatDetektor is free software: you can redistribute it and/or modify
1933  *  it under the terms of the GNU Lesser General Public License as published by
1934  *  the Free Software Foundation, either version 3 of the License, or
1935  *  (at your option) any later version.
1937  *  Please note that only the Javascript version of BeatDetektor is licensed
1938  *  under the terms of LGPL version 3; ports of BeatDetektor or derivatives
1939  *  in other languages are licensed under the terms of GPL version 3.
1941  *  BeatDetektor is distributed in the hope that it will be useful,
1942  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
1943  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1944  *  GNU Lesser General Public License for more details.
1946  *  You should have received a copy of the GNU Lesser General Public License
1947  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
1949  *  Please contact cj@cubicproductions.com if you seek alternate
1950  *  licensing terms for your project.
1952  */
1955 /* 
1956  BeatDetektor class
1959  Theory:
1961  Trigger detection is performed using a trail of moving averages, 
1963  The FFT input is broken up into 128 ranges and averaged, each range has two moving 
1964  averages that tail each other at a rate of (1.0 / BD_DETECTION_RATE) seconds.  
1966  Each time the moving average for a range exceeds it's own tailing average by:
1968  (moving_average[range] * BD_DETECTION_FACTOR >= moving_average[range])
1970  if this is true there's a rising edge and a detection is flagged for that range. 
1971  Next a trigger gap test is performed between rising edges and timestamp recorded. 
1973  If the gap is larger than our BPM window (in seconds) then we can discard it and
1974  reset the timestamp for a new detection -- but only after checking to see if it's a 
1975  reasonable match for 2* the current detection in case it's only triggered every
1976  other beat. Gaps that are lower than the BPM window are ignored and the last 
1977  timestamp will not be reset.  
1979  Gaps that are within a reasonable window are run through a quality stage to determine 
1980  how 'close' they are to that channel's current prediction and are incremented or 
1981  decremented by a weighted value depending on accuracy. Repeated hits of low accuracy 
1982  will still move a value towards erroneous detection but it's quality will be lowered 
1983  and will not be eligible for the gap time quality draft.
1985  Once quality has been assigned ranges are reviewed for good match candidates and if 
1986  BD_MINIMUM_CONTRIBUTIONS or more ranges achieve a decent ratio (with a factor of 
1987  BD_QUALITY_TOLERANCE) of contribution to the overall quality we take them into the 
1988  contest round.  Note that the contest round  won't run on a given process() call if 
1989  the total quality achieved does not meet or exceed BD_QUALITY_TOLERANCE.
1990   
1991  Each time through if a select draft of BPM ranges has achieved a reasonable quality 
1992  above others it's awarded a value in the BPM contest.  The BPM contest is a hash 
1993  array indexed by an integer BPM value, each draft winner is awarded BD_QUALITY_REWARD.
1995  Finally the BPM contest is examined to determine a leader and all contest entries 
1996  are normalized to a total value of BD_FINISH_LINE, whichever range is closest to 
1997  BD_FINISH_LINE at any given point is considered to be the best guess however waiting 
1998  until a minimum contest winning value of about 20.0-25.0 will provide more accurate 
1999  results.  Note that the 20-25 rule may vary with lower and higher input ranges. 
2000  A winning value that exceeds 40 or hovers around 60 (the finish line) is pretty much
2001  a guaranteed match.
2004  Configuration Kernel Notes:
2006  The majority of the ratios and values have been reverse-engineered from my own  
2007  observation and visualization of information from various aspects of the detection 
2008  triggers; so not all parameters have a perfect definition nor perhaps the best value yet.
2009  However despite this it performs very well; I had expected several more layers 
2010  before a reasonable detection would be achieved. Comments for these parameters will be 
2011  updated as analysis of their direct effect is explored.
2014  Input Restrictions:
2016  bpm_maximum must be within the range of (bpm_minimum*2)-1
2017  i.e. minimum of 50 must have a maximum of 99 because 50*2 = 100
2020  Changelog: 
2022  01/17/2010 - Charles J. Cliffe 
2023   - Tested and tweaked default kernel values for tighter detection
2024   - Added BeatDetektor.config_48_95, BeatDetektor.config_90_179 and BeatDetektor.config_150_280 for more refined detection ranges
2025   - Updated unit test to include new range config example
2027 02/21/2010 - Charles J. Cliffe 
2028  - Fixed numerous bugs and divide by 0 on 1% match causing poor accuracy
2029  - Re-worked the quality calulations, accuracy improved 8-10x
2030  - Primary value is now a fractional reading (*10, just divide by 10), added win_bpm_int_lo for integral readings
2031  - Added feedback loop for current_bpm to help back-up low quality channels
2032  - Unified range configs, now single default should be fine
2033  - Extended quality reward 'funnel'
2036 BeatDetektor = function(bpm_minimum, bpm_maximum, alt_config)
2038     if (typeof(bpm_minimum)=='undefined') bpm_minimum = 85.0;
2039     if (typeof(bpm_maximum)=='undefined') bpm_maximum = 169.0
2040     
2041     this.config = (typeof(alt_config)!='undefined')?alt_config:BeatDetektor.config;
2042     
2043     this.BPM_MIN = bpm_minimum;
2044     this.BPM_MAX = bpm_maximum;
2046     this.beat_counter = 0;
2047     this.half_counter = 0;
2048     this.quarter_counter = 0;
2050     // current average (this sample) for range n
2051     this.a_freq_range = new Array(this.config.BD_DETECTION_RANGES);
2052     // moving average of frequency range n
2053     this.ma_freq_range = new Array(this.config.BD_DETECTION_RANGES);
2054     // moving average of moving average of frequency range n
2055     this.maa_freq_range = new Array(this.config.BD_DETECTION_RANGES);
2056     // timestamp of last detection for frequecy range n
2057     this.last_detection = new Array(this.config.BD_DETECTION_RANGES);
2059     // moving average of gap lengths
2060     this.ma_bpm_range = new Array(this.config.BD_DETECTION_RANGES);
2061     // moving average of moving average of gap lengths
2062     this.maa_bpm_range = new Array(this.config.BD_DETECTION_RANGES);
2064     // range n quality attribute, good match  = quality+, bad match  = quality-, min  = 0
2065     this.detection_quality = new Array(this.config.BD_DETECTION_RANGES);
2067     // current trigger state for range n
2068     this.detection = new Array(this.config.BD_DETECTION_RANGES); 
2069     
2070     this.reset();
2071     
2075 BeatDetektor.prototype.reset = function()
2077 //  var bpm_avg = 60.0/((this.BPM_MIN+this.BPM_MAX)/2.0);
2079     for (var i = 0; i < this.config.BD_DETECTION_RANGES; i++)
2080     {
2081         this.a_freq_range[i] = 0.0;
2082         this.ma_freq_range[i] = 0.0;
2083         this.maa_freq_range[i] = 0.0;
2084         this.last_detection[i] = 0.0;
2085         
2086         this.ma_bpm_range[i] = 
2087         this.maa_bpm_range[i] = 60.0/this.BPM_MIN + ((60.0/this.BPM_MAX-60.0/this.BPM_MIN) * (i/this.config.BD_DETECTION_RANGES));      
2088         
2089         this.detection_quality[i] = 0.0;
2090         this.detection[i] = false;
2091     }
2092     
2093     this.ma_quality_avg = 0;
2094     this.ma_quality_total = 0;
2095     
2096     this.bpm_contest = new Array();
2097     this.bpm_contest_lo = new Array();
2098     
2099     this.quality_total = 0.0;
2100     this.quality_avg = 0.0;
2102     this.current_bpm = 0.0; 
2103     this.current_bpm_lo = 0.0; 
2105     this.winning_bpm = 0.0; 
2106     this.win_val = 0.0;
2107     this.winning_bpm_lo = 0.0; 
2108     this.win_val_lo = 0.0;
2110     this.win_bpm_int = 0;
2111     this.win_bpm_int_lo = 0;
2113     this.bpm_predict = 0;
2115     this.is_erratic = false;
2116     this.bpm_offset = 0.0;
2117     this.last_timer = 0.0;
2118     this.last_update = 0.0;
2120     this.bpm_timer = 0.0;
2121     this.beat_counter = 0;
2122     this.half_counter = 0;
2123     this.quarter_counter = 0;
2127 BeatDetektor.config_default = {
2128     BD_DETECTION_RANGES : 128,  // How many ranges to quantize the FFT into
2129     BD_DETECTION_RATE : 12.0,   // Rate in 1.0 / BD_DETECTION_RATE seconds
2130     BD_DETECTION_FACTOR : 0.915, // Trigger ratio
2131     BD_QUALITY_DECAY : 0.6,     // range and contest decay
2132     BD_QUALITY_TOLERANCE : 0.96,// Use the top x % of contest results
2133     BD_QUALITY_REWARD : 10.0,    // Award weight
2134     BD_QUALITY_STEP : 0.1,     // Award step (roaming speed)
2135     BD_MINIMUM_CONTRIBUTIONS : 6,   // At least x ranges must agree to process a result
2136     BD_FINISH_LINE : 60.0,          // Contest values wil be normalized to this finish line
2137     // this is the 'funnel' that pulls ranges in / out of alignment based on trigger detection
2138     BD_REWARD_TOLERANCES : [ 0.001, 0.005, 0.01, 0.02, 0.04, 0.08, 0.10, 0.15, 0.30 ],  // .1%, .5%, 1%, 2%, 4%, 8%, 10%, 15%
2139     BD_REWARD_MULTIPLIERS : [ 20.0, 10.0, 8.0, 1.0, 1.0/2.0, 1.0/4.0, 1.0/8.0, 1/16.0, 1/32.0 ]
2143 // Default configuration kernel
2144 BeatDetektor.config = BeatDetektor.config_default;
2147 BeatDetektor.prototype.process = function(timer_seconds, fft_data)
2149     if (!this.last_timer) { this.last_timer = timer_seconds; return; }  // ignore 0 start time
2150     if (this.last_timer > timer_seconds) { this.reset(); return; }
2151     
2152     var timestamp = timer_seconds;
2153     
2154     this.last_update = timer_seconds - this.last_timer;
2155     this.last_timer = timer_seconds;
2157     if (this.last_update > 1.0) { this.reset(); return; }
2159     var i,x;
2160     var v;
2161     
2162     var bpm_floor = 60.0/this.BPM_MAX;
2163     var bpm_ceil = 60.0/this.BPM_MIN;
2164     
2165     var range_step = (fft_data.length / this.config.BD_DETECTION_RANGES);
2166     var range = 0;
2167     
2168         
2169     for (x=0; x<fft_data.length; x+=range_step)
2170     {
2171         this.a_freq_range[range] = 0;
2172         
2173         // accumulate frequency values for this range
2174         for (i = x; i<x+range_step; i++)
2175         {
2176             v = Math.abs(fft_data[i]);
2177             this.a_freq_range[range] += v;
2178         }
2179         
2180         // average for range
2181         this.a_freq_range[range] /= range_step;
2182         
2183         // two sets of averages chase this one at a 
2184         
2185         // moving average, increment closer to a_freq_range at a rate of 1.0 / BD_DETECTION_RATE seconds
2186         this.ma_freq_range[range] -= (this.ma_freq_range[range]-this.a_freq_range[range])*this.last_update*this.config.BD_DETECTION_RATE;
2187         // moving average of moving average, increment closer to this.ma_freq_range at a rate of 1.0 / BD_DETECTION_RATE seconds
2188         this.maa_freq_range[range] -= (this.maa_freq_range[range]-this.ma_freq_range[range])*this.last_update*this.config.BD_DETECTION_RATE;
2189         
2190         // if closest moving average peaks above trailing (with a tolerance of BD_DETECTION_FACTOR) then trigger a detection for this range 
2191         var det = (this.ma_freq_range[range]*this.config.BD_DETECTION_FACTOR >= this.maa_freq_range[range]);
2192         
2193         // compute bpm clamps for comparison to gap lengths
2194         
2195         // clamp detection averages to input ranges
2196         if (this.ma_bpm_range[range] > bpm_ceil) this.ma_bpm_range[range] = bpm_ceil;
2197         if (this.ma_bpm_range[range] < bpm_floor) this.ma_bpm_range[range] = bpm_floor;
2198         if (this.maa_bpm_range[range] > bpm_ceil) this.maa_bpm_range[range] = bpm_ceil;
2199         if (this.maa_bpm_range[range] < bpm_floor) this.maa_bpm_range[range] = bpm_floor;
2200             
2201         var rewarded = false;
2202         
2203         // new detection since last, test it's quality
2204         if (!this.detection[range] && det)
2205         {
2206             // calculate length of gap (since start of last trigger)
2207             var trigger_gap = timestamp-this.last_detection[range];
2208             
2209             // trigger falls within acceptable range, 
2210             if (trigger_gap < bpm_ceil && trigger_gap > (bpm_floor))
2211             {       
2212                 // compute gap and award quality
2213                 
2214                 // use our tolerances as a funnel to edge detection towards the most likely value
2215                 for (i = 0; i < this.config.BD_REWARD_TOLERANCES.length; i++)
2216                 {
2217                     if (Math.abs(this.ma_bpm_range[range]-trigger_gap) < this.ma_bpm_range[range]*this.config.BD_REWARD_TOLERANCES[i])
2218                     {
2219                         this.detection_quality[range] += this.config.BD_QUALITY_REWARD * this.config.BD_REWARD_MULTIPLIERS[i]; 
2220                         rewarded = true;
2221                     }
2222                 }               
2223                 
2224                 if (rewarded) 
2225                 {
2226                     this.last_detection[range] = timestamp;
2227                 }
2228             }
2229             else if (trigger_gap >= bpm_ceil) // low quality, gap exceeds maximum time
2230             {
2231                 // start a new gap test, next gap is guaranteed to be longer
2232                 
2233                 // test for 1/2 beat
2234                 trigger_gap /= 2.0;
2236                 if (trigger_gap < bpm_ceil && trigger_gap > (bpm_floor)) for (i = 0; i < this.config.BD_REWARD_TOLERANCES.length; i++)
2237                 {
2238                     if (Math.abs(this.ma_bpm_range[range]-trigger_gap) < this.ma_bpm_range[range]*this.config.BD_REWARD_TOLERANCES[i])
2239                     {
2240                         this.detection_quality[range] += this.config.BD_QUALITY_REWARD * this.config.BD_REWARD_MULTIPLIERS[i]; 
2241                         rewarded = true;
2242                     }
2243                 }
2244                 
2245                 
2246                 // decrement quality if no 1/2 beat reward
2247                 if (!rewarded) 
2248                 {
2249                     trigger_gap *= 2.0;
2250                 }
2251                 this.last_detection[range] = timestamp; 
2252             }
2253             
2254             if (rewarded)
2255             {
2256                 var qmp = (this.detection_quality[range]/this.quality_avg)*this.config.BD_QUALITY_STEP;
2257                 if (qmp > 1.0)
2258                 {
2259                     qmp = 1.0;
2260                 }
2262                 this.ma_bpm_range[range] -= (this.ma_bpm_range[range]-trigger_gap) * qmp;               
2263                 this.maa_bpm_range[range] -= (this.maa_bpm_range[range]-this.ma_bpm_range[range]) * qmp;
2264             }
2265             else if (trigger_gap >= bpm_floor && trigger_gap <= bpm_ceil)
2266             {
2267                 if (this.detection_quality[range] < this.quality_avg*this.config.BD_QUALITY_TOLERANCE && this.current_bpm)
2268                 {
2269                     this.ma_bpm_range[range] -= (this.ma_bpm_range[range]-trigger_gap) * this.config.BD_QUALITY_STEP;
2270                     this.maa_bpm_range[range] -= (this.maa_bpm_range[range]-this.ma_bpm_range[range]) * this.config.BD_QUALITY_STEP;
2271                 }
2272                 this.detection_quality[range] -= this.config.BD_QUALITY_STEP;
2273             }
2274             else if (trigger_gap >= bpm_ceil)
2275             {
2276                 if ((this.detection_quality[range] < this.quality_avg*this.config.BD_QUALITY_TOLERANCE) && this.current_bpm)
2277                 {
2278                     this.ma_bpm_range[range] -= (this.ma_bpm_range[range]-this.current_bpm) * 0.5;
2279                     this.maa_bpm_range[range] -= (this.maa_bpm_range[range]-this.ma_bpm_range[range]) * 0.5 ;
2280                 }
2281                 this.detection_quality[range]-= this.config.BD_QUALITY_STEP;
2282             }
2283             
2284         }
2285                 
2286         if ((!rewarded && timestamp-this.last_detection[range] > bpm_ceil) || (det && Math.abs(this.ma_bpm_range[range]-this.current_bpm) > this.bpm_offset)) 
2287             this.detection_quality[range] -= this.detection_quality[range]*this.config.BD_QUALITY_STEP*this.config.BD_QUALITY_DECAY*this.last_update;
2288         
2289         // quality bottomed out, set to 0
2290         if (this.detection_quality[range] < 0.001) this.detection_quality[range]=0.001;
2291                 
2292         this.detection[range] = det;        
2293         
2294         range++;
2295     }
2296         
2297     // total contribution weight
2298     this.quality_total = 0;
2299     
2300     // total of bpm values
2301     var bpm_total = 0;
2302     // number of bpm ranges that contributed to this test
2303     var bpm_contributions = 0;
2304     
2305     
2306     // accumulate quality weight total
2307     for (var x=0; x<this.config.BD_DETECTION_RANGES; x++)
2308     {
2309         this.quality_total += this.detection_quality[x];
2310     }
2311     
2312     
2313     this.quality_avg = this.quality_total / this.config.BD_DETECTION_RANGES;
2314     
2315     
2316     if (this.quality_total)
2317     {
2318         // determine the average weight of each quality range
2319         this.ma_quality_avg += (this.quality_avg - this.ma_quality_avg) * this.last_update * this.config.BD_DETECTION_RATE/2.0;
2321         this.maa_quality_avg += (this.ma_quality_avg - this.maa_quality_avg) * this.last_update;
2322         this.ma_quality_total += (this.quality_total - this.ma_quality_total) * this.last_update * this.config.BD_DETECTION_RATE/2.0;
2324         this.ma_quality_avg -= 0.98*this.ma_quality_avg*this.last_update*3.0;
2325     }
2326     else
2327     {
2328         this.quality_avg = 0.001;
2329     }
2331     if (this.ma_quality_total <= 0) this.ma_quality_total = 0.001;
2332     if (this.ma_quality_avg <= 0) this.ma_quality_avg = 0.001;
2333     
2334     var avg_bpm_offset = 0.0;
2335     var offset_test_bpm = this.current_bpm;
2336     var draft = new Array();
2337     
2338     if (this.quality_avg) for (x=0; x<this.config.BD_DETECTION_RANGES; x++)
2339     {
2340         // if this detection range weight*tolerance is higher than the average weight then add it's moving average contribution 
2341         if (this.detection_quality[x]*this.config.BD_QUALITY_TOLERANCE >= this.ma_quality_avg)
2342         {
2343             if (this.ma_bpm_range[x] < bpm_ceil && this.ma_bpm_range[x] > bpm_floor)
2344             {
2345                 bpm_total += this.maa_bpm_range[x];
2347                 var draft_float = Math.round((60.0/this.maa_bpm_range[x])*1000.0);
2348                 
2349                 draft_float = (Math.abs(Math.ceil(draft_float)-(60.0/this.current_bpm)*1000.0)<(Math.abs(Math.floor(draft_float)-(60.0/this.current_bpm)*1000.0)))?Math.ceil(draft_float/10.0):Math.floor(draft_float/10.0);
2350                 var draft_int = parseInt(draft_float/10.0);
2351             //  if (draft_int) console.log(draft_int);
2352                 if (typeof(draft[draft_int]=='undefined')) draft[draft_int] = 0;
2353                 
2354                 draft[draft_int]+=this.detection_quality[x]/this.quality_avg;
2355                 bpm_contributions++;
2356                 if (offset_test_bpm == 0.0) offset_test_bpm = this.maa_bpm_range[x];
2357                 else 
2358                 {
2359                     avg_bpm_offset += Math.abs(offset_test_bpm-this.maa_bpm_range[x]);
2360                 }
2361                 
2362                 
2363             }
2364         }
2365     }
2366         
2367     // if we have one or more contributions that pass criteria then attempt to display a guess
2368     var has_prediction = (bpm_contributions>=this.config.BD_MINIMUM_CONTRIBUTIONS)?true:false;
2370     var draft_winner=0;
2371     var win_val = 0;
2372     
2373     if (has_prediction) 
2374     {
2375         for (var draft_i in draft)
2376         {
2377             if (draft[draft_i] > win_val)
2378             {
2379                 win_val = draft[draft_i];
2380                 draft_winner = draft_i;
2381             }
2382         }
2383         
2384         this.bpm_predict = 60.0/(draft_winner/10.0);
2385         
2386         avg_bpm_offset /= bpm_contributions;
2387         this.bpm_offset = avg_bpm_offset;
2388         
2389         if (!this.current_bpm)  
2390         {
2391             this.current_bpm = this.bpm_predict; 
2392         }
2393     }
2394         
2395     if (this.current_bpm && this.bpm_predict) this.current_bpm -= (this.current_bpm-this.bpm_predict)*this.last_update; 
2396     
2397     // hold a contest for bpm to find the current mode
2398     var contest_max=0;
2399     
2400     for (var contest_i in this.bpm_contest)
2401     {
2402         if (contest_max < this.bpm_contest[contest_i]) contest_max = this.bpm_contest[contest_i]; 
2403         if (this.bpm_contest[contest_i] > this.config.BD_FINISH_LINE/2.0)
2404         {
2405             var draft_int_lo = parseInt(Math.round((contest_i)/10.0));
2406             if (this.bpm_contest_lo[draft_int_lo] != this.bpm_contest_lo[draft_int_lo]) this.bpm_contest_lo[draft_int_lo] = 0;
2407             this.bpm_contest_lo[draft_int_lo]+= (this.bpm_contest[contest_i]/6.0)*this.last_update;
2408         }
2409     }
2410         
2411     // normalize to a finish line
2412     if (contest_max > this.config.BD_FINISH_LINE) 
2413     {
2414         for (var contest_i in this.bpm_contest)
2415         {
2416             this.bpm_contest[contest_i]=(this.bpm_contest[contest_i]/contest_max)*this.config.BD_FINISH_LINE;
2417         }
2418     }
2420     contest_max = 0;
2421     for (var contest_i in this.bpm_contest_lo)
2422     {
2423         if (contest_max < this.bpm_contest_lo[contest_i]) contest_max = this.bpm_contest_lo[contest_i]; 
2424     }
2426     // normalize to a finish line
2427     if (contest_max > this.config.BD_FINISH_LINE) 
2428     {
2429         for (var contest_i in this.bpm_contest_lo)
2430         {
2431             this.bpm_contest_lo[contest_i]=(this.bpm_contest_lo[contest_i]/contest_max)*this.config.BD_FINISH_LINE;
2432         }
2433     }
2435     
2436     // decay contest values from last loop
2437     for (contest_i in this.bpm_contest)
2438     {
2439         this.bpm_contest[contest_i]-=this.bpm_contest[contest_i]*(this.last_update/this.config.BD_DETECTION_RATE);
2440     }
2441     
2442     // decay contest values from last loop
2443     for (contest_i in this.bpm_contest_lo)
2444     {
2445         this.bpm_contest_lo[contest_i]-=this.bpm_contest_lo[contest_i]*(this.last_update/this.config.BD_DETECTION_RATE);
2446     }
2447     
2448     this.bpm_timer+=this.last_update;
2449     
2450     var winner = 0;
2451     var winner_lo = 0;
2452     
2453     // attempt to display the beat at the beat interval ;)
2454     if (this.bpm_timer > this.winning_bpm/4.0 && this.current_bpm)
2455     {       
2456         this.win_val = 0;
2457         this.win_val_lo = 0;
2459         if (this.winning_bpm) while (this.bpm_timer > this.winning_bpm/4.0) this.bpm_timer -= this.winning_bpm/4.0;
2460         
2461         // increment beat counter
2462         
2463         this.quarter_counter++;     
2464         this.half_counter= parseInt(this.quarter_counter/2);
2465         this.beat_counter = parseInt(this.quarter_counter/4);
2466         
2467         // award the winner of this iteration
2468         var idx = parseInt(Math.round((60.0/this.current_bpm)*10.0));
2469         if (typeof(this.bpm_contest[idx])=='undefined') this.bpm_contest[idx] = 0;
2470         this.bpm_contest[idx]+=this.config.BD_QUALITY_REWARD;
2471         
2472         
2473         // find the overall winner so far
2474         for (var contest_i in this.bpm_contest)
2475         {
2476             if (this.win_val < this.bpm_contest[contest_i])
2477             {
2478                 winner = contest_i;
2479                 this.win_val = this.bpm_contest[contest_i];
2480             }
2481         }
2482         
2483         if (winner)
2484         {
2485             this.win_bpm_int = parseInt(winner);
2486             this.winning_bpm = (60.0/(winner/10.0));
2487         }
2488         
2489         // find the overall winner so far
2490         for (var contest_i in this.bpm_contest_lo)
2491         {
2492             if (this.win_val_lo < this.bpm_contest_lo[contest_i])
2493             {
2494                 winner_lo = contest_i;
2495                 this.win_val_lo = this.bpm_contest_lo[contest_i];
2496             }
2497         }
2498         
2499         if (winner_lo)
2500         {
2501             this.win_bpm_int_lo = parseInt(winner_lo);
2502             this.winning_bpm_lo = 60.0/winner_lo;
2503         }
2504         
2505         
2506         //if (typeof(console)!='undefined' && (this.beat_counter % 4) == 0) console.log("BeatDetektor("+this.BPM_MIN+","+this.BPM_MAX+"): [ Current Estimate: "+winner+" BPM ] [ Time: "+(parseInt(timer_seconds*1000.0)/1000.0)+"s, Quality: "+(parseInt(this.quality_total*1000.0)/1000.0)+", Rank: "+(parseInt(this.win_val*1000.0)/1000.0)+", Jitter: "+(parseInt(this.bpm_offset*1000000.0)/1000000.0)+" ]");
2507     }
2511 // Sample Modules
2512 BeatDetektor.modules = new Object(); 
2513 BeatDetektor.modules.vis = new Object();
2515 // simple bass kick visualizer assistant module
2516 BeatDetektor.modules.vis.BassKick = function()
2518     this.is_kick = false;
2521 BeatDetektor.modules.vis.BassKick.prototype.process = function(det)
2523     this.is_kick = ((det.detection[0] && det.detection[1]) || (det.ma_freq_range[0]/det.maa_freq_range[0])>1.4);
2526 BeatDetektor.modules.vis.BassKick.prototype.isKick = function()
2528     return this.is_kick;
2532 // simple vu spectrum visualizer assistant module
2533 BeatDetektor.modules.vis.VU = function()
2535     this.vu_levels = new Array();   
2538 BeatDetektor.modules.vis.VU.prototype.process = function(det,lus)
2540         var i,det_val,det_max = 0.0;
2541         if (typeof(lus)=='undefined') lus = det.last_update;
2543         for (i = 0; i < det.config.BD_DETECTION_RANGES; i++)
2544         {
2545             det_val = (det.ma_freq_range[i]/det.maa_freq_range[i]); 
2546             if (det_val > det_max) det_max = det_val;
2547         }       
2549         if (det_max <= 0) det_max = 1.0;
2551         for (i = 0; i < det.config.BD_DETECTION_RANGES; i++)
2552         {
2553             det_val = (det.ma_freq_range[i]/det.maa_freq_range[i]); //fabs(fftData[i*2]/2.0);
2555             if (det_val != det_val) det_val = 0;
2557             //&& (det_val > this.vu_levels[i])
2558             if (det_val>1.0)
2559             {
2560                 det_val -= 1.0;
2561                 if (det_val>1.0) det_val = 1.0;
2563                 if (det_val > this.vu_levels[i]) 
2564                     this.vu_levels[i] = det_val;
2565                 else if (det.current_bpm) this.vu_levels[i] -= (this.vu_levels[i]-det_val)*lus*(1.0/det.current_bpm)*3.0;
2566             }
2567             else 
2568             {
2569                 if (det.current_bpm) this.vu_levels[i] -= (lus/det.current_bpm)*2.0;
2570             }
2572             if (this.vu_levels[i] < 0 || this.vu_levels[i] != this.vu_levels[i]) this.vu_levels[i] = 0;
2573         }
2577 // returns vu level for BD_DETECTION_RANGES range[x]
2578 BeatDetektor.modules.vis.VU.prototype.getLevel = function(x)
2580     return this.vu_levels[x];