Repository: BETSRG/GHEDesigner (language: python)

Issue:
Expose DesignRowWise design method via API
Issue overview
--------------
Expose DesignRowWise design method via API prior to the initial release milestone.



Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index 1f6ab664..2f3000ad 100644
--- a/README.md
+++ b/README.md
@@ -92,6 +92,7 @@ GHEDesigner is supported for Python versions >= 3.8, and is tested with Python 3
 the following packages:
 
 - [click][#click] (>=8.1.3)
+- [jsonschema][#jsonschema] (>=4.17.3)
 - [numpy][#numpy] (>=1.24.2)
 - [opencv-python][#opencv] (==4.7.0.68)
 - [pygfunction][#pygfunction] (>=2.2.2)
@@ -168,6 +169,8 @@ NJ. https://hvac.okstate.edu/sites/default/files/pubs/papers/2006/07-Xu_Spitler_
 
 [#click]: https://click.palletsprojects.com/en/8.1.x/
 
+[#jsonschema]: https://pypi.org/project/jsonschema/
+
 [#pip]: https://pip.pypa.io/en/latest/
 
 [#create]: https://github.com/betsrg/ghedesigner/issues/new
diff --git a/demos/find_design_rowwise_single_u_tube.json b/demos/find_design_rowwise_single_u_tube.json
new file mode 100644
index 00000000..d8979cd5
--- /dev/null
+++ b/demos/find_design_rowwise_single_u_tube.json
@@ -0,0 +1,8847 @@
+{
+  "version": "0.5",
+  "fluid": {
+    "fluid_name": "Water",
+    "concentration_percent": 0.0
+  },
+  "grout": {
+    "conductivity": 1.0,
+    "rho_cp": 3901000
+  },
+  "soil": {
+    "conductivity": 2.0,
+    "rho_cp": 2343493,
+    "undisturbed_temp": 18.3
+  },
+  "pipe": {
+    "inner_radius": 0.0108,
+    "outer_radius": 0.0133,
+    "shank_spacing": 0.0323,
+    "roughness": 0.000001,
+    "conductivity": 0.4,
+    "rho_cp": 1542000,
+    "arrangement": "singleutube"
+  },
+  "borehole": {
+    "buried_depth": 2.0,
+    "radius": 0.075
+  },
+  "simulation": {
+    "num_months": 240,
+    "timestep": "hybrid"
+  },
+  "geometric_constraints": {
+    "perimeter_spacing_ratio": 0.8,
+    "spacing_start": 10.0,
+    "spacing_stop": 20.0,
+    "spacing_step": 0.1,
+    "rotate_start": -90.0,
+    "rotate_stop": 0.0,
+    "rotate_step": 0.5,
+    "max_height": 135.0,
+    "min_height": 60.0,
+    "property_boundary": [
+      [19.46202532, 108.8860759],
+      [19.67827004, 94.46835443],
+      [24.65189873, 75.3164557],
+      [37.19409283, 56.59493671],
+      [51.68248945, 45.83544304],
+      [84.33544304, 38.94936709],
+      [112.0147679, 38.94936709],
+      [131.0443038, 35.50632911],
+      [147.2626582, 28.83544304],
+      [160.8860759, 18.07594937],
+      [171.6983122, 18.29113924],
+      [167.157173, 72.94936709],
+      [169.1033755, 80.48101266],
+      [177.3206751, 99.63291139],
+      [182.2943038, 115.7721519],
+      [182.2943038, 121.3670886],
+      [155.0474684, 118.5696203],
+      [53.19620253, 112.3291139]
+    ],
+    "no_go_boundaries": [[
+      [74.38818565, 80.69620253],
+      [73.0907173, 53.36708861],
+      [93.85021097, 52.50632911],
+      [120.0158228, 53.15189873],
+      [121.5295359, 62.18987342],
+      [128.8818565, 63.26582278],
+      [128.8818565, 78.5443038],
+      [129.0981013, 80.91139241],
+      [108.5548523, 81.34177215],
+      [104.0137131, 110],
+      [95.58016878, 110],
+      [95.7964135, 81.7721519]
+    ]],
+    "method": "rowwise"
+  },
+  "design": {
+    "flow_rate": 0.2,
+    "flow_type": "borehole",
+    "max_eft": 35.0,
+    "min_eft": 5.0
+  },
+  "ground_loads": [
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    88964.3734177778,
+    122073.202982222,
+    63902.6904222222,
+    52317.2963288889,
+    41514.9882444444,
+    29434.3039733333,
+    32753.9204488889,
+    17284.982448,
+    15288.7578817778,
+    11017.8325795556,
+    8217.36227022222,
+    32409.2688222222,
+    51278.9453822222,
+    55786.086,
+    58907.0002622222,
+    59597.7688711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    41261.1886622222,
+    94426.0466444445,
+    39088.0663733333,
+    22820.2751377778,
+    3928.03210222222,
+    -3923.54811422222,
+    13260.5006431111,
+    -19509.30426,
+    -27926.1600355556,
+    -22575.6779884444,
+    -14158.1774564444,
+    21174.6808488889,
+    22526.9402626667,
+    39041.1749955556,
+    49278.1489066667,
+    57193.9996177778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    75889.8850088889,
+    129885.599591111,
+    69544.6023822222,
+    50567.6617955556,
+    28604.0042084444,
+    9723.54263155556,
+    14641.9499395556,
+    -15588.188636,
+    -24385.9782417778,
+    -20769.2755808889,
+    -13236.4395048889,
+    23332.5927471111,
+    44427.2358755555,
+    57191.6550488889,
+    69121.7007688889,
+    77919.1093822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    18264.0158017778,
+    86297.7193777778,
+    141136.013404444,
+    82539.9615911111,
+    64681.0872933333,
+    51027.4903688889,
+    35500.8759733333,
+    39895.7703555556,
+    23758.6888355556,
+    18831.9876151111,
+    16533.8411902222,
+    14627.9997546667,
+    41958.1117644445,
+    63313.3244177778,
+    69317.4722711111,
+    73835.1634488889,
+    77274.6460088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    78453.96416,
+    133601.74128,
+    119131.355168889,
+    104141.94012,
+    94641.7469822222,
+    86884.1546711111,
+    86776.0114311111,
+    86429.8944488889,
+    85929.6220622222,
+    87441.5759244445,
+    93968.2695688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    12990.5821497778,
+    14682.5989026667,
+    14619.2076213333,
+    14677.2357013333,
+    14371.18154,
+    3897.61132088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    8801.13061644444,
+    12797.82928,
+    13262.9331333333,
+    13595.979144,
+    68476.9443244444,
+    151989.608933333,
+    175980.410088889,
+    126174.440111111,
+    99703.9642844445,
+    73253.4172933333,
+    55307.2078044444,
+    45939.4828088889,
+    24878.1032515556,
+    11603.1248955556,
+    12236.0705742222,
+    224.653953293333,
+    38597.1722622222,
+    57383.6166266667,
+    69498.0040755556,
+    77745.3182133333,
+    84529.3282933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    6933.06604711111,
+    99460.7152622222,
+    153355.320311111,
+    97590.04236,
+    75572.1959244444,
+    58324.3748933333,
+    27107.0848942222,
+    21543.3056924445,
+    0,
+    -21944.5493506667,
+    -26846.163684,
+    -27160.834136,
+    12674.2998066667,
+    34262.0643866667,
+    50241.1805777778,
+    65188.1003155556,
+    73411.3826222222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    86810.3007511111,
+    138299.37812,
+    70408.5760177778,
+    41696.1061911111,
+    8072.58514133333,
+    -1906.89063013333,
+    -12989.9080862222,
+    -23864.2237426667,
+    -32266.8362622222,
+    -33333.9081777778,
+    -28793.4453746667,
+    7430.70079377778,
+    16430.5922377778,
+    29677.2599244444,
+    46644.3188311111,
+    60608.2780622222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    79698.3440977778,
+    127704.271311111,
+    65651.1526711111,
+    39199.4333955556,
+    15841.1969262222,
+    -4769.46856933333,
+    13448.0368471111,
+    -9911.43052088889,
+    -27850.3425391111,
+    -30625.3449688889,
+    -25635.0473173333,
+    6017.68773866667,
+    8435.67094088889,
+    22427.7943057778,
+    32530.6002622222,
+    37846.9102177778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    18665.786988,
+    75233.1126488889,
+    25548.0051973333,
+    11640.0811626667,
+    1866.1303,
+    0,
+    5645.54604177778,
+    -25981.6918275555,
+    -31033.8860977778,
+    -28908.3878644444,
+    -23248.4813382222,
+    -705.791434044444,
+    26969.2242435556,
+    39034.7274311111,
+    54631.6788933333,
+    67639.9332311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    20573.2989288889,
+    94228.5167155556,
+    147449.937422222,
+    118903.345844444,
+    87726.4410444445,
+    70720.40368,
+    49318.0065777778,
+    41806.594,
+    35245.0248933333,
+    31750.7380355556,
+    29839.3282488889,
+    32946.76124,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    63225.1100133333,
+    116162.251742222,
+    58147.3599422222,
+    46259.2233911111,
+    34594.9931688889,
+    22900.2249368889,
+    23444.0476906667,
+    8618.43008577778,
+    6449.557328,
+    3203.32585866667,
+    934.395692844444,
+    23198.3661782222,
+    43016.3915466667,
+    46922.7363866667,
+    51682.2112311111,
+    54425.9429733333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    27703.4259911111,
+    80129.7447733333,
+    24337.2991302222,
+    11511.2177951111,
+    -780.0556536,
+    3080.32391333333,
+    4063.98779066667,
+    -17188.708588,
+    -25987.611864,
+    -35929.3459377778,
+    -38302.6357955556,
+    0,
+    0,
+    9146.544228,
+    15054.7405995556,
+    19760.3196666667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -13526.3161408889,
+    16871.8401026667,
+    0,
+    -27126.5741231111,
+    -13303.9337817778,
+    -16353.4852284444,
+    -20572.1559515556,
+    -21302.0495537778,
+    -40322.7749644445,
+    -75202.3401822222,
+    -79782.7485777778,
+    -41123.7383111111,
+    -6700.16243511111,
+    -2181.97303644444,
+    -778.1565528,
+    -2088.15511235556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -191.082071373333,
+    -15516.8258204444,
+    -32980.1713466667,
+    -32443.5581422222,
+    -15160.8323417778,
+    -18214.8384693333,
+    -27473.130712,
+    -33280.8623066667,
+    -70771.9841955556,
+    -83326.2713822222,
+    -85492.6530355556,
+    -43300.3774533333,
+    -10490.8614146667,
+    -2572.19135946667,
+    -2828.13915293333,
+    -7847.00830711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10136.5091342222,
+    29068.8442977778,
+    30558.8178266667,
+    18813.8758204445,
+    12087.1904497778,
+    7378.73928577778,
+    12094.9275271111,
+    7333.10811377778,
+    -847.365295688889,
+    4279.48297866667,
+    3748.26228266667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    16299.3256871111,
+    73783.8760044445,
+    130205.633244444,
+    53613.8429244445,
+    25291.3335182222,
+    3083.31323866667,
+    6512.62623111111,
+    -7082.03409288889,
+    -29622.4556266667,
+    -38657.8379822222,
+    -42871.9074888889,
+    -34973.0549022222,
+    -13752.5084244444,
+    2313.63816382222,
+    7828.45690577778,
+    26505.5564386667,
+    39588.9249022222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    41745.0490666667,
+    100216.252586667,
+    33500.9587111111,
+    9357.43819955556,
+    4123.83291155556,
+    -13011.741884,
+    -16365.8235222222,
+    -36592.5658622222,
+    -10110.3964982222,
+    -7845.51364444444,
+    -8836.97321333333,
+    -15038.9440666667,
+    0,
+    -1800.7959572,
+    11574.1694697778,
+    19879.8047586667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    61513.5747244444,
+    40284.9687911111,
+    23324.0057635556,
+    14658.8601426667,
+    -3981.13658755556,
+    3209.30450933333,
+    -19331.1170244444,
+    -32549.0637422222,
+    -37182.2249377778,
+    -28859.5329102222,
+    7429.93880888889,
+    3220.55844,
+    23090.1057097778,
+    38415.4681733333,
+    47490.4151288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    72077.0298533333,
+    133462.239431111,
+    63956.0293644445,
+    43974.73408,
+    22637.6918355556,
+    6478.835132,
+    13707.0530951111,
+    -2686.62976693333,
+    -29735.5810755556,
+    -35753.2102,
+    -30325.8262933333,
+    13258.7129093333,
+    36070.3131422222,
+    46987.7981733333,
+    60952.0504755556,
+    71662.9203733333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    20551.8168164444,
+    93398.5393288889,
+    148270.829604444,
+    77011.4681511111,
+    52111.5604088889,
+    25851.0993404444,
+    9133.41464222222,
+    13904.7295595556,
+    -20776.2799804444,
+    -34751.7862133333,
+    -35649.4630266667,
+    -23262.4315231111,
+    340.422610533333,
+    27692.5530528889,
+    37877.6826844444,
+    53375.5761111111,
+    64355.1922177778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    10209.6303764444,
+    80581.3673555556,
+    134642.729866667,
+    100967.686915556,
+    67513.03344,
+    37703.3053733333,
+    23547.3552573333,
+    25341.9468991111,
+    4929.51470311111,
+    -6441.11688,
+    -7250.93097422222,
+    -6577.39494666667,
+    -134.72010064,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4708.04086444444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    8875.42414311111,
+    71883.3098488889,
+    16228.0214857778,
+    4217.058832,
+    -13238.3444671111,
+    -12116.3217182222,
+    -23985.7017182222,
+    -25693.0753973333,
+    -29758.1475511111,
+    -32481.9504577778,
+    -48911.5169466667,
+    -22465.9228573333,
+    -42.6655854266667,
+    -1654.4860664,
+    -1194.72783013333,
+    -13008.312952,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5630.833872,
+    10992.4233142222,
+    -1683.605612,
+    -19244.1628257778,
+    -18341.6503391111,
+    -26832.6824128889,
+    -39124.9933333333,
+    -75759.1752933333,
+    -87977.8960577778,
+    -97853.2202177778,
+    -101654.6456,
+    -59547.6537111111,
+    -21993.8439115556,
+    -12587.3749151111,
+    -2932.35230933333,
+    -1768.14490471111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -21866.2700568889,
+    46789.6821022222,
+    40494.8077066667,
+    6372.94853955556,
+    5685.02272044445,
+    1040.01852128889,
+    29643.8498177778,
+    7491.27859244444,
+    -10524.9455848889,
+    -19007.7716675556,
+    -35971.5481777778,
+    1888.08132622222,
+    -12761.7522262222,
+    -3890.40177155556,
+    -3137.41416577778,
+    8061.56566755556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    9592.48123066667,
+    83718.1074577778,
+    30303.2598177778,
+    16276.4661404445,
+    -5337.64553244444,
+    -10304.6440306667,
+    15828.741404,
+    -18685.4813666667,
+    -44011.0748977778,
+    -39932.4042444444,
+    -28314.8602502222,
+    10977.6818373333,
+    36203.0743555556,
+    52154.9349333333,
+    65790.9475911111,
+    76291.9785733333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    22638.1607493333,
+    100633.292777778,
+    158350.424328889,
+    87668.4129644445,
+    59119.7698888889,
+    33730.4333911111,
+    7968.10529022222,
+    22622.7159017778,
+    0,
+    -19181.2404582222,
+    -28865.6874035556,
+    -22652.4333124444,
+    18673.17238,
+    38572.5542888889,
+    51277.1869555556,
+    65865.9737955556,
+    77114.3361111111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    19058.7074266667,
+    95045.0128311111,
+    145842.149306667,
+    121280.738697778,
+    82700.2714888889,
+    59968.7968977778,
+    38319.63392,
+    36258.4647955556,
+    31317.5789333333,
+    24132.7354946667,
+    14317.1685342222,
+    18670.0658262222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    14780.4260395556,
+    90280.8488488889,
+    137288.282786667,
+    77176.1741155556,
+    61711.3977244444,
+    47878.7343511111,
+    32201.1883333333,
+    29266.9310617778,
+    7380.76147644445,
+    -10485.6154417778,
+    -17548.2775342222,
+    -3768.60141777778,
+    0,
+    30193.6512222222,
+    39255.99612,
+    44657.2966977778,
+    50613.9670311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    43510.8025111111,
+    98452.8437111111,
+    42554.8045466667,
+    29309.1626088889,
+    20198.255828,
+    8785.451312,
+    29833.7598977778,
+    15588.0421004444,
+    -5773.38366044444,
+    6882.04236666667,
+    5466.68474266667,
+    30846.0275155556,
+    30970.8758088889,
+    39423.0466533333,
+    43727.9682044444,
+    48123.1556577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    8187.55693822222,
+    56505.8686488889,
+    33359.4053644444,
+    15438.6930622222,
+    2146.97741506667,
+    -3204.43952888889,
+    -2757.35075675555,
+    -25895.0893142222,
+    -37259.5957111111,
+    -28277.0247697778,
+    -35699.2851155555,
+    -10864.43916,
+    2117.74064102222,
+    9863.39616577778,
+    32992.7734044444,
+    46989.5566,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    78484.4435555556,
+    137739.026155556,
+    53077.5227911111,
+    23093.3587991111,
+    -4517.95494177778,
+    0,
+    -11521.9148906667,
+    -35254.9893111111,
+    -22933.488508,
+    -10875.1948697778,
+    -8375.47413466667,
+    -17476.2699622222,
+    -10330.6394382222,
+    3302.97003644445,
+    17338.0576262222,
+    26267.6413106667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    5990.78381066667,
+    63924.9638266667,
+    43227.1096755556,
+    10271.5856093333,
+    5924.25666844444,
+    13820.969836,
+    15317.6253862222,
+    -116.993108342222,
+    -5212.12317555555,
+    -7858.93630133333,
+    -7913.24237822222,
+    22036.8960577778,
+    17776.6678511111,
+    27385.2386857778,
+    29390.3433066667,
+    31987.8325644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3371.46075511111,
+    29332.0221555556,
+    32797.0019022222,
+    33287.3098711111,
+    42957.4842533333,
+    51200.9884666667,
+    54518.8465155556,
+    52105.9920577778,
+    56329.43984,
+    61921.23664,
+    66213.5561333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    17361.737772,
+    19848.3582284444,
+    20870.7367995556,
+    22360.1828004444,
+    23280.2795537778,
+    23033.5722924444,
+    16250.9982608889,
+    9359.31385466667,
+    7162.89241244445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    4105.92626666667,
+    7222.47376933333,
+    68003.0483377778,
+    147921.781911111,
+    180003.397231111,
+    113331.184808889,
+    76657.73132,
+    46752.4620711111,
+    14841.8830515555,
+    18315.8014671111,
+    -904.827748444445,
+    -26393.2222817778,
+    -24993.221584,
+    -24251.9861297778,
+    11180.0181324445,
+    30216.5107688889,
+    42175.8636,
+    51767.7879955556,
+    57523.9976888889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    61644.5775111111,
+    117151.073671111,
+    48611.9982711111,
+    20134.6593968889,
+    -4745.02643866667,
+    -1194.97107915556,
+    -13879.9064364444,
+    -35990.8908711111,
+    -17204.9740346667,
+    -18012.9417808889,
+    -17394.5910435556,
+    -15063.0931262222,
+    -20796.8535724444,
+    0,
+    13764.4364186667,
+    27304.1459093333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    20532.6206586667,
+    79060.62136,
+    25411.815052,
+    23062.732868,
+    1979.42279942222,
+    -18218.8242364444,
+    -16717.0106346667,
+    -3835.392324,
+    -9665.01633066667,
+    -17047.3603911111,
+    -25913.0545733333,
+    -15926.4513124445,
+    -2055.67404111111,
+    -1967.8640748,
+    -15031.5586746667,
+    -12885.398928,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -13830.1136546667,
+    18834.5080266667,
+    8988.52028488889,
+    -16676.2444431111,
+    -21886.6971133333,
+    -13886.3246937778,
+    -17971.5308328889,
+    -32864.1151866667,
+    -66610.3744177778,
+    -82380.8239777778,
+    -99216.5870266667,
+    -54502.4345333333,
+    -18160.415164,
+    -6028.35552711111,
+    -704.217642177778,
+    -1901.66810293333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -238.832733648889,
+    -5325.24862444445,
+    -37605.1265511111,
+    -29937.5070711111,
+    -26544.7400462222,
+    -20154.3244684444,
+    -21740.3667075556,
+    -26430.9405337778,
+    -22140.0277817778,
+    -23904.1693351111,
+    -28128.8773231111,
+    -25146.4098537778,
+    -10371.0246373333,
+    -9411.74427644445,
+    -13110.5947697778,
+    -10395.4081537778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -2390.9679072,
+    -4482.81571555556,
+    -9504.999504,
+    -15619.4886306667,
+    -20231.1090995555,
+    -11164.0164497778,
+    -10339.021272,
+    -10337.3800737778,
+    -16061.4398662222,
+    -14721.2549822222,
+    -424.273186133333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9135.70059688889,
+    -11355.2160426667,
+    -12126.4619786667,
+    -11638.5865,
+    -7201.98809866667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10797.443104,
+    4788.16650622222,
+    -15495.8126217778,
+    -27206.3773866667,
+    -34430.8733466667,
+    -52828.1192755556,
+    -83881.0549955556,
+    -120761.123617778,
+    -143668.440875556,
+    -148461.618897778,
+    -145847.131515555,
+    -94292.6992888889,
+    -50219.2002444444,
+    -29066.7048786667,
+    -14392.6343453333,
+    -332.811553777778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -532.114562888889,
+    -12298.4067995556,
+    -31546.7605422222,
+    -20994.7058795555,
+    -15752.8359862222,
+    -30510.4610933333,
+    -61743.0494044444,
+    -104286.717248889,
+    -105187.910915556,
+    -97812.7764044445,
+    -100758.727213333,
+    -49099.9616711111,
+    -15489.3943644444,
+    -8717.25366444444,
+    -4745.08505288889,
+    -4423.55673688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8490.38731733334,
+    23245.4040915556,
+    -6148.33884,
+    -20088.4127755556,
+    -33668.3023155556,
+    -38083.4186044444,
+    -38753.9653066667,
+    -48900.9663866667,
+    -50756.3995911111,
+    -74498.0903022222,
+    -91803.9394133333,
+    -50254.0757066667,
+    -15698.4712951111,
+    -4632.92673866667,
+    -7189.26881244444,
+    -28043.9453151111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    4645.23572533333,
+    28801.5341373333,
+    7512.49694088889,
+    -9706.36866444444,
+    -29023.8578822222,
+    -39409.2723111111,
+    -43012.8746933333,
+    -56026.9904533333,
+    -64517.5536133333,
+    -85818.8411822222,
+    -102370.325253333,
+    -62400.4079066667,
+    -22977.1854106667,
+    -7406.81549822222,
+    -4335.10787555556,
+    -22314.2878644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3669.80714622222,
+    42168.2437511111,
+    21758.3612737778,
+    12901.1075395556,
+    -169.27845992,
+    -18185.3848226667,
+    -21762.0832768889,
+    -25389.1606551111,
+    -31818.1443911111,
+    -29993.4836533333,
+    -25275.449064,
+    -46.0877767911111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10783.0240053333,
+    -14972.5927671111,
+    -15031.2362964444,
+    -19111.5188408889,
+    -14732.1279204444,
+    -1755.37286568889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -597.566134133333,
+    -10114.294344,
+    -28204.28452,
+    -25736.0396222222,
+    -43148.8596888889,
+    -67077.5297688889,
+    -96135.8235066667,
+    -124298.785,
+    -133839.12888,
+    -152409.579835556,
+    -156974.455462222,
+    -120461.898013333,
+    -72988.4810088889,
+    -48112.8981688889,
+    -26800.2101337778,
+    -8879.82020977778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -12863.9754297778,
+    -28449.2040475556,
+    -24372.5262777778,
+    -68799.6156177778,
+    -107417.889,
+    -127485.05412,
+    -160611.761022222,
+    -163658.821364444,
+    -163320.324231111,
+    -168583.588315556,
+    -123440.086644444,
+    -80489.9291688889,
+    -58327.0125333333,
+    -44831.3809377778,
+    -27823.3799968889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -7940.878984,
+    -53979.8887422222,
+    -46838.0388355556,
+    -42354.0508355556,
+    -24654.0503871111,
+    -36167.9058222222,
+    -24054.9251146667,
+    -19737.7531911111,
+    -21260.7265271111,
+    -23780.1123337778,
+    -19563.8741008889,
+    -26805.1630355556,
+    -27241.1063133333,
+    -8167.83325244444,
+    -2591.78023253333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9391.844748,
+    20848.3754737778,
+    -30310.5865955556,
+    -29389.7571644444,
+    -32601.2304,
+    -40203.2019511111,
+    -43173.1845911111,
+    -62102.0615155556,
+    -87311.15928,
+    -87789.7444044444,
+    -79135.3544933333,
+    -47049.9292488889,
+    -13072.671368,
+    -5391.89299511111,
+    -4808.21257022222,
+    -12296.150152,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -16117.3871413333,
+    28388.0401066667,
+    -25293.0919448889,
+    -23444.4872973333,
+    -19997.6193453333,
+    -40532.61388,
+    -48593.5347911111,
+    -95149.0530755556,
+    -111293.461373333,
+    -130591.607897778,
+    -136892.343715556,
+    -89780.2833911111,
+    -51153.8040177778,
+    -27219.2139013333,
+    -10932.9884928889,
+    -2954.83086355555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -14.0429418955556,
+    2569.7998992,
+    -11974.358072,
+    -19541.3955466667,
+    -23872.224584,
+    -11578.4190008889,
+    -499.8855328,
+    -23941.066988,
+    -37919.0057111111,
+    -53211.74936,
+    -60855.9231511111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5359.03972355556,
+    -8735.36545911111,
+    -9133.12157111111,
+    -11530.5897955556,
+    -6706.05316444445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10240.4028431111,
+    0,
+    -7499.80696177778,
+    -25263.9899835556,
+    -19023.5095862222,
+    -39619.6973688889,
+    -41569.2064,
+    -59112.7361822222,
+    -102729.044293333,
+    -116765.392088889,
+    -121843.435231111,
+    -84787.2308711111,
+    -41805.7147866667,
+    -22521.4305257778,
+    -5876.51538444444,
+    -2266.58852764444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -20877.711892,
+    20189.5223088889,
+    -8037.18215111111,
+    -24868.0509124445,
+    -35194.03052,
+    -25973.6909862222,
+    -34082.1187244444,
+    -38266.0019066667,
+    -49879.2377555556,
+    -70911.1929733333,
+    -99401.2218266667,
+    -59183.36632,
+    -24295.8002608889,
+    -10453.3483124444,
+    -3982.77778577778,
+    -1368.74173306667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4275.350676,
+    8076.01407333333,
+    -30227.9405422222,
+    -31831.03952,
+    -54445.2856666667,
+    -102155.211057778,
+    -124133.785964444,
+    -162502.948902222,
+    -183820.355382222,
+    -188243.384591111,
+    -193529.508222222,
+    -142416.73416,
+    -90536.993,
+    -62633.6925111111,
+    -41626.9414088889,
+    -25391.0363102222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -745.997859777778,
+    -18880.1978128889,
+    -48185.5798044445,
+    -100762.537137778,
+    -142568.544995556,
+    -153729.279048889,
+    -160541.423955556,
+    -181762.116968889,
+    -185163.793355556,
+    -187824.879044444,
+    -177383.634568889,
+    -114302.422471111,
+    -65283.0553555556,
+    -33796.3743911111,
+    -16287.954528,
+    -4999.73454133333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    1918.3028192,
+    -43352.5441111111,
+    -21319.9561986667,
+    -33108.8295644444,
+    -52827.2400622222,
+    -65895.8670488889,
+    -115465.621711111,
+    -131122.945822222,
+    -145111.229955556,
+    -145325.758008889,
+    -107594.024737778,
+    -64965.9524133333,
+    -49777.54208,
+    -26387.6246235556,
+    -13770.6788333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -12370.4436786667,
+    -9592.42261644445,
+    -7848.88396222222,
+    -13515.0329031111,
+    -42522.5667244445,
+    -53844.78296,
+    -83173.8744044445,
+    -103680.939262222,
+    -106960.404995556,
+    -102963.794253333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8873.46056666667,
+    -11065.1049497778,
+    -15854.2972048889,
+    -12539.1647173333,
+    -9205.42221422222,
+    -1998.42259955556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -636.181183733333,
+    -16382.4406542222,
+    -47509.4647511111,
+    -26390.379492,
+    -36085.55284,
+    -71644.4568933333,
+    -93042.1648577778,
+    -134224.810462222,
+    -153269.157404444,
+    -173343.06316,
+    -194715.86008,
+    -173270.381524444,
+    -135327.930124445,
+    -109494.297822222,
+    -89694.4135555556,
+    -66224.9859066667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -92.5518568888889,
+    -25340.3936222222,
+    -48658.5965777778,
+    -62797.2261911111,
+    -116970.248795556,
+    -156033.404124444,
+    -170967.428733333,
+    -191766.97856,
+    -184415.289737778,
+    -180552.905564445,
+    -178978.234484445,
+    -143465.342595556,
+    -87614.7809511111,
+    -49638.9194444444,
+    -25934.5073786667,
+    -4331.76686488889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    0,
+    -36674.9188444444,
+    -33426.5186488889,
+    -34658.8826711111,
+    -33400.1422488889,
+    -45674.5465244444,
+    -57123.6625511111,
+    -99388.6197688889,
+    -112940.814088889,
+    -131964.352982222,
+    -101448.323537778,
+    -75168.3439333333,
+    -52495.4835644444,
+    -28143.2378075555,
+    -6504.97707511111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2802.65368911111,
+    1555.07927622222,
+    -29550.9462755556,
+    -31458.2530666667,
+    -35121.3488844444,
+    -24593.7949666667,
+    -21442.1961591111,
+    -22625.8517626667,
+    -20660.1652062222,
+    -20568.4925626667,
+    -22419.8520786667,
+    -19739.2185466667,
+    -10312.908636,
+    -24370.6213155556,
+    -17435.5037706667,
+    -796.579002844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9371.62284133333,
+    26171.1036866667,
+    -18092.2761306667,
+    -32162.5029466667,
+    -27774.8181137778,
+    -28481.9987048889,
+    -20777.8625644444,
+    -20874.8397951111,
+    -30101.0407511111,
+    -49298.0777422222,
+    -87394.0984044445,
+    -62091.5109555556,
+    -35715.6970977778,
+    -16568.599424,
+    -6475.84580666667,
+    -7693.96657288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -16926.5857862222,
+    38228.7818755556,
+    35134.2440133333,
+    15308.8332528889,
+    10799.3773733333,
+    -4222.53926177778,
+    -2420.8787448,
+    -2805.84523351111,
+    -13818.6252671111,
+    -18678.3304315556,
+    -21316.7031093333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4085.968124,
+    -1923.84772462222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -23025.9524435556,
+    23631.144288,
+    13145.3530035556,
+    -10784.518668,
+    -15343.2691084445,
+    -24377.2154155555,
+    -39061.1038311111,
+    -58899.3804133333,
+    -89823.9509866667,
+    -112527.290751111,
+    -123403.452755556,
+    -88527.9905333333,
+    -54805.4700622222,
+    -31855.6574933333,
+    -13181.4593644444,
+    -3758.87145688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10176.542648,
+    -35850.5098088889,
+    -29967.6933955556,
+    -23927.2926457778,
+    -23440.0619235556,
+    -18971.8997635556,
+    -21512.1522333333,
+    -19682.0989871111,
+    -20229.4972084444,
+    -22785.8978964444,
+    -20969.8241422222,
+    -6863.84265066667,
+    -26056.1611968889,
+    -13730.498784,
+    -2280.30425564445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5111.68770577778,
+    28816.8617564444,
+    24040.4767088889,
+    12421.3208235556,
+    5969.53615511111,
+    1517.70684813333,
+    10047.9137373333,
+    -10246.2056511111,
+    -17096.1567311111,
+    -24103.8972973333,
+    -26623.8985533333,
+    8786.242604,
+    0,
+    10019.8082177778,
+    19937.92076,
+    26909.3498155556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    2386.40185928889,
+    44323.4887022222,
+    31680.9871111111,
+    8446.92487155556,
+    -9874.03464711111,
+    -27254.7048128889,
+    -17166.6989475556,
+    -21697.5490182222,
+    -30389.1296533333,
+    -44908.45864,
+    -77427.6291288889,
+    -59401.9973688889,
+    -34531.98288,
+    -15707.4392711111,
+    -6097.66684488889,
+    -1975.54546862222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -37177.8288711111,
+    -40254.1963244445,
+    -28835.1200866667,
+    -21715.5728915556,
+    -33631.3753555556,
+    -41622.5453422222,
+    -57693.3927911111,
+    -82845.63476,
+    -95167.2234844444,
+    -70803.0497333333,
+    -41476.5959288889,
+    -20790.2008582222,
+    -5761.80735155556,
+    -1421.15163986667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -21199.2109008889,
+    16003.0014866667,
+    10322.140376,
+    12409.9203573333,
+    -1540.07403533333,
+    -8506.916528,
+    -7391.48787911111,
+    -20699.9935702222,
+    -18206.6617853333,
+    -19442.3375111111,
+    -21145.6081946667,
+    -334.713585288889,
+    -2581.88908253333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7118.11114666667,
+    -8166.13344,
+    -10363.0531031111,
+    -8393.38077955556,
+    -5165.14387644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -648.317258444445,
+    -5496.78314577778,
+    -28383.2044333333,
+    -15698.2954524444,
+    -25845.8240604444,
+    -55748.5728977778,
+    -88387.0233288889,
+    -122158.486675556,
+    -128765.188733333,
+    -141017.905746667,
+    -153540.248182222,
+    -104490.1086,
+    -64542.4646577778,
+    -44493.1768755556,
+    -33959.9080711111,
+    -23196.72498,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -17607.8881982222,
+    -33015.33988,
+    -43494.3905288889,
+    -82756.5411422222,
+    -113452.223177778,
+    -129837.829,
+    -166762.444431111,
+    -179621.232502222,
+    -187197.706866667,
+    -195415.713893333,
+    -171655.266631111,
+    -123766.567862222,
+    -108322.59952,
+    -90969.56596,
+    -70499.1349911111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -32064.9102666667,
+    -96841.2456711111,
+    -124649.884191111,
+    -138448.551315556,
+    -172699.185928889,
+    -157474.141706667,
+    -199329.971653333,
+    -206157.063186667,
+    -220773.984853333,
+    -241437.549684444,
+    -201760.99652,
+    -163432.277395555,
+    -140653.618355556,
+    -111764.133577778,
+    -92666.4476933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -53189.7690266667,
+    -135589.642626667,
+    -139575.409737778,
+    -156733.257937778,
+    -192619.815493333,
+    -211421.792626667,
+    -236616.822977778,
+    -241885.069271111,
+    -243615.654182222,
+    -249857.189635556,
+    -220760.210511111,
+    -175753.573048889,
+    -143003.462524444,
+    -119934.076942222,
+    -98757.0515244444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1550.11172088889,
+    -55541.6646933333,
+    -142384.789408889,
+    -150757.244911111,
+    -161477.493084444,
+    -184039.279502222,
+    -130345.721235556,
+    -117999.807608889,
+    -120908.245315556,
+    -130596.297035556,
+    -159203.847404444,
+    -118902.466631111,
+    -76515.0056888889,
+    -53749.2417777778,
+    -24379.2082991111,
+    -9072.25070133333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -7544.177928,
+    -20552.9304866667,
+    -18102.5336195556,
+    -14585.0355297778,
+    -17844.2500493333,
+    -14004.1099733333,
+    -11784.0376924445,
+    -6201.97085333333,
+    -5551.11852977778,
+    -5743.22664311111,
+    -728.434108088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1860.54729533333,
+    -61319.85472,
+    -102445.644528889,
+    -106063.607395556,
+    -110047.909151111,
+    -113517.871106667,
+    -114220.069488889,
+    -136823.472004445,
+    -147247.718355556,
+    -145561.387182222,
+    -152437.421591111,
+    -114853.689231111,
+    -80832.5292977778,
+    -58264.0022444445,
+    -33433.2592844444,
+    -16729.1437786667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -23650.3697528889,
+    -93961.8220044444,
+    -140278.194262222,
+    -158889.382102222,
+    -188950.272111111,
+    -184857.827115556,
+    -215964.980991111,
+    -234021.385217778,
+    -236963.819173333,
+    -234682.260573333,
+    -192739.974648889,
+    -149086.446506667,
+    -124546.430088889,
+    -107891.198844444,
+    -73193.0446444444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -19216.5555271111,
+    -31733.7399111111,
+    -24382.5786168889,
+    -23033.8360564444,
+    -22814.8533222222,
+    -23907.6861884444,
+    -33343.5795244445,
+    -36700.12296,
+    -42719.21744,
+    -48874.5899866667,
+    -36531.9001422222,
+    -20522.6269337778,
+    -38505.7340755556,
+    -15363.4910151111,
+    2124.12372982222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    45405.2141733333,
+    23974.565016,
+    3445.49051777778,
+    -22028.3676884444,
+    -41876.9310666667,
+    -29311.8002488889,
+    -40652.1868933333,
+    -42394.4946488889,
+    -69212.5528133333,
+    -80420.1782444445,
+    -63381.6099866667,
+    -38777.4109955555,
+    -19210.4889551111,
+    -7242.05091955556,
+    -17327.6536017778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1961.44581746667,
+    30341.6521333333,
+    9272.97510533333,
+    -27377.0033875556,
+    -26207.2100475556,
+    -35068.0099422222,
+    -49315.95508,
+    -103514.767942222,
+    -126187.33524,
+    -152970.811013333,
+    -171076.158115556,
+    -135688.407591111,
+    -102684.497484445,
+    -72395.8912222222,
+    -31758.9440266667,
+    -15523.1268493333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -213.221249248889,
+    -15596.0429417778,
+    -7669.49513511111,
+    -11200.1521177778,
+    -28004.4100222222,
+    -42330.0190044445,
+    -49693.7237422222,
+    -65762.8127644445,
+    -84417.6682,
+    -93009.6339644445,
+    -98512.6302177778,
+    -4228.01969155556,
+    -11445.9801657778,
+    -9217.760508,
+    -2696.97810786667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2408.65474875556,
+    -5147.03208177778,
+    -4669.32617066667,
+    -2353.41377502222,
+    -10160.3944297778,
+    -12787.8355551111,
+    -19995.2454693333,
+    -21985.6672275555,
+    -19034.2359888889,
+    -9705.723908,
+    -3365.80448266667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    280.612072035556,
+    -18013.0590093333,
+    -38253.1067777778,
+    -48455.4982977778,
+    -91000.3384266667,
+    -122441.007226667,
+    -139812.211195556,
+    -167725.183031111,
+    -187581.336951111,
+    -197289.024435556,
+    -204599.09716,
+    -187188.621662222,
+    -133704.902311111,
+    -95594.5211644445,
+    -65426.6602,
+    -43530.4382755556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -13915.8662617778,
+    -56281.0831066667,
+    -70388.06104,
+    -123875.883386667,
+    -156793.923657778,
+    -178207.457462222,
+    -208070.524471111,
+    -209646.660906667,
+    -232619.333022222,
+    -225197.014062222,
+    -199581.133595556,
+    -145718.180226667,
+    -114179.918746667,
+    -83570.1065466667,
+    -67095.9932488889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -124.52825968,
+    -25777.3040346667,
+    -73334.30492,
+    -103717.866222222,
+    -152241.357017778,
+    -189557.808524444,
+    -198788.962382222,
+    -220542.751746667,
+    -236322.286511111,
+    -237870.581191111,
+    -236340.45692,
+    -202136.127542222,
+    -147784.33156,
+    -124551.99844,
+    -83485.4089955556,
+    -58658.47596,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -84.1114088888889,
+    -22166.7558671111,
+    -66021.3014844444,
+    -97015.9160533333,
+    -149711.274115556,
+    -190441.417924445,
+    -202867.339964444,
+    -211837.660533333,
+    -210948.482782222,
+    -218473.08356,
+    -219149.198613333,
+    -188266.537208889,
+    -146743.342973333,
+    -111734.826466667,
+    -80720.2830622222,
+    -55645.4118666667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    28.6188629137778,
+    -23718.5087862222,
+    -67816.0689688889,
+    -99769.9052844444,
+    -141092.931951111,
+    -174490.43656,
+    -192393.857666667,
+    -206179.629662222,
+    -216000.735666667,
+    -229050.606102222,
+    -229894.650902222,
+    -194782.094151111,
+    -154411.841666667,
+    -117668.637253333,
+    -87203.6021822222,
+    -63021.7186622222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -13400.0904133333,
+    -17568.528748,
+    -34044.6056222222,
+    -59658.14152,
+    -96113.8431733333,
+    -105652.428626667,
+    -113482.409502222,
+    -123986.957337778,
+    -131581.895182222,
+    -140022.636253333,
+    -6466.35030266667,
+    -9987.160096,
+    -7094.75337911111,
+    -2345.74996546667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2713.91468737778,
+    -8168.65385155555,
+    -10905.3811942222,
+    -15285.4168711111,
+    -23510.6920613333,
+    -33477.2199511111,
+    -38368.5767955556,
+    -41425.0154133333,
+    -54998.6039244445,
+    -28739.7547471111,
+    -16223.5374977778,
+    -2560.34542515556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -17550.6807173333,
+    -89099.4792,
+    -154172.402568889,
+    -171054.177782222,
+    -196169.785862222,
+    -223924.499297778,
+    -226409.156177778,
+    -242154.987764444,
+    -248312.411808889,
+    -248403.849995556,
+    -254221.01848,
+    -225779.34636,
+    -176644.509226667,
+    -149732.082164444,
+    -117742.491173333,
+    -80909.9000711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -41971.0068933333,
+    -134799.522911111,
+    -148426.157293333,
+    -177735.026831111,
+    -210086.853715556,
+    -218935.549773333,
+    -231753.60096,
+    -226470.114968889,
+    -230513.617088889,
+    -227142.713168889,
+    -187725.234866667,
+    -150031.893911111,
+    -112638.657773333,
+    -98503.8380844444,
+    -74927.1464088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1877.6567868,
+    -42702.8054577778,
+    -113102.0032,
+    -136907.583413333,
+    -171616.874315556,
+    -202113.854137778,
+    -219343.50476,
+    -237608.282546667,
+    -236017.199484445,
+    -253095.332342222,
+    -234423.771853333,
+    -200105.730884444,
+    -143727.64124,
+    -125272.367231111,
+    -101369.194337778,
+    -72910.8171644445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -125.946723857778,
+    -33369.9559244445,
+    -63091.1765155556,
+    -101448.90968,
+    -143186.631968889,
+    -174241.326115556,
+    -185586.98804,
+    -205623.673764445,
+    -217706.409533333,
+    -222297.075417778,
+    -231790.820991111,
+    -173448.275688889,
+    -129869.773751111,
+    -109558.773466667,
+    -76363.1948533333,
+    -57760.7991466667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -210.012999795556,
+    -34136.33688,
+    -88733.7264533333,
+    -105775.518493333,
+    -144197.434231111,
+    -167162.193426667,
+    -173197.699888889,
+    -204774.353684444,
+    -209637.282631111,
+    -222246.667186667,
+    -214929.560755555,
+    -178309.153137778,
+    -137069.944808889,
+    -114292.164982222,
+    -83928.5325155556,
+    -68613.8085333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -26324.4677991111,
+    -28908.8860853333,
+    -35347.01364,
+    -68119.1044977778,
+    -95572.8339022222,
+    -95821.0651333333,
+    -99538.3791066667,
+    -99293.9578,
+    -108511.044244444,
+    -105328.87812,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9467.72085866667,
+    -19082.534108,
+    -27872.6159435556,
+    -31535.9169111111,
+    -24281.586312,
+    -6888.51923822222,
+    -3046.26905022222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -16894.2893497778,
+    -82126.1451822222,
+    -142692.807146667,
+    -124151.663302222,
+    -144407.273146667,
+    -164633.57588,
+    -155992.960311111,
+    -180468.208013333,
+    -173722.590248889,
+    -179869.170662222,
+    -186030.404631111,
+    -147748.869955556,
+    -115294.468182222,
+    -85308.3113066667,
+    -49111.3914444445,
+    -20027.9228982222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -25155.3485226667,
+    -48712.2285911111,
+    -48344.1312755556,
+    -56127.5138444445,
+    -86310.0283644445,
+    -102301.746613333,
+    -127578.250733333,
+    -140910.934791111,
+    -144905.787106667,
+    -146267.68856,
+    -108183.683813333,
+    -73234.6607422222,
+    -45526.8386844444,
+    -18820.0596208889,
+    -5503.93408088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -20160.4496546667,
+    10373.2226706667,
+    -40262.1092444444,
+    -41993.2802977778,
+    -34516.7431822222,
+    -36385.9507288889,
+    -46331.6119555556,
+    -62019.7085333333,
+    -85494.9976044444,
+    -93848.9896266667,
+    -108612.446848889,
+    -82469.3314533333,
+    -54605.5955644445,
+    -36869.2249911111,
+    -9014.54499955556,
+    -5277.74179733333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -23619.1576795556,
+    20590.0332893333,
+    -36009.06128,
+    -33645.1496977778,
+    -30591.6417911111,
+    -42000.3140044444,
+    -76381.9514044445,
+    -112900.663346667,
+    -132869.649644444,
+    -144504.572755556,
+    -155178.515693333,
+    -128548.902253333,
+    -96297.0126177778,
+    -63398.6081111111,
+    -27294.8555551111,
+    -10967.6294982222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6282.44818044444,
+    -35486.80856,
+    -47623.7624844444,
+    -61371.4352355556,
+    -109905.769662222,
+    -138747.190777778,
+    -170759.055173333,
+    -176008.837986667,
+    -205303.933182222,
+    -205873.07728,
+    -164055.053506667,
+    -128510.216866667,
+    -100602.813382222,
+    -71898.2564755556,
+    -45092.2142266667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -10582.3582155556,
+    -12495.2333577778,
+    -14820.8698528889,
+    -14761.2298817778,
+    -33002.7378222222,
+    -55159.7930355556,
+    -69541.3786,
+    -89681.8114977778,
+    -104420.357675556,
+    -106638.319844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3197.02482977778,
+    -11483.2001968889,
+    -12726.4371573333,
+    -2782.00976004444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -17767.14304,
+    -85457.4845022222,
+    -152345.983404444,
+    -152182.742795556,
+    -158644.960795556,
+    -175621.397977778,
+    -175532.890502222,
+    -201069.641768889,
+    -215492.843431111,
+    -222399.357235556,
+    -232074.513826667,
+    -200484.671831111,
+    -156992.918942222,
+    -134206.053911111,
+    -99923.7676177778,
+    -76249.4832622222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -36307.4076711111,
+    -117843.893777778,
+    -138070.489582222,
+    -168828.595764444,
+    -196496.26708,
+    -211683.212057778,
+    -229062.328946667,
+    -235404.09472,
+    -241166.458906667,
+    -243326.392995556,
+    -200291.537968889,
+    -156334.681226667,
+    -126792.820155556,
+    -105280.814457778,
+    -80953.8607377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1462.14349617778,
+    -40898.3666266667,
+    -126377.538391111,
+    -161088.001577778,
+    -182003.314493333,
+    -219155.939248889,
+    -225198.186346667,
+    -242396.185288889,
+    -239715.463835556,
+    -278460.050866667,
+    -259189.453026667,
+    -217528.515368889,
+    -174823.365342222,
+    -132099.458764445,
+    -107400.304733333,
+    -87655.5178355556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -284.488230551111,
+    -36514.9020177778,
+    -110190.634782222,
+    -155667.944448889,
+    -192395.029951111,
+    -221194.248826667,
+    -231547.86504,
+    -241491.474768889,
+    -243857.73092,
+    -250985.806484444,
+    -256630.649155556,
+    -212801.864488889,
+    -169100.565755556,
+    -136528.935537778,
+    -99206.0364666667,
+    -82246.3043377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -382.249719511111,
+    -36823.7989688889,
+    -125239.836337778,
+    -169110.823244444,
+    -195278.263542222,
+    -218792.824142222,
+    -235302.105973333,
+    -252766.799626667,
+    -265638.189755555,
+    -271703.882542222,
+    -277822.328128889,
+    -239227.500435556,
+    -189659.211128889,
+    -165254.007422222,
+    -124063.448897778,
+    -102980.792377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4611.59116177778,
+    -64086.73908,
+    -105665.323755556,
+    -131630.838057778,
+    -154802.212386667,
+    -178518.11284,
+    -165210.925968889,
+    -171532.176764444,
+    -173317.272902222,
+    -181981.627231111,
+    -185216.546155556,
+    -10325.2469297778,
+    -13420.7519266667,
+    -12841.877868,
+    -7601.414716,
+    -3233.30703333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7255.73734044444,
+    -12059.1435444445,
+    -18556.6473062222,
+    -18747.9934346667,
+    -31021.28404,
+    -36410.2756311111,
+    -18486.163704,
+    -26836.7561013333,
+    -22498.6002862222,
+    -32707.6152133333,
+    -19465.3435933333,
+    -5340.165944,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -24563.9310204444,
+    -68940.5828222222,
+    -148455.757475556,
+    -211114.654102222,
+    -234992.915951111,
+    -244483.730813333,
+    -266917.445155556,
+    -259520.03724,
+    -287107.114,
+    -290776.950453333,
+    -313565.573911111,
+    -299146.475244444,
+    -266043.800173333,
+    -209966.987631111,
+    -182399.546635556,
+    -142936.935382222,
+    -109083.412124444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7350.69238044444,
+    -60558.7490444445,
+    -136398.225822222,
+    -140248.59408,
+    -141601.996471111,
+    -162245.046324444,
+    -165654.049488889,
+    -189331.264555556,
+    -185872.439302222,
+    -191360.488928889,
+    -192237.650764444,
+    -152765.368164444,
+    -116975.231004444,
+    -86548.5882488889,
+    -50438.4174355556,
+    -22027.2833253333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    300.107748488889,
+    -25577.8984506667,
+    -39157.8172977778,
+    -45987.8395422222,
+    -56625.7347333333,
+    -93916.3959822222,
+    -102622.073337778,
+    -140341.497622222,
+    -151909.307448889,
+    -169482.437413333,
+    -177740.595182222,
+    -142391.823115556,
+    -112498.569782222,
+    -90910.3655955556,
+    -50850.7684888889,
+    -26365.2926048889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -18637.0660191111,
+    -36826.4366088889,
+    -40562.8002044444,
+    -71258.1891688889,
+    -129767.491933333,
+    -140962.808377778,
+    -164593.425137778,
+    -173566.383346667,
+    -175735.109568889,
+    -195292.037884444,
+    -160182.411844444,
+    -122487.898604444,
+    -90899.5219644445,
+    -67141.4192711111,
+    -38905.7761422222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    87.3199514133333,
+    -17073.3851057778,
+    -37779.2107911111,
+    -63041.0613555555,
+    -116257.792924445,
+    -143268.398808889,
+    -158008.410342222,
+    -176921.461426667,
+    -190804.826102222,
+    -198294.258346667,
+    -212409.442271111,
+    -178607.7926,
+    -139578.047377778,
+    -111544.916386667,
+    -77036.6722666667,
+    -56118.1355688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -14350.4614124445,
+    -21425.6376413333,
+    -35913.5200977778,
+    -55173.5673777778,
+    -84941.3862755556,
+    -86141.5124755556,
+    -96418.6371288889,
+    -107026.345995556,
+    -115471.776204444,
+    -126700.795826667,
+    -4583.10464977778,
+    -11200.9141026667,
+    -9515.87244222222,
+    -3132.31472844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6869.64545866667,
+    -8291.77302533333,
+    -8491.03207377778,
+    -7599.65628933333,
+    -15814.6446835556,
+    -18462.6300937778,
+    -18071.5853102222,
+    -24712.6353022222,
+    -16639.9329324444,
+    -2730.34718457778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10956.4341817778,
+    -74645.7981422222,
+    -137372.980337778,
+    -161395.726244444,
+    -192131.852093333,
+    -215664.876173333,
+    -226725.672977778,
+    -249357.503391111,
+    -247871.339786667,
+    -254640.110168889,
+    -261851.417928889,
+    -222212.084795556,
+    -180819.014133333,
+    -153162.47952,
+    -121024.594546667,
+    -96716.3973777778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3907.42920311111,
+    -71837.0046133333,
+    -173828.681991111,
+    -169011.472137778,
+    -206146.219555556,
+    -234470.077088889,
+    -232580.940706667,
+    -256400.295262222,
+    -251646.095697778,
+    -268230.989875556,
+    -261944.907613333,
+    -236064.090862222,
+    -185312.087337778,
+    -166862.088608889,
+    -132181.518675556,
+    -107543.909577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5896.26837733333,
+    -65447.4682488889,
+    -149449.268542222,
+    -174141.975008889,
+    -198467.170302222,
+    -229805.850355556,
+    -234825.572346667,
+    -255318.569791111,
+    -252798.451306667,
+    -258639.06548,
+    -263545.368951111,
+    -236491.974684444,
+    -187337.794857778,
+    -158440.690231111,
+    -134082.084831111,
+    -117751.869448889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3234.36208933333,
+    -81259.8269777778,
+    -177222.738528889,
+    -199113.978244444,
+    -214636.196573333,
+    -238177.426644444,
+    -250050.616568889,
+    -258046.475693333,
+    -259072.810724445,
+    -259823.36584,
+    -273502.753022222,
+    -242032.48404,
+    -193497.2704,
+    -167868.787875556,
+    -144229.378982222,
+    -110018.895111111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6511.95216755556,
+    -102979.620093333,
+    -176124.894146667,
+    -204956.643915556,
+    -224818.952328889,
+    -254913.545515556,
+    -250829.599582222,
+    -264648.781684444,
+    -260930.295426667,
+    -276280.481013333,
+    -290121.93652,
+    -251551.7268,
+    -209446.493337778,
+    -178093.745871111,
+    -139655.12508,
+    -109065.534786667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7210.86815333333,
+    -63441.3964933333,
+    -96009.8029288889,
+    -127807.432342222,
+    -155118.143044444,
+    -171841.952928889,
+    -173363.285066667,
+    -176692.86596,
+    -174298.768053333,
+    -175604.106782222,
+    -172457.695333333,
+    -449.7703728,
+    -3271.201128,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2946.771408,
+    -7607.89158755556,
+    -9761.43672622222,
+    -15227.4180982222,
+    -16847.1635151111,
+    -30800.6014933333,
+    -35933.7420044444,
+    -41920.8917333333,
+    -69211.3805288889,
+    -73412.2618355556,
+    -36294.8056133333,
+    -35552.1634177778,
+    -13540.2663257778,
+    -6550.75478266667,
+    -3044.77438755556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -27864.5271808889,
+    -87120.9561288889,
+    -154703.447422222,
+    -220937.225462222,
+    -234686.070497778,
+    -251195.938471111,
+    -263404.694817778,
+    -264736.703017778,
+    -279543.534764445,
+    -283935.791506667,
+    -276757.600782222,
+    -275782.260124444,
+    -234008.490088889,
+    -175033.497328889,
+    -142909.679768889,
+    -114169.075115556,
+    -97931.7632755556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12799.2946355556,
+    -91262.344,
+    -180398.164017778,
+    -200315.5698,
+    -210836.822688889,
+    -234665.262448889,
+    -249409.376977778,
+    -257209.757671111,
+    -274689.984093333,
+    -268367.561013333,
+    -275819.480155555,
+    -238911.276706667,
+    -175197.32408,
+    -146700.847662222,
+    -115408.472844444,
+    -98972.16572,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12229.681624,
+    -93426.0880133333,
+    -161080.967871111,
+    -147655.966413333,
+    -165578.144071111,
+    -170719.490573333,
+    -165997.23576,
+    -186593.687306667,
+    -185167.017137778,
+    -191464.822244445,
+    -192319.710675556,
+    -151381.486377778,
+    -118399.556604444,
+    -102389.374875556,
+    -85364.8740311111,
+    -65412.8858577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2961.42496355556,
+    -46790.8543866667,
+    -137251.941968889,
+    -146216.694186667,
+    -173996.611737778,
+    -193783.893946667,
+    -188822.786177778,
+    -219235.36152,
+    -214067.638617778,
+    -225600.866053333,
+    -229586.926235556,
+    -185999.046022222,
+    -145741.918986667,
+    -125124.073248889,
+    -98905.0524355556,
+    -74518.0191377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7852.10774444445,
+    -96263.6025111111,
+    -172367.13636,
+    -179963.832631111,
+    -219189.349355555,
+    -212144.212915555,
+    -228122.156822222,
+    -258314.928831111,
+    -256203.937617778,
+    -272174.261675556,
+    -287328.089617778,
+    -224315.45616,
+    -145956.740111111,
+    -118539.644595556,
+    -88291.4821466667,
+    -70944.3100088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3393.55831688889,
+    -39974.6064844444,
+    -56461.9079822222,
+    -66099.2584,
+    -99121.0458444445,
+    -114528.087226667,
+    -110893.712377778,
+    -130610.364448889,
+    -140048.426511111,
+    -141954.854088889,
+    -149048.054191111,
+    -1330.57508226667,
+    -6452.98626,
+    -6494.30928666667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7737.253176,
+    -7992.72326355556,
+    -7911.63048711111,
+    -21227.1405777778,
+    -32437.1105777778,
+    -39789.6786133333,
+    -41694.3477644444,
+    -20401.2368795556,
+    -15637.8641893333,
+    -2962.09902711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10709.2580066667,
+    -20742.3716528889,
+    -42454.2811555556,
+    -70872.8006577778,
+    -79020.7636888889,
+    -86133.3064844444,
+    -90472.2242844444,
+    -90873.1455644445,
+    -82898.38756,
+    -71755.5308444445,
+    -24585.8234324445,
+    -10957.4892377778,
+    -3185.09683555556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -55874.5934755556,
+    -121073.830493333,
+    -204618.146782222,
+    -261937.873906667,
+    -285111.299733333,
+    -299105.445288889,
+    -307173.692977778,
+    -312182.278266667,
+    -313014.600222222,
+    -325833.530622222,
+    -328673.389688889,
+    -337116.7684,
+    -293938.6016,
+    -247294.57584,
+    -208965.856715556,
+    -183938.756111111,
+    -155901.522124445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -53954.3915555556,
+    -141148.908533333,
+    -214246.118924444,
+    -243077.868693333,
+    -262044.844862222,
+    -281833.299355556,
+    -286945.631817778,
+    -312220.377511111,
+    -307279.198577778,
+    -310643.654933333,
+    -310713.992,
+    -223851.23152,
+    -189652.470493333,
+    -161340.921946667,
+    -136074.968386667,
+    -123530.059475556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -20765.7587275556,
+    -130227.320506667,
+    -211759.117475556,
+    -224340.660275556,
+    -243245.212297778,
+    -241047.765106667,
+    -263797.703177778,
+    -280823.669377778,
+    -278813.494626667,
+    -277665.828155556,
+    -297862.823777778,
+    -266828.351537778,
+    -207161.417884444,
+    -185758.141568889,
+    -140982.737213333,
+    -121263.447502222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7136.10571288889,
+    -91931.4253466667,
+    -175095.335333333,
+    -183993.85348,
+    -213918.465422222,
+    -229115.667888889,
+    -214348.986884444,
+    -234930.491804444,
+    -249464.181275556,
+    -253519.40624,
+    -256416.121102222,
+    -230285.314693333,
+    -176199.62728,
+    -157180.777524444,
+    -114208.932786667,
+    -86786.5619911111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6196.78349466667,
+    -73401.1251333333,
+    -111573.344284445,
+    -132513.568244444,
+    -154678.536377778,
+    -168016.495715556,
+    -158071.420631111,
+    -172820.224297778,
+    -174890.478626667,
+    -177576.182288889,
+    -174241.912257778,
+    -11450.4934608889,
+    -11417.8746462222,
+    -9890.03632977778,
+    -3858.72078444445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8556.12316755556,
+    -17445.1458102222,
+    -21819.2907577778,
+    -23007.2838137778,
+    -37653.4832844445,
+    -51998.43496,
+    -77853.1683822222,
+    -84632.7823955556,
+    -90923.8468666667,
+    -89027.0906355556,
+    -85402.3871333333,
+    -70395.3878177778,
+    -28393.4326151111,
+    -15004.4202897778,
+    -5963.41096888889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -57765.1952133333,
+    -115417.264977778,
+    -192839.325755556,
+    -255885.955462222,
+    -278057.664231111,
+    -294161.335644444,
+    -295855.286666667,
+    -290749.987911111,
+    -308093.936266667,
+    -308480.790133333,
+    -311537.521822222,
+    -320068.821866667,
+    -290922.899866667,
+    -244745.736386667,
+    -214773.646924444,
+    -180590.125595556,
+    -147908.593711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -32363.2566577778,
+    -127580.595302222,
+    -225289.038391111,
+    -251652.250191111,
+    -287605.62796,
+    -307554.685422222,
+    -316411.2944,
+    -324757.959644445,
+    -329218.501955556,
+    -335288.004666667,
+    -340680.513111111,
+    -306748.739866667,
+    -252753.025284444,
+    -187831.912751111,
+    -146841.228724445,
+    -122395.874275556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2519.05756702222,
+    -57405.59696,
+    -120116.660244444,
+    -146824.2306,
+    -159806.401608889,
+    -177012.606542222,
+    -178769.567853333,
+    -200967.946093333,
+    -202484.002951111,
+    -209508.917484444,
+    -217852.065875556,
+    -177261.716986667,
+    -138986.043733333,
+    -118197.92368,
+    -90180.3254577778,
+    -67002.5035644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -30403.1970666667,
+    -78124.5522311111,
+    -111555.173875556,
+    -137239.926053333,
+    -160418.041017778,
+    -162158.883417778,
+    -175691.148902222,
+    -185599.003955556,
+    -205090.284342222,
+    -206268.430208889,
+    -184382.465773333,
+    -151559.673613333,
+    -133041.682386667,
+    -96032.6624755556,
+    -72157.3313377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -781.679267555556,
+    -36018.7326266667,
+    -111462.563404444,
+    -138599.482937778,
+    -176331.50928,
+    -208223.21452,
+    -228545.058435555,
+    -252072.807235555,
+    -266184.181235556,
+    -270351.945506667,
+    -283706.609897778,
+    -251608.289524444,
+    -192464.780875556,
+    -162727.148302222,
+    -131718.46632,
+    -83687.9211333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -69.9420068088889,
+    -16719.9413457778,
+    -27823.7609893333,
+    -53325.16788,
+    -67386.7197911111,
+    -102112.129604444,
+    -104921.509275556,
+    -113623.376706667,
+    -128466.842342222,
+    -134664.124057778,
+    -141364.608871111,
+    -4849.44767555556,
+    -11354.7178217778,
+    -10494.4661893333,
+    -6017.07228933333,
+    -2342.84563075556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4870.57810266667,
+    -12056.124912,
+    -15750.4621102222,
+    -17343.010528,
+    -16901.8212773333,
+    -33241.0046355556,
+    -44639.7124311111,
+    -90096.50712,
+    -94506.3481288889,
+    -90807.7907066667,
+    -89252.1692488889,
+    -77356.9989911111,
+    -30183.6868044444,
+    -21992.7595484444,
+    -6865.65969155556,
+    -3377.90831955555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -89424.2019911111,
+    -147146.315751111,
+    -209565.480208889,
+    -284446.028311111,
+    -300207.392666667,
+    -315095.405111111,
+    -332046.638177778,
+    -335795.017688889,
+    -325950.759066667,
+    -332832.068755555,
+    -350093.9572,
+    -337275.0268,
+    -310435.574444444,
+    -260079.21692,
+    -242089.046764444,
+    -214802.074822222,
+    -180389.078813333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -71305.3736177778,
+    -178432.243004444,
+    -260747.419053333,
+    -281384.900555555,
+    -299462.992044444,
+    -321091.640044444,
+    -326621.891911111,
+    -325804.223511111,
+    -331138.117733333,
+    -325900.936977778,
+    -341946.580311111,
+    -310001.8292,
+    -253352.355706667,
+    -238926.809475556,
+    -211559.82912,
+    -182462.263853333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -86373.3317244444,
+    -175708.733168889,
+    -234612.80272,
+    -253517.061671111,
+    -259827.761906667,
+    -290313.311955556,
+    -299518.675555556,
+    -313887.952133333,
+    -324294.907288889,
+    -312472.418666667,
+    -314318.766666667,
+    -264638.231124445,
+    -213429.036666667,
+    -188188.580293333,
+    -169893.323111111,
+    -165353.358528889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -70905.6246222222,
+    -163678.7502,
+    -230251.025373333,
+    -236964.698386667,
+    -241497.04312,
+    -261263.51728,
+    -269418.807088889,
+    -270002.604742222,
+    -271628.856337778,
+    -281773.219777778,
+    -282014.124231111,
+    -244867.653968889,
+    -191395.364391111,
+    -167710.529475556,
+    -140614.932968889,
+    -124879.945013333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -47233.3917644444,
+    -152361.809244444,
+    -230525.046862222,
+    -248322.962368889,
+    -271469.718724444,
+    -281171.251715556,
+    -282502.673773333,
+    -315259.524933333,
+    -304717.757066667,
+    -274303.423297778,
+    -316229.590311111,
+    -274801.058044444,
+    -212859.306426667,
+    -200282.452764444,
+    -164939.835191111,
+    -145650.773871111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -33408.6413111111,
+    -120100.541333333,
+    -149807.987582222,
+    -166302.322786667,
+    -193727.038151111,
+    -207721.476777778,
+    -202151.074168889,
+    -198159.738706667,
+    -212416.182906667,
+    -179236.723204445,
+    -194928.043564444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -21198.4782231111,
+    -41722.18952,
+    -51852.4855466667,
+    -81828.6780044445,
+    -87720.5796222222,
+    -88304.6703466667,
+    -42803.3288488889,
+    -31809.6453288889,
+    -21090.4522115556,
+    -3457.53574044444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -67370.0147377778,
+    -125698.492626667,
+    -198727.417448889,
+    -281874.622382222,
+    -280161.035595556,
+    -307751.043066667,
+    -307030.088133333,
+    -293745.174666667,
+    -341123.050488889,
+    -348042.459422222,
+    -345354.997333333,
+    -351166.597466667,
+    -307135.593733333,
+    -253510.907177778,
+    -234738.823297778,
+    -200358.358182222,
+    -177293.954808889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -60213.8043466667,
+    -149139.492377778,
+    -232865.805826667,
+    -265865.612937778,
+    -292907.28436,
+    -321592.791644444,
+    -305828.496577778,
+    -329397.275333333,
+    -314655.798444444,
+    -334203.641555556,
+    -331844.419111111,
+    -304767.579155556,
+    -257790.038471111,
+    -222408.44244,
+    -164560.015031111,
+    -135754.05552,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -35735.3328622222,
+    -143179.598262222,
+    -233774.326271111,
+    -259757.717911111,
+    -281698.486644445,
+    -295090.371066667,
+    -305620.416088889,
+    -316059.609066667,
+    -328834.5788,
+    -335009.587111111,
+    -330288.211511111,
+    -303375.491377778,
+    -246199.369097778,
+    -224449.9758,
+    -191158.269862222,
+    -169716.015088889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -56043.1093644444,
+    -168393.092093333,
+    -252340.967302222,
+    -262408.25304,
+    -286180.423146667,
+    -306848.384044444,
+    -323204.682755556,
+    -330214.943733333,
+    -317302.230577778,
+    -299231.465866667,
+    -326070.918222222,
+    -318070.076888889,
+    -247564.201262222,
+    -227908.214911111,
+    -201494.59488,
+    -132949.951128889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -57995.5491066667,
+    -158197.73428,
+    -235519.564737778,
+    -267548.720328889,
+    -288732.779453333,
+    -314227.914622222,
+    -328981.114355556,
+    -331724.259955555,
+    -342222.067155556,
+    -325317.725466667,
+    -349836.054622222,
+    -322715.254,
+    -241955.406337778,
+    -207237.909444444,
+    -190539.596746667,
+    -157364.826182222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -48460.7735777778,
+    -142082.633093333,
+    -163812.097555555,
+    -186292.996346667,
+    -204016.471791111,
+    -226436.997933333,
+    -228490.84028,
+    -223418.65856,
+    -215263.368751111,
+    -223122.363666667,
+    -227551.254297778,
+    -25584.1701724444,
+    -24185.0779951111,
+    -32139.3503288889,
+    -8668.51593866667,
+    -4793.09010088889,
+    -3493.52487288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1468.93688453333,
+    -12591.0089968889,
+    -29632.1269733333,
+    -58937.4796577778,
+    -86917.5647777778,
+    -93834.6291422222,
+    -102822.533977778,
+    -106731.809528889,
+    -112301.039853333,
+    -108354.2512,
+    -102364.756902222,
+    -87838.1011377778,
+    -42999.3934222222,
+    -24860.3431422222,
+    -16043.0350004444,
+    -3797.52753644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -122297.988524444,
+    -178637.685853333,
+    -243375.335871111,
+    -303870.781555556,
+    -307088.702355555,
+    -293997.215822222,
+    -317398.944044444,
+    -322858.858844444,
+    -346254.725644444,
+    -347048.948355555,
+    -354501.746711111,
+    -351550.520622222,
+    -271038.318048889,
+    -229865.343791111,
+    -203595.328604445,
+    -178744.94988,
+    -160303.450213333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -69427.0808666667,
+    -178879.762591111,
+    -263887.96908,
+    -285404.663915556,
+    -304418.824533333,
+    -325789.569955555,
+    -334590.495422222,
+    -345331.551644445,
+    -341293.031733333,
+    -348868.919955556,
+    -357063.188222222,
+    -327196.311288889,
+    -261247.984511111,
+    -241428.757551111,
+    -199012.57564,
+    -179123.304684444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -86421.6884577778,
+    -166713.501555556,
+    -268414.15932,
+    -277933.109008889,
+    -315757.745822222,
+    -326255.553022222,
+    -337313.126044444,
+    -346266.448488889,
+    -336738.706666667,
+    -330346.825733333,
+    -306593.412177778,
+    -294518.8824,
+    -257163.745506667,
+    -236766.875386667,
+    -201920.427204444,
+    -166477.579311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -84406.8245688889,
+    -185678.426226667,
+    -262307.729648889,
+    -277690.153057778,
+    -309225.190755556,
+    -320065.891155556,
+    -331340.3368,
+    -303240.678666667,
+    -311179.975066667,
+    -327609.541555555,
+    -346055.437288889,
+    -326706.882533333,
+    -253614.36128,
+    -232063.670195555,
+    -185213.322373333,
+    -173864.143595556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -68420.0885288889,
+    -169367.260466667,
+    -248502.028817778,
+    -268039.321368889,
+    -301948.235066667,
+    -323793.755688889,
+    -331498.5952,
+    -330628.174,
+    -338634.876755556,
+    -336700.607422222,
+    -275012.362315556,
+    -270089.939933333,
+    -211712.81224,
+    -194657.832,
+    -160589.194546667,
+    -136022.508657778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -47999.77272,
+    -146973.989937778,
+    -185451.882257778,
+    -209497.487711111,
+    -223396.092084444,
+    -240056.89168,
+    -221208.31624,
+    -236379.435377778,
+    -209223.759293333,
+    -212237.116457778,
+    -202823.379297778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6003.67893955556,
+    -15985.5344484444,
+    -18904.493408,
+    -33816.0101555556,
+    -53159.2896311111,
+    -77814.4829955556,
+    -91857.8644977778,
+    -99146.5430311111,
+    -94559.394,
+    -94704.4642,
+    -74931.8355466667,
+    -27895.3289546667,
+    -13270.758132,
+    -5574.76936844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -26330.8567493333,
+    -100679.011871111,
+    -187748.094413333,
+    -276938.132586667,
+    -281579.499773333,
+    -293830.165288889,
+    -300491.671644445,
+    -314526.847155556,
+    -332752.939555556,
+    -332550.720488889,
+    -335724.680622222,
+    -331785.804888889,
+    -293402.281466667,
+    -252236.927057778,
+    -216573.103546667,
+    -184701.034071111,
+    -164288.338111111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -16240.9459217778,
+    -21624.427776,
+    -23746.1160848889,
+    -54473.4204933333,
+    -58602.4993777778,
+    -96110.32632,
+    -100804.153235556,
+    -120063.028231111,
+    -102751.610768889,
+    -96753.91048,
+    -87214.4458133333,
+    -44905.2348577778,
+    -29026.1438368889,
+    -8172.78615422222,
+    -7279.73986444445,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -126383.399813333,
+    -164170.816595555,
+    -255451.624075556,
+    -321449.1868,
+    -330540.252666667,
+    -347333.227333333,
+    -353604.949111111,
+    -340366.927022222,
+    -350337.206222222,
+    -363765.724533333,
+    -364703.552088889,
+    -359146.923822222,
+    -342227.928577778,
+    -278720.884155556,
+    -256441.325217778,
+    -230753.642328889,
+    -198576.192755556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -124013.91988,
+    -214423.133875556,
+    -295529.977733333,
+    -318796.893244444,
+    -317527.895333333,
+    -350586.316666667,
+    -357605.369777778,
+    -362452.765955555,
+    -363918.121511111,
+    -350984.893377778,
+    -372182.726844444,
+    -346814.491466667,
+    -292231.462377778,
+    -268606.413968889,
+    -237328.399635556,
+    -205988.547297778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -123184.821706667,
+    -231865.554124444,
+    -303141.034488889,
+    -317908.887777778,
+    -337512.4144,
+    -337374.670977778,
+    -370773.0548,
+    -359102.963155555,
+    -352459.041066667,
+    -362613.955066667,
+    -371579.000355556,
+    -338585.054666667,
+    -289180.592111111,
+    -265464.398586667,
+    -238945.859097778,
+    -209142.578595556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -110961.118733333,
+    -181360.316475556,
+    -215061.442755556,
+    -236706.209666667,
+    -253805.150573333,
+    -266925.065004444,
+    -250332.257906667,
+    -264052.381973333,
+    -264002.852955555,
+    -258391.420391111,
+    -264955.334066667,
+    -43229.4542444445,
+    -37520.1359288889,
+    -30371.5453866667,
+    -22709.9338644444,
+    -3878.79615555556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3987.81860888889,
+    -19383.6060604444,
+    -34159.4894977778,
+    -60264.5056488889,
+    -90603.5201422222,
+    -104457.870777778,
+    -117913.05856,
+    -120604.037502222,
+    -133146.894915556,
+    -130485.809226667,
+    -113042.216693333,
+    -108062.645444444,
+    -84887.4611911111,
+    -39952.9192222222,
+    -25004.7978928889,
+    -6550.81339688889,
+    -3447.83508666667,
+    0,
+    0,
+    0,
+    0,
+    -121755.806968889,
+    -146912.445004445,
+    -221777.167266667,
+    -288334.202742222,
+    -296755.014977778,
+    -295682.374711111,
+    -325109.644977778,
+    -328315.842933333,
+    -337491.899422222,
+    -347019.641244444,
+    -349759.856133333,
+    -353997.6644,
+    -314459.4408,
+    -261570.362733333,
+    -243873.55676,
+    -207587.836351111,
+    -179350.727866667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -78162.9445466667,
+    -185295.968426667,
+    -268563.625586667,
+    -273702.041377778,
+    -296250.932666667,
+    -308855.921155556,
+    -307569.338977778,
+    -322422.182888889,
+    -335923.968977778,
+    -330132.883822222,
+    -339563.912177778,
+    -304204.882622222,
+    -234325.886102222,
+    -207827.56852,
+    -182821.275964444,
+    -161362.609208889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -66331.0776488889,
+    -168130.500377778,
+    -244095.997733333,
+    -265277.712288889,
+    -295691.166844445,
+    -307853.617955556,
+    -315971.687733333,
+    -324664.176888889,
+    -322199.448844444,
+    -341208.041111111,
+    -347966.260933333,
+    -311437.877644444,
+    -261325.355284444,
+    -250926.313048889,
+    -222338.398444444,
+    -196963.422431111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -100108.695488889,
+    -185480.310155555,
+    -275173.551426667,
+    -283452.224173333,
+    -306455.668755556,
+    -321302.651244444,
+    -334329.662133333,
+    -353358.769377778,
+    -345826.841822222,
+    -354970.660488889,
+    -361775.771688889,
+    -315959.964888889,
+    -278677.802702222,
+    -230874.387626667,
+    -178669.630604445,
+    -163587.312013333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -92329.1228444444,
+    -183302.498728889,
+    -270403.526022222,
+    -286391.141275555,
+    -308867.644,
+    -331659.784311111,
+    -354457.786044444,
+    -359073.656044444,
+    -353637.186933333,
+    -362042.4664,
+    -357174.555244445,
+    -342157.591511111,
+    -270042.755484444,
+    -216463.494951111,
+    -199254.652377778,
+    -174029.435702222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -99660.8828311111,
+    -168359.975057778,
+    -195402.818764444,
+    -206943.95912,
+    -220071.786471111,
+    -247060.412022222,
+    -240883.645284444,
+    -253169.186262222,
+    -243572.279657778,
+    -246735.103088889,
+    -239954.02372,
+    -34308.0765511111,
+    -18444.6062204445,
+    -34816.5549288889,
+    -26634.2732706667,
+    -4862.07904044444,
+    -4277.37286666667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -10832.4944088889,
+    -52230.54728,
+    -63113.1568488889,
+    -97764.1266,
+    -115067.338071111,
+    -118536.420813333,
+    -116851.554995556,
+    -124831.881351111,
+    -130776.82884,
+    -116125.324782222,
+    -93163.2032266667,
+    -76051.6602622222,
+    -37243.4768,
+    -23436.75022,
+    -7093.55178755556,
+    -9131.27522311111,
+    0,
+    0,
+    0,
+    0,
+    -123352.458382222,
+    -156938.700786667,
+    -222136.76552,
+    -296728.638577778,
+    -308568.711466667,
+    -312276.061022222,
+    -330285.2808,
+    -331123.464177778,
+    -335074.062755556,
+    -324672.969022222,
+    -339467.198711111,
+    -338432.657688889,
+    -325042.238622222,
+    -266949.096835556,
+    -249056.51936,
+    -214312.352995556,
+    -176965.715164444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -95283.8657866667,
+    -178065.904115556,
+    -251218.211875556,
+    -267306.35052,
+    -279352.745471111,
+    -302466.970933333,
+    -310590.902133333,
+    -321938.615555556,
+    -323852.369911111,
+    -338927.947866667,
+    -343203.855377778,
+    -313357.493422222,
+    -259234.292906667,
+    -217287.903986667,
+    -184661.762542222,
+    -154916.803191111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -67402.25256,
+    -167568.389986667,
+    -237306.712373333,
+    -243389.989426667,
+    -255018.758044444,
+    -273974.890582222,
+    -291963.888453333,
+    -307765.696622222,
+    -316598.859911111,
+    -336545.279733333,
+    -338453.172666667,
+    -316935.891688889,
+    -260723.973364444,
+    -240730.369093333,
+    -203765.309848889,
+    -179051.795333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -70289.5891466667,
+    -171559.432377778,
+    -253527.905302222,
+    -262625.125662222,
+    -278173.42732,
+    -302616.4372,
+    -319869.533511111,
+    -324256.808044444,
+    -329587.771555556,
+    -346395.399777778,
+    -353909.743066667,
+    -326235.038044445,
+    -268041.959008889,
+    -248628.928608889,
+    -214222.673235556,
+    -191838.780982222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -90844.4245955556,
+    -186157.890564444,
+    -271297.685982222,
+    -296661.232222222,
+    -306569.966488889,
+    -329576.048711111,
+    -330792.293822222,
+    -350870.595644445,
+    -342945.9528,
+    -349161.991066667,
+    -355542.149155556,
+    -332538.997644445,
+    -281974.26656,
+    -251517.144408889,
+    -215949.448222222,
+    -188008.634631111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -77191.9999555556,
+    -161481.303008889,
+    -193421.364982222,
+    -215149.364088889,
+    -238832.147506667,
+    -249671.968693333,
+    -242474.728346667,
+    -245037.928284444,
+    -230561.38768,
+    -224066.052644444,
+    -231966.077515555,
+    -4882.94570355556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4738.31511022222,
+    -17821.4198097778,
+    -22128.9203866667,
+    -37890.8708844444,
+    -41438.7897555555,
+    -57504.6549955556,
+    -79769.5603777778,
+    -90657.4452266667,
+    -96382.8824533333,
+    -101437.186835556,
+    -91478.63048,
+    -74694.1548755556,
+    -36989.3841466667,
+    -18854.4368622222,
+    -7195.51122711111,
+    -3240.31143288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -75832.7361422222,
+    -140157.448964445,
+    -208972.30428,
+    -280390.217204445,
+    -297077.3932,
+    -279210.605982222,
+    -302918.300444445,
+    -306783.9084,
+    -315863.251422222,
+    -317715.460844445,
+    -322310.815866667,
+    -336920.410755556,
+    -306669.610666667,
+    -249541.84512,
+    -231425.068244444,
+    -199262.565297778,
+    -175734.816497778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -78599.6205022222,
+    -164015.488906667,
+    -235085.233351111,
+    -253124.053311111,
+    -286758.066306667,
+    -324376.9672,
+    -317073.635111111,
+    -334933.388622222,
+    -334106.928088889,
+    -341378.022355556,
+    -338130.794444444,
+    -247943.728351111,
+    -201716.15664,
+    -178977.648342222,
+    -164871.549622222,
+    -147451.98892,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -86700.6921555556,
+    -176772.288231111,
+    -253849.404311111,
+    -266805.785062222,
+    -285305.898951111,
+    -313275.433511111,
+    -336902.826488889,
+    -337896.337555556,
+    -336181.871555556,
+    -353669.424755556,
+    -344938.836355556,
+    -319309.767688889,
+    -264538.293875556,
+    -235230.596622222,
+    -198950.737635556,
+    -177658.828342222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -85315.9311555556,
+    -172573.751493333,
+    -228052.698968889,
+    -220526.046693333,
+    -230612.968195556,
+    -249651.453715556,
+    -241197.231373333,
+    -262873.649964445,
+    -267855.858853333,
+    -279316.111582222,
+    -266173.337604444,
+    -220802.412751111,
+    -175832.116106667,
+    -153973.700355556,
+    -134088.239324444,
+    -110439.159084444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -23090.164324,
+    -119372.259622222,
+    -192193.397026667,
+    -192013.744435556,
+    -196516.195915556,
+    -203927.671244444,
+    -193487.599053333,
+    -213194.286706667,
+    -219622.508457778,
+    -219376.621795555,
+    -218981.268866667,
+    -166353.024088889,
+    -132380.807031111,
+    -113280.483506667,
+    -86975.8859288889,
+    -72000.2452222222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5539.835292,
+    -52022.7598622222,
+    -57776.9180577778,
+    -58433.9834888889,
+    -66182.7836666667,
+    -113613.412288889,
+    -106482.406013333,
+    -104828.898804444,
+    -124988.088253333,
+    -150814.686848889,
+    -148963.35664,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7525.714448,
+    -24296.5915528889,
+    -40084.5081511111,
+    -55500.9278088889,
+    -63569.1754977778,
+    -87065.5656888889,
+    -91209.8842711111,
+    -69503.2793555556,
+    -28943.8201617778,
+    -12799.0601786667,
+    -3966.80541022222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -60376.1657422222,
+    -123257.796413333,
+    -210793.155093333,
+    -297475.969911111,
+    -302880.2012,
+    -329142.303466667,
+    -336061.7124,
+    -337318.987466667,
+    -357441.249955555,
+    -369849.8808,
+    -358226.680533333,
+    -343672.769155556,
+    -330475.777022222,
+    -269133.941968889,
+    -244307.595075556,
+    -216666.886302222,
+    -185574.972124444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -111190.007271111,
+    -196688.8148,
+    -281806.043742222,
+    -288327.462106667,
+    -320807.361066667,
+    -333796.272711111,
+    -335490.223733333,
+    -346099.397955556,
+    -353704.593288889,
+    -370043.307733333,
+    -364246.361155556,
+    -342383.256266667,
+    -287558.443511111,
+    -239057.812262222,
+    -205974.479884444,
+    -195091.284173333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -113458.377671111,
+    -196900.412142222,
+    -271198.041804444,
+    -296080.951422222,
+    -318389.5244,
+    -331850.280533333,
+    -354097.308577778,
+    -351588.619866667,
+    -347327.365911111,
+    -357007.504711111,
+    -365184.188711111,
+    -340006.449555555,
+    -277725.614662222,
+    -270250.249831111,
+    -230034.445822222,
+    -176784.304146667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -112215.170017778,
+    -203783.187186667,
+    -268007.083546667,
+    -277453.058528889,
+    -300582.523688889,
+    -324807.781733333,
+    -334836.675155555,
+    -362578.786533333,
+    -353156.550311111,
+    -358771.7928,
+    -367783.729466667,
+    -342096.046577778,
+    -267369.360808889,
+    -244544.689604444,
+    -213040.131302222,
+    -185223.579862222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -114703.929893333,
+    -193755.75912,
+    -270975.30776,
+    -285605.124555556,
+    -306792.700533333,
+    -318081.799733333,
+    -340657.067422222,
+    -336829.558711111,
+    -344472.853288889,
+    -318530.198533333,
+    -334974.418577778,
+    -336703.538133333,
+    -268332.39248,
+    -235011.379431111,
+    -202019.192168889,
+    -182228.686177778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -100496.135497778,
+    -170495.584244444,
+    -189204.364764444,
+    -174478.713715556,
+    -204237.74048,
+    -224755.062826667,
+    -215672.496022222,
+    -223655.166946667,
+    -222577.544471111,
+    -219638.334297778,
+    -214212.415746667,
+    0,
+    -4244.226524,
+    -8572.066236,
+    -4010.56092711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2620.31949733333,
+    -17762.659052,
+    -22344.9137955556,
+    -47292.8852,
+    -64604.0095911111,
+    -97797.5367066667,
+    -120155.345631111,
+    -121829.074746667,
+    -123623.842231111,
+    -120295.726693333,
+    -101416.378786667,
+    -95493.11856,
+    -54917.1301555556,
+    -34027.9005688889,
+    -23963.0473213333,
+    -7639.77772444444,
+    -4002.67731422222,
+    0,
+    0,
+    -19290.7904395556,
+    0,
+    -122227.944528889,
+    -173705.885195555,
+    -258998.370662222,
+    -323987.182622222,
+    -333019.634266667,
+    -331911.825466667,
+    -346547.796755556,
+    -363079.938133333,
+    -366004.787822222,
+    -374788.129022222,
+    -372590.095688889,
+    -379231.087066667,
+    -329672.762177778,
+    -206535.417991111,
+    -230758.331466667,
+    -168310.152968889,
+    -161362.90228,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -77484.1918533333,
+    -168434.41512,
+    -254466.612071111,
+    -265955.292697778,
+    -303267.055066667,
+    -324409.205022222,
+    -346826.214311111,
+    -353865.7824,
+    -348086.420088889,
+    -364551.155111111,
+    -364510.125155556,
+    -271437.187831111,
+    -244666.607186667,
+    -235678.40928,
+    -209684.760151111,
+    -175734.523426667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -115490.825826667,
+    -199593.735653333,
+    -291757.566391111,
+    -294556.981644445,
+    -310116.126933333,
+    -318509.683555556,
+    -351559.312755556,
+    -347239.444577778,
+    -352494.2096,
+    -350093.9572,
+    -355627.139777778,
+    -346008.545911111,
+    -270678.133653333,
+    -231782.321928889,
+    -209130.855751111,
+    -182848.531577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -113887.726848889,
+    -210440.004404444,
+    -284569.70432,
+    -301414.845644445,
+    -322946.780177778,
+    -337178.313333333,
+    -347051.879066667,
+    -344367.347688889,
+    -349205.951733333,
+    -355252.008755556,
+    -364325.490355556,
+    -331841.4884,
+    -268021.737102222,
+    -248827.04468,
+    -223148.446995556,
+    -202850.34184,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -100601.934168889,
+    -188427.140177778,
+    -260682.650337778,
+    -270714.474471111,
+    -287684.464088889,
+    -298539.818044444,
+    -310787.259777778,
+    -323304.326933333,
+    -332234.203688889,
+    -342567.891066667,
+    -352250.960577778,
+    -292545.92768,
+    -233983.285973333,
+    -216843.901253333,
+    -189725.152128889,
+    -170202.806204444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -85960.3945288889,
+    -162440.231684444,
+    -176564.500813333,
+    -182577.733871111,
+    -195436.521942222,
+    -211794.872151111,
+    -204441.717973333,
+    -207877.097537778,
+    -214100.462582222,
+    -236985.213364444,
+    -229666.641577778,
+    -24677.0564693333,
+    -20906.5207822222,
+    -24716.8262191111,
+    -10472.2513991111,
+    -5053.77685422222,
+    -3915.63519422222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6409.14282177778,
+    -18757.9578524444,
+    -29705.6878222222,
+    -45869.7318844445,
+    -56495.0250177778,
+    -96723.7241555556,
+    -105257.66184,
+    -111248.914564445,
+    -113846.989964445,
+    -120285.176133333,
+    -93930.1703244445,
+    -87088.1321644444,
+    -50666.1336888889,
+    -29443.6822488889,
+    -7298.43780133333,
+    -7563.98953511111,
+    -3505.01326044444,
+    0,
+    0,
+    0,
+    0,
+    -134422.04732,
+    -169150.387844445,
+    -243996.353555556,
+    -293812.581022222,
+    -310221.632533333,
+    -316546.107111111,
+    -336073.435244444,
+    -328667.528266667,
+    -346497.974666667,
+    -345264.145288889,
+    -348048.320844444,
+    -370720.302,
+    -330868.492311111,
+    -279322.266075556,
+    -246268.826951111,
+    -226656.801266667,
+    -192843.428751111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -121138.013066667,
+    -200987.581857778,
+    -273425.089177778,
+    -287176.278782222,
+    -308217.026133333,
+    -322041.190444444,
+    -331401.881733333,
+    -350894.041333333,
+    -344264.7728,
+    -364035.349955556,
+    -368390.386666667,
+    -327146.4892,
+    -281413.035382222,
+    -246904.791262222,
+    -211012.079213333,
+    -192943.659071111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -110066.372631111,
+    -197034.931782222,
+    -274620.233168889,
+    -285231.458888889,
+    -309591.529644445,
+    -325742.678577778,
+    -336296.169288889,
+    -353297.224444445,
+    -366614.375733333,
+    -368548.645066667,
+    -372294.093866667,
+    -323993.044044444,
+    -276435.808702222,
+    -244941.507888889,
+    -228350.752288889,
+    -212317.124871111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -112219.273013333,
+    -197323.313755556,
+    -280219.063675556,
+    -297168.245244445,
+    -309670.658844444,
+    -326434.3264,
+    -352283.1984,
+    -358806.961333333,
+    -355961.240844444,
+    -364070.518488889,
+    -371142.3244,
+    -342670.465955556,
+    -285210.65084,
+    -254832.95096,
+    -228287.742,
+    -206701.29624,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -104689.690026667,
+    -201550.571462222,
+    -277750.818777778,
+    -304128.684133333,
+    -315807.567911111,
+    -331952.855422222,
+    -348540.680311111,
+    -339707.517022222,
+    -356986.989733333,
+    -352110.286444444,
+    -370283.626044444,
+    -322715.254,
+    -291270.775275556,
+    -261099.9836,
+    -217680.326204444,
+    -207707.116293333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -123890.830013333,
+    -197092.37372,
+    -212676.723124444,
+    -230995.132924444,
+    -252344.191084444,
+    -256691.021804444,
+    -253585.054168889,
+    -247259.407306667,
+    -261684.660466667,
+    -259548.465137778,
+    -256451.582706667,
+    -30729.9713555556,
+    -10074.6418226667,
+    -11336.3422631111,
+    -4157.36024666667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1804.02560084445,
+    -33814.5448,
+    -54723.4101511111,
+    -79554.1531111111,
+    -102433.042471111,
+    -107028.690564444,
+    -120306.863395556,
+    -111135.789115556,
+    -76173.2847733333,
+    -32786.4513422222,
+    -20028.3331977778,
+    -3430.54389111111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -123668.095968889,
+    -174758.010484444,
+    -242386.513942222,
+    -294565.773777778,
+    -298161.756311111,
+    -294498.367422222,
+    -311566.828933333,
+    -323981.3212,
+    -333649.737155556,
+    -332823.276622222,
+    -364346.005333333,
+    -361259.966533333,
+    -346093.536533333,
+    -291442.221875556,
+    -255189.911573333,
+    -228652.029391111,
+    -200261.058573333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -115489.360471111,
+    -210029.411777778,
+    -271135.324586667,
+    -287334.244111111,
+    -316765.910444444,
+    -337236.927555555,
+    -333321.497511111,
+    -345897.178888889,
+    -359481.024888889,
+    -353206.3724,
+    -357532.102,
+    -330660.411822222,
+    -270911.125186667,
+    -235277.194928889,
+    -202450.592844444,
+    -185604.572306667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -88124.7246844444,
+    -187382.341666667,
+    -243890.847955556,
+    -249671.675622222,
+    -252242.202337778,
+    -271341.060506667,
+    -271923.685875556,
+    -305573.524711111,
+    -317434.112577778,
+    -326698.0904,
+    -334247.602222222,
+    -302021.502844444,
+    -250154.070671111,
+    -219935.215333333,
+    -185747.297937778,
+    -168040.234475556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -104347.382968889,
+    -191717.156471111,
+    -255406.198053333,
+    -255294.53796,
+    -274262.686413333,
+    -286092.794884444,
+    -299043.900355556,
+    -327750.215688889,
+    -345149.847555556,
+    -342245.512844444,
+    -336952.648577778,
+    -317665.638755556,
+    -251441.238991111,
+    -205757.314191111,
+    -183180.288075556,
+    -162826.499408889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -23009.3646186667,
+    -114750.235128889,
+    -196257.121053333,
+    -204789.593382222,
+    -240155.363573333,
+    -245309.605204444,
+    -261407.415195556,
+    -283077.093151111,
+    -288423.003288889,
+    -302206.137644444,
+    -307891.7172,
+    -273251.004937778,
+    -215153.467084444,
+    -188469.049346667,
+    -159617.663813333,
+    -136766.030066667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -37541.2370488889,
+    -124478.730662222,
+    -142542.461666667,
+    -160760.641146667,
+    -187882.907124444,
+    -209585.702115556,
+    -218905.65652,
+    -213862.195768889,
+    -206889.154822222,
+    -220224.47652,
+    -213899.122728889,
+    -19952.2812444445,
+    -17427.151244,
+    -22142.9291857778,
+    -9090.65556711111,
+    -4350.99232977778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7772.27517377778,
+    -17812.1001484445,
+    -22307.7523786667,
+    -40931.7767333333,
+    -61520.6084311111,
+    -105122.556057778,
+    -111307.235715556,
+    -111349.731026667,
+    -115850.131008889,
+    -108744.62192,
+    -93060.6283377778,
+    -75527.9421866667,
+    -27677.1375124444,
+    -14019.2617497778,
+    -6958.70976933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -89744.5287155556,
+    -155012.930515556,
+    -217259.76916,
+    -285346.635835556,
+    -292606.886471111,
+    -300327.551822222,
+    -310236.286088889,
+    -316431.809377778,
+    -336858.865822222,
+    -331527.902311111,
+    -327269.579066667,
+    -333866.609777778,
+    -318263.503822222,
+    -258257.486893333,
+    -234713.912253333,
+    -208582.812773333,
+    -186181.922395556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -109261.306288889,
+    -191412.069444444,
+    -268313.049786667,
+    -295002.449733333,
+    -307962.054266667,
+    -315986.341288889,
+    -329236.086222222,
+    -337043.500622222,
+    -339616.664977778,
+    -338948.462844444,
+    -346093.536533333,
+    -317636.331644444,
+    -268170.324155556,
+    -234434.029342222,
+    -204713.981035556,
+    -174277.960004444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -61278.8247644444,
+    -154554.860368889,
+    -219315.663004444,
+    -233312.4462,
+    -261219.849684444,
+    -281008.89032,
+    -281864.071822222,
+    -291111.637662222,
+    -300263.076177778,
+    -304014.3864,
+    -316704.365511111,
+    -296435.567466667,
+    -235511.651817778,
+    -201952.665026667,
+    -167908.938617778,
+    -143504.614124444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -70999.1143066667,
+    -157788.90008,
+    -220898.540075556,
+    -219222.17332,
+    -222587.508888889,
+    -241424.654555555,
+    -249293.90696,
+    -263118.071271111,
+    -256984.385986667,
+    -258750.139431111,
+    -253207.871648889,
+    -211445.824457778,
+    -167314.004262222,
+    -146437.376733333,
+    -128070.903271111,
+    -112490.949933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -30212.9939155555,
+    -125641.050688889,
+    -186602.47944,
+    -203003.031888889,
+    -217029.122195556,
+    -229695.069475556,
+    -243926.30956,
+    -253189.70124,
+    -264778.612186667,
+    -277032.794555556,
+    -259817.504417778,
+    -217762.386115556,
+    -168613.188497778,
+    -147062.204342222,
+    -126973.938102222,
+    -113723.313955556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -22398.3406591111,
+    -104299.026235556,
+    -117561.666297778,
+    -119726.582595556,
+    -120597.883008889,
+    -131793.199453333,
+    -118326.581897778,
+    -123189.510844444,
+    -125930.898017778,
+    -123825.475155556,
+    -122271.612124444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6614.937356,
+    -13624.465656,
+    -35288.3994177778,
+    -46633.4752,
+    -44799.4361866667,
+    -36194.2822222222,
+    -21334.6097542222,
+    -3191.60301422222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8514.94667644444,
+    -11919.2020888889,
+    -25755.9391506667,
+    -44637.6609333333,
+    -53084.2634266667,
+    -70284.6069377778,
+    -76173.2847733333,
+    -85885.9544666667,
+    -98265.8643422222,
+    -93985.8538355555,
+    -74944.4376044445,
+    -34179.7114044445,
+    -21983.0588946667,
+    -7380.46840533333,
+    -3472.01345333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -125797.843733333,
+    -162012.054791111,
+    -234216.277506667,
+    -282656.829177778,
+    -297071.531777778,
+    -299029.2468,
+    -300283.591155556,
+    -322375.291511111,
+    -329177.472,
+    -331372.574622222,
+    -335847.770488889,
+    -316235.451733333,
+    -310945.518177778,
+    -248216.284484444,
+    -215078.733951111,
+    -190460.760617778,
+    -174872.308217778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -95474.9481511111,
+    -179611.854226667,
+    -272487.261622222,
+    -286243.726506667,
+    -299169.920933333,
+    -316856.762488889,
+    -348567.056711111,
+    -354639.490133333,
+    -358068.422133333,
+    -343171.617555555,
+    -345947.000977778,
+    -316144.599688889,
+    -270396.785386667,
+    -228049.768257778,
+    -202321.055413333,
+    -175575.092742222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -90708.4396,
+    -178193.390048889,
+    -264411.101013333,
+    -289749.150066667,
+    -293076.972533333,
+    -321768.634311111,
+    -333787.480577778,
+    -333790.411288889,
+    -348487.927511111,
+    -344270.634222222,
+    -369814.712266667,
+    -314858.017511111,
+    -262319.159422222,
+    -230816.359546667,
+    -195714.353355556,
+    -166809.042737778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -57897.0772133333,
+    -150819.669057778,
+    -238830.096008889,
+    -264536.242377778,
+    -286276.550471111,
+    -320775.123244444,
+    -325927.313377778,
+    -322762.145377778,
+    -324769.682488889,
+    -323937.360533333,
+    -332876.029422222,
+    -305060.650266667,
+    -242678.998911111,
+    -223975.786742222,
+    -188883.158826667,
+    -165867.112186667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -55418.8678977778,
+    -136430.170573333,
+    -178298.016435556,
+    -211233.934044444,
+    -220284.263026667,
+    -243224.404248889,
+    -226032.5598,
+    -219949.575817778,
+    -201273.03312,
+    -191576.189266667,
+    -176464.563564445,
+    -1474.64004835556,
+    -8050.45827244445,
+    -3631.26829511111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4456.17555155556,
+    -20460.5544724444,
+    -26795.6968386667,
+    -43305.0665911111,
+    -45983.7365466667,
+    -53688.8691288889,
+    -75098.88608,
+    -59770.0946844445,
+    -27613.6876168889,
+    -7244.42479555556,
+    -3372.63303955556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -68657.4761288889,
+    -115558.232182222,
+    -191081.19216,
+    -267440.577088889,
+    -281334.199253333,
+    -306168.459066667,
+    -332656.226088889,
+    -325678.202933333,
+    -334625.663955556,
+    -339308.940311111,
+    -355858.665955556,
+    -352271.475555555,
+    -310831.220444444,
+    -225711.646933333,
+    -203365.853924444,
+    -173042.3722,
+    -148992.37068,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -65272.7978666667,
+    -136098.414075556,
+    -238233.989368889,
+    -241104.620902222,
+    -266003.942502222,
+    -291880.070115555,
+    -310561.595022222,
+    -316865.554622222,
+    -321358.334755556,
+    -325467.191733333,
+    -323371.733288889,
+    -282045.775911111,
+    -229133.545226667,
+    -190566.266217778,
+    -158023.943111111,
+    -137709.425973333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -18831.8117724444,
+    -104911.251786667,
+    -171882.103671111,
+    -162591.163306667,
+    -176409.173124444,
+    -197864.616097778,
+    -191332.647173333,
+    -218719.849435555,
+    -224195.883146667,
+    -240014.68944,
+    -236025.405475556,
+    -188367.939813333,
+    -139971.348808889,
+    -110713.473644444,
+    -78478.5821333333,
+    -59033.6069822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -168.485409493333,
+    -31562.00024,
+    -69478.6613822222,
+    -109839.535591111,
+    -142605.471955555,
+    -169863.722928889,
+    -177935.1944,
+    -203154.256582222,
+    -210366.736626667,
+    -225169.465377778,
+    -230225.235115556,
+    -191383.934617778,
+    -146808.111688889,
+    -112933.487311111,
+    -91882.7755422222,
+    -66923.3743644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2108.05757151111,
+    -36401.4834977778,
+    -113089.694213333,
+    -137884.389426667,
+    -178177.85728,
+    -208984.320195556,
+    -224341.246417778,
+    -249745.236471111,
+    -264762.493275555,
+    -287607.972528889,
+    -285241.423306667,
+    -247078.582431111,
+    -197942.279942222,
+    -169194.348511111,
+    -145229.337613333,
+    -122453.023142222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -53310.2212533333,
+    -136413.758591111,
+    -148898.880995555,
+    -149168.213346667,
+    -147009.451542222,
+    -167675.360942222,
+    -170744.98776,
+    -175733.058071111,
+    -186711.208822222,
+    -163701.316675556,
+    -164899.098306667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12625.4741595556,
+    -25424.0654244444,
+    -38299.7050844445,
+    -50727.3855511111,
+    -52215.6006533333,
+    -42215.7212711111,
+    -50527.2179822222,
+    -13084.1011413333,
+    -5692.34949822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4239.06847244445,
+    -43961.54588,
+    -115937.759271111,
+    -180460.588164444,
+    -193632.376182222,
+    -215197.13468,
+    -238052.578351111,
+    -241567.087115556,
+    -272222.91148,
+    -272695.04904,
+    -254250.325591111,
+    -274458.457915556,
+    -217121.146524445,
+    -164393.257568889,
+    -122731.147626667,
+    -92330.0020577778,
+    -72305.3322488889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4158.03431022222,
+    -47813.6725644445,
+    -108807.632208889,
+    -135705.112644445,
+    -160573.075635556,
+    -197226.89336,
+    -209160.749004444,
+    -234969.177191111,
+    -238328.651337778,
+    -241137.444866667,
+    -248910.569946667,
+    -216783.528604444,
+    -159587.77056,
+    -124983.399115556,
+    -100441.038128889,
+    -81000.7521155556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4244.13860266667,
+    -42478.3129866667,
+    -125077.474942222,
+    -147276.439324445,
+    -178693.955506667,
+    -209508.917484444,
+    -213098.745524444,
+    -238680.922813333,
+    -236663.714355556,
+    -237617.953893333,
+    -246138.996448889,
+    -207704.478653333,
+    -157566.752177778,
+    -124068.138035556,
+    -100750.228151111,
+    -82122.6283288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9120.78327733333,
+    -72327.0195111111,
+    -156840.521964445,
+    -179678.088297778,
+    -204257.962386667,
+    -233897.416137778,
+    -234591.994671111,
+    -251987.230471111,
+    -252535.273448889,
+    -245891.35136,
+    -214565.566435555,
+    -173145.533231111,
+    -131186.835324444,
+    -105150.690884444,
+    -87869.4597466667,
+    -75486.9122311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3313.90158888889,
+    -43578.7950088889,
+    -126544.881995556,
+    -146824.523671111,
+    -179410.514373333,
+    -207266.044271111,
+    -213252.900928889,
+    -229727.600368889,
+    -251219.970302222,
+    -255941.345902222,
+    -253345.322,
+    -213691.335311111,
+    -157697.461893333,
+    -121851.641222222,
+    -99684.9146622222,
+    -71727.98216,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2786.12447844444,
+    -36368.9526044444,
+    -58702.4366266667,
+    -95848.0276755556,
+    -135418.489097778,
+    -158045.337302222,
+    -158569.055377778,
+    -171444.255431111,
+    -183201.389195556,
+    -185806.791373333,
+    -181057.867088889,
+    -17874.2605311111,
+    -12087.0146071111,
+    -7678.08211866667,
+    -2964.61943866667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3475.94060622222,
+    -9956.91515733333,
+    -28800.5670026667,
+    -41984.7812355556,
+    -46765.9433422222,
+    -58516.0434,
+    -68480.1681066667,
+    -80103.0753022222,
+    -76978.3511155556,
+    -41886.6024133333,
+    -23667.5144128889,
+    -11596.0032675556,
+    -3028.97785466667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -31232.5883111111,
+    -106162.37236,
+    -165932.760115556,
+    -243270.709484444,
+    -257300.023573333,
+    -271208.885435555,
+    -287540.273102222,
+    -294061.691466667,
+    -290295.727688889,
+    -304873.084755556,
+    -302009.78,
+    -316628.167022222,
+    -281965.767497778,
+    -227844.61848,
+    -188166.893031111,
+    -163406.194066667,
+    -145749.538835555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -49249.7210088889,
+    -139403.963137778,
+    -208977.872631111,
+    -219464.8362,
+    -238080.127035555,
+    -243792.669133333,
+    -267214.326191111,
+    -274930.302404444,
+    -277685.46392,
+    -296626.063688889,
+    -286700.624368889,
+    -261894.499382222,
+    -209764.182422222,
+    -175098.559115556,
+    -155345.273155556,
+    -140887.782173333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -85429.9358177778,
+    -164254.634933333,
+    -228501.683911111,
+    -222904.611831111,
+    -232595.887333333,
+    -247103.200404444,
+    -234525.7606,
+    -256178.440431111,
+    -256436.929151111,
+    -259087.757351111,
+    -274582.133924444,
+    -232182.657066667,
+    -181801.681568889,
+    -146427.119244444,
+    -133883.382617778,
+    -128625.979955556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -38044.4401466667,
+    -135699.837364445,
+    -209576.32384,
+    -229328.144444444,
+    -239765.872066667,
+    -242874.184271111,
+    -234992.329808889,
+    -237348.328471111,
+    -196994.194897778,
+    -195666.875835556,
+    -187191.552373333,
+    -121840.211448889,
+    -75842.70056,
+    -51390.8985466667,
+    -34413.5821511111,
+    -24753.9290217778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -30702.4226711111,
+    -54978.0889466667,
+    -63116.9667733333,
+    -83408.3312933333,
+    -129501.969506667,
+    -133990.646644444,
+    -160467.863106667,
+    -175860.250933333,
+    -194440.373235556,
+    -193601.017573333,
+    -147028.794235556,
+    -109636.730382222,
+    -90463.7252222222,
+    -68435.9143688889,
+    -55155.3969688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2375.83078431111,
+    -29012.7504871111,
+    -30577.8674488889,
+    -31602.4440533333,
+    -30420.7813333333,
+    -37759.5750266667,
+    -28374.2950715556,
+    -24407.1086688889,
+    -23467.1416942222,
+    -21134.9697133333,
+    -21661.7943426667,
+    -181.930632857778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -32593.0244088889,
+    -108561.745546667,
+    -186219.142426667,
+    -211707.243888889,
+    -224505.659311111,
+    -251772.995488889,
+    -251440.652848889,
+    -276373.970697778,
+    -280582.764924444,
+    -285847.787435555,
+    -296995.333288889,
+    -248085.281697778,
+    -183935.239257778,
+    -155345.859297778,
+    -128603.120408889,
+    -101920.461097778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -31255.4478577778,
+    -51000.2347555556,
+    -77975.9651777778,
+    -126062.780017778,
+    -174417.168782222,
+    -152038.551808889,
+    -181607.668493333,
+    -181937.373493333,
+    -183590.880702222,
+    -188115.312515556,
+    -146243.656728889,
+    -96278.8422088889,
+    -64449.8541866667,
+    -28556.2922315556,
+    -13343.2639248889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -781.679267555556,
+    -13640.8776382222,
+    -45825.1850755556,
+    -39332.7807511111,
+    -35818.2719866667,
+    -54326.8849377778,
+    -71413.8099288889,
+    -128300.964093333,
+    -143727.055097778,
+    -170797.154417778,
+    -167830.39556,
+    -120551.870844444,
+    -80668.9956177778,
+    -59618.8699911111,
+    -29498.1934755556,
+    -24503.411836,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    72.8319810355556,
+    -32759.4888,
+    -36817.9375466667,
+    -30635.3093866667,
+    -44940.4033911111,
+    -81404.6041066667,
+    -119462.818595556,
+    -157580.52652,
+    -170987.943711111,
+    -187592.766724444,
+    -183252.090497778,
+    -134066.258991111,
+    -87216.20424,
+    -48660.9411466667,
+    -19896.6563475556,
+    -7984.400044,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2864.6352984,
+    -21574.4591515556,
+    -51948.3198,
+    -33723.9858266667,
+    -45348.94452,
+    -65259.9027377778,
+    -79076.7402711111,
+    -125009.775515556,
+    -141462.787693333,
+    -165055.305208889,
+    -165920.451128889,
+    -127300.126248889,
+    -82725.7686755556,
+    -50931.6561155555,
+    -25141.8379444444,
+    -9108.76736177778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2999.84658622222,
+    -17525.6817515556,
+    -19652.3815764444,
+    -13798.6964315556,
+    -28776.6524,
+    -40636.3610533333,
+    -44393.2396266667,
+    -50213.0457511111,
+    -60941.2068444444,
+    -77590.2835955556,
+    -92378.06572,
+    -3919.44511866667,
+    -5287.47175822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3374.68453733333,
+    -10327.1225848889,
+    -18755.5253622222,
+    -31229.6576,
+    -36299.7878222222,
+    -42502.0517466667,
+    -37973.8100088889,
+    -23639.2916648889,
+    -11343.9328048889,
+    -2482.93362186667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6108.89146844445,
+    -18822.8437964444,
+    -29517.82924,
+    -36640.6295244444,
+    -43583.7772177778,
+    -56359.9192355556,
+    -59068.7755155556,
+    -56106.1196533333,
+    -33530.5588933333,
+    -13631.0011417778,
+    -3298.48604844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -17009.6714462222,
+    -52549.1155777778,
+    -113742.363577778,
+    -201000.770057778,
+    -211859.933937778,
+    -233494.736431111,
+    -273507.735231111,
+    -296371.091822222,
+    -299334.040755556,
+    -317346.191244444,
+    -313562.6432,
+    -319939.870577778,
+    -274668.882973333,
+    -221928.39196,
+    -170914.382862222,
+    -144918.975306667,
+    -117111.216,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -19722.2790364444,
+    -80679.5461777778,
+    -169052.795164445,
+    -187906.645884444,
+    -220408.525177778,
+    -255611.347831111,
+    -271866.537008889,
+    -295401.026444444,
+    -301350.37,
+    -291658.801426667,
+    -262139.506831111,
+    -186542.106791111,
+    -135511.685711111,
+    -93505.2172133333,
+    -65993.4597288889,
+    -38543.83332,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -24677.9649897778,
+    -41936.1314311111,
+    -40524.4078888889,
+    -70290.1752888889,
+    -96098.3104044444,
+    -116449.461431111,
+    -149747.321862222,
+    -161341.80116,
+    -171501.111226667,
+    -176386.89972,
+    -142003.210822222,
+    -93065.9036177778,
+    -49457.8014977778,
+    -23648.7871688889,
+    -10769.8944195556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5626.99464044444,
+    -14090.2142657778,
+    -41678.2288533333,
+    -45072.2853911111,
+    -40857.3366711111,
+    -62537.8582577778,
+    -75652.2043377778,
+    -112647.156835556,
+    -140863.750342222,
+    -160462.001684444,
+    -177246.77036,
+    -135867.180968889,
+    -87816.7069466667,
+    -51495.2318622222,
+    -22560.7020546667,
+    -10624.677684,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2687.03420506667,
+    -16208.3857213333,
+    -5999.60525111111,
+    -12787.27872,
+    -32052.3082088889,
+    -44730.2714044444,
+    -48020.5807688889,
+    -52154.9349333333,
+    -61699.3818088889,
+    -76085.9495822222,
+    -86027.5078133333,
+    -1512.24693333333,
+    -2534.47310746667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4976.90430177778,
+    -11600.4286413333,
+    -17537.4339031111,
+    -24497.2866497778,
+    -28636.4764875556,
+    -21038.9010031111,
+    -11344.5482542222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    1088.90864404445,
+    -48149.2389866667,
+    -110713.766715556,
+    -144337.229151111,
+    -186959.733124444,
+    -222816.397426667,
+    -235746.694848889,
+    -248504.666457778,
+    -254856.396648889,
+    -255827.927382222,
+    -256534.814902222,
+    -213225.645315556,
+    -153947.030884445,
+    -130347.186591111,
+    -103809.890551111,
+    -89334.5222311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3973.60466,
+    -48118.7595911111,
+    -134712.18772,
+    -160792.878968889,
+    -192193.397026667,
+    -230675.685413333,
+    -247764.954973333,
+    -263910.828626667,
+    -259263.306946667,
+    -268471.015115556,
+    -263784.514977778,
+    -221440.42856,
+    -171224.452097778,
+    -148018.788448889,
+    -130180.136057778,
+    -117984.567911111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -25741.3149022222,
+    -111139.012897778,
+    -194589.546431111,
+    -204204.330373333,
+    -214433.684435556,
+    -234489.712853333,
+    -243949.755248889,
+    -258412.22844,
+    -271792.97616,
+    -273621.153751111,
+    -286539.142186667,
+    -236428.964395556,
+    -187644.933382222,
+    -165139.416617778,
+    -146575.120155556,
+    -134290.16532,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -33090.9522266667,
+    -113479.18572,
+    -193121.846306667,
+    -197643.933551111,
+    -200263.989284445,
+    -212455.747506667,
+    -207522.481493333,
+    -223756.27648,
+    -235741.126497778,
+    -230133.210786667,
+    -238356.200022222,
+    -197321.262257778,
+    -132410.993355555,
+    -101502.248622222,
+    -72394.4258666667,
+    -48484.5123377778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -29313.2656044444,
+    -37226.4786755555,
+    -32369.9972933333,
+    -45037.703,
+    -81455.0123377778,
+    -86484.6987466667,
+    -128269.898555556,
+    -132026.190986667,
+    -146515.040577778,
+    -141832.936506667,
+    -100174.050346667,
+    -52159.331,
+    -24141.6741635556,
+    -7873.67777822222,
+    -5063.65335066667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5413.72679288889,
+    -12632.9474728889,
+    -11696.9955724445,
+    -11351.7578035556,
+    -16604.998856,
+    -34257.3752488889,
+    -38523.9044844444,
+    -42931.4009244445,
+    -49990.3117066667,
+    -66240.8117466667,
+    -73333.4257066667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4188.89469822222,
+    -14015.7742035556,
+    -17399.5439453333,
+    -23690.7842591111,
+    -25411.0530671111,
+    -23485.1948746667,
+    -14475.5734697778,
+    -1899.90967626667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    1214.17016764445,
+    -41616.9769911111,
+    -72215.94556,
+    -72083.4774177778,
+    -105559.818155556,
+    -117731.354471111,
+    -110763.588804444,
+    -123192.441555556,
+    -130695.648142222,
+    -132194.120733333,
+    -127112.853808889,
+    -78398.57372,
+    -33876.3828044445,
+    -21000.1570022222,
+    -12816.820288,
+    -9659.828972,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -24989.8512662222,
+    -53197.3888755556,
+    -27971.7619004444,
+    -28471.9170586667,
+    -27672.8293671111,
+    -29601.3545066667,
+    -28784.6239342222,
+    -26464.9953968889,
+    -27390.7484226667,
+    -28618.2474644444,
+    -24108.4692066667,
+    -31137.9263422222,
+    -18698.6988737778,
+    -17147.5027897778,
+    -6098.42882977778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12359.0139053333,
+    16607.2848106667,
+    -26800.6497404444,
+    -29886.8057688889,
+    -46424.2224266667,
+    -41149.5285688889,
+    -37537.7201955556,
+    -38708.2462133333,
+    -44204.20876,
+    -53035.6136222222,
+    -59939.1967155555,
+    -45191.8584044444,
+    -36552.1220488889,
+    -14521.1753346667,
+    -3569.48890488889,
+    3624.99657333333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2407.40333511111,
+    44439.8379333333,
+    30160.8272577778,
+    -4842.38466177778,
+    -32202.94676,
+    -46214.9696533333,
+    -43212.45612,
+    -55770.5532311111,
+    -67485.1916844445,
+    -105042.254573333,
+    -109381.758515556,
+    -70802.7566622222,
+    -24365.5218782222,
+    -8903.00213466667,
+    -4112.95997333333,
+    -6095.17574044444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2661.15602595556,
+    7250.22760355556,
+    -43691.3343155556,
+    -33557.8145066667,
+    -19939.767108,
+    -23022.4648973333,
+    -42411.7858444444,
+    -92671.7229733333,
+    -118804.58088,
+    -133103.520391111,
+    -139231.637324445,
+    -82964.6216311111,
+    -45261.0231866667,
+    -26849.1823164444,
+    -17169.3952017778,
+    -9341.17275288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -15900.6610546667,
+    -12487.2618235556,
+    -8816.10655022222,
+    -9842.03128177778,
+    -9988.53753022222,
+    -16673.9584884444,
+    -17772.7993124444,
+    -8624.76042177778,
+    -7907.08788488889,
+    -8636.65910888889,
+    -651.473634311111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12188.3879044444,
+    21551.1306911111,
+    -24874.4984768889,
+    -35069.1822266667,
+    -32432.7145111111,
+    -42689.9103288889,
+    -36594.0312177778,
+    -50754.6411644445,
+    -47822.4646977778,
+    -25986.9084933333,
+    -26051.178988,
+    -38567.8651511111,
+    -10239.4650155556,
+    -145.443279524444,
+    6868.23871733333,
+    11501.956748,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -6407.882616,
+    37713.2697911111,
+    12165.4111293333,
+    -120.776363315556,
+    -27610.8741342222,
+    -37044.4815155556,
+    -34725.7028844444,
+    -48920.8952222222,
+    -60039.1339644445,
+    -94924.2675333333,
+    -111131.393048889,
+    -72664.9305022222,
+    -25736.5378431111,
+    -11839.1936755556,
+    -5603.54895155556,
+    -25773.6699528889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1314.59391457778,
+    20242.2751088889,
+    -26684.3005093333,
+    -27622.4504431111,
+    -36425.2222577778,
+    -23012.2074084444,
+    -43998.7659111111,
+    -80688.3383111111,
+    -120584.694808889,
+    -142415.268804444,
+    -162145.695217778,
+    -113301.584626667,
+    -68173.6157244445,
+    -47929.1425822222,
+    -23815.0757173333,
+    -14498.7260875555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -23498.9106026667,
+    -30784.4825822222,
+    -27171.6777671111,
+    -75171.2746444445,
+    -126849.38288,
+    -136613.046946667,
+    -179952.695928889,
+    -183191.717848889,
+    -187066.70408,
+    -183715.142853333,
+    -131066.676168889,
+    -84490.6429066667,
+    -58364.5256355555,
+    -37124.783,
+    -22241.6062288889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -22919.4504017778,
+    -33279.6900222222,
+    -45258.6786177778,
+    -103257.451506667,
+    -139707.87788,
+    -149239.136555556,
+    -164159.093751111,
+    -174986.019808889,
+    -177311.832146667,
+    -173722.004106667,
+    -133848.507155556,
+    -87684.5318755556,
+    -69254.4619822222,
+    -51042.4369955556,
+    -36065.6240044444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -15697.0352466667,
+    -17413.69928,
+    -18500.4655742222,
+    -18274.0681408889,
+    -21118.4405026667,
+    -16521.7080462222,
+    -13222.8116982222,
+    -12846.5083915556,
+    -14510.9471528889,
+    -34426.47728,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12091.9382017778,
+    -14338.5627253333,
+    -20078.3311293333,
+    -18449.764272,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -597.566134133333,
+    -21087.9318,
+    -47723.4066622222,
+    -77298.67784,
+    -115648.498084444,
+    -139636.954671111,
+    -140188.221431111,
+    -158967.045946667,
+    -163476.824204444,
+    -166680.38452,
+    -154744.184306667,
+    -92452.2127111111,
+    -44983.7779155556,
+    -21004.9340613333,
+    -8477.28703866667,
+    -3765.87585644444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -483.608363288889,
+    1088.97018897778,
+    -31577.82608,
+    -28504.97548,
+    -47222.2550622222,
+    -59938.3175022222,
+    -76097.9654977778,
+    -119455.198746667,
+    -130175.44692,
+    -135026.946093333,
+    -126040.213542222,
+    -60685.6488355556,
+    -20187.1484328889,
+    -7747.30551511111,
+    -9985.81196888889,
+    -18691.4600173333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5615.41833155556,
+    36579.3776622222,
+    -29886.2196266667,
+    -19199.2057173333,
+    -43802.9944088889,
+    -60027.7041911111,
+    -76471.9242355556,
+    -124128.510684445,
+    -141213.384177778,
+    -151136.772,
+    -150049.478177778,
+    -96115.0154577778,
+    -45090.1627288889,
+    -26463.7351911111,
+    -10776.4885195556,
+    -4371.39007911111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -1980.99659128889,
+    5340.92792888889,
+    -25956.2825622222,
+    -29438.1138977778,
+    -18932.5403133333,
+    -35461.6044444444,
+    -35082.3704266667,
+    -87115.97392,
+    -99405.3248222222,
+    -113063.317813333,
+    -124865.291457778,
+    -69019.12588,
+    -34471.6102311111,
+    -23259.6473475555,
+    -8150.51274977778,
+    -4565.02216222222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -4478.74202711111,
+    2053.0862232,
+    -6590.70037511111,
+    -9891.06207866667,
+    -27693.8718728889,
+    -42438.4553155555,
+    -46675.67744,
+    -50161.4652355556,
+    -57320.8994088889,
+    -65863.6292266667,
+    -55015.6020488889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7456.46174444445,
+    -12287.5631684445,
+    -14360.8068226667,
+    -13025.8092973333,
+    -8249.83454933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -22148.7026866667,
+    20250.1587217778,
+    -2867.63341586667,
+    -24594.3518017778,
+    -11214.6005235556,
+    -35568.5754,
+    -21572.202504,
+    -23631.7597373333,
+    -26041.8300195555,
+    -26242.5544235556,
+    -27500.3570182222,
+    -20067.1065057778,
+    -9136.14020355555,
+    -26814.0430902222,
+    -9473.55297377778,
+    6533.46358711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8863.49614888889,
+    41993.2802977778,
+    0,
+    -23922.1052871111,
+    -37395.8737777778,
+    -48563.3484666667,
+    -55495.0663866667,
+    -73353.0614711111,
+    -115348.100195556,
+    -121385.072013333,
+    -117149.022173333,
+    -57821.7579377778,
+    -16802.1184853333,
+    -6125.86028577778,
+    -5807.73159466667,
+    -24731.3332391111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3655.82765422222,
+    39571.3406355556,
+    -21967.0865191111,
+    -17883.726728,
+    -44345.7621066667,
+    -58721.4862488889,
+    -74157.5416711111,
+    -119588.546102222,
+    -135447.796208889,
+    -141071.53776,
+    -132060.480306667,
+    -69048.4329911111,
+    -24706.1877377778,
+    -7135.84194888889,
+    -4217.61566711111,
+    -1873.73842604444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -3568.87345555556,
+    768.074906577778,
+    -33505.3547777778,
+    -37662.2754177778,
+    -42206.9291377778,
+    -25946.4939871111,
+    -25450.2366746667,
+    -27776.8403044444,
+    -31209.1426222222,
+    -38253.69292,
+    -62631.0548711111,
+    -30136.2092844444,
+    -9994.83855911111,
+    -5340.10732977778,
+    -7142.67050577778,
+    -16037.9355631111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -13230.4901613333,
+    26480.0006377778,
+    -43435.4832355556,
+    -29968.5726088889,
+    -19585.3269062222,
+    -20637.8624946667,
+    -39129.9755422222,
+    -62032.01752,
+    -98871.0561866667,
+    -108096.348622222,
+    -107629.193271111,
+    -51347.2309511111,
+    -15854.7661186667,
+    -4370.12987333333,
+    -8652.98316977778,
+    -32930.9354,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    2823.74601697778,
+    28674.575732,
+    27883.4302675556,
+    6589.58670488889,
+    -5122.50202977778,
+    -23630.2064604444,
+    -31655.1968533333,
+    -38467.6348311111,
+    -44336.6769022222,
+    -46787.0444622222,
+    -40042.5989822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -270.676375226667,
+    57.7865894044444,
+    -14219.4000115556,
+    -18936.7019231111,
+    -23641.0793986667,
+    -26827.6122826667,
+    -11899.3025604444,
+    -30381.5098044444,
+    -30796.4984977778,
+    -26684.6521946667,
+    -19816.58932,
+    16060.6485742222,
+    7518.94450533333,
+    20621.2160555556,
+    29893.8394755556,
+    36279.5659155555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    30700.6642444444,
+    97398.0807822222,
+    30332.5669288889,
+    22511.7591791111,
+    2594.70215151111,
+    -2285.53557497778,
+    -20929.2924075556,
+    -42813.5863377778,
+    -45704.4397777778,
+    -29523.10452,
+    -39551.9979422222,
+    2310.23267751111,
+    -3378.553076,
+    19042.1489088889,
+    33206.1291733333,
+    44225.30988,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    53672.4571466667,
+    111845.314275556,
+    35717.7485955556,
+    9175.70480355556,
+    4947.421348,
+    -3716.05376755556,
+    -10449.4211595556,
+    -39129.3894,
+    -21167.2661497778,
+    -26353.5111462222,
+    -37165.2268133333,
+    -29127.986048,
+    0,
+    -6475.55273555556,
+    15675.3186773333,
+    29008.3837275556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    29671.6915733333,
+    10261.1229706667,
+    -8959.71139466667,
+    -13829.8498906667,
+    -28296.338156,
+    -26299.2343764444,
+    -28020.7340831111,
+    -29577.9088177778,
+    -38930.1010444444,
+    -34534.9135911111,
+    -39692.9651466667,
+    -8473.00820044445,
+    -12931.7334706667,
+    11100.4786328889,
+    25615.177096,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    14914.3302302222,
+    81785.0104088889,
+    51623.89008,
+    19461.7974328889,
+    6081.43070533333,
+    9135.87643955556,
+    -7438.20341422222,
+    -22975.426984,
+    -28827.8812302222,
+    -26860.1724831111,
+    -23380.6271022222,
+    -100.321758186667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -481.937857955556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -1076.73447008889,
+    -27352.5026426667,
+    -22908.2257782222,
+    -39291.7507955556,
+    -95627.0520577778,
+    -113601.982515556,
+    -145072.83764,
+    -152635.537662222,
+    -160070.165608889,
+    -161685.573573333,
+    -113807.425364444,
+    -72497.2938266667,
+    -52253.4068266667,
+    -35533.6999377778,
+    -19847.0980226667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -18886.8798342222,
+    -42030.5003288889,
+    -20401.1782653333,
+    -15121.2677417778,
+    -34832.3807688889,
+    -39502.1758533333,
+    -83455.5157422222,
+    -91633.6650977778,
+    -96569.8618222222,
+    -89365.0016266667,
+    -37819.9476755556,
+    -6842.00885288889,
+    -3463.07478444445,
+    -8888.583036,
+    -25974.8925777778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2905.18168662222,
+    38215.0075333333,
+    7987.91689733333,
+    -13397.1597022222,
+    -27209.8063186667,
+    -26608.4243986667,
+    -20778.3607853333,
+    -19929.0993195556,
+    -18404.7485493333,
+    -18620.2437373333,
+    -21114.5133497778,
+    -18309.8521235556,
+    -9693.854528,
+    -19303.1580404445,
+    -13415.2714968889,
+    -2223.73566977778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -8140.43110355556,
+    39755.0962222222,
+    17005.7442933333,
+    5619.90231955556,
+    -2260.34611297778,
+    -10098.7908822222,
+    -901.554144133333,
+    -17946.9714737778,
+    -22709.8459431111,
+    -22719.839668,
+    -21045.8467884444,
+    14746.8107831111,
+    20168.6263386667,
+    9234.14318311111,
+    21741.7734488889,
+    31421.0330355556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    42876.3035555556,
+    108029.82148,
+    37853.9439244444,
+    13984.2983662222,
+    9877.9618,
+    -4001.47572266667,
+    -14528.12112,
+    -40716.3694666667,
+    -44801.7807555556,
+    -20369.0576715556,
+    -17720.8964186667,
+    -12528.3210862222,
+    -6713.37994222222,
+    7250.98958844445,
+    25233.3054382222,
+    36532.4862844444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    48481.2885555555,
+    109591.597431111,
+    83941.7207155556,
+    58593.1211022222,
+    39927.7151066667,
+    23956.3946071111,
+    29062.8656471111,
+    29697.4818311111,
+    12803.1631742222,
+    10702.0777644444,
+    16986.6360568889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    23436.3692275556,
+    101629.148413333,
+    148742.381022222,
+    67144.3499822222,
+    31942.1134711111,
+    2197.50287462222,
+    0,
+    -15527.0833093333,
+    -38940.3585333333,
+    -24047.7155653333,
+    -31560.2418133333,
+    -27083.3461342222,
+    -24681.2473862222,
+    -6528.83306355556,
+    8937.08630488889,
+    26813.0173413333,
+    37089.3213955555,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    38477.0131066667,
+    102320.210093333,
+    25617.6682004444,
+    11518.5445728889,
+    -320.062960444444,
+    -25100.1925395556,
+    -32350.6546,
+    -39675.6739511111,
+    -44564.1000844444,
+    -40762.3816311111,
+    -36485.5949066667,
+    -18570.6854124445,
+    -3054.32850577778,
+    -19845.3982102222,
+    -7314.41017688889,
+    153.318393351111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -2376.08575617778,
+    23050.5411097778,
+    12945.7129626667,
+    -7557.65919911111,
+    -20419.4365955556,
+    -21591.6038115556,
+    -38242.2631466667,
+    -34660.0549555556,
+    -19026.9971324444,
+    -18959.8545408889,
+    -22565.4204995556,
+    -30673.9947733333,
+    -24277.3953951111,
+    -7509.77137955556,
+    1839.27619408889,
+    6698.52123688889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    5224.28562666667,
+    58564.9862755556,
+    35495.8937644444,
+    -1655.71989577778,
+    -4975.87855288889,
+    -30088.4386933333,
+    -45219.4070888889,
+    -41187.3347422222,
+    -42826.1883955556,
+    -50383.6131377778,
+    -47863.4946533333,
+    -27620.9264733333,
+    -4211.08018133333,
+    -16034.0377173333,
+    -14587.1749488889,
+    4860.17407822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    6317.76324933333,
+    51304.4425688889,
+    27619.0215111111,
+    -4403.95027955556,
+    -6104.96431555556,
+    -31418.6884666667,
+    -44785.9549155556,
+    -39232.8435022222,
+    -41628.4067644444,
+    -46920.3918177778,
+    -40876.0932222222,
+    -43217.4383288889,
+    -5062.97928711111,
+    -11109.8862155556,
+    8802.91835022222,
+    25675.9893515556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    17669.3159031111,
+    84128.1139422222,
+    59027.1594177778,
+    29730.3057955556,
+    10059.0504395556,
+    4786.43738666667,
+    -5851.04750488889,
+    -14845.5171333333,
+    -24647.2511373333,
+    -26459.7201168889,
+    -16966.2676146667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -7936.04331066667,
+    -8369.26102711111,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -13606.9693106667,
+    38096.3137333333,
+    18734.0432497778,
+    -18870.4971591111,
+    -13746.7642306667,
+    -40696.7337022222,
+    -49684.6385377778,
+    -99798.6262533333,
+    -112439.076346667,
+    -142072.375604444,
+    -138252.486742222,
+    -77831.7741911111,
+    -28477.4267955556,
+    -16417.99018,
+    -2494.91436888889,
+    -1910.30197786667,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -11038.1717146667,
+    -46561.3797066667,
+    -24760.7868857778,
+    -28510.8955164444,
+    -86800.9224755556,
+    -120247.956102222,
+    -164354.865253333,
+    -164341.677053333,
+    -160511.530702222,
+    -159084.274391111,
+    -99789.2479777778,
+    -61130.5307822222,
+    -43087.0216844444,
+    -24543.0350502222,
+    -17196.9731933333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -778.1565528,
+    -19905.214024,
+    -53630.2549066667,
+    -88953.8228577778,
+    -133233.643964444,
+    -141618.701524444,
+    -142930.780888889,
+    -150570.265542222,
+    -148036.958857778,
+    -144477.903284444,
+    -141595.841977778,
+    -82222.8586488889,
+    -41170.6296888889,
+    -24629.6082564444,
+    -7616.53718533333,
+    -3630.24254622222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -5148.17505911111,
+    11311.9587466667,
+    -32257.1649155556,
+    -40792.5679555556,
+    -31288.2718222222,
+    -24670.1399911111,
+    -33017.3913777778,
+    -32626.1414444444,
+    -32031.7932311111,
+    -43884.7612488889,
+    -40115.5736888889,
+    -26358.3761266667,
+    -9408.78425822222,
+    -18226.7957706667,
+    -11019.4151635556,
+    -857.754666577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -9354.88848088889,
+    39109.1674933333,
+    28895.6978853333,
+    -2744.71353044445,
+    -8712.94551911111,
+    -18400.3817897778,
+    -39187.1244088889,
+    -43785.1170711111,
+    -22641.6482955555,
+    -23809.8297444444,
+    -23378.194612,
+    -29349.6064222222,
+    0,
+    11417.4936537778,
+    19459.3063284444,
+    16220.8998577778,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    5979.17819466667,
+    50191.0654177778,
+    44647.33228,
+    28346.453316,
+    16952.5518866667,
+    9022.80960488889,
+    11554.7388551111,
+    3305.93005466667,
+    -344.288218488889,
+    328.309981511111,
+    -3054.79741955555,
+    -217.35736184,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    20973.0772315556,
+    92140.3850488889,
+    149047.468048889,
+    67067.8584222222,
+    39552.8771555556,
+    6897.92682088889,
+    -2339.17638044444,
+    6671.08978088889,
+    -25310.0607622222,
+    -33598.25832,
+    -38766.5673644444,
+    -36206.88428,
+    0,
+    1197.61751128889,
+    15578.165604,
+    33707.8669155555,
+    44548.5673155556,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    47254.7859555556,
+    109941.231266667,
+    34553.084,
+    8150.835128,
+    7671.42940444444,
+    -13771.7925035556,
+    -27705.5947173333,
+    -24327.8329333333,
+    -30963.25596,
+    -46981.9367511111,
+    -44144.1291822222,
+    -25807.0507524444,
+    -16401.109284,
+    -12831.4738435556,
+    6574.52284977778,
+    23918.7642764444,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    14380.4425871111,
+    74172.4882977778,
+    40339.4800177778,
+    11365.1804604444,
+    -6702.30185422222,
+    -13663.6785706667,
+    -26282.2069448889,
+    -24631.1029191111,
+    -24929.9475311111,
+    -30465.3281422222,
+    -29012.2522662222,
+    -14967.6105582222,
+    -21474.3753671111,
+    -7618.85244711111,
+    -5669.98817244444,
+    11288.9233573333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    11120.6126182222,
+    76817.4550755556,
+    50630.6720844444,
+    11615.1408111111,
+    19441.4876048889,
+    8770.09438577778,
+    13155.7277208889,
+    -5481.33829822222,
+    -11460.8388711111,
+    -14292.6970964444,
+    -10607.0641102222,
+    20729.1541457778,
+    15974.1339822222,
+    27234.3949848889,
+    34257.0821777778,
+    39180.0907022222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    7254.97535555556,
+    66132.9615777778,
+    43034.2688844444,
+    23440.9118297778,
+    10673.0637244444,
+    -973.157278,
+    -2146.8807016,
+    -26067.4737417778,
+    -30182.51452,
+    -29877.7205644444,
+    -37012.5367644444,
+    0,
+    10681.6214008889,
+    5653.69341866667,
+    16174.7411577778,
+    23593.7484142222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    48121.6903022222,
+    39818.6926533333,
+    27173.4068866667,
+    20271.9045982222,
+    8953.61551555556,
+    11266.1224248889,
+    3444.02516222222,
+    2798.84376466667,
+    6142.21365377778,
+    8322.57479911111,
+    -150.739367573333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    11525.1093657778,
+    60229.3371155556,
+    112483.037013333,
+    49611.37076,
+    25463.0145751111,
+    -719.647836177778,
+    3686.57081377778,
+    -8337.93172533333,
+    -33542.86788,
+    -30704.76724,
+    -20687.8897333333,
+    -31062.3139955556,
+    -5298.28608222222,
+    1531.89442062222,
+    16252.4636164444,
+    34206.0878044444,
+    43642.9775822222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    36461.8561466667,
+    96058.7458044444,
+    29876.8413511111,
+    20499.2398591111,
+    2563.98243764444,
+    -21246.981492,
+    -28307.416244,
+    -31195.0752088889,
+    -45564.3517866667,
+    -42909.7136622222,
+    -36861.019,
+    -20486.7843368889,
+    -5884.13523333333,
+    -19734.0018808889,
+    -13262.581448,
+    9840.82969022222,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    8322.545492,
+    71167.3371244444,
+    35873.9554977778,
+    14789.6870866667,
+    -3574.96933466667,
+    -16252.9325302222,
+    -12563.07932,
+    -18959.8545408889,
+    -2224.51230822222,
+    -1919.73593693333,
+    -17072.9454991111,
+    -30390.88808,
+    -3970.46879911111,
+    -3283.598036,
+    10150.2834764444,
+    20394.4669368889,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    10593.2604608889,
+    52404.63152,
+    35691.3721955556,
+    14469.3603622222,
+    0,
+    -20827.5381177778,
+    -23855.9591373333,
+    -14165.2111631111,
+    -11747.5503391111,
+    -12604.0506613333,
+    -15097.9978955556,
+    -14427.8321857778,
+    -5895.94599911111,
+    -16316.1479688889,
+    -6108.18809777778,
+    5555.133604,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    -12618.6162955556,
+    34125.78632,
+    27918.4229582222,
+    15448.0127235556,
+    8667.78326088889,
+    -639.012250666667,
+    3682.17474711111,
+    6657.57920266667,
+    10344.7947728889,
+    13405.4243075556,
+    18355.4246813333,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0
+  ]
+}
diff --git a/ghedesigner/borehole_heat_exchangers.py b/ghedesigner/borehole_heat_exchangers.py
index bc1c15f4..347e9043 100644
--- a/ghedesigner/borehole_heat_exchangers.py
+++ b/ghedesigner/borehole_heat_exchangers.py
@@ -7,6 +7,7 @@
 from numpy import pi, log, sqrt
 
 from ghedesigner.borehole import GHEBorehole
+from ghedesigner.constants import TWO_PI
 from ghedesigner.enums import BHPipeType, FlowConfig
 from ghedesigner.media import GHEFluid, Pipe, Grout, Soil
 from ghedesigner.utilities import solve_root
@@ -41,7 +42,7 @@ def calc_effective_borehole_resistance(self, m_flow_borehole: Optional[float] =
 
     @staticmethod
     def compute_fluid_resistance(h_conv: float, radius: float) -> float:
-        return 1 / (h_conv * 2 * pi * radius)
+        return 1 / (h_conv * TWO_PI * radius)
 
     @staticmethod
     def compute_reynolds(m_flow_pipe: float, r_in: float, fluid: GHEFluid) -> float:
@@ -165,7 +166,7 @@ def equivalent_single_u_tube(self, vol_fluid: float, vol_pipe: float, resist_con
         r_p_o_prime = sqrt((vol_fluid + vol_pipe) / (n * pi))
         # A_s_prime = n * pi * ((r_p_i_prime * 2) ** 2)
         # h_prime = 1 / (R_conv * A_s_prime)
-        k_p_prime = log(r_p_o_prime / r_p_i_prime) / (2 * pi * n * resist_pipe)
+        k_p_prime = log(r_p_o_prime / r_p_i_prime) / (TWO_PI * n * resist_pipe)
 
         # Place single u-tubes at a B-spacing
         # Total horizontal space (m)
@@ -326,7 +327,7 @@ def u_tube_volumes(self) -> Tuple[float, float, float, float]:
         vol_fluid = n * pi * (self.r_in ** 2)
         vol_pipe = n * pi * (self.r_out ** 2) - vol_fluid
         # V_grout = pi * (u_tube.b.r_b**2) - vol_pipe - vol_fluid
-        resist_pipe = log(self.r_out / self.r_in) / (n * 2 * pi * self.pipe.k)
+        resist_pipe = log(self.r_out / self.r_in) / (n * TWO_PI * self.pipe.k)
         return vol_fluid, vol_pipe, resist_conv, resist_pipe
 
     def to_single(self) -> SingleUTube:
@@ -516,7 +517,7 @@ def concentric_tube_volumes(self) -> Tuple[float, float, float, float]:
         # V_grout = pi * ((coaxial.b.r_b**2) - (r_out_out**2))
         area_surf_outer = pi * 2 * r_out_in
         resist_conv = 1 / (self.h_f_a_in * area_surf_outer)
-        resist_pipe = log(r_out_out / r_out_in) / (2 * pi * self.pipe.k[1])
+        resist_pipe = log(r_out_out / r_out_in) / (TWO_PI * self.pipe.k[1])
         return vol_fluid, vol_pipe, resist_conv, resist_pipe
 
 
diff --git a/ghedesigner/constants.py b/ghedesigner/constants.py
new file mode 100644
index 00000000..729ad687
--- /dev/null
+++ b/ghedesigner/constants.py
@@ -0,0 +1,6 @@
+from math import pi
+
+DEG_TO_RAD = pi / 180.0
+RAD_TO_DEG = 180.0 / pi
+PI_OVER_2 = pi / 2.0
+TWO_PI = 2.0 * pi
diff --git a/ghedesigner/design.py b/ghedesigner/design.py
index 17fae8e5..56b6a49b 100644
--- a/ghedesigner/design.py
+++ b/ghedesigner/design.py
@@ -65,7 +65,7 @@ def __init__(
             print("\n")
 
     @abstractmethod
-    def find_design(self, disp=False, use_perimeter=True) -> AnyBisectionType:
+    def find_design(self, disp=False) -> AnyBisectionType:
         pass
 
     def to_input(self) -> dict:
@@ -91,7 +91,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
         self.coordinates_domain, self.fieldDescriptors = square_and_near_square(1, number_of_boreholes,
                                                                                 self.geometric_constraints.b)
 
-    def find_design(self, disp=False, use_perimeter=True) -> Bisection1D:
+    def find_design(self, disp=False) -> Bisection1D:
         if disp:
             title = "Find near-square.."
             print(title + "\n" + len(title) * "=")
@@ -127,7 +127,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
             self.geometric_constraints.length, self.geometric_constraints.width,
             self.geometric_constraints.b_min, self.geometric_constraints.b_max_x)
 
-    def find_design(self, disp=False, use_perimeter=True) -> Bisection1D:
+    def find_design(self, disp=False) -> Bisection1D:
         if disp:
             title = "Find rectangle..."
             print(title + "\n" + len(title) * "=")
@@ -164,7 +164,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
             self.geometric_constraints.b_max_x, self.geometric_constraints.b_max_y, disp=False
         )
 
-    def find_design(self, disp=False, use_perimeter=True) -> Bisection2D:
+    def find_design(self, disp=False) -> Bisection2D:
         if disp:
             title = "Find bi-rectangle..."
             print(title + "\n" + len(title) * "=")
@@ -201,7 +201,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
             self.geometric_constraints.b_max_x, self.geometric_constraints.b_max_y
         )
 
-    def find_design(self, disp=False, use_perimeter=True) -> BisectionZD:
+    def find_design(self, disp=False) -> BisectionZD:
         if disp:
             title = "Find bi-zoned..."
             print(title + "\n" + len(title) * "=")
@@ -241,7 +241,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
             self.geometric_constraints.no_go_boundaries,
         )
 
-    def find_design(self, disp=False, use_perimeter=True) -> Bisection2D:
+    def find_design(self, disp=False) -> Bisection2D:
         if disp:
             title = "Find bi-rectangle_constrained..."
             print(title + "\n" + len(title) * "=")
@@ -274,7 +274,7 @@ def __init__(self, v_flow: float, _borehole: GHEBorehole, bhe_type: BHPipeType,
                          hourly_extraction_ground_loads, method, flow_type, load_years)
         self.geometric_constraints = geometric_constraints
 
-    def find_design(self, disp=False, use_perimeter=True) -> RowWiseModifiedBisectionSearch:
+    def find_design(self, disp=False) -> RowWiseModifiedBisectionSearch:
         if disp:
             title = "Find row-wise..."
             print(title + "\n" + len(title) * "=")
@@ -294,5 +294,4 @@ def find_design(self, disp=False, use_perimeter=True) -> RowWiseModifiedBisectio
             disp=disp,
             field_type="row-wise",
             load_years=self.load_years,
-            use_perimeter=use_perimeter,
         )
diff --git a/ghedesigner/geometry.py b/ghedesigner/geometry.py
index 4a457fe3..446e214c 100644
--- a/ghedesigner/geometry.py
+++ b/ghedesigner/geometry.py
@@ -1,3 +1,6 @@
+from ghedesigner.constants import RAD_TO_DEG
+
+
 class GeometricConstraints:
     pass  # TODO: Pull in common functionality!
 
@@ -104,22 +107,35 @@ class GeometricConstraintsRowWise(GeometricConstraints):
     Geometric constraints for rowwise design algorithm
     """
 
-    def __init__(self, p_spacing: float,
+    def __init__(self,
+                 perimeter_spacing_ratio: float,
                  spacing_start: float,
                  spacing_stop: float,
                  spacing_step: float,
-                 rotate_step: float,
-                 rotate_stop: float,
                  rotate_start: float,
+                 rotate_stop: float,
+                 rotate_step: float,
                  property_boundary,
                  no_go_boundaries):
         super().__init__()
-        self.p_spacing = p_spacing
+        self.perimeter_spacing_ratio = perimeter_spacing_ratio
         self.spacing_start = spacing_start
         self.spacing_stop = spacing_stop
         self.spacing_step = spacing_step
-        self.rotate_step = rotate_step
-        self.rotate_stop = rotate_stop
         self.rotate_start = rotate_start
+        self.rotate_stop = rotate_stop
+        self.rotate_step = rotate_step
         self.property_boundary = property_boundary
         self.no_go_boundaries = no_go_boundaries
+
+    def to_input(self) -> dict:
+        return {'perimeter_spacing_ratio': self.perimeter_spacing_ratio,
+                'spacing_start': self.spacing_start,
+                'spacing_stop': self.spacing_stop,
+                'spacing_step': self.spacing_step,
+                'rotate_start': self.rotate_start * RAD_TO_DEG,
+                'rotate_stop': self.rotate_stop * RAD_TO_DEG,
+                'rotate_step': self.rotate_step,
+                'property_boundary': self.property_boundary,
+                'no_go_boundaries': self.no_go_boundaries,
+                'method': 'rowwise'}
diff --git a/ghedesigner/ground_heat_exchangers.py b/ghedesigner/ground_heat_exchangers.py
index 6d1e798d..10640793 100644
--- a/ghedesigner/ground_heat_exchangers.py
+++ b/ghedesigner/ground_heat_exchangers.py
@@ -1,5 +1,5 @@
 import warnings
-from math import ceil, floor, pi
+from math import ceil, floor
 
 import numpy as np
 from scipy.interpolate import interp1d
@@ -7,6 +7,7 @@
 from ghedesigner import VERSION
 from ghedesigner.borehole import GHEBorehole
 from ghedesigner.borehole_heat_exchangers import get_bhe_object
+from ghedesigner.constants import TWO_PI
 from ghedesigner.enums import BHPipeType, DesignMethodTimeStep
 from ghedesigner.gfunction import GFunction, calc_g_func_for_multiple_lengths
 from ghedesigner.ground_loads import HybridLoad
@@ -142,7 +143,7 @@ def _simulate_detailed(
         q_dot_b_dt = np.hstack((q_dot_b[1:] - q_dot_b[:-1]))
 
         ts = self.radial_numerical.t_s  # (-)
-        two_pi_k = 2.0 * pi * self.bhe.soil.k  # (W/m.K)
+        two_pi_k = TWO_PI * self.bhe.soil.k  # (W/m.K)
         h = self.bhe.b.H  # (meters)
         tg = self.bhe.soil.ugt  # (Celsius)
         rb = self.bhe.calc_effective_borehole_resistance()  # (m.K/W)
diff --git a/ghedesigner/ground_loads.py b/ghedesigner/ground_loads.py
index 880cd796..41809603 100644
--- a/ghedesigner/ground_loads.py
+++ b/ghedesigner/ground_loads.py
@@ -1,11 +1,12 @@
 from calendar import monthrange
 from json import dumps
-from math import floor, pi
+from math import floor
 
 import numpy as np
 from scipy.interpolate import interp1d
 
 from ghedesigner.borehole_heat_exchangers import SingleUTube
+from ghedesigner.constants import TWO_PI
 from ghedesigner.radial_numerical_borehole import RadialNumericalBH
 from ghedesigner.simulation import SimulationParameters
 
@@ -276,7 +277,7 @@ def perform_current_month_simulation(
             two_day_fluid_temps_nm,
     ):
         ts = self.radial_numerical.t_s
-        two_pi_k = 2.0 * pi * self.bhe.soil.k
+        two_pi_k = TWO_PI * self.bhe.soil.k
         resist_bh_effective = self.bhe.calc_effective_borehole_resistance()
         g_sts = self.radial_numerical.g_sts
         hours_in_day = 24
diff --git a/ghedesigner/manager.py b/ghedesigner/manager.py
index f1ba850d..39b3c19a 100644
--- a/ghedesigner/manager.py
+++ b/ghedesigner/manager.py
@@ -9,12 +9,13 @@
 
 from ghedesigner import VERSION
 from ghedesigner.borehole import GHEBorehole
+from ghedesigner.constants import DEG_TO_RAD
 from ghedesigner.design import AnyBisectionType, DesignBase, DesignNearSquare, DesignRectangle, DesignBiRectangle
-from ghedesigner.design import DesignBiZoned, DesignBiRectangleConstrained
+from ghedesigner.design import DesignBiZoned, DesignBiRectangleConstrained, DesignRowWise
 from ghedesigner.enums import BHPipeType, DesignMethodTimeStep
 from ghedesigner.geometry import GeometricConstraints, GeometricConstraintsRectangle, GeometricConstraintsNearSquare
 from ghedesigner.geometry import GeometricConstraintsBiRectangle, GeometricConstraintsBiZoned
-from ghedesigner.geometry import GeometricConstraintsBiRectangleConstrained
+from ghedesigner.geometry import GeometricConstraintsBiRectangleConstrained, GeometricConstraintsRowWise
 from ghedesigner.media import GHEFluid, Grout, Pipe, Soil
 from ghedesigner.output import OutputManager
 from ghedesigner.simulation import SimulationParameters
@@ -28,6 +29,7 @@ class DesignGeomType(Enum):
         BiRectangle = auto()
         BiZonedRectangle = auto()
         BiRectangleConstrained = auto()
+        RowWise = auto()
 
     def __init__(self):
         self._fluid: Optional[GHEFluid] = None
@@ -63,6 +65,8 @@ def get_design_geometry_type(self, design_geometry_str: str):
             return self.DesignGeomType.BiZonedRectangle
         if design_geometry_str == "BIRECTANGLECONSTRAINED":
             return self.DesignGeomType.BiRectangleConstrained
+        if design_geometry_str == "ROWWISE":
+            return self.DesignGeomType.RowWise
         raise ValueError("Geometry constraint method not supported.")
 
     def get_bh_pipe_type(self, bh_pipe_str: str):
@@ -187,14 +191,26 @@ def set_geometry_constraints_bi_rectangle_constrained(self, b_min: float, b_max_
         self._geometric_constraints = GeometricConstraintsBiRectangleConstrained(b_min, b_max_x, b_max_y,
                                                                                  property_boundary, no_go_boundaries)
 
+    def set_geometry_constraints_rowwise(self, perimeter_spacing_ratio: float,
+                                         spacing_start: float, spacing_stop: float, spacing_step: float,
+                                         rotate_start: float, rotate_stop: float, rotate_step: float,
+                                         property_boundary: list, no_go_boundaries: list):
+
+        # convert from degrees to radians
+        rotate_start = rotate_start * DEG_TO_RAD
+        rotate_stop = rotate_stop * DEG_TO_RAD
+
+        self._geometric_constraints = GeometricConstraintsRowWise(perimeter_spacing_ratio,
+                                                                  spacing_start, spacing_stop, spacing_step,
+                                                                  rotate_start, rotate_stop, rotate_step,
+                                                                  property_boundary, no_go_boundaries)
+
     def set_design(self, flow_rate: float, flow_type: str, design_method_geo: DesignGeomType):
         """
         system_flow_rate L/s total system flow rate
         flow_type string, for now either "system" or "borehole"
         """
 
-        # TODO: Allow setting flow and method dynamically
-
         if design_method_geo == self.DesignGeomType.NearSquare:
             # temporary disable of the type checker because of the _geometric_constraints member
             # noinspection PyTypeChecker
@@ -280,6 +296,23 @@ def set_design(self, flow_rate: float, flow_type: str, design_method_geo: Design
                 flow_type=flow_type,
                 method=DesignMethodTimeStep.Hybrid,
             )
+        elif design_method_geo == self.DesignGeomType.RowWise:
+            # temporary disable of the type checker because of the _geometric_constraints member
+            # noinspection PyTypeChecker
+            self._design = DesignRowWise(
+                flow_rate,
+                self._borehole,
+                self._u_tube_type,
+                self._fluid,
+                self._pipe,
+                self._grout,
+                self._soil,
+                self._simulation_parameters,
+                self._geometric_constraints,
+                self._ground_loads,
+                flow_type=flow_type,
+                method=DesignMethodTimeStep.Hybrid,
+            )
         else:
             raise NotImplementedError("This design method has not been implemented")
 
@@ -394,15 +427,15 @@ def run_manager_from_cli_worker(input_file_path: Path, output_directory: Path):
     if version != VERSION:
         print("Mismatched version, could be a problem", file=stderr)
 
-    fluid_props = inputs['fluid']
-    grout_props = inputs['grout']
-    soil_props = inputs['soil']
-    pipe_props = inputs['pipe']
-    borehole_props = inputs['borehole']
-    sim_props = inputs['simulation']
-    constraint_props = inputs['geometric_constraints']
-    design_props = inputs['design']
-    ground_load_props = inputs['ground_loads']  # TODO: Modify this to allow different spec types
+    fluid_props = inputs['fluid']  # type: dict
+    grout_props = inputs['grout']  # type: dict
+    soil_props = inputs['soil']  # type: dict
+    pipe_props = inputs['pipe']  # type: dict
+    borehole_props = inputs['borehole']  # type: dict
+    sim_props = inputs['simulation']  # type: dict
+    constraint_props = inputs['geometric_constraints']  # type: dict
+    design_props = inputs['design']  # type: dict
+    ground_load_props = inputs['ground_loads']    # type: list
 
     ghe.set_fluid(**fluid_props)
     ghe.set_grout(**grout_props)
@@ -491,6 +524,25 @@ def run_manager_from_cli_worker(input_file_path: Path, output_directory: Path):
             property_boundary=constraint_props["property_boundary"],
             no_go_boundaries=constraint_props["no_go_boundaries"]
         )
+    elif geom_type == ghe.DesignGeomType.RowWise:
+
+        # if present, we are using perimeter calculations
+        if "perimeter_spacing_ratio" in constraint_props.keys():
+            perimeter_spacing_ratio = constraint_props["perimeter_spacing_ratio"]
+        else:
+            perimeter_spacing_ratio = None
+
+        ghe.set_geometry_constraints_rowwise(
+            perimeter_spacing_ratio=perimeter_spacing_ratio,
+            spacing_start=constraint_props["spacing_start"],
+            spacing_stop=constraint_props["spacing_stop"],
+            spacing_step=constraint_props["spacing_step"],
+            rotate_start=constraint_props["rotate_start"],
+            rotate_stop=constraint_props["rotate_stop"],
+            rotate_step=constraint_props["rotate_step"],
+            property_boundary=constraint_props["property_boundary"],
+            no_go_boundaries=constraint_props["no_go_boundaries"]
+        )
     else:
         raise ValueError("Geometry constraint method not supported.")
 
diff --git a/ghedesigner/radial_numerical_borehole.py b/ghedesigner/radial_numerical_borehole.py
index ef0f1694..e949e6df 100644
--- a/ghedesigner/radial_numerical_borehole.py
+++ b/ghedesigner/radial_numerical_borehole.py
@@ -5,6 +5,7 @@
 from scipy.linalg.lapack import dgtsv
 
 from ghedesigner.borehole_heat_exchangers import SingleUTube
+from ghedesigner.constants import TWO_PI
 
 
 class RadialCellType(object):
@@ -95,7 +96,7 @@ def __init__(
         # other
         self.g = np.array([], dtype=self.dtype)
         self.lntts = np.array([], dtype=self.dtype)
-        self.c_0 = 2.0 * pi * single_u_tube.soil.k
+        self.c_0 = TWO_PI * single_u_tube.soil.k
         soil_diffusivity = single_u_tube.k_s / single_u_tube.soil.rhoCp
         self.t_s = single_u_tube.b.H ** 2 / (9 * soil_diffusivity)
         # default is at least 49 hours, or up to -8.6 log time
@@ -174,7 +175,7 @@ def fill_radial_cell(self, radial_cell, resist_p_eq, resist_f_eq, resist_tg_eq):
             inner_radius = self.r_in_convection + j * thickness
             center_radius = inner_radius + thickness / 2.0
             outer_radius = inner_radius + thickness
-            k_eq = log(self.r_in_tube / self.r_in_convection) / (2.0 * pi * resist_f_eq)
+            k_eq = log(self.r_in_tube / self.r_in_convection) / (TWO_PI * resist_f_eq)
             rho_cp = 1.0
             volume = pi * (outer_radius ** 2 - inner_radius ** 2)
             radial_cell[:, idx] = np.array(
@@ -204,7 +205,7 @@ def fill_radial_cell(self, radial_cell, resist_p_eq, resist_f_eq, resist_tg_eq):
             inner_radius = self.r_in_tube + j * thickness
             center_radius = inner_radius + thickness / 2.0
             outer_radius = inner_radius + thickness
-            conductivity = log(self.r_borehole / self.r_in_tube) / (2.0 * pi * resist_p_eq)
+            conductivity = log(self.r_borehole / self.r_in_tube) / (TWO_PI * resist_p_eq)
             rho_cp = self.single_u_tube.pipe.rhoCp
             volume = pi * (outer_radius ** 2 - inner_radius ** 2)
             radial_cell[:, idx] = np.array(
@@ -234,7 +235,7 @@ def fill_radial_cell(self, radial_cell, resist_p_eq, resist_f_eq, resist_tg_eq):
             inner_radius = self.r_out_tube + j * thickness
             center_radius = inner_radius + thickness / 2.0
             outer_radius = inner_radius + thickness
-            conductivity = log(self.r_borehole / self.r_in_tube) / (2.0 * pi * resist_tg_eq)
+            conductivity = log(self.r_borehole / self.r_in_tube) / (TWO_PI * resist_tg_eq)
             rho_cp = self.single_u_tube.grout.rhoCp
             volume = pi * (outer_radius ** 2 - inner_radius ** 2)
             radial_cell[:, idx] = np.array(
@@ -340,18 +341,18 @@ def calc_sts_g_functions(self, single_u_tube, final_time=None, calculate_at_bh_w
         _center_cell = radial_cell[:, 1: self.num_cells - 1]
         _east_cell = radial_cell[:, 2: self.num_cells - 0]
 
-        fe_1 = log(radial_cell[r_out_idx, 0] / radial_cell[r_center_idx, 0]) / (2.0 * pi * radial_cell[k_idx, 0])
-        fe_2 = log(radial_cell[r_center_idx, 1] / radial_cell[r_in_idx, 1]) / (2.0 * pi * radial_cell[k_idx, 1])
+        fe_1 = log(radial_cell[r_out_idx, 0] / radial_cell[r_center_idx, 0]) / (TWO_PI * radial_cell[k_idx, 0])
+        fe_2 = log(radial_cell[r_center_idx, 1] / radial_cell[r_in_idx, 1]) / (TWO_PI * radial_cell[k_idx, 1])
         ae = 1 / (fe_1 + fe_2)
         ad = radial_cell[rho_cp_idx, 0] * radial_cell[volume_idx, 0] / time_step
         _d[0] = -ae / ad - 1
         _du[0] = ae / ad
 
         def fill_f1(fx_1, cell):
-            fx_1[:] = np.log(cell[r_out_idx, :] / cell[r_center_idx, :]) / (2.0 * pi * cell[k_idx, :])
+            fx_1[:] = np.log(cell[r_out_idx, :] / cell[r_center_idx, :]) / (TWO_PI * cell[k_idx, :])
 
         def fill_f2(fx_2, cell):
-            fx_2[:] = np.log(cell[r_center_idx, :] / cell[r_in_idx, :]) / (2.0 * pi * cell[k_idx, :])
+            fx_2[:] = np.log(cell[r_center_idx, :] / cell[r_in_idx, :]) / (TWO_PI * cell[k_idx, :])
 
         fill_f1(_fe_1, _center_cell)
         fill_f2(_fe_2, _east_cell)
diff --git a/ghedesigner/rowwise.py b/ghedesigner/rowwise.py
index 8f9bad37..30bda3e1 100644
--- a/ghedesigner/rowwise.py
+++ b/ghedesigner/rowwise.py
@@ -2,6 +2,7 @@
 
 import numpy as np
 
+from ghedesigner.constants import DEG_TO_RAD, RAD_TO_DEG, PI_OVER_2
 from ghedesigner.shape import Shapes, sort_intersections
 
 
@@ -42,10 +43,10 @@ def field_optimization_wp_space_fr(
 
     """
     if rotate_start is None:
-        rotate_start = (-90.0 + rotate_step) * (pi / 180.0)
+        rotate_start = (-90.0 + rotate_step) * DEG_TO_RAD
     if rotate_stop is None:
-        rotate_stop = pi / 2
-    if rotate_start > pi / 2 or rotate_start < -pi / 2 or rotate_stop > pi / 2 or rotate_stop < -pi / 2:
+        rotate_stop = PI_OVER_2
+    if rotate_start > PI_OVER_2 or rotate_start < -PI_OVER_2 or rotate_stop > PI_OVER_2 or rotate_stop < -PI_OVER_2:
         raise ValueError("Invalid Rotation")
 
     space = space_start
@@ -72,10 +73,10 @@ def field_optimization_wp_space_fr(
         # Assuming that the rotation with the maximum number of boreholes is most efficiently using space
         if len(hole) > max_l:
             max_l = len(hole)
-            max_rt = rt * (180 / pi)
+            max_rt = rt * RAD_TO_DEG
             max_hole = hole
 
-        rt += rotate_step * (pi / 180)
+        rt += rotate_step * DEG_TO_RAD
 
     # Ensures that there are no repeated boreholes
     max_hole = np.array(remove_duplicates(max_hole, p_space * x_s))
@@ -108,14 +109,14 @@ def field_optimization_fr(
 
     """
     if rotate_start is None:
-        rotate_start = (-90.0) * (pi / 180.0)
+        rotate_start = -90.0 * DEG_TO_RAD
     if rotate_stop is None:
-        rotate_stop = pi / 2
+        rotate_stop = PI_OVER_2
     if (
-            rotate_start > pi / 2
-            or rotate_start < -pi / 2
-            or rotate_stop > pi / 2
-            or rotate_stop < -pi / 2
+            rotate_start > PI_OVER_2
+            or rotate_start < -PI_OVER_2
+            or rotate_stop > PI_OVER_2
+            or rotate_stop < -PI_OVER_2
     ):
         raise ValueError("Invalid Rotation")
 
@@ -144,10 +145,10 @@ def field_optimization_fr(
         # Assuming that the rotation with the maximum number of boreholes is most efficiently using space
         if len(hole) > max_l:
             max_l = len(hole)
-            max_rt = rt * (180 / pi)
+            max_rt = rt * RAD_TO_DEG
             max_hole = hole
 
-        rt += rotate_step * (pi / 180)
+        rt += rotate_step * DEG_TO_RAD
 
     # Ensures that there are no repeated boreholes
     max_hole = np.array(remove_duplicates(max_hole, x_s * 1.2))
@@ -463,13 +464,13 @@ def gen_borehole_config(
         if vert[0] != 0:
             phi = atan(vert[1] / vert[0])
         else:
-            phi = pi / 2
+            phi = PI_OVER_2
         dist_vert = sqrt(vert[1] ** 2 + vert[0] ** 2)
         ref_angle = phi
-        if phi > pi / 2:
+        if phi > PI_OVER_2:
             if phi > pi:
-                if phi > 3 * pi / 2.0:
-                    ref_angle = 2 * rotate + 3 * pi / 2 - phi
+                if phi > 3 * PI_OVER_2:
+                    ref_angle = 2 * rotate + 3 * PI_OVER_2 - phi
                 else:
                     ref_angle = 2 * rotate + pi - phi
             else:
@@ -486,7 +487,7 @@ def gen_borehole_config(
     num_rows = int((highest_vert_val - lowest_vert_val) // y_space)
     d = highest_vert_val - lowest_vert_val
     s = d / num_rows
-    row_space = [-1 * s * cos(pi / 2 - rotate), s * sin(pi / 2 - rotate)]
+    row_space = [-1 * s * cos(PI_OVER_2 - rotate), s * sin(PI_OVER_2 - rotate)]
 
     # Establishes the dictionary where the boreholes will be added two as well as establishing a point on the first row
     boreholes = {}
diff --git a/ghedesigner/schemas/geometric_rowwise.schema.json b/ghedesigner/schemas/geometric_rowwise.schema.json
new file mode 100644
index 00000000..e1bd44d4
--- /dev/null
+++ b/ghedesigner/schemas/geometric_rowwise.schema.json
@@ -0,0 +1,81 @@
+{
+  "type": "object",
+  "properties": {
+    "perimeter_spacing_ratio": {
+      "type": "number",
+      "minimum": 0,
+      "units": "-"
+    },
+    "spacing_start": {
+      "type": "number",
+      "minimum": 0,
+      "units": "m"
+    },
+    "spacing_stop": {
+      "type": "number",
+      "minimum": 0,
+      "units": "m"
+    },
+    "spacing_step": {
+      "type": "number",
+      "minimum": 0,
+      "units": "m"
+    },
+    "rotate_start": {
+      "type": "number",
+      "units": "degrees"
+    },
+    "rotate_stop": {
+      "type": "number",
+      "units": "degrees"
+    },
+    "rotate_step": {
+      "type": "number",
+      "units": "degrees"
+    },
+    "property_boundary": {
+      "type": "array",
+      "items": {
+        "type": "array",
+        "minItems": 2,
+        "maxItems": 2,
+        "items": {
+          "type": "number",
+          "minimum": 0
+        }
+      },
+      "units": "m"
+    },
+    "no_go_boundaries": {
+      "type": "array",
+      "items": {
+        "type": "array",
+        "items": {
+          "type": "array",
+          "minItems": 2,
+          "maxItems": 2,
+          "items": {
+            "type": "number",
+            "minimum": 0
+          }
+        }
+      },
+      "units": "m"
+    },
+    "method": {
+      "type": "string",
+      "const": "ROWWISE"
+    }
+  },
+  "required": [
+    "spacing_start",
+    "spacing_stop",
+    "spacing_step",
+    "rotate_start",
+    "rotate_stop",
+    "rotate_step",
+    "property_boundary",
+    "no_go_boundaries",
+    "method"
+  ]
+}
diff --git a/ghedesigner/search_routines.py b/ghedesigner/search_routines.py
index f8b97cee..cf9c799c 100644
--- a/ghedesigner/search_routines.py
+++ b/ghedesigner/search_routines.py
@@ -8,7 +8,7 @@
 from ghedesigner.gfunction import calc_g_func_for_multiple_lengths
 from ghedesigner.ground_heat_exchangers import GHE
 from ghedesigner.media import Grout, Pipe, Soil, GHEFluid
-from ghedesigner.rowwise import field_optimization_fr, field_optimization_wp_space_fr
+from ghedesigner.rowwise import field_optimization_fr, field_optimization_wp_space_fr, gen_shape
 from ghedesigner.simulation import SimulationParameters
 from ghedesigner.utilities import eskilson_log_times, borehole_spacing, check_bracket, sign
 
@@ -350,7 +350,6 @@ def __init__(
             advanced_tracking: bool = True,
             field_type: str = "rowwise",
             load_years=None,
-            use_perimeter: bool = True,
     ):
 
         # Take the lowest part of the coordinates domain to be used for the
@@ -382,7 +381,7 @@ def __init__(
             self.advanced_tracking = [["TargetSpacing", "Field Specifier", "nbh", "ExcessTemperature"]]
             self.checkedFields = []
         if search:
-            self.selected_coordinates, self.selected_specifier = self.search(use_perimeter=use_perimeter)
+            self.selected_coordinates, self.selected_specifier = self.search()
             self.initialize_ghe(self.selected_coordinates, self.sim_params.max_height,
                                 field_specifier=self.selected_specifier)
 
@@ -455,17 +454,21 @@ def calculate_excess(self, coordinates, h, field_specifier="N/A"):
 
         return t_excess
 
-    def search(self, use_perimeter=True):
+    def search(self):
 
         spacing_start = self.geometricConstraints.spacing_start
         spacing_stop = self.geometricConstraints.spacing_stop
         spacing_step = self.geometricConstraints.spacing_step
         rotate_step = self.geometricConstraints.rotate_step
-        prop_bound = self.geometricConstraints.property_boundary
-        ng_zones = self.geometricConstraints.no_go_boundaries
+        prop_bound, ng_zones = gen_shape(self.geometricConstraints.property_boundary, self.geometricConstraints.no_go_boundaries)
         rotate_start = self.geometricConstraints.rotate_start
         rotate_stop = self.geometricConstraints.rotate_stop
-        p_spacing = self.geometricConstraints.p_spacing
+        perimeter_spacing_ratio = self.geometricConstraints.perimeter_spacing_ratio
+
+        if perimeter_spacing_ratio is None:
+            use_perimeter = False
+        else:
+            use_perimeter = True
 
         selected_coordinates = None
         selected_specifier = None
@@ -477,7 +480,7 @@ def search(self, use_perimeter=True):
         # Generate Fields
         if use_perimeter:
             upper_field, upper_field_specifier = field_optimization_wp_space_fr(
-                p_spacing,
+                perimeter_spacing_ratio,
                 spacing_start,
                 rotate_step,
                 prop_bound,
@@ -486,7 +489,7 @@ def search(self, use_perimeter=True):
                 rotate_stop=rotate_stop,
             )
             lower_field, lower_field_specifier = field_optimization_wp_space_fr(
-                p_spacing,
+                perimeter_spacing_ratio,
                 spacing_stop,
                 rotate_step,
                 prop_bound,
@@ -549,7 +552,7 @@ def search(self, use_perimeter=True):
                 # Getting Three Middle Field
                 if use_perimeter:
                     f1, f1_specifier = field_optimization_wp_space_fr(
-                        p_spacing,
+                        perimeter_spacing_ratio,
                         spacing_m,
                         rotate_step,
                         prop_bound,
@@ -607,7 +610,7 @@ def search(self, use_perimeter=True):
             for ts in target_spacings:
                 if use_perimeter:
                     field, f_s = field_optimization_wp_space_fr(
-                        p_spacing,
+                        perimeter_spacing_ratio,
                         ts,
                         rotate_step,
                         prop_bound,
diff --git a/ghedesigner/shape.py b/ghedesigner/shape.py
index a8342087..fb775dc2 100644
--- a/ghedesigner/shape.py
+++ b/ghedesigner/shape.py
@@ -2,6 +2,8 @@
 
 import numpy as np
 
+from ghedesigner.constants import PI_OVER_2, TWO_PI
+
 
 class Shapes:
 
@@ -144,18 +146,18 @@ def sort_intersections(r_a, rotate):
     i = 0
     for inter in r_a:
         if inter[0] == 0:
-            phi = pi / 2
+            phi = PI_OVER_2
         else:
             phi = atan(inter[1] / inter[0])
         dist_inter = sqrt(inter[1] ** 2 + inter[0] ** 2)
-        ref_ang = pi / 2 - phi
+        ref_ang = PI_OVER_2 - phi
         # sign = 1
-        if phi > pi / 2:
+        if phi > PI_OVER_2:
             if phi > pi:
-                if phi > 3 * pi / 2.0:
-                    ref_ang = 2 * pi - phi
+                if phi > 3 * PI_OVER_2:
+                    ref_ang = TWO_PI - phi
                 else:
-                    ref_ang = 3.0 * pi / 2.0 - phi
+                    ref_ang = 3.0 * PI_OVER_2 - phi
             else:
                 ref_ang = pi - phi
         # if phi > pi/2 + rotate and phi < 3*pi/2 + rotate:
diff --git a/ghedesigner/validate.py b/ghedesigner/validate.py
index 6717319d..c42ce3e5 100644
--- a/ghedesigner/validate.py
+++ b/ghedesigner/validate.py
@@ -97,6 +97,7 @@ def validate_geometric(instance: dict) -> None:
         "RECTANGLE": "geometric_rectangle.schema.json",
         "BIZONEDRECTANGLE": "geometric_bi_zoned_rectangle.schema.json",
         "BIRECTANGLECONSTRAINED": "geometric_bi_rectangle_constrained.schema.json",
+        "ROWWISE": "geometric_rowwise.schema.json",
     }
 
     if method not in schema_map.keys():


Test patch:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 0a4b5974..9f4a14dc 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -20,10 +20,6 @@ jobs:
         run: |
           python -m pip install --upgrade pip
           pip install install -r requirements.txt
-      - name: Lint with flake8
-        run: |
-          # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
-          flake8 . --count --exit-zero --statistics
       - name: Unit tests
         run: |
           nosetests -v
diff --git a/ghedesigner/tests/test_create_input_files.py b/ghedesigner/tests/test_create_input_files.py
index c4080a9d..954aa401 100644
--- a/ghedesigner/tests/test_create_input_files.py
+++ b/ghedesigner/tests/test_create_input_files.py
@@ -12,11 +12,80 @@ class TestCreateInputFiles(GHEBaseTest):
     def test_num_files_match_num_tests(self):
         # update this to match the number of tests in this file
         # there should be a test corresponding to each demo file
-        num_tests = 9
+        num_tests = 10
 
         for _, _, files in os.walk(self.demos_path):
             self.assertTrue(len(files) == num_tests)
 
+    def test_create_input_file_rowwise_single_u_tube(self):
+        prop_boundary = [
+            [19.46202532, 108.8860759],
+            [19.67827004, 94.46835443],
+            [24.65189873, 75.3164557],
+            [37.19409283, 56.59493671],
+            [51.68248945, 45.83544304],
+            [84.33544304, 38.94936709],
+            [112.0147679, 38.94936709],
+            [131.0443038, 35.50632911],
+            [147.2626582, 28.83544304],
+            [160.8860759, 18.07594937],
+            [171.6983122, 18.29113924],
+            [167.157173, 72.94936709],
+            [169.1033755, 80.48101266],
+            [177.3206751, 99.63291139],
+            [182.2943038, 115.7721519],
+            [182.2943038, 121.3670886],
+            [155.0474684, 118.5696203],
+            [53.19620253, 112.3291139]
+        ]
+
+        no_go_zones = [[
+            [74.38818565, 80.69620253],
+            [73.0907173, 53.36708861],
+            [93.85021097, 52.50632911],
+            [120.0158228, 53.15189873],
+            [121.5295359, 62.18987342],
+            [128.8818565, 63.26582278],
+            [128.8818565, 78.5443038],
+            [129.0981013, 80.91139241],
+            [108.5548523, 81.34177215],
+            [104.0137131, 110],
+            [95.58016878, 110],
+            [95.7964135, 81.7721519]
+        ]]
+
+        ghe = GHEManager()
+        ghe.set_single_u_tube_pipe(
+            inner_radius=0.0108, outer_radius=0.0133, shank_spacing=0.0323,
+            roughness=1.0e-6, conductivity=0.4, rho_cp=1542000.0)
+        ghe.set_soil(conductivity=2.0, rho_cp=2343493.0, undisturbed_temp=18.3)
+        ghe.set_grout(conductivity=1.0, rho_cp=3901000.0)
+        ghe.set_fluid()
+        ghe.set_borehole(height=96.0, buried_depth=2.0, radius=0.075)
+        ghe.set_simulation_parameters(num_months=240, max_eft=35, min_eft=5, max_height=135, min_height=60)
+        ghe.set_ground_loads_from_hourly_list(self.get_atlanta_loads())
+        ghe.set_geometry_constraints_rowwise(perimeter_spacing_ratio=0.8,
+                                             spacing_start=10.0, spacing_stop=20.0, spacing_step=0.1,
+                                             rotate_start=-90.0, rotate_stop=0.0, rotate_step=0.5,
+                                             property_boundary=prop_boundary, no_go_boundaries=no_go_zones)
+        ghe.set_design(flow_rate=0.2, flow_type="borehole", design_method_geo=ghe.DesignGeomType.RowWise)
+        out_path = self.test_outputs_directory / "test_create_input_file_rowwise_single_u_tube.json"
+        ghe.write_input_file(out_path)
+
+        # get demo file
+        demo_file = self.demos_path / 'find_design_rowwise_single_u_tube.json'
+        d_demo = loads(demo_file.read_text())
+
+        # uncomment to write formatted demo file in the test_output directory
+        # with open(self.test_outputs_directory / 'find_design_bi_zoned_rectangle_single_u_tube.json', 'w') as f:
+        #     f.write(dumps(d_demo, sort_keys=True, indent=2, separators=(',', ': ')))
+
+        # get new file
+        d_new = loads(out_path.read_text())
+
+        # compare files
+        recursive_eq(d_demo, d_new)
+
     def test_create_input_file_bi_rectangle_constrained_single_u_tube(self):
         prop_boundary = [
             [19.46202532, 108.8860759],
diff --git a/ghedesigner/tests/test_find_design_rowwise.py b/ghedesigner/tests/test_find_design_rowwise.py
index 6152de5e..fc71ab07 100644
--- a/ghedesigner/tests/test_find_design_rowwise.py
+++ b/ghedesigner/tests/test_find_design_rowwise.py
@@ -1,254 +1,100 @@
-# Purpose: Design a constrained RowWise field using the common
-# design interface with a single U-tube borehole heat exchanger.
-
-
-import csv
-from math import pi
-from time import time as clock
-
-from ghedesigner.borehole import GHEBorehole
-from ghedesigner.design import DesignRowWise
-from ghedesigner.enums import BHPipeType, DesignMethodTimeStep
-from ghedesigner.geometry import GeometricConstraintsRowWise
-from ghedesigner.media import Pipe, Soil, Grout, GHEFluid
-from ghedesigner.output import OutputManager
-from ghedesigner.rowwise import gen_shape
-from ghedesigner.simulation import SimulationParameters
+from ghedesigner.manager import GHEManager
 from ghedesigner.tests.ghe_base_case import GHEBaseTest
 
+prop_boundary = [
+    [19.46202532, 108.8860759],
+    [19.67827004, 94.46835443],
+    [24.65189873, 75.3164557],
+    [37.19409283, 56.59493671],
+    [51.68248945, 45.83544304],
+    [84.33544304, 38.94936709],
+    [112.0147679, 38.94936709],
+    [131.0443038, 35.50632911],
+    [147.2626582, 28.83544304],
+    [160.8860759, 18.07594937],
+    [171.6983122, 18.29113924],
+    [167.157173, 72.94936709],
+    [169.1033755, 80.48101266],
+    [177.3206751, 99.63291139],
+    [182.2943038, 115.7721519],
+    [182.2943038, 121.3670886],
+    [155.0474684, 118.5696203],
+    [53.19620253, 112.3291139]
+]
+
+no_go_zones = [[
+    [74.38818565, 80.69620253],
+    [73.0907173, 53.36708861],
+    [93.85021097, 52.50632911],
+    [120.0158228, 53.15189873],
+    [121.5295359, 62.18987342],
+    [128.8818565, 63.26582278],
+    [128.8818565, 78.5443038],
+    [129.0981013, 80.91139241],
+    [108.5548523, 81.34177215],
+    [104.0137131, 110],
+    [95.58016878, 110],
+    [95.7964135, 81.7721519]
+]]
+
+
+# This file contains two examples utilizing the RowWise design algorithm for a single U tube
+# The 1st example doesn't treat perimeter boreholes different, and the second one maintains a perimeter target
+# spacing to interior target-spacing ratio of .8.
 
 class TestFindRowWiseDesign(GHEBaseTest):
-    def test_find_row_wise_design(self):
-
-        # This file contains two examples utilizing the RowWise design algorithm for a single U tube
-        # The 1st example doesn't treat perimeter boreholes different, and the second one maintains a perimeter target
-        # spacing to interior target-spacing ratio of .8.
-        # The results from these examples are exported to the "DesignExampleOutput" folder.
-
-        # W/O Separate Perimeter Spacing Example
-
-        # Output File Configuration
-        project_name = "Atlanta Office Building: Design Example"
-        note = "RowWise Usage Example w/o Perimeter Spacing: Single U Tube"
-        author = "John Doe"
-        iteration_name = "Example 5"
-        output_file_directory = self.test_outputs_directory / "TestFindRowWiseDesign"
-
-        # Borehole dimensions
-        h = 96.0  # Borehole length (m)
-        d = 2.0  # Borehole buried depth (m)
-        r_b = 0.075  # Borehole radius (m)
-
-        # Single and Multiple U-tube Pipe Dimensions
-        r_out = 0.013335  # Pipe outer radius (m)
-        r_in = 0.0108  # Pipe inner radius (m)
-        s = 0.0323  # Inner-tube to inner-tube Shank spacing (m)
-        epsilon = 1.0e-6  # Pipe roughness (m)
-
-        # Single U Tube Pipe Positions
-        pos_single = Pipe.place_pipes(s, r_out, 1)
-
-        # Thermal conductivities
-        k_p = 0.4  # Pipe thermal conductivity (W/m.K)
-        k_s = 2.0  # Ground thermal conductivity (W/m.K)
-        k_g = 1.0  # Grout thermal conductivity (W/m.K)
-
-        # Volumetric heat capacities
-        rho_cp_p = 1542000.0  # Pipe volumetric heat capacity (J/K.m3)
-        rho_cp_s = 2343493.0  # Soil volumetric heat capacity (J/K.m3)
-        rho_cp_g = 3901000.0  # Grout volumetric heat capacity (J/K.m3)
-
-        # Instantiating Pipe
-        pipe_single = Pipe(pos_single, r_in, r_out, s, epsilon, k_p, rho_cp_p)
-
-        # Instantiating Soil Properties
-        ugt = 18.3  # Undisturbed ground temperature (degrees Celsius)
-        soil = Soil(k_s, rho_cp_s, ugt)
-
-        # Instantiating Grout Properties
-        grout = Grout(k_g, rho_cp_g)
-
-        # Fluid properties
-        fluid = GHEFluid(fluid_str="Water", percent=0.0)
-
-        # Fluid Flow Properties
-        v_flow = 0.2  # Volumetric flow rate (L/s)
-        # Note: The flow parameter can be borehole or system.
-        flow = "borehole"
-
-        # Instantiate a Borehole
-        borehole = GHEBorehole(h, d, r_b, x=0.0, y=0.0)
-
-        # Simulation parameters
-        start_month = 1
-        n_years = 20
-        end_month = n_years * 12
-        max_eft_allowable = 35  # degrees Celsius (HP EFT)
-        min_eft_allowable = 5  # degrees Celsius (HP EFT)
-        max_height = 135  # 135.0  # in meters  # At 135, this causes a max height warning, at 240 it fails, at 245 pass
-        min_height = 60  # in meters
-        sim_params = SimulationParameters(
-            start_month,
-            end_month,
-            max_eft_allowable,
-            min_eft_allowable,
-            max_height,
-            min_height,
-        )
-
-        # Process loads from file
-        hourly_extraction_ground_loads = self.get_atlanta_loads()
-
-        # RowWise Design Constraints
-
-        p_spacing = 0.8  # Dimensionless
-        spacing_start = 10.0  # in meters
-        spacing_stop = 20.0  # in meters
-        spacing_step = 0.1  # in meters
-        rotate_step = 0.5  # in degrees
-        rotate_start = -90.0 * (pi / 180.0)  # in radians
-        rotate_stop = 0 * (pi / 180.0)  # in radians
-
-        # Building Description
-        property_boundary_file = self.test_data_directory / "polygon_property_boundary.csv"
-        no_go_zone_file = self.test_data_directory / "polygon_no_go_zone1.csv"
-
-        prop_a = []  # in meters
-        ng_a = []  # in meters
-
-        with open(property_boundary_file, "r", newline="") as pF:
-            c_r = csv.reader(pF)
-            for line in c_r:
-                l_list = []
-                for row in line:
-                    l_list.append(float(row))
-                prop_a.append(l_list)
-
-        # for file in os.listdir(no_go_zone_file):
-        with open(no_go_zone_file, "r", newline="") as ngF:
-            c_r = csv.reader(ngF)
-            ng_a.append([])
-            for line in c_r:
-                l_list = []
-                for row in line:
-                    l_list.append(float(row))
-                ng_a[-1].append(l_list)
-
-        build_vert, no_go_vert = gen_shape(prop_a, ng_zones=ng_a)
-
-        """ Geometric constraints for the `row-wise` routine:
-          - list of vertices for the no-go zones (no_go_vert)
-          - perimeter target-spacing to interior target-spacing ratio
-          - the lower bound target-spacing (spacing_start)
-          - the upper bound target-spacing (spacing_stop)
-          - the range around the selected target-spacing over-which to to do an exhaustive search
-          - the lower bound rotation (rotateStart)
-          - the upper bound rotation (rotateStop)
-          - list of vertices for the property boundary (buildVert)
-        """
-        geometric_constraints = GeometricConstraintsRowWise(
-            p_spacing, spacing_start, spacing_stop, spacing_step, rotate_step, rotate_stop, rotate_start, build_vert,
-            no_go_vert)
-
-        # Single U-tube
-        # -------------
-        design_single_u_tube = DesignRowWise(
-            v_flow,
-            borehole,
-            BHPipeType.SingleUType,
-            fluid,
-            pipe_single,
-            grout,
-            soil,
-            sim_params,
-            geometric_constraints,
-            hourly_extraction_ground_loads,
-            method=DesignMethodTimeStep.Hybrid,
-            flow_type=flow,
-        )
-
-        # Find the near-square design for a single U-tube and size it.
-        tic = clock()  # Clock Start Time
-        bisection_search = design_single_u_tube.find_design(disp=True, use_perimeter=False)  # Finding GHE Design
-        bisection_search.ghe.compute_g_functions()  # Calculating G-functions for Chosen Design
-        bisection_search.ghe.size(
-            method=DesignMethodTimeStep.Hybrid)  # Calculating the Final Height for the Chosen Design
-        toc = clock()  # Clock Stop Time
-
-        # Print Summary of Findings
-        subtitle = "* Single U-tube"  # Subtitle for the printed summary
-        self.log(subtitle + "\n" + len(subtitle) * "-")
-        self.log(f"Calculation time: {toc - tic:0.2f} seconds")
-        self.log(f"Height: {bisection_search.ghe.bhe.b.H:0.4f} meters")
-        nbh = len(bisection_search.ghe.gFunction.bore_locations)
-        self.log(f"Number of boreholes: {nbh}")
-        self.log(f"Total Drilling: {bisection_search.ghe.bhe.b.H * nbh:0.1f} meters\n")
-
-        # Generating Output File
-        o = OutputManager(
-            bisection_search,
-            toc - tic,
-            project_name,
-            note,
-            author,
-            iteration_name,
-            load_method=DesignMethodTimeStep.Hybrid,
-        )  # this will just go through GHEManager methods eventually
-        o.write_all_output_files(
-            output_directory=output_file_directory,
-            file_suffix="_SU_WOP",
-        )
-
-        # *************************************************************************************************************
-        # Perimeter Spacing Example
-
-        note = "RowWise Usage Example w/o Perimeter Spacing: Single U Tube"
-
-        # Single U-tube
-        # -------------
-        design_single_u_tube = DesignRowWise(
-            v_flow,
-            borehole,
-            BHPipeType.SingleUType,
-            fluid,
-            pipe_single,
-            grout,
-            soil,
-            sim_params,
-            geometric_constraints,
-            hourly_extraction_ground_loads,
-            method=DesignMethodTimeStep.Hybrid,
-            flow_type=flow,
-        )
-
-        # Find the near-square design for a single U-tube and size it.
-        tic = clock()  # Clock Start Time
-        bisection_search = design_single_u_tube.find_design(disp=True)  # Finding GHE Design
-        bisection_search.ghe.compute_g_functions()  # Calculating G-functions for Chosen Design
-        bisection_search.ghe.size(
-            method=DesignMethodTimeStep.Hybrid)  # Calculating the Final Height for the Chosen Design
-        toc = clock()  # Clock Stop Time
-
-        # Print Summary of Findings
-        subtitle = "* Single U-tube"  # Subtitle for the printed summary
-        self.log(subtitle + "\n" + len(subtitle) * "-")
-        self.log(f"Calculation time: {toc - tic:0.2f} seconds")
-        self.log(f"Height: {bisection_search.ghe.bhe.b.H:0.4f} meters")
-        nbh = len(bisection_search.ghe.gFunction.bore_locations)
-        self.log(f"Number of boreholes: {nbh}")
-        self.log(f"Total Drilling: {bisection_search.ghe.bhe.b.H * nbh:0.1f} meters\n")
 
-        # Generating Output File
-        o = OutputManager(
-            bisection_search,
-            toc - tic,
-            project_name,
-            note,
-            author,
-            iteration_name,
-            load_method=DesignMethodTimeStep.Hybrid,
-        )  # this will just go through GHEManager methods eventually
-        o.write_all_output_files(
-            output_directory=output_file_directory,
-            file_suffix="_SU_WP",
-        )
+    # Purpose: Design a constrained RowWise field using the common
+    # design interface with a single U-tube borehole heat exchanger.
+
+    def test_find_row_wise_design_wo_perimeter(self):
+
+        ghe = GHEManager()
+        ghe.set_single_u_tube_pipe(
+            inner_radius=0.0108, outer_radius=0.0133, shank_spacing=0.0323,
+            roughness=1.0e-6, conductivity=0.4, rho_cp=1542000.0)
+        ghe.set_soil(conductivity=2.0, rho_cp=2343493.0, undisturbed_temp=18.3)
+        ghe.set_grout(conductivity=1.0, rho_cp=3901000.0)
+        ghe.set_fluid()
+        ghe.set_borehole(height=96.0, buried_depth=2.0, radius=0.075)
+        ghe.set_simulation_parameters(num_months=240, max_eft=35, min_eft=5, max_height=200, min_height=60)
+        ghe.set_ground_loads_from_hourly_list(self.get_atlanta_loads())
+        ghe.set_geometry_constraints_rowwise(perimeter_spacing_ratio=None,
+                                             spacing_start=10.0, spacing_stop=20.0, spacing_step=0.1,
+                                             rotate_start=-90.0, rotate_stop=0.0, rotate_step=0.5,
+                                             property_boundary=prop_boundary, no_go_boundaries=no_go_zones)
+        ghe.set_design(flow_rate=0.2, flow_type="borehole", design_method_geo=ghe.DesignGeomType.RowWise)
+        ghe.find_design()
+        output_file_directory = self.test_outputs_directory / "TestFindRowWiseDesignWithoutPerimeterSingleUTube"
+        ghe.prepare_results("Project Name", "Notes", "Author", "Iteration Name")
+        ghe.write_output_files(output_file_directory, "")
+        u_tube_height = ghe.results.output_dict['ghe_system']['active_borehole_length']['value']
+        self.assertAlmostEqual(199.46, u_tube_height, delta=0.01)
+        selected_coordinates = ghe.results.borehole_location_data_rows  # includes a header row
+        self.assertEqual(38 + 1, len(selected_coordinates))
+
+    def test_find_row_wise_design_with_perimeter(self):
+
+        ghe = GHEManager()
+        ghe.set_single_u_tube_pipe(
+            inner_radius=0.0108, outer_radius=0.0133, shank_spacing=0.0323,
+            roughness=1.0e-6, conductivity=0.4, rho_cp=1542000.0)
+        ghe.set_soil(conductivity=2.0, rho_cp=2343493.0, undisturbed_temp=18.3)
+        ghe.set_grout(conductivity=1.0, rho_cp=3901000.0)
+        ghe.set_fluid()
+        ghe.set_borehole(height=96.0, buried_depth=2.0, radius=0.075)
+        ghe.set_simulation_parameters(num_months=240, max_eft=35, min_eft=5, max_height=200, min_height=60)
+        ghe.set_ground_loads_from_hourly_list(self.get_atlanta_loads())
+        ghe.set_geometry_constraints_rowwise(perimeter_spacing_ratio=0.8,
+                                             spacing_start=10.0, spacing_stop=20.0, spacing_step=0.1,
+                                             rotate_start=-90.0, rotate_stop=0.0, rotate_step=0.5,
+                                             property_boundary=prop_boundary, no_go_boundaries=no_go_zones)
+        ghe.set_design(flow_rate=0.2, flow_type="borehole", design_method_geo=ghe.DesignGeomType.RowWise)
+        ghe.find_design()
+        output_file_directory = self.test_outputs_directory / "TestFindRowWiseDesignWithPerimeterSingleUTube"
+        ghe.prepare_results("Project Name", "Notes", "Author", "Iteration Name")
+        ghe.write_output_files(output_file_directory, "")
+        u_tube_height = ghe.results.output_dict['ghe_system']['active_borehole_length']['value']
+        self.assertAlmostEqual(197.53, u_tube_height, delta=0.01)
+        selected_coordinates = ghe.results.borehole_location_data_rows  # includes a header row
+        self.assertEqual(38 + 1, len(selected_coordinates))