├── saved_videos ├── 08-19-bound.mp4 ├── 08-19-jump.mp4 ├── 08-19-pronk.mp4 ├── 08-19-squat.mp4 ├── 08-19-stand.mp4 ├── 08-19-trot.mp4 ├── 08-29-jump.mp4 ├── 08-31-jump.mp4 ├── 09-01-jump.mp4 ├── 08-19-backflip.mp4 ├── 08-19-bound-ref.mp4 ├── 08-19-front-hop.mp4 ├── 08-19-jump-ref.mp4 ├── 08-19-pronk-ref.mp4 ├── 08-19-squat-ref.mp4 ├── 08-19-stand-ref.mp4 ├── 08-19-trot-ref.mp4 ├── 08-24-biped-step.mp4 ├── 08-29-jump-ref.mp4 ├── 08-31-jump-ref.mp4 ├── 09-01-jump-ref.mp4 ├── 09-08-biped-step.mp4 ├── 08-19-180-backflip.mp4 ├── 08-19-backflip-ref.mp4 ├── 08-19-biped-stand.mp4 ├── 08-19-180-frontflip.mp4 ├── 08-19-back-cartwheel.mp4 ├── 08-19-biped-stand-ref.mp4 ├── 08-19-front-hop-ref.mp4 ├── 08-24-biped-step-ref.mp4 ├── 09-08-biped-step-ref.mp4 ├── 08-19-180-backflip-ref.mp4 ├── 08-19-180-frontflip-ref.mp4 └── 08-19-back-cartwheel-ref.mp4 ├── .gitignore ├── README.md ├── main.py ├── constants.py ├── export.py ├── draw.py ├── traj_opt.py ├── utils.py ├── generate_reference.py └── csv ├── 08-19-jump.csv └── 08-29-jump-ref.csv /saved_videos/08-19-bound.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-bound.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-jump.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-jump.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-pronk.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-pronk.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-squat.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-squat.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-stand.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-stand.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-trot.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-trot.mp4 -------------------------------------------------------------------------------- /saved_videos/08-29-jump.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-29-jump.mp4 -------------------------------------------------------------------------------- /saved_videos/08-31-jump.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-31-jump.mp4 -------------------------------------------------------------------------------- /saved_videos/09-01-jump.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/09-01-jump.mp4 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # python cache files 2 | **/__pycache__/ 3 | 4 | # saved videos 5 | **/videos/ 6 | 7 | # vscode configs 8 | **/.vscode -------------------------------------------------------------------------------- /saved_videos/08-19-backflip.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-backflip.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-bound-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-bound-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-front-hop.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-front-hop.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-jump-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-jump-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-pronk-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-pronk-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-squat-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-squat-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-stand-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-stand-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-trot-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-trot-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-24-biped-step.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-24-biped-step.mp4 -------------------------------------------------------------------------------- /saved_videos/08-29-jump-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-29-jump-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-31-jump-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-31-jump-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/09-01-jump-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/09-01-jump-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/09-08-biped-step.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/09-08-biped-step.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-180-backflip.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-180-backflip.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-backflip-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-backflip-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-biped-stand.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-biped-stand.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-180-frontflip.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-180-frontflip.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-back-cartwheel.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-back-cartwheel.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-biped-stand-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-biped-stand-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-front-hop-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-front-hop-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-24-biped-step-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-24-biped-step-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/09-08-biped-step-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/09-08-biped-step-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-180-backflip-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-180-backflip-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-180-frontflip-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-180-frontflip-ref.mp4 -------------------------------------------------------------------------------- /saved_videos/08-19-back-cartwheel-ref.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yunifuchioka/opt-mimic-traj-opt/HEAD/saved_videos/08-19-back-cartwheel-ref.mp4 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # opt-mimic-traj-opt 2 | 3 | Trajectory Optimization code for the paper "OPT-Mimic: Imitation of Optimized Trajectories for Dynamic Quadruped Behaviors". 4 | 5 | ## Quick Reference 6 | - `traj_opt.py` contains the core implementation of the trajectory optimization, including some constraints that need to be modified specifically to each motion. 7 | - `generate_reference.py` contains code producing hard-coded kinematic sketch trajectories via sinusoids and interpolation of keypoints. The motion type is specified using the `motion_type` variable (line 41 as of writing). 8 | - `python main.py -d 0 -s 1 -e 1 -n my-experiment-name` is a typical command I would run to run trajectory optimization, and save video and csv results under filename `my-experiment-name`. You likely need to create an empty `videos/` folder to avoid getting an error the first time. 9 | - `constants.py` contains parameter values, of which I occasionally had to tune LQR weights specifically to each motion. 10 | 11 | ## Integration with Other Code 12 | - Once a csv trajectory file is saved onto `csv/`, it should be copied onto the `raisimGymTorch/raisimGymTorch/env/envs/solo8_env/traj/` directory of the [reinforcement learning code](https://github.com/yunifuchioka/opt-mimic-raisim) to use it to train RL policies. 13 | - When deploying the trained RL policy on the robot, the csv trajectory file also needs to be copied onto the workspace directory containing the [robot deployment code](https://github.com/yunifuchioka/opt-mimic-robot-deploy). See that repo for details. -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from distutils.util import strtobool 3 | import time 4 | from datetime import datetime 5 | 6 | from draw import animate_traj 7 | from generate_reference import generate_reference 8 | from traj_opt import traj_opt 9 | from export import export_to_csv 10 | 11 | if __name__ == "__main__": 12 | parser = argparse.ArgumentParser() 13 | parser.add_argument( 14 | "-d", 15 | "--display", 16 | help="toggle whether to display animation window", 17 | type=strtobool, 18 | default=1, 19 | ) 20 | parser.add_argument("-n", "--name", help="experiment name", type=str, default=None) 21 | parser.add_argument( 22 | "-s", "--save", help="toggle whether to save motion", type=strtobool, default=0 23 | ) 24 | parser.add_argument( 25 | "-e", 26 | "--export", 27 | help="toggle whether to export trajectory to csv", 28 | type=strtobool, 29 | default=0, 30 | ) 31 | 32 | # parse and post processing 33 | args = parser.parse_args() 34 | args.display = bool(args.display) 35 | args.save = bool(args.save) 36 | if args.name is None: 37 | args.name = datetime.now().strftime("%m-%d-%Y_%H-%M-%S") 38 | 39 | # generate reference, optionally display/save animation 40 | X_ref, U_ref, dt, motion_options = generate_reference() 41 | if args.save: 42 | fname_ref = args.name + "-ref" 43 | else: 44 | fname_ref = None 45 | animate_traj( 46 | X_ref, U_ref, dt, fname_ref, display=args.display, motion_options=motion_options 47 | ) 48 | 49 | # optionally export reference to csv 50 | if args.export: 51 | export_to_csv(X_ref, U_ref, dt, args.name + "-ref", motion_options) 52 | 53 | # solve trajectory optimization 54 | start_time = time.time() 55 | X_sol, U_sol = traj_opt(X_ref, U_ref, dt, motion_options) 56 | print("\nOptimization took {} minutes".format((time.time() - start_time) / 60.0)) 57 | 58 | # optionally export trajectory to csv 59 | if args.export: 60 | export_to_csv(X_sol, U_sol, dt, args.name, motion_options) 61 | 62 | # optionally display/save solution animation 63 | if args.save: 64 | fname = args.name 65 | else: 66 | fname = None 67 | animate_traj( 68 | X_sol, U_sol, dt, fname, display=args.display, motion_options=motion_options 69 | ) 70 | -------------------------------------------------------------------------------- /constants.py: -------------------------------------------------------------------------------- 1 | import enum 2 | import numpy as np 3 | 4 | # enum for the four legs 5 | class legs(enum.Enum): 6 | FL = 0 7 | FR = 1 8 | HL = 2 9 | HR = 3 10 | 11 | 12 | # robot physical length paramters 13 | l_Bx = 0.380 # length of body, measured axis to axis at hip (from CAD) 14 | # width between left and right feet (from CAD) 15 | # outer face to face was 310mm, inner face to face was 290mm, thickness of lower leg is 10mm 16 | l_By = 0.3 17 | l_thigh = 0.165 # length of upper leg module measured axis to axis (from CAD) 18 | l_calf = 0.160 # length of lower leg measured axis to axis (from CAD) 19 | 20 | # robot inertial paramters 21 | # mass of entire robot, physically measured and consistent with ODRI documentation 22 | # https://github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware/blob/master/mechanics/quadruped_robot_8dof_v2/README.md#description 23 | m = 1.7 24 | # moment of inertia of only the body, taken from ODRI documentation linked below, approximated to be diagonal 25 | # ideally it would be the moment of inertia of the whole robot (to include upper leg motor weights), but I don't have this info available 26 | # https://github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware/blob/master/mechanics/quadruped_robot_8dof_v2/details/quadruped_8dof_v2_inertia.pdf 27 | B_I = np.diag([0.00533767, 0.01314118, 0.01821833]) 28 | B_I_inv = np.diag(1 / np.array([0.00533767, 0.01314118, 0.01821833])) 29 | 30 | # physical parameters external to robot 31 | g = np.array([0.0, 0.0, -9.81]) # gravity vector 32 | mu = 0.9 # friction coefficient 33 | 34 | # position of corners of robot, in body frame (so it's a constant) 35 | B_p_Bi = {} 36 | B_p_Bi[legs.FL] = np.array([l_Bx / 2.0, l_By / 2.0, 0.0]) 37 | B_p_Bi[legs.FR] = np.array([l_Bx / 2.0, -l_By / 2.0, 0.0]) 38 | B_p_Bi[legs.HL] = np.array([-l_Bx / 2.0, l_By / 2.0, 0.0]) 39 | B_p_Bi[legs.HR] = np.array([-l_Bx / 2.0, -l_By / 2.0, 0.0]) 40 | 41 | # global optimization paramters 42 | eps = 1e-6 # numerical zero threshold 43 | 44 | # limit constraint paramters 45 | kin_lim = l_thigh + l_calf # used for L1 norm kinematic constraint 46 | f_lim = 20.0 # max vertical force in newtons 47 | qdot_lim = 100.0 # joint velocity clip value in export() 48 | 49 | # LQR weights 50 | Q_p = np.array([1000.0, 1000.0, 1000.0]) 51 | Q_p_i = np.array([500.0, 500.0, 500.0]) 52 | Q_R = np.array([100.0, 100.0, 100.0]) 53 | Q_pdot = np.array([10.0, 10.0, 10.0]) 54 | Q_omega = np.array([1.0, 1.0, 1.0]) 55 | Q_f_i = np.array([0.1, 0.1, 0.1]) 56 | R_p_i_dot = np.array([1.0, 1.0, 1.0]) 57 | # R_p_i_dot = np.array([10.0, 10.0, 10.0]) # jump 58 | 59 | # matrix used for rotation matrix cost, calculated from above values 60 | Kp_vec = np.linalg.solve( 61 | np.array([[2.0, 1.0, 1.0], [1.0, 2.0, 1.0], [1.0, 1.0, 2.0]]), 4.0 * Q_R 62 | ) # 3 element vector 63 | Gp = sum(Kp_vec) * np.eye(3) - np.diag(Kp_vec) # 3x3 matrix 64 | -------------------------------------------------------------------------------- /export.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from scipy.spatial.transform import Rotation 3 | 4 | from constants import * 5 | from generate_reference import generate_reference 6 | from utils import extract_state_np, solo_IK_np, solo_jac_transpose_np 7 | 8 | 9 | def export_to_csv(X, U, dt, fname, motion_options={}): 10 | elbow_up_front = ( 11 | motion_options["elbow_up_front"] if "elbow_up_front" in motion_options else None 12 | ) 13 | elbow_up_hind = ( 14 | motion_options["elbow_up_hind"] if "elbow_up_hind" in motion_options else None 15 | ) 16 | 17 | N = X.shape[1] - 1 18 | 19 | to_save = np.zeros((N + 1, 38)) 20 | for k in range(N + 1): 21 | # extract state variables 22 | p, R, pdot, omega, p_i, f_i = extract_state_np(X, U, k) 23 | t = k * dt 24 | 25 | # convert orientation to quaternion 26 | quat_xyzw = Rotation.from_matrix(R).as_quat() 27 | quat = np.roll(quat_xyzw, 1) 28 | 29 | # negate quaternion if wrapping occured compared to previous timestep 30 | if k > 0: 31 | for quat_idx in range(4): 32 | if abs(quat[quat_idx] - quat_prev[quat_idx]) > 1.0: 33 | quat *= -1.0 34 | continue 35 | 36 | # quaternion convention yf-08-18 37 | if k == 0: 38 | if quat[0] <= 0: 39 | quat *= -1 40 | else: 41 | for quat_idx in range(4): 42 | if abs(quat[quat_idx] - quat_prev[quat_idx]) > 1.0: 43 | quat *= -1 44 | continue 45 | 46 | # calculate joint angle q 47 | q_i = solo_IK_np(p, R, p_i, elbow_up_front, elbow_up_hind) 48 | q = [] 49 | for leg in legs: 50 | q = np.hstack((q, q_i[leg])) 51 | 52 | # add or subtract 2*pi if wrapping occured compared to previous timestep 53 | # (due to arctan2 in inverse kinematicss) 54 | if k > 0 and np.linalg.norm(q - q_prev) > 3.0 / 2.0 * np.pi: 55 | for joint_idx in range(len(q)): 56 | if q[joint_idx] - q_prev[joint_idx] > 3.0 / 2.0 * np.pi: 57 | q[joint_idx] -= 2 * np.pi 58 | if q[joint_idx] - q_prev[joint_idx] < -3.0 / 2.0 * np.pi: 59 | q[joint_idx] += 2 * np.pi 60 | 61 | # calculate joint velocity qdot 62 | if k != 0: 63 | qdot = (q - q_prev) / dt 64 | else: 65 | qdot = np.zeros_like(q) 66 | 67 | # clip joint velocity, which is a hack to not make PD controller output crazy torques 68 | qdot = np.clip(qdot, -qdot_lim, qdot_lim) 69 | 70 | # calculate joint torque tau 71 | tau_i = solo_jac_transpose_np(p, R, p_i, f_i, elbow_up_front, elbow_up_hind) 72 | tau = [] 73 | for leg in legs: 74 | tau = np.hstack((tau, tau_i[leg])) 75 | 76 | # note the reverse signs in joint variables to make it consistent 77 | # with RL and robot control code 78 | traj_t = np.hstack((t, p, quat, pdot, omega, -q, -qdot, -tau)) 79 | to_save[k, :] = traj_t 80 | 81 | # store calculated q to be used for angular velocity calculation at next timestep 82 | q_prev = q 83 | quat_prev = quat 84 | 85 | np.savetxt("csv/" + fname + ".csv", to_save, delimiter=", ", fmt="%0.16f") 86 | 87 | 88 | if __name__ == "__main__": 89 | X_ref, U_ref, dt, motion_options = generate_reference() 90 | export_to_csv(X_ref, U_ref, dt, "test", motion_options) 91 | -------------------------------------------------------------------------------- /draw.py: -------------------------------------------------------------------------------- 1 | from constants import * 2 | from utils import ( 3 | legs, 4 | rot_mat_2d_np, 5 | homog_np, 6 | mult_homog_point_np, 7 | B_T_Bi, 8 | extract_state_np, 9 | solo_IK_np, 10 | ) 11 | import numpy as np 12 | import matplotlib.pyplot as plt 13 | import matplotlib.animation as animation 14 | from mpl_toolkits.mplot3d import Axes3D 15 | 16 | plt.style.use("seaborn") 17 | 18 | 19 | # draws a coordinate system defined by the 4x4 homogeneous transformation matrix T 20 | def draw_T(T): 21 | axis_len = 0.1 22 | origin = T[:3, 3] 23 | axis_colors = ["r", "g", "b"] 24 | for axis in range(3): 25 | axis_head = origin + axis_len * T[:3, axis] 26 | axis_coords = np.vstack((origin, axis_head)).T 27 | 28 | line = plt.plot([], [])[0] 29 | line.set_data(axis_coords[0], axis_coords[1]) 30 | line.set_3d_properties(axis_coords[2]) 31 | line.set_color(axis_colors[axis]) 32 | 33 | 34 | def draw(p, R, p_i, f_i, f_len=0.02, motion_options={}): 35 | elbow_up_front = ( 36 | motion_options["elbow_up_front"] if "elbow_up_front" in motion_options else None 37 | ) 38 | elbow_up_hind = ( 39 | motion_options["elbow_up_hind"] if "elbow_up_hind" in motion_options else None 40 | ) 41 | 42 | T_B = homog_np(p, R) 43 | p_Bi = {} 44 | for leg in legs: 45 | p_Bi[leg] = mult_homog_point_np(T_B, B_p_Bi[leg]) 46 | 47 | # draw body 48 | body_coords = np.vstack( 49 | (p_Bi[legs.FL], p_Bi[legs.FR], p_Bi[legs.HR], p_Bi[legs.HL], p_Bi[legs.FL]) 50 | ).T 51 | line = plt.plot([], [])[0] 52 | line.set_data(body_coords[0], body_coords[1]) 53 | line.set_3d_properties(body_coords[2]) 54 | line.set_color("b") 55 | line.set_marker("o") 56 | 57 | # inverse and forward kinematics to extract knee location 58 | q_i = solo_IK_np(p, R, p_i, elbow_up_front, elbow_up_hind) 59 | p_knee_i = {} 60 | p_foot_i = {} 61 | for leg in legs: 62 | Bi_xz_knee = rot_mat_2d_np(q_i[leg][0] - np.pi / 2.0) @ np.array([l_thigh, 0.0]) 63 | Bi_xz_foot = Bi_xz_knee + rot_mat_2d_np( 64 | q_i[leg][0] - np.pi / 2.0 + q_i[leg][1] 65 | ) @ np.array([l_calf, 0.0]) 66 | Bi_p_knee_i = np.array([Bi_xz_knee[0], 0.0, Bi_xz_knee[1]]) 67 | Bi_p_foot_i = np.array([Bi_xz_foot[0], 0.0, Bi_xz_foot[1]]) 68 | T_Bi = T_B @ B_T_Bi[leg] 69 | p_knee_i[leg] = mult_homog_point_np(T_Bi, Bi_p_knee_i) 70 | p_foot_i[leg] = mult_homog_point_np(T_Bi, Bi_p_foot_i) 71 | 72 | # ensure foot positions match the values calculated from IK and FK 73 | # note that the y position of the legs are allowed to deviate from 0 by 74 | # amount eps in the kinematics constraint, so we use something larger here 75 | # to check if the error is "not close to zero" 76 | for leg in legs: 77 | assert np.linalg.norm(p_foot_i[leg] - p_i[leg]) < np.sqrt(eps) 78 | 79 | # draw legs 80 | for leg in legs: 81 | leg_coords = np.vstack((p_Bi[leg], p_knee_i[leg], p_i[leg])).T 82 | line = plt.plot([], [])[0] 83 | line.set_data(leg_coords[0], leg_coords[1]) 84 | line.set_3d_properties(leg_coords[2]) 85 | line.set_color("g") 86 | line.set_marker("o") 87 | 88 | # draw ground reaction forces 89 | f_coords = {} 90 | for leg in legs: 91 | f_vec = p_i[leg] + f_len * f_i[leg] 92 | f_coords[leg] = np.vstack((p_i[leg], f_vec)).T 93 | line = plt.plot([], [])[0] 94 | line.set_data(f_coords[leg][0], f_coords[leg][1]) 95 | line.set_3d_properties(f_coords[leg][2]) 96 | line.set_color("r") 97 | 98 | draw_T(np.eye(4)) 99 | draw_T(T_B) 100 | 101 | 102 | def init_fig(): 103 | anim_fig = plt.figure(figsize=(6, 6)) 104 | ax = Axes3D(anim_fig, auto_add_to_figure=False) 105 | anim_fig.add_axes(ax) 106 | ax.view_init(azim=-45) 107 | ax.set_xlim3d([-0.5, 0.5]) 108 | ax.set_ylim3d([-0.5, 0.5]) 109 | ax.set_zlim3d([0, 1]) 110 | ax.set_box_aspect([1, 1, 1]) 111 | ax.set_xlabel("x") 112 | ax.set_ylabel("y") 113 | ax.set_zlabel("z") 114 | return anim_fig, ax 115 | 116 | 117 | def animate_traj(X, U, dt, fname=None, display=True, repeat=True, motion_options={}): 118 | anim_fig, ax = init_fig() 119 | 120 | def draw_frame(k): 121 | p, R, pdot, omega, p_i, f_i = extract_state_np(X, U, k) 122 | while ax.lines: 123 | ax.lines.pop() 124 | draw(p, R, p_i, f_i, motion_options=motion_options) 125 | 126 | N = X.shape[1] - 1 127 | 128 | anim = animation.FuncAnimation( 129 | anim_fig, 130 | draw_frame, 131 | frames=N + 1, 132 | interval=dt * 1000.0, 133 | repeat=repeat, 134 | blit=False, 135 | ) 136 | 137 | if fname is not None: 138 | print("saving animation at videos/" + fname + ".mp4...") 139 | Writer = animation.writers["ffmpeg"] 140 | writer = Writer(fps=int(1 / dt), metadata=dict(artist="Me"), bitrate=1000) 141 | anim.save("videos/" + fname + ".mp4", writer=writer) 142 | print("finished saving videos/" + fname + ".mp4") 143 | 144 | if display: 145 | plt.show() 146 | 147 | 148 | if __name__ == "__main__": 149 | from utils import rot_mat_np 150 | 151 | p = np.array([0.0, 0.0, 0.3]) 152 | R = rot_mat_np(np.array([0, 1, 0]), 0.1) 153 | p_i = {} 154 | f_i = {} 155 | for leg in legs: 156 | p_i[leg] = B_p_Bi[leg] 157 | f_i[leg] = np.array([0.0, 0.0, 3.0]) 158 | 159 | anim_fig, ax = init_fig() 160 | draw(p=p, R=R, p_i=p_i, f_i=f_i) 161 | plt.show() 162 | -------------------------------------------------------------------------------- /traj_opt.py: -------------------------------------------------------------------------------- 1 | from constants import * 2 | from utils import ( 3 | legs, 4 | derive_skew_ca, 5 | derive_rot_mat_ca, 6 | derive_homog_ca, 7 | derive_reverse_homog_ca, 8 | derive_mult_homog_point_ca, 9 | B_T_Bi, 10 | extract_state_np, 11 | extract_state_ca, 12 | ) 13 | from draw import animate_traj 14 | from generate_reference import generate_reference 15 | import numpy as np 16 | import casadi as ca 17 | 18 | 19 | def traj_opt(X_ref, U_ref, dt, motion_options={}): 20 | symmetry = motion_options["symmetry"] if "symmetry" in motion_options else None 21 | 22 | skew_ca = derive_skew_ca() 23 | rot_mat_ca = derive_rot_mat_ca() 24 | homog_ca = derive_homog_ca() 25 | reverse_homog_ca = derive_reverse_homog_ca() 26 | mult_homog_point_ca = derive_mult_homog_point_ca() 27 | 28 | N = X_ref.shape[1] - 1 29 | 30 | opti = ca.Opti() 31 | X = opti.variable(18, N + 1) 32 | U = opti.variable(24, N + 1) 33 | J = ca.MX(1, 1) 34 | 35 | for k in range(N + 1): 36 | # extract state 37 | p, R, pdot, omega, p_i, f_i = extract_state_ca(X, U, k) 38 | if k != N: 39 | ( 40 | p_next, 41 | R_next, 42 | pdot_next, 43 | omega_next, 44 | p_i_next, 45 | f_i_next, 46 | ) = extract_state_ca(X, U, k + 1) 47 | else: 48 | p_next, R_next, pdot_next, omega_next, p_i_next, f_i_next = ( 49 | None, 50 | None, 51 | None, 52 | None, 53 | None, 54 | None, 55 | ) 56 | 57 | # extract reference 58 | p_ref, R_ref, pdot_ref, omega_ref, p_i_ref, f_i_ref = extract_state_ca( 59 | X_ref, U_ref, k 60 | ) 61 | 62 | # calculate relative foot locations 63 | T_B = homog_ca(p, R) 64 | Bi_p_i = {} 65 | for leg in legs: 66 | T_Bi_leg = T_B @ B_T_Bi[leg] 67 | Bi_T_leg = reverse_homog_ca(T_Bi_leg) 68 | Bi_p_i[leg] = mult_homog_point_ca(Bi_T_leg, p_i[leg]) 69 | 70 | # objective function 71 | error_p = p - p_ref 72 | error_p_i = {} 73 | for leg in legs: 74 | error_p_i[leg] = p_i[leg] - p_i_ref[leg] 75 | weighted_error_R = ca.trace(Gp - Gp @ R_ref.T @ R) 76 | error_pdot = pdot - pdot_ref 77 | error_omega = omega - R.T @ R_ref @ omega_ref 78 | error_f_i = {} 79 | for leg in legs: 80 | error_f_i[leg] = f_i[leg] - f_i_ref[leg] 81 | J += ca.dot(Q_p * error_p, error_p) 82 | for leg in legs: 83 | J += ca.dot(Q_p_i * error_p_i[leg], error_p_i[leg]) 84 | J += weighted_error_R**2 85 | J += ca.dot(Q_pdot * error_pdot, error_pdot) 86 | J += ca.dot(Q_omega * error_omega, error_omega) 87 | for leg in legs: 88 | J += ca.dot(Q_f_i * error_f_i[leg], error_f_i[leg]) 89 | if k != N: 90 | p_i_dot = {} 91 | for leg in legs: 92 | p_i_dot[leg] = (p_i_next[leg] - p_i[leg]) / dt 93 | J += ca.dot(R_p_i_dot * p_i_dot[leg], p_i_dot[leg]) 94 | 95 | # dynamics constraints 96 | f = ca.MX(3, 1) 97 | tau = ca.MX(3, 1) 98 | for leg in legs: 99 | f += f_i[leg] 100 | tau += ca.cross(p_i[leg] - p, f_i[leg]) 101 | if k != N: 102 | # 3D dynamics 103 | opti.subject_to(p_next == p + pdot * dt) 104 | opti.subject_to(pdot_next == pdot + (f / m + g) * dt) 105 | opti.subject_to(R_next == R @ rot_mat_ca(omega, dt)) 106 | opti.subject_to( 107 | omega_next 108 | == omega + B_I_inv @ (R.T @ tau - skew_ca(omega) @ B_I @ omega) * dt 109 | ) 110 | 111 | # # 2D dynamics constrainted to x-z plane 112 | # opti.subject_to(p_next[::2] == p[::2] + pdot[::2] * dt) 113 | # opti.subject_to(pdot_next[::2] == pdot[::2] + (f[::2] / m + g[::2]) * dt) 114 | # opti.subject_to(R_next == R @ rot_mat_ca(omega, dt)) 115 | # opti.subject_to(omega_next[1] == omega[1] + B_I_inv[1, 1] * tau[1] * dt) 116 | # opti.subject_to(opti.bounded(-eps, p[1], eps)) 117 | # opti.subject_to(opti.bounded(-eps, pdot[1], eps)) 118 | # opti.subject_to(opti.bounded(-eps, omega[0], eps)) 119 | # opti.subject_to(opti.bounded(-eps, omega[2], eps)) 120 | 121 | # kinematics constraints 122 | for leg in legs: 123 | # L1 norm constraint in the shoulder plane 124 | opti.subject_to( 125 | opti.bounded(-kin_lim, Bi_p_i[leg][0] + Bi_p_i[leg][2], kin_lim) 126 | ) 127 | opti.subject_to( 128 | opti.bounded(-kin_lim, Bi_p_i[leg][0] - Bi_p_i[leg][2], kin_lim) 129 | ) 130 | # y position should be on shoulder plane (within some numerical tolerance) 131 | opti.subject_to(opti.bounded(-eps, Bi_p_i[leg][1], eps)) 132 | 133 | # symmetry constraints 134 | if symmetry == "sideways": 135 | opti.subject_to( 136 | opti.bounded(-eps, Bi_p_i[legs.FL][0] - Bi_p_i[legs.FR][0], eps) 137 | ) 138 | opti.subject_to( 139 | opti.bounded(-eps, Bi_p_i[legs.HL][0] - Bi_p_i[legs.HR][0], eps) 140 | ) 141 | # kinematic constraint already enforces y coord == 0 142 | opti.subject_to( 143 | opti.bounded(-eps, Bi_p_i[legs.FL][2] - Bi_p_i[legs.FR][2], eps) 144 | ) 145 | opti.subject_to( 146 | opti.bounded(-eps, Bi_p_i[legs.HL][2] - Bi_p_i[legs.HR][2], eps) 147 | ) 148 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][0] - f_i[legs.FR][0], eps)) 149 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][0] - f_i[legs.HR][0], eps)) 150 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][1] - f_i[legs.FR][1], eps)) 151 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][1] - f_i[legs.HR][1], eps)) 152 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][2] - f_i[legs.FR][2], eps)) 153 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][2] - f_i[legs.HR][2], eps)) 154 | elif symmetry == "diagonal": 155 | # symmetry constraints 156 | opti.subject_to( 157 | opti.bounded(-eps, Bi_p_i[legs.FL][0] - Bi_p_i[legs.HR][0], eps) 158 | ) 159 | opti.subject_to( 160 | opti.bounded(-eps, Bi_p_i[legs.HL][0] - Bi_p_i[legs.FR][0], eps) 161 | ) 162 | # kinematic constraint already enforces y coord == 0 163 | opti.subject_to( 164 | opti.bounded(-eps, Bi_p_i[legs.FL][2] - Bi_p_i[legs.HR][2], eps) 165 | ) 166 | opti.subject_to( 167 | opti.bounded(-eps, Bi_p_i[legs.HL][2] - Bi_p_i[legs.FR][2], eps) 168 | ) 169 | # vector bounded by scalar -> multiple scalar constraints 170 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][0] - f_i[legs.HR][0], eps)) 171 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][0] - f_i[legs.FR][0], eps)) 172 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][1] - f_i[legs.HR][1], eps)) 173 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][1] - f_i[legs.FR][1], eps)) 174 | opti.subject_to(opti.bounded(-eps, f_i[legs.FL][2] - f_i[legs.HR][2], eps)) 175 | opti.subject_to(opti.bounded(-eps, f_i[legs.HL][2] - f_i[legs.FR][2], eps)) 176 | 177 | # friction pyramid constraints 178 | for leg in legs: 179 | opti.subject_to(opti.bounded(0.0, f_i[leg][2], f_lim)) 180 | opti.subject_to( 181 | opti.bounded(-mu * f_i[leg][2], f_i[leg][0], mu * f_i[leg][2]) 182 | ) 183 | opti.subject_to( 184 | opti.bounded(-mu * f_i[leg][2], f_i[leg][1], mu * f_i[leg][2]) 185 | ) 186 | 187 | # contact constraints 188 | for leg in legs: 189 | opti.subject_to(p_i[leg][2] >= 0.0) 190 | opti.subject_to(opti.bounded(-eps, f_i[leg][2] * p_i[leg][2], eps)) 191 | if k != N: 192 | opti.subject_to( 193 | opti.bounded( 194 | -eps, f_i[leg][2] * (p_i_next[leg][0] - p_i[leg][0]), eps 195 | ) 196 | ) 197 | opti.subject_to( 198 | opti.bounded( 199 | -eps, f_i[leg][2] * (p_i_next[leg][1] - p_i[leg][1]), eps 200 | ) 201 | ) 202 | 203 | # apply objective function 204 | opti.minimize(J) 205 | 206 | # initial conditions constraint 207 | p_init, R_init, pdot_init, omega_init, p_i_init, f_i_init = extract_state_ca( 208 | X, U, 0 209 | ) 210 | ( 211 | p_ref_init, 212 | R_ref_init, 213 | pdot_ref_init, 214 | omega_ref_init, 215 | p_i_ref_init, 216 | f_i_ref_init, 217 | ) = extract_state_np(X_ref, U_ref, 0) 218 | opti.subject_to(p_init == p_ref_init) 219 | opti.subject_to(R_init == R_ref_init) 220 | for leg in legs: 221 | opti.subject_to(p_i_init[leg] == p_i_ref_init[leg]) 222 | # # turn off below for cyclic constraint (biped step) 223 | opti.subject_to(pdot_init == np.zeros_like(pdot_ref_init)) 224 | opti.subject_to(omega_init == np.zeros_like(omega_ref_init)) 225 | # note: no initial condition on force 226 | 227 | # # cyclic constraint (for biped-step) 228 | # p_final, R_final, pdot_final, omega_final, p_i_final, f_i_final = extract_state_ca( 229 | # X, U, N 230 | # ) 231 | # opti.subject_to(ca.sumsqr(p_init - p_final) < eps) 232 | # opti.subject_to(ca.sumsqr(R_init - R_final) < eps) 233 | # for leg in legs: 234 | # opti.subject_to(ca.sumsqr(p_i_init[leg] - p_i_final[leg]) < eps) 235 | # opti.subject_to(ca.sumsqr(f_i_init[leg] - f_i_final[leg]) < eps) 236 | # opti.subject_to(ca.sumsqr(pdot_init - pdot_final) < eps) 237 | # opti.subject_to(ca.sumsqr(omega_init - omega_final) < eps) 238 | 239 | # initial solution guess 240 | opti.set_initial(X, X_ref) 241 | opti.set_initial(U, U_ref) 242 | 243 | # solve NLP 244 | p_opts = {} 245 | s_opts = {"print_level": 5} 246 | opti.solver("ipopt", p_opts, s_opts) 247 | sol = opti.solve() 248 | 249 | # extract solution as numpy array 250 | X_sol = np.array(sol.value(X)) 251 | U_sol = np.array(sol.value(U)) 252 | 253 | return X_sol, U_sol 254 | 255 | 256 | if __name__ == "__main__": 257 | X_ref, U_ref, dt, motion_options = generate_reference() 258 | # animate_traj(X_ref, U_ref, dt, motion_options=motion_options) 259 | 260 | X_sol, U_sol = traj_opt(X_ref, U_ref, dt) 261 | # animate_traj(X_sol, U_sol, dt, motion_options=motion_options) 262 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | from constants import * 2 | import numpy as np 3 | import casadi as ca 4 | 5 | 6 | # given 1x3 vector, returns 3x3 skew symmetric cross product matrix 7 | def skew_np(s): 8 | return np.array([[0, -s[2], s[1]], [s[2], 0, -s[0]], [-s[1], s[0], 0]]) 9 | 10 | 11 | # derives a symbolic version of the skew function 12 | def derive_skew_ca(): 13 | s = ca.SX.sym("s", 3) 14 | 15 | skew_sym = ca.SX(3, 3) 16 | # skew_sym = ca.SX.zeros(3, 3) 17 | skew_sym[0, 1] = -s[2] 18 | skew_sym[0, 2] = s[1] 19 | skew_sym[1, 0] = s[2] 20 | skew_sym[1, 2] = -s[0] 21 | skew_sym[2, 0] = -s[1] 22 | skew_sym[2, 1] = s[0] 23 | 24 | return ca.Function("skew_ca", [s], [skew_sym]) 25 | 26 | 27 | # 2D rotation matrix 28 | def rot_mat_2d_np(th): 29 | return np.array([[np.cos(th), -np.sin(th)], [np.sin(th), np.cos(th)]]) 30 | 31 | 32 | # given axis and angle, returns 3x3 rotation matrix 33 | def rot_mat_np(s, th): 34 | # normalize s if isn't already normalized 35 | norm_s = np.linalg.norm(s) 36 | assert norm_s != 0.0 37 | s_normalized = s / norm_s 38 | 39 | # Rodrigues' rotation formula 40 | skew_s = skew_np(s_normalized) 41 | return np.eye(3) + np.sin(th) * skew_s + (1.0 - np.cos(th)) * skew_s @ skew_s 42 | 43 | 44 | # derives a symbolic version of the rotMat function 45 | def derive_rot_mat_ca(): 46 | s = ca.SX.sym("s", 3) 47 | th = ca.SX.sym("th") 48 | skew_ca = derive_skew_ca() 49 | skew_sym = skew_ca(s) 50 | 51 | rot_mat_sym = ( 52 | ca.SX.eye(3) + ca.sin(th) * skew_sym + (1 - ca.cos(th)) * skew_sym @ skew_sym 53 | ) 54 | return ca.Function("rot_mat_ca", [s, th], [rot_mat_sym]) 55 | 56 | 57 | # given position vector and rotation matrix, returns 4x4 homogeneous 58 | # transformation matrix 59 | def homog_np(p, R): 60 | return np.block([[R, p[:, np.newaxis]], [np.zeros((1, 3)), 1]]) 61 | 62 | 63 | # derives a symbolic version of the homog function 64 | def derive_homog_ca(): 65 | p = ca.SX.sym("p", 3) 66 | R = ca.SX.sym("R", 3, 3) 67 | homog_sym = ca.SX(4, 4) 68 | homog_sym[:3, :3] = R 69 | homog_sym[:3, 3] = p 70 | homog_sym[3, 3] = 1.0 71 | return ca.Function("homog_ca", [p, R], [homog_sym]) 72 | 73 | 74 | # reverses the direction of the coordinate transformation defined by a 4x4 75 | # homogeneous transformation matrix 76 | def reverse_homog_np(T): 77 | R = T[:3, :3] 78 | p = T[:3, 3] 79 | reverse_homog = np.zeros((4, 4)) 80 | reverse_homog[:3, :3] = R.T 81 | reverse_homog[:3, 3] = -R.T @ p 82 | reverse_homog[3, 3] = 1.0 83 | return reverse_homog 84 | 85 | 86 | # derives a symbolic function that reverses the direction of the coordinate 87 | # transformation defined by a 4x4 homogeneous transformation matrix 88 | def derive_reverse_homog_ca(): 89 | T = ca.SX.sym("T", 4, 4) 90 | R = T[:3, :3] 91 | p = T[:3, 3] 92 | reverse_homog_sym = ca.SX(4, 4) 93 | reverse_homog_sym[:3, :3] = R.T 94 | reverse_homog_sym[:3, 3] = -R.T @ p 95 | reverse_homog_sym[3, 3] = 1.0 96 | return ca.Function("reverse_homog_ca", [T], [reverse_homog_sym]) 97 | 98 | 99 | # multiplication between a 4x4 homogenous transformation matrix and 3x1 100 | # position vector, returns 3x1 position 101 | def mult_homog_point_np(T, p): 102 | p_aug = np.concatenate((p, [1.0])) 103 | return (T @ p_aug)[:3] 104 | 105 | 106 | # derives a symbolic version of the mult_homog_point function 107 | def derive_mult_homog_point_ca(): 108 | T = ca.SX.sym("T", 4, 4) 109 | p = ca.SX.sym("p", 3) 110 | p_aug = ca.SX.ones(4, 1) 111 | p_aug[:3] = p 112 | mult_homog_point_sym = (T @ p_aug)[:3] 113 | return ca.Function("mult_homog_point_ca", [T, p], [mult_homog_point_sym]) 114 | 115 | 116 | # multiplication between a 4x4 homogenous transformation matrix and 3x1 117 | # force vector, returns 3x1 force 118 | def mult_homog_vec_np(T, f): 119 | f_aug = np.concatenate((f, [0.0])) 120 | return (T @ f_aug)[:3] 121 | 122 | 123 | # derives a symbolic version of the mult_homog_vec function 124 | def derive_mult_homog_vec_ca(): 125 | T = ca.SX.sym("T", 4, 4) 126 | f = ca.SX.sym("f", 3) 127 | f_aug = ca.SX.zeros(4, 1) 128 | f_aug[:3] = f 129 | mult_homog_vec_sym = (T @ f_aug)[:3] 130 | return ca.Function("mult_homog_vec_ca", [T, f], [mult_homog_vec_sym]) 131 | 132 | 133 | # generic planar 2 link inverse kinematics implementation 134 | # returns the closest point within the workspace if the requested point is 135 | # outside of it 136 | def planar_IK_np(l1, l2, x, y, elbow_up): 137 | l = np.sqrt(x**2.0 + y**2.0) 138 | l = max(abs(l1 - l2), min(l, l1 + l2)) 139 | 140 | alpha = np.arctan2(y, x) 141 | 142 | cos_beta = (l**2 + l1**2 - l2**2.0) / (2.0 * l * l1) 143 | cos_beta = max(-1.0, min(cos_beta, 1.0)) 144 | beta = np.arccos(cos_beta) 145 | 146 | cos_th2_abs = (l**2 - l1**2.0 - l2**2.0) / (2.0 * l1 * l2) 147 | cos_th2_abs = max(-1.0, min(cos_th2_abs, 1.0)) 148 | th2_abs = np.arccos(cos_th2_abs) 149 | 150 | if elbow_up: 151 | th1 = alpha - beta 152 | th2 = th2_abs 153 | else: 154 | th1 = alpha + beta 155 | th2 = -th2_abs 156 | 157 | return th1, th2 158 | 159 | 160 | # generic planar 2 link jacobian inverse transpose calculation implementation 161 | # end_effector_force = jacobian_inv_tranpose * joint_torque 162 | def planar_jac_inv_transpose_np(l1, l2, th1, th2, tau1, tau2): 163 | J = np.array( 164 | [ 165 | [-l1 * np.sin(th1) - l2 * np.sin(th1 + th2), -l2 * np.sin(th1 + th2)], 166 | [l1 * np.cos(th1) + l2 * np.cos(th1 + th2), l2 * np.cos(th1 + th2)], 167 | ] 168 | ) 169 | force = np.linalg.solve(J.T, np.array([tau1, tau2])) 170 | return force 171 | 172 | 173 | # generic planar 2 link jacobian transpose calculation implementation 174 | # joint_torque = jacobian_tranpose * end_effector_force 175 | # end_effector_force is force that robot exerts on environment 176 | def planar_jac_transpose_np(l1, l2, th1, th2, f1, f2): 177 | J = np.array( 178 | [ 179 | [-l1 * np.sin(th1) - l2 * np.sin(th1 + th2), -l2 * np.sin(th1 + th2)], 180 | [l1 * np.cos(th1) + l2 * np.cos(th1 + th2), l2 * np.cos(th1 + th2)], 181 | ] 182 | ) 183 | tau = J.T @ np.array([f1, f2]) 184 | return tau 185 | 186 | 187 | # Solo specific functions below 188 | 189 | # position of corners of robot, in body frame (so it's a constant) 190 | B_T_Bi = {} 191 | for leg in legs: 192 | B_T_Bi[leg] = homog_np(B_p_Bi[leg], np.eye(3)) 193 | 194 | 195 | # given numpy trajectory matrix, extract state at timestep k 196 | # note the order argument in reshape, which is necessary to make it consistent 197 | # with casadi's reshape 198 | def extract_state_np(X, U, k): 199 | p = X[:3, k] 200 | R_flat = X[3:12, k] 201 | R = np.reshape(R_flat, (3, 3), order="F") 202 | pdot = X[12:15, k] 203 | omega = X[15:18, k] 204 | p_i = {} 205 | f_i = {} 206 | for leg in legs: 207 | p_i[leg] = U[3 * leg.value : leg.value * 3 + 3, k] 208 | f_i[leg] = U[12 + 3 * leg.value : 12 + leg.value * 3 + 3, k] 209 | return p, R, pdot, omega, p_i, f_i 210 | 211 | 212 | # given casadi trajectory matrix, extract state at timestep k 213 | def extract_state_ca(X, U, k): 214 | p = X[:3, k] 215 | R_flat = X[3:12, k] 216 | R = ca.reshape(R_flat, 3, 3) 217 | pdot = X[12:15, k] 218 | omega = X[15:18, k] 219 | p_i = {} 220 | f_i = {} 221 | for leg in legs: 222 | p_i[leg] = U[3 * leg.value : leg.value * 3 + 3, k] 223 | f_i[leg] = U[12 + 3 * leg.value : 12 + leg.value * 3 + 3, k] 224 | return p, R, pdot, omega, p_i, f_i 225 | 226 | 227 | # given a numpy state, flattens it into the same form as a column of a 228 | # trajectory matrix 229 | def flatten_state_np(p, R, pdot, omega, p_i, f_i): 230 | R_flat = np.reshape(R, 9, order="F") 231 | p_i_flat = np.zeros(12) 232 | f_i_flat = np.zeros(12) 233 | for leg in legs: 234 | p_i_flat[3 * leg.value : leg.value * 3 + 3] = p_i[leg] 235 | f_i_flat[3 * leg.value : leg.value * 3 + 3] = f_i[leg] 236 | 237 | X_k = np.hstack((p, R_flat, pdot, omega)) 238 | U_k = np.hstack((p_i_flat, f_i_flat)) 239 | 240 | return X_k, U_k 241 | 242 | 243 | # inverse kinematics for the solo 8 robot 244 | def solo_IK_np(p, R, p_i, elbow_up_front=True, elbow_up_hind=False): 245 | T_B = homog_np(p, R) 246 | rotate_90 = rot_mat_2d_np(np.pi / 2.0) 247 | q_i = {} 248 | for leg in legs: 249 | T_Bi = T_B @ B_T_Bi[leg] 250 | Bi_T = reverse_homog_np(T_Bi) 251 | Bi_p_i = mult_homog_point_np(Bi_T, p_i[leg]) 252 | # assert abs(Bi_p_i[1]) < eps # foot should be in shoulder plane 253 | x_z = rotate_90 @ np.array([Bi_p_i[0], Bi_p_i[2]]) 254 | if leg == legs.FL or leg == legs.FR: 255 | q1, q2 = planar_IK_np(l_thigh, l_calf, x_z[0], x_z[1], elbow_up_front) 256 | else: 257 | q1, q2 = planar_IK_np(l_thigh, l_calf, x_z[0], x_z[1], elbow_up_hind) 258 | q_i[leg] = np.array([q1, q2]) 259 | 260 | return q_i 261 | 262 | 263 | # jacobian transpose calculation for the solo 8 robot 264 | def solo_jac_transpose_np(p, R, p_i, f_i, elbow_up_front=True, elbow_up_hind=False): 265 | q_i = solo_IK_np(p, R, p_i, elbow_up_front, elbow_up_hind) 266 | T_B = homog_np(p, R) 267 | rotate_90 = rot_mat_2d_np(np.pi / 2.0) 268 | tau_i = {} 269 | for leg in legs: 270 | T_Bi = T_B @ B_T_Bi[leg] 271 | Bi_T = reverse_homog_np(T_Bi) 272 | # NOTE: ground reaction force needs to be negated to get force from robot to ground, 273 | # not from ground to robot 274 | Bi_f_i = mult_homog_vec_np(Bi_T, -f_i[leg]) # note negative sign 275 | # assert abs(Bi_f_i[1]) < eps # ground reaction force should be in shoulder plane 276 | f_xz = rotate_90 @ np.array([Bi_f_i[0], Bi_f_i[2]]) 277 | tau_i[leg] = planar_jac_transpose_np( 278 | l_thigh, l_calf, q_i[leg][0], q_i[leg][1], f_xz[0], f_xz[1] 279 | ) 280 | 281 | return tau_i 282 | 283 | 284 | # function commented out since it wasn't updated to account for various knee 285 | # configurations and it isn't used anywhere 286 | # # jacobian inverse transpose calculation for the solo 8 robot 287 | # def solo_jac_inv_transpose_np(p, R, p_i, tau_i): 288 | # q_i = solo_IK_np(p, R, p_i) 289 | # T_B = homog_np(p, R) 290 | # rotate_neg_90 = rot_mat_2d_np(-np.pi / 2.0) 291 | # f_i = {} 292 | # for leg in legs: 293 | # T_Bi = T_B @ B_T_Bi[leg] 294 | # f_xz = planar_jac_inv_transpose_np( 295 | # l_thigh, l_calf, q_i[leg][0], q_i[leg][1], tau_i[leg][0], tau_i[leg][1] 296 | # ) 297 | # Bi_f_i = rotate_neg_90 @ f_xz 298 | # # note negative sign to convert force from robot to force from ground 299 | # f_i[leg] = -mult_homog_vec_np(T_Bi, np.array([Bi_f_i[0], 0.0, Bi_f_i[1]])) 300 | 301 | # return f_i 302 | 303 | 304 | # test functions 305 | if __name__ == "__main__": 306 | x_axis = np.eye(3)[:, 0] 307 | y_axis = np.eye(3)[:, 1] 308 | z_axis = np.eye(3)[:, 2] 309 | 310 | # print("\ntest skew") 311 | # skew_ca = derive_skew_ca() 312 | # print(skew_np(np.array([1, 2, 3]))) 313 | # print(skew_ca(np.array([1, 2, 3]))) 314 | # s = ca.SX.sym("s", 3) 315 | # print(skew_ca(s)) 316 | 317 | # print("\ntest rotMat") 318 | # rot_mat_ca = derive_rot_mat_ca() 319 | # print(rot_mat_np(x_axis, np.pi / 4)) 320 | # print(rot_mat_ca(x_axis, np.pi / 4)) 321 | # print(rot_mat_np(y_axis, np.pi / 4)) 322 | # print(rot_mat_ca(y_axis, np.pi / 4)) 323 | # print(rot_mat_np(z_axis, np.pi / 4)) 324 | # print(rot_mat_ca(z_axis, np.pi / 4)) 325 | # print( 326 | # np.linalg.norm( 327 | # rot_mat_np(x_axis, np.pi / 4) @ rot_mat_np(x_axis, np.pi / 4).T - np.eye(3) 328 | # ) 329 | # ) 330 | # print( 331 | # np.linalg.norm( 332 | # rot_mat_np(x_axis, np.pi / 4).T @ rot_mat_np(x_axis, np.pi / 4) - np.eye(3) 333 | # ) 334 | # ) 335 | # th = ca.SX.sym("th") 336 | # print(rot_mat_ca(s, th)) 337 | # print( 338 | # np.linalg.norm( 339 | # rot_mat_ca(x_axis, np.pi / 4) @ rot_mat_ca(x_axis, np.pi / 4).T - np.eye(3) 340 | # ) 341 | # ) 342 | 343 | # print("\ntest homog") 344 | # homog_ca = derive_homog_ca() 345 | # p = np.array([1, 2, 3]) 346 | # R = rot_mat_np(x_axis, np.pi / 4) 347 | # print(homog_np(p, R)) 348 | # print(homog_ca(p, R)) 349 | 350 | # print("\ntest mult_homog_point") 351 | # mult_homog_point_ca = derive_mult_homog_point_ca() 352 | # print(mult_homog_point_np(homog_np(x_axis, R), y_axis)) 353 | # print(mult_homog_point_ca(homog_np(x_axis, R), y_axis)) 354 | 355 | # print("\ntest mult_homog_vec") 356 | # mult_homog_vec_ca = derive_mult_homog_vec_ca() 357 | # print(mult_homog_vec_np(homog_np(x_axis, R), y_axis)) 358 | # print(mult_homog_vec_ca(homog_np(x_axis, R), y_axis)) 359 | 360 | # print("\ntest planar_jac_transpose_np") 361 | # l1 = l_thigh 362 | # l2 = l_calf 363 | # # columns th1, th2, f1, f2 364 | # test_cases = np.array( 365 | # [ 366 | # [0.0, 0.0, 1.0, 0.0], 367 | # [0.0, 0.0, -1.0, 0.0], 368 | # [0.0, 0.0, 0.0, 1.0], 369 | # [0.0, 0.0, 0.0, -1.0], 370 | # [0.0, 90.0, 1.0, 0.0], 371 | # [0.0, 90.0, -1.0, 0.0], 372 | # [0.0, 90.0, 0.0, 1.0], 373 | # [0.0, 90.0, 0.0, -1.0], 374 | # [0.0, 180.0, 1.0, 0.0], 375 | # [0.0, 180.0, -1.0, 0.0], 376 | # [0.0, 180.0, 0.0, 1.0], 377 | # [0.0, 180.0, 0.0, -1.0], 378 | # [90.0, 0.0, 1.0, 0.0], 379 | # [90.0, 0.0, -1.0, 0.0], 380 | # [90.0, 0.0, 0.0, 1.0], 381 | # [90.0, 0.0, 0.0, -1.0], 382 | # [-90.0, 0.0, 1.0, 0.0], 383 | # [-90.0, 0.0, -1.0, 0.0], 384 | # [-90.0, 0.0, 0.0, 1.0], 385 | # [-90.0, 0.0, 0.0, -1.0], 386 | # [0.0, 0.0, 1.0, 1.0], 387 | # ] 388 | # ) 389 | 390 | # test_cases[:, :2] *= np.pi / 180 391 | # for idx in range(test_cases.shape[0]): 392 | # th1 = test_cases[idx, 0] 393 | # th2 = test_cases[idx, 1] 394 | # f1 = test_cases[idx, 2] 395 | # f2 = test_cases[idx, 3] 396 | # tau = planar_jac_transpose_np(l1, l2, th1, th2, f1, f2) 397 | # print(th1, th2, f1, f2, tau) 398 | 399 | # reverse_homog_ca = derive_reverse_homog_ca() 400 | # T = ca.SX.sym("T", 4, 4) 401 | # print(reverse_homog_ca(T)) 402 | # T = homog_np(p, R) 403 | # print(T @ reverse_homog_ca(T)) 404 | # print(reverse_homog_ca(T) @ T) 405 | 406 | # print("\ntest extract_state_ca") 407 | # X = ca.SX.sym("X", 18, 3) 408 | # U = ca.SX.sym("U", 24, 3) 409 | # p, R, pdot, omega, p_i, f_i = extract_state_ca(X, U, 0) 410 | # print("p:", p) 411 | # print("R:", R) 412 | # print("pdot:", pdot) 413 | # print("omega:", omega) 414 | # for leg in legs: 415 | # print("p_i[", leg.value, "]:", p_i[leg]) 416 | # print("f_i[", leg.value, "]:", f_i[leg]) 417 | 418 | # print("\ntest flatten_state_np") 419 | # p = np.array([1.0, 2.0, 3.0]) 420 | # R = rot_mat_np(np.array([0, 1, 0]), np.pi / 4.0) 421 | # pdot = np.array([0.4, 0.5, 0.6]) 422 | # omega = np.array([3, 4, 5]) 423 | # p_i = {} 424 | # f_i = {} 425 | # for leg in legs: 426 | # p_i[leg] = leg.value + np.array([0.7, 0.8, 0.9]) 427 | # f_i[leg] = leg.value + np.array([0.07, 0.08, 0.09]) 428 | 429 | # X_k, U_k = flatten_state_np(p, R, pdot, omega, p_i, f_i) 430 | # print(X_k) 431 | # print(U_k) 432 | 433 | # print("\ntest extract_state_np") 434 | # ( 435 | # p_extracted, 436 | # R_extracted, 437 | # pdot_extracted, 438 | # omega_extracted, 439 | # p_i_extracted, 440 | # f_i_extracted, 441 | # ) = extract_state_np(X_k[:, np.newaxis], U_k[:, np.newaxis], 0) 442 | # print("p_extracted", p_extracted) 443 | # print("R_extracted", R_extracted) 444 | # print("pdot_extracted", pdot_extracted) 445 | # print("omega_extracted", omega_extracted) 446 | # print("p_i_extracted", p_i_extracted) 447 | # print("f_i_extracted", f_i_extracted) 448 | 449 | # calculation used to find suitable value for vertical force upper limit 450 | force_limit = planar_jac_inv_transpose_np( 451 | l_thigh, l_calf, np.pi / 4.0, np.pi / 2.0, -2.0, 2.0 452 | ) 453 | print(force_limit) 454 | 455 | torque_limit = planar_jac_transpose_np( 456 | l_thigh, l_calf, np.pi / 4.0, np.pi / 2.0, 0.0, 20.0 457 | ) 458 | print(torque_limit) 459 | 460 | # # calculation used to debug angle wrapping issue in 07-05-180-backflip trajectory 461 | # p = np.array([-2.22904149e-01, 1.86470565e-14, 3.07146706e-01]) 462 | # R = np.array( 463 | # [ 464 | # [-8.47305219e-01, 3.74376852e-14, -5.31291236e-01], 465 | # [-3.93408699e-13, 1.00000000e00, 6.97888883e-13], 466 | # [5.31291236e-01, 8.00304925e-13, -8.47305219e-01], 467 | # ] 468 | # ) 469 | # p_i = {} 470 | # p_i[leg.FL] = np.array([-0.60159766, 0.15, 0.32938683]) 471 | # p_i[leg.FR] = np.array([-0.60159766, -0.15, 0.32938683]) 472 | # p_i[leg.HL] = np.array([-1.90037668e-01, 1.50000000e-01, -9.85315547e-09]) 473 | # p_i[leg.HR] = np.array([-1.90037668e-01, -1.50000000e-01, -9.85315547e-09]) 474 | # p_next = np.array([-2.27567091e-01, 2.96891007e-15, 3.02150509e-01]) 475 | # R_next = np.array( 476 | # [ 477 | # [-8.73350678e-01, 3.99658078e-16, -4.87295136e-01], 478 | # [-4.11243103e-13, 1.00000000e00, 7.37879702e-13], 479 | # [4.87295136e-01, 8.44789798e-13, -8.73350678e-01], 480 | # ] 481 | # ) 482 | # p_i_next = {} 483 | # p_i_next[leg.FL] = np.array([-0.60348592, 0.15, 0.29296728]) 484 | # p_i_next[leg.FR] = np.array([-0.60348592, -0.15, 0.29296728]) 485 | # p_i_next[leg.HL] = np.array([-1.90037803e-01, 1.50000000e-01, -9.87121367e-09]) 486 | # p_i_next[leg.HR] = np.array([-1.90037803e-01, -1.50000000e-01, -9.87121367e-09]) 487 | 488 | # f_i = {} 489 | # for leg in legs: 490 | # f_i[leg] = np.zeros(3) 491 | 492 | # from draw import * 493 | # init_fig() 494 | # draw(p, R, p_i, f_i) 495 | # draw(p_next, R_next, p_i_next, f_i) 496 | # plt.show() 497 | 498 | import ipdb 499 | 500 | ipdb.set_trace() 501 | -------------------------------------------------------------------------------- /generate_reference.py: -------------------------------------------------------------------------------- 1 | from constants import * 2 | from draw import animate_traj 3 | from utils import ( 4 | B_T_Bi, 5 | legs, 6 | mult_homog_point_np, 7 | rot_mat_2d_np, 8 | rot_mat_np, 9 | flatten_state_np, 10 | homog_np, 11 | ) 12 | import numpy as np 13 | from numpy import pi 14 | from scipy.interpolate import interp1d 15 | from scipy.interpolate import CubicHermiteSpline 16 | 17 | 18 | # linearly interpolate x and y, evaluate at t 19 | def linear_interp_t(x, y, t): 20 | f = interp1d(x, y) 21 | return f(t) 22 | 23 | 24 | # interpolate x and y, evaluate at t using cubic splines with zero deriatives 25 | # this creates an interpolation similar to linear interpolation, but with 26 | # smoothed corners 27 | def cubic_interp_t(x, y, t): 28 | f = CubicHermiteSpline(x, y, np.zeros_like(x)) 29 | return f(t) 30 | 31 | 32 | # sinusoidal function evaluated at t defined using oscillation period, minimum 33 | # and maximum values 34 | def sinusoid(period, min_val, max_val, t, phase_offset=0): 35 | return (max_val - min_val) / 2.0 * ( 36 | 1 - np.cos(2 * np.pi / period * t + phase_offset) 37 | ) + min_val 38 | 39 | 40 | def generate_reference(): 41 | motion_type = "180-backflip" 42 | 43 | if motion_type == "stand": 44 | tf = 10.0 45 | if motion_type == "squat": 46 | tf = 10.0 47 | if motion_type == "trot": 48 | tf = 10.0 49 | if motion_type == "bound": 50 | tf = 10.0 51 | if motion_type == "pronk": 52 | tf = 10.0 53 | if motion_type == "jump": 54 | tf = 2.0 55 | elif motion_type == "front-hop": 56 | tf = 5.0 57 | elif motion_type == "180-backflip": 58 | tf = 5.0 59 | elif motion_type == "180-frontflip": 60 | tf = 5.0 61 | if motion_type == "backflip": 62 | tf = 5.0 63 | elif motion_type == "back-cartwheel": 64 | tf = 10.0 65 | if motion_type == "biped-stand": 66 | tf = 5.0 67 | if motion_type == "biped-step": 68 | tf = 10.0 69 | 70 | N = int(tf * 50) 71 | dt = tf / (N) 72 | t_vals = np.linspace(0, tf, N + 1) 73 | 74 | X = np.zeros((18, N + 1)) 75 | U = np.zeros((24, N + 1)) 76 | 77 | motion_options = {} 78 | 79 | for k in range(N + 1): 80 | if motion_type == "stand": 81 | p = np.array([0.0, 0.0, 0.225]) 82 | R = np.eye(3) 83 | p_i = {} 84 | for leg in legs: 85 | p_i[leg] = B_p_Bi[leg].copy() 86 | motion_options["elbow_up_front"] = True 87 | motion_options["elbow_up_hind"] = False 88 | motion_options["symmetry"] = "sideways" 89 | if motion_type == "squat": 90 | if k * dt < 0.5 or k * dt > 9.5: 91 | body_z = 0.2 92 | else: 93 | body_z = sinusoid( 94 | period=1.0, 95 | min_val=0.15, 96 | max_val=0.25, 97 | t=t_vals[k], 98 | phase_offset=np.pi * 0.5, 99 | ) 100 | p = np.array([0.0, 0.0, body_z]) 101 | R = np.eye(3) 102 | p_i = {} 103 | for leg in legs: 104 | p_i[leg] = B_p_Bi[leg].copy() 105 | motion_options["elbow_up_front"] = True 106 | motion_options["elbow_up_hind"] = False 107 | motion_options["symmetry"] = "sideways" 108 | if motion_type == "trot": 109 | if k * dt < 0.5 or k * dt > 9.5: 110 | body_x = -0.3 111 | else: 112 | body_x = sinusoid( 113 | period=9.0, 114 | min_val=-0.3, 115 | max_val=0.3, 116 | t=t_vals[k], 117 | phase_offset=-2 * np.pi / 9.0 * 0.5, 118 | ) 119 | p = np.array([body_x, 0.0, 0.25]) 120 | R = np.eye(3) 121 | p_i = {} 122 | for leg in legs: 123 | p_i[leg] = B_p_Bi[leg].copy() 124 | p_i[leg][0] += body_x 125 | if k * dt < 0.5 or k * dt > 9.5: 126 | pass 127 | else: 128 | if leg == legs.FL or leg == legs.HR: 129 | p_i[leg][2] += max( 130 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], pi / 2.0) 131 | ) 132 | else: 133 | p_i[leg][2] += max( 134 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], 3.0 * pi / 2.0) 135 | ) 136 | motion_options["elbow_up_front"] = True 137 | motion_options["elbow_up_hind"] = False 138 | motion_options["symmetry"] = "diagonal" 139 | if motion_type == "bound": 140 | if k * dt < 0.5 or k * dt > 9.5: 141 | body_x = -0.3 142 | else: 143 | body_x = sinusoid( 144 | period=9.0, 145 | min_val=-0.3, 146 | max_val=0.3, 147 | t=t_vals[k], 148 | phase_offset=-2 * np.pi / 9.0 * 0.5, 149 | ) 150 | p = np.array([body_x, 0.0, 0.25]) 151 | R = np.eye(3) 152 | p_i = {} 153 | for leg in legs: 154 | p_i[leg] = B_p_Bi[leg].copy() 155 | p_i[leg][0] += body_x 156 | if k * dt < 0.5 or k * dt > 9.5: 157 | pass 158 | else: 159 | if leg == legs.FL or leg == legs.FR: 160 | p_i[leg][2] += max( 161 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], pi / 2.0) 162 | ) 163 | else: 164 | p_i[leg][2] += max( 165 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], 3.0 * pi / 2.0) 166 | ) 167 | motion_options["elbow_up_front"] = True 168 | motion_options["elbow_up_hind"] = False 169 | motion_options["symmetry"] = "sideways" 170 | if motion_type == "pronk": 171 | if k * dt < 0.5 or k * dt > 9.5: 172 | body_x = -0.3 173 | else: 174 | body_x = sinusoid( 175 | period=9.0, 176 | min_val=-0.3, 177 | max_val=0.3, 178 | t=t_vals[k], 179 | phase_offset=-2 * np.pi / 9.0 * 0.5, 180 | ) 181 | p = np.array([body_x, 0.0, 0.25]) 182 | R = np.eye(3) 183 | p_i = {} 184 | for leg in legs: 185 | p_i[leg] = B_p_Bi[leg].copy() 186 | p_i[leg][0] += body_x 187 | if k * dt < 0.5 or k * dt > 9.5: 188 | pass 189 | else: 190 | p_i[leg][2] += max( 191 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], pi / 2.0) 192 | ) 193 | motion_options["elbow_up_front"] = True 194 | motion_options["elbow_up_hind"] = False 195 | motion_options["symmetry"] = "sideways" 196 | if motion_type == "jump": 197 | t_apex = 0.25 198 | z_apex = np.linalg.norm(g) * t_apex**2 / 2.0 199 | body_z = cubic_interp_t( 200 | [0, 0.2 * tf, 0.2 * tf + t_apex, 0.2 * tf + 2 * t_apex, tf], 201 | [0, 0, z_apex, 0, 0], 202 | t_vals[k], 203 | ) 204 | p = np.array([0.0, 0.0, 0.2]) 205 | p[2] += body_z 206 | R = np.eye(3) 207 | p_i = {} 208 | for leg in legs: 209 | p_i[leg] = B_p_Bi[leg].copy() 210 | # p_i[leg][2] += body_z 211 | p_i[leg][2] = max(0.0, p[2] - (l_thigh + l_calf) * 0.95) 212 | motion_options["elbow_up_front"] = True 213 | motion_options["elbow_up_hind"] = False 214 | motion_options["symmetry"] = "sideways" 215 | elif motion_type == "front-hop": 216 | body_height = 0.2 217 | angle = cubic_interp_t( 218 | [0, 2.0, 2.5, 3.0, tf], [0, 0, np.pi / 4.0, 0, 0], t_vals[k] 219 | ) 220 | p = np.array([-l_Bx / 2.0, 0.0, body_height]) 221 | p_xz = rot_mat_2d_np(angle) @ np.array([l_Bx / 2.0, 0.0]) 222 | p += np.array([p_xz[0], 0.0, p_xz[1]]) 223 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 224 | p_i = {} 225 | T_B = homog_np(p, R) 226 | for leg in legs: 227 | if leg == legs.FL or leg == legs.FR: 228 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 229 | p_i[leg] = p_Bi.copy() 230 | p_i[leg][2] -= body_height 231 | else: 232 | p_i[leg] = B_p_Bi[leg].copy() 233 | motion_options["elbow_up_front"] = True 234 | motion_options["elbow_up_hind"] = False 235 | motion_options["symmetry"] = "sideways" 236 | elif motion_type == "180-backflip": 237 | body_height = 0.2 238 | angle = cubic_interp_t([0, 2.0, 3.2, tf], [0, 0, np.pi, np.pi], t_vals[k]) 239 | p = np.array([-l_Bx / 2.0, 0.0, body_height]) 240 | p_xz = rot_mat_2d_np(angle) @ np.array([l_Bx / 2.0, 0.0]) 241 | p += np.array([p_xz[0], 0.0, p_xz[1]]) 242 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 243 | p_i = {} 244 | T_B = homog_np(p, R) 245 | for leg in legs: 246 | if leg == legs.FL or leg == legs.FR: 247 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 248 | p_i[leg] = p_Bi.copy() 249 | # p_i[leg][2] -= body_height 250 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 251 | [0.0, -body_height] 252 | ) 253 | else: 254 | p_i[leg] = B_p_Bi[leg].copy() 255 | motion_options["elbow_up_front"] = True 256 | motion_options["elbow_up_hind"] = True 257 | motion_options["symmetry"] = "sideways" 258 | elif motion_type == "180-frontflip": 259 | body_height = 0.2 260 | angle = cubic_interp_t([0, 2.0, 3.2, tf], [0, 0, -np.pi, -np.pi], t_vals[k]) 261 | p = np.array([l_Bx / 2.0, 0.0, body_height]) 262 | p_xz = rot_mat_2d_np(angle) @ np.array([-l_Bx / 2.0, 0.0]) 263 | p += np.array([p_xz[0], 0.0, p_xz[1]]) 264 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 265 | p_i = {} 266 | T_B = homog_np(p, R) 267 | for leg in legs: 268 | if leg == legs.HL or leg == legs.HR: 269 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 270 | p_i[leg] = p_Bi.copy() 271 | # p_i[leg][2] -= body_height 272 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 273 | [0.0, -body_height] 274 | ) 275 | else: 276 | p_i[leg] = B_p_Bi[leg].copy() 277 | motion_options["elbow_up_front"] = True 278 | motion_options["elbow_up_hind"] = True 279 | motion_options["symmetry"] = "sideways" 280 | if motion_type == "backflip": 281 | t_apex = 0.2 282 | z_apex = np.linalg.norm(g) * t_apex**2 / 2.0 283 | body_z = linear_interp_t( 284 | [ 285 | 0.0, 286 | 1.6, 287 | 2.0, 288 | 2.0 + t_apex, 289 | 2.0 + 2 * t_apex, 290 | 2.0 + 2 * t_apex + 0.4, 291 | tf, 292 | ], 293 | [0.0, 0.0, l_Bx / 2.0, l_Bx / 2.0 + z_apex, l_Bx / 2.0, 0.0, 0.0], 294 | t_vals[k], 295 | ) 296 | body_x = linear_interp_t( 297 | [0.0, 1.6, 2.0, 2.0 + 2 * t_apex, 2.0 + 2 * t_apex + 0.4, tf], 298 | [0.0, 0.0, -l_Bx / 2.0, -3.0 / 2.0 * l_Bx, -2.0 * l_Bx, -2.0 * l_Bx], 299 | t_vals[k], 300 | ) 301 | angle = linear_interp_t( 302 | [0, 1.6, 2.0, 2.0 + 2 * t_apex, 2.0 + 2 * t_apex + 0.4, tf], 303 | [0.0, 0.0, np.pi / 2.0, 3.0 / 2.0 * np.pi, 2.0 * np.pi, 2.0 * np.pi], 304 | t_vals[k], 305 | ) 306 | p = np.array([0.0, 0.0, 0.2]) 307 | p[0] += body_x 308 | p[2] += body_z 309 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 310 | p_i = {} 311 | T_B = homog_np(p, R) 312 | if t_vals[k] < 2.0: 313 | for leg in legs: 314 | if leg == legs.FL or leg == legs.FR: 315 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 316 | p_i[leg] = p_Bi.copy() 317 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 318 | [0.0, -0.2] 319 | ) 320 | else: 321 | p_i[leg] = B_p_Bi[leg].copy() 322 | elif t_vals[k] > 2.0 + 2 * t_apex: 323 | for leg in legs: 324 | if leg == legs.HL or leg == legs.HR: 325 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 326 | p_i[leg] = p_Bi.copy() 327 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 328 | [0.0, -0.2] 329 | ) 330 | else: 331 | p_i[leg] = B_p_Bi[leg].copy() 332 | p_i[leg][0] -= 2.0 * l_Bx 333 | else: 334 | for leg in legs: 335 | B_T_Bi_leg = B_T_Bi[leg].copy() 336 | if leg == legs.FR or leg == legs.FL: 337 | B_T_Bi_leg[0, 3] += 0.2 338 | else: 339 | B_T_Bi_leg[0, 3] -= 0.2 340 | T_B_i = T_B @ B_T_Bi_leg 341 | p_i[leg] = T_B_i[0:3, 3] 342 | motion_options["elbow_up_front"] = True 343 | motion_options["elbow_up_hind"] = True 344 | motion_options["symmetry"] = "sideways" 345 | elif motion_type == "back-cartwheel": 346 | body_height = 0.2 347 | angle = cubic_interp_t( 348 | [0, 2.0, 3.2, 7.0, 8.2, tf], 349 | [0, 0, np.pi, np.pi, 2.0 * np.pi, 2.0 * np.pi], 350 | t_vals[k], 351 | ) 352 | if t_vals[k] <= tf / 2.0: 353 | p = np.array([-l_Bx / 2.0, 0.0, body_height]) 354 | p_xz = rot_mat_2d_np(angle) @ np.array([l_Bx / 2.0, 0.0]) 355 | p += np.array([p_xz[0], 0.0, p_xz[1]]) 356 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 357 | p_i = {} 358 | T_B = homog_np(p, R) 359 | for leg in legs: 360 | if leg == legs.FL or leg == legs.FR: 361 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 362 | p_i[leg] = p_Bi.copy() 363 | # p_i[leg][2] -= body_height 364 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 365 | [0.0, -body_height] 366 | ) 367 | else: 368 | p_i[leg] = B_p_Bi[leg].copy() 369 | else: 370 | p = np.array([-l_Bx * 3.0 / 2.0, 0.0, body_height]) 371 | p_xz = rot_mat_2d_np(angle - np.pi) @ np.array([l_Bx / 2.0, 0.0]) 372 | p += np.array([p_xz[0], 0.0, p_xz[1]]) 373 | R = rot_mat_np(np.array([0.0, 1.0, 0.0]), -angle) 374 | p_i = {} 375 | T_B = homog_np(p, R) 376 | for leg in legs: 377 | if leg == legs.HL or leg == legs.HR: 378 | p_Bi = mult_homog_point_np(T_B, B_p_Bi[leg]) 379 | p_i[leg] = p_Bi.copy() 380 | # p_i[leg][2] -= body_height 381 | p_i[leg][0:3:2] += rot_mat_2d_np(2.0 * angle) @ np.array( 382 | [0.0, -body_height] 383 | ) 384 | elif leg == legs.FL: 385 | p_i[leg] = B_p_Bi[legs.HL].copy() 386 | p_i[leg][0] -= l_Bx 387 | elif leg == legs.FR: 388 | p_i[leg] = B_p_Bi[legs.HR].copy() 389 | p_i[leg][0] -= l_Bx 390 | motion_options["elbow_up_front"] = True 391 | motion_options["elbow_up_hind"] = True 392 | motion_options["symmetry"] = "sideways" 393 | if motion_type == "biped-stand": 394 | p = np.array([0.0, 0.0, l_Bx / 2.0 + (l_thigh + l_calf) * 0.95]) 395 | R = rot_mat_np([0.0, 1.0, 0.0], -np.pi / 2.0) 396 | T_B = homog_np(p, R) 397 | p_i = {} 398 | T_B_i = {} 399 | for leg in legs: 400 | T_B_i[leg] = T_B @ B_T_Bi[leg] 401 | p_i[leg] = T_B_i[leg][0:3, 3] 402 | if leg == legs.HL or leg == legs.HR: 403 | p_i[leg][2] = 0.0 404 | else: 405 | p_i[leg][2] -= (l_thigh + l_calf) * 0.95 406 | motion_options["elbow_up_front"] = True 407 | motion_options["elbow_up_hind"] = False 408 | # no symmetry 409 | if motion_type == "biped-step": 410 | p = np.array([0.0, 0.0, l_Bx / 2.0 + (l_thigh + l_calf) * 0.95]) 411 | R = rot_mat_np([0.0, 1.0, 0.0], -np.pi / 2.0) 412 | T_B = homog_np(p, R) 413 | p_i = {} 414 | T_B_i = {} 415 | for leg in legs: 416 | T_B_i[leg] = T_B @ B_T_Bi[leg] 417 | p_i[leg] = T_B_i[leg][0:3, 3] 418 | # if k * dt < 0.5 or k * dt > tf - 0.5: 419 | if False: 420 | for leg in legs: 421 | if leg == legs.HL or leg == legs.HR: 422 | p_i[leg][2] = 0.0 423 | else: 424 | p_i[leg][2] -= (l_thigh + l_calf) * 0.95 425 | else: 426 | p_i[leg.HL][2] = max( 427 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], pi / 2.0) 428 | ) 429 | p_i[leg.HR][2] = max( 430 | 0.0, sinusoid(0.5, -0.05, 0.05, t_vals[k], 3.0 * pi / 2.0) 431 | ) 432 | arm_swing_amplitude = 0.0 433 | p_i[leg.FL][::2] += rot_mat_2d_np( 434 | sinusoid( 435 | 0.5, 436 | -arm_swing_amplitude - pi / 2.0, 437 | arm_swing_amplitude - pi / 2.0, 438 | t_vals[k], 439 | 3.0 * pi / 2.0, 440 | ) 441 | ) @ np.array([(l_thigh + l_calf) * 0.95, 0]) 442 | p_i[leg.FR][::2] += rot_mat_2d_np( 443 | sinusoid( 444 | 0.5, 445 | -arm_swing_amplitude - pi / 2.0, 446 | arm_swing_amplitude - pi / 2.0, 447 | t_vals[k], 448 | pi / 2.0, 449 | ) 450 | ) @ np.array([(l_thigh + l_calf) * 0.95, 0]) 451 | motion_options["elbow_up_front"] = True 452 | motion_options["elbow_up_hind"] = False 453 | # no symmetry 454 | 455 | pdot = np.array([0.0, 0.0, 0.0]) 456 | omega = np.array([0.0, 0.0, 0.0]) 457 | f_i = {} 458 | for leg in legs: 459 | f_i[leg] = np.array([0.0, 0.0, 0.0]) 460 | if p_i[leg][2] <= eps: 461 | f_i[leg][2] = m * np.linalg.norm(g) / 4.0 462 | # f_i[leg][2] = m * np.linalg.norm(g) # for biped-step 463 | X[:, k], U[:, k] = flatten_state_np(p, R, pdot, omega, p_i, f_i) 464 | 465 | return X, U, dt, motion_options 466 | 467 | 468 | if __name__ == "__main__": 469 | 470 | X, U, dt, motion_options = generate_reference() 471 | 472 | animate_traj(X, U, dt, repeat=False, motion_options=motion_options) 473 | -------------------------------------------------------------------------------- /csv/08-19-jump.csv: -------------------------------------------------------------------------------- 1 | 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.2000000000000000, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.4282135860447872, -0.0000000000000000, 0.4282135860447872, -0.0000000000000000, -0.4282135860447872, -0.0000000000000000, -0.4282135860447872 2 | 0.0200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0388261372697281, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.8883654542088820, -1.8161495261113021, 0.8883654542088820, -1.8161495261113021, -0.8883654542088818, 1.8161495261113021, -0.8883654542088818, 1.8161495261113021, 0.0000305158745828, -0.0000636161576639, 0.0000305158745828, -0.0000636161576639, -0.0000305158745828, 0.0000636161576639, -0.0000305158745828, 0.0000636161576639, -0.0000000000000000, 0.4464856175951898, -0.0000000000000000, 0.4464856175951898, -0.0000000000000000, -0.4464856175951901, -0.0000000000000000, -0.4464856175951901 3 | 0.0400000000000000, 0.0000000000000000, -0.0000000000000000, 0.1992234772546055, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0709371551988377, 0.0000000000000001, 0.0000000000000000, 0.0000000000000000, 0.8912705315512208, -1.8222067131727053, 0.8912705315512208, -1.8222067131727053, -0.8912705315512206, 1.8222067131727053, -0.8912705315512206, 1.8222067131727053, 0.1452538671169401, -0.3028593530701618, 0.1452538671169401, -0.3028593530701618, -0.1452538671169401, 0.3028593530701618, -0.1452538671169401, 0.3028593530701618, 0.0000000000000000, 0.4612385262278854, 0.0000000000000000, 0.4612385262278854, -0.0000000000000001, -0.4612385262278854, -0.0000000000000001, -0.4612385262278854 4 | 0.0600000000000000, 0.0000000000000000, -0.0000000000000000, 0.1978047341506287, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0980248444956986, 0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.8965582505930072, -1.8332369939518800, 0.8965582505930072, -1.8332369939518800, -0.8965582505930070, 1.8332369939518800, -0.8965582505930070, 1.8332369939518800, 0.2643859520893188, -0.5515140389587336, 0.2643859520893188, -0.5515140389587336, -0.2643859520893188, 0.5515140389587336, -0.2643859520893188, 0.5515140389587336, -0.0000000000000001, 0.4735195821221277, -0.0000000000000001, 0.4735195821221277, 0.0000000000000000, -0.4735195821221277, 0.0000000000000000, -0.4735195821221277 5 | 0.0800000000000000, 0.0000000000000000, -0.0000000000000000, 0.1958442372607147, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1213457951940821, 0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.9038232086101392, -1.8484030841780561, 0.9038232086101392, -1.8484030841780561, -0.9038232086101390, 1.8484030841780561, -0.9038232086101390, 1.8484030841780561, 0.3632479008566003, -0.7583045113088049, 0.3632479008566003, -0.7583045113088049, -0.3632479008566003, 0.7583045113088049, -0.3632479008566003, 0.7583045113088049, 0.0000000000000000, 0.4843439112608768, 0.0000000000000000, 0.4843439112608768, -0.0000000000000001, -0.4843439112608769, -0.0000000000000001, -0.4843439112608769 6 | 0.1000000000000000, 0.0000000000000000, -0.0000000000000000, 0.1934173213568331, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1417309789352483, 0.0000000000000005, 0.0000000000000000, 0.0000000000000000, 0.9127506039090962, -1.8670581480909547, 0.9127506039090962, -1.8670581480909547, -0.9127506039090960, 1.8670581480909547, -0.9127506039090960, 1.8670581480909547, 0.4463697649478515, -0.9327531956449309, 0.4463697649478515, -0.9327531956449309, -0.4463697649478515, 0.9327531956449309, -0.4463697649478515, 0.9327531956449309, 0.0000000000000000, 0.4947642459492121, 0.0000000000000000, 0.4947642459492121, -0.0000000000000001, -0.4947642459492121, -0.0000000000000001, -0.4947642459492121 7 | 0.1200000000000000, 0.0000000000000000, -0.0000000000000000, 0.1905827017781281, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1595801092990738, -0.0000000000000004, 0.0000000000000000, -0.0000000000000000, 0.9230876489291828, -1.8886856329005617, 0.9230876489291828, -1.8886856329005617, -0.9230876489291826, 1.8886856329005617, -0.9230876489291826, 1.8886856329005617, 0.5168522510043294, -1.0813742404803484, 0.5168522510043294, -1.0813742404803484, -0.5168522510043294, 1.0813742404803484, -0.5168522510043294, 1.0813742404803484, 0.0000000000000000, 0.5059347332871612, 0.0000000000000000, 0.5059347332871612, -0.0000000000000001, -0.5059347332871613, -0.0000000000000001, -0.5059347332871613 8 | 0.1400000000000000, 0.0000000000000000, -0.0000000000000000, 0.1873910995921466, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.1748386276158946, -0.0000000000000002, -0.0000000000000000, -0.0000000000000000, 0.9346135932866763, -1.9128363797691639, 0.9346135932866763, -1.9128363797691639, -0.9346135932866760, 1.9128363797691639, -0.9346135932866760, 1.9128363797691639, 0.5762972178746717, -1.2075373434301095, 0.5762972178746717, -1.2075373434301095, -0.5762972178746717, 1.2075373434301095, -0.5762972178746717, 1.2075373434301095, -0.0000000000000001, 0.5191744430735155, -0.0000000000000001, 0.5191744430735155, 0.0000000000000000, -0.5191744430735156, 0.0000000000000000, -0.5191744430735156 9 | 0.1600000000000000, -0.0000000000000000, -0.0000000000000000, 0.1838943270398287, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1869551549313302, -0.0000000000000001, 0.0000000000000000, -0.0000000000000000, 0.9471084430128612, -1.9390627751550105, 0.9471084430128612, -1.9390627751550105, -0.9471084430128610, 1.9390627751550105, -0.9471084430128610, 1.9390627751550105, 0.6247424863092488, -1.3113197692923295, 0.6247424863092488, -1.3113197692923295, -0.6247424863092488, 1.3113197692923295, -0.6247424863092488, 1.3113197692923295, -0.0000000000000001, 0.5360341463618752, -0.0000000000000001, 0.5360341463618752, 0.0000000000000000, -0.5360341463618753, 0.0000000000000000, -0.5360341463618753 10 | 0.1800000000000000, -0.0000000000000000, -0.0000000000000000, 0.1801552239412021, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1948171753453667, -0.0000000000000001, 0.0000000000000000, -0.0000000000000000, 0.9603199508212520, -1.9668486433358401, 0.9603199508212520, -1.9668486433358401, -0.9603199508212518, 1.9668486433358401, -0.9603199508212518, 1.9668486433358401, 0.6605753904195377, -1.3892934090414810, 0.6605753904195377, -1.3892934090414810, -0.6605753904195377, 1.3892934090414810, -0.6605753904195377, 1.3892934090414810, 0.0000000000000000, 0.5583677737753667, 0.0000000000000000, 0.5583677737753667, -0.0000000000000001, -0.5583677737753667, -0.0000000000000001, -0.5583677737753667 11 | 0.2000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1762588804342948, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1966626109884259, -0.0000000000000003, 0.0000000000000000, -0.0000000000000000, 0.9739280363617839, -1.9955326632110073, 0.9739280363617839, -1.9955326632110073, -0.9739280363617837, 1.9955326632110073, -0.9739280363617837, 1.9955326632110073, 0.6804042770265972, -1.4342009937583611, 0.6804042770265972, -1.4342009937583611, -0.6804042770265972, 1.4342009937583611, -0.6804042770265972, 1.4342009937583611, 0.0000000000000000, 0.5884073192875300, 0.0000000000000000, 0.5884073192875300, -0.0000000000000002, -0.5884073192875301, -0.0000000000000002, -0.5884073192875301 12 | 0.2200000000000000, -0.0000000000000000, -0.0000000000000000, 0.1723256282145263, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.1899648568343029, 0.0000000000000004, -0.0000000000000000, 0.0000000000000000, 0.9875053594727717, -2.0242221417267787, 0.9875053594727717, -2.0242221417267787, -0.9875053594727715, 2.0242221417267787, -0.9875053594727715, 2.0242221417267787, 0.6788661555493902, -1.4344739257885708, 0.6788661555493902, -1.4344739257885708, -0.6788661555493902, 1.4344739257885708, -0.6788661555493902, 1.4344739257885708, -0.0000000000000001, 0.6288363918806893, -0.0000000000000001, 0.6288363918806893, 0.0000000000000002, -0.6288363918806893, 0.0000000000000002, -0.6288363918806893 13 | 0.2400000000000000, -0.0000000000000000, -0.0000000000000000, 0.1685263310778402, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1712888126746295, 0.0000000000000005, -0.0000000000000000, 0.0000000000000000, 1.0004721476767060, -2.0516927804827541, 1.0004721476767060, -2.0516927804827541, -1.0004721476767060, 2.0516927804827541, -1.0004721476767060, 2.0516927804827541, 0.6483394101967133, -1.3735319377987665, 0.6483394101967133, -1.3735319377987665, -0.6483394101967244, 1.3735319377987665, -0.6483394101967244, 1.3735319377987665, 0.0000000000000000, 0.6828523569209677, 0.0000000000000000, 0.6828523569209677, 0.0000000000000000, -0.6828523569209677, 0.0000000000000000, -0.6828523569209677 14 | 0.2600000000000000, -0.0000000000000000, -0.0000000000000000, 0.1651005548243476, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.1361155369566402, -0.0000000000000007, -0.0000000000000000, -0.0000000000000000, 1.0120422986834616, -2.0762683411785163, 1.0120422986834616, -2.0762683411785163, -1.0120422986834616, 2.0762683411785163, -1.0120422986834616, 2.0762683411785163, 0.5785075503377812, -1.2287780347881139, 0.5785075503377812, -1.2287780347881139, -0.5785075503377812, 1.2287780347881139, -0.5785075503377812, 1.2287780347881139, 0.0000000000000002, 0.7541985805399024, 0.0000000000000002, 0.7541985805399024, -0.0000000000000001, -0.7541985805399024, -0.0000000000000001, -0.7541985805399024 15 | 0.2800000000000000, -0.0000000000000000, -0.0000000000000000, 0.1623782440852148, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0786334218806935, -0.0000000000000001, -0.0000000000000000, -0.0000000000000000, 1.0211557576955317, -2.0956713470008799, 1.0211557576955317, -2.0956713470008799, -1.0211557576955317, 2.0956713470008799, -1.0211557576955317, 2.0956713470008799, 0.4556729506035029, -0.9701502911181770, 0.4556729506035029, -0.9701502911181770, -0.4556729506035029, 0.9701502911181770, -0.4556729506035029, 0.9701502911181770, -0.0000000000000001, 0.8471336117252937, -0.0000000000000001, 0.8471336117252937, 0.0000000000000002, -0.8471336117252937, 0.0000000000000002, -0.8471336117252937 16 | 0.3000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1608055756476010, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0085056641378866, 0.0000000000000001, 0.0000000000000000, -0.0000000000000000, 1.0263883704713350, -2.1068310792237130, 1.0263883704713350, -2.1068310792237130, -1.0263883704713350, 2.1068310792237130, -1.0263883704713350, 2.1068310792237130, 0.2616306387901668, -0.5579866111416587, 0.2616306387901668, -0.5579866111416587, -0.2616306387901668, 0.5579866111416587, -0.2616306387901668, 0.5579866111416587, 0.0000000000000001, 0.9662763527997427, 0.0000000000000001, 0.9662763527997427, 0.0000000000000001, -0.9662763527997426, 0.0000000000000001, -0.9662763527997426 17 | 0.3200000000000000, -0.0000000000000000, -0.0000000000000000, 0.1609756889303587, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.1344658974092607, 0.0000000000000002, -0.0000000000000000, -0.0000000000000000, 1.0258234533281048, -2.1056255679877816, 1.0258234533281048, -2.1056255679877816, -1.0258234533281048, 2.1056255679877816, -1.0258234533281048, 2.1056255679877816, -0.0282458571615130, 0.0602755617965745, -0.0282458571615130, 0.0602755617965745, 0.0282458571615130, -0.0602755617965745, 0.0282458571615130, -0.0602755617965745, 0.0000000000000003, 1.1162097526891737, 0.0000000000000003, 1.1162097526891737, -0.0000000000000001, -1.1162097526891737, -0.0000000000000001, -1.1162097526891737 18 | 0.3400000000000000, -0.0000000000000000, -0.0000000000000000, 0.1636650068785439, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.3105418858404786, 0.0000000000000002, -0.0000000000000000, -0.0000000000000000, 1.0168567822522749, -2.0865134251326509, 1.0168567822522749, -2.0865134251326509, -1.0168567822522749, 2.0865134251326509, -1.0168567822522749, 2.0865134251326509, -0.4483335537914912, 0.9556071427565316, -0.4483335537914912, 0.9556071427565316, 0.4483335537914912, -0.9556071427565316, 0.4483335537914912, -0.9556071427565316, -0.0000000000000002, 1.3006040627701034, -0.0000000000000002, 1.3006040627701034, 0.0000000000000003, -1.3006040627701034, 0.0000000000000003, -1.3006040627701034 19 | 0.3600000000000000, -0.0000000000000000, -0.0000000000000000, 0.1698758445953535, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.5505050328695823, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.9958825317781050, -2.0419611693367137, 0.9958825317781050, -2.0419611693367137, -0.9958825317781048, 2.0419611693367137, -0.9958825317781048, 2.0419611693367137, -1.0487125237084949, 2.2276127897968623, -1.0487125237084949, 2.2276127897968623, 1.0487125237085060, -2.2276127897968623, 1.0487125237085060, -2.2276127897968623, 0.0000000000000001, 1.5203470062276874, 0.0000000000000001, 1.5203470062276874, -0.0000000000000002, -1.5203470062276876, -0.0000000000000002, -1.5203470062276876 20 | 0.3800000000000000, -0.0000000000000000, -0.0000000000000000, 0.1808859452527451, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.8709760420395614, 0.0000000000000001, -0.0000000000000001, 0.0000000000000000, 0.9577496224929244, -1.9614381908888807, 0.9577496224929244, -1.9614381908888807, -0.9577496224929242, 1.9614381908888807, -0.9577496224929242, 1.9614381908888807, -1.9066454642590325, 4.0261489223916476, -1.9066454642590325, 4.0261489223916476, 1.9066454642590325, -4.0261489223916476, 1.9066454642590325, -4.0261489223916476, -0.0000000000000002, 1.7695145674228530, -0.0000000000000002, 1.7695145674228530, 0.0000000000000002, -1.7695145674228530, 0.0000000000000002, -1.7695145674228530 21 | 0.4000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1983054660935363, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 1.2918136880754389, 0.0000000000000002, 0.0000000000000000, 0.0000000000000000, 0.8946945902966424, -1.8293485888759420, 0.8946945902966424, -1.8293485888759420, -0.8946945902966422, 1.8293485888759420, -0.8946945902966422, 1.8293485888759420, -3.1527516098140973, 6.6044801006469367, -3.1527516098140973, 6.6044801006469367, 3.1527516098140973, -6.6044801006469367, 3.1527516098140973, -6.6044801006469367, -0.0000000000000002, 2.0262905289441684, -0.0000000000000002, 2.0262905289441684, -0.0000000000000002, -2.0262905289441688, -0.0000000000000002, -2.0262905289441688 22 | 0.4200000000000000, -0.0000000000000000, -0.0000000000000000, 0.2241417398550451, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 1.8365044987276322, -0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.8538929311758079, -1.7444171637810582, 0.8538929311758081, -1.7444171637810584, -0.8538929311758077, 1.7444171637810582, -0.8538929311758079, 1.7444171637810584, -2.0400829560417275, 4.2465712547441914, -2.0400829560417164, 4.2465712547441798, 2.0400829560417275, -4.2465712547441914, 2.0400829560417164, -4.2465712547441798, -0.0000000000000000, 0.0000083267027644, -0.0000000000000000, 0.0000083267027644, 0.0000000000000000, -0.0000083267027644, 0.0000000000000000, -0.0000083267027644 23 | 0.4400000000000000, -0.0000000000000000, -0.0000000000000000, 0.2608718298295978, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 1.6403076490044362, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.7744790911597181, -1.5800097209283748, 0.7744790911597181, -1.5800097209283748, -0.7744790911597179, 1.5800097209283748, -0.7744790911597179, 1.5800097209283748, -3.9706920008044877, 8.2203721426341687, -3.9706920008044988, 8.2203721426341794, 3.9706920008044877, -8.2203721426341687, 3.9706920008044988, -8.2203721426341794, -0.0000000000000000, 0.0000036311158191, -0.0000000000000000, 0.0000036311158191, -0.0000000000000000, -0.0000036311158191, -0.0000000000000000, -0.0000036311158191 24 | 0.4600000000000000, -0.0000000000000000, -0.0000000000000000, 0.2936779828096865, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 1.4441091298387656, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.7160966203155905, -1.4597196603415385, 0.7160966203155905, -1.4597196603415385, -0.7160966203155903, 1.4597196603415385, -0.7160966203155903, 1.4597196603415385, -2.9191235422063810, 6.0145030293418111, -2.9191235422063810, 6.0145030293418111, 2.9191235422063810, -6.0145030293418111, 2.9191235422063810, -6.0145030293418111, -0.0000000000000000, 0.0000021264926427, -0.0000000000000000, 0.0000021264926427, -0.0000000000000000, -0.0000021264926427, -0.0000000000000000, -0.0000021264926427 25 | 0.4800000000000000, -0.0000000000000000, -0.0000000000000000, 0.3225601654064618, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 1.2479100537337573, -0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.6806796478558758, -1.3869326831556883, 0.6806796478558758, -1.3869326831556883, -0.6806796478558755, 1.3869326831556883, -0.6806796478558755, 1.3869326831556883, -1.7708486229857379, 3.6393488592925127, -1.7708486229857379, 3.6393488592925127, 1.7708486229857379, -3.6393488592925127, 1.7708486229857379, -3.6393488592925127, -0.0000000000000000, 0.0000014444533425, -0.0000000000000000, 0.0000014444533425, -0.0000000000000000, -0.0000014444533425, -0.0000000000000000, -0.0000014444533425 26 | 0.5000000000000000, -0.0000000000000000, -0.0000000000000000, 0.3475183664811370, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 1.0517107083521009, -0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.6660529955794747, -1.3569080307755492, 0.6660529955794747, -1.3569080307755492, -0.6660529955794745, 1.3569080307755492, -0.6660529955794745, 1.3569080307755492, -0.7313326138200515, 1.5012326190069536, -0.7313326138200515, 1.5012326190069536, 0.7313326138200515, -1.5012326190069536, 0.7313326138200515, -1.5012326190069536, -0.0000000000000000, 0.0000010899082133, -0.0000000000000000, 0.0000010899082133, -0.0000000000000000, -0.0000010899082133, -0.0000000000000000, -0.0000010899082133 27 | 0.5200000000000000, -0.0000000000000000, -0.0000000000000000, 0.3685525806481790, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.8555112114328517, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6665742457148084, -1.3579776882867705, 0.6665742457148082, -1.3579776882867700, -0.6665742457148079, 1.3579776882867700, -0.6665742457148079, 1.3579776882867700, 0.0260625067666831, -0.0534828755610617, 0.0260625067666720, -0.0534828755610395, -0.0260625067666720, 0.0534828755610395, -0.0260625067666720, 0.0534828755610395, -0.0000000000000000, 0.0000008911740889, -0.0000000000000000, 0.0000008911740889, -0.0000000000000000, -0.0000008911740889, -0.0000000000000000, -0.0000008911740889 28 | 0.5400000000000000, -0.0000000000000000, -0.0000000000000000, 0.3856628048768360, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.6593116225091290, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6747873538898910, -1.3748350167390710, 0.6747873538898910, -1.3748350167390710, -0.6747873538898908, 1.3748350167390710, -0.6747873538898908, 1.3748350167390710, 0.4106554087541292, -0.8428664226150295, 0.4106554087541403, -0.8428664226150517, -0.4106554087541403, 0.8428664226150517, -0.4106554087541403, 0.8428664226150517, -0.0000000000000000, 0.0000007742776362, -0.0000000000000000, 0.0000007742776362, -0.0000000000000000, -0.0000007742776362, -0.0000000000000000, -0.0000007742776362 29 | 0.5600000000000001, -0.0000000000000000, -0.0000000000000000, 0.3988490373270186, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.4631119759856563, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6831514618498740, -1.3920086101396822, 0.6831514618498740, -1.3920086101396822, -0.6831514618498737, 1.3920086101396822, -0.6831514618498737, 1.3920086101396822, 0.4182053979991496, -0.8586796700305599, 0.4182053979991496, -0.8586796700305599, -0.4182053979991496, 0.8586796700305599, -0.4182053979991496, 0.8586796700305599, -0.0000000000000000, 0.0000007039829425, -0.0000000000000000, 0.0000007039829425, -0.0000000000000000, -0.0000007039829425, -0.0000000000000000, -0.0000007039829425 30 | 0.5800000000000000, -0.0000000000000000, -0.0000000000000000, 0.4081112768467317, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.2669122940569530, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6851523508285471, -1.3961179041925342, 0.6851523508285471, -1.3961179041925342, -0.6851523508285469, 1.3961179041925342, -0.6851523508285469, 1.3961179041925342, 0.1000444489336560, -0.2054647026425993, 0.1000444489336560, -0.2054647026425993, -0.1000444489336560, 0.2054647026425993, -0.1000444489336560, 0.2054647026425993, -0.0000000000000000, 0.0000006627285133, -0.0000000000000000, 0.0000006627285133, -0.0000000000000000, -0.0000006627285133, -0.0000000000000000, -0.0000006627285133 31 | 0.6000000000000000, -0.0000000000000000, -0.0000000000000000, 0.4134495227278708, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0707125927550752, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6759277285489318, -1.3771761082400014, 0.6759277285489318, -1.3771761082400009, -0.6759277285489316, 1.3771761082400014, -0.6759277285489316, 1.3771761082400009, -0.4612311139807646, 0.9470897976266435, -0.4612311139807646, 0.9470897976266657, 0.4612311139807646, -0.9470897976266435, 0.4612311139807646, -0.9470897976266657, -0.0000000000000000, 0.0000006416227112, -0.0000000000000000, 0.0000006416227112, -0.0000000000000000, -0.0000006416227112, -0.0000000000000000, -0.0000006416227112 32 | 0.6200000000000000, -0.0000000000000000, -0.0000000000000000, 0.4148637745829723, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.1254871147453083, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6530033007403135, -1.3301364479979378, 0.6530033007403135, -1.3301364479979378, -0.6530033007403133, 1.3301364479979378, -0.6530033007403133, 1.3301364479979378, -1.1462213904309126, 2.3519830121031760, -1.1462213904309126, 2.3519830121031537, 1.1462213904309126, -2.3519830121031760, 1.1462213904309126, -2.3519830121031537, -0.0000000000000000, 0.0000006363198483, -0.0000000000000000, 0.0000006363198483, -0.0000000000000000, -0.0000006363198483, -0.0000000000000000, -0.0000006363198483 33 | 0.6400000000000000, -0.0000000000000000, -0.0000000000000000, 0.4123540322880661, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.3216868160468258, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6172080233002550, -1.2567734766535272, 0.6172080233002554, -1.2567734766535281, -0.6172080233002548, 1.2567734766535272, -0.6172080233002551, 1.2567734766535281, -1.7897638720029252, 3.6681485672205305, -1.7897638720029085, 3.6681485672204861, 1.7897638720029252, -3.6681485672205305, 1.7897638720029085, -3.6681485672204861, -0.0000000000000000, 0.0000006454569319, -0.0000000000000000, 0.0000006454569319, -0.0000000000000000, -0.0000006454569319, -0.0000000000000000, -0.0000006454569319 34 | 0.6600000000000000, -0.0000000000000000, -0.0000000000000000, 0.4059202959671296, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.5178864979748141, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.5721044696692289, -1.1644656114837626, 0.5721044696692289, -1.1644656114837626, -0.5721044696692287, 1.1644656114837626, -0.5721044696692287, 1.1644656114837626, -2.2551776815513067, 4.6153932584882318, -2.2551776815513236, 4.6153932584882762, 2.2551776815513067, -4.6153932584882318, 2.2551776815513236, -4.6153932584882762, 0.0000000000000000, 0.0000006710040053, 0.0000000000000000, 0.0000006710040053, 0.0000000000000000, -0.0000006710040053, 0.0000000000000000, -0.0000006710040053 35 | 0.6800000000000000, -0.0000000000000000, -0.0000000000000000, 0.3955625660076333, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.7140861444972196, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.5238202665792119, -1.0657880714386265, 0.5238202665792119, -1.0657880714386265, -0.5238202665792117, 1.0657880714386265, -0.5238202665792117, 1.0657880714386265, -2.4142101545008510, 4.9338770022568035, -2.4142101545008510, 4.9338770022568035, 2.4142101545008510, -4.9338770022568035, 2.4142101545008510, -4.9338770022568035, 0.0000000000000000, 0.0000007209470760, 0.0000000000000000, 0.0000007209470760, 0.0000000000000000, -0.0000007209470760, 0.0000000000000000, -0.0000007209470760 36 | 0.7000000000000001, -0.0000000000000000, -0.0000000000000000, 0.3812808431176890, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.9102857334195040, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.4815317687401349, -0.9794645326257828, 0.4815317687401344, -0.9794645326257821, -0.4815317687401343, 0.9794645326257821, -0.4815317687401348, 0.9794645326257828, -2.1144248919538504, 4.3161769406421859, -2.1144248919538753, 4.3161769406422188, 2.1144248919538700, -4.3161769406422188, 2.1144248919538451, -4.3161769406421859, 0.0000000000000000, 0.0000008169434123, 0.0000000000000000, 0.0000008169434123, 0.0000000000000000, -0.0000008169434123, 0.0000000000000000, -0.0000008169434123 37 | 0.7200000000000000, -0.0000000000000000, -0.0000000000000000, 0.3630751284492988, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -1.1064852303368622, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.4574758035315770, -0.9303955841935434, 0.4574758035315770, -0.9303955841935434, -0.4574758035315769, 0.9303955841935434, -0.4574758035315769, 0.9303955841935434, -1.2027982604278924, 2.4534474216119704, -1.2027982604278675, 2.4534474216119371, 1.2027982604278675, -2.4534474216119371, 1.2027982604278924, -2.4534474216119704, 0.0000000000000000, 0.0000010137837232, 0.0000000000000000, 0.0000010137837232, 0.0000000000000000, -0.0000010137837232, 0.0000000000000000, -0.0000010137837232 38 | 0.7400000000000000, -0.0000000000000000, -0.0000000000000000, 0.3409454238425616, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -1.3026845757159113, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.4639547183080444, -0.9436087429080932, 0.4639547183080446, -0.9436087429080937, -0.4639547183080445, 0.9436087429080937, -0.4639547183080442, 0.9436087429080932, 0.3239457388233669, -0.6606579357274878, 0.3239457388233780, -0.6606579357275155, -0.3239457388233780, 0.6606579357275155, -0.3239457388233669, 0.6606579357274878, 0.0000000000000000, 0.0000014496030920, 0.0000000000000000, 0.0000014496030920, 0.0000000000000000, -0.0000014496030920, 0.0000000000000000, -0.0000014496030920 39 | 0.7600000000000000, -0.0000000000000000, -0.0000000000000000, 0.3148917323282434, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -1.4988836518167330, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.5066583376733450, -1.0307449565039561, 0.5066583376733452, -1.0307449565039568, -0.5066583376733448, 1.0307449565039561, -0.5066583376733450, 1.0307449565039568, 2.1351809682650322, -4.3568106797931492, 2.1351809682650322, -4.3568106797931545, -2.1351809682650158, 4.3568106797931216, -2.1351809682650380, 4.3568106797931829, 0.0000000000000000, 0.0000025195607761, 0.0000000000000000, 0.0000025195607761, 0.0000000000000000, -0.0000025195607761, 0.0000000000000000, -0.0000025195607761 40 | 0.7800000000000000, -0.0000000000000000, -0.0000000000000000, 0.2849140592919087, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -1.6950821709732498, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.5810126094764528, -1.1826861006911213, 0.5810126094764528, -1.1826861006911213, -0.5810126094764526, 1.1826861006911213, -0.5810126094764526, 1.1826861006911213, 3.7177135901553915, -7.5970572093582600, 3.7177135901553804, -7.5970572093582263, -3.7177135901553915, 7.5970572093582600, -3.7177135901553804, 7.5970572093582263, 0.0000000000000000, 0.0000060627048395, 0.0000000000000000, 0.0000060627048395, 0.0000000000000000, -0.0000060627048394, 0.0000000000000000, -0.0000060627048394 41 | 0.8000000000000000, -0.0000000000000000, -0.0000000000000000, 0.2510124158724438, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -1.8912790206615500, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.6757132744675287, -1.3767358432787564, 0.6757132744675287, -1.3767358432787564, -0.6757132744675285, 1.3767358432787564, -0.6757132744675285, 1.3767358432787564, 4.7350332495537941, -9.7024871293817530, 4.7350332495537941, -9.7024871293817530, -4.7350332495537941, 9.7024871293817530, -4.7350332495537941, 9.7024871293817530, -0.0000000000000006, 1.7037367422627663, -0.0000000000000006, 1.7037367422627663, 0.0000000000000003, -1.7037367422627665, 0.0000000000000003, -1.7037367422627665 42 | 0.8200000000000001, -0.0000000000000000, -0.0000000000000000, 0.2131868354592127, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -1.3105806237849782, -0.0000000000000001, 0.0000000000000001, 0.0000000000000000, 0.8377738659583086, -1.7109591644210052, 0.8377738659583086, -1.7109591644210052, -0.8377738659583084, 1.7109591644210052, -0.8377738659583084, 1.7109591644210052, 8.1030295745389953, -10.0000000000000000, 8.1030295745389953, -10.0000000000000000, -8.1030295745389953, 10.0000000000000000, -8.1030295745389953, 10.0000000000000000, -0.0000000000000000, 1.6717706751653156, -0.0000000000000000, 1.6717706751653156, -0.0000000000000006, -1.6717706751653159, -0.0000000000000006, -1.6717706751653159 43 | 0.8400000000000000, -0.0000000000000000, -0.0000000000000000, 0.1869752229835132, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.8651956588010467, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.9361064904094123, -1.9159673867318670, 0.9361064904094123, -1.9159673867318670, -0.9361064904094121, 1.9159673867318670, -0.9361064904094121, 1.9159673867318670, 4.9166312225551847, -10.0000000000000000, 4.9166312225551847, -10.0000000000000000, -4.9166312225551847, 10.0000000000000000, -4.9166312225551847, 10.0000000000000000, 0.0000000000000001, 1.5031127983705108, 0.0000000000000001, 1.5031127983705108, 0.0000000000000001, -1.5031127983705108, 0.0000000000000001, -1.5031127983705108 44 | 0.8600000000000000, -0.0000000000000000, -0.0000000000000000, 0.1696713098074922, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.5290240105202989, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.9965792953224557, -2.0434379554180531, 0.9965792953224557, -2.0434379554180531, -0.9965792953224555, 2.0434379554180531, -0.9965792953224555, 2.0434379554180531, 3.0236402456521705, -6.3735284343093053, 3.0236402456521705, -6.3735284343093053, -3.0236402456521705, 6.3735284343093053, -3.0236402456521705, 6.3735284343093053, -0.0000000000000002, 1.3104171185206701, -0.0000000000000002, 1.3104171185206701, 0.0000000000000001, -1.3104171185206703, 0.0000000000000001, -1.3104171185206703 45 | 0.8800000000000000, -0.0000000000000000, -0.0000000000000000, 0.1590908295970863, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.2800959057418424, 0.0000000000000007, -0.0000000000000000, 0.0000000000000000, 1.0320671020286014, -2.1189588909846342, 1.0320671020286014, -2.1189588909846342, -1.0320671020286014, 2.1189588909846342, -1.0320671020286014, 2.1189588909846342, 1.7743903353072854, -3.7760467783290563, 1.7743903353072854, -3.7760467783290563, -1.7743903353072965, 3.7760467783290563, -1.7743903353072965, 3.7760467783290563, 0.0000000000000001, 1.1322099072964691, 0.0000000000000001, 1.1322099072964691, 0.0000000000000001, -1.1322099072964691, 0.0000000000000001, -1.1322099072964691 46 | 0.9000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1534889114822494, 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.1001001225695148, 0.0000000000000003, 0.0000000000000000, 0.0000000000000000, 1.0504279881576974, -2.1582984433758985, 1.0504279881576974, -2.1582984433758985, -1.0504279881576974, 2.1582984433758985, -1.0504279881576974, 2.1582984433758985, 0.9180443064548016, -1.9669776195632149, 0.9180443064548016, -1.9669776195632149, -0.9180443064548016, 1.9669776195632149, -0.9180443064548016, 1.9669776195632149, 0.0000000000000002, 0.9807238907911787, 0.0000000000000002, 0.9807238907911787, -0.0000000000000001, -0.9807238907911787, -0.0000000000000001, -0.9807238907911787 47 | 0.9200000000000000, -0.0000000000000000, -0.0000000000000000, 0.1514869090308591, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0260785201815155, -0.0000000000000009, 0.0000000000000000, 0.0000000000000000, 1.0569195186045532, -2.1722570323321277, 1.0569195186045532, -2.1722570323321277, -1.0569195186045532, 2.1722570323321277, -1.0569195186045532, 2.1722570323321277, 0.3245765223427899, -0.6979294478114628, 0.3245765223427899, -0.6979294478114628, -0.3245765223427899, 0.6979294478114628, -0.3245765223427899, 0.6979294478114628, -0.0000000000000001, 0.8577581134231776, -0.0000000000000001, 0.8577581134231776, 0.0000000000000002, -0.8577581134231776, 0.0000000000000002, -0.8577581134231776 48 | 0.9400000000000001, -0.0000000000000000, -0.0000000000000000, 0.1520084794344894, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.1107973830437238, -0.0000000000000003, -0.0000000000000000, -0.0000000000000000, 1.0552319082090076, -2.1686255428346106, 1.0552319082090076, -2.1686255428346106, -1.0552319082090076, 2.1686255428346106, -1.0552319082090076, 2.1686255428346106, -0.0843805197772829, 0.1815744748758563, -0.0843805197772829, 0.1815744748758563, 0.0843805197772829, -0.1815744748758563, 0.0843805197772829, -0.1815744748758563, 0.0000000000000002, 0.7609850888535664, 0.0000000000000002, 0.7609850888535664, -0.0000000000000001, -0.7609850888535664, -0.0000000000000001, -0.7609850888535664 49 | 0.9600000000000000, 0.0000000000000000, -0.0000000000000000, 0.1542244270953639, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.1640607236716580, 0.0000000000000003, -0.0000000000000000, -0.0000000000000000, 1.0480339474318812, -2.1531574465159586, 1.0480339474318812, -2.1531574465159586, -1.0480339474318812, 2.1531574465159586, -1.0480339474318812, 2.1531574465159586, -0.3598980388563211, 0.7734048159325990, -0.3598980388563211, 0.7734048159325990, 0.3598980388563211, -0.7734048159325990, 0.3598980388563211, -0.7734048159325990, -0.0000000000000001, 0.6866571466948218, -0.0000000000000001, 0.6866571466948218, 0.0000000000000002, -0.6866571466948218, 0.0000000000000002, -0.6866571466948218 50 | 0.9800000000000000, 0.0000000000000000, -0.0000000000000000, 0.1575056415687970, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.1938859530706847, 0.0000000000000003, -0.0000000000000000, -0.0000000000000000, 1.0372924841902025, -2.1301343869144955, 1.0372924841902025, -2.1301343869144955, -1.0372924841902025, 2.1301343869144955, -1.0372924841902025, 2.1301343869144955, -0.5370731620839342, 1.1511529800731557, -0.5370731620839342, 1.1511529800731557, 0.5370731620839342, -1.1511529800731557, 0.5370731620839342, -1.1511529800731557, 0.0000000000000000, 0.6307982367220495, 0.0000000000000000, 0.6307982367220495, 0.0000000000000000, -0.6307982367220495, 0.0000000000000000, -0.6307982367220495 51 | 1.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.1613833606302107, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.2066295526839874, 0.0000000000000001, 0.0000000000000000, -0.0000000000000000, 1.0244688412161234, -2.1027355713926905, 1.0244688412161234, -2.1027355713926905, -1.0244688412161234, 2.1027355713926905, -1.0244688412161234, 2.1027355713926905, -0.6411821487039560, 1.3699407760902504, -0.6411821487039560, 1.3699407760902504, 0.6411821487039560, -1.3699407760902504, 0.6411821487039560, -1.3699407760902504, -0.0000000000000001, 0.5897180782447082, -0.0000000000000001, 0.5897180782447082, 0.0000000000000002, -0.5897180782447082, 0.0000000000000002, -0.5897180782447082 52 | 1.0200000000000000, 0.0000000000000000, -0.0000000000000000, 0.1655159516838905, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.2072729413700062, -0.0000000000000004, 0.0000000000000000, 0.0000000000000000, 1.0106455384845070, -2.0732981996714961, 1.0106455384845070, -2.0732981996714961, -1.0106455384845070, 2.0732981996714961, -1.0106455384845070, 2.0732981996714961, -0.6911651365808180, 1.4718685860597214, -0.6911651365808180, 1.4718685860597214, 0.6911651365808180, -1.4718685860597214, 0.6911651365808180, -1.4718685860597214, 0.0000000000000000, 0.5602102163673556, 0.0000000000000000, 0.5602102163673556, 0.0000000000000000, -0.5602102163673556, 0.0000000000000000, -0.5602102163673556 53 | 1.0400000000000000, 0.0000000000000000, -0.0000000000000000, 0.1696614105112906, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.1996700421784016, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.9966133054317238, -2.0435100450837620, 0.9966133054317238, -2.0435100450837620, -0.9966133054317236, 2.0435100450837620, -0.9966133054317236, 2.0435100450837620, -0.7016116526391614, 1.4894077293867047, -0.7016116526391614, 1.4894077293867047, 0.7016116526391725, -1.4894077293867047, 0.7016116526391725, -1.4894077293867047, -0.0000000000000001, 0.5395987420071529, -0.0000000000000001, 0.5395987420071529, 0.0000000000000000, -0.5395987420071530, 0.0000000000000000, -0.5395987420071530 54 | 1.0600000000000001, 0.0000000000000000, -0.0000000000000000, 0.1736548113548586, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1867592235275176, -0.0000000000000003, 0.0000000000000000, 0.0000000000000000, 0.9829348418529255, -2.0145562282352598, 0.9829348418529255, -2.0145562282352598, -0.9829348418529252, 2.0145562282352598, -0.9829348418529252, 2.0145562282352598, -0.6839231789399158, 1.4476908424251089, -0.6839231789399158, 1.4476908424251089, 0.6839231789399158, -1.4476908424251089, 0.6839231789399158, -1.4476908424251089, 0.0000000000000000, 0.5257127929416826, 0.0000000000000000, 0.5257127929416826, -0.0000000000000001, -0.5257127929416826, -0.0000000000000001, -0.5257127929416826 55 | 1.0800000000000001, 0.0000000000000000, -0.0000000000000000, 0.1773899958254090, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1707428139114809, -0.0000000000000004, -0.0000000000000000, 0.0000000000000000, 0.9699940673000096, -1.9872333921392746, 0.9699940673000096, -1.9872333921392746, -0.9699940673000094, 1.9872333921392746, -0.9699940673000094, 1.9872333921392746, -0.6470387276457934, 1.3661418047992591, -0.6470387276457934, 1.3661418047992591, 0.6470387276457934, -1.3661418047992591, 0.6470387276457934, -1.3661418047992591, 0.0000000000000001, 0.5168289447154853, 0.0000000000000001, 0.5168289447154853, -0.0000000000000002, -0.5168289447154855, -0.0000000000000002, -0.5168289447154855 56 | 1.1000000000000001, 0.0000000000000000, -0.0000000000000000, 0.1808048521036386, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.1532376215539285, 0.0000000000000005, -0.0000000000000000, -0.0000000000000000, 0.9580354986786178, -1.9620398369840097, 0.9580354986786178, -1.9620398369840097, -0.9580354986786176, 1.9620398369840097, -0.9580354986786176, 1.9620398369840097, -0.5979284310695887, 1.2596777577632445, -0.5979284310695887, 1.2596777577632445, 0.5979284310695887, -1.2596777577632445, 0.5979284310695887, -1.2596777577632445, -0.0000000000000001, 0.5116027152163226, -0.0000000000000001, 0.5116027152163226, -0.0000000000000002, -0.5116027152163228, -0.0000000000000002, -0.5116027152163228 57 | 1.1200000000000001, 0.0000000000000000, -0.0000000000000000, 0.1838696045347172, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1353999151475987, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.9471963248023000, -1.9392474122284831, 0.9471963248023000, -1.9392474122284831, -0.9471963248022998, 1.9392474122284831, -0.9471963248022998, 1.9392474122284831, -0.5419586938158916, 1.1396212377763337, -0.5419586938158916, 1.1396212377763337, 0.5419586938158916, -1.1396212377763337, 0.5419586938158916, -1.1396212377763337, -0.0000000000000001, 0.5090005235281542, -0.0000000000000001, 0.5090005235281542, -0.0000000000000001, -0.5090005235281543, -0.0000000000000001, -0.5090005235281543 58 | 1.1400000000000001, 0.0000000000000000, -0.0000000000000000, 0.1865776028376691, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.1180282045538302, -0.0000000000000001, 0.0000000000000000, -0.0000000000000000, 0.9375327110550525, -1.9189591896056979, 0.9375327110550525, -1.9189591896056979, -0.9375327110550523, 1.9189591896056979, -0.9375327110550523, 1.9189591896056979, -0.4831806873623723, 1.0144111311392590, -0.4831806873623723, 1.0144111311392590, 0.4831806873623723, -1.0144111311392590, 0.4831806873623723, -1.0144111311392590, -0.0000000000000001, 0.5082378640849795, -0.0000000000000001, 0.5082378640849795, -0.0000000000000001, -0.5082378640849795, -0.0000000000000001, -0.5082378640849795 59 | 1.1599999999999999, 0.0000000000000000, -0.0000000000000000, 0.1889381669287457, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.1016469511479693, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.9290413369673823, -1.9011557635895091, 0.9290413369673823, -1.9011557635895091, -0.9290413369673821, 1.9011557635895091, -0.9290413369673821, 1.9011557635895091, -0.4245687043835100, 0.8901713008094392, -0.4245687043835100, 0.8901713008094392, 0.4245687043835100, -0.8901713008094392, 0.4245687043835100, -0.8901713008094392, 0.0000000000000001, 0.5087261566173997, 0.0000000000000001, 0.5087261566173997, -0.0000000000000001, -0.5087261566173997, -0.0000000000000001, -0.5087261566173997 60 | 1.1799999999999999, 0.0000000000000000, -0.0000000000000000, 0.1909711059517051, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0865740739672024, 0.0000000000000002, -0.0000000000000000, 0.0000000000000000, 0.9216768881805398, -1.8857322484745418, 0.9216768881805398, -1.8857322484745418, -0.9216768881805396, 1.8857322484745418, -0.9216768881805396, 1.8857322484745418, -0.3682224393421252, 0.7711757557483656, -0.3682224393421252, 0.7711757557483656, 0.3682224393421252, -0.7711757557483656, 0.3682224393421252, -0.7711757557483656, -0.0000000000000001, 0.5100287805906765, -0.0000000000000001, 0.5100287805906765, 0.0000000000000001, -0.5100287805906766, 0.0000000000000001, -0.5100287805906766 61 | 1.2000000000000000, 0.0000000000000000, -0.0000000000000000, 0.1927025874310492, 1.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0729748275884789, -0.0000000000000002, 0.0000000000000000, 0.0000000000000000, 0.9153660713084772, -1.8725275396255137, 0.9153660713084772, -1.8725275396255137, -0.9153660713084770, 1.8725275396255137, -0.9153660713084770, 1.8725275396255137, -0.3155408436031293, 0.6602354424514068, -0.3155408436031293, 0.6602354424514068, 0.3155408436031293, -0.6602354424514068, 0.3155408436031293, -0.6602354424514068, -0.0000000000000001, 0.5118257134968434, -0.0000000000000001, 0.5118257134968434, -0.0000000000000001, -0.5118257134968435, -0.0000000000000001, -0.5118257134968435 62 | 1.2200000000000000, 0.0000000000000000, -0.0000000000000000, 0.1941620839828188, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0609043305526710, 0.0000000000000011, 0.0000000000000000, 0.0000000000000000, 0.9100186356292649, -1.8613470902146381, 0.9100186356292649, -1.8613470902146381, -0.9100186356292647, 1.8613470902146381, -0.9100186356292647, 1.8613470902146381, -0.2673717839606182, 0.5590224705437796, -0.2673717839606182, 0.5590224705437796, 0.2673717839606182, -0.5590224705437796, 0.2673717839606182, -0.5590224705437796, -0.0000000000000001, 0.5138856669571297, -0.0000000000000001, 0.5138856669571297, -0.0000000000000001, -0.5138856669571297, -0.0000000000000001, -0.5138856669571297 63 | 1.2400000000000000, 0.0000000000000000, -0.0000000000000000, 0.1953801705938722, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0503407328881122, -0.0000000000000002, -0.0000000000000000, 0.0000000000000000, 0.9055358361944628, -1.8519802548772033, 0.9055358361944628, -1.8519802548772033, -0.9055358361944625, 1.8519802548772033, -0.9055358361944625, 1.8519802548772033, -0.2241399717401060, 0.4683417668717382, -0.2241399717401060, 0.4683417668717382, 0.2241399717401060, -0.4683417668717382, 0.2241399717401060, -0.4683417668717382, 0.0000000000000000, 0.5160444470004381, 0.0000000000000000, 0.5160444470004381, -0.0000000000000002, -0.5160444470004382, -0.0000000000000002, -0.5160444470004382 64 | 1.2600000000000000, 0.0000000000000000, -0.0000000000000000, 0.1963869852516344, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0412107369359670, -0.0000000000000005, 0.0000000000000000, 0.0000000000000000, 0.9018167390590373, -1.8442131175647531, 0.9018167390590373, -1.8442131175647531, -0.9018167390590370, 1.8442131175647531, -0.9018167390590370, 1.8442131175647531, -0.1859548567712754, 0.3883568656225078, -0.1859548567712754, 0.3883568656225078, 0.1859548567712754, -0.3883568656225078, 0.1859548567712754, -0.3883568656225078, -0.0000000000000001, 0.5181883072143723, -0.0000000000000001, 0.5181883072143723, -0.0000000000000001, -0.5181883072143723, -0.0000000000000001, -0.5181883072143723 65 | 1.2800000000000000, 0.0000000000000000, -0.0000000000000000, 0.1972111999903537, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0334089327825752, 0.0000000000000010, 0.0000000000000000, 0.0000000000000000, 0.8987627393468617, -1.8378376185246155, 0.8987627393468617, -1.8378376185246155, -0.8987627393468615, 1.8378376185246155, -0.8987627393468615, 1.8378376185246155, -0.1526999856087785, 0.3187749520068839, -0.1526999856087785, 0.3187749520068839, 0.1526999856087785, -0.3187749520068839, 0.1526999856087785, -0.3187749520068839, 0.0000000000000000, 0.5202412121539611, 0.0000000000000000, 0.5202412121539611, -0.0000000000000002, -0.5202412121539612, -0.0000000000000002, -0.5202412121539612 66 | 1.3000000000000000, 0.0000000000000000, -0.0000000000000000, 0.1978793786460052, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0268121810926005, -0.0000000000000002, -0.0000000000000000, 0.0000000000000000, 0.8962806309868403, -1.8326577049042416, 0.8962806309868403, -1.8326577049042416, -0.8962806309868401, 1.8326577049042416, -0.8962806309868401, 1.8326577049042416, -0.1241054180010692, 0.2589956810186922, -0.1241054180010692, 0.2589956810186922, 0.1241054180010692, -0.2589956810186922, 0.1241054180010692, -0.2589956810186922, -0.0000000000000001, 0.5221551154778978, -0.0000000000000001, 0.5221551154778978, 0.0000000000000000, -0.5221551154778979, 0.0000000000000000, -0.5221551154778979 67 | 1.3200000000000001, 0.0000000000000000, -0.0000000000000000, 0.1984156222678573, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0212900730581180, -0.0000000000000004, -0.0000000000000000, 0.0000000000000000, 0.8942845313903700, -1.8284931416461270, 0.8942845313903700, -1.8284931416461270, -0.8942845313903698, 1.8284931416461270, -0.8942845313903698, 1.8284931416461270, -0.0998049798235146, 0.2082281629057325, -0.0998049798235146, 0.2082281629057325, 0.0998049798235146, -0.2082281629057325, 0.0998049798235146, -0.2082281629057325, -0.0000000000000001, 0.5239025424049198, -0.0000000000000001, 0.5239025424049198, -0.0000000000000001, -0.5239025424049200, -0.0000000000000001, -0.5239025424049200 68 | 1.3400000000000001, 0.0000000000000000, -0.0000000000000000, 0.1988414237290196, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0167123192572685, 0.0000000000000002, 0.0000000000000000, 0.0000000000000000, 0.8926969257497743, -1.8251815316644324, 0.8926969257497743, -1.8251815316644324, -0.8926969257497741, 1.8251815316644324, -0.8926969257497741, 1.8251815316644324, -0.0793802820297840, 0.1655804990847276, -0.0793802820297840, 0.1655804990847276, 0.0793802820297840, -0.1655804990847276, 0.0793802820297840, -0.1655804990847276, 0.0000000000000000, 0.5254709287752257, 0.0000000000000000, 0.5254709287752257, -0.0000000000000001, -0.5254709287752257, -0.0000000000000001, -0.5254709287752257 69 | 1.3600000000000001, 0.0000000000000000, -0.0000000000000000, 0.1991756701141650, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0129537652888287, -0.0000000000000010, -0.0000000000000000, 0.0000000000000000, 0.8914490558419640, -1.8225790080473332, 0.8914490558419640, -1.8225790080473332, -0.8914490558419638, 1.8225790080473332, -0.8914490558419638, 1.8225790080473332, -0.0623934953905170, 0.1301261808549614, -0.0623934953905170, 0.1301261808549614, 0.0623934953905170, -0.1301261808549614, 0.0623934953905170, -0.1301261808549614, -0.0000000000000002, 0.5268583018490602, -0.0000000000000002, 0.5268583018490602, -0.0000000000000001, -0.5268583018490604, -0.0000000000000001, -0.5268583018490604 70 | 1.3800000000000001, 0.0000000000000000, -0.0000000000000000, 0.1994347454199416, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0098976003950928, -0.0000000000000003, -0.0000000000000000, 0.0000000000000000, 0.8904808392860996, -1.8205599788661393, 0.8904808392860996, -1.8205599788661393, -0.8904808392860993, 1.8205599788661393, -0.8904808392860993, 1.8205599788661393, -0.0484108277932216, 0.1009514590596949, -0.0484108277932216, 0.1009514590596949, 0.0484108277932216, -0.1009514590596949, 0.0484108277932216, -0.1009514590596949, 0.0000000000000002, 0.5280699911796376, 0.0000000000000002, 0.5280699911796376, -0.0000000000000002, -0.5280699911796377, -0.0000000000000002, -0.5280699911796377 71 | 1.4000000000000001, 0.0000000000000000, -0.0000000000000000, 0.1996326974278434, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0074372138716203, 0.0000000000000007, 0.0000000000000000, 0.0000000000000000, 0.8897404688854661, -1.8190162297072949, 0.8897404688854661, -1.8190162297072949, -0.8897404688854659, 1.8190162297072949, -0.8897404688854659, 1.8190162297072949, -0.0370185200316731, 0.0771874579422183, -0.0370185200316731, 0.0771874579422183, 0.0370185200316731, -0.0771874579422183, 0.0370185200316731, -0.0771874579422183, 0.0000000000000001, 0.5291161353971051, 0.0000000000000001, 0.5291161353971051, 0.0000000000000001, -0.5291161353971051, 0.0000000000000001, -0.5291161353971051 72 | 1.4199999999999999, 0.0000000000000000, 0.0000000000000000, 0.1997814417052758, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0054770607221220, 0.0000000000000001, 0.0000000000000000, 0.0000000000000000, 0.8891838091926900, -1.8178556221508286, 0.8891838091926900, -1.8178556221508286, -0.8891838091926898, 1.8178556221508286, -0.8891838091926898, 1.8178556221508286, -0.0278329846388037, 0.0580303778233149, -0.0278329846388037, 0.0580303778233149, 0.0278329846388037, -0.0580303778233149, 0.0278329846388037, -0.0580303778233149, -0.0000000000000001, 0.5300098077220859, -0.0000000000000001, 0.5300098077220859, 0.0000000000000000, -0.5300098077220861, 0.0000000000000000, -0.5300098077220861 73 | 1.4399999999999999, 0.0000000000000000, 0.0000000000000000, 0.1998909829197183, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0039328205769233, 0.0000000000000005, -0.0000000000000000, -0.0000000000000000, 0.8887736794099897, -1.8170005690392197, 0.8887736794099897, -1.8170005690392197, -0.8887736794099895, 1.8170005690392197, -0.8887736794099895, 1.8170005690392197, -0.0205064891350137, 0.0427526555804469, -0.0205064891350137, 0.0427526555804469, 0.0205064891350137, -0.0427526555804469, 0.0205064891350137, -0.0427526555804469, -0.0000000000000001, 0.5307656245385987, -0.0000000000000001, 0.5307656245385987, -0.0000000000000001, -0.5307656245385988, -0.0000000000000001, -0.5307656245385988 74 | 1.4600000000000000, 0.0000000000000000, 0.0000000000000000, 0.1999696393312567, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0027310702607919, 0.0000000000000002, -0.0000000000000000, -0.0000000000000000, 0.8884790883222308, -1.8163864196120318, 0.8884790883222308, -1.8163864196120318, -0.8884790883222305, 1.8163864196120318, -0.8884790883222305, 1.8163864196120318, -0.0147295543879489, 0.0307074713593924, -0.0147295543879489, 0.0307074713593924, 0.0147295543879489, -0.0307074713593924, 0.0147295543879489, -0.0307074713593924, -0.0000000000000003, 0.5313987316632133, -0.0000000000000003, 0.5313987316632133, 0.0000000000000001, -0.5313987316632134, 0.0000000000000001, -0.5313987316632134 75 | 1.4800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000242607364726, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0018086386126295, -0.0000000000000006, 0.0000000000000000, 0.0000000000000000, 0.8882744679569418, -1.8159598488935178, 0.8882744679569418, -1.8159598488935178, -0.8882744679569415, 1.8159598488935178, -0.8882744679569415, 1.8159598488935178, -0.0102310182644505, 0.0213285359257021, -0.0102310182644505, 0.0213285359257021, 0.0102310182644505, -0.0213285359257021, 0.0102310182644505, -0.0213285359257021, 0.0000000000000001, 0.5319240853545477, 0.0000000000000001, 0.5319240853545477, -0.0000000000000002, -0.5319240853545478, -0.0000000000000002, -0.5319240853545478 76 | 1.5000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000604335087252, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0011117704357351, -0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.8881389376486111, -1.8156773151883545, 0.8881389376486111, -1.8156773151883545, -0.8881389376486108, 1.8156773151883545, -0.8881389376486108, 1.8156773151883545, -0.0067765154165345, 0.0141266852581645, -0.0067765154165345, 0.0141266852581645, 0.0067765154165345, -0.0141266852581645, 0.0067765154165345, -0.0141266852581645, -0.0000000000000001, 0.5323559620195423, -0.0000000000000001, 0.5323559620195423, 0.0000000000000001, -0.5323559620195425, 0.0000000000000001, -0.5323559620195425 77 | 1.5200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000826689174399, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0005951931867639, -0.0000000000000004, -0.0000000000000000, -0.0000000000000000, 0.8880556186209657, -1.8155036260481197, 0.8880556186209657, -1.8155036260481197, -0.8880556186209655, 1.8155036260481197, -0.8880556186209655, 1.8155036260481197, -0.0041659513822678, 0.0086844570117428, -0.0041659513822678, 0.0086844570117428, 0.0041659513822678, -0.0086844570117428, 0.0041659513822678, -0.0086844570117428, -0.0000000000000002, 0.5327076436595790, -0.0000000000000002, 0.5327076436595790, -0.0000000000000001, -0.5327076436595791, -0.0000000000000001, -0.5327076436595791 78 | 1.5400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000945727811752, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, 0.0002211537748300, -0.0000000000000006, -0.0000000000000000, 0.0000000000000000, 0.8880110105279275, -1.8154106354598807, 0.8880110105279275, -1.8154106354598807, -0.8880110105279273, 1.8154106354598807, -0.8880110105279273, 1.8154106354598807, -0.0022304046519095, 0.0046495294119486, -0.0022304046519095, 0.0046495294119486, 0.0022304046519095, -0.0046495294119486, 0.0022304046519095, -0.0046495294119486, -0.0000000000000001, 0.5329912364783401, -0.0000000000000001, 0.5329912364783401, -0.0000000000000001, -0.5329912364783402, -0.0000000000000001, -0.5329912364783402 79 | 1.5600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000989958566717, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000415275977095, 0.0000000000000005, 0.0000000000000000, 0.0000000000000000, 0.8879944350721931, -1.8153760821769811, 0.8879944350721931, -1.8153760821769811, -0.8879944350721929, 1.8153760821769811, -0.8879944350721929, 1.8153760821769811, -0.0008287727867207, 0.0017276641449793, -0.0008287727867207, 0.0017276641449793, 0.0008287727867207, -0.0017276641449793, 0.0008287727867207, -0.0017276641449793, 0.0000000000000001, 0.5332175884753411, 0.0000000000000001, 0.5332175884753411, -0.0000000000000001, -0.5332175884753411, -0.0000000000000001, -0.5332175884753411 80 | 1.5800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000981653047176, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0002183553298495, 0.0000000000000012, -0.0000000000000000, 0.0000000000000000, 0.8879975473642312, -1.8153825700725366, 0.8879975473642312, -1.8153825700725366, -0.8879975473642310, 1.8153825700725366, -0.8879975473642310, 1.8153825700725366, 0.0001556146019044, -0.0003243947777731, 0.0001556146019044, -0.0003243947777731, -0.0001556146019044, 0.0003243947777731, -0.0001556146019044, 0.0003243947777731, 0.0000000000000002, 0.5333962787481048, 0.0000000000000002, 0.5333962787481048, -0.0000000000000003, -0.5333962787481049, -0.0000000000000003, -0.5333962787481049 81 | 1.6000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000937981981206, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0003299887136479, 0.0000000000000001, 0.0000000000000000, 0.0000000000000000, 0.8880139126749708, -1.8154166852976412, 0.8880139126749708, -1.8154166852976412, -0.8880139126749705, 1.8154166852976412, -0.8880139126749705, 1.8154166852976412, 0.0008182655369782, -0.0017057612552329, 0.0008182655369782, -0.0017057612552329, -0.0008182655369782, 0.0017057612552329, -0.0008182655369782, 0.0017057612552329, 0.0000000000000002, 0.5335356569328092, 0.0000000000000002, 0.5335356569328092, -0.0000000000000002, -0.5335356569328092, -0.0000000000000002, -0.5335356569328092 82 | 1.6200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000871984238476, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0003929941104320, -0.0000000000000012, -0.0000000000000000, -0.0000000000000000, 0.8880386443232612, -1.8154682411598158, 0.8880386443232612, -1.8154682411598158, -0.8880386443232610, 1.8154682411598158, -0.8880386443232610, 1.8154682411598158, 0.0012365824145211, -0.0025777931087267, 0.0012365824145211, -0.0025777931087267, -0.0012365824145211, 0.0025777931087267, -0.0012365824145211, 0.0025777931087267, 0.0000000000000001, 0.5336429159397867, 0.0000000000000001, 0.5336429159397867, -0.0000000000000002, -0.5336429159397869, -0.0000000000000002, -0.5336429159397869 83 | 1.6400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000793385416390, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0004205149037915, -0.0000000000000002, 0.0000000000000000, -0.0000000000000000, 0.8880680973406058, -1.8155296394268299, 0.8880680973406058, -1.8155296394268299, -0.8880680973406055, 1.8155296394268299, -0.8880680973406055, 1.8155296394268299, 0.0014726508672291, -0.0030699133507062, 0.0014726508672291, -0.0030699133507062, -0.0014726508672291, 0.0030699133507062, -0.0014726508672291, 0.0030699133507062, 0.0000000000000001, 0.5337241850402533, 0.0000000000000001, 0.5337241850402533, -0.0000000000000002, -0.5337241850402534, -0.0000000000000002, -0.5337241850402534 84 | 1.6600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000709282435631, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0004228596334296, 0.0000000000000007, 0.0000000000000000, -0.0000000000000000, 0.8880996120453072, -1.8155953357488375, 0.8880996120453072, -1.8155953357488375, -0.8880996120453070, 1.8155953357488375, -0.8880996120453070, 1.8155953357488375, 0.0015757352350709, -0.0032848161003796, 0.0015757352350709, -0.0032848161003796, -0.0015757352350709, 0.0032848161003796, -0.0015757352350709, 0.0032848161003796, 0.0000000000000001, 0.5337846335543522, 0.0000000000000001, 0.5337846335543522, -0.0000000000000002, -0.5337846335543525, -0.0000000000000002, -0.5337846335543525 85 | 1.6799999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000624710508945, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0004080117644606, 0.0000000000000002, -0.0000000000000000, -0.0000000000000000, 0.8881313015605238, -1.8156613967207733, 0.8881313015605238, -1.8156613967207733, -0.8881313015605236, 1.8156613967207733, -0.8881313015605236, 1.8156613967207733, 0.0015844757608297, -0.0033030485967922, 0.0015844757608297, -0.0033030485967922, -0.0015844757608297, 0.0033030485967922, -0.0015844757608297, 0.0033030485967922, 0.0000000000000001, 0.5338285779786542, 0.0000000000000001, 0.5338285779786542, -0.0000000000000002, -0.5338285779786544, -0.0000000000000002, -0.5338285779786544 86 | 1.7000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000543108156053, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0003820664860761, 0.0000000000000001, -0.0000000000000000, -0.0000000000000000, 0.8881618774915881, -1.8157251365037883, 0.8881618774915881, -1.8157251365037883, -0.8881618774915879, 1.8157251365037883, -0.8881618774915879, 1.8157251365037883, 0.0015287965532185, -0.0031869891507497, 0.0015287965532185, -0.0031869891507497, -0.0015287965532185, 0.0031869891507497, -0.0015287965532185, 0.0031869891507497, 0.0000000000000001, 0.5338595874617331, 0.0000000000000001, 0.5338595874617331, -0.0000000000000002, -0.5338595874617332, -0.0000000000000002, -0.5338595874617332 87 | 1.7200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000466694858838, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0003496010425583, 0.0000000000000004, -0.0000000000000000, 0.0000000000000000, 0.8881905083364723, -1.8157848216835124, 0.8881905083364723, -1.8157848216835124, -0.8881905083364721, 1.8157848216835124, -0.8881905083364721, 1.8157848216835124, 0.0014315422442068, -0.0029842589862050, 0.0014315422442068, -0.0029842589862050, -0.0014315422442068, 0.0029842589862050, -0.0014315422442068, 0.0029842589862050, -0.0000000000000001, 0.5338805841683090, -0.0000000000000001, 0.5338805841683090, -0.0000000000000001, -0.5338805841683091, -0.0000000000000001, -0.5338805841683091 88 | 1.7400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000396774650326, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0003139856013994, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.8882167056652396, -1.8158394340123856, 0.8882167056652396, -1.8158394340123856, -0.8882167056652394, 1.8158394340123856, -0.8882167056652394, 1.8158394340123856, 0.0013098664383648, -0.0027306164436580, 0.0013098664383648, -0.0027306164436580, -0.0013098664383648, 0.0027306164436580, -0.0013098664383648, 0.0027306164436580, 0.0000000000000001, 0.5338939363367313, 0.0000000000000001, 0.5338939363367313, -0.0000000000000001, -0.5338939363367313, -0.0000000000000001, -0.5338939363367313 89 | 1.7600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000333977530047, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0002776417327598, 0.0000000000000005, 0.0000000000000000, 0.0000000000000000, 0.8882402336161804, -1.8158884817536372, 0.8882402336161804, -1.8158884817536372, -0.8882402336161802, 1.8158884817536372, -0.8882402336161802, 1.8158884817536372, 0.0011763975470425, -0.0024523870625792, 0.0011763975470425, -0.0024523870625792, -0.0011763975470425, 0.0024523870625792, -0.0011763975470425, 0.0024523870625792, -0.0000000000000001, 0.5339015427948715, -0.0000000000000001, 0.5339015427948715, -0.0000000000000001, -0.5339015427948716, -0.0000000000000001, -0.5339015427948716 90 | 1.7800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000278449183495, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0002422553472011, -0.0000000000000007, 0.0000000000000000, 0.0000000000000000, 0.8882610377804834, -1.8159318514387113, 0.8882610377804834, -1.8159318514387113, -0.8882610377804832, 1.8159318514387113, -0.8882610377804832, 1.8159318514387113, 0.0010402082151473, -0.0021684842537062, 0.0010402082151473, -0.0021684842537062, -0.0010402082151473, 0.0021684842537062, -0.0010402082151473, 0.0021684842537062, 0.0000000000000002, 0.5339049084120238, 0.0000000000000002, 0.5339049084120238, -0.0000000000000002, -0.5339049084120238, -0.0000000000000002, -0.5339049084120238 91 | 1.8000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000229998114054, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0002089505179862, -0.0000000000000007, -0.0000000000000000, -0.0000000000000000, 0.8882791900583303, -1.8159696929157607, 0.8882791900583303, -1.8159696929157607, -0.8882791900583301, 1.8159696929157607, -0.8882791900583301, 1.8159696929157607, 0.0009076138923481, -0.0018920738524719, 0.0009076138923481, -0.0018920738524719, -0.0009076138923481, 0.0018920738524719, -0.0009076138923481, 0.0018920738524719, -0.0000000000000001, 0.5339052104781854, -0.0000000000000001, 0.5339052104781854, 0.0000000000000001, -0.5339052104781855, 0.0000000000000001, -0.5339052104781855 92 | 1.8200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000188208010457, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0001784300778226, -0.0000000000000006, -0.0000000000000000, -0.0000000000000000, 0.8882948465507200, -1.8160023315704814, 0.8882948465507200, -1.8160023315704814, -0.8882948465507198, 1.8160023315704814, -0.8882948465507198, 1.8160023315704814, 0.0007828246194830, -0.0016319327360348, 0.0007828246194830, -0.0016319327360348, -0.0007828246194830, 0.0016319327360348, -0.0007828246194830, 0.0016319327360348, 0.0000000000000001, 0.5339033563591661, 0.0000000000000001, 0.5339033563591661, -0.0000000000000002, -0.5339033563591662, -0.0000000000000002, -0.5339033563591662 93 | 1.8400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000152521994892, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0001510882846552, -0.0000000000000002, 0.0000000000000000, -0.0000000000000000, 0.8883082159934168, -1.8160302025219508, 0.8883082159934168, -1.8160302025219508, -0.8883082159934166, 1.8160302025219508, -0.8883082159934166, 1.8160302025219508, 0.0006684721348404, -0.0013935475734694, 0.0006684721348404, -0.0013935475734694, -0.0006684721348404, 0.0013935475734694, -0.0006684721348404, 0.0013935475734694, 0.0000000000000001, 0.5339000330118939, 0.0000000000000001, 0.5339000330118939, -0.0000000000000001, -0.5339000330118940, -0.0000000000000001, -0.5339000330118940 94 | 1.8600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000122304337962, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0001271002376126, 0.0000000000000004, 0.0000000000000000, -0.0000000000000000, 0.8883195366371079, -1.8160538024249699, 0.8883195366371079, -1.8160538024249699, -0.8883195366371077, 1.8160538024249699, -0.8883195366371077, 1.8160538024249699, 0.0005660321845569, -0.0011799951509572, 0.0005660321845569, -0.0011799951509572, -0.0005660321845569, 0.0011799951509572, -0.0005660321845569, 0.0011799951509572, -0.0000000000000001, 0.5338957490886725, -0.0000000000000001, 0.5338957490886725, 0.0000000000000002, -0.5338957490886725, 0.0000000000000002, -0.5338957490886725 95 | 1.8800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000096884290439, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0001064921203770, 0.0000000000000003, 0.0000000000000000, -0.0000000000000000, 0.8883290598295406, -1.8160736552432979, 0.8883290598295406, -1.8160736552432979, -0.8883290598295404, 1.8160736552432979, -0.8883290598295404, 1.8160736552432979, 0.0004761596216318, -0.0009926409163974, 0.0004761596216318, -0.0009926409163974, -0.0004761596216318, 0.0009926409163974, -0.0004761596216318, 0.0009926409163974, 0.0000000000000001, 0.5338908704362071, 0.0000000000000001, 0.5338908704362071, -0.0000000000000002, -0.5338908704362072, -0.0000000000000002, -0.5338908704362072 96 | 1.9000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000075585866363, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000891957731179, 0.0000000000000002, 0.0000000000000000, -0.0000000000000000, 0.8883370388616727, -1.8160902889964359, 0.8883370388616727, -1.8160902889964359, -0.8883370388616725, 1.8160902889964359, -0.8883370388616725, 1.8160902889964359, 0.0003989516066061, -0.0008316876568992, 0.0003989516066061, -0.0008316876568992, -0.0003989516066061, 0.0008316876568992, -0.0003989516066061, 0.0008316876568992, 0.0000000000000001, 0.5338856498246751, 0.0000000000000001, 0.5338856498246751, -0.0000000000000001, -0.5338856498246751, -0.0000000000000001, -0.5338856498246751 97 | 1.9199999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000057746711740, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000750905562904, -0.0000000000000004, 0.0000000000000000, -0.0000000000000000, 0.8883437219027660, -1.8161042210305505, 0.8883437219027660, -1.8161042210305505, -0.8883437219027658, 1.8161042210305505, -0.8883437219027658, 1.8161042210305505, 0.0003341520546651, -0.0006966017057297, 0.0003341520546651, -0.0006966017057297, -0.0003341520546651, 0.0006966017057297, -0.0003341520546651, 0.0006966017057297, 0.0000000000000001, 0.5338802517395675, 0.0000000000000001, 0.5338802517395675, -0.0000000000000002, -0.5338802517395677, -0.0000000000000002, -0.5338802517395677 98 | 1.9399999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000042728600482, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000640349749591, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883493480717901, -1.8161159498276960, 0.8883493480717901, -1.8161159498276960, -0.8883493480717899, 1.8161159498276960, -0.8883493480717899, 1.8161159498276960, 0.0002813084512054, -0.0005864398572752, 0.0002813084512054, -0.0005864398572752, -0.0002813084512054, 0.0005864398572752, -0.0002813084512054, 0.0005864398572752, -0.0000000000000001, 0.5338747730468234, -0.0000000000000001, 0.5338747730468234, 0.0000000000000001, -0.5338747730468235, 0.0000000000000001, -0.5338747730468235 99 | 1.9600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000029921605490, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000558900816345, -0.0000000000000005, 0.0000000000000000, 0.0000000000000000, 0.8883541458777174, -1.8161259517535855, 0.8883541458777174, -1.8161259517535855, -0.8883541458777172, 1.8161259517535855, -0.8883541458777172, 1.8161259517535855, 0.0002398902963663, -0.0005000962944757, 0.0002398902963663, -0.0005000962944757, -0.0002398902963663, 0.0005000962944757, -0.0002398902963663, 0.0005000962944757, 0.0000000000000002, 0.5338692603094778, 0.0000000000000002, 0.5338692603094778, -0.0000000000000003, -0.5338692603094779, -0.0000000000000003, -0.5338692603094779 100 | 1.9800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000018743589163, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000505362666268, -0.0000000000000010, -0.0000000000000000, 0.0000000000000000, 0.8883583334126594, -1.8161346814596318, 0.8883583334126594, -1.8161346814596318, -0.8883583334126591, 1.8161346814596318, -0.8883583334126591, 1.8161346814596318, 0.0002093767470956, -0.0004364853023131, 0.0002093767470956, -0.0004364853023131, -0.0002093767470956, 0.0004364853023131, -0.0002093767470956, 0.0004364853023131, -0.0000000000000001, 0.5338637244989292, -0.0000000000000001, 0.5338637244989292, 0.0000000000000001, -0.5338637244989292, 0.0000000000000001, -0.5338637244989292 101 | 2.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000008636335838, 1.0000000000000000, -0.0000000000000000, 0.0000000000000000, 0.0000000000000000, -0.0000000000000000, 0.0000000000000000, -0.0000478846731897, -0.0000000000000001, -0.0000000000000000, 0.0000000000000000, 0.8883621198023837, -1.8161425749064033, 0.8883621198023837, -1.8161425749064033, -0.8883621198023834, 1.8161425749064033, -0.8883621198023834, 1.8161425749064033, 0.0001893194862157, -0.0003946723385773, 0.0001893194862157, -0.0003946723385773, -0.0001893194862157, 0.0003946723385773, -0.0001893194862157, 0.0003946723385773, 0.0000000000000001, 0.5338581538114734, 0.0000000000000001, 0.5338581538114734, -0.0000000000000001, -0.5338581538114735, -0.0000000000000001, -0.5338581538114735 102 | -------------------------------------------------------------------------------- /csv/08-29-jump-ref.csv: -------------------------------------------------------------------------------- 1 | 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 2 | 0.0200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 3 | 0.0400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 4 | 0.0600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 5 | 0.0800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 6 | 0.1000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 7 | 0.1200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 8 | 0.1400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 9 | 0.1600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 10 | 0.1800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 11 | 0.2000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 12 | 0.2200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 13 | 0.2400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 14 | 0.2600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 15 | 0.2800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 16 | 0.3000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 17 | 0.3200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 18 | 0.3400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 19 | 0.3600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 20 | 0.3800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 21 | 0.4000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 22 | 0.4200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2055720800000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8672847061015231, -1.7722532164076856, 0.8672847061015231, -1.7722532164076856, -0.8672847061015229, 1.7722532164076856, -0.8672847061015229, 1.7722532164076856, -1.0540068894933641, 2.1947518690231593, -1.0540068894933641, 2.1947518690231593, 1.0540068894933641, -2.1947518690231593, 1.0540068894933641, -2.1947518690231593, -0.0000000000000001, 0.5245955169128959, -0.0000000000000001, 0.5245955169128959, -0.0000000000000001, -0.5245955169128960, -0.0000000000000001, -0.5245955169128960 23 | 0.4400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2210326400000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8064376341446196, -1.6460486200652589, 0.8064376341446196, -1.6460486200652589, -0.8064376341446193, 1.6460486200652589, -0.8064376341446193, 1.6460486200652589, -3.0423535978451763, 6.3102298171213373, -3.0423535978451763, 6.3102298171213373, 3.0423535978451763, -6.3102298171213373, 3.0423535978451763, -6.3102298171213373, 0.0000000000000002, 0.4965632859409997, 0.0000000000000002, 0.4965632859409997, -0.0000000000000002, -0.4965632859409998, -0.0000000000000002, -0.4965632859409998 24 | 0.4600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2444981600000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.7058757910377318, -1.4387013267261126, 0.7058757910377318, -1.4387013267261126, -0.7058757910377316, 1.4387013267261126, -0.7058757910377316, 1.4387013267261126, -5.0280921553443880, 10.0000000000000000, -5.0280921553443880, 10.0000000000000000, 5.0280921553443880, -10.0000000000000000, 5.0280921553443880, -10.0000000000000000, 0.0000000000000000, 0.4462581666574592, 0.0000000000000000, 0.4462581666574592, -0.0000000000000001, -0.4462581666574592, -0.0000000000000001, -0.4462581666574592 25 | 0.4800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2740851200000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.5576008324454852, -1.1348106975177534, 0.5576008324454852, -1.1348106975177534, -0.5576008324454850, 1.1348106975177534, -0.5576008324454850, 1.1348106975177534, -7.4137479296123301, 10.0000000000000000, -7.4137479296123301, 10.0000000000000000, 7.4137479296123301, -10.0000000000000000, 7.4137479296123301, -10.0000000000000000, -0.0000000000000000, 0.3640175263735289, -0.0000000000000000, 0.3640175263735289, 0.0000000000000001, -0.3640175263735289, 0.0000000000000001, -0.3640175263735289 26 | 0.5000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3079100000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3205791449564001, -0.6515524215422399, 0.3205791449564001, -0.6515524215422399, -0.3205791449564000, 0.6515524215422399, -0.3205791449564000, 0.6515524215422399, -10.0000000000000000, 10.0000000000000000, -10.0000000000000000, 10.0000000000000000, 10.0000000000000000, -10.0000000000000000, 10.0000000000000000, -10.0000000000000000, 0.0000000000000001, 0.2167767420587271, 0.0000000000000001, 0.2167767420587271, -0.0000000000000002, -0.2167767420587271, -0.0000000000000002, -0.2167767420587271 27 | 0.5200000000000000, 0.0000000000000000, 0.0000000000000000, 0.3440892800000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.4018554805686386, 0.8176876797355681, -0.4018554805686386, 0.8176876797355681, 0.4018554805686386, -0.8176876797355681, 0.4018554805686386, -0.8176876797355681, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 28 | 0.5400000000000000, 0.0000000000000000, 0.0000000000000000, 0.3807394400000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 29 | 0.5600000000000001, 0.0000000000000000, 0.0000000000000000, 0.4159769600000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 30 | 0.5800000000000000, 0.0000000000000000, 0.0000000000000000, 0.4479183199999999, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 31 | 0.6000000000000000, 0.0000000000000000, 0.0000000000000000, 0.4746799999999999, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 32 | 0.6200000000000000, 0.0000000000000000, 0.0000000000000000, 0.4943784800000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 33 | 0.6400000000000000, 0.0000000000000000, 0.0000000000000000, 0.5051302400000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 34 | 0.6600000000000000, 0.0000000000000000, 0.0000000000000000, 0.5051302400000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 35 | 0.6800000000000000, 0.0000000000000000, 0.0000000000000000, 0.4943784800000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 36 | 0.7000000000000001, 0.0000000000000000, 0.0000000000000000, 0.4746799999999999, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 37 | 0.7200000000000000, 0.0000000000000000, 0.0000000000000000, 0.4479183200000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 38 | 0.7400000000000000, 0.0000000000000000, 0.0000000000000000, 0.4159769600000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 39 | 0.7600000000000000, 0.0000000000000000, 0.0000000000000000, 0.3807394400000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 40 | 0.7800000000000000, 0.0000000000000000, 0.0000000000000000, 0.3440892800000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3125420353450273, -0.6351986679475286, 0.3125420353450273, -0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.3125420353450272, 0.6351986679475286, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000 41 | 0.8000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3079100000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.3205791449564001, -0.6515524215422390, 0.3205791449564001, -0.6515524215422390, -0.3205791449564000, 0.6515524215422390, -0.3205791449564000, 0.6515524215422390, 0.4018554805686386, -0.8176876797355237, 0.4018554805686386, -0.8176876797355237, -0.4018554805686386, 0.8176876797355237, -0.4018554805686386, 0.8176876797355237, -0.0000000000000004, 0.2167767420587265, -0.0000000000000004, 0.2167767420587265, 0.0000000000000004, -0.2167767420587266, 0.0000000000000004, -0.2167767420587266 42 | 0.8200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2740851200000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.5576008324454852, -1.1348106975177534, 0.5576008324454852, -1.1348106975177534, -0.5576008324454850, 1.1348106975177534, -0.5576008324454850, 1.1348106975177534, 10.0000000000000000, -10.0000000000000000, 10.0000000000000000, -10.0000000000000000, -10.0000000000000000, 10.0000000000000000, -10.0000000000000000, 10.0000000000000000, -0.0000000000000000, 0.3640175263735289, -0.0000000000000000, 0.3640175263735289, 0.0000000000000001, -0.3640175263735289, 0.0000000000000001, -0.3640175263735289 43 | 0.8400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2444981600000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.7058757910377317, -1.4387013267261122, 0.7058757910377317, -1.4387013267261122, -0.7058757910377315, 1.4387013267261122, -0.7058757910377315, 1.4387013267261122, 7.4137479296123239, -10.0000000000000000, 7.4137479296123239, -10.0000000000000000, -7.4137479296123239, 10.0000000000000000, -7.4137479296123239, 10.0000000000000000, -0.0000000000000001, 0.4462581666574590, -0.0000000000000001, 0.4462581666574590, 0.0000000000000001, -0.4462581666574590, 0.0000000000000001, -0.4462581666574590 44 | 0.8600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2210326400000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8064376341446194, -1.6460486200652584, 0.8064376341446194, -1.6460486200652584, -0.8064376341446192, 1.6460486200652584, -0.8064376341446192, 1.6460486200652584, 5.0280921553443880, -10.0000000000000000, 5.0280921553443880, -10.0000000000000000, -5.0280921553443880, 10.0000000000000000, -5.0280921553443880, 10.0000000000000000, -0.0000000000000000, 0.4965632859409995, -0.0000000000000000, 0.4965632859409995, -0.0000000000000001, -0.4965632859409997, -0.0000000000000001, -0.4965632859409997 45 | 0.8800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2055720800000001, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8672847061015226, -1.7722532164076847, 0.8672847061015226, -1.7722532164076847, -0.8672847061015224, 1.7722532164076847, -0.8672847061015224, 1.7722532164076847, 3.0423535978451599, -6.3102298171213151, 3.0423535978451599, -6.3102298171213151, -3.0423535978451599, 6.3102298171213151, -3.0423535978451599, 6.3102298171213151, 0.0000000000000001, 0.5245955169128957, 0.0000000000000001, 0.5245955169128957, -0.0000000000000002, -0.5245955169128959, -0.0000000000000002, -0.5245955169128959 46 | 0.9000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, 1.0540068894933863, -2.1947518690232037, 1.0540068894933863, -2.1947518690232037, -1.0540068894933863, 2.1947518690232037, -1.0540068894933863, 2.1947518690232037, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 47 | 0.9200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 48 | 0.9400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 49 | 0.9600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 50 | 0.9800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 51 | 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 52 | 1.0200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 53 | 1.0400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 54 | 1.0600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 55 | 1.0800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 56 | 1.1000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 57 | 1.1200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 58 | 1.1400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 59 | 1.1599999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 60 | 1.1799999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 61 | 1.2000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 62 | 1.2200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 63 | 1.2400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 64 | 1.2600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 65 | 1.2800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 66 | 1.3000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 67 | 1.3200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 68 | 1.3400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 69 | 1.3600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 70 | 1.3800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 71 | 1.4000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 72 | 1.4199999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 73 | 1.4399999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 74 | 1.4600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 75 | 1.4800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 76 | 1.5000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 77 | 1.5200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 78 | 1.5400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 79 | 1.5600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 80 | 1.5800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 81 | 1.6000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 82 | 1.6200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 83 | 1.6400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 84 | 1.6600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 85 | 1.6799999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 86 | 1.7000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 87 | 1.7200000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 88 | 1.7400000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 89 | 1.7600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 90 | 1.7800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 91 | 1.8000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 92 | 1.8200000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 93 | 1.8400000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 94 | 1.8600000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 95 | 1.8800000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 96 | 1.9000000000000001, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 97 | 1.9199999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 98 | 1.9399999999999999, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 99 | 1.9600000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 100 | 1.9800000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 101 | 2.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.2000000000000000, 1.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.0000000000000000, 0.8883648438913904, -1.8161482537881488, 0.8883648438913904, -1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.8883648438913901, 1.8161482537881488, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000000, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, 0.5338593342274637, -0.0000000000000001, -0.5338593342274638, -0.0000000000000001, -0.5338593342274638 102 | --------------------------------------------------------------------------------