{
  "type": "File",
  "start": 0,
  "end": 1279,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 42,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 1279,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 42,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 33,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 33
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 7,
            "end": 18,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 18
              }
            },
            "local": {
              "type": "Identifier",
              "start": 7,
              "end": 18,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 7
                },
                "end": {
                  "line": 1,
                  "column": 18
                },
                "identifierName": "DragHandler"
              },
              "name": "DragHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 24,
          "end": 32,
          "loc": {
            "start": {
              "line": 1,
              "column": 24
            },
            "end": {
              "line": 1,
              "column": 32
            }
          },
          "extra": {
            "rawValue": "./drag",
            "raw": "'./drag'"
          },
          "value": "./drag"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 34,
        "end": 67,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 33
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 41,
            "end": 52,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 18
              }
            },
            "local": {
              "type": "Identifier",
              "start": 41,
              "end": 52,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 18
                },
                "identifierName": "DrawHandler"
              },
              "name": "DrawHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 58,
          "end": 66,
          "loc": {
            "start": {
              "line": 2,
              "column": 24
            },
            "end": {
              "line": 2,
              "column": 32
            }
          },
          "extra": {
            "rawValue": "./draw",
            "raw": "'./draw'"
          },
          "value": "./draw"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 68,
        "end": 103,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 35
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 75,
            "end": 87,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 19
              }
            },
            "local": {
              "type": "Identifier",
              "start": 75,
              "end": 87,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 7
                },
                "end": {
                  "line": 3,
                  "column": 19
                },
                "identifierName": "AngleHandler"
              },
              "name": "AngleHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 93,
          "end": 102,
          "loc": {
            "start": {
              "line": 3,
              "column": 25
            },
            "end": {
              "line": 3,
              "column": 34
            }
          },
          "extra": {
            "rawValue": "./angle",
            "raw": "'./angle'"
          },
          "value": "./angle"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 104,
        "end": 141,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 37
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 111,
            "end": 124,
            "loc": {
              "start": {
                "line": 4,
                "column": 7
              },
              "end": {
                "line": 4,
                "column": 20
              }
            },
            "local": {
              "type": "Identifier",
              "start": 111,
              "end": 124,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 7
                },
                "end": {
                  "line": 4,
                  "column": 20
                },
                "identifierName": "FilletHandler"
              },
              "name": "FilletHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 130,
          "end": 140,
          "loc": {
            "start": {
              "line": 4,
              "column": 26
            },
            "end": {
              "line": 4,
              "column": 36
            }
          },
          "extra": {
            "rawValue": "./fillet",
            "raw": "'./fillet'"
          },
          "value": "./fillet"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 142,
        "end": 185,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 43
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 149,
            "end": 165,
            "loc": {
              "start": {
                "line": 5,
                "column": 7
              },
              "end": {
                "line": 5,
                "column": 23
              }
            },
            "local": {
              "type": "Identifier",
              "start": 149,
              "end": 165,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 7
                },
                "end": {
                  "line": 5,
                  "column": 23
                },
                "identifierName": "DuplicateHandler"
              },
              "name": "DuplicateHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 171,
          "end": 184,
          "loc": {
            "start": {
              "line": 5,
              "column": 29
            },
            "end": {
              "line": 5,
              "column": 42
            }
          },
          "extra": {
            "rawValue": "./duplicate",
            "raw": "'./duplicate'"
          },
          "value": "./duplicate"
        }
      },
      {
        "type": "FunctionDeclaration",
        "start": 187,
        "end": 652,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 25,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 196,
          "end": 211,
          "loc": {
            "start": {
              "line": 7,
              "column": 9
            },
            "end": {
              "line": 7,
              "column": 24
            },
            "identifierName": "getHandlerClass"
          },
          "name": "getHandlerClass"
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 212,
            "end": 216,
            "loc": {
              "start": {
                "line": 7,
                "column": 25
              },
              "end": {
                "line": 7,
                "column": 29
              },
              "identifierName": "name"
            },
            "name": "name"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 218,
          "end": 652,
          "loc": {
            "start": {
              "line": 7,
              "column": 31
            },
            "end": {
              "line": 25,
              "column": 1
            }
          },
          "body": [
            {
              "type": "SwitchStatement",
              "start": 224,
              "end": 650,
              "loc": {
                "start": {
                  "line": 8,
                  "column": 4
                },
                "end": {
                  "line": 24,
                  "column": 5
                }
              },
              "discriminant": {
                "type": "Identifier",
                "start": 232,
                "end": 236,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 12
                  },
                  "end": {
                    "line": 8,
                    "column": 16
                  },
                  "identifierName": "name"
                },
                "name": "name"
              },
              "cases": [
                {
                  "type": "SwitchCase",
                  "start": 248,
                  "end": 292,
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 8
                    },
                    "end": {
                      "line": 10,
                      "column": 31
                    }
                  },
                  "consequent": [
                    {
                      "type": "ReturnStatement",
                      "start": 273,
                      "end": 292,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 12
                        },
                        "end": {
                          "line": 10,
                          "column": 31
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 280,
                        "end": 291,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 19
                          },
                          "end": {
                            "line": 10,
                            "column": 30
                          },
                          "identifierName": "DragHandler"
                        },
                        "name": "DragHandler"
                      }
                    }
                  ],
                  "test": {
                    "type": "StringLiteral",
                    "start": 253,
                    "end": 259,
                    "loc": {
                      "start": {
                        "line": 9,
                        "column": 13
                      },
                      "end": {
                        "line": 9,
                        "column": 19
                      }
                    },
                    "extra": {
                      "rawValue": "drag",
                      "raw": "'drag'"
                    },
                    "value": "drag"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 301,
                  "end": 314,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 8
                    },
                    "end": {
                      "line": 11,
                      "column": 21
                    }
                  },
                  "consequent": [],
                  "test": {
                    "type": "StringLiteral",
                    "start": 306,
                    "end": 313,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 13
                      },
                      "end": {
                        "line": 11,
                        "column": 20
                      }
                    },
                    "extra": {
                      "rawValue": "point",
                      "raw": "'point'"
                    },
                    "value": "point"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 323,
                  "end": 335,
                  "loc": {
                    "start": {
                      "line": 12,
                      "column": 8
                    },
                    "end": {
                      "line": 12,
                      "column": 20
                    }
                  },
                  "consequent": [],
                  "test": {
                    "type": "StringLiteral",
                    "start": 328,
                    "end": 334,
                    "loc": {
                      "start": {
                        "line": 12,
                        "column": 13
                      },
                      "end": {
                        "line": 12,
                        "column": 19
                      }
                    },
                    "extra": {
                      "rawValue": "line",
                      "raw": "'line'"
                    },
                    "value": "line"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 344,
                  "end": 361,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 8
                    },
                    "end": {
                      "line": 13,
                      "column": 25
                    }
                  },
                  "consequent": [],
                  "test": {
                    "type": "StringLiteral",
                    "start": 349,
                    "end": 360,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 13
                      },
                      "end": {
                        "line": 13,
                        "column": 24
                      }
                    },
                    "extra": {
                      "rawValue": "arccenter",
                      "raw": "'arccenter'"
                    },
                    "value": "arccenter"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 370,
                  "end": 387,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 8
                    },
                    "end": {
                      "line": 14,
                      "column": 25
                    }
                  },
                  "consequent": [],
                  "test": {
                    "type": "StringLiteral",
                    "start": 375,
                    "end": 386,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 13
                      },
                      "end": {
                        "line": 14,
                        "column": 24
                      }
                    },
                    "extra": {
                      "rawValue": "arcmiddle",
                      "raw": "'arcmiddle'"
                    },
                    "value": "arcmiddle"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 396,
                  "end": 414,
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 8
                    },
                    "end": {
                      "line": 15,
                      "column": 26
                    }
                  },
                  "consequent": [],
                  "test": {
                    "type": "StringLiteral",
                    "start": 401,
                    "end": 413,
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 13
                      },
                      "end": {
                        "line": 15,
                        "column": 25
                      }
                    },
                    "extra": {
                      "rawValue": "arctangent",
                      "raw": "'arctangent'"
                    },
                    "value": "arctangent"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 423,
                  "end": 469,
                  "loc": {
                    "start": {
                      "line": 16,
                      "column": 8
                    },
                    "end": {
                      "line": 17,
                      "column": 31
                    }
                  },
                  "consequent": [
                    {
                      "type": "ReturnStatement",
                      "start": 450,
                      "end": 469,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 12
                        },
                        "end": {
                          "line": 17,
                          "column": 31
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 457,
                        "end": 468,
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 19
                          },
                          "end": {
                            "line": 17,
                            "column": 30
                          },
                          "identifierName": "DrawHandler"
                        },
                        "name": "DrawHandler"
                      }
                    }
                  ],
                  "test": {
                    "type": "StringLiteral",
                    "start": 428,
                    "end": 436,
                    "loc": {
                      "start": {
                        "line": 16,
                        "column": 13
                      },
                      "end": {
                        "line": 16,
                        "column": 21
                      }
                    },
                    "extra": {
                      "rawValue": "circle",
                      "raw": "'circle'"
                    },
                    "value": "circle"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 478,
                  "end": 524,
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 8
                    },
                    "end": {
                      "line": 19,
                      "column": 32
                    }
                  },
                  "consequent": [
                    {
                      "type": "ReturnStatement",
                      "start": 504,
                      "end": 524,
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 12
                        },
                        "end": {
                          "line": 19,
                          "column": 32
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 511,
                        "end": 523,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 19
                          },
                          "end": {
                            "line": 19,
                            "column": 31
                          },
                          "identifierName": "AngleHandler"
                        },
                        "name": "AngleHandler"
                      }
                    }
                  ],
                  "test": {
                    "type": "StringLiteral",
                    "start": 483,
                    "end": 490,
                    "loc": {
                      "start": {
                        "line": 18,
                        "column": 13
                      },
                      "end": {
                        "line": 18,
                        "column": 20
                      }
                    },
                    "extra": {
                      "rawValue": "angle",
                      "raw": "'angle'"
                    },
                    "value": "angle"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 533,
                  "end": 581,
                  "loc": {
                    "start": {
                      "line": 20,
                      "column": 8
                    },
                    "end": {
                      "line": 21,
                      "column": 33
                    }
                  },
                  "consequent": [
                    {
                      "type": "ReturnStatement",
                      "start": 560,
                      "end": 581,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 12
                        },
                        "end": {
                          "line": 21,
                          "column": 33
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 567,
                        "end": 580,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 19
                          },
                          "end": {
                            "line": 21,
                            "column": 32
                          },
                          "identifierName": "FilletHandler"
                        },
                        "name": "FilletHandler"
                      }
                    }
                  ],
                  "test": {
                    "type": "StringLiteral",
                    "start": 538,
                    "end": 546,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 13
                      },
                      "end": {
                        "line": 20,
                        "column": 21
                      }
                    },
                    "extra": {
                      "rawValue": "fillet",
                      "raw": "'fillet'"
                    },
                    "value": "fillet"
                  }
                },
                {
                  "type": "SwitchCase",
                  "start": 590,
                  "end": 644,
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 8
                    },
                    "end": {
                      "line": 23,
                      "column": 36
                    }
                  },
                  "consequent": [
                    {
                      "type": "ReturnStatement",
                      "start": 620,
                      "end": 644,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 12
                        },
                        "end": {
                          "line": 23,
                          "column": 36
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 627,
                        "end": 643,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 19
                          },
                          "end": {
                            "line": 23,
                            "column": 35
                          },
                          "identifierName": "DuplicateHandler"
                        },
                        "name": "DuplicateHandler"
                      }
                    }
                  ],
                  "test": {
                    "type": "StringLiteral",
                    "start": 595,
                    "end": 606,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 13
                      },
                      "end": {
                        "line": 22,
                        "column": 24
                      }
                    },
                    "extra": {
                      "rawValue": "duplicate",
                      "raw": "'duplicate'"
                    },
                    "value": "duplicate"
                  }
                }
              ]
            }
          ],
          "directives": [],
          "trailingComments": null
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " destroy oldHandler (if needed) and return the new handler",
            "start": 654,
            "end": 714,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 60
              }
            }
          }
        ]
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 715,
        "end": 1157,
        "loc": {
          "start": {
            "line": 28,
            "column": 0
          },
          "end": {
            "line": 38,
            "column": 1
          }
        },
        "declaration": {
          "type": "FunctionDeclaration",
          "start": 730,
          "end": 1157,
          "loc": {
            "start": {
              "line": 28,
              "column": 15
            },
            "end": {
              "line": 38,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 739,
            "end": 746,
            "loc": {
              "start": {
                "line": 28,
                "column": 24
              },
              "end": {
                "line": 28,
                "column": 31
              },
              "identifierName": "Handler"
            },
            "name": "Handler",
            "leadingComments": null
          },
          "generator": false,
          "expression": false,
          "async": false,
          "params": [
            {
              "type": "Identifier",
              "start": 747,
              "end": 755,
              "loc": {
                "start": {
                  "line": 28,
                  "column": 32
                },
                "end": {
                  "line": 28,
                  "column": 40
                },
                "identifierName": "sketcher"
              },
              "name": "sketcher"
            },
            {
              "type": "Identifier",
              "start": 757,
              "end": 761,
              "loc": {
                "start": {
                  "line": 28,
                  "column": 42
                },
                "end": {
                  "line": 28,
                  "column": 46
                },
                "identifierName": "name"
              },
              "name": "name"
            },
            {
              "type": "Identifier",
              "start": 763,
              "end": 773,
              "loc": {
                "start": {
                  "line": 28,
                  "column": 48
                },
                "end": {
                  "line": 28,
                  "column": 58
                },
                "identifierName": "oldHandler"
              },
              "name": "oldHandler"
            }
          ],
          "body": {
            "type": "BlockStatement",
            "start": 775,
            "end": 1157,
            "loc": {
              "start": {
                "line": 28,
                "column": 60
              },
              "end": {
                "line": 38,
                "column": 1
              }
            },
            "body": [
              {
                "type": "VariableDeclaration",
                "start": 781,
                "end": 879,
                "loc": {
                  "start": {
                    "line": 29,
                    "column": 4
                  },
                  "end": {
                    "line": 29,
                    "column": 102
                  }
                },
                "declarations": [
                  {
                    "type": "VariableDeclarator",
                    "start": 787,
                    "end": 844,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 10
                      },
                      "end": {
                        "line": 29,
                        "column": 67
                      }
                    },
                    "id": {
                      "type": "Identifier",
                      "start": 787,
                      "end": 795,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 10
                        },
                        "end": {
                          "line": 29,
                          "column": 18
                        },
                        "identifierName": "oldClass"
                      },
                      "name": "oldClass"
                    },
                    "init": {
                      "type": "CallExpression",
                      "start": 798,
                      "end": 844,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 21
                        },
                        "end": {
                          "line": 29,
                          "column": 67
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 798,
                        "end": 813,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 21
                          },
                          "end": {
                            "line": 29,
                            "column": 36
                          },
                          "identifierName": "getHandlerClass"
                        },
                        "name": "getHandlerClass"
                      },
                      "arguments": [
                        {
                          "type": "LogicalExpression",
                          "start": 814,
                          "end": 843,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 37
                            },
                            "end": {
                              "line": 29,
                              "column": 66
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 814,
                            "end": 824,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 37
                              },
                              "end": {
                                "line": 29,
                                "column": 47
                              },
                              "identifierName": "oldHandler"
                            },
                            "name": "oldHandler"
                          },
                          "operator": "&&",
                          "right": {
                            "type": "MemberExpression",
                            "start": 828,
                            "end": 843,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 51
                              },
                              "end": {
                                "line": 29,
                                "column": 66
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 828,
                              "end": 838,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 51
                                },
                                "end": {
                                  "line": 29,
                                  "column": 61
                                },
                                "identifierName": "oldHandler"
                              },
                              "name": "oldHandler"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 839,
                              "end": 843,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 62
                                },
                                "end": {
                                  "line": 29,
                                  "column": 66
                                },
                                "identifierName": "name"
                              },
                              "name": "name"
                            },
                            "computed": false
                          }
                        }
                      ]
                    }
                  },
                  {
                    "type": "VariableDeclarator",
                    "start": 846,
                    "end": 878,
                    "loc": {
                      "start": {
                        "line": 29,
                        "column": 69
                      },
                      "end": {
                        "line": 29,
                        "column": 101
                      }
                    },
                    "id": {
                      "type": "Identifier",
                      "start": 846,
                      "end": 854,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 69
                        },
                        "end": {
                          "line": 29,
                          "column": 77
                        },
                        "identifierName": "newClass"
                      },
                      "name": "newClass"
                    },
                    "init": {
                      "type": "CallExpression",
                      "start": 857,
                      "end": 878,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 80
                        },
                        "end": {
                          "line": 29,
                          "column": 101
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 857,
                        "end": 872,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 80
                          },
                          "end": {
                            "line": 29,
                            "column": 95
                          },
                          "identifierName": "getHandlerClass"
                        },
                        "name": "getHandlerClass"
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 873,
                          "end": 877,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 96
                            },
                            "end": {
                              "line": 29,
                              "column": 100
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        }
                      ]
                    }
                  }
                ],
                "kind": "const"
              },
              {
                "type": "VariableDeclaration",
                "start": 884,
                "end": 909,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 4
                  },
                  "end": {
                    "line": 30,
                    "column": 29
                  }
                },
                "declarations": [
                  {
                    "type": "VariableDeclarator",
                    "start": 888,
                    "end": 908,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 8
                      },
                      "end": {
                        "line": 30,
                        "column": 28
                      }
                    },
                    "id": {
                      "type": "Identifier",
                      "start": 888,
                      "end": 895,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 8
                        },
                        "end": {
                          "line": 30,
                          "column": 15
                        },
                        "identifierName": "handler"
                      },
                      "name": "handler"
                    },
                    "init": {
                      "type": "Identifier",
                      "start": 898,
                      "end": 908,
                      "loc": {
                        "start": {
                          "line": 30,
                          "column": 18
                        },
                        "end": {
                          "line": 30,
                          "column": 28
                        },
                        "identifierName": "oldHandler"
                      },
                      "name": "oldHandler"
                    }
                  }
                ],
                "kind": "let"
              },
              {
                "type": "IfStatement",
                "start": 914,
                "end": 1075,
                "loc": {
                  "start": {
                    "line": 31,
                    "column": 4
                  },
                  "end": {
                    "line": 35,
                    "column": 5
                  }
                },
                "test": {
                  "type": "BinaryExpression",
                  "start": 918,
                  "end": 939,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 8
                    },
                    "end": {
                      "line": 31,
                      "column": 29
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 918,
                    "end": 926,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 8
                      },
                      "end": {
                        "line": 31,
                        "column": 16
                      },
                      "identifierName": "oldClass"
                    },
                    "name": "oldClass"
                  },
                  "operator": "!==",
                  "right": {
                    "type": "Identifier",
                    "start": 931,
                    "end": 939,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 21
                      },
                      "end": {
                        "line": 31,
                        "column": 29
                      },
                      "identifierName": "newClass"
                    },
                    "name": "newClass"
                  }
                },
                "consequent": {
                  "type": "BlockStatement",
                  "start": 941,
                  "end": 1075,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 31
                    },
                    "end": {
                      "line": 35,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 951,
                      "end": 986,
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 8
                        },
                        "end": {
                          "line": 32,
                          "column": 43
                        }
                      },
                      "expression": {
                        "type": "LogicalExpression",
                        "start": 951,
                        "end": 985,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 8
                          },
                          "end": {
                            "line": 32,
                            "column": 42
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 951,
                          "end": 961,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 8
                            },
                            "end": {
                              "line": 32,
                              "column": 18
                            },
                            "identifierName": "oldHandler"
                          },
                          "name": "oldHandler"
                        },
                        "operator": "&&",
                        "right": {
                          "type": "CallExpression",
                          "start": 965,
                          "end": 985,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 22
                            },
                            "end": {
                              "line": 32,
                              "column": 42
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 965,
                            "end": 983,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 22
                              },
                              "end": {
                                "line": 32,
                                "column": 40
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 965,
                              "end": 975,
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 22
                                },
                                "end": {
                                  "line": 32,
                                  "column": 32
                                },
                                "identifierName": "oldHandler"
                              },
                              "name": "oldHandler"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 976,
                              "end": 983,
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 33
                                },
                                "end": {
                                  "line": 32,
                                  "column": 40
                                },
                                "identifierName": "destroy"
                              },
                              "name": "destroy"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 995,
                      "end": 1034,
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 8
                        },
                        "end": {
                          "line": 33,
                          "column": 47
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 995,
                        "end": 1033,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 8
                          },
                          "end": {
                            "line": 33,
                            "column": 46
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "Identifier",
                          "start": 995,
                          "end": 1002,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 8
                            },
                            "end": {
                              "line": 33,
                              "column": 15
                            },
                            "identifierName": "handler"
                          },
                          "name": "handler"
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 1005,
                          "end": 1033,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 18
                            },
                            "end": {
                              "line": 33,
                              "column": 46
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 1009,
                            "end": 1017,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 22
                              },
                              "end": {
                                "line": 33,
                                "column": 30
                              },
                              "identifierName": "newClass"
                            },
                            "name": "newClass"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1018,
                              "end": 1026,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 31
                                },
                                "end": {
                                  "line": 33,
                                  "column": 39
                                },
                                "identifierName": "sketcher"
                              },
                              "name": "sketcher"
                            },
                            {
                              "type": "Identifier",
                              "start": 1028,
                              "end": 1032,
                              "loc": {
                                "start": {
                                  "line": 33,
                                  "column": 41
                                },
                                "end": {
                                  "line": 33,
                                  "column": 45
                                },
                                "identifierName": "name"
                              },
                              "name": "name"
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1043,
                      "end": 1069,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 8
                        },
                        "end": {
                          "line": 34,
                          "column": 34
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1043,
                        "end": 1068,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 8
                          },
                          "end": {
                            "line": 34,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1043,
                          "end": 1066,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 8
                            },
                            "end": {
                              "line": 34,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1043,
                            "end": 1050,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 8
                              },
                              "end": {
                                "line": 34,
                                "column": 15
                              },
                              "identifierName": "handler"
                            },
                            "name": "handler"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1051,
                            "end": 1066,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 16
                              },
                              "end": {
                                "line": 34,
                                "column": 31
                              },
                              "identifierName": "addInteractions"
                            },
                            "name": "addInteractions"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                },
                "alternate": null
              },
              {
                "type": "IfStatement",
                "start": 1080,
                "end": 1135,
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 4
                  },
                  "end": {
                    "line": 36,
                    "column": 59
                  }
                },
                "test": {
                  "type": "BinaryExpression",
                  "start": 1084,
                  "end": 1108,
                  "loc": {
                    "start": {
                      "line": 36,
                      "column": 8
                    },
                    "end": {
                      "line": 36,
                      "column": 32
                    }
                  },
                  "left": {
                    "type": "Identifier",
                    "start": 1084,
                    "end": 1092,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 8
                      },
                      "end": {
                        "line": 36,
                        "column": 16
                      },
                      "identifierName": "newClass"
                    },
                    "name": "newClass"
                  },
                  "operator": "===",
                  "right": {
                    "type": "Identifier",
                    "start": 1097,
                    "end": 1108,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 21
                      },
                      "end": {
                        "line": 36,
                        "column": 32
                      },
                      "identifierName": "DrawHandler"
                    },
                    "name": "DrawHandler"
                  }
                },
                "consequent": {
                  "type": "ExpressionStatement",
                  "start": 1110,
                  "end": 1135,
                  "loc": {
                    "start": {
                      "line": 36,
                      "column": 34
                    },
                    "end": {
                      "line": 36,
                      "column": 59
                    }
                  },
                  "expression": {
                    "type": "CallExpression",
                    "start": 1110,
                    "end": 1134,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 34
                      },
                      "end": {
                        "line": 36,
                        "column": 58
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 1110,
                      "end": 1128,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 34
                        },
                        "end": {
                          "line": 36,
                          "column": 52
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1110,
                        "end": 1117,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 34
                          },
                          "end": {
                            "line": 36,
                            "column": 41
                          },
                          "identifierName": "handler"
                        },
                        "name": "handler"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1118,
                        "end": 1128,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 42
                          },
                          "end": {
                            "line": 36,
                            "column": 52
                          },
                          "identifierName": "switchMode"
                        },
                        "name": "switchMode"
                      },
                      "computed": false
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 1129,
                        "end": 1133,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 53
                          },
                          "end": {
                            "line": 36,
                            "column": 57
                          },
                          "identifierName": "name"
                        },
                        "name": "name"
                      }
                    ]
                  }
                },
                "alternate": null
              },
              {
                "type": "ReturnStatement",
                "start": 1140,
                "end": 1155,
                "loc": {
                  "start": {
                    "line": 37,
                    "column": 4
                  },
                  "end": {
                    "line": 37,
                    "column": 19
                  }
                },
                "argument": {
                  "type": "Identifier",
                  "start": 1147,
                  "end": 1154,
                  "loc": {
                    "start": {
                      "line": 37,
                      "column": 11
                    },
                    "end": {
                      "line": 37,
                      "column": 18
                    },
                    "identifierName": "handler"
                  },
                  "name": "handler"
                }
              }
            ],
            "directives": [],
            "trailingComments": null
          },
          "leadingComments": [
            {
              "type": "CommentLine",
              "value": " destroy oldHandler (if needed) and return the new handler",
              "start": 654,
              "end": 714,
              "loc": {
                "start": {
                  "line": 27,
                  "column": 0
                },
                "end": {
                  "line": 27,
                  "column": 60
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " Support hot reloading",
              "start": 1159,
              "end": 1183,
              "loc": {
                "start": {
                  "line": 40,
                  "column": 0
                },
                "end": {
                  "line": 40,
                  "column": 24
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " destroy oldHandler (if needed) and return the new handler",
            "start": 654,
            "end": 714,
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 27,
                "column": 60
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 1159,
            "end": 1183,
            "loc": {
              "start": {
                "line": 40,
                "column": 0
              },
              "end": {
                "line": 40,
                "column": 24
              }
            }
          }
        ]
      },
      {
        "type": "IfStatement",
        "start": 1184,
        "end": 1278,
        "loc": {
          "start": {
            "line": 41,
            "column": 0
          },
          "end": {
            "line": 41,
            "column": 94
          }
        },
        "test": {
          "type": "MemberExpression",
          "start": 1188,
          "end": 1198,
          "loc": {
            "start": {
              "line": 41,
              "column": 4
            },
            "end": {
              "line": 41,
              "column": 14
            }
          },
          "object": {
            "type": "Identifier",
            "start": 1188,
            "end": 1194,
            "loc": {
              "start": {
                "line": 41,
                "column": 4
              },
              "end": {
                "line": 41,
                "column": 10
              },
              "identifierName": "module"
            },
            "name": "module",
            "leadingComments": null
          },
          "property": {
            "type": "Identifier",
            "start": 1195,
            "end": 1198,
            "loc": {
              "start": {
                "line": 41,
                "column": 11
              },
              "end": {
                "line": 41,
                "column": 14
              },
              "identifierName": "hot"
            },
            "name": "hot"
          },
          "computed": false,
          "leadingComments": null
        },
        "consequent": {
          "type": "ExpressionStatement",
          "start": 1200,
          "end": 1278,
          "loc": {
            "start": {
              "line": 41,
              "column": 16
            },
            "end": {
              "line": 41,
              "column": 94
            }
          },
          "expression": {
            "type": "CallExpression",
            "start": 1200,
            "end": 1277,
            "loc": {
              "start": {
                "line": 41,
                "column": 16
              },
              "end": {
                "line": 41,
                "column": 93
              }
            },
            "callee": {
              "type": "MemberExpression",
              "start": 1200,
              "end": 1217,
              "loc": {
                "start": {
                  "line": 41,
                  "column": 16
                },
                "end": {
                  "line": 41,
                  "column": 33
                }
              },
              "object": {
                "type": "MemberExpression",
                "start": 1200,
                "end": 1210,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 16
                  },
                  "end": {
                    "line": 41,
                    "column": 26
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 1200,
                  "end": 1206,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 16
                    },
                    "end": {
                      "line": 41,
                      "column": 22
                    },
                    "identifierName": "module"
                  },
                  "name": "module"
                },
                "property": {
                  "type": "Identifier",
                  "start": 1207,
                  "end": 1210,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 23
                    },
                    "end": {
                      "line": 41,
                      "column": 26
                    },
                    "identifierName": "hot"
                  },
                  "name": "hot"
                },
                "computed": false
              },
              "property": {
                "type": "Identifier",
                "start": 1211,
                "end": 1217,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 27
                  },
                  "end": {
                    "line": 41,
                    "column": 33
                  },
                  "identifierName": "accept"
                },
                "name": "accept"
              },
              "computed": false
            },
            "arguments": [
              {
                "type": "ArrayExpression",
                "start": 1218,
                "end": 1276,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 34
                  },
                  "end": {
                    "line": 41,
                    "column": 92
                  }
                },
                "elements": [
                  {
                    "type": "StringLiteral",
                    "start": 1219,
                    "end": 1227,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 35
                      },
                      "end": {
                        "line": 41,
                        "column": 43
                      }
                    },
                    "extra": {
                      "rawValue": "./drag",
                      "raw": "'./drag'"
                    },
                    "value": "./drag"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1229,
                    "end": 1237,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 45
                      },
                      "end": {
                        "line": 41,
                        "column": 53
                      }
                    },
                    "extra": {
                      "rawValue": "./draw",
                      "raw": "'./draw'"
                    },
                    "value": "./draw"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1239,
                    "end": 1248,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 55
                      },
                      "end": {
                        "line": 41,
                        "column": 64
                      }
                    },
                    "extra": {
                      "rawValue": "./angle",
                      "raw": "'./angle'"
                    },
                    "value": "./angle"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1250,
                    "end": 1260,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 66
                      },
                      "end": {
                        "line": 41,
                        "column": 76
                      }
                    },
                    "extra": {
                      "rawValue": "./fillet",
                      "raw": "'./fillet'"
                    },
                    "value": "./fillet"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1262,
                    "end": 1275,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 78
                      },
                      "end": {
                        "line": 41,
                        "column": 91
                      }
                    },
                    "extra": {
                      "rawValue": "./duplicate",
                      "raw": "'./duplicate'"
                    },
                    "value": "./duplicate"
                  }
                ]
              }
            ]
          }
        },
        "alternate": null,
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 1159,
            "end": 1183,
            "loc": {
              "start": {
                "line": 40,
                "column": 0
              },
              "end": {
                "line": 40,
                "column": 24
              }
            }
          }
        ]
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " destroy oldHandler (if needed) and return the new handler",
      "start": 654,
      "end": 714,
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 60
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 1159,
      "end": 1183,
      "loc": {
        "start": {
          "line": 40,
          "column": 0
        },
        "end": {
          "line": 40,
          "column": 24
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DragHandler",
      "start": 7,
      "end": 18,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 19,
      "end": 23,
      "loc": {
        "start": {
          "line": 1,
          "column": 19
        },
        "end": {
          "line": 1,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./drag",
      "start": 24,
      "end": 32,
      "loc": {
        "start": {
          "line": 1,
          "column": 24
        },
        "end": {
          "line": 1,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 32,
      "end": 33,
      "loc": {
        "start": {
          "line": 1,
          "column": 32
        },
        "end": {
          "line": 1,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 34,
      "end": 40,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DrawHandler",
      "start": 41,
      "end": 52,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 53,
      "end": 57,
      "loc": {
        "start": {
          "line": 2,
          "column": 19
        },
        "end": {
          "line": 2,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./draw",
      "start": 58,
      "end": 66,
      "loc": {
        "start": {
          "line": 2,
          "column": 24
        },
        "end": {
          "line": 2,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 66,
      "end": 67,
      "loc": {
        "start": {
          "line": 2,
          "column": 32
        },
        "end": {
          "line": 2,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 68,
      "end": 74,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "AngleHandler",
      "start": 75,
      "end": 87,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 88,
      "end": 92,
      "loc": {
        "start": {
          "line": 3,
          "column": 20
        },
        "end": {
          "line": 3,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./angle",
      "start": 93,
      "end": 102,
      "loc": {
        "start": {
          "line": 3,
          "column": 25
        },
        "end": {
          "line": 3,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 102,
      "end": 103,
      "loc": {
        "start": {
          "line": 3,
          "column": 34
        },
        "end": {
          "line": 3,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 104,
      "end": 110,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FilletHandler",
      "start": 111,
      "end": 124,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 125,
      "end": 129,
      "loc": {
        "start": {
          "line": 4,
          "column": 21
        },
        "end": {
          "line": 4,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./fillet",
      "start": 130,
      "end": 140,
      "loc": {
        "start": {
          "line": 4,
          "column": 26
        },
        "end": {
          "line": 4,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 140,
      "end": 141,
      "loc": {
        "start": {
          "line": 4,
          "column": 36
        },
        "end": {
          "line": 4,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 142,
      "end": 148,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DuplicateHandler",
      "start": 149,
      "end": 165,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 166,
      "end": 170,
      "loc": {
        "start": {
          "line": 5,
          "column": 24
        },
        "end": {
          "line": 5,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./duplicate",
      "start": 171,
      "end": 184,
      "loc": {
        "start": {
          "line": 5,
          "column": 29
        },
        "end": {
          "line": 5,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 184,
      "end": 185,
      "loc": {
        "start": {
          "line": 5,
          "column": 42
        },
        "end": {
          "line": 5,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 187,
      "end": 195,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getHandlerClass",
      "start": 196,
      "end": 211,
      "loc": {
        "start": {
          "line": 7,
          "column": 9
        },
        "end": {
          "line": 7,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 211,
      "end": 212,
      "loc": {
        "start": {
          "line": 7,
          "column": 24
        },
        "end": {
          "line": 7,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 212,
      "end": 216,
      "loc": {
        "start": {
          "line": 7,
          "column": 25
        },
        "end": {
          "line": 7,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 216,
      "end": 217,
      "loc": {
        "start": {
          "line": 7,
          "column": 29
        },
        "end": {
          "line": 7,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 218,
      "end": 219,
      "loc": {
        "start": {
          "line": 7,
          "column": 31
        },
        "end": {
          "line": 7,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "switch",
        "keyword": "switch",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "switch",
      "start": 224,
      "end": 230,
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 8,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 231,
      "end": 232,
      "loc": {
        "start": {
          "line": 8,
          "column": 11
        },
        "end": {
          "line": 8,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 232,
      "end": 236,
      "loc": {
        "start": {
          "line": 8,
          "column": 12
        },
        "end": {
          "line": 8,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 236,
      "end": 237,
      "loc": {
        "start": {
          "line": 8,
          "column": 16
        },
        "end": {
          "line": 8,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 238,
      "end": 239,
      "loc": {
        "start": {
          "line": 8,
          "column": 18
        },
        "end": {
          "line": 8,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 248,
      "end": 252,
      "loc": {
        "start": {
          "line": 9,
          "column": 8
        },
        "end": {
          "line": 9,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "drag",
      "start": 253,
      "end": 259,
      "loc": {
        "start": {
          "line": 9,
          "column": 13
        },
        "end": {
          "line": 9,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 259,
      "end": 260,
      "loc": {
        "start": {
          "line": 9,
          "column": 19
        },
        "end": {
          "line": 9,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 273,
      "end": 279,
      "loc": {
        "start": {
          "line": 10,
          "column": 12
        },
        "end": {
          "line": 10,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DragHandler",
      "start": 280,
      "end": 291,
      "loc": {
        "start": {
          "line": 10,
          "column": 19
        },
        "end": {
          "line": 10,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 291,
      "end": 292,
      "loc": {
        "start": {
          "line": 10,
          "column": 30
        },
        "end": {
          "line": 10,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 301,
      "end": 305,
      "loc": {
        "start": {
          "line": 11,
          "column": 8
        },
        "end": {
          "line": 11,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "point",
      "start": 306,
      "end": 313,
      "loc": {
        "start": {
          "line": 11,
          "column": 13
        },
        "end": {
          "line": 11,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 313,
      "end": 314,
      "loc": {
        "start": {
          "line": 11,
          "column": 20
        },
        "end": {
          "line": 11,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 323,
      "end": 327,
      "loc": {
        "start": {
          "line": 12,
          "column": 8
        },
        "end": {
          "line": 12,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "line",
      "start": 328,
      "end": 334,
      "loc": {
        "start": {
          "line": 12,
          "column": 13
        },
        "end": {
          "line": 12,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 334,
      "end": 335,
      "loc": {
        "start": {
          "line": 12,
          "column": 19
        },
        "end": {
          "line": 12,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 344,
      "end": 348,
      "loc": {
        "start": {
          "line": 13,
          "column": 8
        },
        "end": {
          "line": 13,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "arccenter",
      "start": 349,
      "end": 360,
      "loc": {
        "start": {
          "line": 13,
          "column": 13
        },
        "end": {
          "line": 13,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 360,
      "end": 361,
      "loc": {
        "start": {
          "line": 13,
          "column": 24
        },
        "end": {
          "line": 13,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 370,
      "end": 374,
      "loc": {
        "start": {
          "line": 14,
          "column": 8
        },
        "end": {
          "line": 14,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "arcmiddle",
      "start": 375,
      "end": 386,
      "loc": {
        "start": {
          "line": 14,
          "column": 13
        },
        "end": {
          "line": 14,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 386,
      "end": 387,
      "loc": {
        "start": {
          "line": 14,
          "column": 24
        },
        "end": {
          "line": 14,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 396,
      "end": 400,
      "loc": {
        "start": {
          "line": 15,
          "column": 8
        },
        "end": {
          "line": 15,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "arctangent",
      "start": 401,
      "end": 413,
      "loc": {
        "start": {
          "line": 15,
          "column": 13
        },
        "end": {
          "line": 15,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 413,
      "end": 414,
      "loc": {
        "start": {
          "line": 15,
          "column": 25
        },
        "end": {
          "line": 15,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 423,
      "end": 427,
      "loc": {
        "start": {
          "line": 16,
          "column": 8
        },
        "end": {
          "line": 16,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "circle",
      "start": 428,
      "end": 436,
      "loc": {
        "start": {
          "line": 16,
          "column": 13
        },
        "end": {
          "line": 16,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 436,
      "end": 437,
      "loc": {
        "start": {
          "line": 16,
          "column": 21
        },
        "end": {
          "line": 16,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 450,
      "end": 456,
      "loc": {
        "start": {
          "line": 17,
          "column": 12
        },
        "end": {
          "line": 17,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DrawHandler",
      "start": 457,
      "end": 468,
      "loc": {
        "start": {
          "line": 17,
          "column": 19
        },
        "end": {
          "line": 17,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 468,
      "end": 469,
      "loc": {
        "start": {
          "line": 17,
          "column": 30
        },
        "end": {
          "line": 17,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 478,
      "end": 482,
      "loc": {
        "start": {
          "line": 18,
          "column": 8
        },
        "end": {
          "line": 18,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "angle",
      "start": 483,
      "end": 490,
      "loc": {
        "start": {
          "line": 18,
          "column": 13
        },
        "end": {
          "line": 18,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 490,
      "end": 491,
      "loc": {
        "start": {
          "line": 18,
          "column": 20
        },
        "end": {
          "line": 18,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 504,
      "end": 510,
      "loc": {
        "start": {
          "line": 19,
          "column": 12
        },
        "end": {
          "line": 19,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "AngleHandler",
      "start": 511,
      "end": 523,
      "loc": {
        "start": {
          "line": 19,
          "column": 19
        },
        "end": {
          "line": 19,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 523,
      "end": 524,
      "loc": {
        "start": {
          "line": 19,
          "column": 31
        },
        "end": {
          "line": 19,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 533,
      "end": 537,
      "loc": {
        "start": {
          "line": 20,
          "column": 8
        },
        "end": {
          "line": 20,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "fillet",
      "start": 538,
      "end": 546,
      "loc": {
        "start": {
          "line": 20,
          "column": 13
        },
        "end": {
          "line": 20,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 546,
      "end": 547,
      "loc": {
        "start": {
          "line": 20,
          "column": 21
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 560,
      "end": 566,
      "loc": {
        "start": {
          "line": 21,
          "column": 12
        },
        "end": {
          "line": 21,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FilletHandler",
      "start": 567,
      "end": 580,
      "loc": {
        "start": {
          "line": 21,
          "column": 19
        },
        "end": {
          "line": 21,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 580,
      "end": 581,
      "loc": {
        "start": {
          "line": 21,
          "column": 32
        },
        "end": {
          "line": 21,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 590,
      "end": 594,
      "loc": {
        "start": {
          "line": 22,
          "column": 8
        },
        "end": {
          "line": 22,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "duplicate",
      "start": 595,
      "end": 606,
      "loc": {
        "start": {
          "line": 22,
          "column": 13
        },
        "end": {
          "line": 22,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 606,
      "end": 607,
      "loc": {
        "start": {
          "line": 22,
          "column": 24
        },
        "end": {
          "line": 22,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 620,
      "end": 626,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DuplicateHandler",
      "start": 627,
      "end": 643,
      "loc": {
        "start": {
          "line": 23,
          "column": 19
        },
        "end": {
          "line": 23,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 643,
      "end": 644,
      "loc": {
        "start": {
          "line": 23,
          "column": 35
        },
        "end": {
          "line": 23,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 649,
      "end": 650,
      "loc": {
        "start": {
          "line": 24,
          "column": 4
        },
        "end": {
          "line": 24,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 651,
      "end": 652,
      "loc": {
        "start": {
          "line": 25,
          "column": 0
        },
        "end": {
          "line": 25,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " destroy oldHandler (if needed) and return the new handler",
      "start": 654,
      "end": 714,
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 715,
      "end": 721,
      "loc": {
        "start": {
          "line": 28,
          "column": 0
        },
        "end": {
          "line": 28,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 722,
      "end": 729,
      "loc": {
        "start": {
          "line": 28,
          "column": 7
        },
        "end": {
          "line": 28,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 730,
      "end": 738,
      "loc": {
        "start": {
          "line": 28,
          "column": 15
        },
        "end": {
          "line": 28,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Handler",
      "start": 739,
      "end": 746,
      "loc": {
        "start": {
          "line": 28,
          "column": 24
        },
        "end": {
          "line": 28,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 746,
      "end": 747,
      "loc": {
        "start": {
          "line": 28,
          "column": 31
        },
        "end": {
          "line": 28,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 747,
      "end": 755,
      "loc": {
        "start": {
          "line": 28,
          "column": 32
        },
        "end": {
          "line": 28,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 755,
      "end": 756,
      "loc": {
        "start": {
          "line": 28,
          "column": 40
        },
        "end": {
          "line": 28,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 757,
      "end": 761,
      "loc": {
        "start": {
          "line": 28,
          "column": 42
        },
        "end": {
          "line": 28,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 761,
      "end": 762,
      "loc": {
        "start": {
          "line": 28,
          "column": 46
        },
        "end": {
          "line": 28,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 763,
      "end": 773,
      "loc": {
        "start": {
          "line": 28,
          "column": 48
        },
        "end": {
          "line": 28,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 773,
      "end": 774,
      "loc": {
        "start": {
          "line": 28,
          "column": 58
        },
        "end": {
          "line": 28,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 775,
      "end": 776,
      "loc": {
        "start": {
          "line": 28,
          "column": 60
        },
        "end": {
          "line": 28,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 781,
      "end": 786,
      "loc": {
        "start": {
          "line": 29,
          "column": 4
        },
        "end": {
          "line": 29,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldClass",
      "start": 787,
      "end": 795,
      "loc": {
        "start": {
          "line": 29,
          "column": 10
        },
        "end": {
          "line": 29,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 796,
      "end": 797,
      "loc": {
        "start": {
          "line": 29,
          "column": 19
        },
        "end": {
          "line": 29,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getHandlerClass",
      "start": 798,
      "end": 813,
      "loc": {
        "start": {
          "line": 29,
          "column": 21
        },
        "end": {
          "line": 29,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 813,
      "end": 814,
      "loc": {
        "start": {
          "line": 29,
          "column": 36
        },
        "end": {
          "line": 29,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 814,
      "end": 824,
      "loc": {
        "start": {
          "line": 29,
          "column": 37
        },
        "end": {
          "line": 29,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 825,
      "end": 827,
      "loc": {
        "start": {
          "line": 29,
          "column": 48
        },
        "end": {
          "line": 29,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 828,
      "end": 838,
      "loc": {
        "start": {
          "line": 29,
          "column": 51
        },
        "end": {
          "line": 29,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 838,
      "end": 839,
      "loc": {
        "start": {
          "line": 29,
          "column": 61
        },
        "end": {
          "line": 29,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 839,
      "end": 843,
      "loc": {
        "start": {
          "line": 29,
          "column": 62
        },
        "end": {
          "line": 29,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 843,
      "end": 844,
      "loc": {
        "start": {
          "line": 29,
          "column": 66
        },
        "end": {
          "line": 29,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 844,
      "end": 845,
      "loc": {
        "start": {
          "line": 29,
          "column": 67
        },
        "end": {
          "line": 29,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newClass",
      "start": 846,
      "end": 854,
      "loc": {
        "start": {
          "line": 29,
          "column": 69
        },
        "end": {
          "line": 29,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 855,
      "end": 856,
      "loc": {
        "start": {
          "line": 29,
          "column": 78
        },
        "end": {
          "line": 29,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getHandlerClass",
      "start": 857,
      "end": 872,
      "loc": {
        "start": {
          "line": 29,
          "column": 80
        },
        "end": {
          "line": 29,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 872,
      "end": 873,
      "loc": {
        "start": {
          "line": 29,
          "column": 95
        },
        "end": {
          "line": 29,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 873,
      "end": 877,
      "loc": {
        "start": {
          "line": 29,
          "column": 96
        },
        "end": {
          "line": 29,
          "column": 100
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 877,
      "end": 878,
      "loc": {
        "start": {
          "line": 29,
          "column": 100
        },
        "end": {
          "line": 29,
          "column": 101
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 878,
      "end": 879,
      "loc": {
        "start": {
          "line": 29,
          "column": 101
        },
        "end": {
          "line": 29,
          "column": 102
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 884,
      "end": 887,
      "loc": {
        "start": {
          "line": 30,
          "column": 4
        },
        "end": {
          "line": 30,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handler",
      "start": 888,
      "end": 895,
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 896,
      "end": 897,
      "loc": {
        "start": {
          "line": 30,
          "column": 16
        },
        "end": {
          "line": 30,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 898,
      "end": 908,
      "loc": {
        "start": {
          "line": 30,
          "column": 18
        },
        "end": {
          "line": 30,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 908,
      "end": 909,
      "loc": {
        "start": {
          "line": 30,
          "column": 28
        },
        "end": {
          "line": 30,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 914,
      "end": 916,
      "loc": {
        "start": {
          "line": 31,
          "column": 4
        },
        "end": {
          "line": 31,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 917,
      "end": 918,
      "loc": {
        "start": {
          "line": 31,
          "column": 7
        },
        "end": {
          "line": 31,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldClass",
      "start": 918,
      "end": 926,
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 927,
      "end": 930,
      "loc": {
        "start": {
          "line": 31,
          "column": 17
        },
        "end": {
          "line": 31,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newClass",
      "start": 931,
      "end": 939,
      "loc": {
        "start": {
          "line": 31,
          "column": 21
        },
        "end": {
          "line": 31,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 939,
      "end": 940,
      "loc": {
        "start": {
          "line": 31,
          "column": 29
        },
        "end": {
          "line": 31,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 941,
      "end": 942,
      "loc": {
        "start": {
          "line": 31,
          "column": 31
        },
        "end": {
          "line": 31,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 951,
      "end": 961,
      "loc": {
        "start": {
          "line": 32,
          "column": 8
        },
        "end": {
          "line": 32,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 962,
      "end": 964,
      "loc": {
        "start": {
          "line": 32,
          "column": 19
        },
        "end": {
          "line": 32,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "oldHandler",
      "start": 965,
      "end": 975,
      "loc": {
        "start": {
          "line": 32,
          "column": 22
        },
        "end": {
          "line": 32,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 975,
      "end": 976,
      "loc": {
        "start": {
          "line": 32,
          "column": 32
        },
        "end": {
          "line": 32,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "destroy",
      "start": 976,
      "end": 983,
      "loc": {
        "start": {
          "line": 32,
          "column": 33
        },
        "end": {
          "line": 32,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 983,
      "end": 984,
      "loc": {
        "start": {
          "line": 32,
          "column": 40
        },
        "end": {
          "line": 32,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 984,
      "end": 985,
      "loc": {
        "start": {
          "line": 32,
          "column": 41
        },
        "end": {
          "line": 32,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 985,
      "end": 986,
      "loc": {
        "start": {
          "line": 32,
          "column": 42
        },
        "end": {
          "line": 32,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handler",
      "start": 995,
      "end": 1002,
      "loc": {
        "start": {
          "line": 33,
          "column": 8
        },
        "end": {
          "line": 33,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1003,
      "end": 1004,
      "loc": {
        "start": {
          "line": 33,
          "column": 16
        },
        "end": {
          "line": 33,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1005,
      "end": 1008,
      "loc": {
        "start": {
          "line": 33,
          "column": 18
        },
        "end": {
          "line": 33,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newClass",
      "start": 1009,
      "end": 1017,
      "loc": {
        "start": {
          "line": 33,
          "column": 22
        },
        "end": {
          "line": 33,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1017,
      "end": 1018,
      "loc": {
        "start": {
          "line": 33,
          "column": 30
        },
        "end": {
          "line": 33,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 1018,
      "end": 1026,
      "loc": {
        "start": {
          "line": 33,
          "column": 31
        },
        "end": {
          "line": 33,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1026,
      "end": 1027,
      "loc": {
        "start": {
          "line": 33,
          "column": 39
        },
        "end": {
          "line": 33,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1028,
      "end": 1032,
      "loc": {
        "start": {
          "line": 33,
          "column": 41
        },
        "end": {
          "line": 33,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1032,
      "end": 1033,
      "loc": {
        "start": {
          "line": 33,
          "column": 45
        },
        "end": {
          "line": 33,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1033,
      "end": 1034,
      "loc": {
        "start": {
          "line": 33,
          "column": 46
        },
        "end": {
          "line": 33,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handler",
      "start": 1043,
      "end": 1050,
      "loc": {
        "start": {
          "line": 34,
          "column": 8
        },
        "end": {
          "line": 34,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1050,
      "end": 1051,
      "loc": {
        "start": {
          "line": 34,
          "column": 15
        },
        "end": {
          "line": 34,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addInteractions",
      "start": 1051,
      "end": 1066,
      "loc": {
        "start": {
          "line": 34,
          "column": 16
        },
        "end": {
          "line": 34,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1066,
      "end": 1067,
      "loc": {
        "start": {
          "line": 34,
          "column": 31
        },
        "end": {
          "line": 34,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1067,
      "end": 1068,
      "loc": {
        "start": {
          "line": 34,
          "column": 32
        },
        "end": {
          "line": 34,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1068,
      "end": 1069,
      "loc": {
        "start": {
          "line": 34,
          "column": 33
        },
        "end": {
          "line": 34,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1074,
      "end": 1075,
      "loc": {
        "start": {
          "line": 35,
          "column": 4
        },
        "end": {
          "line": 35,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1080,
      "end": 1082,
      "loc": {
        "start": {
          "line": 36,
          "column": 4
        },
        "end": {
          "line": 36,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1083,
      "end": 1084,
      "loc": {
        "start": {
          "line": 36,
          "column": 7
        },
        "end": {
          "line": 36,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "newClass",
      "start": 1084,
      "end": 1092,
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1093,
      "end": 1096,
      "loc": {
        "start": {
          "line": 36,
          "column": 17
        },
        "end": {
          "line": 36,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DrawHandler",
      "start": 1097,
      "end": 1108,
      "loc": {
        "start": {
          "line": 36,
          "column": 21
        },
        "end": {
          "line": 36,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1108,
      "end": 1109,
      "loc": {
        "start": {
          "line": 36,
          "column": 32
        },
        "end": {
          "line": 36,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handler",
      "start": 1110,
      "end": 1117,
      "loc": {
        "start": {
          "line": 36,
          "column": 34
        },
        "end": {
          "line": 36,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1117,
      "end": 1118,
      "loc": {
        "start": {
          "line": 36,
          "column": 41
        },
        "end": {
          "line": 36,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "switchMode",
      "start": 1118,
      "end": 1128,
      "loc": {
        "start": {
          "line": 36,
          "column": 42
        },
        "end": {
          "line": 36,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1128,
      "end": 1129,
      "loc": {
        "start": {
          "line": 36,
          "column": 52
        },
        "end": {
          "line": 36,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1129,
      "end": 1133,
      "loc": {
        "start": {
          "line": 36,
          "column": 53
        },
        "end": {
          "line": 36,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1133,
      "end": 1134,
      "loc": {
        "start": {
          "line": 36,
          "column": 57
        },
        "end": {
          "line": 36,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1134,
      "end": 1135,
      "loc": {
        "start": {
          "line": 36,
          "column": 58
        },
        "end": {
          "line": 36,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1140,
      "end": 1146,
      "loc": {
        "start": {
          "line": 37,
          "column": 4
        },
        "end": {
          "line": 37,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "handler",
      "start": 1147,
      "end": 1154,
      "loc": {
        "start": {
          "line": 37,
          "column": 11
        },
        "end": {
          "line": 37,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1154,
      "end": 1155,
      "loc": {
        "start": {
          "line": 37,
          "column": 18
        },
        "end": {
          "line": 37,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1156,
      "end": 1157,
      "loc": {
        "start": {
          "line": 38,
          "column": 0
        },
        "end": {
          "line": 38,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 1159,
      "end": 1183,
      "loc": {
        "start": {
          "line": 40,
          "column": 0
        },
        "end": {
          "line": 40,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1184,
      "end": 1186,
      "loc": {
        "start": {
          "line": 41,
          "column": 0
        },
        "end": {
          "line": 41,
          "column": 2
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1187,
      "end": 1188,
      "loc": {
        "start": {
          "line": 41,
          "column": 3
        },
        "end": {
          "line": 41,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 1188,
      "end": 1194,
      "loc": {
        "start": {
          "line": 41,
          "column": 4
        },
        "end": {
          "line": 41,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1194,
      "end": 1195,
      "loc": {
        "start": {
          "line": 41,
          "column": 10
        },
        "end": {
          "line": 41,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 1195,
      "end": 1198,
      "loc": {
        "start": {
          "line": 41,
          "column": 11
        },
        "end": {
          "line": 41,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1198,
      "end": 1199,
      "loc": {
        "start": {
          "line": 41,
          "column": 14
        },
        "end": {
          "line": 41,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 1200,
      "end": 1206,
      "loc": {
        "start": {
          "line": 41,
          "column": 16
        },
        "end": {
          "line": 41,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1206,
      "end": 1207,
      "loc": {
        "start": {
          "line": 41,
          "column": 22
        },
        "end": {
          "line": 41,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 1207,
      "end": 1210,
      "loc": {
        "start": {
          "line": 41,
          "column": 23
        },
        "end": {
          "line": 41,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1210,
      "end": 1211,
      "loc": {
        "start": {
          "line": 41,
          "column": 26
        },
        "end": {
          "line": 41,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "accept",
      "start": 1211,
      "end": 1217,
      "loc": {
        "start": {
          "line": 41,
          "column": 27
        },
        "end": {
          "line": 41,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1217,
      "end": 1218,
      "loc": {
        "start": {
          "line": 41,
          "column": 33
        },
        "end": {
          "line": 41,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1218,
      "end": 1219,
      "loc": {
        "start": {
          "line": 41,
          "column": 34
        },
        "end": {
          "line": 41,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./drag",
      "start": 1219,
      "end": 1227,
      "loc": {
        "start": {
          "line": 41,
          "column": 35
        },
        "end": {
          "line": 41,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1227,
      "end": 1228,
      "loc": {
        "start": {
          "line": 41,
          "column": 43
        },
        "end": {
          "line": 41,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./draw",
      "start": 1229,
      "end": 1237,
      "loc": {
        "start": {
          "line": 41,
          "column": 45
        },
        "end": {
          "line": 41,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1237,
      "end": 1238,
      "loc": {
        "start": {
          "line": 41,
          "column": 53
        },
        "end": {
          "line": 41,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./angle",
      "start": 1239,
      "end": 1248,
      "loc": {
        "start": {
          "line": 41,
          "column": 55
        },
        "end": {
          "line": 41,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1248,
      "end": 1249,
      "loc": {
        "start": {
          "line": 41,
          "column": 64
        },
        "end": {
          "line": 41,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./fillet",
      "start": 1250,
      "end": 1260,
      "loc": {
        "start": {
          "line": 41,
          "column": 66
        },
        "end": {
          "line": 41,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1260,
      "end": 1261,
      "loc": {
        "start": {
          "line": 41,
          "column": 76
        },
        "end": {
          "line": 41,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./duplicate",
      "start": 1262,
      "end": 1275,
      "loc": {
        "start": {
          "line": 41,
          "column": 78
        },
        "end": {
          "line": 41,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1275,
      "end": 1276,
      "loc": {
        "start": {
          "line": 41,
          "column": 91
        },
        "end": {
          "line": 41,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1276,
      "end": 1277,
      "loc": {
        "start": {
          "line": 41,
          "column": 92
        },
        "end": {
          "line": 41,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1277,
      "end": 1278,
      "loc": {
        "start": {
          "line": 41,
          "column": 93
        },
        "end": {
          "line": 41,
          "column": 94
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1279,
      "end": 1279,
      "loc": {
        "start": {
          "line": 42,
          "column": 0
        },
        "end": {
          "line": 42,
          "column": 0
        }
      }
    }
  ]
}