{
  "type": "Program",
  "start": 0,
  "end": 10072,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 254,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "ImportDeclaration",
      "start": 0,
      "end": 57,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 57
        }
      },
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "start": 8,
          "end": 13,
          "loc": {
            "start": {
              "line": 1,
              "column": 8
            },
            "end": {
              "line": 1,
              "column": 13
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 8,
            "end": 13,
            "loc": {
              "start": {
                "line": 1,
                "column": 8
              },
              "end": {
                "line": 1,
                "column": 13
              }
            },
            "name": "Point"
          },
          "local": {
            "type": "Identifier",
            "start": 8,
            "end": 13,
            "loc": {
              "start": {
                "line": 1,
                "column": 8
              },
              "end": {
                "line": 1,
                "column": 13
              }
            },
            "name": "Point"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 15,
          "end": 19,
          "loc": {
            "start": {
              "line": 1,
              "column": 15
            },
            "end": {
              "line": 1,
              "column": 19
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 15,
            "end": 19,
            "loc": {
              "start": {
                "line": 1,
                "column": 15
              },
              "end": {
                "line": 1,
                "column": 19
              }
            },
            "name": "Line"
          },
          "local": {
            "type": "Identifier",
            "start": 15,
            "end": 19,
            "loc": {
              "start": {
                "line": 1,
                "column": 15
              },
              "end": {
                "line": 1,
                "column": 19
              }
            },
            "name": "Line"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 21,
          "end": 24,
          "loc": {
            "start": {
              "line": 1,
              "column": 21
            },
            "end": {
              "line": 1,
              "column": 24
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 21,
            "end": 24,
            "loc": {
              "start": {
                "line": 1,
                "column": 21
              },
              "end": {
                "line": 1,
                "column": 24
              }
            },
            "name": "Arc"
          },
          "local": {
            "type": "Identifier",
            "start": 21,
            "end": 24,
            "loc": {
              "start": {
                "line": 1,
                "column": 21
              },
              "end": {
                "line": 1,
                "column": 24
              }
            },
            "name": "Arc"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 31,
        "end": 56,
        "loc": {
          "start": {
            "line": 1,
            "column": 31
          },
          "end": {
            "line": 1,
            "column": 56
          }
        },
        "value": "../sketcher/geomobjects",
        "rawValue": "../sketcher/geomobjects",
        "raw": "'../sketcher/geomobjects'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 59,
      "end": 85,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 26
        }
      },
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "start": 66,
          "end": 71,
          "loc": {
            "start": {
              "line": 2,
              "column": 7
            },
            "end": {
              "line": 2,
              "column": 12
            }
          },
          "local": {
            "type": "Identifier",
            "start": 66,
            "end": 71,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 12
              }
            },
            "name": "THREE"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 77,
        "end": 84,
        "loc": {
          "start": {
            "line": 2,
            "column": 18
          },
          "end": {
            "line": 2,
            "column": 25
          }
        },
        "value": "three",
        "rawValue": "three",
        "raw": "'three'"
      }
    },
    {
      "type": "ExpressionStatement",
      "start": 89,
      "end": 201,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 2
        }
      },
      "expression": {
        "type": "AssignmentExpression",
        "start": 89,
        "end": 200,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 1
          }
        },
        "operator": "=",
        "left": {
          "type": "MemberExpression",
          "start": 89,
          "end": 102,
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 4,
              "column": 13
            }
          },
          "object": {
            "type": "Identifier",
            "start": 89,
            "end": 94,
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 4,
                "column": 5
              }
            },
            "name": "THREE"
          },
          "property": {
            "type": "Identifier",
            "start": 95,
            "end": 102,
            "loc": {
              "start": {
                "line": 4,
                "column": 6
              },
              "end": {
                "line": 4,
                "column": 13
              }
            },
            "name": "cross2d"
          },
          "computed": false
        },
        "right": {
          "type": "FunctionExpression",
          "start": 105,
          "end": 200,
          "loc": {
            "start": {
              "line": 4,
              "column": 16
            },
            "end": {
              "line": 6,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 95,
            "end": 102,
            "loc": {
              "start": {
                "line": 4,
                "column": 6
              },
              "end": {
                "line": 4,
                "column": 13
              }
            },
            "name": "cross2d"
          },
          "generator": false,
          "expression": false,
          "async": false,
          "params": [
            {
              "type": "Identifier",
              "start": 114,
              "end": 115,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 25
                },
                "end": {
                  "line": 4,
                  "column": 26
                }
              },
              "name": "a"
            },
            {
              "type": "Identifier",
              "start": 117,
              "end": 118,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 28
                },
                "end": {
                  "line": 4,
                  "column": 29
                }
              },
              "name": "b"
            }
          ],
          "body": {
            "type": "BlockStatement",
            "start": 120,
            "end": 200,
            "loc": {
              "start": {
                "line": 4,
                "column": 31
              },
              "end": {
                "line": 6,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ReturnStatement",
                "start": 168,
                "end": 197,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 4
                  },
                  "end": {
                    "line": 5,
                    "column": 33
                  }
                },
                "argument": {
                  "type": "BinaryExpression",
                  "start": 175,
                  "end": 196,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 11
                    },
                    "end": {
                      "line": 5,
                      "column": 32
                    }
                  },
                  "left": {
                    "type": "BinaryExpression",
                    "start": 175,
                    "end": 184,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 11
                      },
                      "end": {
                        "line": 5,
                        "column": 20
                      }
                    },
                    "left": {
                      "type": "MemberExpression",
                      "start": 175,
                      "end": 178,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 11
                        },
                        "end": {
                          "line": 5,
                          "column": 14
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 175,
                        "end": 176,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 11
                          },
                          "end": {
                            "line": 5,
                            "column": 12
                          }
                        },
                        "name": "a",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 177,
                        "end": 178,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 13
                          },
                          "end": {
                            "line": 5,
                            "column": 14
                          }
                        },
                        "name": "x"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 181,
                      "end": 184,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 17
                        },
                        "end": {
                          "line": 5,
                          "column": 20
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 181,
                        "end": 182,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 17
                          },
                          "end": {
                            "line": 5,
                            "column": 18
                          }
                        },
                        "name": "b"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 183,
                        "end": 184,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 19
                          },
                          "end": {
                            "line": 5,
                            "column": 20
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    },
                    "leadingComments": null
                  },
                  "operator": "-",
                  "right": {
                    "type": "BinaryExpression",
                    "start": 187,
                    "end": 196,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 23
                      },
                      "end": {
                        "line": 5,
                        "column": 32
                      }
                    },
                    "left": {
                      "type": "MemberExpression",
                      "start": 187,
                      "end": 190,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 23
                        },
                        "end": {
                          "line": 5,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 187,
                        "end": 188,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 23
                          },
                          "end": {
                            "line": 5,
                            "column": 24
                          }
                        },
                        "name": "a"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 189,
                        "end": 190,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 25
                          },
                          "end": {
                            "line": 5,
                            "column": 26
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 193,
                      "end": 196,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 29
                        },
                        "end": {
                          "line": 5,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 193,
                        "end": 194,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 29
                          },
                          "end": {
                            "line": 5,
                            "column": 30
                          }
                        },
                        "name": "b"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 195,
                        "end": 196,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 31
                          },
                          "end": {
                            "line": 5,
                            "column": 32
                          }
                        },
                        "name": "x"
                      },
                      "computed": false
                    }
                  },
                  "leadingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "TODO: properly install into THREE?...",
                    "start": 123,
                    "end": 162,
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 34
                      },
                      "end": {
                        "line": 4,
                        "column": 73
                      }
                    },
                    "range": [
                      123,
                      162
                    ]
                  }
                ]
              }
            ]
          }
        }
      }
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 205,
      "end": 1048,
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 25,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 212,
        "end": 1048,
        "loc": {
          "start": {
            "line": 8,
            "column": 7
          },
          "end": {
            "line": 25,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 221,
          "end": 236,
          "loc": {
            "start": {
              "line": 8,
              "column": 16
            },
            "end": {
              "line": 8,
              "column": 31
            }
          },
          "name": "drawArcBy_S_T_E"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 237,
            "end": 245,
            "loc": {
              "start": {
                "line": 8,
                "column": 32
              },
              "end": {
                "line": 8,
                "column": 40
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 247,
            "end": 259,
            "loc": {
              "start": {
                "line": 8,
                "column": 42
              },
              "end": {
                "line": 8,
                "column": 54
              }
            },
            "name": "startTangent"
          },
          {
            "type": "Identifier",
            "start": 261,
            "end": 267,
            "loc": {
              "start": {
                "line": 8,
                "column": 56
              },
              "end": {
                "line": 8,
                "column": 62
              }
            },
            "name": "endPos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 269,
          "end": 1048,
          "loc": {
            "start": {
              "line": 8,
              "column": 64
            },
            "end": {
              "line": 25,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 317,
              "end": 356,
              "loc": {
                "start": {
                  "line": 10,
                  "column": 4
                },
                "end": {
                  "line": 10,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 321,
                  "end": 355,
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 8
                    },
                    "end": {
                      "line": 10,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 321,
                    "end": 324,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 8
                      },
                      "end": {
                        "line": 10,
                        "column": 11
                      }
                    },
                    "name": "dir",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 327,
                    "end": 355,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 14
                      },
                      "end": {
                        "line": 10,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 327,
                      "end": 345,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 14
                        },
                        "end": {
                          "line": 10,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 327,
                        "end": 341,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 14
                          },
                          "end": {
                            "line": 10,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 327,
                          "end": 339,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 14
                            },
                            "end": {
                              "line": 10,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 327,
                            "end": 333,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 14
                              },
                              "end": {
                                "line": 10,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 334,
                            "end": 339,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 21
                              },
                              "end": {
                                "line": 10,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 342,
                        "end": 345,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 29
                          },
                          "end": {
                            "line": 10,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 346,
                        "end": 354,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 33
                          },
                          "end": {
                            "line": 10,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "should we create a line or an arc",
                  "start": 276,
                  "end": 311,
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 4
                    },
                    "end": {
                      "line": 9,
                      "column": 39
                    }
                  },
                  "range": [
                    276,
                    311
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 362,
              "end": 439,
              "loc": {
                "start": {
                  "line": 11,
                  "column": 4
                },
                "end": {
                  "line": 11,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 366,
                  "end": 438,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 8
                    },
                    "end": {
                      "line": 11,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 366,
                    "end": 372,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 8
                      },
                      "end": {
                        "line": 11,
                        "column": 14
                      }
                    },
                    "name": "onLine"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 375,
                    "end": 438,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 17
                      },
                      "end": {
                        "line": 11,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 375,
                      "end": 395,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 17
                        },
                        "end": {
                          "line": 11,
                          "column": 37
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 375,
                        "end": 391,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 17
                          },
                          "end": {
                            "line": 11,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 375,
                          "end": 389,
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 17
                            },
                            "end": {
                              "line": 11,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 375,
                            "end": 383,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 17
                              },
                              "end": {
                                "line": 11,
                                "column": 25
                              }
                            },
                            "name": "startPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 384,
                            "end": 389,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 26
                              },
                              "end": {
                                "line": 11,
                                "column": 31
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 392,
                        "end": 395,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 34
                          },
                          "end": {
                            "line": 11,
                            "column": 37
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 396,
                        "end": 437,
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 38
                          },
                          "end": {
                            "line": 11,
                            "column": 79
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 396,
                          "end": 423,
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 38
                            },
                            "end": {
                              "line": 11,
                              "column": 65
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 396,
                            "end": 407,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 38
                              },
                              "end": {
                                "line": 11,
                                "column": 49
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 396,
                              "end": 405,
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 38
                                },
                                "end": {
                                  "line": 11,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 396,
                                "end": 399,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 41
                                  }
                                },
                                "name": "dir"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 400,
                                "end": 405,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 47
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 408,
                            "end": 423,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 50
                              },
                              "end": {
                                "line": 11,
                                "column": 65
                              }
                            },
                            "name": "projectOnVector"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 424,
                            "end": 436,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 66
                              },
                              "end": {
                                "line": 11,
                                "column": 78
                              }
                            },
                            "name": "startTangent"
                          }
                        ]
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 445,
              "end": 484,
              "loc": {
                "start": {
                  "line": 12,
                  "column": 4
                },
                "end": {
                  "line": 12,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 449,
                  "end": 483,
                  "loc": {
                    "start": {
                      "line": 12,
                      "column": 8
                    },
                    "end": {
                      "line": 12,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 449,
                    "end": 455,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 8
                      },
                      "end": {
                        "line": 12,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 458,
                    "end": 483,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 17
                      },
                      "end": {
                        "line": 12,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 458,
                      "end": 475,
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 17
                        },
                        "end": {
                          "line": 12,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 458,
                        "end": 464,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 17
                          },
                          "end": {
                            "line": 12,
                            "column": 23
                          }
                        },
                        "name": "onLine"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 465,
                        "end": 475,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 24
                          },
                          "end": {
                            "line": 12,
                            "column": 34
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 476,
                        "end": 482,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 35
                          },
                          "end": {
                            "line": 12,
                            "column": 41
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 490,
              "end": 544,
              "loc": {
                "start": {
                  "line": 13,
                  "column": 4
                },
                "end": {
                  "line": 13,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 494,
                  "end": 543,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 8
                    },
                    "end": {
                      "line": 13,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 494,
                    "end": 502,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 8
                      },
                      "end": {
                        "line": 13,
                        "column": 16
                      }
                    },
                    "name": "isLinear"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 506,
                    "end": 542,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 20
                      },
                      "end": {
                        "line": 13,
                        "column": 56
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 506,
                      "end": 512,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 20
                        },
                        "end": {
                          "line": 13,
                          "column": 26
                        }
                      },
                      "name": "height"
                    },
                    "operator": "<=",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 516,
                      "end": 542,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 30
                        },
                        "end": {
                          "line": 13,
                          "column": 56
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 516,
                        "end": 535,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 30
                          },
                          "end": {
                            "line": 13,
                            "column": 49
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 516,
                          "end": 528,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 30
                            },
                            "end": {
                              "line": 13,
                              "column": 42
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 516,
                            "end": 526,
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 30
                              },
                              "end": {
                                "line": 13,
                                "column": 40
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 516,
                              "end": 519,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 30
                                },
                                "end": {
                                  "line": 13,
                                  "column": 33
                                }
                              },
                              "name": "dir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 520,
                              "end": 526,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 34
                                },
                                "end": {
                                  "line": 13,
                                  "column": 40
                                }
                              },
                              "name": "length"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "operator": "*",
                        "right": {
                          "type": "Literal",
                          "start": 531,
                          "end": 535,
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 45
                            },
                            "end": {
                              "line": 13,
                              "column": 49
                            }
                          },
                          "value": 0.001,
                          "rawValue": 0.001,
                          "raw": "1e-3"
                        }
                      },
                      "operator": "+",
                      "right": {
                        "type": "Literal",
                        "start": 538,
                        "end": 542,
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 52
                          },
                          "end": {
                            "line": 13,
                            "column": 56
                          }
                        },
                        "value": 0.001,
                        "rawValue": 0.001,
                        "raw": "1e-3"
                      }
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 552,
              "end": 1045,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 4
                },
                "end": {
                  "line": 24,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 556,
                "end": 564,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 8
                  },
                  "end": {
                    "line": 15,
                    "column": 16
                  }
                },
                "name": "isLinear"
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 575,
                "end": 613,
                "loc": {
                  "start": {
                    "line": 16,
                    "column": 8
                  },
                  "end": {
                    "line": 16,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 582,
                  "end": 612,
                  "loc": {
                    "start": {
                      "line": 16,
                      "column": 15
                    },
                    "end": {
                      "line": 16,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 583,
                      "end": 598,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 16
                        },
                        "end": {
                          "line": 16,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 583,
                        "end": 588,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 16
                          },
                          "end": {
                            "line": 16,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 590,
                        "end": 598,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 23
                          },
                          "end": {
                            "line": 16,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 600,
                      "end": 611,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 33
                        },
                        "end": {
                          "line": 16,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 600,
                        "end": 603,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 33
                          },
                          "end": {
                            "line": 16,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 605,
                        "end": 611,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 38
                          },
                          "end": {
                            "line": 16,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                }
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 624,
                "end": 1045,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 9
                  },
                  "end": {
                    "line": 24,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 700,
                    "end": 752,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 8
                      },
                      "end": {
                        "line": 19,
                        "column": 60
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 704,
                        "end": 751,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 12
                          },
                          "end": {
                            "line": 19,
                            "column": 59
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 704,
                          "end": 710,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 12
                            },
                            "end": {
                              "line": 19,
                              "column": 18
                            }
                          },
                          "name": "normal",
                          "leadingComments": null
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 713,
                          "end": 751,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 21
                            },
                            "end": {
                              "line": 19,
                              "column": 59
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 713,
                            "end": 749,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 21
                              },
                              "end": {
                                "line": 19,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 713,
                              "end": 739,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 21
                                },
                                "end": {
                                  "line": 19,
                                  "column": 47
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 713,
                                "end": 731,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 39
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 713,
                                  "end": 727,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 35
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 713,
                                    "end": 725,
                                    "loc": {
                                      "start": {
                                        "line": 19,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 19,
                                        "column": 33
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 713,
                                      "end": 719,
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 27
                                        }
                                      },
                                      "name": "endPos"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 720,
                                      "end": 725,
                                      "loc": {
                                        "start": {
                                          "line": 19,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 19,
                                          "column": 33
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 728,
                                  "end": 731,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 39
                                    }
                                  },
                                  "name": "sub"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 732,
                                  "end": 738,
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 46
                                    }
                                  },
                                  "name": "onLine"
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 740,
                              "end": 749,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 48
                                },
                                "end": {
                                  "line": 19,
                                  "column": 57
                                }
                              },
                              "name": "normalize"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      }
                    ],
                    "kind": "var",
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": "the ugly math of getting center point and orientation",
                        "start": 635,
                        "end": 690,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 8
                          },
                          "end": {
                            "line": 18,
                            "column": 63
                          }
                        },
                        "range": [
                          635,
                          690
                        ]
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 762,
                    "end": 823,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 8
                      },
                      "end": {
                        "line": 20,
                        "column": 69
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 766,
                        "end": 822,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 68
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 766,
                          "end": 770,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 12
                            },
                            "end": {
                              "line": 20,
                              "column": 16
                            }
                          },
                          "name": "dist"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 773,
                          "end": 822,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 19
                            },
                            "end": {
                              "line": 20,
                              "column": 68
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 773,
                            "end": 807,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 19
                              },
                              "end": {
                                "line": 20,
                                "column": 53
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 773,
                              "end": 797,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 19
                                },
                                "end": {
                                  "line": 20,
                                  "column": 43
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 773,
                                "end": 779,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 25
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 780,
                                "end": 797,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 43
                                  }
                                },
                                "name": "distanceToSquared"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 798,
                                "end": 806,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 52
                                  }
                                },
                                "name": "startPos"
                              }
                            ]
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 811,
                            "end": 821,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 57
                              },
                              "end": {
                                "line": 20,
                                "column": 67
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 811,
                              "end": 812,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 57
                                },
                                "end": {
                                  "line": 20,
                                  "column": 58
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 815,
                              "end": 821,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 61
                                },
                                "end": {
                                  "line": 20,
                                  "column": 67
                                }
                              },
                              "name": "height"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 833,
                    "end": 881,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 8
                      },
                      "end": {
                        "line": 21,
                        "column": 56
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 837,
                        "end": 880,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 12
                          },
                          "end": {
                            "line": 21,
                            "column": 55
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 837,
                          "end": 842,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 12
                            },
                            "end": {
                              "line": 21,
                              "column": 17
                            }
                          },
                          "name": "cross"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 845,
                          "end": 880,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 20
                            },
                            "end": {
                              "line": 21,
                              "column": 55
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 845,
                            "end": 858,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 20
                              },
                              "end": {
                                "line": 21,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 845,
                              "end": 850,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 20
                                },
                                "end": {
                                  "line": 21,
                                  "column": 25
                                }
                              },
                              "name": "THREE"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 851,
                              "end": 858,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 26
                                },
                                "end": {
                                  "line": 21,
                                  "column": 33
                                }
                              },
                              "name": "cross2d"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 859,
                              "end": 865,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 34
                                },
                                "end": {
                                  "line": 21,
                                  "column": 40
                                }
                              },
                              "name": "normal"
                            },
                            {
                              "type": "Identifier",
                              "start": 867,
                              "end": 879,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 42
                                },
                                "end": {
                                  "line": 21,
                                  "column": 54
                                }
                              },
                              "name": "startTangent"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 891,
                    "end": 951,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 8
                      },
                      "end": {
                        "line": 22,
                        "column": 68
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 895,
                        "end": 950,
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 12
                          },
                          "end": {
                            "line": 22,
                            "column": 67
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 895,
                          "end": 898,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 12
                            },
                            "end": {
                              "line": 22,
                              "column": 15
                            }
                          },
                          "name": "ctr"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 901,
                          "end": 950,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 18
                            },
                            "end": {
                              "line": 22,
                              "column": 67
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 901,
                            "end": 940,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 18
                              },
                              "end": {
                                "line": 22,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 901,
                              "end": 936,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 18
                                },
                                "end": {
                                  "line": 22,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 901,
                                "end": 930,
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 901,
                                  "end": 915,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 32
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 901,
                                    "end": 913,
                                    "loc": {
                                      "start": {
                                        "line": 22,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 22,
                                        "column": 30
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 901,
                                      "end": 907,
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 24
                                        }
                                      },
                                      "name": "normal"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 908,
                                      "end": 913,
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 30
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 916,
                                  "end": 930,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 47
                                    }
                                  },
                                  "name": "multiplyScalar"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 931,
                                  "end": 935,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 52
                                    }
                                  },
                                  "name": "dist"
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 937,
                              "end": 940,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 54
                                },
                                "end": {
                                  "line": 22,
                                  "column": 57
                                }
                              },
                              "name": "add"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 941,
                              "end": 949,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 58
                                },
                                "end": {
                                  "line": 22,
                                  "column": 66
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 961,
                    "end": 1038,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 8
                      },
                      "end": {
                        "line": 23,
                        "column": 85
                      }
                    },
                    "argument": {
                      "type": "ObjectExpression",
                      "start": 968,
                      "end": 1037,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 15
                        },
                        "end": {
                          "line": 23,
                          "column": 84
                        }
                      },
                      "properties": [
                        {
                          "type": "Property",
                          "start": 969,
                          "end": 984,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 16
                            },
                            "end": {
                              "line": 23,
                              "column": 31
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 969,
                            "end": 974,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 16
                              },
                              "end": {
                                "line": 23,
                                "column": 21
                              }
                            },
                            "name": "start"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 976,
                            "end": 984,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 23
                              },
                              "end": {
                                "line": 23,
                                "column": 31
                              }
                            },
                            "name": "startPos"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 986,
                          "end": 997,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 33
                            },
                            "end": {
                              "line": 23,
                              "column": 44
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 986,
                            "end": 989,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 33
                              },
                              "end": {
                                "line": 23,
                                "column": 36
                              }
                            },
                            "name": "end"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 991,
                            "end": 997,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 38
                              },
                              "end": {
                                "line": 23,
                                "column": 44
                              }
                            },
                            "name": "endPos"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 999,
                          "end": 1010,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 46
                            },
                            "end": {
                              "line": 23,
                              "column": 57
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 999,
                            "end": 1005,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 46
                              },
                              "end": {
                                "line": 23,
                                "column": 52
                              }
                            },
                            "name": "center"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 1007,
                            "end": 1010,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 54
                              },
                              "end": {
                                "line": 23,
                                "column": 57
                              }
                            },
                            "name": "ctr"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 1012,
                          "end": 1036,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 59
                            },
                            "end": {
                              "line": 23,
                              "column": 83
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 1012,
                            "end": 1021,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 59
                              },
                              "end": {
                                "line": 23,
                                "column": 68
                              }
                            },
                            "name": "clockwise"
                          },
                          "value": {
                            "type": "BinaryExpression",
                            "start": 1024,
                            "end": 1035,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 71
                              },
                              "end": {
                                "line": 23,
                                "column": 82
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 1024,
                              "end": 1029,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 71
                                },
                                "end": {
                                  "line": 23,
                                  "column": 76
                                }
                              },
                              "name": "cross"
                            },
                            "operator": ">",
                            "right": {
                              "type": "Literal",
                              "start": 1032,
                              "end": 1035,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 79
                                },
                                "end": {
                                  "line": 23,
                                  "column": 82
                                }
                              },
                              "value": 0,
                              "rawValue": 0,
                              "raw": "0.0"
                            },
                            "parenthesizedExpression": true
                          },
                          "kind": "init"
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of center is only partly used and may change",
            "start": 1052,
            "end": 1113,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 61
              }
            },
            "range": [
              1052,
              1113
            ]
          }
        ],
        "leadingComments": []
      },
      "specifiers": [],
      "source": null,
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of center is only partly used and may change",
          "start": 1052,
          "end": 1113,
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 27,
              "column": 61
            }
          },
          "range": [
            1052,
            1113
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1115,
      "end": 1640,
      "loc": {
        "start": {
          "line": 28,
          "column": 0
        },
        "end": {
          "line": 37,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1122,
        "end": 1640,
        "loc": {
          "start": {
            "line": 28,
            "column": 7
          },
          "end": {
            "line": 37,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1131,
          "end": 1147,
          "loc": {
            "start": {
              "line": 28,
              "column": 16
            },
            "end": {
              "line": 28,
              "column": 32
            }
          },
          "name": "drawArcBy_S_E_Ch",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1148,
            "end": 1156,
            "loc": {
              "start": {
                "line": 28,
                "column": 33
              },
              "end": {
                "line": 28,
                "column": 41
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 1158,
            "end": 1164,
            "loc": {
              "start": {
                "line": 28,
                "column": 43
              },
              "end": {
                "line": 28,
                "column": 49
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 1166,
            "end": 1179,
            "loc": {
              "start": {
                "line": 28,
                "column": 51
              },
              "end": {
                "line": 28,
                "column": 64
              }
            },
            "name": "centerPosHint"
          },
          {
            "type": "Identifier",
            "start": 1181,
            "end": 1191,
            "loc": {
              "start": {
                "line": 28,
                "column": 66
              },
              "end": {
                "line": 28,
                "column": 76
              }
            },
            "name": "takeLarger"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1193,
          "end": 1640,
          "loc": {
            "start": {
              "line": 28,
              "column": 78
            },
            "end": {
              "line": 37,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 1200,
              "end": 1255,
              "loc": {
                "start": {
                  "line": 29,
                  "column": 4
                },
                "end": {
                  "line": 29,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1204,
                  "end": 1254,
                  "loc": {
                    "start": {
                      "line": 29,
                      "column": 8
                    },
                    "end": {
                      "line": 29,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1204,
                    "end": 1207,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 8
                      },
                      "end": {
                        "line": 29,
                        "column": 11
                      }
                    },
                    "name": "mid"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1210,
                    "end": 1254,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 14
                      },
                      "end": {
                        "line": 29,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1210,
                      "end": 1251,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 14
                        },
                        "end": {
                          "line": 29,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1210,
                        "end": 1238,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 14
                          },
                          "end": {
                            "line": 29,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1210,
                          "end": 1228,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 14
                            },
                            "end": {
                              "line": 29,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1210,
                            "end": 1224,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 14
                              },
                              "end": {
                                "line": 29,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1210,
                              "end": 1222,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 14
                                },
                                "end": {
                                  "line": 29,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1210,
                                "end": 1216,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1217,
                                "end": 1222,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1225,
                            "end": 1228,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 29
                              },
                              "end": {
                                "line": 29,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1229,
                            "end": 1237,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 33
                              },
                              "end": {
                                "line": 29,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1239,
                        "end": 1251,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 43
                          },
                          "end": {
                            "line": 29,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 1252,
                        "end": 1253,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 56
                          },
                          "end": {
                            "line": 29,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1261,
              "end": 1300,
              "loc": {
                "start": {
                  "line": 30,
                  "column": 4
                },
                "end": {
                  "line": 30,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1265,
                  "end": 1299,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 8
                    },
                    "end": {
                      "line": 30,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1265,
                    "end": 1268,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 8
                      },
                      "end": {
                        "line": 30,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1271,
                    "end": 1299,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 14
                      },
                      "end": {
                        "line": 30,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1271,
                      "end": 1289,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 14
                        },
                        "end": {
                          "line": 30,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1271,
                        "end": 1285,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 14
                          },
                          "end": {
                            "line": 30,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1271,
                          "end": 1283,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 14
                            },
                            "end": {
                              "line": 30,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1271,
                            "end": 1277,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 14
                              },
                              "end": {
                                "line": 30,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1278,
                            "end": 1283,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 21
                              },
                              "end": {
                                "line": 30,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1286,
                        "end": 1289,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 29
                          },
                          "end": {
                            "line": 30,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1290,
                        "end": 1298,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 33
                          },
                          "end": {
                            "line": 30,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1306,
              "end": 1354,
              "loc": {
                "start": {
                  "line": 31,
                  "column": 4
                },
                "end": {
                  "line": 31,
                  "column": 52
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1310,
                  "end": 1353,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 8
                    },
                    "end": {
                      "line": 31,
                      "column": 51
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1310,
                    "end": 1313,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 8
                      },
                      "end": {
                        "line": 31,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 1316,
                    "end": 1353,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 14
                      },
                      "end": {
                        "line": 31,
                        "column": 51
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1320,
                      "end": 1333,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 18
                        },
                        "end": {
                          "line": 31,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1320,
                        "end": 1325,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 18
                          },
                          "end": {
                            "line": 31,
                            "column": 23
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1326,
                        "end": 1333,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 24
                          },
                          "end": {
                            "line": 31,
                            "column": 31
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "UnaryExpression",
                        "start": 1334,
                        "end": 1340,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 32
                          },
                          "end": {
                            "line": 31,
                            "column": 38
                          }
                        },
                        "operator": "-",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 1335,
                          "end": 1340,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 33
                            },
                            "end": {
                              "line": 31,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1335,
                            "end": 1338,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 33
                              },
                              "end": {
                                "line": 31,
                                "column": 36
                              }
                            },
                            "name": "dir"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1339,
                            "end": 1340,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 37
                              },
                              "end": {
                                "line": 31,
                                "column": 38
                              }
                            },
                            "name": "y"
                          },
                          "computed": false
                        }
                      },
                      {
                        "type": "MemberExpression",
                        "start": 1342,
                        "end": 1347,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 40
                          },
                          "end": {
                            "line": 31,
                            "column": 45
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 1342,
                          "end": 1345,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 40
                            },
                            "end": {
                              "line": 31,
                              "column": 43
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1346,
                          "end": 1347,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 44
                            },
                            "end": {
                              "line": 31,
                              "column": 45
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      {
                        "type": "Literal",
                        "start": 1349,
                        "end": 1352,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 47
                          },
                          "end": {
                            "line": 31,
                            "column": 50
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1360,
              "end": 1407,
              "loc": {
                "start": {
                  "line": 32,
                  "column": 4
                },
                "end": {
                  "line": 32,
                  "column": 51
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1364,
                  "end": 1406,
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 8
                    },
                    "end": {
                      "line": 32,
                      "column": 50
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1364,
                    "end": 1373,
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 8
                      },
                      "end": {
                        "line": 32,
                        "column": 17
                      }
                    },
                    "name": "dirMidPos"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1376,
                    "end": 1406,
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 20
                      },
                      "end": {
                        "line": 32,
                        "column": 50
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1376,
                      "end": 1401,
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 20
                        },
                        "end": {
                          "line": 32,
                          "column": 45
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1376,
                        "end": 1397,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 20
                          },
                          "end": {
                            "line": 32,
                            "column": 41
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1376,
                          "end": 1395,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 20
                            },
                            "end": {
                              "line": 32,
                              "column": 39
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1376,
                            "end": 1389,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 20
                              },
                              "end": {
                                "line": 32,
                                "column": 33
                              }
                            },
                            "name": "centerPosHint"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1390,
                            "end": 1395,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 34
                              },
                              "end": {
                                "line": 32,
                                "column": 39
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1398,
                        "end": 1401,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 42
                          },
                          "end": {
                            "line": 32,
                            "column": 45
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1402,
                        "end": 1405,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 46
                          },
                          "end": {
                            "line": 32,
                            "column": 49
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1413,
              "end": 1471,
              "loc": {
                "start": {
                  "line": 33,
                  "column": 4
                },
                "end": {
                  "line": 33,
                  "column": 62
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1417,
                  "end": 1470,
                  "loc": {
                    "start": {
                      "line": 33,
                      "column": 8
                    },
                    "end": {
                      "line": 33,
                      "column": 61
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1417,
                    "end": 1420,
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 8
                      },
                      "end": {
                        "line": 33,
                        "column": 11
                      }
                    },
                    "name": "ctr"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1423,
                    "end": 1470,
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 14
                      },
                      "end": {
                        "line": 33,
                        "column": 61
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1423,
                      "end": 1465,
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 14
                        },
                        "end": {
                          "line": 33,
                          "column": 56
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1423,
                        "end": 1461,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 14
                          },
                          "end": {
                            "line": 33,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1423,
                          "end": 1456,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 14
                            },
                            "end": {
                              "line": 33,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1423,
                            "end": 1440,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 14
                              },
                              "end": {
                                "line": 33,
                                "column": 31
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1423,
                              "end": 1438,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 14
                                },
                                "end": {
                                  "line": 33,
                                  "column": 29
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1423,
                                "end": 1432,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 23
                                  }
                                },
                                "name": "dirMidPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1433,
                                "end": 1438,
                                "loc": {
                                  "start": {
                                    "line": 33,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 33,
                                    "column": 29
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1441,
                            "end": 1456,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 32
                              },
                              "end": {
                                "line": 33,
                                "column": 47
                              }
                            },
                            "name": "projectOnVector"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1457,
                            "end": 1460,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 48
                              },
                              "end": {
                                "line": 33,
                                "column": 51
                              }
                            },
                            "name": "per"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1462,
                        "end": 1465,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 53
                          },
                          "end": {
                            "line": 33,
                            "column": 56
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1466,
                        "end": 1469,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 57
                          },
                          "end": {
                            "line": 33,
                            "column": 60
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1477,
              "end": 1506,
              "loc": {
                "start": {
                  "line": 34,
                  "column": 4
                },
                "end": {
                  "line": 34,
                  "column": 33
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1481,
                  "end": 1505,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 8
                    },
                    "end": {
                      "line": 34,
                      "column": 32
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1481,
                    "end": 1484,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 8
                      },
                      "end": {
                        "line": 34,
                        "column": 11
                      }
                    },
                    "name": "dot"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1487,
                    "end": 1505,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 14
                      },
                      "end": {
                        "line": 34,
                        "column": 32
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1487,
                      "end": 1500,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 14
                        },
                        "end": {
                          "line": 34,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1487,
                        "end": 1496,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 14
                          },
                          "end": {
                            "line": 34,
                            "column": 23
                          }
                        },
                        "name": "dirMidPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1497,
                        "end": 1500,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 24
                          },
                          "end": {
                            "line": 34,
                            "column": 27
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1501,
                        "end": 1504,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 28
                          },
                          "end": {
                            "line": 34,
                            "column": 31
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1512,
              "end": 1558,
              "loc": {
                "start": {
                  "line": 35,
                  "column": 4
                },
                "end": {
                  "line": 35,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1516,
                  "end": 1557,
                  "loc": {
                    "start": {
                      "line": 35,
                      "column": 8
                    },
                    "end": {
                      "line": 35,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1516,
                    "end": 1525,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 8
                      },
                      "end": {
                        "line": 35,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 1528,
                    "end": 1557,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 20
                      },
                      "end": {
                        "line": 35,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "BinaryExpression",
                      "start": 1529,
                      "end": 1538,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 21
                        },
                        "end": {
                          "line": 35,
                          "column": 30
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 1529,
                        "end": 1532,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 21
                          },
                          "end": {
                            "line": 35,
                            "column": 24
                          }
                        },
                        "name": "dot"
                      },
                      "operator": "<",
                      "right": {
                        "type": "Literal",
                        "start": 1535,
                        "end": 1538,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 27
                          },
                          "end": {
                            "line": 35,
                            "column": 30
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      },
                      "parenthesizedExpression": true
                    },
                    "operator": "!=",
                    "right": {
                      "type": "UnaryExpression",
                      "start": 1544,
                      "end": 1556,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 36
                        },
                        "end": {
                          "line": 35,
                          "column": 48
                        }
                      },
                      "operator": "!",
                      "prefix": true,
                      "argument": {
                        "type": "UnaryExpression",
                        "start": 1545,
                        "end": 1556,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 37
                          },
                          "end": {
                            "line": 35,
                            "column": 48
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1546,
                          "end": 1556,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 38
                            },
                            "end": {
                              "line": 35,
                              "column": 48
                            }
                          },
                          "name": "takeLarger"
                        }
                      },
                      "parenthesizedExpression": true
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 1564,
              "end": 1637,
              "loc": {
                "start": {
                  "line": 36,
                  "column": 4
                },
                "end": {
                  "line": 36,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 1571,
                "end": 1636,
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 11
                  },
                  "end": {
                    "line": 36,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 1572,
                    "end": 1587,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 12
                      },
                      "end": {
                        "line": 36,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1572,
                      "end": 1577,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 12
                        },
                        "end": {
                          "line": 36,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1579,
                      "end": 1587,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 19
                        },
                        "end": {
                          "line": 36,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1589,
                    "end": 1600,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 29
                      },
                      "end": {
                        "line": 36,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1589,
                      "end": 1592,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 29
                        },
                        "end": {
                          "line": 36,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1594,
                      "end": 1600,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 34
                        },
                        "end": {
                          "line": 36,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1602,
                    "end": 1613,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 42
                      },
                      "end": {
                        "line": 36,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1602,
                      "end": 1608,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 42
                        },
                        "end": {
                          "line": 36,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1610,
                      "end": 1613,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 50
                        },
                        "end": {
                          "line": 36,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 1615,
                    "end": 1635,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 55
                      },
                      "end": {
                        "line": 36,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 1615,
                      "end": 1624,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 55
                        },
                        "end": {
                          "line": 36,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 1626,
                      "end": 1635,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 66
                        },
                        "end": {
                          "line": 36,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of center is only partly used and may change",
            "start": 1052,
            "end": 1113,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 61
              }
            },
            "range": [
              1052,
              1113
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of control point is only partly used and may change",
            "start": 1644,
            "end": 1712,
            "loc": {
              "start": {
                "line": 39,
                "column": 0
              },
              "end": {
                "line": 39,
                "column": 68
              }
            },
            "range": [
              1644,
              1712
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of center is only partly used and may change",
          "start": 1052,
          "end": 1113,
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 27,
              "column": 61
            }
          },
          "range": [
            1052,
            1113
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of control point is only partly used and may change",
          "start": 1644,
          "end": 1712,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 68
            }
          },
          "range": [
            1644,
            1712
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1714,
      "end": 2493,
      "loc": {
        "start": {
          "line": 40,
          "column": 0
        },
        "end": {
          "line": 55,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1721,
        "end": 2493,
        "loc": {
          "start": {
            "line": 40,
            "column": 7
          },
          "end": {
            "line": 55,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1730,
          "end": 1747,
          "loc": {
            "start": {
              "line": 40,
              "column": 16
            },
            "end": {
              "line": 40,
              "column": 33
            }
          },
          "name": "drawArcBy_S_E_CPh",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1748,
            "end": 1756,
            "loc": {
              "start": {
                "line": 40,
                "column": 34
              },
              "end": {
                "line": 40,
                "column": 42
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 1758,
            "end": 1764,
            "loc": {
              "start": {
                "line": 40,
                "column": 44
              },
              "end": {
                "line": 40,
                "column": 50
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 1766,
            "end": 1782,
            "loc": {
              "start": {
                "line": 40,
                "column": 52
              },
              "end": {
                "line": 40,
                "column": 68
              }
            },
            "name": "controlPointHint"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1784,
          "end": 2493,
          "loc": {
            "start": {
              "line": 40,
              "column": 70
            },
            "end": {
              "line": 55,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 1791,
              "end": 1846,
              "loc": {
                "start": {
                  "line": 41,
                  "column": 4
                },
                "end": {
                  "line": 41,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1795,
                  "end": 1845,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 8
                    },
                    "end": {
                      "line": 41,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1795,
                    "end": 1798,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 8
                      },
                      "end": {
                        "line": 41,
                        "column": 11
                      }
                    },
                    "name": "mid"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1801,
                    "end": 1845,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 14
                      },
                      "end": {
                        "line": 41,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1801,
                      "end": 1842,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 14
                        },
                        "end": {
                          "line": 41,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1801,
                        "end": 1829,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 14
                          },
                          "end": {
                            "line": 41,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1801,
                          "end": 1819,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 14
                            },
                            "end": {
                              "line": 41,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1801,
                            "end": 1815,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 14
                              },
                              "end": {
                                "line": 41,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1801,
                              "end": 1813,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 14
                                },
                                "end": {
                                  "line": 41,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1801,
                                "end": 1807,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1808,
                                "end": 1813,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1816,
                            "end": 1819,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 29
                              },
                              "end": {
                                "line": 41,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1820,
                            "end": 1828,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 33
                              },
                              "end": {
                                "line": 41,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1830,
                        "end": 1842,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 43
                          },
                          "end": {
                            "line": 41,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 1843,
                        "end": 1844,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 56
                          },
                          "end": {
                            "line": 41,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1852,
              "end": 1891,
              "loc": {
                "start": {
                  "line": 42,
                  "column": 4
                },
                "end": {
                  "line": 42,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1856,
                  "end": 1890,
                  "loc": {
                    "start": {
                      "line": 42,
                      "column": 8
                    },
                    "end": {
                      "line": 42,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1856,
                    "end": 1859,
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 8
                      },
                      "end": {
                        "line": 42,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1862,
                    "end": 1890,
                    "loc": {
                      "start": {
                        "line": 42,
                        "column": 14
                      },
                      "end": {
                        "line": 42,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1862,
                      "end": 1880,
                      "loc": {
                        "start": {
                          "line": 42,
                          "column": 14
                        },
                        "end": {
                          "line": 42,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1862,
                        "end": 1876,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 14
                          },
                          "end": {
                            "line": 42,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1862,
                          "end": 1874,
                          "loc": {
                            "start": {
                              "line": 42,
                              "column": 14
                            },
                            "end": {
                              "line": 42,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1862,
                            "end": 1868,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 14
                              },
                              "end": {
                                "line": 42,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1869,
                            "end": 1874,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 21
                              },
                              "end": {
                                "line": 42,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1877,
                        "end": 1880,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 29
                          },
                          "end": {
                            "line": 42,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1881,
                        "end": 1889,
                        "loc": {
                          "start": {
                            "line": 42,
                            "column": 33
                          },
                          "end": {
                            "line": 42,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1897,
              "end": 1945,
              "loc": {
                "start": {
                  "line": 43,
                  "column": 4
                },
                "end": {
                  "line": 43,
                  "column": 52
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1901,
                  "end": 1944,
                  "loc": {
                    "start": {
                      "line": 43,
                      "column": 8
                    },
                    "end": {
                      "line": 43,
                      "column": 51
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1901,
                    "end": 1904,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 8
                      },
                      "end": {
                        "line": 43,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 1907,
                    "end": 1944,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 14
                      },
                      "end": {
                        "line": 43,
                        "column": 51
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1911,
                      "end": 1924,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 18
                        },
                        "end": {
                          "line": 43,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1911,
                        "end": 1916,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 18
                          },
                          "end": {
                            "line": 43,
                            "column": 23
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1917,
                        "end": 1924,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 24
                          },
                          "end": {
                            "line": 43,
                            "column": 31
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "UnaryExpression",
                        "start": 1925,
                        "end": 1931,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 32
                          },
                          "end": {
                            "line": 43,
                            "column": 38
                          }
                        },
                        "operator": "-",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 1926,
                          "end": 1931,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 33
                            },
                            "end": {
                              "line": 43,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1926,
                            "end": 1929,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 33
                              },
                              "end": {
                                "line": 43,
                                "column": 36
                              }
                            },
                            "name": "dir"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1930,
                            "end": 1931,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 37
                              },
                              "end": {
                                "line": 43,
                                "column": 38
                              }
                            },
                            "name": "y"
                          },
                          "computed": false
                        }
                      },
                      {
                        "type": "MemberExpression",
                        "start": 1933,
                        "end": 1938,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 40
                          },
                          "end": {
                            "line": 43,
                            "column": 45
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 1933,
                          "end": 1936,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 40
                            },
                            "end": {
                              "line": 43,
                              "column": 43
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1937,
                          "end": 1938,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 44
                            },
                            "end": {
                              "line": 43,
                              "column": 45
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      {
                        "type": "Literal",
                        "start": 1940,
                        "end": 1943,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 47
                          },
                          "end": {
                            "line": 43,
                            "column": 50
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0.0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 1951,
              "end": 2001,
              "loc": {
                "start": {
                  "line": 44,
                  "column": 4
                },
                "end": {
                  "line": 44,
                  "column": 54
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 1955,
                  "end": 2000,
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 8
                    },
                    "end": {
                      "line": 44,
                      "column": 53
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 1955,
                    "end": 1964,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 8
                      },
                      "end": {
                        "line": 44,
                        "column": 17
                      }
                    },
                    "name": "dirMidPos"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 1967,
                    "end": 2000,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 20
                      },
                      "end": {
                        "line": 44,
                        "column": 53
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1967,
                      "end": 1995,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 20
                        },
                        "end": {
                          "line": 44,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 1967,
                        "end": 1991,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 20
                          },
                          "end": {
                            "line": 44,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1967,
                          "end": 1989,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 20
                            },
                            "end": {
                              "line": 44,
                              "column": 42
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1967,
                            "end": 1983,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 20
                              },
                              "end": {
                                "line": 44,
                                "column": 36
                              }
                            },
                            "name": "controlPointHint"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1984,
                            "end": 1989,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 37
                              },
                              "end": {
                                "line": 44,
                                "column": 42
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1992,
                        "end": 1995,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 45
                          },
                          "end": {
                            "line": 44,
                            "column": 48
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1996,
                        "end": 1999,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 49
                          },
                          "end": {
                            "line": 44,
                            "column": 52
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2007,
              "end": 2063,
              "loc": {
                "start": {
                  "line": 45,
                  "column": 4
                },
                "end": {
                  "line": 45,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2011,
                  "end": 2062,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 8
                    },
                    "end": {
                      "line": 45,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2011,
                    "end": 2021,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 8
                      },
                      "end": {
                        "line": 45,
                        "column": 18
                      }
                    },
                    "name": "dirMidCtrl"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2024,
                    "end": 2062,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 21
                      },
                      "end": {
                        "line": 45,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2024,
                      "end": 2057,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 21
                        },
                        "end": {
                          "line": 45,
                          "column": 54
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 2024,
                        "end": 2041,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 21
                          },
                          "end": {
                            "line": 45,
                            "column": 38
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2024,
                          "end": 2039,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 21
                            },
                            "end": {
                              "line": 45,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2024,
                            "end": 2033,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 21
                              },
                              "end": {
                                "line": 45,
                                "column": 30
                              }
                            },
                            "name": "dirMidPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2034,
                            "end": 2039,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 31
                              },
                              "end": {
                                "line": 45,
                                "column": 36
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2042,
                        "end": 2057,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 39
                          },
                          "end": {
                            "line": 45,
                            "column": 54
                          }
                        },
                        "name": "projectOnVector"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2058,
                        "end": 2061,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 55
                          },
                          "end": {
                            "line": 45,
                            "column": 58
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2069,
              "end": 2102,
              "loc": {
                "start": {
                  "line": 46,
                  "column": 4
                },
                "end": {
                  "line": 46,
                  "column": 37
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2073,
                  "end": 2101,
                  "loc": {
                    "start": {
                      "line": 46,
                      "column": 8
                    },
                    "end": {
                      "line": 46,
                      "column": 36
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2073,
                    "end": 2079,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 8
                      },
                      "end": {
                        "line": 46,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2082,
                    "end": 2101,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 17
                      },
                      "end": {
                        "line": 46,
                        "column": 36
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2082,
                      "end": 2099,
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 17
                        },
                        "end": {
                          "line": 46,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2082,
                        "end": 2092,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 17
                          },
                          "end": {
                            "line": 46,
                            "column": 27
                          }
                        },
                        "name": "dirMidCtrl"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2093,
                        "end": 2099,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 28
                          },
                          "end": {
                            "line": 46,
                            "column": 34
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 2108,
              "end": 2175,
              "loc": {
                "start": {
                  "line": 47,
                  "column": 4
                },
                "end": {
                  "line": 48,
                  "column": 46
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 2112,
                "end": 2126,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 8
                  },
                  "end": {
                    "line": 47,
                    "column": 22
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 2112,
                  "end": 2118,
                  "loc": {
                    "start": {
                      "line": 47,
                      "column": 8
                    },
                    "end": {
                      "line": 47,
                      "column": 14
                    }
                  },
                  "name": "height"
                },
                "operator": "<=",
                "right": {
                  "type": "Literal",
                  "start": 2122,
                  "end": 2126,
                  "loc": {
                    "start": {
                      "line": 47,
                      "column": 18
                    },
                    "end": {
                      "line": 47,
                      "column": 22
                    }
                  },
                  "value": 0.001,
                  "rawValue": 0.001,
                  "raw": "1e-3"
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 2137,
                "end": 2175,
                "loc": {
                  "start": {
                    "line": 48,
                    "column": 8
                  },
                  "end": {
                    "line": 48,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 2144,
                  "end": 2174,
                  "loc": {
                    "start": {
                      "line": 48,
                      "column": 15
                    },
                    "end": {
                      "line": 48,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 2145,
                      "end": 2160,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 16
                        },
                        "end": {
                          "line": 48,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 2145,
                        "end": 2150,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 16
                          },
                          "end": {
                            "line": 48,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 2152,
                        "end": 2160,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 23
                          },
                          "end": {
                            "line": 48,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 2162,
                      "end": 2173,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 33
                        },
                        "end": {
                          "line": 48,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 2162,
                        "end": 2165,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 33
                          },
                          "end": {
                            "line": 48,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 2167,
                        "end": 2173,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 38
                          },
                          "end": {
                            "line": 48,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 2181,
              "end": 2215,
              "loc": {
                "start": {
                  "line": 49,
                  "column": 4
                },
                "end": {
                  "line": 49,
                  "column": 38
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2185,
                  "end": 2214,
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 8
                    },
                    "end": {
                      "line": 49,
                      "column": 37
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2185,
                    "end": 2193,
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 8
                      },
                      "end": {
                        "line": 49,
                        "column": 16
                      }
                    },
                    "name": "halfDist"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2196,
                    "end": 2214,
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 19
                      },
                      "end": {
                        "line": 49,
                        "column": 37
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 2196,
                      "end": 2208,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 19
                        },
                        "end": {
                          "line": 49,
                          "column": 31
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 2196,
                        "end": 2206,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 19
                          },
                          "end": {
                            "line": 49,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2196,
                          "end": 2199,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 19
                            },
                            "end": {
                              "line": 49,
                              "column": 22
                            }
                          },
                          "name": "dir"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2200,
                          "end": 2206,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 23
                            },
                            "end": {
                              "line": 49,
                              "column": 29
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "operator": "/",
                    "right": {
                      "type": "Literal",
                      "start": 2211,
                      "end": 2214,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 34
                        },
                        "end": {
                          "line": 49,
                          "column": 37
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2.0"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2221,
              "end": 2276,
              "loc": {
                "start": {
                  "line": 50,
                  "column": 4
                },
                "end": {
                  "line": 50,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2225,
                  "end": 2275,
                  "loc": {
                    "start": {
                      "line": 50,
                      "column": 8
                    },
                    "end": {
                      "line": 50,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2225,
                    "end": 2230,
                    "loc": {
                      "start": {
                        "line": 50,
                        "column": 8
                      },
                      "end": {
                        "line": 50,
                        "column": 13
                      }
                    },
                    "name": "coeff"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2233,
                    "end": 2275,
                    "loc": {
                      "start": {
                        "line": 50,
                        "column": 16
                      },
                      "end": {
                        "line": 50,
                        "column": 58
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 2233,
                      "end": 2255,
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 16
                        },
                        "end": {
                          "line": 50,
                          "column": 38
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 2235,
                        "end": 2254,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 18
                          },
                          "end": {
                            "line": 50,
                            "column": 37
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 2235,
                          "end": 2243,
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 18
                            },
                            "end": {
                              "line": 50,
                              "column": 26
                            }
                          },
                          "name": "halfDist"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 2246,
                          "end": 2254,
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 29
                            },
                            "end": {
                              "line": 50,
                              "column": 37
                            }
                          },
                          "name": "halfDist"
                        },
                        "parenthesizedExpression": true
                      }
                    },
                    "operator": "/",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 2259,
                      "end": 2274,
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 42
                        },
                        "end": {
                          "line": 50,
                          "column": 57
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 2259,
                        "end": 2265,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 42
                          },
                          "end": {
                            "line": 50,
                            "column": 48
                          }
                        },
                        "name": "height"
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 2268,
                        "end": 2274,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 51
                          },
                          "end": {
                            "line": 50,
                            "column": 57
                          }
                        },
                        "name": "height"
                      },
                      "parenthesizedExpression": true
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2282,
              "end": 2342,
              "loc": {
                "start": {
                  "line": 51,
                  "column": 4
                },
                "end": {
                  "line": 51,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2286,
                  "end": 2341,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 8
                    },
                    "end": {
                      "line": 51,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2286,
                    "end": 2289,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 8
                      },
                      "end": {
                        "line": 51,
                        "column": 11
                      }
                    },
                    "name": "ctr"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2292,
                    "end": 2341,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 14
                      },
                      "end": {
                        "line": 51,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2292,
                      "end": 2336,
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 14
                        },
                        "end": {
                          "line": 51,
                          "column": 58
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 2292,
                        "end": 2332,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 14
                          },
                          "end": {
                            "line": 51,
                            "column": 54
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2292,
                          "end": 2325,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 14
                            },
                            "end": {
                              "line": 51,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 2292,
                            "end": 2310,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 14
                              },
                              "end": {
                                "line": 51,
                                "column": 32
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2292,
                              "end": 2308,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 14
                                },
                                "end": {
                                  "line": 51,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2292,
                                "end": 2302,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 24
                                  }
                                },
                                "name": "dirMidCtrl"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2303,
                                "end": 2308,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 30
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2311,
                            "end": 2325,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 33
                              },
                              "end": {
                                "line": 51,
                                "column": 47
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 2326,
                            "end": 2331,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 48
                              },
                              "end": {
                                "line": 51,
                                "column": 53
                              }
                            },
                            "name": "coeff"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2333,
                        "end": 2336,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 55
                          },
                          "end": {
                            "line": 51,
                            "column": 58
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2337,
                        "end": 2340,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 59
                          },
                          "end": {
                            "line": 51,
                            "column": 62
                          }
                        },
                        "name": "mid"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2348,
              "end": 2377,
              "loc": {
                "start": {
                  "line": 52,
                  "column": 4
                },
                "end": {
                  "line": 52,
                  "column": 33
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2352,
                  "end": 2376,
                  "loc": {
                    "start": {
                      "line": 52,
                      "column": 8
                    },
                    "end": {
                      "line": 52,
                      "column": 32
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2352,
                    "end": 2355,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 8
                      },
                      "end": {
                        "line": 52,
                        "column": 11
                      }
                    },
                    "name": "dot"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2358,
                    "end": 2376,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 14
                      },
                      "end": {
                        "line": 52,
                        "column": 32
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2358,
                      "end": 2371,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 14
                        },
                        "end": {
                          "line": 52,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2358,
                        "end": 2367,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 14
                          },
                          "end": {
                            "line": 52,
                            "column": 23
                          }
                        },
                        "name": "dirMidPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2368,
                        "end": 2371,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 24
                          },
                          "end": {
                            "line": 52,
                            "column": 27
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2372,
                        "end": 2375,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 28
                          },
                          "end": {
                            "line": 52,
                            "column": 31
                          }
                        },
                        "name": "per"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2383,
              "end": 2411,
              "loc": {
                "start": {
                  "line": 53,
                  "column": 4
                },
                "end": {
                  "line": 53,
                  "column": 32
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2387,
                  "end": 2410,
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 8
                    },
                    "end": {
                      "line": 53,
                      "column": 31
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2387,
                    "end": 2396,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 8
                      },
                      "end": {
                        "line": 53,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2400,
                    "end": 2409,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 21
                      },
                      "end": {
                        "line": 53,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 2400,
                      "end": 2403,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 21
                        },
                        "end": {
                          "line": 53,
                          "column": 24
                        }
                      },
                      "name": "dot"
                    },
                    "operator": ">",
                    "right": {
                      "type": "Literal",
                      "start": 2406,
                      "end": 2409,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 27
                        },
                        "end": {
                          "line": 53,
                          "column": 30
                        }
                      },
                      "value": 0,
                      "rawValue": 0,
                      "raw": "0.0"
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 2417,
              "end": 2490,
              "loc": {
                "start": {
                  "line": 54,
                  "column": 4
                },
                "end": {
                  "line": 54,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 2424,
                "end": 2489,
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 11
                  },
                  "end": {
                    "line": 54,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 2425,
                    "end": 2440,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 12
                      },
                      "end": {
                        "line": 54,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2425,
                      "end": 2430,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 12
                        },
                        "end": {
                          "line": 54,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2432,
                      "end": 2440,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 19
                        },
                        "end": {
                          "line": 54,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2442,
                    "end": 2453,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 29
                      },
                      "end": {
                        "line": 54,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2442,
                      "end": 2445,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 29
                        },
                        "end": {
                          "line": 54,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2447,
                      "end": 2453,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 34
                        },
                        "end": {
                          "line": 54,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2455,
                    "end": 2466,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 42
                      },
                      "end": {
                        "line": 54,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2455,
                      "end": 2461,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 42
                        },
                        "end": {
                          "line": 54,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2463,
                      "end": 2466,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 50
                        },
                        "end": {
                          "line": 54,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 2468,
                    "end": 2488,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 55
                      },
                      "end": {
                        "line": 54,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 2468,
                      "end": 2477,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 55
                        },
                        "end": {
                          "line": 54,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 2479,
                      "end": 2488,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 66
                        },
                        "end": {
                          "line": 54,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: position of control point is only partly used and may change",
            "start": 1644,
            "end": 1712,
            "loc": {
              "start": {
                "line": 39,
                "column": 0
              },
              "end": {
                "line": 39,
                "column": 68
              }
            },
            "range": [
              1644,
              1712
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
            "start": 2497,
            "end": 2592,
            "loc": {
              "start": {
                "line": 57,
                "column": 0
              },
              "end": {
                "line": 57,
                "column": 95
              }
            },
            "range": [
              2497,
              2592
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: position of control point is only partly used and may change",
          "start": 1644,
          "end": 1712,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 68
            }
          },
          "range": [
            1644,
            1712
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
          "start": 2497,
          "end": 2592,
          "loc": {
            "start": {
              "line": 57,
              "column": 0
            },
            "end": {
              "line": 57,
              "column": 95
            }
          },
          "range": [
            2497,
            2592
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 2594,
      "end": 4412,
      "loc": {
        "start": {
          "line": 58,
          "column": 0
        },
        "end": {
          "line": 99,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 2601,
        "end": 4412,
        "loc": {
          "start": {
            "line": 58,
            "column": 7
          },
          "end": {
            "line": 99,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2610,
          "end": 2625,
          "loc": {
            "start": {
              "line": 58,
              "column": 16
            },
            "end": {
              "line": 58,
              "column": 31
            }
          },
          "name": "drawArcBy_S_E_M",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 2626,
            "end": 2634,
            "loc": {
              "start": {
                "line": 58,
                "column": 32
              },
              "end": {
                "line": 58,
                "column": 40
              }
            },
            "name": "startPos"
          },
          {
            "type": "Identifier",
            "start": 2636,
            "end": 2642,
            "loc": {
              "start": {
                "line": 58,
                "column": 42
              },
              "end": {
                "line": 58,
                "column": 48
              }
            },
            "name": "endPos"
          },
          {
            "type": "Identifier",
            "start": 2644,
            "end": 2653,
            "loc": {
              "start": {
                "line": 58,
                "column": 50
              },
              "end": {
                "line": 58,
                "column": 59
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 2655,
          "end": 4412,
          "loc": {
            "start": {
              "line": 58,
              "column": 61
            },
            "end": {
              "line": 99,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 2734,
              "end": 2772,
              "loc": {
                "start": {
                  "line": 60,
                  "column": 4
                },
                "end": {
                  "line": 60,
                  "column": 42
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2738,
                  "end": 2771,
                  "loc": {
                    "start": {
                      "line": 60,
                      "column": 8
                    },
                    "end": {
                      "line": 60,
                      "column": 41
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2738,
                    "end": 2741,
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 8
                      },
                      "end": {
                        "line": 60,
                        "column": 11
                      }
                    },
                    "name": "lSE",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2744,
                    "end": 2771,
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 14
                      },
                      "end": {
                        "line": 60,
                        "column": 41
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2744,
                      "end": 2763,
                      "loc": {
                        "start": {
                          "line": 60,
                          "column": 14
                        },
                        "end": {
                          "line": 60,
                          "column": 33
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2744,
                        "end": 2752,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 14
                          },
                          "end": {
                            "line": 60,
                            "column": 22
                          }
                        },
                        "name": "startPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2753,
                        "end": 2763,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 23
                          },
                          "end": {
                            "line": 60,
                            "column": 33
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2764,
                        "end": 2770,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 34
                          },
                          "end": {
                            "line": 60,
                            "column": 40
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "since vector math is a huge pain in JS, we do it in a stupid way",
                  "start": 2662,
                  "end": 2728,
                  "loc": {
                    "start": {
                      "line": 59,
                      "column": 4
                    },
                    "end": {
                      "line": 59,
                      "column": 70
                    }
                  },
                  "range": [
                    2662,
                    2728
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 2778,
              "end": 2819,
              "loc": {
                "start": {
                  "line": 61,
                  "column": 4
                },
                "end": {
                  "line": 61,
                  "column": 45
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2782,
                  "end": 2818,
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 8
                    },
                    "end": {
                      "line": 61,
                      "column": 44
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2782,
                    "end": 2785,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 8
                      },
                      "end": {
                        "line": 61,
                        "column": 11
                      }
                    },
                    "name": "lSM"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2788,
                    "end": 2818,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 14
                      },
                      "end": {
                        "line": 61,
                        "column": 44
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2788,
                      "end": 2807,
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 14
                        },
                        "end": {
                          "line": 61,
                          "column": 33
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2788,
                        "end": 2796,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 14
                          },
                          "end": {
                            "line": 61,
                            "column": 22
                          }
                        },
                        "name": "startPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2797,
                        "end": 2807,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 23
                          },
                          "end": {
                            "line": 61,
                            "column": 33
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2808,
                        "end": 2817,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 34
                          },
                          "end": {
                            "line": 61,
                            "column": 43
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2825,
              "end": 2864,
              "loc": {
                "start": {
                  "line": 62,
                  "column": 4
                },
                "end": {
                  "line": 62,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2829,
                  "end": 2863,
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 8
                    },
                    "end": {
                      "line": 62,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2829,
                    "end": 2832,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 8
                      },
                      "end": {
                        "line": 62,
                        "column": 11
                      }
                    },
                    "name": "lEM"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2835,
                    "end": 2863,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 14
                      },
                      "end": {
                        "line": 62,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2835,
                      "end": 2852,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 14
                        },
                        "end": {
                          "line": 62,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2835,
                        "end": 2841,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 14
                          },
                          "end": {
                            "line": 62,
                            "column": 20
                          }
                        },
                        "name": "endPos"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2842,
                        "end": 2852,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 21
                          },
                          "end": {
                            "line": 62,
                            "column": 31
                          }
                        },
                        "name": "distanceTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2853,
                        "end": 2862,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 32
                          },
                          "end": {
                            "line": 62,
                            "column": 41
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2870,
              "end": 2965,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 4
                },
                "end": {
                  "line": 63,
                  "column": 99
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2874,
                  "end": 2964,
                  "loc": {
                    "start": {
                      "line": 63,
                      "column": 8
                    },
                    "end": {
                      "line": 63,
                      "column": 98
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2874,
                    "end": 2879,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 8
                      },
                      "end": {
                        "line": 63,
                        "column": 13
                      }
                    },
                    "name": "sArea"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 2882,
                    "end": 2964,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 16
                      },
                      "end": {
                        "line": 63,
                        "column": 98
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 2882,
                      "end": 2958,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 16
                        },
                        "end": {
                          "line": 63,
                          "column": 92
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 2882,
                        "end": 2895,
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 16
                          },
                          "end": {
                            "line": 63,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2882,
                          "end": 2887,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 16
                            },
                            "end": {
                              "line": 63,
                              "column": 21
                            }
                          },
                          "name": "THREE"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2888,
                          "end": 2895,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 22
                            },
                            "end": {
                              "line": 63,
                              "column": 29
                            }
                          },
                          "name": "cross2d"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 2896,
                          "end": 2924,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 30
                            },
                            "end": {
                              "line": 63,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2896,
                            "end": 2914,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 30
                              },
                              "end": {
                                "line": 63,
                                "column": 48
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 2896,
                              "end": 2910,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 30
                                },
                                "end": {
                                  "line": 63,
                                  "column": 44
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2896,
                                "end": 2908,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 42
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2896,
                                  "end": 2902,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 36
                                    }
                                  },
                                  "name": "endPos"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2903,
                                  "end": 2908,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 42
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2911,
                              "end": 2914,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 45
                                },
                                "end": {
                                  "line": 63,
                                  "column": 48
                                }
                              },
                              "name": "sub"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2915,
                              "end": 2923,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 49
                                },
                                "end": {
                                  "line": 63,
                                  "column": 57
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        },
                        {
                          "type": "CallExpression",
                          "start": 2926,
                          "end": 2957,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 60
                            },
                            "end": {
                              "line": 63,
                              "column": 91
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2926,
                            "end": 2947,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 60
                              },
                              "end": {
                                "line": 63,
                                "column": 81
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 2926,
                              "end": 2943,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 60
                                },
                                "end": {
                                  "line": 63,
                                  "column": 77
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2926,
                                "end": 2941,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 60
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 75
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2926,
                                  "end": 2935,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 69
                                    }
                                  },
                                  "name": "middlePos"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2936,
                                  "end": 2941,
                                  "loc": {
                                    "start": {
                                      "line": 63,
                                      "column": 70
                                    },
                                    "end": {
                                      "line": 63,
                                      "column": 75
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2944,
                              "end": 2947,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 78
                                },
                                "end": {
                                  "line": 63,
                                  "column": 81
                                }
                              },
                              "name": "sub"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2948,
                              "end": 2956,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 82
                                },
                                "end": {
                                  "line": 63,
                                  "column": 90
                                }
                              },
                              "name": "startPos"
                            }
                          ]
                        }
                      ]
                    },
                    "operator": "/",
                    "right": {
                      "type": "Literal",
                      "start": 2961,
                      "end": 2964,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 95
                        },
                        "end": {
                          "line": 63,
                          "column": 98
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2.0"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 2971,
              "end": 2998,
              "loc": {
                "start": {
                  "line": 64,
                  "column": 4
                },
                "end": {
                  "line": 64,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 2975,
                  "end": 2997,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 8
                    },
                    "end": {
                      "line": 64,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 2975,
                    "end": 2979,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 8
                      },
                      "end": {
                        "line": 64,
                        "column": 12
                      }
                    },
                    "name": "area"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 2982,
                    "end": 2997,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 15
                      },
                      "end": {
                        "line": 64,
                        "column": 30
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 2982,
                      "end": 2990,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 15
                        },
                        "end": {
                          "line": 64,
                          "column": 23
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 2982,
                        "end": 2986,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 15
                          },
                          "end": {
                            "line": 64,
                            "column": 19
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 2987,
                        "end": 2990,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 20
                          },
                          "end": {
                            "line": 64,
                            "column": 23
                          }
                        },
                        "name": "abs"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 2991,
                        "end": 2996,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 24
                          },
                          "end": {
                            "line": 64,
                            "column": 29
                          }
                        },
                        "name": "sArea"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 3004,
              "end": 3082,
              "loc": {
                "start": {
                  "line": 65,
                  "column": 4
                },
                "end": {
                  "line": 66,
                  "column": 46
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 3008,
                "end": 3033,
                "loc": {
                  "start": {
                    "line": 65,
                    "column": 8
                  },
                  "end": {
                    "line": 65,
                    "column": 33
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 3008,
                  "end": 3012,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 8
                    },
                    "end": {
                      "line": 65,
                      "column": 12
                    }
                  },
                  "name": "area"
                },
                "operator": "<=",
                "right": {
                  "type": "BinaryExpression",
                  "start": 3016,
                  "end": 3033,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 16
                    },
                    "end": {
                      "line": 65,
                      "column": 33
                    }
                  },
                  "left": {
                    "type": "BinaryExpression",
                    "start": 3016,
                    "end": 3026,
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 16
                      },
                      "end": {
                        "line": 65,
                        "column": 26
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 3016,
                      "end": 3020,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 16
                        },
                        "end": {
                          "line": 65,
                          "column": 20
                        }
                      },
                      "value": 0.001,
                      "rawValue": 0.001,
                      "raw": "1e-3"
                    },
                    "operator": "*",
                    "right": {
                      "type": "Identifier",
                      "start": 3023,
                      "end": 3026,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 23
                        },
                        "end": {
                          "line": 65,
                          "column": 26
                        }
                      },
                      "name": "lSE"
                    }
                  },
                  "operator": "+",
                  "right": {
                    "type": "Literal",
                    "start": 3029,
                    "end": 3033,
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 29
                      },
                      "end": {
                        "line": 65,
                        "column": 33
                      }
                    },
                    "value": 0.001,
                    "rawValue": 0.001,
                    "raw": "1e-3"
                  }
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 3044,
                "end": 3082,
                "loc": {
                  "start": {
                    "line": 66,
                    "column": 8
                  },
                  "end": {
                    "line": 66,
                    "column": 46
                  }
                },
                "argument": {
                  "type": "ObjectExpression",
                  "start": 3051,
                  "end": 3081,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 15
                    },
                    "end": {
                      "line": 66,
                      "column": 45
                    }
                  },
                  "properties": [
                    {
                      "type": "Property",
                      "start": 3052,
                      "end": 3067,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 16
                        },
                        "end": {
                          "line": 66,
                          "column": 31
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 3052,
                        "end": 3057,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 16
                          },
                          "end": {
                            "line": 66,
                            "column": 21
                          }
                        },
                        "name": "start"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 3059,
                        "end": 3067,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 23
                          },
                          "end": {
                            "line": 66,
                            "column": 31
                          }
                        },
                        "name": "startPos"
                      },
                      "kind": "init"
                    },
                    {
                      "type": "Property",
                      "start": 3069,
                      "end": 3080,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 33
                        },
                        "end": {
                          "line": 66,
                          "column": 44
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 3069,
                        "end": 3072,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 33
                          },
                          "end": {
                            "line": 66,
                            "column": 36
                          }
                        },
                        "name": "end"
                      },
                      "value": {
                        "type": "Identifier",
                        "start": 3074,
                        "end": 3080,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 38
                          },
                          "end": {
                            "line": 66,
                            "column": 44
                          }
                        },
                        "name": "endPos"
                      },
                      "kind": "init"
                    }
                  ]
                },
                "trailingComments": null
              },
              "alternate": null,
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting radius with school math",
                  "start": 3088,
                  "end": 3121,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 4
                    },
                    "end": {
                      "line": 67,
                      "column": 37
                    }
                  },
                  "range": [
                    3088,
                    3121
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3127,
              "end": 3173,
              "loc": {
                "start": {
                  "line": 68,
                  "column": 4
                },
                "end": {
                  "line": 68,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3131,
                  "end": 3172,
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 8
                    },
                    "end": {
                      "line": 68,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3131,
                    "end": 3137,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 8
                      },
                      "end": {
                        "line": 68,
                        "column": 14
                      }
                    },
                    "name": "radius",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 3140,
                    "end": 3172,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 17
                      },
                      "end": {
                        "line": 68,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "BinaryExpression",
                      "start": 3141,
                      "end": 3156,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 18
                        },
                        "end": {
                          "line": 68,
                          "column": 33
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 3141,
                        "end": 3150,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 18
                          },
                          "end": {
                            "line": 68,
                            "column": 27
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 3141,
                          "end": 3144,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 18
                            },
                            "end": {
                              "line": 68,
                              "column": 21
                            }
                          },
                          "name": "lSE"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 3147,
                          "end": 3150,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 24
                            },
                            "end": {
                              "line": 68,
                              "column": 27
                            }
                          },
                          "name": "lSM"
                        }
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3153,
                        "end": 3156,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 30
                          },
                          "end": {
                            "line": 68,
                            "column": 33
                          }
                        },
                        "name": "lEM"
                      },
                      "parenthesizedExpression": true
                    },
                    "operator": "/",
                    "right": {
                      "type": "BinaryExpression",
                      "start": 3161,
                      "end": 3171,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 38
                        },
                        "end": {
                          "line": 68,
                          "column": 48
                        }
                      },
                      "left": {
                        "type": "Literal",
                        "start": 3161,
                        "end": 3164,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 38
                          },
                          "end": {
                            "line": 68,
                            "column": 41
                          }
                        },
                        "value": 4,
                        "rawValue": 4,
                        "raw": "4.0"
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3167,
                        "end": 3171,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 44
                          },
                          "end": {
                            "line": 68,
                            "column": 48
                          }
                        },
                        "name": "area"
                      },
                      "parenthesizedExpression": true
                    }
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting radius with school math",
                  "start": 3088,
                  "end": 3121,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 4
                    },
                    "end": {
                      "line": 67,
                      "column": 37
                    }
                  },
                  "range": [
                    3088,
                    3121
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 3179,
              "end": 3225,
              "loc": {
                "start": {
                  "line": 69,
                  "column": 4
                },
                "end": {
                  "line": 69,
                  "column": 50
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 3179,
                "end": 3224,
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 4
                  },
                  "end": {
                    "line": 69,
                    "column": 49
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 3179,
                  "end": 3185,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 4
                    },
                    "end": {
                      "line": 69,
                      "column": 10
                    }
                  },
                  "name": "radius"
                },
                "right": {
                  "type": "CallExpression",
                  "start": 3188,
                  "end": 3224,
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 13
                    },
                    "end": {
                      "line": 69,
                      "column": 49
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 3188,
                    "end": 3196,
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 13
                      },
                      "end": {
                        "line": 69,
                        "column": 21
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 3188,
                      "end": 3192,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 13
                        },
                        "end": {
                          "line": 69,
                          "column": 17
                        }
                      },
                      "name": "Math"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 3193,
                      "end": 3196,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 18
                        },
                        "end": {
                          "line": 69,
                          "column": 21
                        }
                      },
                      "name": "max"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 3197,
                      "end": 3203,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 22
                        },
                        "end": {
                          "line": 69,
                          "column": 28
                        }
                      },
                      "name": "radius"
                    },
                    {
                      "type": "BinaryExpression",
                      "start": 3205,
                      "end": 3223,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 30
                        },
                        "end": {
                          "line": 69,
                          "column": 48
                        }
                      },
                      "left": {
                        "type": "BinaryExpression",
                        "start": 3206,
                        "end": 3216,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 31
                          },
                          "end": {
                            "line": 69,
                            "column": 41
                          }
                        },
                        "left": {
                          "type": "Literal",
                          "start": 3206,
                          "end": 3209,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 31
                            },
                            "end": {
                              "line": 69,
                              "column": 34
                            }
                          },
                          "value": 0.5,
                          "rawValue": 0.5,
                          "raw": "0.5"
                        },
                        "operator": "+",
                        "right": {
                          "type": "Literal",
                          "start": 3212,
                          "end": 3216,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 37
                            },
                            "end": {
                              "line": 69,
                              "column": 41
                            }
                          },
                          "value": 1e-9,
                          "rawValue": 1e-9,
                          "raw": "1e-9"
                        },
                        "parenthesizedExpression": true
                      },
                      "operator": "*",
                      "right": {
                        "type": "Identifier",
                        "start": 3220,
                        "end": 3223,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 45
                          },
                          "end": {
                            "line": 69,
                            "column": 48
                          }
                        },
                        "name": "lSE"
                      }
                    }
                  ]
                }
              }
            },
            {
              "type": "VariableDeclaration",
              "start": 3231,
              "end": 3289,
              "loc": {
                "start": {
                  "line": 70,
                  "column": 4
                },
                "end": {
                  "line": 70,
                  "column": 62
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3235,
                  "end": 3288,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 8
                    },
                    "end": {
                      "line": 70,
                      "column": 61
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3235,
                    "end": 3241,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 8
                      },
                      "end": {
                        "line": 70,
                        "column": 14
                      }
                    },
                    "name": "height"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3244,
                    "end": 3288,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 17
                      },
                      "end": {
                        "line": 70,
                        "column": 61
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3244,
                      "end": 3253,
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 17
                        },
                        "end": {
                          "line": 70,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 3244,
                        "end": 3248,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 17
                          },
                          "end": {
                            "line": 70,
                            "column": 21
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3249,
                        "end": 3253,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 22
                          },
                          "end": {
                            "line": 70,
                            "column": 26
                          }
                        },
                        "name": "sqrt"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "BinaryExpression",
                        "start": 3254,
                        "end": 3287,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 27
                          },
                          "end": {
                            "line": 70,
                            "column": 60
                          }
                        },
                        "left": {
                          "type": "BinaryExpression",
                          "start": 3254,
                          "end": 3269,
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 27
                            },
                            "end": {
                              "line": 70,
                              "column": 42
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 3254,
                            "end": 3260,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 27
                              },
                              "end": {
                                "line": 70,
                                "column": 33
                              }
                            },
                            "name": "radius"
                          },
                          "operator": "*",
                          "right": {
                            "type": "Identifier",
                            "start": 3263,
                            "end": 3269,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 36
                              },
                              "end": {
                                "line": 70,
                                "column": 42
                              }
                            },
                            "name": "radius"
                          }
                        },
                        "operator": "-",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 3272,
                          "end": 3287,
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 45
                            },
                            "end": {
                              "line": 70,
                              "column": 60
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 3272,
                            "end": 3281,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 45
                              },
                              "end": {
                                "line": 70,
                                "column": 54
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 3272,
                              "end": 3275,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 45
                                },
                                "end": {
                                  "line": 70,
                                  "column": 48
                                }
                              },
                              "name": "lSE"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 3278,
                              "end": 3281,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 51
                                },
                                "end": {
                                  "line": 70,
                                  "column": 54
                                }
                              },
                              "name": "lSE"
                            }
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 3284,
                            "end": 3287,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 57
                              },
                              "end": {
                                "line": 70,
                                "column": 60
                              }
                            },
                            "value": 4,
                            "rawValue": 4,
                            "raw": "4.0"
                          }
                        }
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "copy-pasting middle perpendicular",
                  "start": 3295,
                  "end": 3330,
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 4
                    },
                    "end": {
                      "line": 71,
                      "column": 39
                    }
                  },
                  "range": [
                    3295,
                    3330
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3336,
              "end": 3391,
              "loc": {
                "start": {
                  "line": 72,
                  "column": 4
                },
                "end": {
                  "line": 72,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3340,
                  "end": 3390,
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 8
                    },
                    "end": {
                      "line": 72,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3340,
                    "end": 3343,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 8
                      },
                      "end": {
                        "line": 72,
                        "column": 11
                      }
                    },
                    "name": "mid",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3346,
                    "end": 3390,
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 14
                      },
                      "end": {
                        "line": 72,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3346,
                      "end": 3387,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 14
                        },
                        "end": {
                          "line": 72,
                          "column": 55
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 3346,
                        "end": 3374,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 14
                          },
                          "end": {
                            "line": 72,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3346,
                          "end": 3364,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 14
                            },
                            "end": {
                              "line": 72,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 3346,
                            "end": 3360,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 14
                              },
                              "end": {
                                "line": 72,
                                "column": 28
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3346,
                              "end": 3358,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 14
                                },
                                "end": {
                                  "line": 72,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3346,
                                "end": 3352,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 20
                                  }
                                },
                                "name": "endPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3353,
                                "end": 3358,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 26
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3361,
                            "end": 3364,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 29
                              },
                              "end": {
                                "line": 72,
                                "column": 32
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3365,
                            "end": 3373,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 33
                              },
                              "end": {
                                "line": 72,
                                "column": 41
                              }
                            },
                            "name": "startPos"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3375,
                        "end": 3387,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 43
                          },
                          "end": {
                            "line": 72,
                            "column": 55
                          }
                        },
                        "name": "divideScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 3388,
                        "end": 3389,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 56
                          },
                          "end": {
                            "line": 72,
                            "column": 57
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "copy-pasting middle perpendicular",
                  "start": 3295,
                  "end": 3330,
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 4
                    },
                    "end": {
                      "line": 71,
                      "column": 39
                    }
                  },
                  "range": [
                    3295,
                    3330
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3397,
              "end": 3436,
              "loc": {
                "start": {
                  "line": 73,
                  "column": 4
                },
                "end": {
                  "line": 73,
                  "column": 43
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3401,
                  "end": 3435,
                  "loc": {
                    "start": {
                      "line": 73,
                      "column": 8
                    },
                    "end": {
                      "line": 73,
                      "column": 42
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3401,
                    "end": 3404,
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 8
                      },
                      "end": {
                        "line": 73,
                        "column": 11
                      }
                    },
                    "name": "dir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3407,
                    "end": 3435,
                    "loc": {
                      "start": {
                        "line": 73,
                        "column": 14
                      },
                      "end": {
                        "line": 73,
                        "column": 42
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3407,
                      "end": 3425,
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 14
                        },
                        "end": {
                          "line": 73,
                          "column": 32
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 3407,
                        "end": 3421,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 14
                          },
                          "end": {
                            "line": 73,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3407,
                          "end": 3419,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 14
                            },
                            "end": {
                              "line": 73,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3407,
                            "end": 3413,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 14
                              },
                              "end": {
                                "line": 73,
                                "column": 20
                              }
                            },
                            "name": "endPos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3414,
                            "end": 3419,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 21
                              },
                              "end": {
                                "line": 73,
                                "column": 26
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3422,
                        "end": 3425,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 29
                          },
                          "end": {
                            "line": 73,
                            "column": 32
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 3426,
                        "end": 3434,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 33
                          },
                          "end": {
                            "line": 73,
                            "column": 41
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 3442,
              "end": 3502,
              "loc": {
                "start": {
                  "line": 74,
                  "column": 4
                },
                "end": {
                  "line": 74,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3446,
                  "end": 3501,
                  "loc": {
                    "start": {
                      "line": 74,
                      "column": 8
                    },
                    "end": {
                      "line": 74,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3446,
                    "end": 3449,
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 8
                      },
                      "end": {
                        "line": 74,
                        "column": 11
                      }
                    },
                    "name": "per"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 3452,
                    "end": 3501,
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 14
                      },
                      "end": {
                        "line": 74,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 3452,
                      "end": 3499,
                      "loc": {
                        "start": {
                          "line": 74,
                          "column": 14
                        },
                        "end": {
                          "line": 74,
                          "column": 61
                        }
                      },
                      "object": {
                        "type": "NewExpression",
                        "start": 3452,
                        "end": 3489,
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 14
                          },
                          "end": {
                            "line": 74,
                            "column": 51
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3456,
                          "end": 3469,
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 18
                            },
                            "end": {
                              "line": 74,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3456,
                            "end": 3461,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 18
                              },
                              "end": {
                                "line": 74,
                                "column": 23
                              }
                            },
                            "name": "THREE"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3462,
                            "end": 3469,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 24
                              },
                              "end": {
                                "line": 74,
                                "column": 31
                              }
                            },
                            "name": "Vector3"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "UnaryExpression",
                            "start": 3470,
                            "end": 3476,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 32
                              },
                              "end": {
                                "line": 74,
                                "column": 38
                              }
                            },
                            "operator": "-",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 3471,
                              "end": 3476,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 33
                                },
                                "end": {
                                  "line": 74,
                                  "column": 38
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3471,
                                "end": 3474,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 36
                                  }
                                },
                                "name": "dir"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3475,
                                "end": 3476,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 38
                                  }
                                },
                                "name": "y"
                              },
                              "computed": false
                            }
                          },
                          {
                            "type": "MemberExpression",
                            "start": 3478,
                            "end": 3483,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 40
                              },
                              "end": {
                                "line": 74,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3478,
                              "end": 3481,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 40
                                },
                                "end": {
                                  "line": 74,
                                  "column": 43
                                }
                              },
                              "name": "dir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3482,
                              "end": 3483,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 44
                                },
                                "end": {
                                  "line": 74,
                                  "column": 45
                                }
                              },
                              "name": "x"
                            },
                            "computed": false
                          },
                          {
                            "type": "Literal",
                            "start": 3485,
                            "end": 3488,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 47
                              },
                              "end": {
                                "line": 74,
                                "column": 50
                              }
                            },
                            "value": 0,
                            "rawValue": 0,
                            "raw": "0.0"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3490,
                        "end": 3499,
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 52
                          },
                          "end": {
                            "line": 74,
                            "column": 61
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting center (choose best of two cases)",
                  "start": 3508,
                  "end": 3551,
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 47
                    }
                  },
                  "range": [
                    3508,
                    3551
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3557,
              "end": 3579,
              "loc": {
                "start": {
                  "line": 76,
                  "column": 4
                },
                "end": {
                  "line": 76,
                  "column": 26
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3561,
                  "end": 3564,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 8
                    },
                    "end": {
                      "line": 76,
                      "column": 11
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3561,
                    "end": 3564,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 8
                      },
                      "end": {
                        "line": 76,
                        "column": 11
                      }
                    },
                    "name": "ctr",
                    "leadingComments": null
                  },
                  "init": null,
                  "leadingComments": null
                },
                {
                  "type": "VariableDeclarator",
                  "start": 3566,
                  "end": 3578,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 13
                    },
                    "end": {
                      "line": 76,
                      "column": 25
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3566,
                    "end": 3570,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 13
                      },
                      "end": {
                        "line": 76,
                        "column": 17
                      }
                    },
                    "name": "dist"
                  },
                  "init": {
                    "type": "Literal",
                    "start": 3573,
                    "end": 3578,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 20
                      },
                      "end": {
                        "line": 76,
                        "column": 25
                      }
                    },
                    "value": 1e+50,
                    "rawValue": 1e+50,
                    "raw": "1e+50"
                  }
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "getting center (choose best of two cases)",
                  "start": 3508,
                  "end": 3551,
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 4
                    },
                    "end": {
                      "line": 75,
                      "column": 47
                    }
                  },
                  "range": [
                    3508,
                    3551
                  ]
                }
              ]
            },
            {
              "type": "ForStatement",
              "start": 3585,
              "end": 3857,
              "loc": {
                "start": {
                  "line": 77,
                  "column": 4
                },
                "end": {
                  "line": 84,
                  "column": 5
                }
              },
              "init": {
                "type": "VariableDeclaration",
                "start": 3590,
                "end": 3599,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 9
                  },
                  "end": {
                    "line": 77,
                    "column": 18
                  }
                },
                "declarations": [
                  {
                    "type": "VariableDeclarator",
                    "start": 3594,
                    "end": 3599,
                    "loc": {
                      "start": {
                        "line": 77,
                        "column": 13
                      },
                      "end": {
                        "line": 77,
                        "column": 18
                      }
                    },
                    "id": {
                      "type": "Identifier",
                      "start": 3594,
                      "end": 3595,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 13
                        },
                        "end": {
                          "line": 77,
                          "column": 14
                        }
                      },
                      "name": "i"
                    },
                    "init": {
                      "type": "Literal",
                      "start": 3598,
                      "end": 3599,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 17
                        },
                        "end": {
                          "line": 77,
                          "column": 18
                        }
                      },
                      "value": 0,
                      "rawValue": 0,
                      "raw": "0"
                    }
                  }
                ],
                "kind": "var"
              },
              "test": {
                "type": "BinaryExpression",
                "start": 3601,
                "end": 3606,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 20
                  },
                  "end": {
                    "line": 77,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 3601,
                  "end": 3602,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 20
                    },
                    "end": {
                      "line": 77,
                      "column": 21
                    }
                  },
                  "name": "i"
                },
                "operator": "<",
                "right": {
                  "type": "Literal",
                  "start": 3605,
                  "end": 3606,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 24
                    },
                    "end": {
                      "line": 77,
                      "column": 25
                    }
                  },
                  "value": 2,
                  "rawValue": 2,
                  "raw": "2"
                }
              },
              "update": {
                "type": "UpdateExpression",
                "start": 3608,
                "end": 3611,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 27
                  },
                  "end": {
                    "line": 77,
                    "column": 30
                  }
                },
                "operator": "++",
                "prefix": false,
                "argument": {
                  "type": "Identifier",
                  "start": 3608,
                  "end": 3609,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 27
                    },
                    "end": {
                      "line": 77,
                      "column": 28
                    }
                  },
                  "name": "i"
                }
              },
              "body": {
                "type": "BlockStatement",
                "start": 3613,
                "end": 3857,
                "loc": {
                  "start": {
                    "line": 77,
                    "column": 32
                  },
                  "end": {
                    "line": 84,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 3624,
                    "end": 3690,
                    "loc": {
                      "start": {
                        "line": 78,
                        "column": 8
                      },
                      "end": {
                        "line": 78,
                        "column": 74
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 3628,
                        "end": 3689,
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 12
                          },
                          "end": {
                            "line": 78,
                            "column": 73
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3628,
                          "end": 3632,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 12
                            },
                            "end": {
                              "line": 78,
                              "column": 16
                            }
                          },
                          "name": "tCtr"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 3635,
                          "end": 3689,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 19
                            },
                            "end": {
                              "line": 78,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3635,
                            "end": 3684,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 19
                              },
                              "end": {
                                "line": 78,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 3635,
                              "end": 3680,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 19
                                },
                                "end": {
                                  "line": 78,
                                  "column": 64
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 3635,
                                "end": 3661,
                                "loc": {
                                  "start": {
                                    "line": 78,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 45
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 3635,
                                  "end": 3646,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 30
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 3635,
                                    "end": 3644,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3635,
                                      "end": 3638,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 22
                                        }
                                      },
                                      "name": "per"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3639,
                                      "end": 3644,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 28
                                        }
                                      },
                                      "name": "clone"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3647,
                                  "end": 3661,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 45
                                    }
                                  },
                                  "name": "multiplyScalar"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "BinaryExpression",
                                  "start": 3662,
                                  "end": 3679,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 63
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3662,
                                    "end": 3668,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 52
                                      }
                                    },
                                    "name": "height"
                                  },
                                  "operator": "*",
                                  "right": {
                                    "type": "ConditionalExpression",
                                    "start": 3672,
                                    "end": 3678,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 56
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 62
                                      }
                                    },
                                    "test": {
                                      "type": "Identifier",
                                      "start": 3672,
                                      "end": 3673,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 57
                                        }
                                      },
                                      "name": "i"
                                    },
                                    "consequent": {
                                      "type": "Literal",
                                      "start": 3674,
                                      "end": 3675,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 58
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 59
                                        }
                                      },
                                      "value": 1,
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "alternate": {
                                      "type": "UnaryExpression",
                                      "start": 3676,
                                      "end": 3678,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 62
                                        }
                                      },
                                      "operator": "-",
                                      "prefix": true,
                                      "argument": {
                                        "type": "Literal",
                                        "start": 3677,
                                        "end": 3678,
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 61
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 62
                                          }
                                        },
                                        "value": 1,
                                        "rawValue": 1,
                                        "raw": "1"
                                      }
                                    },
                                    "parenthesizedExpression": true
                                  }
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3681,
                              "end": 3684,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 65
                                },
                                "end": {
                                  "line": 78,
                                  "column": 68
                                }
                              },
                              "name": "add"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 3685,
                              "end": 3688,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 69
                                },
                                "end": {
                                  "line": 78,
                                  "column": 72
                                }
                              },
                              "name": "mid"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 3700,
                    "end": 3758,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 8
                      },
                      "end": {
                        "line": 79,
                        "column": 66
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 3704,
                        "end": 3757,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 12
                          },
                          "end": {
                            "line": 79,
                            "column": 65
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3704,
                          "end": 3709,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 12
                            },
                            "end": {
                              "line": 79,
                              "column": 17
                            }
                          },
                          "name": "tDist"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 3712,
                          "end": 3757,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 20
                            },
                            "end": {
                              "line": 79,
                              "column": 65
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 3712,
                            "end": 3720,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 20
                              },
                              "end": {
                                "line": 79,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3712,
                              "end": 3716,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 20
                                },
                                "end": {
                                  "line": 79,
                                  "column": 24
                                }
                              },
                              "name": "Math"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3717,
                              "end": 3720,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 25
                                },
                                "end": {
                                  "line": 79,
                                  "column": 28
                                }
                              },
                              "name": "abs"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "BinaryExpression",
                              "start": 3721,
                              "end": 3756,
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 29
                                },
                                "end": {
                                  "line": 79,
                                  "column": 64
                                }
                              },
                              "left": {
                                "type": "CallExpression",
                                "start": 3721,
                                "end": 3747,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 55
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3721,
                                  "end": 3736,
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 44
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3721,
                                    "end": 3725,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 33
                                      }
                                    },
                                    "name": "tCtr"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3726,
                                    "end": 3736,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 44
                                      }
                                    },
                                    "name": "distanceTo"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3737,
                                    "end": 3746,
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 45
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 54
                                      }
                                    },
                                    "name": "middlePos"
                                  }
                                ]
                              },
                              "operator": "-",
                              "right": {
                                "type": "Identifier",
                                "start": 3750,
                                "end": 3756,
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 64
                                  }
                                },
                                "name": "radius"
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "IfStatement",
                    "start": 3768,
                    "end": 3850,
                    "loc": {
                      "start": {
                        "line": 80,
                        "column": 8
                      },
                      "end": {
                        "line": 83,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 3772,
                      "end": 3784,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 12
                        },
                        "end": {
                          "line": 80,
                          "column": 24
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 3772,
                        "end": 3776,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 12
                          },
                          "end": {
                            "line": 80,
                            "column": 16
                          }
                        },
                        "name": "dist"
                      },
                      "operator": ">",
                      "right": {
                        "type": "Identifier",
                        "start": 3779,
                        "end": 3784,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 19
                          },
                          "end": {
                            "line": 80,
                            "column": 24
                          }
                        },
                        "name": "tDist"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 3786,
                      "end": 3850,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 26
                        },
                        "end": {
                          "line": 83,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 3801,
                          "end": 3814,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 12
                            },
                            "end": {
                              "line": 81,
                              "column": 25
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 3801,
                            "end": 3813,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 12
                              },
                              "end": {
                                "line": 81,
                                "column": 24
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 3801,
                              "end": 3805,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 12
                                },
                                "end": {
                                  "line": 81,
                                  "column": 16
                                }
                              },
                              "name": "dist"
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 3808,
                              "end": 3813,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 19
                                },
                                "end": {
                                  "line": 81,
                                  "column": 24
                                }
                              },
                              "name": "tDist"
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 3828,
                          "end": 3839,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 12
                            },
                            "end": {
                              "line": 82,
                              "column": 23
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 3828,
                            "end": 3838,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 12
                              },
                              "end": {
                                "line": 82,
                                "column": 22
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 3828,
                              "end": 3831,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 12
                                },
                                "end": {
                                  "line": 82,
                                  "column": 15
                                }
                              },
                              "name": "ctr"
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 3834,
                              "end": 3838,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 18
                                },
                                "end": {
                                  "line": 82,
                                  "column": 22
                                }
                              },
                              "name": "tCtr"
                            }
                          }
                        }
                      ]
                    },
                    "alternate": null
                  }
                ],
                "trailingComments": null
              },
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "get polar angles of all points",
                  "start": 3863,
                  "end": 3895,
                  "loc": {
                    "start": {
                      "line": 85,
                      "column": 4
                    },
                    "end": {
                      "line": 85,
                      "column": 36
                    }
                  },
                  "range": [
                    3863,
                    3895
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 3901,
              "end": 4017,
              "loc": {
                "start": {
                  "line": 86,
                  "column": 4
                },
                "end": {
                  "line": 89,
                  "column": 6
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 3905,
                  "end": 4016,
                  "loc": {
                    "start": {
                      "line": 86,
                      "column": 8
                    },
                    "end": {
                      "line": 89,
                      "column": 5
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 3905,
                    "end": 3913,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 8
                      },
                      "end": {
                        "line": 86,
                        "column": 16
                      }
                    },
                    "name": "getAngle",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "ArrowFunctionExpression",
                    "start": 3916,
                    "end": 4016,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 19
                      },
                      "end": {
                        "line": 89,
                        "column": 5
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 3917,
                        "end": 3920,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 20
                          },
                          "end": {
                            "line": 86,
                            "column": 23
                          }
                        },
                        "name": "pos"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 3925,
                      "end": 4016,
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 28
                        },
                        "end": {
                          "line": 89,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 3936,
                          "end": 3967,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 8
                            },
                            "end": {
                              "line": 87,
                              "column": 39
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 3940,
                              "end": 3966,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 12
                                },
                                "end": {
                                  "line": 87,
                                  "column": 38
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3940,
                                "end": 3943,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 15
                                  }
                                },
                                "name": "dir"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 3946,
                                "end": 3966,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3946,
                                  "end": 3961,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 33
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 3946,
                                    "end": 3957,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 29
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 3946,
                                      "end": 3955,
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 27
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 3946,
                                        "end": 3949,
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 21
                                          }
                                        },
                                        "name": "pos"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3950,
                                        "end": 3955,
                                        "loc": {
                                          "start": {
                                            "line": 87,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 87,
                                            "column": 27
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3958,
                                    "end": 3961,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 33
                                      }
                                    },
                                    "name": "sub"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3962,
                                    "end": 3965,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 37
                                      }
                                    },
                                    "name": "ctr"
                                  }
                                ]
                              }
                            }
                          ],
                          "kind": "var"
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 3977,
                          "end": 4009,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 8
                            },
                            "end": {
                              "line": 88,
                              "column": 40
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 3984,
                            "end": 4008,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 15
                              },
                              "end": {
                                "line": 88,
                                "column": 39
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3984,
                              "end": 3994,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 15
                                },
                                "end": {
                                  "line": 88,
                                  "column": 25
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3984,
                                "end": 3988,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 19
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3989,
                                "end": 3994,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 25
                                  }
                                },
                                "name": "atan2"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 3995,
                                "end": 4000,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 31
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3995,
                                  "end": 3998,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 29
                                    }
                                  },
                                  "name": "dir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3999,
                                  "end": 4000,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 31
                                    }
                                  },
                                  "name": "y"
                                },
                                "computed": false
                              },
                              {
                                "type": "MemberExpression",
                                "start": 4002,
                                "end": 4007,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 38
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4002,
                                  "end": 4005,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 36
                                    }
                                  },
                                  "name": "dir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4006,
                                  "end": 4007,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 38
                                    }
                                  },
                                  "name": "x"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "get polar angles of all points",
                  "start": 3863,
                  "end": 3895,
                  "loc": {
                    "start": {
                      "line": 85,
                      "column": 4
                    },
                    "end": {
                      "line": 85,
                      "column": 36
                    }
                  },
                  "range": [
                    3863,
                    3895
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 4023,
              "end": 4057,
              "loc": {
                "start": {
                  "line": 90,
                  "column": 4
                },
                "end": {
                  "line": 90,
                  "column": 38
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4027,
                  "end": 4056,
                  "loc": {
                    "start": {
                      "line": 90,
                      "column": 8
                    },
                    "end": {
                      "line": 90,
                      "column": 37
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4027,
                    "end": 4035,
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 8
                      },
                      "end": {
                        "line": 90,
                        "column": 16
                      }
                    },
                    "name": "startAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4038,
                    "end": 4056,
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 19
                      },
                      "end": {
                        "line": 90,
                        "column": 37
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 4038,
                      "end": 4046,
                      "loc": {
                        "start": {
                          "line": 90,
                          "column": 19
                        },
                        "end": {
                          "line": 90,
                          "column": 27
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4047,
                        "end": 4055,
                        "loc": {
                          "start": {
                            "line": 90,
                            "column": 28
                          },
                          "end": {
                            "line": 90,
                            "column": 36
                          }
                        },
                        "name": "startPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4063,
              "end": 4093,
              "loc": {
                "start": {
                  "line": 91,
                  "column": 4
                },
                "end": {
                  "line": 91,
                  "column": 34
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4067,
                  "end": 4092,
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 8
                    },
                    "end": {
                      "line": 91,
                      "column": 33
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4067,
                    "end": 4073,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 8
                      },
                      "end": {
                        "line": 91,
                        "column": 14
                      }
                    },
                    "name": "endAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4076,
                    "end": 4092,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 17
                      },
                      "end": {
                        "line": 91,
                        "column": 33
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 4076,
                      "end": 4084,
                      "loc": {
                        "start": {
                          "line": 91,
                          "column": 17
                        },
                        "end": {
                          "line": 91,
                          "column": 25
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4085,
                        "end": 4091,
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 26
                          },
                          "end": {
                            "line": 91,
                            "column": 32
                          }
                        },
                        "name": "endPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4099,
              "end": 4135,
              "loc": {
                "start": {
                  "line": 92,
                  "column": 4
                },
                "end": {
                  "line": 92,
                  "column": 40
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4103,
                  "end": 4134,
                  "loc": {
                    "start": {
                      "line": 92,
                      "column": 8
                    },
                    "end": {
                      "line": 92,
                      "column": 39
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4103,
                    "end": 4112,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 8
                      },
                      "end": {
                        "line": 92,
                        "column": 17
                      }
                    },
                    "name": "middleAng"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4115,
                    "end": 4134,
                    "loc": {
                      "start": {
                        "line": 92,
                        "column": 20
                      },
                      "end": {
                        "line": 92,
                        "column": 39
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 4115,
                      "end": 4123,
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 20
                        },
                        "end": {
                          "line": 92,
                          "column": 28
                        }
                      },
                      "name": "getAngle"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4124,
                        "end": 4133,
                        "loc": {
                          "start": {
                            "line": 92,
                            "column": 29
                          },
                          "end": {
                            "line": 92,
                            "column": 38
                          }
                        },
                        "name": "middlePos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "check which part of circle to take",
                  "start": 4141,
                  "end": 4177,
                  "loc": {
                    "start": {
                      "line": 93,
                      "column": 4
                    },
                    "end": {
                      "line": 93,
                      "column": 40
                    }
                  },
                  "range": [
                    4141,
                    4177
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4183,
              "end": 4228,
              "loc": {
                "start": {
                  "line": 94,
                  "column": 4
                },
                "end": {
                  "line": 94,
                  "column": 49
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 4187,
                "end": 4204,
                "loc": {
                  "start": {
                    "line": 94,
                    "column": 8
                  },
                  "end": {
                    "line": 94,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 4187,
                  "end": 4193,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 8
                    },
                    "end": {
                      "line": 94,
                      "column": 14
                    }
                  },
                  "name": "endAng",
                  "leadingComments": null
                },
                "operator": "<",
                "right": {
                  "type": "Identifier",
                  "start": 4196,
                  "end": 4204,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 17
                    },
                    "end": {
                      "line": 94,
                      "column": 25
                    }
                  },
                  "name": "startAng"
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 4206,
                "end": 4228,
                "loc": {
                  "start": {
                    "line": 94,
                    "column": 27
                  },
                  "end": {
                    "line": 94,
                    "column": 49
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 4206,
                  "end": 4227,
                  "loc": {
                    "start": {
                      "line": 94,
                      "column": 27
                    },
                    "end": {
                      "line": 94,
                      "column": 48
                    }
                  },
                  "operator": "+=",
                  "left": {
                    "type": "Identifier",
                    "start": 4206,
                    "end": 4212,
                    "loc": {
                      "start": {
                        "line": 94,
                        "column": 27
                      },
                      "end": {
                        "line": 94,
                        "column": 33
                      }
                    },
                    "name": "endAng"
                  },
                  "right": {
                    "type": "BinaryExpression",
                    "start": 4216,
                    "end": 4227,
                    "loc": {
                      "start": {
                        "line": 94,
                        "column": 37
                      },
                      "end": {
                        "line": 94,
                        "column": 48
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 4216,
                      "end": 4217,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 37
                        },
                        "end": {
                          "line": 94,
                          "column": 38
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2"
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 4220,
                      "end": 4227,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 41
                        },
                        "end": {
                          "line": 94,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4220,
                        "end": 4224,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 41
                          },
                          "end": {
                            "line": 94,
                            "column": 45
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4225,
                        "end": 4227,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 46
                          },
                          "end": {
                            "line": 94,
                            "column": 48
                          }
                        },
                        "name": "PI"
                      },
                      "computed": false
                    }
                  }
                }
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "check which part of circle to take",
                  "start": 4141,
                  "end": 4177,
                  "loc": {
                    "start": {
                      "line": 93,
                      "column": 4
                    },
                    "end": {
                      "line": 93,
                      "column": 40
                    }
                  },
                  "range": [
                    4141,
                    4177
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4234,
              "end": 4285,
              "loc": {
                "start": {
                  "line": 95,
                  "column": 4
                },
                "end": {
                  "line": 95,
                  "column": 55
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 4238,
                "end": 4258,
                "loc": {
                  "start": {
                    "line": 95,
                    "column": 8
                  },
                  "end": {
                    "line": 95,
                    "column": 28
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 4238,
                  "end": 4247,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 8
                    },
                    "end": {
                      "line": 95,
                      "column": 17
                    }
                  },
                  "name": "middleAng"
                },
                "operator": "<",
                "right": {
                  "type": "Identifier",
                  "start": 4250,
                  "end": 4258,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 20
                    },
                    "end": {
                      "line": 95,
                      "column": 28
                    }
                  },
                  "name": "startAng"
                }
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 4260,
                "end": 4285,
                "loc": {
                  "start": {
                    "line": 95,
                    "column": 30
                  },
                  "end": {
                    "line": 95,
                    "column": 55
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 4260,
                  "end": 4284,
                  "loc": {
                    "start": {
                      "line": 95,
                      "column": 30
                    },
                    "end": {
                      "line": 95,
                      "column": 54
                    }
                  },
                  "operator": "+=",
                  "left": {
                    "type": "Identifier",
                    "start": 4260,
                    "end": 4269,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 30
                      },
                      "end": {
                        "line": 95,
                        "column": 39
                      }
                    },
                    "name": "middleAng"
                  },
                  "right": {
                    "type": "BinaryExpression",
                    "start": 4273,
                    "end": 4284,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 43
                      },
                      "end": {
                        "line": 95,
                        "column": 54
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 4273,
                      "end": 4274,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 43
                        },
                        "end": {
                          "line": 95,
                          "column": 44
                        }
                      },
                      "value": 2,
                      "rawValue": 2,
                      "raw": "2"
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 4277,
                      "end": 4284,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 47
                        },
                        "end": {
                          "line": 95,
                          "column": 54
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4277,
                        "end": 4281,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 47
                          },
                          "end": {
                            "line": 95,
                            "column": 51
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4282,
                        "end": 4284,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 52
                          },
                          "end": {
                            "line": 95,
                            "column": 54
                          }
                        },
                        "name": "PI"
                      },
                      "computed": false
                    }
                  }
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 4291,
              "end": 4328,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 4
                },
                "end": {
                  "line": 96,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4295,
                  "end": 4327,
                  "loc": {
                    "start": {
                      "line": 96,
                      "column": 8
                    },
                    "end": {
                      "line": 96,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4295,
                    "end": 4304,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 8
                      },
                      "end": {
                        "line": 96,
                        "column": 17
                      }
                    },
                    "name": "clockwise"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 4308,
                    "end": 4326,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 21
                      },
                      "end": {
                        "line": 96,
                        "column": 39
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 4308,
                      "end": 4317,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 21
                        },
                        "end": {
                          "line": 96,
                          "column": 30
                        }
                      },
                      "name": "middleAng"
                    },
                    "operator": ">",
                    "right": {
                      "type": "Identifier",
                      "start": 4320,
                      "end": 4326,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 33
                        },
                        "end": {
                          "line": 96,
                          "column": 39
                        }
                      },
                      "name": "endAng"
                    },
                    "parenthesizedExpression": true
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 4336,
              "end": 4409,
              "loc": {
                "start": {
                  "line": 98,
                  "column": 4
                },
                "end": {
                  "line": 98,
                  "column": 77
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 4343,
                "end": 4408,
                "loc": {
                  "start": {
                    "line": 98,
                    "column": 11
                  },
                  "end": {
                    "line": 98,
                    "column": 76
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 4344,
                    "end": 4359,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 12
                      },
                      "end": {
                        "line": 98,
                        "column": 27
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4344,
                      "end": 4349,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 12
                        },
                        "end": {
                          "line": 98,
                          "column": 17
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4351,
                      "end": 4359,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 19
                        },
                        "end": {
                          "line": 98,
                          "column": 27
                        }
                      },
                      "name": "startPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4361,
                    "end": 4372,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 29
                      },
                      "end": {
                        "line": 98,
                        "column": 40
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4361,
                      "end": 4364,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 29
                        },
                        "end": {
                          "line": 98,
                          "column": 32
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4366,
                      "end": 4372,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 34
                        },
                        "end": {
                          "line": 98,
                          "column": 40
                        }
                      },
                      "name": "endPos"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4374,
                    "end": 4385,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 42
                      },
                      "end": {
                        "line": 98,
                        "column": 53
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4374,
                      "end": 4380,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 42
                        },
                        "end": {
                          "line": 98,
                          "column": 48
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4382,
                      "end": 4385,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 50
                        },
                        "end": {
                          "line": 98,
                          "column": 53
                        }
                      },
                      "name": "ctr"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 4387,
                    "end": 4407,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 55
                      },
                      "end": {
                        "line": 98,
                        "column": 75
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 4387,
                      "end": 4396,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 55
                        },
                        "end": {
                          "line": 98,
                          "column": 64
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 4398,
                      "end": 4407,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 66
                        },
                        "end": {
                          "line": 98,
                          "column": 75
                        }
                      },
                      "name": "clockwise"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
            "start": 2497,
            "end": 2592,
            "loc": {
              "start": {
                "line": 57,
                "column": 0
              },
              "end": {
                "line": 57,
                "column": 95
              }
            },
            "range": [
              2497,
              2592
            ]
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "Note: middle point should be within circlewith diameter [SE], otherwise it would be corrected",
          "start": 2497,
          "end": 2592,
          "loc": {
            "start": {
              "line": 57,
              "column": 0
            },
            "end": {
              "line": 57,
              "column": 95
            }
          },
          "range": [
            2497,
            2592
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 4416,
      "end": 7531,
      "loc": {
        "start": {
          "line": 101,
          "column": 0
        },
        "end": {
          "line": 188,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 4423,
        "end": 7531,
        "loc": {
          "start": {
            "line": 101,
            "column": 7
          },
          "end": {
            "line": 188,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 4432,
          "end": 4449,
          "loc": {
            "start": {
              "line": 101,
              "column": 16
            },
            "end": {
              "line": 101,
              "column": 33
            }
          },
          "name": "drawArcBy_Angle_M"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 4450,
            "end": 4459,
            "loc": {
              "start": {
                "line": 101,
                "column": 34
              },
              "end": {
                "line": 101,
                "column": 43
              }
            },
            "name": "vertexPos"
          },
          {
            "type": "Identifier",
            "start": 4461,
            "end": 4469,
            "loc": {
              "start": {
                "line": 101,
                "column": 45
              },
              "end": {
                "line": 101,
                "column": 53
              }
            },
            "name": "startDir"
          },
          {
            "type": "Identifier",
            "start": 4471,
            "end": 4477,
            "loc": {
              "start": {
                "line": 101,
                "column": 55
              },
              "end": {
                "line": 101,
                "column": 61
              }
            },
            "name": "endDir"
          },
          {
            "type": "Identifier",
            "start": 4479,
            "end": 4488,
            "loc": {
              "start": {
                "line": 101,
                "column": 63
              },
              "end": {
                "line": 101,
                "column": 72
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 4490,
          "end": 7531,
          "loc": {
            "start": {
              "line": 101,
              "column": 74
            },
            "end": {
              "line": 188,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 4517,
              "end": 4537,
              "loc": {
                "start": {
                  "line": 104,
                  "column": 4
                },
                "end": {
                  "line": 104,
                  "column": 24
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4521,
                  "end": 4536,
                  "loc": {
                    "start": {
                      "line": 104,
                      "column": 8
                    },
                    "end": {
                      "line": 104,
                      "column": 23
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4521,
                    "end": 4524,
                    "loc": {
                      "start": {
                        "line": 104,
                        "column": 8
                      },
                      "end": {
                        "line": 104,
                        "column": 11
                      }
                    },
                    "name": "len",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "Identifier",
                    "start": 4527,
                    "end": 4536,
                    "loc": {
                      "start": {
                        "line": 104,
                        "column": 14
                      },
                      "end": {
                        "line": 104,
                        "column": 23
                      }
                    },
                    "name": "undefined"
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " to return",
                  "start": 4499,
                  "end": 4511,
                  "loc": {
                    "start": {
                      "line": 103,
                      "column": 4
                    },
                    "end": {
                      "line": 103,
                      "column": 16
                    }
                  },
                  "range": [
                    4499,
                    4511
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 4543,
              "end": 4581,
              "loc": {
                "start": {
                  "line": 105,
                  "column": 4
                },
                "end": {
                  "line": 105,
                  "column": 42
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4547,
                  "end": 4580,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 8
                    },
                    "end": {
                      "line": 105,
                      "column": 41
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4547,
                    "end": 4553,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 8
                      },
                      "end": {
                        "line": 105,
                        "column": 14
                      }
                    },
                    "name": "center"
                  },
                  "init": {
                    "type": "NewExpression",
                    "start": 4556,
                    "end": 4580,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 17
                      },
                      "end": {
                        "line": 105,
                        "column": 41
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4560,
                      "end": 4573,
                      "loc": {
                        "start": {
                          "line": 105,
                          "column": 21
                        },
                        "end": {
                          "line": 105,
                          "column": 34
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4560,
                        "end": 4565,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 21
                          },
                          "end": {
                            "line": 105,
                            "column": 26
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4566,
                        "end": 4573,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 27
                          },
                          "end": {
                            "line": 105,
                            "column": 34
                          }
                        },
                        "name": "Vector3"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 4574,
                        "end": 4575,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 35
                          },
                          "end": {
                            "line": 105,
                            "column": 36
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      },
                      {
                        "type": "Literal",
                        "start": 4576,
                        "end": 4577,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 37
                          },
                          "end": {
                            "line": 105,
                            "column": 38
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      },
                      {
                        "type": "Literal",
                        "start": 4578,
                        "end": 4579,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 39
                          },
                          "end": {
                            "line": 105,
                            "column": 40
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4589,
              "end": 4666,
              "loc": {
                "start": {
                  "line": 107,
                  "column": 4
                },
                "end": {
                  "line": 107,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4593,
                  "end": 4665,
                  "loc": {
                    "start": {
                      "line": 107,
                      "column": 8
                    },
                    "end": {
                      "line": 107,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4593,
                    "end": 4602,
                    "loc": {
                      "start": {
                        "line": 107,
                        "column": 8
                      },
                      "end": {
                        "line": 107,
                        "column": 17
                      }
                    },
                    "name": "centerDir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4605,
                    "end": 4665,
                    "loc": {
                      "start": {
                        "line": 107,
                        "column": 20
                      },
                      "end": {
                        "line": 107,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4605,
                      "end": 4663,
                      "loc": {
                        "start": {
                          "line": 107,
                          "column": 20
                        },
                        "end": {
                          "line": 107,
                          "column": 78
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 4605,
                        "end": 4653,
                        "loc": {
                          "start": {
                            "line": 107,
                            "column": 20
                          },
                          "end": {
                            "line": 107,
                            "column": 68
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4605,
                          "end": 4648,
                          "loc": {
                            "start": {
                              "line": 107,
                              "column": 20
                            },
                            "end": {
                              "line": 107,
                              "column": 63
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 4605,
                            "end": 4633,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 20
                              },
                              "end": {
                                "line": 107,
                                "column": 48
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 4605,
                              "end": 4625,
                              "loc": {
                                "start": {
                                  "line": 107,
                                  "column": 20
                                },
                                "end": {
                                  "line": 107,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 4605,
                                "end": 4621,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4605,
                                  "end": 4619,
                                  "loc": {
                                    "start": {
                                      "line": 107,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 107,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4605,
                                    "end": 4613,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 28
                                      }
                                    },
                                    "name": "startDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4614,
                                    "end": 4619,
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4622,
                                "end": 4625,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4626,
                                "end": 4632,
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 47
                                  }
                                },
                                "name": "endDir"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4634,
                            "end": 4648,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 49
                              },
                              "end": {
                                "line": 107,
                                "column": 63
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 4649,
                            "end": 4652,
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 64
                              },
                              "end": {
                                "line": 107,
                                "column": 67
                              }
                            },
                            "value": 0.5,
                            "rawValue": 0.5,
                            "raw": "0.5"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4654,
                        "end": 4663,
                        "loc": {
                          "start": {
                            "line": 107,
                            "column": 69
                          },
                          "end": {
                            "line": 107,
                            "column": 78
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 4672,
              "end": 4726,
              "loc": {
                "start": {
                  "line": 108,
                  "column": 4
                },
                "end": {
                  "line": 108,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 4676,
                  "end": 4725,
                  "loc": {
                    "start": {
                      "line": 108,
                      "column": 8
                    },
                    "end": {
                      "line": 108,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 4676,
                    "end": 4690,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 8
                      },
                      "end": {
                        "line": 108,
                        "column": 22
                      }
                    },
                    "name": "vertexToMiddle"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 4693,
                    "end": 4725,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 25
                      },
                      "end": {
                        "line": 108,
                        "column": 57
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4693,
                      "end": 4714,
                      "loc": {
                        "start": {
                          "line": 108,
                          "column": 25
                        },
                        "end": {
                          "line": 108,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 4693,
                        "end": 4710,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 25
                          },
                          "end": {
                            "line": 108,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4693,
                          "end": 4708,
                          "loc": {
                            "start": {
                              "line": 108,
                              "column": 25
                            },
                            "end": {
                              "line": 108,
                              "column": 40
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 4693,
                            "end": 4702,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 25
                              },
                              "end": {
                                "line": 108,
                                "column": 34
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4703,
                            "end": 4708,
                            "loc": {
                              "start": {
                                "line": 108,
                                "column": 35
                              },
                              "end": {
                                "line": 108,
                                "column": 40
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4711,
                        "end": 4714,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 43
                          },
                          "end": {
                            "line": 108,
                            "column": 46
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4715,
                        "end": 4724,
                        "loc": {
                          "start": {
                            "line": 108,
                            "column": 47
                          },
                          "end": {
                            "line": 108,
                            "column": 56
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 4734,
                  "end": 4826,
                  "loc": {
                    "start": {
                      "line": 110,
                      "column": 4
                    },
                    "end": {
                      "line": 110,
                      "column": 96
                    }
                  },
                  "range": [
                    4734,
                    4826
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 4832,
              "end": 4926,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 4
                },
                "end": {
                  "line": 112,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 4836,
                "end": 4903,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 8
                  },
                  "end": {
                    "line": 111,
                    "column": 75
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 4836,
                  "end": 4866,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 8
                    },
                    "end": {
                      "line": 111,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 4836,
                    "end": 4859,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 8
                      },
                      "end": {
                        "line": 111,
                        "column": 31
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4836,
                      "end": 4857,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 8
                        },
                        "end": {
                          "line": 111,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4836,
                        "end": 4850,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 8
                          },
                          "end": {
                            "line": 111,
                            "column": 22
                          }
                        },
                        "name": "vertexToMiddle",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4851,
                        "end": 4857,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 23
                          },
                          "end": {
                            "line": 111,
                            "column": 29
                          }
                        },
                        "name": "length"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "arguments": [],
                    "leadingComments": null
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 4862,
                    "end": 4866,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 34
                      },
                      "end": {
                        "line": 111,
                        "column": 38
                      }
                    },
                    "value": 0.01,
                    "rawValue": 0.01,
                    "raw": "1e-2"
                  },
                  "leadingComments": null
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 4870,
                  "end": 4903,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 42
                    },
                    "end": {
                      "line": 111,
                      "column": 75
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 4870,
                    "end": 4899,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 42
                      },
                      "end": {
                        "line": 111,
                        "column": 71
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 4870,
                      "end": 4888,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 42
                        },
                        "end": {
                          "line": 111,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 4870,
                        "end": 4884,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 42
                          },
                          "end": {
                            "line": 111,
                            "column": 56
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 4885,
                        "end": 4888,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 57
                          },
                          "end": {
                            "line": 111,
                            "column": 60
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 4889,
                        "end": 4898,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 61
                          },
                          "end": {
                            "line": 111,
                            "column": 70
                          }
                        },
                        "name": "centerDir"
                      }
                    ]
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 4902,
                    "end": 4903,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 74
                      },
                      "end": {
                        "line": 111,
                        "column": 75
                      }
                    },
                    "value": 0,
                    "rawValue": 0,
                    "raw": "0"
                  }
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 4914,
                "end": 4926,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 8
                  },
                  "end": {
                    "line": 112,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 4921,
                  "end": 4925,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 15
                    },
                    "end": {
                      "line": 112,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                },
                "trailingComments": null
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 4734,
                  "end": 4826,
                  "loc": {
                    "start": {
                      "line": 110,
                      "column": 4
                    },
                    "end": {
                      "line": 110,
                      "column": 96
                    }
                  },
                  "range": [
                    4734,
                    4826
                  ]
                }
              ],
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if  middlepos is out of filletAngle but its projection to centerDir isn't",
                  "start": 4934,
                  "end": 5010,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 4
                    },
                    "end": {
                      "line": 114,
                      "column": 80
                    }
                  },
                  "range": [
                    4934,
                    5010
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 5016,
              "end": 5053,
              "loc": {
                "start": {
                  "line": 115,
                  "column": 4
                },
                "end": {
                  "line": 115,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5020,
                  "end": 5052,
                  "loc": {
                    "start": {
                      "line": 115,
                      "column": 8
                    },
                    "end": {
                      "line": 115,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5020,
                    "end": 5025,
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 8
                      },
                      "end": {
                        "line": 115,
                        "column": 13
                      }
                    },
                    "name": "alpha",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5028,
                    "end": 5052,
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 16
                      },
                      "end": {
                        "line": 115,
                        "column": 40
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5028,
                      "end": 5042,
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 16
                        },
                        "end": {
                          "line": 115,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5028,
                        "end": 5034,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 16
                          },
                          "end": {
                            "line": 115,
                            "column": 22
                          }
                        },
                        "name": "endDir"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5035,
                        "end": 5042,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 23
                          },
                          "end": {
                            "line": 115,
                            "column": 30
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5043,
                        "end": 5051,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 31
                          },
                          "end": {
                            "line": 115,
                            "column": 39
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if  middlepos is out of filletAngle but its projection to centerDir isn't",
                  "start": 4934,
                  "end": 5010,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 4
                    },
                    "end": {
                      "line": 114,
                      "column": 80
                    }
                  },
                  "range": [
                    4934,
                    5010
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 5059,
              "end": 5114,
              "loc": {
                "start": {
                  "line": 116,
                  "column": 4
                },
                "end": {
                  "line": 116,
                  "column": 59
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5063,
                  "end": 5113,
                  "loc": {
                    "start": {
                      "line": 116,
                      "column": 8
                    },
                    "end": {
                      "line": 116,
                      "column": 58
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5063,
                    "end": 5078,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 8
                      },
                      "end": {
                        "line": 116,
                        "column": 23
                      }
                    },
                    "name": "angleMidToStart"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5081,
                    "end": 5113,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 26
                      },
                      "end": {
                        "line": 116,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5081,
                      "end": 5103,
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 26
                        },
                        "end": {
                          "line": 116,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5081,
                        "end": 5095,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 26
                          },
                          "end": {
                            "line": 116,
                            "column": 40
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5096,
                        "end": 5103,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 41
                          },
                          "end": {
                            "line": 116,
                            "column": 48
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5104,
                        "end": 5112,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 49
                          },
                          "end": {
                            "line": 116,
                            "column": 57
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 5120,
              "end": 5171,
              "loc": {
                "start": {
                  "line": 117,
                  "column": 4
                },
                "end": {
                  "line": 117,
                  "column": 55
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5124,
                  "end": 5170,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 8
                    },
                    "end": {
                      "line": 117,
                      "column": 54
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5124,
                    "end": 5137,
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 8
                      },
                      "end": {
                        "line": 117,
                        "column": 21
                      }
                    },
                    "name": "angleMidToEnd"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5140,
                    "end": 5170,
                    "loc": {
                      "start": {
                        "line": 117,
                        "column": 24
                      },
                      "end": {
                        "line": 117,
                        "column": 54
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5140,
                      "end": 5162,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 24
                        },
                        "end": {
                          "line": 117,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5140,
                        "end": 5154,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 24
                          },
                          "end": {
                            "line": 117,
                            "column": 38
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5155,
                        "end": 5162,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 39
                          },
                          "end": {
                            "line": 117,
                            "column": 46
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5163,
                        "end": 5169,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 47
                          },
                          "end": {
                            "line": 117,
                            "column": 53
                          }
                        },
                        "name": "endDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " project middlepos onto one of the directions if it is out of filletAngle",
                  "start": 5179,
                  "end": 5254,
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 4
                    },
                    "end": {
                      "line": 119,
                      "column": 79
                    }
                  },
                  "range": [
                    5179,
                    5254
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 5260,
              "end": 5323,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 4
                },
                "end": {
                  "line": 120,
                  "column": 67
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5264,
                  "end": 5322,
                  "loc": {
                    "start": {
                      "line": 120,
                      "column": 8
                    },
                    "end": {
                      "line": 120,
                      "column": 66
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5264,
                    "end": 5272,
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 8
                      },
                      "end": {
                        "line": 120,
                        "column": 16
                      }
                    },
                    "name": "maxAngle",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 5275,
                    "end": 5322,
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 19
                      },
                      "end": {
                        "line": 120,
                        "column": 66
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5275,
                      "end": 5283,
                      "loc": {
                        "start": {
                          "line": 120,
                          "column": 19
                        },
                        "end": {
                          "line": 120,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5275,
                        "end": 5279,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 19
                          },
                          "end": {
                            "line": 120,
                            "column": 23
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5280,
                        "end": 5283,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 24
                          },
                          "end": {
                            "line": 120,
                            "column": 27
                          }
                        },
                        "name": "max"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5284,
                        "end": 5299,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 28
                          },
                          "end": {
                            "line": 120,
                            "column": 43
                          }
                        },
                        "name": "angleMidToStart"
                      },
                      {
                        "type": "Identifier",
                        "start": 5301,
                        "end": 5314,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 45
                          },
                          "end": {
                            "line": 120,
                            "column": 58
                          }
                        },
                        "name": "angleMidToEnd"
                      },
                      {
                        "type": "Identifier",
                        "start": 5316,
                        "end": 5321,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 60
                          },
                          "end": {
                            "line": 120,
                            "column": 65
                          }
                        },
                        "name": "alpha"
                      }
                    ]
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " project middlepos onto one of the directions if it is out of filletAngle",
                  "start": 5179,
                  "end": 5254,
                  "loc": {
                    "start": {
                      "line": 119,
                      "column": 4
                    },
                    "end": {
                      "line": 119,
                      "column": 79
                    }
                  },
                  "range": [
                    5179,
                    5254
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 5329,
              "end": 5572,
              "loc": {
                "start": {
                  "line": 121,
                  "column": 4
                },
                "end": {
                  "line": 128,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 5333,
                "end": 5351,
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 8
                  },
                  "end": {
                    "line": 121,
                    "column": 26
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 5333,
                  "end": 5341,
                  "loc": {
                    "start": {
                      "line": 121,
                      "column": 8
                    },
                    "end": {
                      "line": 121,
                      "column": 16
                    }
                  },
                  "name": "maxAngle"
                },
                "operator": "!==",
                "right": {
                  "type": "Identifier",
                  "start": 5346,
                  "end": 5351,
                  "loc": {
                    "start": {
                      "line": 121,
                      "column": 21
                    },
                    "end": {
                      "line": 121,
                      "column": 26
                    }
                  },
                  "name": "alpha"
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 5353,
                "end": 5572,
                "loc": {
                  "start": {
                    "line": 121,
                    "column": 28
                  },
                  "end": {
                    "line": 128,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "IfStatement",
                    "start": 5364,
                    "end": 5565,
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 8
                      },
                      "end": {
                        "line": 127,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 5368,
                      "end": 5396,
                      "loc": {
                        "start": {
                          "line": 122,
                          "column": 12
                        },
                        "end": {
                          "line": 122,
                          "column": 40
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 5368,
                        "end": 5383,
                        "loc": {
                          "start": {
                            "line": 122,
                            "column": 12
                          },
                          "end": {
                            "line": 122,
                            "column": 27
                          }
                        },
                        "name": "angleMidToStart"
                      },
                      "operator": "===",
                      "right": {
                        "type": "Identifier",
                        "start": 5388,
                        "end": 5396,
                        "loc": {
                          "start": {
                            "line": 122,
                            "column": 32
                          },
                          "end": {
                            "line": 122,
                            "column": 40
                          }
                        },
                        "name": "maxAngle"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 5398,
                      "end": 5457,
                      "loc": {
                        "start": {
                          "line": 122,
                          "column": 42
                        },
                        "end": {
                          "line": 124,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 5413,
                          "end": 5446,
                          "loc": {
                            "start": {
                              "line": 123,
                              "column": 12
                            },
                            "end": {
                              "line": 123,
                              "column": 45
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 5413,
                            "end": 5445,
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 12
                              },
                              "end": {
                                "line": 123,
                                "column": 44
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 5413,
                              "end": 5416,
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 12
                                },
                                "end": {
                                  "line": 123,
                                  "column": 15
                                }
                              },
                              "name": "len"
                            },
                            "right": {
                              "type": "CallExpression",
                              "start": 5419,
                              "end": 5445,
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 18
                                },
                                "end": {
                                  "line": 123,
                                  "column": 44
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 5419,
                                "end": 5437,
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5419,
                                  "end": 5433,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 32
                                    }
                                  },
                                  "name": "vertexToMiddle"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5434,
                                  "end": 5437,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 36
                                    }
                                  },
                                  "name": "dot"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 5438,
                                  "end": 5444,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 43
                                    }
                                  },
                                  "name": "endDir"
                                }
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "alternate": {
                      "type": "IfStatement",
                      "start": 5472,
                      "end": 5565,
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 13
                        },
                        "end": {
                          "line": 127,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 5476,
                        "end": 5502,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 17
                          },
                          "end": {
                            "line": 125,
                            "column": 43
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 5476,
                          "end": 5489,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 17
                            },
                            "end": {
                              "line": 125,
                              "column": 30
                            }
                          },
                          "name": "angleMidToEnd"
                        },
                        "operator": "===",
                        "right": {
                          "type": "Identifier",
                          "start": 5494,
                          "end": 5502,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 35
                            },
                            "end": {
                              "line": 125,
                              "column": 43
                            }
                          },
                          "name": "maxAngle"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 5504,
                        "end": 5565,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 45
                          },
                          "end": {
                            "line": 127,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 5519,
                            "end": 5554,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 12
                              },
                              "end": {
                                "line": 126,
                                "column": 47
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 5519,
                              "end": 5553,
                              "loc": {
                                "start": {
                                  "line": 126,
                                  "column": 12
                                },
                                "end": {
                                  "line": 126,
                                  "column": 46
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 5519,
                                "end": 5522,
                                "loc": {
                                  "start": {
                                    "line": 126,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 126,
                                    "column": 15
                                  }
                                },
                                "name": "len"
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 5525,
                                "end": 5553,
                                "loc": {
                                  "start": {
                                    "line": 126,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 126,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5525,
                                  "end": 5543,
                                  "loc": {
                                    "start": {
                                      "line": 126,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 126,
                                      "column": 36
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5525,
                                    "end": 5539,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 32
                                      }
                                    },
                                    "name": "vertexToMiddle"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5540,
                                    "end": 5543,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 36
                                      }
                                    },
                                    "name": "dot"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5544,
                                    "end": 5552,
                                    "loc": {
                                      "start": {
                                        "line": 126,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 126,
                                        "column": 45
                                      }
                                    },
                                    "name": "startDir"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "alternate": null
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 5580,
              "end": 5984,
              "loc": {
                "start": {
                  "line": 130,
                  "column": 4
                },
                "end": {
                  "line": 138,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 5584,
                "end": 5587,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 8
                  },
                  "end": {
                    "line": 130,
                    "column": 11
                  }
                },
                "name": "len"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 5589,
                "end": 5984,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 13
                  },
                  "end": {
                    "line": 138,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 5600,
                    "end": 5688,
                    "loc": {
                      "start": {
                        "line": 131,
                        "column": 8
                      },
                      "end": {
                        "line": 131,
                        "column": 96
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 5600,
                      "end": 5687,
                      "loc": {
                        "start": {
                          "line": 131,
                          "column": 8
                        },
                        "end": {
                          "line": 131,
                          "column": 95
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "start": 5600,
                        "end": 5606,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 8
                          },
                          "end": {
                            "line": 131,
                            "column": 14
                          }
                        },
                        "name": "center"
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 5609,
                        "end": 5687,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 17
                          },
                          "end": {
                            "line": 131,
                            "column": 95
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5609,
                          "end": 5630,
                          "loc": {
                            "start": {
                              "line": 131,
                              "column": 17
                            },
                            "end": {
                              "line": 131,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 5609,
                            "end": 5626,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 17
                              },
                              "end": {
                                "line": 131,
                                "column": 34
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5609,
                              "end": 5624,
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 17
                                },
                                "end": {
                                  "line": 131,
                                  "column": 32
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 5609,
                                "end": 5618,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 26
                                  }
                                },
                                "name": "vertexPos"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5619,
                                "end": 5624,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 32
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5627,
                            "end": 5630,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 35
                              },
                              "end": {
                                "line": 131,
                                "column": 38
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "start": 5631,
                            "end": 5686,
                            "loc": {
                              "start": {
                                "line": 131,
                                "column": 39
                              },
                              "end": {
                                "line": 131,
                                "column": 94
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5631,
                              "end": 5663,
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 39
                                },
                                "end": {
                                  "line": 131,
                                  "column": 71
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5631,
                                "end": 5648,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 56
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5631,
                                  "end": 5646,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 54
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5631,
                                    "end": 5640,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 48
                                      }
                                    },
                                    "name": "centerDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5641,
                                    "end": 5646,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 54
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5649,
                                "end": 5663,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 57
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 71
                                  }
                                },
                                "name": "multiplyScalar"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "BinaryExpression",
                                "start": 5664,
                                "end": 5685,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 72
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 93
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 5664,
                                  "end": 5667,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 72
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 75
                                    }
                                  },
                                  "name": "len"
                                },
                                "operator": "/",
                                "right": {
                                  "type": "CallExpression",
                                  "start": 5668,
                                  "end": 5685,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 76
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 93
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 5668,
                                    "end": 5676,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 76
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 84
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 5668,
                                      "end": 5672,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 76
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 80
                                        }
                                      },
                                      "name": "Math"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5673,
                                      "end": 5676,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 81
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 84
                                        }
                                      },
                                      "name": "cos"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "BinaryExpression",
                                      "start": 5677,
                                      "end": 5684,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 85
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 92
                                        }
                                      },
                                      "left": {
                                        "type": "Identifier",
                                        "start": 5677,
                                        "end": 5682,
                                        "loc": {
                                          "start": {
                                            "line": 131,
                                            "column": 85
                                          },
                                          "end": {
                                            "line": 131,
                                            "column": 90
                                          }
                                        },
                                        "name": "alpha"
                                      },
                                      "operator": "/",
                                      "right": {
                                        "type": "Literal",
                                        "start": 5683,
                                        "end": 5684,
                                        "loc": {
                                          "start": {
                                            "line": 131,
                                            "column": 91
                                          },
                                          "end": {
                                            "line": 131,
                                            "column": 92
                                          }
                                        },
                                        "value": 2,
                                        "rawValue": 2,
                                        "raw": "2"
                                      }
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        ]
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " fillet angle < 180 => cos(alpha/2) != 0",
                        "start": 5689,
                        "end": 5731,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 97
                          },
                          "end": {
                            "line": 131,
                            "column": 139
                          }
                        },
                        "range": [
                          5689,
                          5731
                        ]
                      }
                    ]
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 5741,
                    "end": 5977,
                    "loc": {
                      "start": {
                        "line": 132,
                        "column": 8
                      },
                      "end": {
                        "line": 137,
                        "column": 10
                      }
                    },
                    "argument": {
                      "type": "ObjectExpression",
                      "start": 5748,
                      "end": 5976,
                      "loc": {
                        "start": {
                          "line": 132,
                          "column": 15
                        },
                        "end": {
                          "line": 137,
                          "column": 9
                        }
                      },
                      "properties": [
                        {
                          "type": "Property",
                          "start": 5763,
                          "end": 5829,
                          "loc": {
                            "start": {
                              "line": 133,
                              "column": 12
                            },
                            "end": {
                              "line": 133,
                              "column": 78
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5763,
                            "end": 5768,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 12
                              },
                              "end": {
                                "line": 133,
                                "column": 17
                              }
                            },
                            "name": "start",
                            "leadingComments": null
                          },
                          "value": {
                            "type": "CallExpression",
                            "start": 5770,
                            "end": 5829,
                            "loc": {
                              "start": {
                                "line": 133,
                                "column": 19
                              },
                              "end": {
                                "line": 133,
                                "column": 78
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5770,
                              "end": 5791,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 19
                                },
                                "end": {
                                  "line": 133,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5770,
                                "end": 5787,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5770,
                                  "end": 5785,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5770,
                                    "end": 5779,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 28
                                      }
                                    },
                                    "name": "vertexPos"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5780,
                                    "end": 5785,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5788,
                                "end": 5791,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "CallExpression",
                                "start": 5792,
                                "end": 5828,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 77
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5792,
                                  "end": 5823,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 72
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 5792,
                                    "end": 5808,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 57
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 5792,
                                      "end": 5806,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 55
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5792,
                                        "end": 5800,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 49
                                          }
                                        },
                                        "name": "startDir"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5801,
                                        "end": 5806,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 50
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 55
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5809,
                                    "end": 5823,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 72
                                      }
                                    },
                                    "name": "multiplyScalar"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5824,
                                    "end": 5827,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 73
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 76
                                      }
                                    },
                                    "name": "len"
                                  }
                                ]
                              }
                            ]
                          },
                          "kind": "init",
                          "leadingComments": null
                        },
                        {
                          "type": "Property",
                          "start": 5844,
                          "end": 5906,
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 12
                            },
                            "end": {
                              "line": 134,
                              "column": 74
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5844,
                            "end": 5847,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 12
                              },
                              "end": {
                                "line": 134,
                                "column": 15
                              }
                            },
                            "name": "end"
                          },
                          "value": {
                            "type": "CallExpression",
                            "start": 5849,
                            "end": 5906,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 17
                              },
                              "end": {
                                "line": 134,
                                "column": 74
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5849,
                              "end": 5870,
                              "loc": {
                                "start": {
                                  "line": 134,
                                  "column": 17
                                },
                                "end": {
                                  "line": 134,
                                  "column": 38
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5849,
                                "end": 5866,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 34
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5849,
                                  "end": 5864,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5849,
                                    "end": 5858,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 26
                                      }
                                    },
                                    "name": "vertexPos"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5859,
                                    "end": 5864,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 32
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5867,
                                "end": 5870,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 38
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "CallExpression",
                                "start": 5871,
                                "end": 5905,
                                "loc": {
                                  "start": {
                                    "line": 134,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 134,
                                    "column": 73
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5871,
                                  "end": 5900,
                                  "loc": {
                                    "start": {
                                      "line": 134,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 134,
                                      "column": 68
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 5871,
                                    "end": 5885,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 53
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 5871,
                                      "end": 5883,
                                      "loc": {
                                        "start": {
                                          "line": 134,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 134,
                                          "column": 51
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5871,
                                        "end": 5877,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 45
                                          }
                                        },
                                        "name": "endDir"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5878,
                                        "end": 5883,
                                        "loc": {
                                          "start": {
                                            "line": 134,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 134,
                                            "column": 51
                                          }
                                        },
                                        "name": "clone"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5886,
                                    "end": 5900,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 68
                                      }
                                    },
                                    "name": "multiplyScalar"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5901,
                                    "end": 5904,
                                    "loc": {
                                      "start": {
                                        "line": 134,
                                        "column": 69
                                      },
                                      "end": {
                                        "line": 134,
                                        "column": 72
                                      }
                                    },
                                    "name": "len"
                                  }
                                ]
                              }
                            ]
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 5921,
                          "end": 5935,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 12
                            },
                            "end": {
                              "line": 135,
                              "column": 26
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5921,
                            "end": 5927,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 12
                              },
                              "end": {
                                "line": 135,
                                "column": 18
                              }
                            },
                            "name": "center"
                          },
                          "value": {
                            "type": "Identifier",
                            "start": 5929,
                            "end": 5935,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 20
                              },
                              "end": {
                                "line": 135,
                                "column": 26
                              }
                            },
                            "name": "center"
                          },
                          "kind": "init"
                        },
                        {
                          "type": "Property",
                          "start": 5950,
                          "end": 5965,
                          "loc": {
                            "start": {
                              "line": 136,
                              "column": 12
                            },
                            "end": {
                              "line": 136,
                              "column": 27
                            }
                          },
                          "method": false,
                          "shorthand": false,
                          "computed": false,
                          "key": {
                            "type": "Identifier",
                            "start": 5950,
                            "end": 5959,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 12
                              },
                              "end": {
                                "line": 136,
                                "column": 21
                              }
                            },
                            "name": "clockwise"
                          },
                          "value": {
                            "type": "Literal",
                            "start": 5961,
                            "end": 5965,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 23
                              },
                              "end": {
                                "line": 136,
                                "column": 27
                              }
                            },
                            "value": true,
                            "rawValue": true,
                            "raw": "true"
                          },
                          "kind": "init"
                        }
                      ],
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " fillet angle < 180 => cos(alpha/2) != 0",
                        "start": 5689,
                        "end": 5731,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 97
                          },
                          "end": {
                            "line": 131,
                            "column": 139
                          }
                        },
                        "range": [
                          5689,
                          5731
                        ]
                      }
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 5994,
              "end": 6043,
              "loc": {
                "start": {
                  "line": 141,
                  "column": 4
                },
                "end": {
                  "line": 141,
                  "column": 53
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 5998,
                  "end": 6042,
                  "loc": {
                    "start": {
                      "line": 141,
                      "column": 8
                    },
                    "end": {
                      "line": 141,
                      "column": 52
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 5998,
                    "end": 6007,
                    "loc": {
                      "start": {
                        "line": 141,
                        "column": 8
                      },
                      "end": {
                        "line": 141,
                        "column": 17
                      }
                    },
                    "name": "middleNew"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 6010,
                    "end": 6042,
                    "loc": {
                      "start": {
                        "line": 141,
                        "column": 20
                      },
                      "end": {
                        "line": 141,
                        "column": 52
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 6010,
                      "end": 6031,
                      "loc": {
                        "start": {
                          "line": 141,
                          "column": 20
                        },
                        "end": {
                          "line": 141,
                          "column": 41
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 6010,
                        "end": 6027,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 20
                          },
                          "end": {
                            "line": 141,
                            "column": 37
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 6010,
                          "end": 6025,
                          "loc": {
                            "start": {
                              "line": 141,
                              "column": 20
                            },
                            "end": {
                              "line": 141,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 6010,
                            "end": 6019,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 20
                              },
                              "end": {
                                "line": 141,
                                "column": 29
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 6020,
                            "end": 6025,
                            "loc": {
                              "start": {
                                "line": 141,
                                "column": 30
                              },
                              "end": {
                                "line": 141,
                                "column": 35
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6028,
                        "end": 6031,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 38
                          },
                          "end": {
                            "line": 141,
                            "column": 41
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 6032,
                        "end": 6041,
                        "loc": {
                          "start": {
                            "line": 141,
                            "column": 42
                          },
                          "end": {
                            "line": 141,
                            "column": 51
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6051,
              "end": 6098,
              "loc": {
                "start": {
                  "line": 143,
                  "column": 4
                },
                "end": {
                  "line": 143,
                  "column": 51
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6055,
                  "end": 6097,
                  "loc": {
                    "start": {
                      "line": 143,
                      "column": 8
                    },
                    "end": {
                      "line": 143,
                      "column": 50
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6055,
                    "end": 6062,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 8
                      },
                      "end": {
                        "line": 143,
                        "column": 15
                      }
                    },
                    "name": "sinA2Sq"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 6065,
                    "end": 6097,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 18
                      },
                      "end": {
                        "line": 143,
                        "column": 50
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 6065,
                      "end": 6073,
                      "loc": {
                        "start": {
                          "line": 143,
                          "column": 18
                        },
                        "end": {
                          "line": 143,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6065,
                        "end": 6069,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 18
                          },
                          "end": {
                            "line": 143,
                            "column": 22
                          }
                        },
                        "name": "Math"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6070,
                        "end": 6073,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 23
                          },
                          "end": {
                            "line": 143,
                            "column": 26
                          }
                        },
                        "name": "pow"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 6074,
                        "end": 6093,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 27
                          },
                          "end": {
                            "line": 143,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 6074,
                          "end": 6082,
                          "loc": {
                            "start": {
                              "line": 143,
                              "column": 27
                            },
                            "end": {
                              "line": 143,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 6074,
                            "end": 6078,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 27
                              },
                              "end": {
                                "line": 143,
                                "column": 31
                              }
                            },
                            "name": "Math"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 6079,
                            "end": 6082,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 32
                              },
                              "end": {
                                "line": 143,
                                "column": 35
                              }
                            },
                            "name": "sin"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "BinaryExpression",
                            "start": 6083,
                            "end": 6092,
                            "loc": {
                              "start": {
                                "line": 143,
                                "column": 36
                              },
                              "end": {
                                "line": 143,
                                "column": 45
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 6083,
                              "end": 6088,
                              "loc": {
                                "start": {
                                  "line": 143,
                                  "column": 36
                                },
                                "end": {
                                  "line": 143,
                                  "column": 41
                                }
                              },
                              "name": "alpha"
                            },
                            "operator": "/",
                            "right": {
                              "type": "Literal",
                              "start": 6091,
                              "end": 6092,
                              "loc": {
                                "start": {
                                  "line": 143,
                                  "column": 44
                                },
                                "end": {
                                  "line": 143,
                                  "column": 45
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            }
                          }
                        ]
                      },
                      {
                        "type": "Literal",
                        "start": 6095,
                        "end": 6096,
                        "loc": {
                          "start": {
                            "line": 143,
                            "column": 48
                          },
                          "end": {
                            "line": 143,
                            "column": 49
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6104,
              "end": 6130,
              "loc": {
                "start": {
                  "line": 144,
                  "column": 4
                },
                "end": {
                  "line": 144,
                  "column": 30
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6108,
                  "end": 6129,
                  "loc": {
                    "start": {
                      "line": 144,
                      "column": 8
                    },
                    "end": {
                      "line": 144,
                      "column": 29
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6108,
                    "end": 6115,
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 8
                      },
                      "end": {
                        "line": 144,
                        "column": 15
                      }
                    },
                    "name": "cosA2Sq"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 6118,
                    "end": 6129,
                    "loc": {
                      "start": {
                        "line": 144,
                        "column": 18
                      },
                      "end": {
                        "line": 144,
                        "column": 29
                      }
                    },
                    "left": {
                      "type": "Literal",
                      "start": 6118,
                      "end": 6119,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 18
                        },
                        "end": {
                          "line": 144,
                          "column": 19
                        }
                      },
                      "value": 1,
                      "rawValue": 1,
                      "raw": "1"
                    },
                    "operator": "-",
                    "right": {
                      "type": "Identifier",
                      "start": 6122,
                      "end": 6129,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 22
                        },
                        "end": {
                          "line": 144,
                          "column": 29
                        }
                      },
                      "name": "sinA2Sq"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6138,
              "end": 6168,
              "loc": {
                "start": {
                  "line": 146,
                  "column": 4
                },
                "end": {
                  "line": 146,
                  "column": 34
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6142,
                  "end": 6167,
                  "loc": {
                    "start": {
                      "line": 146,
                      "column": 8
                    },
                    "end": {
                      "line": 146,
                      "column": 33
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6142,
                    "end": 6144,
                    "loc": {
                      "start": {
                        "line": 146,
                        "column": 8
                      },
                      "end": {
                        "line": 146,
                        "column": 10
                      }
                    },
                    "name": "A0"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 6147,
                    "end": 6167,
                    "loc": {
                      "start": {
                        "line": 146,
                        "column": 13
                      },
                      "end": {
                        "line": 146,
                        "column": 33
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 6147,
                      "end": 6165,
                      "loc": {
                        "start": {
                          "line": 146,
                          "column": 13
                        },
                        "end": {
                          "line": 146,
                          "column": 31
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6147,
                        "end": 6156,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 13
                          },
                          "end": {
                            "line": 146,
                            "column": 22
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6157,
                        "end": 6165,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 23
                          },
                          "end": {
                            "line": 146,
                            "column": 31
                          }
                        },
                        "name": "lengthSq"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6174,
              "end": 6201,
              "loc": {
                "start": {
                  "line": 147,
                  "column": 4
                },
                "end": {
                  "line": 147,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6178,
                  "end": 6200,
                  "loc": {
                    "start": {
                      "line": 147,
                      "column": 8
                    },
                    "end": {
                      "line": 147,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6178,
                    "end": 6180,
                    "loc": {
                      "start": {
                        "line": 147,
                        "column": 8
                      },
                      "end": {
                        "line": 147,
                        "column": 10
                      }
                    },
                    "name": "A1"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 6183,
                    "end": 6200,
                    "loc": {
                      "start": {
                        "line": 147,
                        "column": 13
                      },
                      "end": {
                        "line": 147,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 6183,
                      "end": 6186,
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 13
                        },
                        "end": {
                          "line": 147,
                          "column": 16
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "Literal",
                        "start": 6185,
                        "end": 6186,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 15
                          },
                          "end": {
                            "line": 147,
                            "column": 16
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 6189,
                      "end": 6200,
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 19
                        },
                        "end": {
                          "line": 147,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6189,
                        "end": 6198,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 19
                          },
                          "end": {
                            "line": 147,
                            "column": 28
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6199,
                        "end": 6200,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 29
                          },
                          "end": {
                            "line": 147,
                            "column": 30
                          }
                        },
                        "name": "x"
                      },
                      "computed": false
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 6207,
              "end": 6234,
              "loc": {
                "start": {
                  "line": 148,
                  "column": 4
                },
                "end": {
                  "line": 148,
                  "column": 31
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 6211,
                  "end": 6233,
                  "loc": {
                    "start": {
                      "line": 148,
                      "column": 8
                    },
                    "end": {
                      "line": 148,
                      "column": 30
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 6211,
                    "end": 6213,
                    "loc": {
                      "start": {
                        "line": 148,
                        "column": 8
                      },
                      "end": {
                        "line": 148,
                        "column": 10
                      }
                    },
                    "name": "A2"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 6216,
                    "end": 6233,
                    "loc": {
                      "start": {
                        "line": 148,
                        "column": 13
                      },
                      "end": {
                        "line": 148,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "UnaryExpression",
                      "start": 6216,
                      "end": 6219,
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 13
                        },
                        "end": {
                          "line": 148,
                          "column": 16
                        }
                      },
                      "operator": "-",
                      "prefix": true,
                      "argument": {
                        "type": "Literal",
                        "start": 6218,
                        "end": 6219,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 15
                          },
                          "end": {
                            "line": 148,
                            "column": 16
                          }
                        },
                        "value": 2,
                        "rawValue": 2,
                        "raw": "2"
                      }
                    },
                    "operator": "*",
                    "right": {
                      "type": "MemberExpression",
                      "start": 6222,
                      "end": 6233,
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 19
                        },
                        "end": {
                          "line": 148,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 6222,
                        "end": 6231,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 19
                          },
                          "end": {
                            "line": 148,
                            "column": 28
                          }
                        },
                        "name": "middleNew"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 6232,
                        "end": 6233,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 29
                          },
                          "end": {
                            "line": 148,
                            "column": 30
                          }
                        },
                        "name": "y"
                      },
                      "computed": false
                    }
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "if (centerDir.x === 0) {",
                  "start": 6242,
                  "end": 6268,
                  "loc": {
                    "start": {
                      "line": 150,
                      "column": 4
                    },
                    "end": {
                      "line": 150,
                      "column": 30
                    }
                  },
                  "range": [
                    6242,
                    6268
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var sign = centerDir.dot(new THREE.Vector3(0,1,0));",
                  "start": 6274,
                  "end": 6331,
                  "loc": {
                    "start": {
                      "line": 151,
                      "column": 4
                    },
                    "end": {
                      "line": 151,
                      "column": 61
                    }
                  },
                  "range": [
                    6274,
                    6331
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var discr = Math.pow(A2, 2) - 4 * cosA2Sq * A0;",
                  "start": 6337,
                  "end": 6390,
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 4
                    },
                    "end": {
                      "line": 152,
                      "column": 57
                    }
                  },
                  "range": [
                    6337,
                    6390
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var Oy = (-A2 + sign * Math.sqrt(discr)) / (2 * cosA2Sq);",
                  "start": 6396,
                  "end": 6459,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 4
                    },
                    "end": {
                      "line": 153,
                      "column": 67
                    }
                  },
                  "range": [
                    6396,
                    6459
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "",
                  "start": 6465,
                  "end": 6467,
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 4
                    },
                    "end": {
                      "line": 154,
                      "column": 6
                    }
                  },
                  "range": [
                    6465,
                    6467
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.x = 0;",
                  "start": 6473,
                  "end": 6492,
                  "loc": {
                    "start": {
                      "line": 155,
                      "column": 4
                    },
                    "end": {
                      "line": 155,
                      "column": 23
                    }
                  },
                  "range": [
                    6473,
                    6492
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.y = Oy;",
                  "start": 6498,
                  "end": 6518,
                  "loc": {
                    "start": {
                      "line": 156,
                      "column": 4
                    },
                    "end": {
                      "line": 156,
                      "column": 24
                    }
                  },
                  "range": [
                    6498,
                    6518
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "} else",
                  "start": 6524,
                  "end": 6532,
                  "loc": {
                    "start": {
                      "line": 157,
                      "column": 4
                    },
                    "end": {
                      "line": 157,
                      "column": 12
                    }
                  },
                  "range": [
                    6524,
                    6532
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 6538,
              "end": 7223,
              "loc": {
                "start": {
                  "line": 158,
                  "column": 4
                },
                "end": {
                  "line": 177,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 6542,
                "end": 6559,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 8
                  },
                  "end": {
                    "line": 158,
                    "column": 25
                  }
                },
                "left": {
                  "type": "MemberExpression",
                  "start": 6542,
                  "end": 6553,
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 8
                    },
                    "end": {
                      "line": 158,
                      "column": 19
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 6542,
                    "end": 6551,
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 8
                      },
                      "end": {
                        "line": 158,
                        "column": 17
                      }
                    },
                    "name": "centerDir",
                    "leadingComments": null
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 6552,
                    "end": 6553,
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 18
                      },
                      "end": {
                        "line": 158,
                        "column": 19
                      }
                    },
                    "name": "y"
                  },
                  "computed": false,
                  "leadingComments": null
                },
                "operator": "===",
                "right": {
                  "type": "Literal",
                  "start": 6558,
                  "end": 6559,
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 24
                    },
                    "end": {
                      "line": 158,
                      "column": 25
                    }
                  },
                  "value": 0,
                  "rawValue": 0,
                  "raw": "0"
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 6561,
                "end": 6803,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 27
                  },
                  "end": {
                    "line": 165,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 6572,
                    "end": 6623,
                    "loc": {
                      "start": {
                        "line": 159,
                        "column": 8
                      },
                      "end": {
                        "line": 159,
                        "column": 59
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6576,
                        "end": 6622,
                        "loc": {
                          "start": {
                            "line": 159,
                            "column": 12
                          },
                          "end": {
                            "line": 159,
                            "column": 58
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6576,
                          "end": 6580,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 12
                            },
                            "end": {
                              "line": 159,
                              "column": 16
                            }
                          },
                          "name": "sign"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 6583,
                          "end": 6622,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 19
                            },
                            "end": {
                              "line": 159,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 6583,
                            "end": 6596,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 19
                              },
                              "end": {
                                "line": 159,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6583,
                              "end": 6592,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 19
                                },
                                "end": {
                                  "line": 159,
                                  "column": 28
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6593,
                              "end": 6596,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 29
                                },
                                "end": {
                                  "line": 159,
                                  "column": 32
                                }
                              },
                              "name": "dot"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 6597,
                              "end": 6621,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 33
                                },
                                "end": {
                                  "line": 159,
                                  "column": 57
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 6601,
                                "end": 6614,
                                "loc": {
                                  "start": {
                                    "line": 159,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 159,
                                    "column": 50
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 6601,
                                  "end": 6606,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 42
                                    }
                                  },
                                  "name": "THREE"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 6607,
                                  "end": 6614,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 50
                                    }
                                  },
                                  "name": "Vector3"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "start": 6615,
                                  "end": 6616,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 52
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6617,
                                  "end": 6618,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 54
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6619,
                                  "end": 6620,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 56
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6633,
                    "end": 6680,
                    "loc": {
                      "start": {
                        "line": 160,
                        "column": 8
                      },
                      "end": {
                        "line": 160,
                        "column": 55
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6637,
                        "end": 6679,
                        "loc": {
                          "start": {
                            "line": 160,
                            "column": 12
                          },
                          "end": {
                            "line": 160,
                            "column": 54
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6637,
                          "end": 6642,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 12
                            },
                            "end": {
                              "line": 160,
                              "column": 17
                            }
                          },
                          "name": "discr"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6645,
                          "end": 6679,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 20
                            },
                            "end": {
                              "line": 160,
                              "column": 54
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 6645,
                            "end": 6660,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 20
                              },
                              "end": {
                                "line": 160,
                                "column": 35
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 6645,
                              "end": 6653,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 20
                                },
                                "end": {
                                  "line": 160,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 6645,
                                "end": 6649,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 24
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 6650,
                                "end": 6653,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 28
                                  }
                                },
                                "name": "pow"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 6654,
                                "end": 6656,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 31
                                  }
                                },
                                "name": "A1"
                              },
                              {
                                "type": "Literal",
                                "start": 6658,
                                "end": 6659,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 34
                                  }
                                },
                                "value": 2,
                                "rawValue": 2,
                                "raw": "2"
                              }
                            ]
                          },
                          "operator": "-",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6663,
                            "end": 6679,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 38
                              },
                              "end": {
                                "line": 160,
                                "column": 54
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 6663,
                              "end": 6674,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 38
                                },
                                "end": {
                                  "line": 160,
                                  "column": 49
                                }
                              },
                              "left": {
                                "type": "Literal",
                                "start": 6663,
                                "end": 6664,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 39
                                  }
                                },
                                "value": 4,
                                "rawValue": 4,
                                "raw": "4"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 6667,
                                "end": 6674,
                                "loc": {
                                  "start": {
                                    "line": 160,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 160,
                                    "column": 49
                                  }
                                },
                                "name": "cosA2Sq"
                              }
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6677,
                              "end": 6679,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 52
                                },
                                "end": {
                                  "line": 160,
                                  "column": 54
                                }
                              },
                              "name": "A0"
                            }
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6690,
                    "end": 6747,
                    "loc": {
                      "start": {
                        "line": 161,
                        "column": 8
                      },
                      "end": {
                        "line": 161,
                        "column": 65
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6694,
                        "end": 6746,
                        "loc": {
                          "start": {
                            "line": 161,
                            "column": 12
                          },
                          "end": {
                            "line": 161,
                            "column": 64
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6694,
                          "end": 6696,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 12
                            },
                            "end": {
                              "line": 161,
                              "column": 14
                            }
                          },
                          "name": "Ox"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6699,
                          "end": 6746,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 17
                            },
                            "end": {
                              "line": 161,
                              "column": 64
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6700,
                            "end": 6729,
                            "loc": {
                              "start": {
                                "line": 161,
                                "column": 18
                              },
                              "end": {
                                "line": 161,
                                "column": 47
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 6700,
                              "end": 6703,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 18
                                },
                                "end": {
                                  "line": 161,
                                  "column": 21
                                }
                              },
                              "operator": "-",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 6701,
                                "end": 6703,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 21
                                  }
                                },
                                "name": "A1"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 6706,
                              "end": 6729,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 24
                                },
                                "end": {
                                  "line": 161,
                                  "column": 47
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 6706,
                                "end": 6710,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 28
                                  }
                                },
                                "name": "sign"
                              },
                              "operator": "*",
                              "right": {
                                "type": "CallExpression",
                                "start": 6713,
                                "end": 6729,
                                "loc": {
                                  "start": {
                                    "line": 161,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 161,
                                    "column": 47
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 6713,
                                  "end": 6722,
                                  "loc": {
                                    "start": {
                                      "line": 161,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 161,
                                      "column": 40
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 6713,
                                    "end": 6717,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 35
                                      }
                                    },
                                    "name": "Math"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 6718,
                                    "end": 6722,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 40
                                      }
                                    },
                                    "name": "sqrt"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 6723,
                                    "end": 6728,
                                    "loc": {
                                      "start": {
                                        "line": 161,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 161,
                                        "column": 46
                                      }
                                    },
                                    "name": "discr"
                                  }
                                ]
                              }
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 6734,
                            "end": 6745,
                            "loc": {
                              "start": {
                                "line": 161,
                                "column": 52
                              },
                              "end": {
                                "line": 161,
                                "column": 63
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 6734,
                              "end": 6735,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 52
                                },
                                "end": {
                                  "line": 161,
                                  "column": 53
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 6738,
                              "end": 6745,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 56
                                },
                                "end": {
                                  "line": 161,
                                  "column": 63
                                }
                              },
                              "name": "cosA2Sq"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 6759,
                    "end": 6773,
                    "loc": {
                      "start": {
                        "line": 163,
                        "column": 8
                      },
                      "end": {
                        "line": 163,
                        "column": 22
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 6759,
                      "end": 6772,
                      "loc": {
                        "start": {
                          "line": 163,
                          "column": 8
                        },
                        "end": {
                          "line": 163,
                          "column": 21
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 6759,
                        "end": 6767,
                        "loc": {
                          "start": {
                            "line": 163,
                            "column": 8
                          },
                          "end": {
                            "line": 163,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 6759,
                          "end": 6765,
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 8
                            },
                            "end": {
                              "line": 163,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6766,
                          "end": 6767,
                          "loc": {
                            "start": {
                              "line": 163,
                              "column": 15
                            },
                            "end": {
                              "line": 163,
                              "column": 16
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 6770,
                        "end": 6772,
                        "loc": {
                          "start": {
                            "line": 163,
                            "column": 19
                          },
                          "end": {
                            "line": 163,
                            "column": 21
                          }
                        },
                        "name": "Ox"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 6783,
                    "end": 6796,
                    "loc": {
                      "start": {
                        "line": 164,
                        "column": 8
                      },
                      "end": {
                        "line": 164,
                        "column": 21
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 6783,
                      "end": 6795,
                      "loc": {
                        "start": {
                          "line": 164,
                          "column": 8
                        },
                        "end": {
                          "line": 164,
                          "column": 20
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 6783,
                        "end": 6791,
                        "loc": {
                          "start": {
                            "line": 164,
                            "column": 8
                          },
                          "end": {
                            "line": 164,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 6783,
                          "end": 6789,
                          "loc": {
                            "start": {
                              "line": 164,
                              "column": 8
                            },
                            "end": {
                              "line": 164,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6790,
                          "end": 6791,
                          "loc": {
                            "start": {
                              "line": 164,
                              "column": 15
                            },
                            "end": {
                              "line": 164,
                              "column": 16
                            }
                          },
                          "name": "y"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Literal",
                        "start": 6794,
                        "end": 6795,
                        "loc": {
                          "start": {
                            "line": 164,
                            "column": 19
                          },
                          "end": {
                            "line": 164,
                            "column": 20
                          }
                        },
                        "value": 0,
                        "rawValue": 0,
                        "raw": "0"
                      }
                    }
                  }
                ]
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 6809,
                "end": 7223,
                "loc": {
                  "start": {
                    "line": 165,
                    "column": 11
                  },
                  "end": {
                    "line": 177,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 6820,
                    "end": 6871,
                    "loc": {
                      "start": {
                        "line": 166,
                        "column": 8
                      },
                      "end": {
                        "line": 166,
                        "column": 59
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6824,
                        "end": 6870,
                        "loc": {
                          "start": {
                            "line": 166,
                            "column": 12
                          },
                          "end": {
                            "line": 166,
                            "column": 58
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6824,
                          "end": 6828,
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 12
                            },
                            "end": {
                              "line": 166,
                              "column": 16
                            }
                          },
                          "name": "sign"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 6831,
                          "end": 6870,
                          "loc": {
                            "start": {
                              "line": 166,
                              "column": 19
                            },
                            "end": {
                              "line": 166,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 6831,
                            "end": 6844,
                            "loc": {
                              "start": {
                                "line": 166,
                                "column": 19
                              },
                              "end": {
                                "line": 166,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6831,
                              "end": 6840,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 19
                                },
                                "end": {
                                  "line": 166,
                                  "column": 28
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6841,
                              "end": 6844,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 29
                                },
                                "end": {
                                  "line": 166,
                                  "column": 32
                                }
                              },
                              "name": "dot"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 6845,
                              "end": 6869,
                              "loc": {
                                "start": {
                                  "line": 166,
                                  "column": 33
                                },
                                "end": {
                                  "line": 166,
                                  "column": 57
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 6849,
                                "end": 6862,
                                "loc": {
                                  "start": {
                                    "line": 166,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 166,
                                    "column": 50
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 6849,
                                  "end": 6854,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 42
                                    }
                                  },
                                  "name": "THREE"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 6855,
                                  "end": 6862,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 50
                                    }
                                  },
                                  "name": "Vector3"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "start": 6863,
                                  "end": 6864,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 52
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6865,
                                  "end": 6866,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 54
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                },
                                {
                                  "type": "Literal",
                                  "start": 6867,
                                  "end": 6868,
                                  "loc": {
                                    "start": {
                                      "line": 166,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 166,
                                      "column": 56
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6881,
                    "end": 6924,
                    "loc": {
                      "start": {
                        "line": 167,
                        "column": 8
                      },
                      "end": {
                        "line": 167,
                        "column": 51
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6885,
                        "end": 6923,
                        "loc": {
                          "start": {
                            "line": 167,
                            "column": 12
                          },
                          "end": {
                            "line": 167,
                            "column": 50
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6885,
                          "end": 6895,
                          "loc": {
                            "start": {
                              "line": 167,
                              "column": 12
                            },
                            "end": {
                              "line": 167,
                              "column": 22
                            }
                          },
                          "name": "proportion"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6898,
                          "end": 6923,
                          "loc": {
                            "start": {
                              "line": 167,
                              "column": 25
                            },
                            "end": {
                              "line": 167,
                              "column": 50
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 6898,
                            "end": 6909,
                            "loc": {
                              "start": {
                                "line": 167,
                                "column": 25
                              },
                              "end": {
                                "line": 167,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6898,
                              "end": 6907,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 25
                                },
                                "end": {
                                  "line": 167,
                                  "column": 34
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6908,
                              "end": 6909,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 35
                                },
                                "end": {
                                  "line": 167,
                                  "column": 36
                                }
                              },
                              "name": "x"
                            },
                            "computed": false
                          },
                          "operator": "/",
                          "right": {
                            "type": "MemberExpression",
                            "start": 6912,
                            "end": 6923,
                            "loc": {
                              "start": {
                                "line": 167,
                                "column": 39
                              },
                              "end": {
                                "line": 167,
                                "column": 50
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6912,
                              "end": 6921,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 39
                                },
                                "end": {
                                  "line": 167,
                                  "column": 48
                                }
                              },
                              "name": "centerDir"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6922,
                              "end": 6923,
                              "loc": {
                                "start": {
                                  "line": 167,
                                  "column": 49
                                },
                                "end": {
                                  "line": 167,
                                  "column": 50
                                }
                              },
                              "name": "y"
                            },
                            "computed": false
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6934,
                    "end": 6982,
                    "loc": {
                      "start": {
                        "line": 168,
                        "column": 8
                      },
                      "end": {
                        "line": 168,
                        "column": 56
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6938,
                        "end": 6981,
                        "loc": {
                          "start": {
                            "line": 168,
                            "column": 12
                          },
                          "end": {
                            "line": 168,
                            "column": 55
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6938,
                          "end": 6939,
                          "loc": {
                            "start": {
                              "line": 168,
                              "column": 12
                            },
                            "end": {
                              "line": 168,
                              "column": 13
                            }
                          },
                          "name": "A"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 6942,
                          "end": 6981,
                          "loc": {
                            "start": {
                              "line": 168,
                              "column": 16
                            },
                            "end": {
                              "line": 168,
                              "column": 55
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 6943,
                            "end": 6970,
                            "loc": {
                              "start": {
                                "line": 168,
                                "column": 17
                              },
                              "end": {
                                "line": 168,
                                "column": 44
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 6943,
                              "end": 6966,
                              "loc": {
                                "start": {
                                  "line": 168,
                                  "column": 17
                                },
                                "end": {
                                  "line": 168,
                                  "column": 40
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 6943,
                                "end": 6953,
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 27
                                  }
                                },
                                "name": "proportion"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 6956,
                                "end": 6966,
                                "loc": {
                                  "start": {
                                    "line": 168,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 168,
                                    "column": 40
                                  }
                                },
                                "name": "proportion"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "Literal",
                              "start": 6969,
                              "end": 6970,
                              "loc": {
                                "start": {
                                  "line": 168,
                                  "column": 43
                                },
                                "end": {
                                  "line": 168,
                                  "column": 44
                                }
                              },
                              "value": 1,
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "*",
                          "right": {
                            "type": "Identifier",
                            "start": 6974,
                            "end": 6981,
                            "loc": {
                              "start": {
                                "line": 168,
                                "column": 48
                              },
                              "end": {
                                "line": 168,
                                "column": 55
                              }
                            },
                            "name": "cosA2Sq"
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 6992,
                    "end": 7021,
                    "loc": {
                      "start": {
                        "line": 169,
                        "column": 8
                      },
                      "end": {
                        "line": 169,
                        "column": 37
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 6996,
                        "end": 7020,
                        "loc": {
                          "start": {
                            "line": 169,
                            "column": 12
                          },
                          "end": {
                            "line": 169,
                            "column": 36
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 6996,
                          "end": 6997,
                          "loc": {
                            "start": {
                              "line": 169,
                              "column": 12
                            },
                            "end": {
                              "line": 169,
                              "column": 13
                            }
                          },
                          "name": "B"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 7000,
                          "end": 7020,
                          "loc": {
                            "start": {
                              "line": 169,
                              "column": 16
                            },
                            "end": {
                              "line": 169,
                              "column": 36
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 7000,
                            "end": 7015,
                            "loc": {
                              "start": {
                                "line": 169,
                                "column": 16
                              },
                              "end": {
                                "line": 169,
                                "column": 31
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 7000,
                              "end": 7002,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 16
                                },
                                "end": {
                                  "line": 169,
                                  "column": 18
                                }
                              },
                              "name": "A1"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 7005,
                              "end": 7015,
                              "loc": {
                                "start": {
                                  "line": 169,
                                  "column": 21
                                },
                                "end": {
                                  "line": 169,
                                  "column": 31
                                }
                              },
                              "name": "proportion"
                            }
                          },
                          "operator": "+",
                          "right": {
                            "type": "Identifier",
                            "start": 7018,
                            "end": 7020,
                            "loc": {
                              "start": {
                                "line": 169,
                                "column": 34
                              },
                              "end": {
                                "line": 169,
                                "column": 36
                              }
                            },
                            "name": "A2"
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 7031,
                    "end": 7042,
                    "loc": {
                      "start": {
                        "line": 170,
                        "column": 8
                      },
                      "end": {
                        "line": 170,
                        "column": 19
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 7035,
                        "end": 7041,
                        "loc": {
                          "start": {
                            "line": 170,
                            "column": 12
                          },
                          "end": {
                            "line": 170,
                            "column": 18
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 7035,
                          "end": 7036,
                          "loc": {
                            "start": {
                              "line": 170,
                              "column": 12
                            },
                            "end": {
                              "line": 170,
                              "column": 13
                            }
                          },
                          "name": "C"
                        },
                        "init": {
                          "type": "Identifier",
                          "start": 7039,
                          "end": 7041,
                          "loc": {
                            "start": {
                              "line": 170,
                              "column": 16
                            },
                            "end": {
                              "line": 170,
                              "column": 18
                            }
                          },
                          "name": "A0"
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 7054,
                    "end": 7093,
                    "loc": {
                      "start": {
                        "line": 172,
                        "column": 8
                      },
                      "end": {
                        "line": 172,
                        "column": 47
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 7058,
                        "end": 7092,
                        "loc": {
                          "start": {
                            "line": 172,
                            "column": 12
                          },
                          "end": {
                            "line": 172,
                            "column": 46
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 7058,
                          "end": 7063,
                          "loc": {
                            "start": {
                              "line": 172,
                              "column": 12
                            },
                            "end": {
                              "line": 172,
                              "column": 17
                            }
                          },
                          "name": "discr"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 7066,
                          "end": 7092,
                          "loc": {
                            "start": {
                              "line": 172,
                              "column": 20
                            },
                            "end": {
                              "line": 172,
                              "column": 46
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 7066,
                            "end": 7080,
                            "loc": {
                              "start": {
                                "line": 172,
                                "column": 20
                              },
                              "end": {
                                "line": 172,
                                "column": 34
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 7066,
                              "end": 7074,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 20
                                },
                                "end": {
                                  "line": 172,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 7066,
                                "end": 7070,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 24
                                  }
                                },
                                "name": "Math"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 7071,
                                "end": 7074,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 28
                                  }
                                },
                                "name": "pow"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 7075,
                                "end": 7076,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 30
                                  }
                                },
                                "name": "B"
                              },
                              {
                                "type": "Literal",
                                "start": 7078,
                                "end": 7079,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 33
                                  }
                                },
                                "value": 2,
                                "rawValue": 2,
                                "raw": "2"
                              }
                            ]
                          },
                          "operator": "-",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 7083,
                            "end": 7092,
                            "loc": {
                              "start": {
                                "line": 172,
                                "column": 37
                              },
                              "end": {
                                "line": 172,
                                "column": 46
                              }
                            },
                            "left": {
                              "type": "BinaryExpression",
                              "start": 7083,
                              "end": 7088,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 37
                                },
                                "end": {
                                  "line": 172,
                                  "column": 42
                                }
                              },
                              "left": {
                                "type": "Literal",
                                "start": 7083,
                                "end": 7084,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 38
                                  }
                                },
                                "value": 4,
                                "rawValue": 4,
                                "raw": "4"
                              },
                              "operator": "*",
                              "right": {
                                "type": "Identifier",
                                "start": 7087,
                                "end": 7088,
                                "loc": {
                                  "start": {
                                    "line": 172,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 172,
                                    "column": 42
                                  }
                                },
                                "name": "A"
                              }
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 7091,
                              "end": 7092,
                              "loc": {
                                "start": {
                                  "line": 172,
                                  "column": 45
                                },
                                "end": {
                                  "line": 172,
                                  "column": 46
                                }
                              },
                              "name": "C"
                            }
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 7103,
                    "end": 7153,
                    "loc": {
                      "start": {
                        "line": 173,
                        "column": 8
                      },
                      "end": {
                        "line": 173,
                        "column": 58
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 7107,
                        "end": 7152,
                        "loc": {
                          "start": {
                            "line": 173,
                            "column": 12
                          },
                          "end": {
                            "line": 173,
                            "column": 57
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 7107,
                          "end": 7109,
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 12
                            },
                            "end": {
                              "line": 173,
                              "column": 14
                            }
                          },
                          "name": "Oy"
                        },
                        "init": {
                          "type": "BinaryExpression",
                          "start": 7112,
                          "end": 7152,
                          "loc": {
                            "start": {
                              "line": 173,
                              "column": 17
                            },
                            "end": {
                              "line": 173,
                              "column": 57
                            }
                          },
                          "left": {
                            "type": "BinaryExpression",
                            "start": 7113,
                            "end": 7141,
                            "loc": {
                              "start": {
                                "line": 173,
                                "column": 18
                              },
                              "end": {
                                "line": 173,
                                "column": 46
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 7113,
                              "end": 7115,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 18
                                },
                                "end": {
                                  "line": 173,
                                  "column": 20
                                }
                              },
                              "operator": "-",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 7114,
                                "end": 7115,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 20
                                  }
                                },
                                "name": "B"
                              }
                            },
                            "operator": "+",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 7118,
                              "end": 7141,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 23
                                },
                                "end": {
                                  "line": 173,
                                  "column": 46
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 7118,
                                "end": 7122,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 27
                                  }
                                },
                                "name": "sign"
                              },
                              "operator": "*",
                              "right": {
                                "type": "CallExpression",
                                "start": 7125,
                                "end": 7141,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 7125,
                                  "end": 7134,
                                  "loc": {
                                    "start": {
                                      "line": 173,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 173,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 7125,
                                    "end": 7129,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 34
                                      }
                                    },
                                    "name": "Math"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 7130,
                                    "end": 7134,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 39
                                      }
                                    },
                                    "name": "sqrt"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 7135,
                                    "end": 7140,
                                    "loc": {
                                      "start": {
                                        "line": 173,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 173,
                                        "column": 45
                                      }
                                    },
                                    "name": "discr"
                                  }
                                ]
                              }
                            },
                            "parenthesizedExpression": true
                          },
                          "operator": "/",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 7146,
                            "end": 7151,
                            "loc": {
                              "start": {
                                "line": 173,
                                "column": 51
                              },
                              "end": {
                                "line": 173,
                                "column": 56
                              }
                            },
                            "left": {
                              "type": "Literal",
                              "start": 7146,
                              "end": 7147,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 51
                                },
                                "end": {
                                  "line": 173,
                                  "column": 52
                                }
                              },
                              "value": 2,
                              "rawValue": 2,
                              "raw": "2"
                            },
                            "operator": "*",
                            "right": {
                              "type": "Identifier",
                              "start": 7150,
                              "end": 7151,
                              "loc": {
                                "start": {
                                  "line": 173,
                                  "column": 55
                                },
                                "end": {
                                  "line": 173,
                                  "column": 56
                                }
                              },
                              "name": "A"
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      }
                    ],
                    "kind": "var"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 7165,
                    "end": 7192,
                    "loc": {
                      "start": {
                        "line": 175,
                        "column": 8
                      },
                      "end": {
                        "line": 175,
                        "column": 35
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 7165,
                      "end": 7191,
                      "loc": {
                        "start": {
                          "line": 175,
                          "column": 8
                        },
                        "end": {
                          "line": 175,
                          "column": 34
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 7165,
                        "end": 7173,
                        "loc": {
                          "start": {
                            "line": 175,
                            "column": 8
                          },
                          "end": {
                            "line": 175,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7165,
                          "end": 7171,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 8
                            },
                            "end": {
                              "line": 175,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7172,
                          "end": 7173,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 15
                            },
                            "end": {
                              "line": 175,
                              "column": 16
                            }
                          },
                          "name": "x"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "BinaryExpression",
                        "start": 7176,
                        "end": 7191,
                        "loc": {
                          "start": {
                            "line": 175,
                            "column": 19
                          },
                          "end": {
                            "line": 175,
                            "column": 34
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 7176,
                          "end": 7178,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 19
                            },
                            "end": {
                              "line": 175,
                              "column": 21
                            }
                          },
                          "name": "Oy"
                        },
                        "operator": "*",
                        "right": {
                          "type": "Identifier",
                          "start": 7181,
                          "end": 7191,
                          "loc": {
                            "start": {
                              "line": 175,
                              "column": 24
                            },
                            "end": {
                              "line": 175,
                              "column": 34
                            }
                          },
                          "name": "proportion"
                        }
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 7202,
                    "end": 7216,
                    "loc": {
                      "start": {
                        "line": 176,
                        "column": 8
                      },
                      "end": {
                        "line": 176,
                        "column": 22
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 7202,
                      "end": 7215,
                      "loc": {
                        "start": {
                          "line": 176,
                          "column": 8
                        },
                        "end": {
                          "line": 176,
                          "column": 21
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 7202,
                        "end": 7210,
                        "loc": {
                          "start": {
                            "line": 176,
                            "column": 8
                          },
                          "end": {
                            "line": 176,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7202,
                          "end": 7208,
                          "loc": {
                            "start": {
                              "line": 176,
                              "column": 8
                            },
                            "end": {
                              "line": 176,
                              "column": 14
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7209,
                          "end": 7210,
                          "loc": {
                            "start": {
                              "line": 176,
                              "column": 15
                            },
                            "end": {
                              "line": 176,
                              "column": 16
                            }
                          },
                          "name": "y"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 7213,
                        "end": 7215,
                        "loc": {
                          "start": {
                            "line": 176,
                            "column": 19
                          },
                          "end": {
                            "line": 176,
                            "column": 21
                          }
                        },
                        "name": "Oy"
                      }
                    }
                  }
                ]
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "if (centerDir.x === 0) {",
                  "start": 6242,
                  "end": 6268,
                  "loc": {
                    "start": {
                      "line": 150,
                      "column": 4
                    },
                    "end": {
                      "line": 150,
                      "column": 30
                    }
                  },
                  "range": [
                    6242,
                    6268
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var sign = centerDir.dot(new THREE.Vector3(0,1,0));",
                  "start": 6274,
                  "end": 6331,
                  "loc": {
                    "start": {
                      "line": 151,
                      "column": 4
                    },
                    "end": {
                      "line": 151,
                      "column": 61
                    }
                  },
                  "range": [
                    6274,
                    6331
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var discr = Math.pow(A2, 2) - 4 * cosA2Sq * A0;",
                  "start": 6337,
                  "end": 6390,
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 4
                    },
                    "end": {
                      "line": 152,
                      "column": 57
                    }
                  },
                  "range": [
                    6337,
                    6390
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    var Oy = (-A2 + sign * Math.sqrt(discr)) / (2 * cosA2Sq);",
                  "start": 6396,
                  "end": 6459,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 4
                    },
                    "end": {
                      "line": 153,
                      "column": 67
                    }
                  },
                  "range": [
                    6396,
                    6459
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "",
                  "start": 6465,
                  "end": 6467,
                  "loc": {
                    "start": {
                      "line": 154,
                      "column": 4
                    },
                    "end": {
                      "line": 154,
                      "column": 6
                    }
                  },
                  "range": [
                    6465,
                    6467
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.x = 0;",
                  "start": 6473,
                  "end": 6492,
                  "loc": {
                    "start": {
                      "line": 155,
                      "column": 4
                    },
                    "end": {
                      "line": 155,
                      "column": 23
                    }
                  },
                  "range": [
                    6473,
                    6492
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "    center.y = Oy;",
                  "start": 6498,
                  "end": 6518,
                  "loc": {
                    "start": {
                      "line": 156,
                      "column": 4
                    },
                    "end": {
                      "line": 156,
                      "column": 24
                    }
                  },
                  "range": [
                    6498,
                    6518
                  ]
                },
                {
                  "type": "CommentLine",
                  "value": "} else",
                  "start": 6524,
                  "end": 6532,
                  "loc": {
                    "start": {
                      "line": 157,
                      "column": 4
                    },
                    "end": {
                      "line": 157,
                      "column": 12
                    }
                  },
                  "range": [
                    6524,
                    6532
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 7231,
              "end": 7277,
              "loc": {
                "start": {
                  "line": 179,
                  "column": 4
                },
                "end": {
                  "line": 179,
                  "column": 50
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7235,
                  "end": 7276,
                  "loc": {
                    "start": {
                      "line": 179,
                      "column": 8
                    },
                    "end": {
                      "line": 179,
                      "column": 49
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7235,
                    "end": 7238,
                    "loc": {
                      "start": {
                        "line": 179,
                        "column": 8
                      },
                      "end": {
                        "line": 179,
                        "column": 11
                      }
                    },
                    "name": "len"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 7241,
                    "end": 7276,
                    "loc": {
                      "start": {
                        "line": 179,
                        "column": 14
                      },
                      "end": {
                        "line": 179,
                        "column": 49
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 7241,
                      "end": 7256,
                      "loc": {
                        "start": {
                          "line": 179,
                          "column": 14
                        },
                        "end": {
                          "line": 179,
                          "column": 29
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7241,
                        "end": 7254,
                        "loc": {
                          "start": {
                            "line": 179,
                            "column": 14
                          },
                          "end": {
                            "line": 179,
                            "column": 27
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7241,
                          "end": 7247,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 14
                            },
                            "end": {
                              "line": 179,
                              "column": 20
                            }
                          },
                          "name": "center"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7248,
                          "end": 7254,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 21
                            },
                            "end": {
                              "line": 179,
                              "column": 27
                            }
                          },
                          "name": "length"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "operator": "*",
                    "right": {
                      "type": "CallExpression",
                      "start": 7259,
                      "end": 7276,
                      "loc": {
                        "start": {
                          "line": 179,
                          "column": 32
                        },
                        "end": {
                          "line": 179,
                          "column": 49
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7259,
                        "end": 7267,
                        "loc": {
                          "start": {
                            "line": 179,
                            "column": 32
                          },
                          "end": {
                            "line": 179,
                            "column": 40
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 7259,
                          "end": 7263,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 32
                            },
                            "end": {
                              "line": 179,
                              "column": 36
                            }
                          },
                          "name": "Math"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7264,
                          "end": 7267,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 37
                            },
                            "end": {
                              "line": 179,
                              "column": 40
                            }
                          },
                          "name": "cos"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "BinaryExpression",
                          "start": 7268,
                          "end": 7275,
                          "loc": {
                            "start": {
                              "line": 179,
                              "column": 41
                            },
                            "end": {
                              "line": 179,
                              "column": 48
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 7268,
                            "end": 7273,
                            "loc": {
                              "start": {
                                "line": 179,
                                "column": 41
                              },
                              "end": {
                                "line": 179,
                                "column": 46
                              }
                            },
                            "name": "alpha"
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 7274,
                            "end": 7275,
                            "loc": {
                              "start": {
                                "line": 179,
                                "column": 47
                              },
                              "end": {
                                "line": 179,
                                "column": 48
                              }
                            },
                            "value": 2,
                            "rawValue": 2,
                            "raw": "2"
                          }
                        }
                      ]
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ExpressionStatement",
              "start": 7283,
              "end": 7305,
              "loc": {
                "start": {
                  "line": 180,
                  "column": 4
                },
                "end": {
                  "line": 180,
                  "column": 26
                }
              },
              "expression": {
                "type": "CallExpression",
                "start": 7283,
                "end": 7304,
                "loc": {
                  "start": {
                    "line": 180,
                    "column": 4
                  },
                  "end": {
                    "line": 180,
                    "column": 25
                  }
                },
                "callee": {
                  "type": "MemberExpression",
                  "start": 7283,
                  "end": 7293,
                  "loc": {
                    "start": {
                      "line": 180,
                      "column": 4
                    },
                    "end": {
                      "line": 180,
                      "column": 14
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 7283,
                    "end": 7289,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 4
                      },
                      "end": {
                        "line": 180,
                        "column": 10
                      }
                    },
                    "name": "center"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 7290,
                    "end": 7293,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 11
                      },
                      "end": {
                        "line": 180,
                        "column": 14
                      }
                    },
                    "name": "add"
                  },
                  "computed": false
                },
                "arguments": [
                  {
                    "type": "Identifier",
                    "start": 7294,
                    "end": 7303,
                    "loc": {
                      "start": {
                        "line": 180,
                        "column": 15
                      },
                      "end": {
                        "line": 180,
                        "column": 24
                      }
                    },
                    "name": "vertexPos"
                  }
                ]
              }
            },
            {
              "type": "ReturnStatement",
              "start": 7313,
              "end": 7528,
              "loc": {
                "start": {
                  "line": 182,
                  "column": 4
                },
                "end": {
                  "line": 187,
                  "column": 5
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 7320,
                "end": 7528,
                "loc": {
                  "start": {
                    "line": 182,
                    "column": 11
                  },
                  "end": {
                    "line": 187,
                    "column": 5
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 7331,
                    "end": 7397,
                    "loc": {
                      "start": {
                        "line": 183,
                        "column": 8
                      },
                      "end": {
                        "line": 183,
                        "column": 74
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7331,
                      "end": 7336,
                      "loc": {
                        "start": {
                          "line": 183,
                          "column": 8
                        },
                        "end": {
                          "line": 183,
                          "column": 13
                        }
                      },
                      "name": "start"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 7338,
                      "end": 7397,
                      "loc": {
                        "start": {
                          "line": 183,
                          "column": 15
                        },
                        "end": {
                          "line": 183,
                          "column": 74
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7338,
                        "end": 7359,
                        "loc": {
                          "start": {
                            "line": 183,
                            "column": 15
                          },
                          "end": {
                            "line": 183,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 7338,
                          "end": 7355,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 15
                            },
                            "end": {
                              "line": 183,
                              "column": 32
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7338,
                            "end": 7353,
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 15
                              },
                              "end": {
                                "line": 183,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 7338,
                              "end": 7347,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 15
                                },
                                "end": {
                                  "line": 183,
                                  "column": 24
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7348,
                              "end": 7353,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 25
                                },
                                "end": {
                                  "line": 183,
                                  "column": 30
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7356,
                          "end": 7359,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 33
                            },
                            "end": {
                              "line": 183,
                              "column": 36
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 7360,
                          "end": 7396,
                          "loc": {
                            "start": {
                              "line": 183,
                              "column": 37
                            },
                            "end": {
                              "line": 183,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7360,
                            "end": 7391,
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 37
                              },
                              "end": {
                                "line": 183,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 7360,
                              "end": 7376,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 37
                                },
                                "end": {
                                  "line": 183,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 7360,
                                "end": 7374,
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 51
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 7360,
                                  "end": 7368,
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 45
                                    }
                                  },
                                  "name": "startDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 7369,
                                  "end": 7374,
                                  "loc": {
                                    "start": {
                                      "line": 183,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 183,
                                      "column": 51
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7377,
                              "end": 7391,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 54
                                },
                                "end": {
                                  "line": 183,
                                  "column": 68
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 7392,
                              "end": 7395,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 69
                                },
                                "end": {
                                  "line": 183,
                                  "column": 72
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7408,
                    "end": 7470,
                    "loc": {
                      "start": {
                        "line": 184,
                        "column": 8
                      },
                      "end": {
                        "line": 184,
                        "column": 70
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7408,
                      "end": 7411,
                      "loc": {
                        "start": {
                          "line": 184,
                          "column": 8
                        },
                        "end": {
                          "line": 184,
                          "column": 11
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 7413,
                      "end": 7470,
                      "loc": {
                        "start": {
                          "line": 184,
                          "column": 13
                        },
                        "end": {
                          "line": 184,
                          "column": 70
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 7413,
                        "end": 7434,
                        "loc": {
                          "start": {
                            "line": 184,
                            "column": 13
                          },
                          "end": {
                            "line": 184,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 7413,
                          "end": 7430,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 13
                            },
                            "end": {
                              "line": 184,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7413,
                            "end": 7428,
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 13
                              },
                              "end": {
                                "line": 184,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 7413,
                              "end": 7422,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 13
                                },
                                "end": {
                                  "line": 184,
                                  "column": 22
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7423,
                              "end": 7428,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 23
                                },
                                "end": {
                                  "line": 184,
                                  "column": 28
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 7431,
                          "end": 7434,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 31
                            },
                            "end": {
                              "line": 184,
                              "column": 34
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 7435,
                          "end": 7469,
                          "loc": {
                            "start": {
                              "line": 184,
                              "column": 35
                            },
                            "end": {
                              "line": 184,
                              "column": 69
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 7435,
                            "end": 7464,
                            "loc": {
                              "start": {
                                "line": 184,
                                "column": 35
                              },
                              "end": {
                                "line": 184,
                                "column": 64
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 7435,
                              "end": 7449,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 35
                                },
                                "end": {
                                  "line": 184,
                                  "column": 49
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 7435,
                                "end": 7447,
                                "loc": {
                                  "start": {
                                    "line": 184,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 184,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 7435,
                                  "end": 7441,
                                  "loc": {
                                    "start": {
                                      "line": 184,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 184,
                                      "column": 41
                                    }
                                  },
                                  "name": "endDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 7442,
                                  "end": 7447,
                                  "loc": {
                                    "start": {
                                      "line": 184,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 184,
                                      "column": 47
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 7450,
                              "end": 7464,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 50
                                },
                                "end": {
                                  "line": 184,
                                  "column": 64
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 7465,
                              "end": 7468,
                              "loc": {
                                "start": {
                                  "line": 184,
                                  "column": 65
                                },
                                "end": {
                                  "line": 184,
                                  "column": 68
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7481,
                    "end": 7495,
                    "loc": {
                      "start": {
                        "line": 185,
                        "column": 8
                      },
                      "end": {
                        "line": 185,
                        "column": 22
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7481,
                      "end": 7487,
                      "loc": {
                        "start": {
                          "line": 185,
                          "column": 8
                        },
                        "end": {
                          "line": 185,
                          "column": 14
                        }
                      },
                      "name": "center"
                    },
                    "value": {
                      "type": "Identifier",
                      "start": 7489,
                      "end": 7495,
                      "loc": {
                        "start": {
                          "line": 185,
                          "column": 16
                        },
                        "end": {
                          "line": 185,
                          "column": 22
                        }
                      },
                      "name": "center"
                    },
                    "kind": "init"
                  },
                  {
                    "type": "Property",
                    "start": 7506,
                    "end": 7521,
                    "loc": {
                      "start": {
                        "line": 186,
                        "column": 8
                      },
                      "end": {
                        "line": 186,
                        "column": 23
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 7506,
                      "end": 7515,
                      "loc": {
                        "start": {
                          "line": 186,
                          "column": 8
                        },
                        "end": {
                          "line": 186,
                          "column": 17
                        }
                      },
                      "name": "clockwise"
                    },
                    "value": {
                      "type": "Literal",
                      "start": 7517,
                      "end": 7521,
                      "loc": {
                        "start": {
                          "line": 186,
                          "column": 19
                        },
                        "end": {
                          "line": 186,
                          "column": 23
                        }
                      },
                      "value": true,
                      "rawValue": true,
                      "raw": "true"
                    },
                    "kind": "init"
                  }
                ]
              }
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 7535,
      "end": 8308,
      "loc": {
        "start": {
          "line": 190,
          "column": 0
        },
        "end": {
          "line": 206,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 7542,
        "end": 8308,
        "loc": {
          "start": {
            "line": 190,
            "column": 7
          },
          "end": {
            "line": 206,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 7551,
          "end": 7569,
          "loc": {
            "start": {
              "line": 190,
              "column": 16
            },
            "end": {
              "line": 190,
              "column": 34
            }
          },
          "name": "drawLineBy_Angle_M"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 7570,
            "end": 7579,
            "loc": {
              "start": {
                "line": 190,
                "column": 35
              },
              "end": {
                "line": 190,
                "column": 44
              }
            },
            "name": "vertexPos"
          },
          {
            "type": "Identifier",
            "start": 7581,
            "end": 7589,
            "loc": {
              "start": {
                "line": 190,
                "column": 46
              },
              "end": {
                "line": 190,
                "column": 54
              }
            },
            "name": "startDir"
          },
          {
            "type": "Identifier",
            "start": 7591,
            "end": 7597,
            "loc": {
              "start": {
                "line": 190,
                "column": 56
              },
              "end": {
                "line": 190,
                "column": 62
              }
            },
            "name": "endDir"
          },
          {
            "type": "Identifier",
            "start": 7599,
            "end": 7608,
            "loc": {
              "start": {
                "line": 190,
                "column": 64
              },
              "end": {
                "line": 190,
                "column": 73
              }
            },
            "name": "middlePos"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 7610,
          "end": 8308,
          "loc": {
            "start": {
              "line": 190,
              "column": 75
            },
            "end": {
              "line": 206,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ExpressionStatement",
              "start": 7617,
              "end": 7630,
              "loc": {
                "start": {
                  "line": 191,
                  "column": 4
                },
                "end": {
                  "line": 191,
                  "column": 17
                }
              },
              "expression": {
                "type": "Literal",
                "start": 7617,
                "end": 7629,
                "loc": {
                  "start": {
                    "line": 191,
                    "column": 4
                  },
                  "end": {
                    "line": 191,
                    "column": 16
                  }
                },
                "value": "use strict",
                "rawValue": "use strict",
                "raw": "\"use strict\""
              }
            },
            {
              "type": "VariableDeclaration",
              "start": 7638,
              "end": 7715,
              "loc": {
                "start": {
                  "line": 193,
                  "column": 4
                },
                "end": {
                  "line": 193,
                  "column": 81
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7642,
                  "end": 7714,
                  "loc": {
                    "start": {
                      "line": 193,
                      "column": 8
                    },
                    "end": {
                      "line": 193,
                      "column": 80
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7642,
                    "end": 7651,
                    "loc": {
                      "start": {
                        "line": 193,
                        "column": 8
                      },
                      "end": {
                        "line": 193,
                        "column": 17
                      }
                    },
                    "name": "centerDir"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7654,
                    "end": 7714,
                    "loc": {
                      "start": {
                        "line": 193,
                        "column": 20
                      },
                      "end": {
                        "line": 193,
                        "column": 80
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7654,
                      "end": 7712,
                      "loc": {
                        "start": {
                          "line": 193,
                          "column": 20
                        },
                        "end": {
                          "line": 193,
                          "column": 78
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 7654,
                        "end": 7702,
                        "loc": {
                          "start": {
                            "line": 193,
                            "column": 20
                          },
                          "end": {
                            "line": 193,
                            "column": 68
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 7654,
                          "end": 7697,
                          "loc": {
                            "start": {
                              "line": 193,
                              "column": 20
                            },
                            "end": {
                              "line": 193,
                              "column": 63
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 7654,
                            "end": 7682,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 20
                              },
                              "end": {
                                "line": 193,
                                "column": 48
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 7654,
                              "end": 7674,
                              "loc": {
                                "start": {
                                  "line": 193,
                                  "column": 20
                                },
                                "end": {
                                  "line": 193,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 7654,
                                "end": 7670,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 36
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 7654,
                                  "end": 7668,
                                  "loc": {
                                    "start": {
                                      "line": 193,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 193,
                                      "column": 34
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 7654,
                                    "end": 7662,
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 193,
                                        "column": 28
                                      }
                                    },
                                    "name": "startDir"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 7663,
                                    "end": 7668,
                                    "loc": {
                                      "start": {
                                        "line": 193,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 193,
                                        "column": 34
                                      }
                                    },
                                    "name": "clone"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 7671,
                                "end": 7674,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 40
                                  }
                                },
                                "name": "add"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 7675,
                                "end": 7681,
                                "loc": {
                                  "start": {
                                    "line": 193,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 193,
                                    "column": 47
                                  }
                                },
                                "name": "endDir"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 7683,
                            "end": 7697,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 49
                              },
                              "end": {
                                "line": 193,
                                "column": 63
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 7698,
                            "end": 7701,
                            "loc": {
                              "start": {
                                "line": 193,
                                "column": 64
                              },
                              "end": {
                                "line": 193,
                                "column": 67
                              }
                            },
                            "value": 0.5,
                            "rawValue": 0.5,
                            "raw": "0.5"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7703,
                        "end": 7712,
                        "loc": {
                          "start": {
                            "line": 193,
                            "column": 69
                          },
                          "end": {
                            "line": 193,
                            "column": 78
                          }
                        },
                        "name": "normalize"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 7721,
              "end": 7775,
              "loc": {
                "start": {
                  "line": 194,
                  "column": 4
                },
                "end": {
                  "line": 194,
                  "column": 58
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7725,
                  "end": 7774,
                  "loc": {
                    "start": {
                      "line": 194,
                      "column": 8
                    },
                    "end": {
                      "line": 194,
                      "column": 57
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7725,
                    "end": 7739,
                    "loc": {
                      "start": {
                        "line": 194,
                        "column": 8
                      },
                      "end": {
                        "line": 194,
                        "column": 22
                      }
                    },
                    "name": "vertexToMiddle"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7742,
                    "end": 7774,
                    "loc": {
                      "start": {
                        "line": 194,
                        "column": 25
                      },
                      "end": {
                        "line": 194,
                        "column": 57
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7742,
                      "end": 7763,
                      "loc": {
                        "start": {
                          "line": 194,
                          "column": 25
                        },
                        "end": {
                          "line": 194,
                          "column": 46
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 7742,
                        "end": 7759,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 25
                          },
                          "end": {
                            "line": 194,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 7742,
                          "end": 7757,
                          "loc": {
                            "start": {
                              "line": 194,
                              "column": 25
                            },
                            "end": {
                              "line": 194,
                              "column": 40
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 7742,
                            "end": 7751,
                            "loc": {
                              "start": {
                                "line": 194,
                                "column": 25
                              },
                              "end": {
                                "line": 194,
                                "column": 34
                              }
                            },
                            "name": "middlePos"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 7752,
                            "end": 7757,
                            "loc": {
                              "start": {
                                "line": 194,
                                "column": 35
                              },
                              "end": {
                                "line": 194,
                                "column": 40
                              }
                            },
                            "name": "clone"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7760,
                        "end": 7763,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 43
                          },
                          "end": {
                            "line": 194,
                            "column": 46
                          }
                        },
                        "name": "sub"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 7764,
                        "end": 7773,
                        "loc": {
                          "start": {
                            "line": 194,
                            "column": 47
                          },
                          "end": {
                            "line": 194,
                            "column": 56
                          }
                        },
                        "name": "vertexPos"
                      }
                    ]
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 7783,
                  "end": 7875,
                  "loc": {
                    "start": {
                      "line": 196,
                      "column": 4
                    },
                    "end": {
                      "line": 196,
                      "column": 96
                    }
                  },
                  "range": [
                    7783,
                    7875
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 7881,
              "end": 7975,
              "loc": {
                "start": {
                  "line": 197,
                  "column": 4
                },
                "end": {
                  "line": 198,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 7885,
                "end": 7952,
                "loc": {
                  "start": {
                    "line": 197,
                    "column": 8
                  },
                  "end": {
                    "line": 197,
                    "column": 75
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 7885,
                  "end": 7915,
                  "loc": {
                    "start": {
                      "line": 197,
                      "column": 8
                    },
                    "end": {
                      "line": 197,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 7885,
                    "end": 7908,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 8
                      },
                      "end": {
                        "line": 197,
                        "column": 31
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7885,
                      "end": 7906,
                      "loc": {
                        "start": {
                          "line": 197,
                          "column": 8
                        },
                        "end": {
                          "line": 197,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7885,
                        "end": 7899,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 8
                          },
                          "end": {
                            "line": 197,
                            "column": 22
                          }
                        },
                        "name": "vertexToMiddle",
                        "leadingComments": null
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7900,
                        "end": 7906,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 23
                          },
                          "end": {
                            "line": 197,
                            "column": 29
                          }
                        },
                        "name": "length"
                      },
                      "computed": false,
                      "leadingComments": null
                    },
                    "arguments": [],
                    "leadingComments": null
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 7911,
                    "end": 7915,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 34
                      },
                      "end": {
                        "line": 197,
                        "column": 38
                      }
                    },
                    "value": 0.01,
                    "rawValue": 0.01,
                    "raw": "1e-2"
                  },
                  "leadingComments": null
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 7919,
                  "end": 7952,
                  "loc": {
                    "start": {
                      "line": 197,
                      "column": 42
                    },
                    "end": {
                      "line": 197,
                      "column": 75
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 7919,
                    "end": 7948,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 42
                      },
                      "end": {
                        "line": 197,
                        "column": 71
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7919,
                      "end": 7937,
                      "loc": {
                        "start": {
                          "line": 197,
                          "column": 42
                        },
                        "end": {
                          "line": 197,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7919,
                        "end": 7933,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 42
                          },
                          "end": {
                            "line": 197,
                            "column": 56
                          }
                        },
                        "name": "vertexToMiddle"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 7934,
                        "end": 7937,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 57
                          },
                          "end": {
                            "line": 197,
                            "column": 60
                          }
                        },
                        "name": "dot"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 7938,
                        "end": 7947,
                        "loc": {
                          "start": {
                            "line": 197,
                            "column": 61
                          },
                          "end": {
                            "line": 197,
                            "column": 70
                          }
                        },
                        "name": "centerDir"
                      }
                    ]
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 7951,
                    "end": 7952,
                    "loc": {
                      "start": {
                        "line": 197,
                        "column": 74
                      },
                      "end": {
                        "line": 197,
                        "column": 75
                      }
                    },
                    "value": 0,
                    "rawValue": 0,
                    "raw": "0"
                  }
                },
                "leadingComments": null
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 7963,
                "end": 7975,
                "loc": {
                  "start": {
                    "line": 198,
                    "column": 8
                  },
                  "end": {
                    "line": 198,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 7970,
                  "end": 7974,
                  "loc": {
                    "start": {
                      "line": 198,
                      "column": 15
                    },
                    "end": {
                      "line": 198,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                }
              },
              "alternate": null,
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " if radius is too small or middlepos and its projection to centerDir is out of filletAngle",
                  "start": 7783,
                  "end": 7875,
                  "loc": {
                    "start": {
                      "line": 196,
                      "column": 4
                    },
                    "end": {
                      "line": 196,
                      "column": 96
                    }
                  },
                  "range": [
                    7783,
                    7875
                  ]
                }
              ]
            },
            {
              "type": "VariableDeclaration",
              "start": 7983,
              "end": 8020,
              "loc": {
                "start": {
                  "line": 200,
                  "column": 4
                },
                "end": {
                  "line": 200,
                  "column": 41
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 7987,
                  "end": 8019,
                  "loc": {
                    "start": {
                      "line": 200,
                      "column": 8
                    },
                    "end": {
                      "line": 200,
                      "column": 40
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 7987,
                    "end": 7992,
                    "loc": {
                      "start": {
                        "line": 200,
                        "column": 8
                      },
                      "end": {
                        "line": 200,
                        "column": 13
                      }
                    },
                    "name": "alpha"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 7995,
                    "end": 8019,
                    "loc": {
                      "start": {
                        "line": 200,
                        "column": 16
                      },
                      "end": {
                        "line": 200,
                        "column": 40
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 7995,
                      "end": 8009,
                      "loc": {
                        "start": {
                          "line": 200,
                          "column": 16
                        },
                        "end": {
                          "line": 200,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 7995,
                        "end": 8001,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 16
                          },
                          "end": {
                            "line": 200,
                            "column": 22
                          }
                        },
                        "name": "endDir"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 8002,
                        "end": 8009,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 23
                          },
                          "end": {
                            "line": 200,
                            "column": 30
                          }
                        },
                        "name": "angleTo"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 8010,
                        "end": 8018,
                        "loc": {
                          "start": {
                            "line": 200,
                            "column": 31
                          },
                          "end": {
                            "line": 200,
                            "column": 39
                          }
                        },
                        "name": "startDir"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 8026,
              "end": 8086,
              "loc": {
                "start": {
                  "line": 201,
                  "column": 4
                },
                "end": {
                  "line": 201,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 8030,
                  "end": 8085,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 8
                    },
                    "end": {
                      "line": 201,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 8030,
                    "end": 8033,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 8
                      },
                      "end": {
                        "line": 201,
                        "column": 11
                      }
                    },
                    "name": "len"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 8036,
                    "end": 8085,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 14
                      },
                      "end": {
                        "line": 201,
                        "column": 63
                      }
                    },
                    "left": {
                      "type": "CallExpression",
                      "start": 8036,
                      "end": 8065,
                      "loc": {
                        "start": {
                          "line": 201,
                          "column": 14
                        },
                        "end": {
                          "line": 201,
                          "column": 43
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8036,
                        "end": 8054,
                        "loc": {
                          "start": {
                            "line": 201,
                            "column": 14
                          },
                          "end": {
                            "line": 201,
                            "column": 32
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 8036,
                          "end": 8050,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 14
                            },
                            "end": {
                              "line": 201,
                              "column": 28
                            }
                          },
                          "name": "vertexToMiddle"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8051,
                          "end": 8054,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 29
                            },
                            "end": {
                              "line": 201,
                              "column": 32
                            }
                          },
                          "name": "dot"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 8055,
                          "end": 8064,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 33
                            },
                            "end": {
                              "line": 201,
                              "column": 42
                            }
                          },
                          "name": "centerDir"
                        }
                      ]
                    },
                    "operator": "/",
                    "right": {
                      "type": "CallExpression",
                      "start": 8068,
                      "end": 8085,
                      "loc": {
                        "start": {
                          "line": 201,
                          "column": 46
                        },
                        "end": {
                          "line": 201,
                          "column": 63
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8068,
                        "end": 8076,
                        "loc": {
                          "start": {
                            "line": 201,
                            "column": 46
                          },
                          "end": {
                            "line": 201,
                            "column": 54
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 8068,
                          "end": 8072,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 46
                            },
                            "end": {
                              "line": 201,
                              "column": 50
                            }
                          },
                          "name": "Math"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8073,
                          "end": 8076,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 51
                            },
                            "end": {
                              "line": 201,
                              "column": 54
                            }
                          },
                          "name": "cos"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "BinaryExpression",
                          "start": 8077,
                          "end": 8084,
                          "loc": {
                            "start": {
                              "line": 201,
                              "column": 55
                            },
                            "end": {
                              "line": 201,
                              "column": 62
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 8077,
                            "end": 8082,
                            "loc": {
                              "start": {
                                "line": 201,
                                "column": 55
                              },
                              "end": {
                                "line": 201,
                                "column": 60
                              }
                            },
                            "name": "alpha"
                          },
                          "operator": "/",
                          "right": {
                            "type": "Literal",
                            "start": 8083,
                            "end": 8084,
                            "loc": {
                              "start": {
                                "line": 201,
                                "column": 61
                              },
                              "end": {
                                "line": 201,
                                "column": 62
                              }
                            },
                            "value": 2,
                            "rawValue": 2,
                            "raw": "2"
                          }
                        }
                      ]
                    }
                  }
                }
              ],
              "kind": "var",
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": " we have appropriate fillet angle so cos != 0",
                  "start": 8087,
                  "end": 8134,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 65
                    },
                    "end": {
                      "line": 201,
                      "column": 112
                    }
                  },
                  "range": [
                    8087,
                    8134
                  ]
                }
              ]
            },
            {
              "type": "ReturnStatement",
              "start": 8140,
              "end": 8305,
              "loc": {
                "start": {
                  "line": 202,
                  "column": 4
                },
                "end": {
                  "line": 205,
                  "column": 5
                }
              },
              "argument": {
                "type": "ObjectExpression",
                "start": 8147,
                "end": 8305,
                "loc": {
                  "start": {
                    "line": 202,
                    "column": 11
                  },
                  "end": {
                    "line": 205,
                    "column": 5
                  }
                },
                "properties": [
                  {
                    "type": "Property",
                    "start": 8158,
                    "end": 8224,
                    "loc": {
                      "start": {
                        "line": 203,
                        "column": 8
                      },
                      "end": {
                        "line": 203,
                        "column": 74
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 8158,
                      "end": 8163,
                      "loc": {
                        "start": {
                          "line": 203,
                          "column": 8
                        },
                        "end": {
                          "line": 203,
                          "column": 13
                        }
                      },
                      "name": "start",
                      "leadingComments": null
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 8165,
                      "end": 8224,
                      "loc": {
                        "start": {
                          "line": 203,
                          "column": 15
                        },
                        "end": {
                          "line": 203,
                          "column": 74
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8165,
                        "end": 8186,
                        "loc": {
                          "start": {
                            "line": 203,
                            "column": 15
                          },
                          "end": {
                            "line": 203,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 8165,
                          "end": 8182,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 15
                            },
                            "end": {
                              "line": 203,
                              "column": 32
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8165,
                            "end": 8180,
                            "loc": {
                              "start": {
                                "line": 203,
                                "column": 15
                              },
                              "end": {
                                "line": 203,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 8165,
                              "end": 8174,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 15
                                },
                                "end": {
                                  "line": 203,
                                  "column": 24
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8175,
                              "end": 8180,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 25
                                },
                                "end": {
                                  "line": 203,
                                  "column": 30
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8183,
                          "end": 8186,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 33
                            },
                            "end": {
                              "line": 203,
                              "column": 36
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 8187,
                          "end": 8223,
                          "loc": {
                            "start": {
                              "line": 203,
                              "column": 37
                            },
                            "end": {
                              "line": 203,
                              "column": 73
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8187,
                            "end": 8218,
                            "loc": {
                              "start": {
                                "line": 203,
                                "column": 37
                              },
                              "end": {
                                "line": 203,
                                "column": 68
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 8187,
                              "end": 8203,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 37
                                },
                                "end": {
                                  "line": 203,
                                  "column": 53
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 8187,
                                "end": 8201,
                                "loc": {
                                  "start": {
                                    "line": 203,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 203,
                                    "column": 51
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8187,
                                  "end": 8195,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 45
                                    }
                                  },
                                  "name": "startDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8196,
                                  "end": 8201,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 51
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8204,
                              "end": 8218,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 54
                                },
                                "end": {
                                  "line": 203,
                                  "column": 68
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 8219,
                              "end": 8222,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 69
                                },
                                "end": {
                                  "line": 203,
                                  "column": 72
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init",
                    "leadingComments": null
                  },
                  {
                    "type": "Property",
                    "start": 8235,
                    "end": 8297,
                    "loc": {
                      "start": {
                        "line": 204,
                        "column": 8
                      },
                      "end": {
                        "line": 204,
                        "column": 70
                      }
                    },
                    "method": false,
                    "shorthand": false,
                    "computed": false,
                    "key": {
                      "type": "Identifier",
                      "start": 8235,
                      "end": 8238,
                      "loc": {
                        "start": {
                          "line": 204,
                          "column": 8
                        },
                        "end": {
                          "line": 204,
                          "column": 11
                        }
                      },
                      "name": "end"
                    },
                    "value": {
                      "type": "CallExpression",
                      "start": 8240,
                      "end": 8297,
                      "loc": {
                        "start": {
                          "line": 204,
                          "column": 13
                        },
                        "end": {
                          "line": 204,
                          "column": 70
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8240,
                        "end": 8261,
                        "loc": {
                          "start": {
                            "line": 204,
                            "column": 13
                          },
                          "end": {
                            "line": 204,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "CallExpression",
                          "start": 8240,
                          "end": 8257,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 13
                            },
                            "end": {
                              "line": 204,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8240,
                            "end": 8255,
                            "loc": {
                              "start": {
                                "line": 204,
                                "column": 13
                              },
                              "end": {
                                "line": 204,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 8240,
                              "end": 8249,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 13
                                },
                                "end": {
                                  "line": 204,
                                  "column": 22
                                }
                              },
                              "name": "vertexPos"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8250,
                              "end": 8255,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 23
                                },
                                "end": {
                                  "line": 204,
                                  "column": 28
                                }
                              },
                              "name": "clone"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8258,
                          "end": 8261,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 31
                            },
                            "end": {
                              "line": 204,
                              "column": 34
                            }
                          },
                          "name": "add"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "CallExpression",
                          "start": 8262,
                          "end": 8296,
                          "loc": {
                            "start": {
                              "line": 204,
                              "column": 35
                            },
                            "end": {
                              "line": 204,
                              "column": 69
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 8262,
                            "end": 8291,
                            "loc": {
                              "start": {
                                "line": 204,
                                "column": 35
                              },
                              "end": {
                                "line": 204,
                                "column": 64
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 8262,
                              "end": 8276,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 35
                                },
                                "end": {
                                  "line": 204,
                                  "column": 49
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 8262,
                                "end": 8274,
                                "loc": {
                                  "start": {
                                    "line": 204,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 204,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8262,
                                  "end": 8268,
                                  "loc": {
                                    "start": {
                                      "line": 204,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 204,
                                      "column": 41
                                    }
                                  },
                                  "name": "endDir"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8269,
                                  "end": 8274,
                                  "loc": {
                                    "start": {
                                      "line": 204,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 204,
                                      "column": 47
                                    }
                                  },
                                  "name": "clone"
                                },
                                "computed": false
                              },
                              "arguments": []
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 8277,
                              "end": 8291,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 50
                                },
                                "end": {
                                  "line": 204,
                                  "column": 64
                                }
                              },
                              "name": "multiplyScalar"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 8292,
                              "end": 8295,
                              "loc": {
                                "start": {
                                  "line": 204,
                                  "column": 65
                                },
                                "end": {
                                  "line": 204,
                                  "column": 68
                                }
                              },
                              "name": "len"
                            }
                          ]
                        }
                      ]
                    },
                    "kind": "init"
                  }
                ],
                "leadingComments": null
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": " we have appropriate fillet angle so cos != 0",
                  "start": 8087,
                  "end": 8134,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 65
                    },
                    "end": {
                      "line": 201,
                      "column": 112
                    }
                  },
                  "range": [
                    8087,
                    8134
                  ]
                }
              ]
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 8312,
      "end": 9111,
      "loc": {
        "start": {
          "line": 208,
          "column": 0
        },
        "end": {
          "line": 232,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 8319,
        "end": 9111,
        "loc": {
          "start": {
            "line": 208,
            "column": 7
          },
          "end": {
            "line": 232,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 8328,
          "end": 8344,
          "loc": {
            "start": {
              "line": 208,
              "column": 16
            },
            "end": {
              "line": 208,
              "column": 32
            }
          },
          "name": "createGeomObject"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 8345,
            "end": 8355,
            "loc": {
              "start": {
                "line": 208,
                "column": 33
              },
              "end": {
                "line": 208,
                "column": 43
              }
            },
            "name": "geomParams"
          },
          {
            "type": "Identifier",
            "start": 8357,
            "end": 8366,
            "loc": {
              "start": {
                "line": 208,
                "column": 45
              },
              "end": {
                "line": 208,
                "column": 54
              }
            },
            "name": "oldObject"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 8368,
          "end": 9111,
          "loc": {
            "start": {
              "line": 208,
              "column": 56
            },
            "end": {
              "line": 232,
              "column": 1
            }
          },
          "body": [
            {
              "type": "VariableDeclaration",
              "start": 8407,
              "end": 8427,
              "loc": {
                "start": {
                  "line": 210,
                  "column": 4
                },
                "end": {
                  "line": 210,
                  "column": 24
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 8411,
                  "end": 8426,
                  "loc": {
                    "start": {
                      "line": 210,
                      "column": 8
                    },
                    "end": {
                      "line": 210,
                      "column": 23
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 8411,
                    "end": 8418,
                    "loc": {
                      "start": {
                        "line": 210,
                        "column": 8
                      },
                      "end": {
                        "line": 210,
                        "column": 15
                      }
                    },
                    "name": "newType",
                    "leadingComments": null
                  },
                  "init": {
                    "type": "Identifier",
                    "start": 8421,
                    "end": 8426,
                    "loc": {
                      "start": {
                        "line": 210,
                        "column": 18
                      },
                      "end": {
                        "line": 210,
                        "column": 23
                      }
                    },
                    "name": "Point"
                  },
                  "leadingComments": null
                }
              ],
              "kind": "var",
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "detect new geometry type",
                  "start": 8375,
                  "end": 8401,
                  "loc": {
                    "start": {
                      "line": 209,
                      "column": 4
                    },
                    "end": {
                      "line": 209,
                      "column": 30
                    }
                  },
                  "range": [
                    8375,
                    8401
                  ]
                }
              ]
            },
            {
              "type": "IfStatement",
              "start": 8433,
              "end": 8516,
              "loc": {
                "start": {
                  "line": 211,
                  "column": 4
                },
                "end": {
                  "line": 212,
                  "column": 44
                }
              },
              "test": {
                "type": "MemberExpression",
                "start": 8437,
                "end": 8454,
                "loc": {
                  "start": {
                    "line": 211,
                    "column": 8
                  },
                  "end": {
                    "line": 211,
                    "column": 25
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 8437,
                  "end": 8447,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 8
                    },
                    "end": {
                      "line": 211,
                      "column": 18
                    }
                  },
                  "name": "geomParams"
                },
                "property": {
                  "type": "Identifier",
                  "start": 8448,
                  "end": 8454,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 19
                    },
                    "end": {
                      "line": 211,
                      "column": 25
                    }
                  },
                  "name": "center"
                },
                "computed": false
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 8456,
                "end": 8470,
                "loc": {
                  "start": {
                    "line": 211,
                    "column": 27
                  },
                  "end": {
                    "line": 211,
                    "column": 41
                  }
                },
                "expression": {
                  "type": "AssignmentExpression",
                  "start": 8456,
                  "end": 8469,
                  "loc": {
                    "start": {
                      "line": 211,
                      "column": 27
                    },
                    "end": {
                      "line": 211,
                      "column": 40
                    }
                  },
                  "operator": "=",
                  "left": {
                    "type": "Identifier",
                    "start": 8456,
                    "end": 8463,
                    "loc": {
                      "start": {
                        "line": 211,
                        "column": 27
                      },
                      "end": {
                        "line": 211,
                        "column": 34
                      }
                    },
                    "name": "newType"
                  },
                  "right": {
                    "type": "Identifier",
                    "start": 8466,
                    "end": 8469,
                    "loc": {
                      "start": {
                        "line": 211,
                        "column": 37
                      },
                      "end": {
                        "line": 211,
                        "column": 40
                      }
                    },
                    "name": "Arc"
                  }
                }
              },
              "alternate": {
                "type": "IfStatement",
                "start": 8481,
                "end": 8516,
                "loc": {
                  "start": {
                    "line": 212,
                    "column": 9
                  },
                  "end": {
                    "line": 212,
                    "column": 44
                  }
                },
                "test": {
                  "type": "MemberExpression",
                  "start": 8485,
                  "end": 8499,
                  "loc": {
                    "start": {
                      "line": 212,
                      "column": 13
                    },
                    "end": {
                      "line": 212,
                      "column": 27
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 8485,
                    "end": 8495,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 13
                      },
                      "end": {
                        "line": 212,
                        "column": 23
                      }
                    },
                    "name": "geomParams"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 8496,
                    "end": 8499,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 24
                      },
                      "end": {
                        "line": 212,
                        "column": 27
                      }
                    },
                    "name": "end"
                  },
                  "computed": false
                },
                "consequent": {
                  "type": "ExpressionStatement",
                  "start": 8501,
                  "end": 8516,
                  "loc": {
                    "start": {
                      "line": 212,
                      "column": 29
                    },
                    "end": {
                      "line": 212,
                      "column": 44
                    }
                  },
                  "expression": {
                    "type": "AssignmentExpression",
                    "start": 8501,
                    "end": 8515,
                    "loc": {
                      "start": {
                        "line": 212,
                        "column": 29
                      },
                      "end": {
                        "line": 212,
                        "column": 43
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 8501,
                      "end": 8508,
                      "loc": {
                        "start": {
                          "line": 212,
                          "column": 29
                        },
                        "end": {
                          "line": 212,
                          "column": 36
                        }
                      },
                      "name": "newType"
                    },
                    "right": {
                      "type": "Identifier",
                      "start": 8511,
                      "end": 8515,
                      "loc": {
                        "start": {
                          "line": 212,
                          "column": 39
                        },
                        "end": {
                          "line": 212,
                          "column": 43
                        }
                      },
                      "name": "Line"
                    }
                  }
                },
                "alternate": null
              }
            },
            {
              "type": "IfStatement",
              "start": 8524,
              "end": 8658,
              "loc": {
                "start": {
                  "line": 214,
                  "column": 4
                },
                "end": {
                  "line": 217,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 8528,
                "end": 8559,
                "loc": {
                  "start": {
                    "line": 214,
                    "column": 8
                  },
                  "end": {
                    "line": 214,
                    "column": 39
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "BinaryExpression",
                  "start": 8530,
                  "end": 8558,
                  "loc": {
                    "start": {
                      "line": 214,
                      "column": 10
                    },
                    "end": {
                      "line": 214,
                      "column": 38
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 8530,
                    "end": 8539,
                    "loc": {
                      "start": {
                        "line": 214,
                        "column": 10
                      },
                      "end": {
                        "line": 214,
                        "column": 19
                      }
                    },
                    "name": "oldObject"
                  },
                  "operator": "instanceof",
                  "right": {
                    "type": "Identifier",
                    "start": 8551,
                    "end": 8558,
                    "loc": {
                      "start": {
                        "line": 214,
                        "column": 31
                      },
                      "end": {
                        "line": 214,
                        "column": 38
                      }
                    },
                    "name": "newType"
                  },
                  "parenthesizedExpression": true
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 8561,
                "end": 8658,
                "loc": {
                  "start": {
                    "line": 214,
                    "column": 41
                  },
                  "end": {
                    "line": 217,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 8625,
                    "end": 8651,
                    "loc": {
                      "start": {
                        "line": 216,
                        "column": 8
                      },
                      "end": {
                        "line": 216,
                        "column": 34
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 8625,
                      "end": 8650,
                      "loc": {
                        "start": {
                          "line": 216,
                          "column": 8
                        },
                        "end": {
                          "line": 216,
                          "column": 33
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "start": 8625,
                        "end": 8634,
                        "loc": {
                          "start": {
                            "line": 216,
                            "column": 8
                          },
                          "end": {
                            "line": 216,
                            "column": 17
                          }
                        },
                        "name": "oldObject",
                        "leadingComments": null
                      },
                      "right": {
                        "type": "NewExpression",
                        "start": 8637,
                        "end": 8650,
                        "loc": {
                          "start": {
                            "line": 216,
                            "column": 20
                          },
                          "end": {
                            "line": 216,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 8641,
                          "end": 8648,
                          "loc": {
                            "start": {
                              "line": 216,
                              "column": 24
                            },
                            "end": {
                              "line": 216,
                              "column": 31
                            }
                          },
                          "name": "newType"
                        },
                        "arguments": []
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": "slow path: we have to create a new object",
                        "start": 8572,
                        "end": 8615,
                        "loc": {
                          "start": {
                            "line": 215,
                            "column": 8
                          },
                          "end": {
                            "line": 215,
                            "column": 51
                          }
                        },
                        "range": [
                          8572,
                          8615
                        ]
                      }
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 8666,
              "end": 9050,
              "loc": {
                "start": {
                  "line": 219,
                  "column": 4
                },
                "end": {
                  "line": 228,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 8670,
                "end": 8687,
                "loc": {
                  "start": {
                    "line": 219,
                    "column": 8
                  },
                  "end": {
                    "line": 219,
                    "column": 25
                  }
                },
                "left": {
                  "type": "Identifier",
                  "start": 8670,
                  "end": 8677,
                  "loc": {
                    "start": {
                      "line": 219,
                      "column": 8
                    },
                    "end": {
                      "line": 219,
                      "column": 15
                    }
                  },
                  "name": "newType"
                },
                "operator": "===",
                "right": {
                  "type": "Identifier",
                  "start": 8682,
                  "end": 8687,
                  "loc": {
                    "start": {
                      "line": 219,
                      "column": 20
                    },
                    "end": {
                      "line": 219,
                      "column": 25
                    }
                  },
                  "name": "Point"
                }
              },
              "consequent": {
                "type": "ExpressionStatement",
                "start": 8698,
                "end": 8740,
                "loc": {
                  "start": {
                    "line": 220,
                    "column": 8
                  },
                  "end": {
                    "line": 220,
                    "column": 50
                  }
                },
                "expression": {
                  "type": "CallExpression",
                  "start": 8698,
                  "end": 8739,
                  "loc": {
                    "start": {
                      "line": 220,
                      "column": 8
                    },
                    "end": {
                      "line": 220,
                      "column": 49
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 8698,
                    "end": 8721,
                    "loc": {
                      "start": {
                        "line": 220,
                        "column": 8
                      },
                      "end": {
                        "line": 220,
                        "column": 31
                      }
                    },
                    "object": {
                      "type": "MemberExpression",
                      "start": 8698,
                      "end": 8716,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 8
                        },
                        "end": {
                          "line": 220,
                          "column": 26
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 8698,
                        "end": 8707,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 8
                          },
                          "end": {
                            "line": 220,
                            "column": 17
                          }
                        },
                        "name": "oldObject"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 8708,
                        "end": 8716,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 18
                          },
                          "end": {
                            "line": 220,
                            "column": 26
                          }
                        },
                        "name": "position"
                      },
                      "computed": false
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 8717,
                      "end": 8721,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 27
                        },
                        "end": {
                          "line": 220,
                          "column": 31
                        }
                      },
                      "name": "copy"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "MemberExpression",
                      "start": 8722,
                      "end": 8738,
                      "loc": {
                        "start": {
                          "line": 220,
                          "column": 32
                        },
                        "end": {
                          "line": 220,
                          "column": 48
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 8722,
                        "end": 8732,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 32
                          },
                          "end": {
                            "line": 220,
                            "column": 42
                          }
                        },
                        "name": "geomParams"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 8733,
                        "end": 8738,
                        "loc": {
                          "start": {
                            "line": 220,
                            "column": 43
                          },
                          "end": {
                            "line": 220,
                            "column": 48
                          }
                        },
                        "name": "start"
                      },
                      "computed": false
                    }
                  ]
                }
              },
              "alternate": {
                "type": "BlockStatement",
                "start": 8751,
                "end": 9050,
                "loc": {
                  "start": {
                    "line": 221,
                    "column": 9
                  },
                  "end": {
                    "line": 228,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 8762,
                    "end": 8814,
                    "loc": {
                      "start": {
                        "line": 222,
                        "column": 8
                      },
                      "end": {
                        "line": 222,
                        "column": 60
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 8762,
                      "end": 8813,
                      "loc": {
                        "start": {
                          "line": 222,
                          "column": 8
                        },
                        "end": {
                          "line": 222,
                          "column": 59
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8762,
                        "end": 8795,
                        "loc": {
                          "start": {
                            "line": 222,
                            "column": 8
                          },
                          "end": {
                            "line": 222,
                            "column": 41
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 8762,
                          "end": 8790,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 8
                            },
                            "end": {
                              "line": 222,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 8762,
                            "end": 8781,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 8
                              },
                              "end": {
                                "line": 222,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 8762,
                              "end": 8778,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 8
                                },
                                "end": {
                                  "line": 222,
                                  "column": 24
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8762,
                                "end": 8771,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 17
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8772,
                                "end": 8778,
                                "loc": {
                                  "start": {
                                    "line": 222,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 222,
                                    "column": 24
                                  }
                                },
                                "name": "points"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Literal",
                              "start": 8779,
                              "end": 8780,
                              "loc": {
                                "start": {
                                  "line": 222,
                                  "column": 25
                                },
                                "end": {
                                  "line": 222,
                                  "column": 26
                                }
                              },
                              "value": 0,
                              "rawValue": 0,
                              "raw": "0"
                            },
                            "computed": true
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8782,
                            "end": 8790,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 28
                              },
                              "end": {
                                "line": 222,
                                "column": 36
                              }
                            },
                            "name": "position"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8791,
                          "end": 8795,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 37
                            },
                            "end": {
                              "line": 222,
                              "column": 41
                            }
                          },
                          "name": "copy"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 8796,
                          "end": 8812,
                          "loc": {
                            "start": {
                              "line": 222,
                              "column": 42
                            },
                            "end": {
                              "line": 222,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 8796,
                            "end": 8806,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 42
                              },
                              "end": {
                                "line": 222,
                                "column": 52
                              }
                            },
                            "name": "geomParams"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8807,
                            "end": 8812,
                            "loc": {
                              "start": {
                                "line": 222,
                                "column": 53
                              },
                              "end": {
                                "line": 222,
                                "column": 58
                              }
                            },
                            "name": "start"
                          },
                          "computed": false
                        }
                      ]
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 8824,
                    "end": 8874,
                    "loc": {
                      "start": {
                        "line": 223,
                        "column": 8
                      },
                      "end": {
                        "line": 223,
                        "column": 58
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 8824,
                      "end": 8873,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 8
                        },
                        "end": {
                          "line": 223,
                          "column": 57
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 8824,
                        "end": 8857,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 8
                          },
                          "end": {
                            "line": 223,
                            "column": 41
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 8824,
                          "end": 8852,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 8
                            },
                            "end": {
                              "line": 223,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 8824,
                            "end": 8843,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 8
                              },
                              "end": {
                                "line": 223,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 8824,
                              "end": 8840,
                              "loc": {
                                "start": {
                                  "line": 223,
                                  "column": 8
                                },
                                "end": {
                                  "line": 223,
                                  "column": 24
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8824,
                                "end": 8833,
                                "loc": {
                                  "start": {
                                    "line": 223,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 223,
                                    "column": 17
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8834,
                                "end": 8840,
                                "loc": {
                                  "start": {
                                    "line": 223,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 223,
                                    "column": 24
                                  }
                                },
                                "name": "points"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Literal",
                              "start": 8841,
                              "end": 8842,
                              "loc": {
                                "start": {
                                  "line": 223,
                                  "column": 25
                                },
                                "end": {
                                  "line": 223,
                                  "column": 26
                                }
                              },
                              "value": 1,
                              "rawValue": 1,
                              "raw": "1"
                            },
                            "computed": true
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8844,
                            "end": 8852,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 28
                              },
                              "end": {
                                "line": 223,
                                "column": 36
                              }
                            },
                            "name": "position"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 8853,
                          "end": 8857,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 37
                            },
                            "end": {
                              "line": 223,
                              "column": 41
                            }
                          },
                          "name": "copy"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "MemberExpression",
                          "start": 8858,
                          "end": 8872,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 42
                            },
                            "end": {
                              "line": 223,
                              "column": 56
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 8858,
                            "end": 8868,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 42
                              },
                              "end": {
                                "line": 223,
                                "column": 52
                              }
                            },
                            "name": "geomParams"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 8869,
                            "end": 8872,
                            "loc": {
                              "start": {
                                "line": 223,
                                "column": 53
                              },
                              "end": {
                                "line": 223,
                                "column": 56
                              }
                            },
                            "name": "end"
                          },
                          "computed": false
                        }
                      ]
                    }
                  },
                  {
                    "type": "IfStatement",
                    "start": 8884,
                    "end": 9043,
                    "loc": {
                      "start": {
                        "line": 224,
                        "column": 8
                      },
                      "end": {
                        "line": 227,
                        "column": 9
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 8888,
                      "end": 8903,
                      "loc": {
                        "start": {
                          "line": 224,
                          "column": 12
                        },
                        "end": {
                          "line": 224,
                          "column": 27
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 8888,
                        "end": 8895,
                        "loc": {
                          "start": {
                            "line": 224,
                            "column": 12
                          },
                          "end": {
                            "line": 224,
                            "column": 19
                          }
                        },
                        "name": "newType"
                      },
                      "operator": "===",
                      "right": {
                        "type": "Identifier",
                        "start": 8900,
                        "end": 8903,
                        "loc": {
                          "start": {
                            "line": 224,
                            "column": 24
                          },
                          "end": {
                            "line": 224,
                            "column": 27
                          }
                        },
                        "name": "Arc"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 8905,
                      "end": 9043,
                      "loc": {
                        "start": {
                          "line": 224,
                          "column": 29
                        },
                        "end": {
                          "line": 227,
                          "column": 9
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 8920,
                          "end": 8975,
                          "loc": {
                            "start": {
                              "line": 225,
                              "column": 12
                            },
                            "end": {
                              "line": 225,
                              "column": 67
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 8920,
                            "end": 8974,
                            "loc": {
                              "start": {
                                "line": 225,
                                "column": 12
                              },
                              "end": {
                                "line": 225,
                                "column": 66
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 8920,
                              "end": 8955,
                              "loc": {
                                "start": {
                                  "line": 225,
                                  "column": 12
                                },
                                "end": {
                                  "line": 225,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 8920,
                                "end": 8950,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 42
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 8920,
                                  "end": 8941,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 33
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 8920,
                                    "end": 8929,
                                    "loc": {
                                      "start": {
                                        "line": 225,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 225,
                                        "column": 21
                                      }
                                    },
                                    "name": "oldObject"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 8930,
                                    "end": 8941,
                                    "loc": {
                                      "start": {
                                        "line": 225,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 225,
                                        "column": 33
                                      }
                                    },
                                    "name": "centerPoint"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8942,
                                  "end": 8950,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 42
                                    }
                                  },
                                  "name": "position"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8951,
                                "end": 8955,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 47
                                  }
                                },
                                "name": "copy"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 8956,
                                "end": 8973,
                                "loc": {
                                  "start": {
                                    "line": 225,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 225,
                                    "column": 65
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 8956,
                                  "end": 8966,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 58
                                    }
                                  },
                                  "name": "geomParams"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 8967,
                                  "end": 8973,
                                  "loc": {
                                    "start": {
                                      "line": 225,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 225,
                                      "column": 65
                                    }
                                  },
                                  "name": "center"
                                },
                                "computed": false
                              }
                            ]
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 8989,
                          "end": 9032,
                          "loc": {
                            "start": {
                              "line": 226,
                              "column": 12
                            },
                            "end": {
                              "line": 226,
                              "column": 55
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 8989,
                            "end": 9031,
                            "loc": {
                              "start": {
                                "line": 226,
                                "column": 12
                              },
                              "end": {
                                "line": 226,
                                "column": 54
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 8989,
                              "end": 9008,
                              "loc": {
                                "start": {
                                  "line": 226,
                                  "column": 12
                                },
                                "end": {
                                  "line": 226,
                                  "column": 31
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 8989,
                                "end": 8998,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 21
                                  }
                                },
                                "name": "oldObject"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 8999,
                                "end": 9008,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 31
                                  }
                                },
                                "name": "clockwise"
                              },
                              "computed": false
                            },
                            "right": {
                              "type": "MemberExpression",
                              "start": 9011,
                              "end": 9031,
                              "loc": {
                                "start": {
                                  "line": 226,
                                  "column": 34
                                },
                                "end": {
                                  "line": 226,
                                  "column": 54
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9011,
                                "end": 9021,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 44
                                  }
                                },
                                "name": "geomParams"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9022,
                                "end": 9031,
                                "loc": {
                                  "start": {
                                    "line": 226,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 226,
                                    "column": 54
                                  }
                                },
                                "name": "clockwise"
                              },
                              "computed": false
                            }
                          }
                        }
                      ]
                    },
                    "alternate": null
                  }
                ]
              }
            },
            {
              "type": "ExpressionStatement",
              "start": 9058,
              "end": 9085,
              "loc": {
                "start": {
                  "line": 230,
                  "column": 4
                },
                "end": {
                  "line": 230,
                  "column": 31
                }
              },
              "expression": {
                "type": "CallExpression",
                "start": 9058,
                "end": 9084,
                "loc": {
                  "start": {
                    "line": 230,
                    "column": 4
                  },
                  "end": {
                    "line": 230,
                    "column": 30
                  }
                },
                "callee": {
                  "type": "MemberExpression",
                  "start": 9058,
                  "end": 9082,
                  "loc": {
                    "start": {
                      "line": 230,
                      "column": 4
                    },
                    "end": {
                      "line": 230,
                      "column": 28
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 9058,
                    "end": 9067,
                    "loc": {
                      "start": {
                        "line": 230,
                        "column": 4
                      },
                      "end": {
                        "line": 230,
                        "column": 13
                      }
                    },
                    "name": "oldObject"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 9068,
                    "end": 9082,
                    "loc": {
                      "start": {
                        "line": 230,
                        "column": 14
                      },
                      "end": {
                        "line": 230,
                        "column": 28
                      }
                    },
                    "name": "updateGeometry"
                  },
                  "computed": false
                },
                "arguments": []
              }
            },
            {
              "type": "ReturnStatement",
              "start": 9091,
              "end": 9108,
              "loc": {
                "start": {
                  "line": 231,
                  "column": 4
                },
                "end": {
                  "line": 231,
                  "column": 21
                }
              },
              "argument": {
                "type": "Identifier",
                "start": 9098,
                "end": 9107,
                "loc": {
                  "start": {
                    "line": 231,
                    "column": 11
                  },
                  "end": {
                    "line": 231,
                    "column": 20
                  }
                },
                "name": "oldObject"
              }
            }
          ],
          "trailingComments": null
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": "returns intersection point of given two lines",
            "start": 9115,
            "end": 9162,
            "loc": {
              "start": {
                "line": 234,
                "column": 0
              },
              "end": {
                "line": 234,
                "column": 47
              }
            },
            "range": [
              9115,
              9162
            ]
          },
          {
            "type": "CommentLine",
            "value": "if angularTolerance is set, then null is returned when lines are parallel",
            "start": 9164,
            "end": 9239,
            "loc": {
              "start": {
                "line": 235,
                "column": 0
              },
              "end": {
                "line": 235,
                "column": 75
              }
            },
            "range": [
              9164,
              9239
            ]
          }
        ],
        "leadingComments": []
      },
      "specifiers": [],
      "source": null,
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": "returns intersection point of given two lines",
          "start": 9115,
          "end": 9162,
          "loc": {
            "start": {
              "line": 234,
              "column": 0
            },
            "end": {
              "line": 234,
              "column": 47
            }
          },
          "range": [
            9115,
            9162
          ]
        },
        {
          "type": "CommentLine",
          "value": "if angularTolerance is set, then null is returned when lines are parallel",
          "start": 9164,
          "end": 9239,
          "loc": {
            "start": {
              "line": 235,
              "column": 0
            },
            "end": {
              "line": 235,
              "column": 75
            }
          },
          "range": [
            9164,
            9239
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 9241,
      "end": 10069,
      "loc": {
        "start": {
          "line": 236,
          "column": 0
        },
        "end": {
          "line": 253,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 9248,
        "end": 10069,
        "loc": {
          "start": {
            "line": 236,
            "column": 7
          },
          "end": {
            "line": 253,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 9257,
          "end": 9271,
          "loc": {
            "start": {
              "line": 236,
              "column": 16
            },
            "end": {
              "line": 236,
              "column": 30
            }
          },
          "name": "intersectLines",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 9272,
            "end": 9276,
            "loc": {
              "start": {
                "line": 236,
                "column": 31
              },
              "end": {
                "line": 236,
                "column": 35
              }
            },
            "name": "pntA"
          },
          {
            "type": "Identifier",
            "start": 9278,
            "end": 9282,
            "loc": {
              "start": {
                "line": 236,
                "column": 37
              },
              "end": {
                "line": 236,
                "column": 41
              }
            },
            "name": "dirA"
          },
          {
            "type": "Identifier",
            "start": 9284,
            "end": 9288,
            "loc": {
              "start": {
                "line": 236,
                "column": 43
              },
              "end": {
                "line": 236,
                "column": 47
              }
            },
            "name": "pntB"
          },
          {
            "type": "Identifier",
            "start": 9290,
            "end": 9294,
            "loc": {
              "start": {
                "line": 236,
                "column": 49
              },
              "end": {
                "line": 236,
                "column": 53
              }
            },
            "name": "dirB"
          },
          {
            "type": "Identifier",
            "start": 9296,
            "end": 9312,
            "loc": {
              "start": {
                "line": 236,
                "column": 55
              },
              "end": {
                "line": 236,
                "column": 71
              }
            },
            "name": "angularTolerance"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 9314,
          "end": 10069,
          "loc": {
            "start": {
              "line": 236,
              "column": 73
            },
            "end": {
              "line": 253,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ExpressionStatement",
              "start": 9321,
              "end": 9366,
              "loc": {
                "start": {
                  "line": 237,
                  "column": 4
                },
                "end": {
                  "line": 237,
                  "column": 49
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9321,
                "end": 9365,
                "loc": {
                  "start": {
                    "line": 237,
                    "column": 4
                  },
                  "end": {
                    "line": 237,
                    "column": 48
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9321,
                  "end": 9337,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 4
                    },
                    "end": {
                      "line": 237,
                      "column": 20
                    }
                  },
                  "name": "angularTolerance"
                },
                "right": {
                  "type": "LogicalExpression",
                  "start": 9340,
                  "end": 9365,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 23
                    },
                    "end": {
                      "line": 237,
                      "column": 48
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 9340,
                    "end": 9356,
                    "loc": {
                      "start": {
                        "line": 237,
                        "column": 23
                      },
                      "end": {
                        "line": 237,
                        "column": 39
                      }
                    },
                    "name": "angularTolerance"
                  },
                  "operator": "||",
                  "right": {
                    "type": "Literal",
                    "start": 9360,
                    "end": 9365,
                    "loc": {
                      "start": {
                        "line": 237,
                        "column": 43
                      },
                      "end": {
                        "line": 237,
                        "column": 48
                      }
                    },
                    "value": 1e-15,
                    "rawValue": 1e-15,
                    "raw": "1e-15"
                  }
                }
              },
              "trailingComments": [
                {
                  "type": "CommentLine",
                  "value": "mach.eps. by default",
                  "start": 9367,
                  "end": 9389,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 50
                    },
                    "end": {
                      "line": 237,
                      "column": 72
                    }
                  },
                  "range": [
                    9367,
                    9389
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 9395,
              "end": 9427,
              "loc": {
                "start": {
                  "line": 238,
                  "column": 4
                },
                "end": {
                  "line": 238,
                  "column": 36
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9395,
                "end": 9426,
                "loc": {
                  "start": {
                    "line": 238,
                    "column": 4
                  },
                  "end": {
                    "line": 238,
                    "column": 35
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9395,
                  "end": 9399,
                  "loc": {
                    "start": {
                      "line": 238,
                      "column": 4
                    },
                    "end": {
                      "line": 238,
                      "column": 8
                    }
                  },
                  "name": "dirA",
                  "leadingComments": null
                },
                "right": {
                  "type": "CallExpression",
                  "start": 9402,
                  "end": 9426,
                  "loc": {
                    "start": {
                      "line": 238,
                      "column": 11
                    },
                    "end": {
                      "line": 238,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9402,
                    "end": 9424,
                    "loc": {
                      "start": {
                        "line": 238,
                        "column": 11
                      },
                      "end": {
                        "line": 238,
                        "column": 33
                      }
                    },
                    "object": {
                      "type": "CallExpression",
                      "start": 9402,
                      "end": 9414,
                      "loc": {
                        "start": {
                          "line": 238,
                          "column": 11
                        },
                        "end": {
                          "line": 238,
                          "column": 23
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 9402,
                        "end": 9412,
                        "loc": {
                          "start": {
                            "line": 238,
                            "column": 11
                          },
                          "end": {
                            "line": 238,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 9402,
                          "end": 9406,
                          "loc": {
                            "start": {
                              "line": 238,
                              "column": 11
                            },
                            "end": {
                              "line": 238,
                              "column": 15
                            }
                          },
                          "name": "dirA"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 9407,
                          "end": 9412,
                          "loc": {
                            "start": {
                              "line": 238,
                              "column": 16
                            },
                            "end": {
                              "line": 238,
                              "column": 21
                            }
                          },
                          "name": "clone"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9415,
                      "end": 9424,
                      "loc": {
                        "start": {
                          "line": 238,
                          "column": 24
                        },
                        "end": {
                          "line": 238,
                          "column": 33
                        }
                      },
                      "name": "normalize"
                    },
                    "computed": false
                  },
                  "arguments": []
                },
                "leadingComments": null
              },
              "leadingComments": [
                {
                  "type": "CommentLine",
                  "value": "mach.eps. by default",
                  "start": 9367,
                  "end": 9389,
                  "loc": {
                    "start": {
                      "line": 237,
                      "column": 50
                    },
                    "end": {
                      "line": 237,
                      "column": 72
                    }
                  },
                  "range": [
                    9367,
                    9389
                  ]
                }
              ]
            },
            {
              "type": "ExpressionStatement",
              "start": 9433,
              "end": 9465,
              "loc": {
                "start": {
                  "line": 239,
                  "column": 4
                },
                "end": {
                  "line": 239,
                  "column": 36
                }
              },
              "expression": {
                "type": "AssignmentExpression",
                "start": 9433,
                "end": 9464,
                "loc": {
                  "start": {
                    "line": 239,
                    "column": 4
                  },
                  "end": {
                    "line": 239,
                    "column": 35
                  }
                },
                "operator": "=",
                "left": {
                  "type": "Identifier",
                  "start": 9433,
                  "end": 9437,
                  "loc": {
                    "start": {
                      "line": 239,
                      "column": 4
                    },
                    "end": {
                      "line": 239,
                      "column": 8
                    }
                  },
                  "name": "dirB"
                },
                "right": {
                  "type": "CallExpression",
                  "start": 9440,
                  "end": 9464,
                  "loc": {
                    "start": {
                      "line": 239,
                      "column": 11
                    },
                    "end": {
                      "line": 239,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9440,
                    "end": 9462,
                    "loc": {
                      "start": {
                        "line": 239,
                        "column": 11
                      },
                      "end": {
                        "line": 239,
                        "column": 33
                      }
                    },
                    "object": {
                      "type": "CallExpression",
                      "start": 9440,
                      "end": 9452,
                      "loc": {
                        "start": {
                          "line": 239,
                          "column": 11
                        },
                        "end": {
                          "line": 239,
                          "column": 23
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 9440,
                        "end": 9450,
                        "loc": {
                          "start": {
                            "line": 239,
                            "column": 11
                          },
                          "end": {
                            "line": 239,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 9440,
                          "end": 9444,
                          "loc": {
                            "start": {
                              "line": 239,
                              "column": 11
                            },
                            "end": {
                              "line": 239,
                              "column": 15
                            }
                          },
                          "name": "dirB"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 9445,
                          "end": 9450,
                          "loc": {
                            "start": {
                              "line": 239,
                              "column": 16
                            },
                            "end": {
                              "line": 239,
                              "column": 21
                            }
                          },
                          "name": "clone"
                        },
                        "computed": false
                      },
                      "arguments": []
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9453,
                      "end": 9462,
                      "loc": {
                        "start": {
                          "line": 239,
                          "column": 24
                        },
                        "end": {
                          "line": 239,
                          "column": 33
                        }
                      },
                      "name": "normalize"
                    },
                    "computed": false
                  },
                  "arguments": []
                }
              }
            },
            {
              "type": "IfStatement",
              "start": 9471,
              "end": 9552,
              "loc": {
                "start": {
                  "line": 240,
                  "column": 4
                },
                "end": {
                  "line": 241,
                  "column": 20
                }
              },
              "test": {
                "type": "LogicalExpression",
                "start": 9475,
                "end": 9517,
                "loc": {
                  "start": {
                    "line": 240,
                    "column": 8
                  },
                  "end": {
                    "line": 240,
                    "column": 50
                  }
                },
                "left": {
                  "type": "BinaryExpression",
                  "start": 9475,
                  "end": 9494,
                  "loc": {
                    "start": {
                      "line": 240,
                      "column": 8
                    },
                    "end": {
                      "line": 240,
                      "column": 27
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 9475,
                    "end": 9488,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 8
                      },
                      "end": {
                        "line": 240,
                        "column": 21
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9475,
                      "end": 9486,
                      "loc": {
                        "start": {
                          "line": 240,
                          "column": 8
                        },
                        "end": {
                          "line": 240,
                          "column": 19
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9475,
                        "end": 9479,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 8
                          },
                          "end": {
                            "line": 240,
                            "column": 12
                          }
                        },
                        "name": "dirA"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9480,
                        "end": 9486,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 13
                          },
                          "end": {
                            "line": 240,
                            "column": 19
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 9491,
                    "end": 9494,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 24
                      },
                      "end": {
                        "line": 240,
                        "column": 27
                      }
                    },
                    "value": 0.9,
                    "rawValue": 0.9,
                    "raw": "0.9"
                  }
                },
                "operator": "||",
                "right": {
                  "type": "BinaryExpression",
                  "start": 9498,
                  "end": 9517,
                  "loc": {
                    "start": {
                      "line": 240,
                      "column": 31
                    },
                    "end": {
                      "line": 240,
                      "column": 50
                    }
                  },
                  "left": {
                    "type": "CallExpression",
                    "start": 9498,
                    "end": 9511,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 31
                      },
                      "end": {
                        "line": 240,
                        "column": 44
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9498,
                      "end": 9509,
                      "loc": {
                        "start": {
                          "line": 240,
                          "column": 31
                        },
                        "end": {
                          "line": 240,
                          "column": 42
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9498,
                        "end": 9502,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 31
                          },
                          "end": {
                            "line": 240,
                            "column": 35
                          }
                        },
                        "name": "dirB"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9503,
                        "end": 9509,
                        "loc": {
                          "start": {
                            "line": 240,
                            "column": 36
                          },
                          "end": {
                            "line": 240,
                            "column": 42
                          }
                        },
                        "name": "length"
                      },
                      "computed": false
                    },
                    "arguments": []
                  },
                  "operator": "<",
                  "right": {
                    "type": "Literal",
                    "start": 9514,
                    "end": 9517,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 47
                      },
                      "end": {
                        "line": 240,
                        "column": 50
                      }
                    },
                    "value": 0.9,
                    "rawValue": 0.9,
                    "raw": "0.9"
                  }
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 9540,
                "end": 9552,
                "loc": {
                  "start": {
                    "line": 241,
                    "column": 8
                  },
                  "end": {
                    "line": 241,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 9547,
                  "end": 9551,
                  "loc": {
                    "start": {
                      "line": 241,
                      "column": 15
                    },
                    "end": {
                      "line": 241,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null",
                  "leadingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": "must be 1",
                    "start": 9519,
                    "end": 9530,
                    "loc": {
                      "start": {
                        "line": 240,
                        "column": 52
                      },
                      "end": {
                        "line": 240,
                        "column": 63
                      }
                    },
                    "range": [
                      9519,
                      9530
                    ]
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 9558,
              "end": 9594,
              "loc": {
                "start": {
                  "line": 242,
                  "column": 4
                },
                "end": {
                  "line": 242,
                  "column": 40
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9562,
                  "end": 9593,
                  "loc": {
                    "start": {
                      "line": 242,
                      "column": 8
                    },
                    "end": {
                      "line": 242,
                      "column": 39
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9562,
                    "end": 9565,
                    "loc": {
                      "start": {
                        "line": 242,
                        "column": 8
                      },
                      "end": {
                        "line": 242,
                        "column": 11
                      }
                    },
                    "name": "PxQ"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9568,
                    "end": 9593,
                    "loc": {
                      "start": {
                        "line": 242,
                        "column": 14
                      },
                      "end": {
                        "line": 242,
                        "column": 39
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9568,
                      "end": 9581,
                      "loc": {
                        "start": {
                          "line": 242,
                          "column": 14
                        },
                        "end": {
                          "line": 242,
                          "column": 27
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9568,
                        "end": 9573,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 14
                          },
                          "end": {
                            "line": 242,
                            "column": 19
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9574,
                        "end": 9581,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 20
                          },
                          "end": {
                            "line": 242,
                            "column": 27
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9582,
                        "end": 9586,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 28
                          },
                          "end": {
                            "line": 242,
                            "column": 32
                          }
                        },
                        "name": "dirA"
                      },
                      {
                        "type": "Identifier",
                        "start": 9588,
                        "end": 9592,
                        "loc": {
                          "start": {
                            "line": 242,
                            "column": 34
                          },
                          "end": {
                            "line": 242,
                            "column": 38
                          }
                        },
                        "name": "dirB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "IfStatement",
              "start": 9600,
              "end": 9660,
              "loc": {
                "start": {
                  "line": 243,
                  "column": 4
                },
                "end": {
                  "line": 244,
                  "column": 20
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 9604,
                "end": 9637,
                "loc": {
                  "start": {
                    "line": 243,
                    "column": 8
                  },
                  "end": {
                    "line": 243,
                    "column": 41
                  }
                },
                "left": {
                  "type": "CallExpression",
                  "start": 9604,
                  "end": 9617,
                  "loc": {
                    "start": {
                      "line": 243,
                      "column": 8
                    },
                    "end": {
                      "line": 243,
                      "column": 21
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 9604,
                    "end": 9612,
                    "loc": {
                      "start": {
                        "line": 243,
                        "column": 8
                      },
                      "end": {
                        "line": 243,
                        "column": 16
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 9604,
                      "end": 9608,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 8
                        },
                        "end": {
                          "line": 243,
                          "column": 12
                        }
                      },
                      "name": "Math"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 9609,
                      "end": 9612,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 13
                        },
                        "end": {
                          "line": 243,
                          "column": 16
                        }
                      },
                      "name": "abs"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 9613,
                      "end": 9616,
                      "loc": {
                        "start": {
                          "line": 243,
                          "column": 17
                        },
                        "end": {
                          "line": 243,
                          "column": 20
                        }
                      },
                      "name": "PxQ"
                    }
                  ]
                },
                "operator": "<=",
                "right": {
                  "type": "Identifier",
                  "start": 9621,
                  "end": 9637,
                  "loc": {
                    "start": {
                      "line": 243,
                      "column": 25
                    },
                    "end": {
                      "line": 243,
                      "column": 41
                    }
                  },
                  "name": "angularTolerance"
                }
              },
              "consequent": {
                "type": "ReturnStatement",
                "start": 9648,
                "end": 9660,
                "loc": {
                  "start": {
                    "line": 244,
                    "column": 8
                  },
                  "end": {
                    "line": 244,
                    "column": 20
                  }
                },
                "argument": {
                  "type": "Literal",
                  "start": 9655,
                  "end": 9659,
                  "loc": {
                    "start": {
                      "line": 244,
                      "column": 15
                    },
                    "end": {
                      "line": 244,
                      "column": 19
                    }
                  },
                  "value": null,
                  "rawValue": null,
                  "raw": "null"
                }
              },
              "alternate": null
            },
            {
              "type": "VariableDeclaration",
              "start": 9666,
              "end": 9722,
              "loc": {
                "start": {
                  "line": 245,
                  "column": 4
                },
                "end": {
                  "line": 245,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9670,
                  "end": 9721,
                  "loc": {
                    "start": {
                      "line": 245,
                      "column": 8
                    },
                    "end": {
                      "line": 245,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9670,
                    "end": 9675,
                    "loc": {
                      "start": {
                        "line": 245,
                        "column": 8
                      },
                      "end": {
                        "line": 245,
                        "column": 13
                      }
                    },
                    "name": "BmAxQ"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9678,
                    "end": 9721,
                    "loc": {
                      "start": {
                        "line": 245,
                        "column": 16
                      },
                      "end": {
                        "line": 245,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9678,
                      "end": 9691,
                      "loc": {
                        "start": {
                          "line": 245,
                          "column": 16
                        },
                        "end": {
                          "line": 245,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9678,
                        "end": 9683,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 16
                          },
                          "end": {
                            "line": 245,
                            "column": 21
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9684,
                        "end": 9691,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 22
                          },
                          "end": {
                            "line": 245,
                            "column": 29
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 9692,
                        "end": 9714,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 30
                          },
                          "end": {
                            "line": 245,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9692,
                          "end": 9708,
                          "loc": {
                            "start": {
                              "line": 245,
                              "column": 30
                            },
                            "end": {
                              "line": 245,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9692,
                            "end": 9704,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 30
                              },
                              "end": {
                                "line": 245,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9692,
                              "end": 9702,
                              "loc": {
                                "start": {
                                  "line": 245,
                                  "column": 30
                                },
                                "end": {
                                  "line": 245,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9692,
                                "end": 9696,
                                "loc": {
                                  "start": {
                                    "line": 245,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 245,
                                    "column": 34
                                  }
                                },
                                "name": "pntB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9697,
                                "end": 9702,
                                "loc": {
                                  "start": {
                                    "line": 245,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 245,
                                    "column": 40
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9705,
                            "end": 9708,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 43
                              },
                              "end": {
                                "line": 245,
                                "column": 46
                              }
                            },
                            "name": "sub"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9709,
                            "end": 9713,
                            "loc": {
                              "start": {
                                "line": 245,
                                "column": 47
                              },
                              "end": {
                                "line": 245,
                                "column": 51
                              }
                            },
                            "name": "pntA"
                          }
                        ]
                      },
                      {
                        "type": "Identifier",
                        "start": 9716,
                        "end": 9720,
                        "loc": {
                          "start": {
                            "line": 245,
                            "column": 54
                          },
                          "end": {
                            "line": 245,
                            "column": 58
                          }
                        },
                        "name": "dirB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9728,
              "end": 9784,
              "loc": {
                "start": {
                  "line": 246,
                  "column": 4
                },
                "end": {
                  "line": 246,
                  "column": 60
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9732,
                  "end": 9783,
                  "loc": {
                    "start": {
                      "line": 246,
                      "column": 8
                    },
                    "end": {
                      "line": 246,
                      "column": 59
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9732,
                    "end": 9737,
                    "loc": {
                      "start": {
                        "line": 246,
                        "column": 8
                      },
                      "end": {
                        "line": 246,
                        "column": 13
                      }
                    },
                    "name": "BmAxP"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9740,
                    "end": 9783,
                    "loc": {
                      "start": {
                        "line": 246,
                        "column": 16
                      },
                      "end": {
                        "line": 246,
                        "column": 59
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9740,
                      "end": 9753,
                      "loc": {
                        "start": {
                          "line": 246,
                          "column": 16
                        },
                        "end": {
                          "line": 246,
                          "column": 29
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 9740,
                        "end": 9745,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 16
                          },
                          "end": {
                            "line": 246,
                            "column": 21
                          }
                        },
                        "name": "THREE"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9746,
                        "end": 9753,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 22
                          },
                          "end": {
                            "line": 246,
                            "column": 29
                          }
                        },
                        "name": "cross2d"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "CallExpression",
                        "start": 9754,
                        "end": 9776,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 30
                          },
                          "end": {
                            "line": 246,
                            "column": 52
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9754,
                          "end": 9770,
                          "loc": {
                            "start": {
                              "line": 246,
                              "column": 30
                            },
                            "end": {
                              "line": 246,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9754,
                            "end": 9766,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 30
                              },
                              "end": {
                                "line": 246,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9754,
                              "end": 9764,
                              "loc": {
                                "start": {
                                  "line": 246,
                                  "column": 30
                                },
                                "end": {
                                  "line": 246,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9754,
                                "end": 9758,
                                "loc": {
                                  "start": {
                                    "line": 246,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 246,
                                    "column": 34
                                  }
                                },
                                "name": "pntB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9759,
                                "end": 9764,
                                "loc": {
                                  "start": {
                                    "line": 246,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 246,
                                    "column": 40
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9767,
                            "end": 9770,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 43
                              },
                              "end": {
                                "line": 246,
                                "column": 46
                              }
                            },
                            "name": "sub"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9771,
                            "end": 9775,
                            "loc": {
                              "start": {
                                "line": 246,
                                "column": 47
                              },
                              "end": {
                                "line": 246,
                                "column": 51
                              }
                            },
                            "name": "pntA"
                          }
                        ]
                      },
                      {
                        "type": "Identifier",
                        "start": 9778,
                        "end": 9782,
                        "loc": {
                          "start": {
                            "line": 246,
                            "column": 54
                          },
                          "end": {
                            "line": 246,
                            "column": 58
                          }
                        },
                        "name": "dirA"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9790,
              "end": 9815,
              "loc": {
                "start": {
                  "line": 247,
                  "column": 4
                },
                "end": {
                  "line": 247,
                  "column": 29
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9794,
                  "end": 9814,
                  "loc": {
                    "start": {
                      "line": 247,
                      "column": 8
                    },
                    "end": {
                      "line": 247,
                      "column": 28
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9794,
                    "end": 9800,
                    "loc": {
                      "start": {
                        "line": 247,
                        "column": 8
                      },
                      "end": {
                        "line": 247,
                        "column": 14
                      }
                    },
                    "name": "paramA"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 9803,
                    "end": 9814,
                    "loc": {
                      "start": {
                        "line": 247,
                        "column": 17
                      },
                      "end": {
                        "line": 247,
                        "column": 28
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 9803,
                      "end": 9808,
                      "loc": {
                        "start": {
                          "line": 247,
                          "column": 17
                        },
                        "end": {
                          "line": 247,
                          "column": 22
                        }
                      },
                      "name": "BmAxQ"
                    },
                    "operator": "/",
                    "right": {
                      "type": "Identifier",
                      "start": 9811,
                      "end": 9814,
                      "loc": {
                        "start": {
                          "line": 247,
                          "column": 25
                        },
                        "end": {
                          "line": 247,
                          "column": 28
                        }
                      },
                      "name": "PxQ"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9821,
              "end": 9846,
              "loc": {
                "start": {
                  "line": 248,
                  "column": 4
                },
                "end": {
                  "line": 248,
                  "column": 29
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9825,
                  "end": 9845,
                  "loc": {
                    "start": {
                      "line": 248,
                      "column": 8
                    },
                    "end": {
                      "line": 248,
                      "column": 28
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9825,
                    "end": 9831,
                    "loc": {
                      "start": {
                        "line": 248,
                        "column": 8
                      },
                      "end": {
                        "line": 248,
                        "column": 14
                      }
                    },
                    "name": "paramB"
                  },
                  "init": {
                    "type": "BinaryExpression",
                    "start": 9834,
                    "end": 9845,
                    "loc": {
                      "start": {
                        "line": 248,
                        "column": 17
                      },
                      "end": {
                        "line": 248,
                        "column": 28
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 9834,
                      "end": 9839,
                      "loc": {
                        "start": {
                          "line": 248,
                          "column": 17
                        },
                        "end": {
                          "line": 248,
                          "column": 22
                        }
                      },
                      "name": "BmAxP"
                    },
                    "operator": "/",
                    "right": {
                      "type": "Identifier",
                      "start": 9842,
                      "end": 9845,
                      "loc": {
                        "start": {
                          "line": 248,
                          "column": 25
                        },
                        "end": {
                          "line": 248,
                          "column": 28
                        }
                      },
                      "name": "PxQ"
                    }
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9852,
              "end": 9912,
              "loc": {
                "start": {
                  "line": 249,
                  "column": 4
                },
                "end": {
                  "line": 249,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9856,
                  "end": 9911,
                  "loc": {
                    "start": {
                      "line": 249,
                      "column": 8
                    },
                    "end": {
                      "line": 249,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9856,
                    "end": 9863,
                    "loc": {
                      "start": {
                        "line": 249,
                        "column": 8
                      },
                      "end": {
                        "line": 249,
                        "column": 15
                      }
                    },
                    "name": "intersA"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9866,
                    "end": 9911,
                    "loc": {
                      "start": {
                        "line": 249,
                        "column": 18
                      },
                      "end": {
                        "line": 249,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9866,
                      "end": 9905,
                      "loc": {
                        "start": {
                          "line": 249,
                          "column": 18
                        },
                        "end": {
                          "line": 249,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9866,
                        "end": 9901,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 18
                          },
                          "end": {
                            "line": 249,
                            "column": 53
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9866,
                          "end": 9893,
                          "loc": {
                            "start": {
                              "line": 249,
                              "column": 18
                            },
                            "end": {
                              "line": 249,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9866,
                            "end": 9878,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 18
                              },
                              "end": {
                                "line": 249,
                                "column": 30
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9866,
                              "end": 9876,
                              "loc": {
                                "start": {
                                  "line": 249,
                                  "column": 18
                                },
                                "end": {
                                  "line": 249,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9866,
                                "end": 9870,
                                "loc": {
                                  "start": {
                                    "line": 249,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 249,
                                    "column": 22
                                  }
                                },
                                "name": "dirA"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9871,
                                "end": 9876,
                                "loc": {
                                  "start": {
                                    "line": 249,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 249,
                                    "column": 28
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9879,
                            "end": 9893,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 31
                              },
                              "end": {
                                "line": 249,
                                "column": 45
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9894,
                            "end": 9900,
                            "loc": {
                              "start": {
                                "line": 249,
                                "column": 46
                              },
                              "end": {
                                "line": 249,
                                "column": 52
                              }
                            },
                            "name": "paramA"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9902,
                        "end": 9905,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 54
                          },
                          "end": {
                            "line": 249,
                            "column": 57
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9906,
                        "end": 9910,
                        "loc": {
                          "start": {
                            "line": 249,
                            "column": 58
                          },
                          "end": {
                            "line": 249,
                            "column": 62
                          }
                        },
                        "name": "pntA"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9918,
              "end": 9978,
              "loc": {
                "start": {
                  "line": 250,
                  "column": 4
                },
                "end": {
                  "line": 250,
                  "column": 64
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9922,
                  "end": 9977,
                  "loc": {
                    "start": {
                      "line": 250,
                      "column": 8
                    },
                    "end": {
                      "line": 250,
                      "column": 63
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9922,
                    "end": 9929,
                    "loc": {
                      "start": {
                        "line": 250,
                        "column": 8
                      },
                      "end": {
                        "line": 250,
                        "column": 15
                      }
                    },
                    "name": "intersB"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9932,
                    "end": 9977,
                    "loc": {
                      "start": {
                        "line": 250,
                        "column": 18
                      },
                      "end": {
                        "line": 250,
                        "column": 63
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9932,
                      "end": 9971,
                      "loc": {
                        "start": {
                          "line": 250,
                          "column": 18
                        },
                        "end": {
                          "line": 250,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9932,
                        "end": 9967,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 18
                          },
                          "end": {
                            "line": 250,
                            "column": 53
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9932,
                          "end": 9959,
                          "loc": {
                            "start": {
                              "line": 250,
                              "column": 18
                            },
                            "end": {
                              "line": 250,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9932,
                            "end": 9944,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 18
                              },
                              "end": {
                                "line": 250,
                                "column": 30
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9932,
                              "end": 9942,
                              "loc": {
                                "start": {
                                  "line": 250,
                                  "column": 18
                                },
                                "end": {
                                  "line": 250,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9932,
                                "end": 9936,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 22
                                  }
                                },
                                "name": "dirB"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 9937,
                                "end": 9942,
                                "loc": {
                                  "start": {
                                    "line": 250,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 250,
                                    "column": 28
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 9945,
                            "end": 9959,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 31
                              },
                              "end": {
                                "line": 250,
                                "column": 45
                              }
                            },
                            "name": "multiplyScalar"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 9960,
                            "end": 9966,
                            "loc": {
                              "start": {
                                "line": 250,
                                "column": 46
                              },
                              "end": {
                                "line": 250,
                                "column": 52
                              }
                            },
                            "name": "paramB"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 9968,
                        "end": 9971,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 54
                          },
                          "end": {
                            "line": 250,
                            "column": 57
                          }
                        },
                        "name": "add"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 9972,
                        "end": 9976,
                        "loc": {
                          "start": {
                            "line": 250,
                            "column": 58
                          },
                          "end": {
                            "line": 250,
                            "column": 62
                          }
                        },
                        "name": "pntB"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "VariableDeclaration",
              "start": 9984,
              "end": 10046,
              "loc": {
                "start": {
                  "line": 251,
                  "column": 4
                },
                "end": {
                  "line": 251,
                  "column": 66
                }
              },
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "start": 9988,
                  "end": 10045,
                  "loc": {
                    "start": {
                      "line": 251,
                      "column": 8
                    },
                    "end": {
                      "line": 251,
                      "column": 65
                    }
                  },
                  "id": {
                    "type": "Identifier",
                    "start": 9988,
                    "end": 9994,
                    "loc": {
                      "start": {
                        "line": 251,
                        "column": 8
                      },
                      "end": {
                        "line": 251,
                        "column": 14
                      }
                    },
                    "name": "inters"
                  },
                  "init": {
                    "type": "CallExpression",
                    "start": 9997,
                    "end": 10045,
                    "loc": {
                      "start": {
                        "line": 251,
                        "column": 17
                      },
                      "end": {
                        "line": 251,
                        "column": 65
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 9997,
                      "end": 10040,
                      "loc": {
                        "start": {
                          "line": 251,
                          "column": 17
                        },
                        "end": {
                          "line": 251,
                          "column": 60
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 9997,
                        "end": 10025,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 17
                          },
                          "end": {
                            "line": 251,
                            "column": 45
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 9997,
                          "end": 10016,
                          "loc": {
                            "start": {
                              "line": 251,
                              "column": 17
                            },
                            "end": {
                              "line": 251,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 9997,
                            "end": 10012,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 17
                              },
                              "end": {
                                "line": 251,
                                "column": 32
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 9997,
                              "end": 10010,
                              "loc": {
                                "start": {
                                  "line": 251,
                                  "column": 17
                                },
                                "end": {
                                  "line": 251,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 9997,
                                "end": 10004,
                                "loc": {
                                  "start": {
                                    "line": 251,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 251,
                                    "column": 24
                                  }
                                },
                                "name": "intersA"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 10005,
                                "end": 10010,
                                "loc": {
                                  "start": {
                                    "line": 251,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 251,
                                    "column": 30
                                  }
                                },
                                "name": "clone"
                              },
                              "computed": false
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 10013,
                            "end": 10016,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 33
                              },
                              "end": {
                                "line": 251,
                                "column": 36
                              }
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 10017,
                            "end": 10024,
                            "loc": {
                              "start": {
                                "line": 251,
                                "column": 37
                              },
                              "end": {
                                "line": 251,
                                "column": 44
                              }
                            },
                            "name": "intersB"
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 10026,
                        "end": 10040,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 46
                          },
                          "end": {
                            "line": 251,
                            "column": 60
                          }
                        },
                        "name": "multiplyScalar"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Literal",
                        "start": 10041,
                        "end": 10044,
                        "loc": {
                          "start": {
                            "line": 251,
                            "column": 61
                          },
                          "end": {
                            "line": 251,
                            "column": 64
                          }
                        },
                        "value": 0.5,
                        "rawValue": 0.5,
                        "raw": "0.5"
                      }
                    ]
                  }
                }
              ],
              "kind": "var"
            },
            {
              "type": "ReturnStatement",
              "start": 10052,
              "end": 10066,
              "loc": {
                "start": {
                  "line": 252,
                  "column": 4
                },
                "end": {
                  "line": 252,
                  "column": 18
                }
              },
              "argument": {
                "type": "Identifier",
                "start": 10059,
                "end": 10065,
                "loc": {
                  "start": {
                    "line": 252,
                    "column": 11
                  },
                  "end": {
                    "line": 252,
                    "column": 17
                  }
                },
                "name": "inters"
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": "returns intersection point of given two lines",
            "start": 9115,
            "end": 9162,
            "loc": {
              "start": {
                "line": 234,
                "column": 0
              },
              "end": {
                "line": 234,
                "column": 47
              }
            },
            "range": [
              9115,
              9162
            ]
          },
          {
            "type": "CommentLine",
            "value": "if angularTolerance is set, then null is returned when lines are parallel",
            "start": 9164,
            "end": 9239,
            "loc": {
              "start": {
                "line": 235,
                "column": 0
              },
              "end": {
                "line": 235,
                "column": 75
              }
            },
            "range": [
              9164,
              9239
            ]
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": "returns intersection point of given two lines",
          "start": 9115,
          "end": 9162,
          "loc": {
            "start": {
              "line": 234,
              "column": 0
            },
            "end": {
              "line": 234,
              "column": 47
            }
          },
          "range": [
            9115,
            9162
          ]
        },
        {
          "type": "CommentLine",
          "value": "if angularTolerance is set, then null is returned when lines are parallel",
          "start": 9164,
          "end": 9239,
          "loc": {
            "start": {
              "line": 235,
              "column": 0
            },
            "end": {
              "line": 235,
              "column": 75
            }
          },
          "range": [
            9164,
            9239
          ]
        }
      ]
    },
    {
      "type": "EmptyStatement",
      "start": 10069,
      "end": 10070,
      "loc": {
        "start": {
          "line": 253,
          "column": 1
        },
        "end": {
          "line": 253,
          "column": 2
        }
      }
    }
  ]
}