{
  "type": "File",
  "start": 0,
  "end": 870,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 28,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 870,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 28,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 53,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 53
          }
        },
        "specifiers": [
          {
            "type": "ImportNamespaceSpecifier",
            "start": 7,
            "end": 26,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 26
              }
            },
            "local": {
              "type": "Identifier",
              "start": 12,
              "end": 26,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 12
                },
                "end": {
                  "line": 1,
                  "column": 26
                },
                "identifierName": "ConstraintType"
              },
              "name": "ConstraintType"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 32,
          "end": 52,
          "loc": {
            "start": {
              "line": 1,
              "column": 32
            },
            "end": {
              "line": 1,
              "column": 52
            }
          },
          "extra": {
            "rawValue": "../constraint/type",
            "raw": "'../constraint/type'"
          },
          "value": "../constraint/type"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 54,
        "end": 82,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 28
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 61,
            "end": 66,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 12
              }
            },
            "local": {
              "type": "Identifier",
              "start": 61,
              "end": 66,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 12
                },
                "identifierName": "Point"
              },
              "name": "Point"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 72,
          "end": 81,
          "loc": {
            "start": {
              "line": 2,
              "column": 18
            },
            "end": {
              "line": 2,
              "column": 27
            }
          },
          "extra": {
            "rawValue": "./point",
            "raw": "'./point'"
          },
          "value": "./point"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 83,
        "end": 109,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 26
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 90,
            "end": 94,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 11
              }
            },
            "local": {
              "type": "Identifier",
              "start": 90,
              "end": 94,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 7
                },
                "end": {
                  "line": 3,
                  "column": 11
                },
                "identifierName": "Line"
              },
              "name": "Line"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 100,
          "end": 108,
          "loc": {
            "start": {
              "line": 3,
              "column": 17
            },
            "end": {
              "line": 3,
              "column": 25
            }
          },
          "extra": {
            "rawValue": "./line",
            "raw": "'./line'"
          },
          "value": "./line"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 110,
        "end": 134,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 24
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 117,
            "end": 120,
            "loc": {
              "start": {
                "line": 4,
                "column": 7
              },
              "end": {
                "line": 4,
                "column": 10
              }
            },
            "local": {
              "type": "Identifier",
              "start": 117,
              "end": 120,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 7
                },
                "end": {
                  "line": 4,
                  "column": 10
                },
                "identifierName": "Arc"
              },
              "name": "Arc"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 126,
          "end": 133,
          "loc": {
            "start": {
              "line": 4,
              "column": 16
            },
            "end": {
              "line": 4,
              "column": 23
            }
          },
          "extra": {
            "rawValue": "./arc",
            "raw": "'./arc'"
          },
          "value": "./arc"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 135,
        "end": 165,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 142,
            "end": 148,
            "loc": {
              "start": {
                "line": 5,
                "column": 7
              },
              "end": {
                "line": 5,
                "column": 13
              }
            },
            "local": {
              "type": "Identifier",
              "start": 142,
              "end": 148,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 7
                },
                "end": {
                  "line": 5,
                  "column": 13
                },
                "identifierName": "Circle"
              },
              "name": "Circle"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 154,
          "end": 164,
          "loc": {
            "start": {
              "line": 5,
              "column": 19
            },
            "end": {
              "line": 5,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "./circle",
            "raw": "'./circle'"
          },
          "value": "./circle"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 166,
        "end": 196,
        "loc": {
          "start": {
            "line": 6,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 173,
            "end": 179,
            "loc": {
              "start": {
                "line": 6,
                "column": 7
              },
              "end": {
                "line": 6,
                "column": 13
              }
            },
            "local": {
              "type": "Identifier",
              "start": 173,
              "end": 179,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 7
                },
                "end": {
                  "line": 6,
                  "column": 13
                },
                "identifierName": "Sketch"
              },
              "name": "Sketch"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 185,
          "end": 195,
          "loc": {
            "start": {
              "line": 6,
              "column": 19
            },
            "end": {
              "line": 6,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "./sketch",
            "raw": "'./sketch'"
          },
          "value": "./sketch"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 197,
        "end": 235,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 7,
            "column": 38
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 204,
            "end": 214,
            "loc": {
              "start": {
                "line": 7,
                "column": 7
              },
              "end": {
                "line": 7,
                "column": 17
              }
            },
            "local": {
              "type": "Identifier",
              "start": 204,
              "end": 214,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 7
                },
                "end": {
                  "line": 7,
                  "column": 17
                },
                "identifierName": "Constraint"
              },
              "name": "Constraint"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 220,
          "end": 234,
          "loc": {
            "start": {
              "line": 7,
              "column": 23
            },
            "end": {
              "line": 7,
              "column": 37
            }
          },
          "extra": {
            "rawValue": "./constraint",
            "raw": "'./constraint'"
          },
          "value": "./constraint"
        }
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 237,
        "end": 736,
        "loc": {
          "start": {
            "line": 9,
            "column": 0
          },
          "end": {
            "line": 24,
            "column": 1
          }
        },
        "declaration": {
          "type": "FunctionDeclaration",
          "start": 252,
          "end": 736,
          "loc": {
            "start": {
              "line": 9,
              "column": 15
            },
            "end": {
              "line": 24,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 261,
            "end": 269,
            "loc": {
              "start": {
                "line": 9,
                "column": 24
              },
              "end": {
                "line": 9,
                "column": 32
              },
              "identifierName": "Graphics"
            },
            "name": "Graphics"
          },
          "generator": false,
          "expression": false,
          "async": false,
          "params": [
            {
              "type": "Identifier",
              "start": 270,
              "end": 274,
              "loc": {
                "start": {
                  "line": 9,
                  "column": 33
                },
                "end": {
                  "line": 9,
                  "column": 37
                },
                "identifierName": "name"
              },
              "name": "name"
            }
          ],
          "body": {
            "type": "BlockStatement",
            "start": 276,
            "end": 736,
            "loc": {
              "start": {
                "line": 9,
                "column": 39
              },
              "end": {
                "line": 24,
                "column": 1
              }
            },
            "body": [
              {
                "type": "SwitchStatement",
                "start": 282,
                "end": 586,
                "loc": {
                  "start": {
                    "line": 10,
                    "column": 4
                  },
                  "end": {
                    "line": 21,
                    "column": 5
                  }
                },
                "discriminant": {
                  "type": "Identifier",
                  "start": 290,
                  "end": 294,
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 12
                    },
                    "end": {
                      "line": 10,
                      "column": 16
                    },
                    "identifierName": "name"
                  },
                  "name": "name"
                },
                "cases": [
                  {
                    "type": "SwitchCase",
                    "start": 306,
                    "end": 354,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 8
                      },
                      "end": {
                        "line": 12,
                        "column": 31
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 335,
                        "end": 354,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 12
                          },
                          "end": {
                            "line": 12,
                            "column": 31
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 342,
                          "end": 353,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 19
                            },
                            "end": {
                              "line": 12,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 346,
                            "end": 351,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 23
                              },
                              "end": {
                                "line": 12,
                                "column": 28
                              },
                              "identifierName": "Point"
                            },
                            "name": "Point"
                          },
                          "arguments": []
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 311,
                      "end": 321,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 13
                        },
                        "end": {
                          "line": 11,
                          "column": 23
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Point",
                        "raw": "'CC_Point'"
                      },
                      "value": "CC_Point"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 363,
                    "end": 409,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 8
                      },
                      "end": {
                        "line": 14,
                        "column": 30
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 391,
                        "end": 409,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 12
                          },
                          "end": {
                            "line": 14,
                            "column": 30
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 398,
                          "end": 408,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 19
                            },
                            "end": {
                              "line": 14,
                              "column": 29
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 402,
                            "end": 406,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 23
                              },
                              "end": {
                                "line": 14,
                                "column": 27
                              },
                              "identifierName": "Line"
                            },
                            "name": "Line"
                          },
                          "arguments": []
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 368,
                      "end": 377,
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 13
                        },
                        "end": {
                          "line": 13,
                          "column": 22
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Line",
                        "raw": "'CC_Line'"
                      },
                      "value": "CC_Line"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 418,
                    "end": 462,
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 8
                      },
                      "end": {
                        "line": 16,
                        "column": 29
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 445,
                        "end": 462,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 12
                          },
                          "end": {
                            "line": 16,
                            "column": 29
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 452,
                          "end": 461,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 19
                            },
                            "end": {
                              "line": 16,
                              "column": 28
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 456,
                            "end": 459,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 23
                              },
                              "end": {
                                "line": 16,
                                "column": 26
                              },
                              "identifierName": "Arc"
                            },
                            "name": "Arc"
                          },
                          "arguments": []
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 423,
                      "end": 431,
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 13
                        },
                        "end": {
                          "line": 15,
                          "column": 21
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Arc",
                        "raw": "'CC_Arc'"
                      },
                      "value": "CC_Arc"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 471,
                    "end": 521,
                    "loc": {
                      "start": {
                        "line": 17,
                        "column": 8
                      },
                      "end": {
                        "line": 18,
                        "column": 32
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 501,
                        "end": 521,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 12
                          },
                          "end": {
                            "line": 18,
                            "column": 32
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 508,
                          "end": 520,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 19
                            },
                            "end": {
                              "line": 18,
                              "column": 31
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 512,
                            "end": 518,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 23
                              },
                              "end": {
                                "line": 18,
                                "column": 29
                              },
                              "identifierName": "Circle"
                            },
                            "name": "Circle"
                          },
                          "arguments": []
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 476,
                      "end": 487,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 13
                        },
                        "end": {
                          "line": 17,
                          "column": 24
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Circle",
                        "raw": "'CC_Circle'"
                      },
                      "value": "CC_Circle"
                    }
                  },
                  {
                    "type": "SwitchCase",
                    "start": 530,
                    "end": 580,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 8
                      },
                      "end": {
                        "line": 20,
                        "column": 32
                      }
                    },
                    "consequent": [
                      {
                        "type": "ReturnStatement",
                        "start": 560,
                        "end": 580,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 12
                          },
                          "end": {
                            "line": 20,
                            "column": 32
                          }
                        },
                        "argument": {
                          "type": "NewExpression",
                          "start": 567,
                          "end": 579,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 19
                            },
                            "end": {
                              "line": 20,
                              "column": 31
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 571,
                            "end": 577,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 23
                              },
                              "end": {
                                "line": 20,
                                "column": 29
                              },
                              "identifierName": "Sketch"
                            },
                            "name": "Sketch"
                          },
                          "arguments": []
                        }
                      }
                    ],
                    "test": {
                      "type": "StringLiteral",
                      "start": 535,
                      "end": 546,
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 13
                        },
                        "end": {
                          "line": 19,
                          "column": 24
                        }
                      },
                      "extra": {
                        "rawValue": "CC_Sketch",
                        "raw": "'CC_Sketch'"
                      },
                      "value": "CC_Sketch"
                    }
                  }
                ]
              },
              {
                "type": "IfStatement",
                "start": 591,
                "end": 734,
                "loc": {
                  "start": {
                    "line": 22,
                    "column": 4
                  },
                  "end": {
                    "line": 23,
                    "column": 110
                  }
                },
                "test": {
                  "type": "CallExpression",
                  "start": 595,
                  "end": 622,
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 8
                    },
                    "end": {
                      "line": 22,
                      "column": 35
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 595,
                    "end": 608,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 8
                      },
                      "end": {
                        "line": 22,
                        "column": 21
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 595,
                      "end": 599,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 8
                        },
                        "end": {
                          "line": 22,
                          "column": 12
                        },
                        "identifierName": "name"
                      },
                      "name": "name"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 600,
                      "end": 608,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 13
                        },
                        "end": {
                          "line": 22,
                          "column": 21
                        },
                        "identifierName": "endsWith"
                      },
                      "name": "endsWith"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "StringLiteral",
                      "start": 609,
                      "end": 621,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 22
                        },
                        "end": {
                          "line": 22,
                          "column": 34
                        }
                      },
                      "extra": {
                        "rawValue": "Constraint",
                        "raw": "'Constraint'"
                      },
                      "value": "Constraint"
                    }
                  ]
                },
                "consequent": {
                  "type": "IfStatement",
                  "start": 632,
                  "end": 734,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 8
                    },
                    "end": {
                      "line": 23,
                      "column": 110
                    }
                  },
                  "test": {
                    "type": "UnaryExpression",
                    "start": 636,
                    "end": 708,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 12
                      },
                      "end": {
                        "line": 23,
                        "column": 84
                      }
                    },
                    "operator": "!",
                    "prefix": true,
                    "argument": {
                      "type": "MemberExpression",
                      "start": 637,
                      "end": 708,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 13
                        },
                        "end": {
                          "line": 23,
                          "column": 84
                        }
                      },
                      "object": {
                        "type": "CallExpression",
                        "start": 637,
                        "end": 695,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 13
                          },
                          "end": {
                            "line": 23,
                            "column": 71
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 637,
                          "end": 671,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 13
                            },
                            "end": {
                              "line": 23,
                              "column": 47
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 637,
                            "end": 666,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 13
                              },
                              "end": {
                                "line": 23,
                                "column": 42
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 637,
                              "end": 650,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 13
                                },
                                "end": {
                                  "line": 23,
                                  "column": 26
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 637,
                                "end": 643,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 19
                                  },
                                  "identifierName": "Object"
                                },
                                "name": "Object"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 644,
                                "end": 650,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 26
                                  },
                                  "identifierName": "values"
                                },
                                "name": "values"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 651,
                                "end": 665,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 41
                                  },
                                  "identifierName": "ConstraintType"
                                },
                                "name": "ConstraintType"
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 667,
                            "end": 671,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 43
                              },
                              "end": {
                                "line": 23,
                                "column": 47
                              },
                              "identifierName": "find"
                            },
                            "name": "find"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 672,
                            "end": 694,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 48
                              },
                              "end": {
                                "line": 23,
                                "column": 70
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [
                              {
                                "type": "Identifier",
                                "start": 672,
                                "end": 674,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 50
                                  },
                                  "identifierName": "ct"
                                },
                                "name": "ct"
                              }
                            ],
                            "body": {
                              "type": "BinaryExpression",
                              "start": 678,
                              "end": 694,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 54
                                },
                                "end": {
                                  "line": 23,
                                  "column": 70
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 678,
                                "end": 685,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 54
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 61
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 678,
                                  "end": 680,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 54
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 56
                                    },
                                    "identifierName": "ct"
                                  },
                                  "name": "ct"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 681,
                                  "end": 685,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 57
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 61
                                    },
                                    "identifierName": "type"
                                  },
                                  "name": "type"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Identifier",
                                "start": 690,
                                "end": 694,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 70
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name"
                              }
                            }
                          }
                        ]
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 696,
                        "end": 708,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 72
                          },
                          "end": {
                            "line": 23,
                            "column": 84
                          },
                          "identifierName": "isParametric"
                        },
                        "name": "isParametric"
                      },
                      "computed": false
                    },
                    "extra": {
                      "parenthesizedArgument": false
                    }
                  },
                  "consequent": {
                    "type": "ReturnStatement",
                    "start": 710,
                    "end": 734,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 86
                      },
                      "end": {
                        "line": 23,
                        "column": 110
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 717,
                      "end": 733,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 93
                        },
                        "end": {
                          "line": 23,
                          "column": 109
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 721,
                        "end": 731,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 97
                          },
                          "end": {
                            "line": 23,
                            "column": 107
                          },
                          "identifierName": "Constraint"
                        },
                        "name": "Constraint"
                      },
                      "arguments": []
                    }
                  },
                  "alternate": null
                },
                "alternate": null
              }
            ],
            "directives": [],
            "trailingComments": null
          },
          "trailingComments": [
            {
              "type": "CommentLine",
              "value": " Support hot reloading",
              "start": 738,
              "end": 762,
              "loc": {
                "start": {
                  "line": 26,
                  "column": 0
                },
                "end": {
                  "line": 26,
                  "column": 24
                }
              }
            }
          ],
          "leadingComments": []
        },
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 738,
            "end": 762,
            "loc": {
              "start": {
                "line": 26,
                "column": 0
              },
              "end": {
                "line": 26,
                "column": 24
              }
            }
          }
        ]
      },
      {
        "type": "IfStatement",
        "start": 763,
        "end": 869,
        "loc": {
          "start": {
            "line": 27,
            "column": 0
          },
          "end": {
            "line": 27,
            "column": 106
          }
        },
        "test": {
          "type": "MemberExpression",
          "start": 767,
          "end": 777,
          "loc": {
            "start": {
              "line": 27,
              "column": 4
            },
            "end": {
              "line": 27,
              "column": 14
            }
          },
          "object": {
            "type": "Identifier",
            "start": 767,
            "end": 773,
            "loc": {
              "start": {
                "line": 27,
                "column": 4
              },
              "end": {
                "line": 27,
                "column": 10
              },
              "identifierName": "module"
            },
            "name": "module",
            "leadingComments": null
          },
          "property": {
            "type": "Identifier",
            "start": 774,
            "end": 777,
            "loc": {
              "start": {
                "line": 27,
                "column": 11
              },
              "end": {
                "line": 27,
                "column": 14
              },
              "identifierName": "hot"
            },
            "name": "hot"
          },
          "computed": false,
          "leadingComments": null
        },
        "consequent": {
          "type": "ExpressionStatement",
          "start": 779,
          "end": 869,
          "loc": {
            "start": {
              "line": 27,
              "column": 16
            },
            "end": {
              "line": 27,
              "column": 106
            }
          },
          "expression": {
            "type": "CallExpression",
            "start": 779,
            "end": 868,
            "loc": {
              "start": {
                "line": 27,
                "column": 16
              },
              "end": {
                "line": 27,
                "column": 105
              }
            },
            "callee": {
              "type": "MemberExpression",
              "start": 779,
              "end": 796,
              "loc": {
                "start": {
                  "line": 27,
                  "column": 16
                },
                "end": {
                  "line": 27,
                  "column": 33
                }
              },
              "object": {
                "type": "MemberExpression",
                "start": 779,
                "end": 789,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 16
                  },
                  "end": {
                    "line": 27,
                    "column": 26
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 779,
                  "end": 785,
                  "loc": {
                    "start": {
                      "line": 27,
                      "column": 16
                    },
                    "end": {
                      "line": 27,
                      "column": 22
                    },
                    "identifierName": "module"
                  },
                  "name": "module"
                },
                "property": {
                  "type": "Identifier",
                  "start": 786,
                  "end": 789,
                  "loc": {
                    "start": {
                      "line": 27,
                      "column": 23
                    },
                    "end": {
                      "line": 27,
                      "column": 26
                    },
                    "identifierName": "hot"
                  },
                  "name": "hot"
                },
                "computed": false
              },
              "property": {
                "type": "Identifier",
                "start": 790,
                "end": 796,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 27
                  },
                  "end": {
                    "line": 27,
                    "column": 33
                  },
                  "identifierName": "accept"
                },
                "name": "accept"
              },
              "computed": false
            },
            "arguments": [
              {
                "type": "ArrayExpression",
                "start": 797,
                "end": 867,
                "loc": {
                  "start": {
                    "line": 27,
                    "column": 34
                  },
                  "end": {
                    "line": 27,
                    "column": 104
                  }
                },
                "elements": [
                  {
                    "type": "StringLiteral",
                    "start": 798,
                    "end": 807,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 35
                      },
                      "end": {
                        "line": 27,
                        "column": 44
                      }
                    },
                    "extra": {
                      "rawValue": "./point",
                      "raw": "'./point'"
                    },
                    "value": "./point"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 809,
                    "end": 817,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 46
                      },
                      "end": {
                        "line": 27,
                        "column": 54
                      }
                    },
                    "extra": {
                      "rawValue": "./line",
                      "raw": "'./line'"
                    },
                    "value": "./line"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 819,
                    "end": 826,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 56
                      },
                      "end": {
                        "line": 27,
                        "column": 63
                      }
                    },
                    "extra": {
                      "rawValue": "./arc",
                      "raw": "'./arc'"
                    },
                    "value": "./arc"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 828,
                    "end": 838,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 65
                      },
                      "end": {
                        "line": 27,
                        "column": 75
                      }
                    },
                    "extra": {
                      "rawValue": "./circle",
                      "raw": "'./circle'"
                    },
                    "value": "./circle"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 840,
                    "end": 850,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 77
                      },
                      "end": {
                        "line": 27,
                        "column": 87
                      }
                    },
                    "extra": {
                      "rawValue": "./sketch",
                      "raw": "'./sketch'"
                    },
                    "value": "./sketch"
                  },
                  {
                    "type": "StringLiteral",
                    "start": 852,
                    "end": 866,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 89
                      },
                      "end": {
                        "line": 27,
                        "column": 103
                      }
                    },
                    "extra": {
                      "rawValue": "./constraint",
                      "raw": "'./constraint'"
                    },
                    "value": "./constraint"
                  }
                ]
              }
            ]
          }
        },
        "alternate": null,
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " Support hot reloading",
            "start": 738,
            "end": 762,
            "loc": {
              "start": {
                "line": 26,
                "column": 0
              },
              "end": {
                "line": 26,
                "column": 24
              }
            }
          }
        ]
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 738,
      "end": 762,
      "loc": {
        "start": {
          "line": 26,
          "column": 0
        },
        "end": {
          "line": 26,
          "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": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7,
      "end": 8,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 9,
      "end": 11,
      "loc": {
        "start": {
          "line": 1,
          "column": 9
        },
        "end": {
          "line": 1,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintType",
      "start": 12,
      "end": 26,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 27,
      "end": 31,
      "loc": {
        "start": {
          "line": 1,
          "column": 27
        },
        "end": {
          "line": 1,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../constraint/type",
      "start": 32,
      "end": 52,
      "loc": {
        "start": {
          "line": 1,
          "column": 32
        },
        "end": {
          "line": 1,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 52,
      "end": 53,
      "loc": {
        "start": {
          "line": 1,
          "column": 52
        },
        "end": {
          "line": 1,
          "column": 53
        }
      }
    },
    {
      "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": 54,
      "end": 60,
      "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": "Point",
      "start": 61,
      "end": 66,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 67,
      "end": 71,
      "loc": {
        "start": {
          "line": 2,
          "column": 13
        },
        "end": {
          "line": 2,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./point",
      "start": 72,
      "end": 81,
      "loc": {
        "start": {
          "line": 2,
          "column": 18
        },
        "end": {
          "line": 2,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 81,
      "end": 82,
      "loc": {
        "start": {
          "line": 2,
          "column": 27
        },
        "end": {
          "line": 2,
          "column": 28
        }
      }
    },
    {
      "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": 83,
      "end": 89,
      "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": "Line",
      "start": 90,
      "end": 94,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 95,
      "end": 99,
      "loc": {
        "start": {
          "line": 3,
          "column": 12
        },
        "end": {
          "line": 3,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./line",
      "start": 100,
      "end": 108,
      "loc": {
        "start": {
          "line": 3,
          "column": 17
        },
        "end": {
          "line": 3,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 108,
      "end": 109,
      "loc": {
        "start": {
          "line": 3,
          "column": 25
        },
        "end": {
          "line": 3,
          "column": 26
        }
      }
    },
    {
      "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": 110,
      "end": 116,
      "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": "Arc",
      "start": 117,
      "end": 120,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 121,
      "end": 125,
      "loc": {
        "start": {
          "line": 4,
          "column": 11
        },
        "end": {
          "line": 4,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./arc",
      "start": 126,
      "end": 133,
      "loc": {
        "start": {
          "line": 4,
          "column": 16
        },
        "end": {
          "line": 4,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 133,
      "end": 134,
      "loc": {
        "start": {
          "line": 4,
          "column": 23
        },
        "end": {
          "line": 4,
          "column": 24
        }
      }
    },
    {
      "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": 135,
      "end": 141,
      "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": "Circle",
      "start": 142,
      "end": 148,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 149,
      "end": 153,
      "loc": {
        "start": {
          "line": 5,
          "column": 14
        },
        "end": {
          "line": 5,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./circle",
      "start": 154,
      "end": 164,
      "loc": {
        "start": {
          "line": 5,
          "column": 19
        },
        "end": {
          "line": 5,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 164,
      "end": 165,
      "loc": {
        "start": {
          "line": 5,
          "column": 29
        },
        "end": {
          "line": 5,
          "column": 30
        }
      }
    },
    {
      "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": 166,
      "end": 172,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Sketch",
      "start": 173,
      "end": 179,
      "loc": {
        "start": {
          "line": 6,
          "column": 7
        },
        "end": {
          "line": 6,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 180,
      "end": 184,
      "loc": {
        "start": {
          "line": 6,
          "column": 14
        },
        "end": {
          "line": 6,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./sketch",
      "start": 185,
      "end": 195,
      "loc": {
        "start": {
          "line": 6,
          "column": 19
        },
        "end": {
          "line": 6,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 195,
      "end": 196,
      "loc": {
        "start": {
          "line": 6,
          "column": 29
        },
        "end": {
          "line": 6,
          "column": 30
        }
      }
    },
    {
      "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": 197,
      "end": 203,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Constraint",
      "start": 204,
      "end": 214,
      "loc": {
        "start": {
          "line": 7,
          "column": 7
        },
        "end": {
          "line": 7,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 215,
      "end": 219,
      "loc": {
        "start": {
          "line": 7,
          "column": 18
        },
        "end": {
          "line": 7,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./constraint",
      "start": 220,
      "end": 234,
      "loc": {
        "start": {
          "line": 7,
          "column": 23
        },
        "end": {
          "line": 7,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 234,
      "end": 235,
      "loc": {
        "start": {
          "line": 7,
          "column": 37
        },
        "end": {
          "line": 7,
          "column": 38
        }
      }
    },
    {
      "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": 237,
      "end": 243,
      "loc": {
        "start": {
          "line": 9,
          "column": 0
        },
        "end": {
          "line": 9,
          "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": 244,
      "end": 251,
      "loc": {
        "start": {
          "line": 9,
          "column": 7
        },
        "end": {
          "line": 9,
          "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": 252,
      "end": 260,
      "loc": {
        "start": {
          "line": 9,
          "column": 15
        },
        "end": {
          "line": 9,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Graphics",
      "start": 261,
      "end": 269,
      "loc": {
        "start": {
          "line": 9,
          "column": 24
        },
        "end": {
          "line": 9,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 269,
      "end": 270,
      "loc": {
        "start": {
          "line": 9,
          "column": 32
        },
        "end": {
          "line": 9,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 270,
      "end": 274,
      "loc": {
        "start": {
          "line": 9,
          "column": 33
        },
        "end": {
          "line": 9,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 274,
      "end": 275,
      "loc": {
        "start": {
          "line": 9,
          "column": 37
        },
        "end": {
          "line": 9,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 276,
      "end": 277,
      "loc": {
        "start": {
          "line": 9,
          "column": 39
        },
        "end": {
          "line": 9,
          "column": 40
        }
      }
    },
    {
      "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": 282,
      "end": 288,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 289,
      "end": 290,
      "loc": {
        "start": {
          "line": 10,
          "column": 11
        },
        "end": {
          "line": 10,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 290,
      "end": 294,
      "loc": {
        "start": {
          "line": 10,
          "column": 12
        },
        "end": {
          "line": 10,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 294,
      "end": 295,
      "loc": {
        "start": {
          "line": 10,
          "column": 16
        },
        "end": {
          "line": 10,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 296,
      "end": 297,
      "loc": {
        "start": {
          "line": 10,
          "column": 18
        },
        "end": {
          "line": 10,
          "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": 306,
      "end": 310,
      "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": "CC_Point",
      "start": 311,
      "end": 321,
      "loc": {
        "start": {
          "line": 11,
          "column": 13
        },
        "end": {
          "line": 11,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 321,
      "end": 322,
      "loc": {
        "start": {
          "line": 11,
          "column": 23
        },
        "end": {
          "line": 11,
          "column": 24
        }
      }
    },
    {
      "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": 335,
      "end": 341,
      "loc": {
        "start": {
          "line": 12,
          "column": 12
        },
        "end": {
          "line": 12,
          "column": 18
        }
      }
    },
    {
      "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": 342,
      "end": 345,
      "loc": {
        "start": {
          "line": 12,
          "column": 19
        },
        "end": {
          "line": 12,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Point",
      "start": 346,
      "end": 351,
      "loc": {
        "start": {
          "line": 12,
          "column": 23
        },
        "end": {
          "line": 12,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 351,
      "end": 352,
      "loc": {
        "start": {
          "line": 12,
          "column": 28
        },
        "end": {
          "line": 12,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 352,
      "end": 353,
      "loc": {
        "start": {
          "line": 12,
          "column": 29
        },
        "end": {
          "line": 12,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 353,
      "end": 354,
      "loc": {
        "start": {
          "line": 12,
          "column": 30
        },
        "end": {
          "line": 12,
          "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": 363,
      "end": 367,
      "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": "CC_Line",
      "start": 368,
      "end": 377,
      "loc": {
        "start": {
          "line": 13,
          "column": 13
        },
        "end": {
          "line": 13,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 377,
      "end": 378,
      "loc": {
        "start": {
          "line": 13,
          "column": 22
        },
        "end": {
          "line": 13,
          "column": 23
        }
      }
    },
    {
      "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": 391,
      "end": 397,
      "loc": {
        "start": {
          "line": 14,
          "column": 12
        },
        "end": {
          "line": 14,
          "column": 18
        }
      }
    },
    {
      "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": 398,
      "end": 401,
      "loc": {
        "start": {
          "line": 14,
          "column": 19
        },
        "end": {
          "line": 14,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Line",
      "start": 402,
      "end": 406,
      "loc": {
        "start": {
          "line": 14,
          "column": 23
        },
        "end": {
          "line": 14,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 406,
      "end": 407,
      "loc": {
        "start": {
          "line": 14,
          "column": 27
        },
        "end": {
          "line": 14,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 407,
      "end": 408,
      "loc": {
        "start": {
          "line": 14,
          "column": 28
        },
        "end": {
          "line": 14,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 408,
      "end": 409,
      "loc": {
        "start": {
          "line": 14,
          "column": 29
        },
        "end": {
          "line": 14,
          "column": 30
        }
      }
    },
    {
      "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": 418,
      "end": 422,
      "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": "CC_Arc",
      "start": 423,
      "end": 431,
      "loc": {
        "start": {
          "line": 15,
          "column": 13
        },
        "end": {
          "line": 15,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 431,
      "end": 432,
      "loc": {
        "start": {
          "line": 15,
          "column": 21
        },
        "end": {
          "line": 15,
          "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": 445,
      "end": 451,
      "loc": {
        "start": {
          "line": 16,
          "column": 12
        },
        "end": {
          "line": 16,
          "column": 18
        }
      }
    },
    {
      "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": 452,
      "end": 455,
      "loc": {
        "start": {
          "line": 16,
          "column": 19
        },
        "end": {
          "line": 16,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Arc",
      "start": 456,
      "end": 459,
      "loc": {
        "start": {
          "line": 16,
          "column": 23
        },
        "end": {
          "line": 16,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 459,
      "end": 460,
      "loc": {
        "start": {
          "line": 16,
          "column": 26
        },
        "end": {
          "line": 16,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 460,
      "end": 461,
      "loc": {
        "start": {
          "line": 16,
          "column": 27
        },
        "end": {
          "line": 16,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 461,
      "end": 462,
      "loc": {
        "start": {
          "line": 16,
          "column": 28
        },
        "end": {
          "line": 16,
          "column": 29
        }
      }
    },
    {
      "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": 471,
      "end": 475,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Circle",
      "start": 476,
      "end": 487,
      "loc": {
        "start": {
          "line": 17,
          "column": 13
        },
        "end": {
          "line": 17,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 487,
      "end": 488,
      "loc": {
        "start": {
          "line": 17,
          "column": 24
        },
        "end": {
          "line": 17,
          "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": 501,
      "end": 507,
      "loc": {
        "start": {
          "line": 18,
          "column": 12
        },
        "end": {
          "line": 18,
          "column": 18
        }
      }
    },
    {
      "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": 508,
      "end": 511,
      "loc": {
        "start": {
          "line": 18,
          "column": 19
        },
        "end": {
          "line": 18,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Circle",
      "start": 512,
      "end": 518,
      "loc": {
        "start": {
          "line": 18,
          "column": 23
        },
        "end": {
          "line": 18,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 518,
      "end": 519,
      "loc": {
        "start": {
          "line": 18,
          "column": 29
        },
        "end": {
          "line": 18,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 519,
      "end": 520,
      "loc": {
        "start": {
          "line": 18,
          "column": 30
        },
        "end": {
          "line": 18,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 520,
      "end": 521,
      "loc": {
        "start": {
          "line": 18,
          "column": 31
        },
        "end": {
          "line": 18,
          "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": 530,
      "end": 534,
      "loc": {
        "start": {
          "line": 19,
          "column": 8
        },
        "end": {
          "line": 19,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Sketch",
      "start": 535,
      "end": 546,
      "loc": {
        "start": {
          "line": 19,
          "column": 13
        },
        "end": {
          "line": 19,
          "column": 24
        }
      }
    },
    {
      "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": 19,
          "column": 24
        },
        "end": {
          "line": 19,
          "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": 560,
      "end": 566,
      "loc": {
        "start": {
          "line": 20,
          "column": 12
        },
        "end": {
          "line": 20,
          "column": 18
        }
      }
    },
    {
      "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": 567,
      "end": 570,
      "loc": {
        "start": {
          "line": 20,
          "column": 19
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Sketch",
      "start": 571,
      "end": 577,
      "loc": {
        "start": {
          "line": 20,
          "column": 23
        },
        "end": {
          "line": 20,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 577,
      "end": 578,
      "loc": {
        "start": {
          "line": 20,
          "column": 29
        },
        "end": {
          "line": 20,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 578,
      "end": 579,
      "loc": {
        "start": {
          "line": 20,
          "column": 30
        },
        "end": {
          "line": 20,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 579,
      "end": 580,
      "loc": {
        "start": {
          "line": 20,
          "column": 31
        },
        "end": {
          "line": 20,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 585,
      "end": 586,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "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": 591,
      "end": 593,
      "loc": {
        "start": {
          "line": 22,
          "column": 4
        },
        "end": {
          "line": 22,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 594,
      "end": 595,
      "loc": {
        "start": {
          "line": 22,
          "column": 7
        },
        "end": {
          "line": 22,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 595,
      "end": 599,
      "loc": {
        "start": {
          "line": 22,
          "column": 8
        },
        "end": {
          "line": 22,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 599,
      "end": 600,
      "loc": {
        "start": {
          "line": 22,
          "column": 12
        },
        "end": {
          "line": 22,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "endsWith",
      "start": 600,
      "end": 608,
      "loc": {
        "start": {
          "line": 22,
          "column": 13
        },
        "end": {
          "line": 22,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 608,
      "end": 609,
      "loc": {
        "start": {
          "line": 22,
          "column": 21
        },
        "end": {
          "line": 22,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Constraint",
      "start": 609,
      "end": 621,
      "loc": {
        "start": {
          "line": 22,
          "column": 22
        },
        "end": {
          "line": 22,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 621,
      "end": 622,
      "loc": {
        "start": {
          "line": 22,
          "column": 34
        },
        "end": {
          "line": 22,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 622,
      "end": 623,
      "loc": {
        "start": {
          "line": 22,
          "column": 35
        },
        "end": {
          "line": 22,
          "column": 36
        }
      }
    },
    {
      "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": 632,
      "end": 634,
      "loc": {
        "start": {
          "line": 23,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 635,
      "end": 636,
      "loc": {
        "start": {
          "line": 23,
          "column": 11
        },
        "end": {
          "line": 23,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 636,
      "end": 637,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object",
      "start": 637,
      "end": 643,
      "loc": {
        "start": {
          "line": 23,
          "column": 13
        },
        "end": {
          "line": 23,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "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": 19
        },
        "end": {
          "line": 23,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "values",
      "start": 644,
      "end": 650,
      "loc": {
        "start": {
          "line": 23,
          "column": 20
        },
        "end": {
          "line": 23,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 650,
      "end": 651,
      "loc": {
        "start": {
          "line": 23,
          "column": 26
        },
        "end": {
          "line": 23,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintType",
      "start": 651,
      "end": 665,
      "loc": {
        "start": {
          "line": 23,
          "column": 27
        },
        "end": {
          "line": 23,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 665,
      "end": 666,
      "loc": {
        "start": {
          "line": 23,
          "column": 41
        },
        "end": {
          "line": 23,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 666,
      "end": 667,
      "loc": {
        "start": {
          "line": 23,
          "column": 42
        },
        "end": {
          "line": 23,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "find",
      "start": 667,
      "end": 671,
      "loc": {
        "start": {
          "line": 23,
          "column": 43
        },
        "end": {
          "line": 23,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 671,
      "end": 672,
      "loc": {
        "start": {
          "line": 23,
          "column": 47
        },
        "end": {
          "line": 23,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ct",
      "start": 672,
      "end": 674,
      "loc": {
        "start": {
          "line": 23,
          "column": 48
        },
        "end": {
          "line": 23,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 675,
      "end": 677,
      "loc": {
        "start": {
          "line": 23,
          "column": 51
        },
        "end": {
          "line": 23,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ct",
      "start": 678,
      "end": 680,
      "loc": {
        "start": {
          "line": 23,
          "column": 54
        },
        "end": {
          "line": 23,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 680,
      "end": 681,
      "loc": {
        "start": {
          "line": 23,
          "column": 56
        },
        "end": {
          "line": 23,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 681,
      "end": 685,
      "loc": {
        "start": {
          "line": 23,
          "column": 57
        },
        "end": {
          "line": 23,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 686,
      "end": 689,
      "loc": {
        "start": {
          "line": 23,
          "column": 62
        },
        "end": {
          "line": 23,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 690,
      "end": 694,
      "loc": {
        "start": {
          "line": 23,
          "column": 66
        },
        "end": {
          "line": 23,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 694,
      "end": 695,
      "loc": {
        "start": {
          "line": 23,
          "column": 70
        },
        "end": {
          "line": 23,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 695,
      "end": 696,
      "loc": {
        "start": {
          "line": 23,
          "column": 71
        },
        "end": {
          "line": 23,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isParametric",
      "start": 696,
      "end": 708,
      "loc": {
        "start": {
          "line": 23,
          "column": 72
        },
        "end": {
          "line": 23,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 708,
      "end": 709,
      "loc": {
        "start": {
          "line": 23,
          "column": 84
        },
        "end": {
          "line": 23,
          "column": 85
        }
      }
    },
    {
      "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": 710,
      "end": 716,
      "loc": {
        "start": {
          "line": 23,
          "column": 86
        },
        "end": {
          "line": 23,
          "column": 92
        }
      }
    },
    {
      "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": 717,
      "end": 720,
      "loc": {
        "start": {
          "line": 23,
          "column": 93
        },
        "end": {
          "line": 23,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Constraint",
      "start": 721,
      "end": 731,
      "loc": {
        "start": {
          "line": 23,
          "column": 97
        },
        "end": {
          "line": 23,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 731,
      "end": 732,
      "loc": {
        "start": {
          "line": 23,
          "column": 107
        },
        "end": {
          "line": 23,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 732,
      "end": 733,
      "loc": {
        "start": {
          "line": 23,
          "column": 108
        },
        "end": {
          "line": 23,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 733,
      "end": 734,
      "loc": {
        "start": {
          "line": 23,
          "column": 109
        },
        "end": {
          "line": 23,
          "column": 110
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 735,
      "end": 736,
      "loc": {
        "start": {
          "line": 24,
          "column": 0
        },
        "end": {
          "line": 24,
          "column": 1
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Support hot reloading",
      "start": 738,
      "end": 762,
      "loc": {
        "start": {
          "line": 26,
          "column": 0
        },
        "end": {
          "line": 26,
          "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": 763,
      "end": 765,
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 27,
          "column": 2
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 766,
      "end": 767,
      "loc": {
        "start": {
          "line": 27,
          "column": 3
        },
        "end": {
          "line": 27,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 767,
      "end": 773,
      "loc": {
        "start": {
          "line": 27,
          "column": 4
        },
        "end": {
          "line": 27,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 773,
      "end": 774,
      "loc": {
        "start": {
          "line": 27,
          "column": 10
        },
        "end": {
          "line": 27,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 774,
      "end": 777,
      "loc": {
        "start": {
          "line": 27,
          "column": 11
        },
        "end": {
          "line": 27,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 777,
      "end": 778,
      "loc": {
        "start": {
          "line": 27,
          "column": 14
        },
        "end": {
          "line": 27,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 779,
      "end": 785,
      "loc": {
        "start": {
          "line": 27,
          "column": 16
        },
        "end": {
          "line": 27,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 785,
      "end": 786,
      "loc": {
        "start": {
          "line": 27,
          "column": 22
        },
        "end": {
          "line": 27,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hot",
      "start": 786,
      "end": 789,
      "loc": {
        "start": {
          "line": 27,
          "column": 23
        },
        "end": {
          "line": 27,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 789,
      "end": 790,
      "loc": {
        "start": {
          "line": 27,
          "column": 26
        },
        "end": {
          "line": 27,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "accept",
      "start": 790,
      "end": 796,
      "loc": {
        "start": {
          "line": 27,
          "column": 27
        },
        "end": {
          "line": 27,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 796,
      "end": 797,
      "loc": {
        "start": {
          "line": 27,
          "column": 33
        },
        "end": {
          "line": 27,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 797,
      "end": 798,
      "loc": {
        "start": {
          "line": 27,
          "column": 34
        },
        "end": {
          "line": 27,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./point",
      "start": 798,
      "end": 807,
      "loc": {
        "start": {
          "line": 27,
          "column": 35
        },
        "end": {
          "line": 27,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 807,
      "end": 808,
      "loc": {
        "start": {
          "line": 27,
          "column": 44
        },
        "end": {
          "line": 27,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./line",
      "start": 809,
      "end": 817,
      "loc": {
        "start": {
          "line": 27,
          "column": 46
        },
        "end": {
          "line": 27,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 817,
      "end": 818,
      "loc": {
        "start": {
          "line": 27,
          "column": 54
        },
        "end": {
          "line": 27,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./arc",
      "start": 819,
      "end": 826,
      "loc": {
        "start": {
          "line": 27,
          "column": 56
        },
        "end": {
          "line": 27,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 826,
      "end": 827,
      "loc": {
        "start": {
          "line": 27,
          "column": 63
        },
        "end": {
          "line": 27,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./circle",
      "start": 828,
      "end": 838,
      "loc": {
        "start": {
          "line": 27,
          "column": 65
        },
        "end": {
          "line": 27,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 838,
      "end": 839,
      "loc": {
        "start": {
          "line": 27,
          "column": 75
        },
        "end": {
          "line": 27,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./sketch",
      "start": 840,
      "end": 850,
      "loc": {
        "start": {
          "line": 27,
          "column": 77
        },
        "end": {
          "line": 27,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 850,
      "end": 851,
      "loc": {
        "start": {
          "line": 27,
          "column": 87
        },
        "end": {
          "line": 27,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./constraint",
      "start": 852,
      "end": 866,
      "loc": {
        "start": {
          "line": 27,
          "column": 89
        },
        "end": {
          "line": 27,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 866,
      "end": 867,
      "loc": {
        "start": {
          "line": 27,
          "column": 103
        },
        "end": {
          "line": 27,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 867,
      "end": 868,
      "loc": {
        "start": {
          "line": 27,
          "column": 104
        },
        "end": {
          "line": 27,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 868,
      "end": 869,
      "loc": {
        "start": {
          "line": 27,
          "column": 105
        },
        "end": {
          "line": 27,
          "column": 106
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 870,
      "end": 870,
      "loc": {
        "start": {
          "line": 28,
          "column": 0
        },
        "end": {
          "line": 28,
          "column": 0
        }
      }
    }
  ]
}