{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "local": {
            "type": "Identifier",
            "name": "execMethod",
            "range": [
              7,
              17
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 17
              }
            }
          },
          "range": [
            7,
            17
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 7
            },
            "end": {
              "line": 1,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "./helpers/execMethod",
        "raw": "'./helpers/execMethod'",
        "range": [
          23,
          45
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 23
          },
          "end": {
            "line": 1,
            "column": 45
          }
        }
      },
      "range": [
        0,
        46
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 46
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * A stat collector that initially includes no collector functions.\n * @example\n * const statsCollector = new BaseStatsCollector();\n * statsCollector.addCollector({name: 'custom', onUpdate: fn});\n * statsCollector.update([1, 2, 3, 4, 5]);\n * statsCollector.get();\n ",
          "range": [
            48,
            319
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 10,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportDefaultDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "BaseStatsCollector",
          "range": [
            341,
            359
          ],
          "loc": {
            "start": {
              "line": 11,
              "column": 21
            },
            "end": {
              "line": 11,
              "column": 39
            }
          }
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  364,
                  375
                ],
                "loc": {
                  "start": {
                    "line": 12,
                    "column": 2
                  },
                  "end": {
                    "line": 12,
                    "column": 13
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              384,
                              388
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 4
                              },
                              "end": {
                                "line": 13,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_collectors",
                            "range": [
                              389,
                              400
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 9
                              },
                              "end": {
                                "line": 13,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            384,
                            400
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 4
                            },
                            "end": {
                              "line": 13,
                              "column": 20
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            403,
                            405
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 23
                            },
                            "end": {
                              "line": 13,
                              "column": 25
                            }
                          }
                        },
                        "range": [
                          384,
                          405
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 4
                          },
                          "end": {
                            "line": 13,
                            "column": 25
                          }
                        }
                      },
                      "range": [
                        384,
                        406
                      ],
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 4
                        },
                        "end": {
                          "line": 13,
                          "column": 26
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              411,
                              415
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 4
                              },
                              "end": {
                                "line": 14,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_reset",
                            "range": [
                              416,
                              422
                            ],
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 9
                              },
                              "end": {
                                "line": 14,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            411,
                            422
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 4
                            },
                            "end": {
                              "line": 14,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": true,
                          "raw": "true",
                          "range": [
                            425,
                            429
                          ],
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 18
                            },
                            "end": {
                              "line": 14,
                              "column": 22
                            }
                          }
                        },
                        "range": [
                          411,
                          429
                        ],
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 4
                          },
                          "end": {
                            "line": 14,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        411,
                        430
                      ],
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 4
                        },
                        "end": {
                          "line": 14,
                          "column": 23
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              435,
                              439
                            ],
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 4
                              },
                              "end": {
                                "line": 15,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_state",
                            "range": [
                              440,
                              446
                            ],
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 9
                              },
                              "end": {
                                "line": 15,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            435,
                            446
                          ],
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 4
                            },
                            "end": {
                              "line": 15,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "properties": [],
                          "range": [
                            449,
                            451
                          ],
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 18
                            },
                            "end": {
                              "line": 15,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          435,
                          451
                        ],
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 4
                          },
                          "end": {
                            "line": 15,
                            "column": 20
                          }
                        }
                      },
                      "range": [
                        435,
                        452
                      ],
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 21
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              457,
                              461
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 4
                              },
                              "end": {
                                "line": 16,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_ignore",
                            "range": [
                              462,
                              469
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 9
                              },
                              "end": {
                                "line": 16,
                                "column": 16
                              }
                            }
                          },
                          "range": [
                            457,
                            469
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 16,
                              "column": 16
                            }
                          }
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "elements": [],
                          "range": [
                            472,
                            474
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 19
                            },
                            "end": {
                              "line": 16,
                              "column": 21
                            }
                          }
                        },
                        "range": [
                          457,
                          474
                        ],
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 4
                          },
                          "end": {
                            "line": 16,
                            "column": 21
                          }
                        }
                      },
                      "range": [
                        457,
                        475
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 16,
                          "column": 22
                        }
                      }
                    }
                  ],
                  "range": [
                    378,
                    479
                  ],
                  "loc": {
                    "start": {
                      "line": 12,
                      "column": 16
                    },
                    "end": {
                      "line": 17,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  375,
                  479
                ],
                "loc": {
                  "start": {
                    "line": 12,
                    "column": 13
                  },
                  "end": {
                    "line": 17,
                    "column": 3
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                364,
                479
              ],
              "loc": {
                "start": {
                  "line": 12,
                  "column": 2
                },
                "end": {
                  "line": 17,
                  "column": 3
                }
              },
              "trailingComments": [
                {
                  "type": "Block",
                  "value": "*\n   * Add a collector function that can process data\n   * when update() or get() is called.\n   * @param {Object} collector An object with the following properties:\n   *   - **name** - [String] The name of the collector\n   *   - **initialValue** - [any] The initial value if update() has never been called\n   *   - **requirements** - [Array] An array of collector names that must be added before this collector\n   *   - **onUpdate** - [Function]\n   *   - **onGet** - [Function]\n   * @example\n   * const statCollector = new BaseStatsCollector();\n   * statCollector.addCollector({\n   *   name: 'test-sum',\n   *   initialValue: 0,\n   *   onUpdate: function (prev, state, val) { return prev + val; }\n   * });\n   * @return {undefined}\n   ",
                  "range": [
                    482,
                    1219
                  ],
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 2
                    },
                    "end": {
                      "line": 35,
                      "column": 5
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "addCollector",
                "range": [
                  1222,
                  1234
                ],
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 2
                  },
                  "end": {
                    "line": 36,
                    "column": 14
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "collector",
                    "range": [
                      1235,
                      1244
                    ],
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 15
                      },
                      "end": {
                        "line": 36,
                        "column": 24
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "UnaryExpression",
                        "operator": "!",
                        "argument": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              1257,
                              1261
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 9
                              },
                              "end": {
                                "line": 37,
                                "column": 13
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_reset",
                            "range": [
                              1262,
                              1268
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 14
                              },
                              "end": {
                                "line": 37,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            1257,
                            1268
                          ],
                          "loc": {
                            "start": {
                              "line": 37,
                              "column": 9
                            },
                            "end": {
                              "line": 37,
                              "column": 20
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          1256,
                          1268
                        ],
                        "loc": {
                          "start": {
                            "line": 37,
                            "column": 8
                          },
                          "end": {
                            "line": 37,
                            "column": 20
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ThrowStatement",
                            "argument": {
                              "type": "NewExpression",
                              "callee": {
                                "type": "Identifier",
                                "name": "Error",
                                "range": [
                                  1288,
                                  1293
                                ],
                                "loc": {
                                  "start": {
                                    "line": 38,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 38,
                                    "column": 21
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "value": "Cannot add a new collector unless you call reset() first",
                                  "raw": "'Cannot add a new collector unless you call reset() first'",
                                  "range": [
                                    1294,
                                    1352
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 80
                                    }
                                  }
                                }
                              ],
                              "range": [
                                1284,
                                1353
                              ],
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 12
                                },
                                "end": {
                                  "line": 38,
                                  "column": 81
                                }
                              }
                            },
                            "range": [
                              1278,
                              1354
                            ],
                            "loc": {
                              "start": {
                                "line": 38,
                                "column": 6
                              },
                              "end": {
                                "line": 38,
                                "column": 82
                              }
                            }
                          }
                        ],
                        "range": [
                          1270,
                          1360
                        ],
                        "loc": {
                          "start": {
                            "line": 37,
                            "column": 22
                          },
                          "end": {
                            "line": 39,
                            "column": 5
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        1252,
                        1360
                      ],
                      "loc": {
                        "start": {
                          "line": 37,
                          "column": 4
                        },
                        "end": {
                          "line": 39,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "LogicalExpression",
                        "operator": "&&",
                        "left": {
                          "type": "BinaryExpression",
                          "operator": "===",
                          "left": {
                            "type": "UnaryExpression",
                            "operator": "typeof",
                            "argument": {
                              "type": "Identifier",
                              "name": "collector",
                              "range": [
                                1376,
                                1385
                              ],
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 15
                                },
                                "end": {
                                  "line": 40,
                                  "column": 24
                                }
                              }
                            },
                            "prefix": true,
                            "range": [
                              1369,
                              1385
                            ],
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 8
                              },
                              "end": {
                                "line": 40,
                                "column": 24
                              }
                            }
                          },
                          "right": {
                            "type": "Literal",
                            "value": "object",
                            "raw": "'object'",
                            "range": [
                              1390,
                              1398
                            ],
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 29
                              },
                              "end": {
                                "line": 40,
                                "column": 37
                              }
                            }
                          },
                          "range": [
                            1369,
                            1398
                          ],
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 8
                            },
                            "end": {
                              "line": 40,
                              "column": 37
                            }
                          }
                        },
                        "right": {
                          "type": "BinaryExpression",
                          "operator": "===",
                          "left": {
                            "type": "UnaryExpression",
                            "operator": "typeof",
                            "argument": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "collector",
                                "range": [
                                  1409,
                                  1418
                                ],
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 57
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "name",
                                "range": [
                                  1419,
                                  1423
                                ],
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 62
                                  }
                                }
                              },
                              "range": [
                                1409,
                                1423
                              ],
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 48
                                },
                                "end": {
                                  "line": 40,
                                  "column": 62
                                }
                              }
                            },
                            "prefix": true,
                            "range": [
                              1402,
                              1423
                            ],
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 41
                              },
                              "end": {
                                "line": 40,
                                "column": 62
                              }
                            }
                          },
                          "right": {
                            "type": "Literal",
                            "value": "string",
                            "raw": "'string'",
                            "range": [
                              1428,
                              1436
                            ],
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 67
                              },
                              "end": {
                                "line": 40,
                                "column": 75
                              }
                            }
                          },
                          "range": [
                            1402,
                            1436
                          ],
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 41
                            },
                            "end": {
                              "line": 40,
                              "column": 75
                            }
                          }
                        },
                        "range": [
                          1369,
                          1436
                        ],
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 8
                          },
                          "end": {
                            "line": 40,
                            "column": 75
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "id": {
                                  "type": "Identifier",
                                  "name": "reqIndex",
                                  "range": [
                                    1450,
                                    1458
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 18
                                    }
                                  }
                                },
                                "init": null,
                                "range": [
                                  1450,
                                  1458
                                ],
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 18
                                  }
                                }
                              }
                            ],
                            "kind": "let",
                            "range": [
                              1446,
                              1459
                            ],
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 6
                              },
                              "end": {
                                "line": 41,
                                "column": 19
                              }
                            }
                          },
                          {
                            "type": "VariableDeclaration",
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "id": {
                                  "type": "Identifier",
                                  "name": "requirements",
                                  "range": [
                                    1470,
                                    1482
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 22
                                    }
                                  }
                                },
                                "init": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "collector",
                                    "range": [
                                      1485,
                                      1494
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "requirements",
                                    "range": [
                                      1495,
                                      1507
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 47
                                      }
                                    }
                                  },
                                  "range": [
                                    1485,
                                    1507
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 47
                                    }
                                  }
                                },
                                "range": [
                                  1470,
                                  1507
                                ],
                                "loc": {
                                  "start": {
                                    "line": 42,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 42,
                                    "column": 47
                                  }
                                }
                              }
                            ],
                            "kind": "let",
                            "range": [
                              1466,
                              1508
                            ],
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 6
                              },
                              "end": {
                                "line": 42,
                                "column": 48
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "UnaryExpression",
                              "operator": "!",
                              "argument": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "Array",
                                    "range": [
                                      1520,
                                      1525
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "isArray",
                                    "range": [
                                      1526,
                                      1533
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    1520,
                                    1533
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 43,
                                      "column": 11
                                    },
                                    "end": {
                                      "line": 43,
                                      "column": 24
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "requirements",
                                    "range": [
                                      1534,
                                      1546
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 37
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1520,
                                  1547
                                ],
                                "loc": {
                                  "start": {
                                    "line": 43,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 43,
                                    "column": 38
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                1519,
                                1547
                              ],
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 10
                                },
                                "end": {
                                  "line": 43,
                                  "column": 38
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "requirements",
                                      "range": [
                                        1559,
                                        1571
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "ArrayExpression",
                                      "elements": [],
                                      "range": [
                                        1574,
                                        1576
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "range": [
                                      1559,
                                      1576
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "range": [
                                    1559,
                                    1577
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 26
                                    }
                                  }
                                }
                              ],
                              "range": [
                                1549,
                                1585
                              ],
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 40
                                },
                                "end": {
                                  "line": 45,
                                  "column": 7
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              1515,
                              1585
                            ],
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 6
                              },
                              "end": {
                                "line": 45,
                                "column": 7
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      1592,
                                      1596
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_collectors",
                                    "range": [
                                      1597,
                                      1608
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "range": [
                                    1592,
                                    1608
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "forEach",
                                  "range": [
                                    1609,
                                    1616
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 30
                                    }
                                  }
                                },
                                "range": [
                                  1592,
                                  1616
                                ],
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 30
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "FunctionExpression",
                                  "id": null,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "name": "currentCollector",
                                      "range": [
                                        1627,
                                        1643
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 46,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 46,
                                          "column": 57
                                        }
                                      }
                                    }
                                  ],
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "BinaryExpression",
                                          "operator": "===",
                                          "left": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "currentCollector",
                                              "range": [
                                                1659,
                                                1675
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 28
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "name",
                                              "range": [
                                                1676,
                                                1680
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 33
                                                }
                                              }
                                            },
                                            "range": [
                                              1659,
                                              1680
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "collector",
                                              "range": [
                                                1685,
                                                1694
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 47
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "name",
                                              "range": [
                                                1695,
                                                1699
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 52
                                                }
                                              }
                                            },
                                            "range": [
                                              1685,
                                              1699
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 52
                                              }
                                            }
                                          },
                                          "range": [
                                            1659,
                                            1699
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 52
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ThrowStatement",
                                              "argument": {
                                                "type": "NewExpression",
                                                "callee": {
                                                  "type": "Identifier",
                                                  "name": "Error",
                                                  "range": [
                                                    1723,
                                                    1728
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 48,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 48,
                                                      "column": 25
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Literal",
                                                    "value": "A collector with that name has already been added.",
                                                    "raw": "'A collector with that name has already been added.'",
                                                    "range": [
                                                      1729,
                                                      1781
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 48,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 48,
                                                        "column": 78
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  1719,
                                                  1782
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 48,
                                                    "column": 16
                                                  },
                                                  "end": {
                                                    "line": 48,
                                                    "column": 79
                                                  }
                                                }
                                              },
                                              "range": [
                                                1713,
                                                1783
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 48,
                                                  "column": 10
                                                },
                                                "end": {
                                                  "line": 48,
                                                  "column": 80
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            1701,
                                            1793
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 49,
                                              "column": 9
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          1655,
                                          1793
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 49,
                                            "column": 9
                                          }
                                        }
                                      },
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "reqIndex",
                                            "range": [
                                              1802,
                                              1810
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 50,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 50,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "Identifier",
                                                "name": "requirements",
                                                "range": [
                                                  1813,
                                                  1825
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 50,
                                                    "column": 19
                                                  },
                                                  "end": {
                                                    "line": 50,
                                                    "column": 31
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "indexOf",
                                                "range": [
                                                  1826,
                                                  1833
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 50,
                                                    "column": 32
                                                  },
                                                  "end": {
                                                    "line": 50,
                                                    "column": 39
                                                  }
                                                }
                                              },
                                              "range": [
                                                1813,
                                                1833
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 50,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 50,
                                                  "column": 39
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "currentCollector",
                                                  "range": [
                                                    1834,
                                                    1850
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 50,
                                                      "column": 40
                                                    },
                                                    "end": {
                                                      "line": 50,
                                                      "column": 56
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "name",
                                                  "range": [
                                                    1851,
                                                    1855
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 50,
                                                      "column": 57
                                                    },
                                                    "end": {
                                                      "line": 50,
                                                      "column": 61
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1834,
                                                  1855
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 50,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 50,
                                                    "column": 61
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              1813,
                                              1856
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 50,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 50,
                                                "column": 62
                                              }
                                            }
                                          },
                                          "range": [
                                            1802,
                                            1856
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 50,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 50,
                                              "column": 62
                                            }
                                          }
                                        },
                                        "range": [
                                          1802,
                                          1857
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 50,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 50,
                                            "column": 63
                                          }
                                        }
                                      },
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "BinaryExpression",
                                          "operator": ">=",
                                          "left": {
                                            "type": "Identifier",
                                            "name": "reqIndex",
                                            "range": [
                                              1870,
                                              1878
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 51,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 51,
                                                "column": 20
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "Literal",
                                            "value": 0,
                                            "raw": "0",
                                            "range": [
                                              1882,
                                              1883
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 51,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 51,
                                                "column": 25
                                              }
                                            }
                                          },
                                          "range": [
                                            1870,
                                            1883
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 51,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 51,
                                              "column": 25
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "CallExpression",
                                                "callee": {
                                                  "type": "MemberExpression",
                                                  "computed": false,
                                                  "object": {
                                                    "type": "Identifier",
                                                    "name": "requirements",
                                                    "range": [
                                                      1897,
                                                      1909
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 10
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 22
                                                      }
                                                    }
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "name": "splice",
                                                    "range": [
                                                      1910,
                                                      1916
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 23
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 29
                                                      }
                                                    }
                                                  },
                                                  "range": [
                                                    1897,
                                                    1916
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 52,
                                                      "column": 10
                                                    },
                                                    "end": {
                                                      "line": 52,
                                                      "column": 29
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "reqIndex",
                                                    "range": [
                                                      1917,
                                                      1925
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 30
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 38
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Literal",
                                                    "value": 1,
                                                    "raw": "1",
                                                    "range": [
                                                      1927,
                                                      1928
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 52,
                                                        "column": 40
                                                      },
                                                      "end": {
                                                        "line": 52,
                                                        "column": 41
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  1897,
                                                  1929
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 52,
                                                    "column": 10
                                                  },
                                                  "end": {
                                                    "line": 52,
                                                    "column": 42
                                                  }
                                                }
                                              },
                                              "range": [
                                                1897,
                                                1930
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 52,
                                                  "column": 10
                                                },
                                                "end": {
                                                  "line": 52,
                                                  "column": 43
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            1885,
                                            1940
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 51,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 53,
                                              "column": 9
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          1866,
                                          1940
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 51,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 9
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      1645,
                                      1948
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 54,
                                        "column": 7
                                      }
                                    }
                                  },
                                  "generator": false,
                                  "expression": false,
                                  "range": [
                                    1617,
                                    1948
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 7
                                    }
                                  }
                                }
                              ],
                              "range": [
                                1592,
                                1949
                              ],
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 6
                                },
                                "end": {
                                  "line": 54,
                                  "column": 8
                                }
                              }
                            },
                            "range": [
                              1592,
                              1950
                            ],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 6
                              },
                              "end": {
                                "line": 54,
                                "column": 9
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "requirements",
                                "range": [
                                  1961,
                                  1973
                                ],
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 22
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "length",
                                "range": [
                                  1974,
                                  1980
                                ],
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 29
                                  }
                                }
                              },
                              "range": [
                                1961,
                                1980
                              ],
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 10
                                },
                                "end": {
                                  "line": 55,
                                  "column": 29
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ThrowStatement",
                                  "argument": {
                                    "type": "NewExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "Error",
                                      "range": [
                                        2002,
                                        2007
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "TemplateLiteral",
                                        "quasis": [
                                          {
                                            "type": "TemplateElement",
                                            "value": {
                                              "raw": "Did not meet the requirements: ",
                                              "cooked": "Did not meet the requirements: "
                                            },
                                            "tail": false,
                                            "range": [
                                              2008,
                                              2042
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 56,
                                                "column": 24
                                              },
                                              "end": {
                                                "line": 56,
                                                "column": 58
                                              }
                                            }
                                          },
                                          {
                                            "type": "TemplateElement",
                                            "value": {
                                              "raw": "",
                                              "cooked": ""
                                            },
                                            "tail": true,
                                            "range": [
                                              2054,
                                              2056
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 56,
                                                "column": 70
                                              },
                                              "end": {
                                                "line": 56,
                                                "column": 72
                                              }
                                            }
                                          }
                                        ],
                                        "expressions": [
                                          {
                                            "type": "Identifier",
                                            "name": "requirements",
                                            "range": [
                                              2042,
                                              2054
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 56,
                                                "column": 58
                                              },
                                              "end": {
                                                "line": 56,
                                                "column": 70
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          2008,
                                          2056
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 72
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      1998,
                                      2057
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 73
                                      }
                                    }
                                  },
                                  "range": [
                                    1992,
                                    2058
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 74
                                    }
                                  }
                                }
                              ],
                              "range": [
                                1982,
                                2066
                              ],
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 31
                                },
                                "end": {
                                  "line": 57,
                                  "column": 7
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              1957,
                              2066
                            ],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 6
                              },
                              "end": {
                                "line": 57,
                                "column": 7
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2073,
                                      2077
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_collectors",
                                    "range": [
                                      2078,
                                      2089
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "range": [
                                    2073,
                                    2089
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 22
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "push",
                                  "range": [
                                    2090,
                                    2094
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 27
                                    }
                                  }
                                },
                                "range": [
                                  2073,
                                  2094
                                ],
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 27
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "name": "collector",
                                  "range": [
                                    2095,
                                    2104
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 37
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2073,
                                2105
                              ],
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 6
                                },
                                "end": {
                                  "line": 58,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              2073,
                              2106
                            ],
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 6
                              },
                              "end": {
                                "line": 58,
                                "column": 39
                              }
                            }
                          }
                        ],
                        "range": [
                          1438,
                          2112
                        ],
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 77
                          },
                          "end": {
                            "line": 59,
                            "column": 5
                          }
                        }
                      },
                      "alternate": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ThrowStatement",
                            "argument": {
                              "type": "NewExpression",
                              "callee": {
                                "type": "Identifier",
                                "name": "Error",
                                "range": [
                                  2136,
                                  2141
                                ],
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 21
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "Literal",
                                  "value": "Collector must be an object with a name",
                                  "raw": "'Collector must be an object with a name'",
                                  "range": [
                                    2142,
                                    2183
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 63
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2132,
                                2184
                              ],
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 12
                                },
                                "end": {
                                  "line": 60,
                                  "column": 64
                                }
                              }
                            },
                            "range": [
                              2126,
                              2185
                            ],
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 6
                              },
                              "end": {
                                "line": 60,
                                "column": 65
                              }
                            }
                          }
                        ],
                        "range": [
                          2118,
                          2191
                        ],
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 11
                          },
                          "end": {
                            "line": 61,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1365,
                        2191
                      ],
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 4
                        },
                        "end": {
                          "line": 61,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2196,
                              2200
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 4
                              },
                              "end": {
                                "line": 62,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "reset",
                            "range": [
                              2201,
                              2206
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 9
                              },
                              "end": {
                                "line": 62,
                                "column": 14
                              }
                            }
                          },
                          "range": [
                            2196,
                            2206
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 4
                            },
                            "end": {
                              "line": 62,
                              "column": 14
                            }
                          }
                        },
                        "arguments": [],
                        "range": [
                          2196,
                          2208
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 4
                          },
                          "end": {
                            "line": 62,
                            "column": 16
                          }
                        }
                      },
                      "range": [
                        2196,
                        2209
                      ],
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 4
                        },
                        "end": {
                          "line": 62,
                          "column": 17
                        }
                      }
                    }
                  ],
                  "range": [
                    1246,
                    2213
                  ],
                  "loc": {
                    "start": {
                      "line": 36,
                      "column": 26
                    },
                    "end": {
                      "line": 63,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1234,
                  2213
                ],
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 14
                  },
                  "end": {
                    "line": 63,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                1222,
                2213
              ],
              "loc": {
                "start": {
                  "line": 36,
                  "column": 2
                },
                "end": {
                  "line": 63,
                  "column": 3
                }
              },
              "leadingComments": [
                {
                  "type": "Block",
                  "value": "*\n   * Add a collector function that can process data\n   * when update() or get() is called.\n   * @param {Object} collector An object with the following properties:\n   *   - **name** - [String] The name of the collector\n   *   - **initialValue** - [any] The initial value if update() has never been called\n   *   - **requirements** - [Array] An array of collector names that must be added before this collector\n   *   - **onUpdate** - [Function]\n   *   - **onGet** - [Function]\n   * @example\n   * const statCollector = new BaseStatsCollector();\n   * statCollector.addCollector({\n   *   name: 'test-sum',\n   *   initialValue: 0,\n   *   onUpdate: function (prev, state, val) { return prev + val; }\n   * });\n   * @return {undefined}\n   ",
                  "range": [
                    482,
                    1219
                  ],
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 2
                    },
                    "end": {
                      "line": 35,
                      "column": 5
                    }
                  }
                }
              ],
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "addIgnore",
                "range": [
                  2216,
                  2225
                ],
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 2
                  },
                  "end": {
                    "line": 64,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "name",
                    "range": [
                      2226,
                      2230
                    ],
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 12
                      },
                      "end": {
                        "line": 64,
                        "column": 16
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "===",
                        "left": {
                          "type": "CallExpression",
                          "callee": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2242,
                                  2246
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "_ignore",
                                "range": [
                                  2247,
                                  2254
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 20
                                  }
                                }
                              },
                              "range": [
                                2242,
                                2254
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 8
                                },
                                "end": {
                                  "line": 65,
                                  "column": 20
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "indexOf",
                              "range": [
                                2255,
                                2262
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 21
                                },
                                "end": {
                                  "line": 65,
                                  "column": 28
                                }
                              }
                            },
                            "range": [
                              2242,
                              2262
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 28
                              }
                            }
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "name": "name",
                              "range": [
                                2263,
                                2267
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 29
                                },
                                "end": {
                                  "line": 65,
                                  "column": 33
                                }
                              }
                            }
                          ],
                          "range": [
                            2242,
                            2268
                          ],
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 8
                            },
                            "end": {
                              "line": 65,
                              "column": 34
                            }
                          }
                        },
                        "right": {
                          "type": "UnaryExpression",
                          "operator": "-",
                          "argument": {
                            "type": "Literal",
                            "value": 1,
                            "raw": "1",
                            "range": [
                              2274,
                              2275
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 40
                              },
                              "end": {
                                "line": 65,
                                "column": 41
                              }
                            }
                          },
                          "prefix": true,
                          "range": [
                            2273,
                            2275
                          ],
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 39
                            },
                            "end": {
                              "line": 65,
                              "column": 41
                            }
                          }
                        },
                        "range": [
                          2242,
                          2275
                        ],
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 8
                          },
                          "end": {
                            "line": 65,
                            "column": 41
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2285,
                                      2289
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_ignore",
                                    "range": [
                                      2290,
                                      2297
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "range": [
                                    2285,
                                    2297
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 18
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "push",
                                  "range": [
                                    2298,
                                    2302
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 23
                                    }
                                  }
                                },
                                "range": [
                                  2285,
                                  2302
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 23
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "name": "name",
                                  "range": [
                                    2303,
                                    2307
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 66,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 66,
                                      "column": 28
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2285,
                                2308
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 6
                                },
                                "end": {
                                  "line": 66,
                                  "column": 29
                                }
                              }
                            },
                            "range": [
                              2285,
                              2309
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 6
                              },
                              "end": {
                                "line": 66,
                                "column": 30
                              }
                            }
                          }
                        ],
                        "range": [
                          2277,
                          2315
                        ],
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 43
                          },
                          "end": {
                            "line": 67,
                            "column": 5
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        2238,
                        2315
                      ],
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 4
                        },
                        "end": {
                          "line": 67,
                          "column": 5
                        }
                      }
                    }
                  ],
                  "range": [
                    2232,
                    2319
                  ],
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 18
                    },
                    "end": {
                      "line": 68,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  2225,
                  2319
                ],
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 11
                  },
                  "end": {
                    "line": 68,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                2216,
                2319
              ],
              "loc": {
                "start": {
                  "line": 64,
                  "column": 2
                },
                "end": {
                  "line": 68,
                  "column": 3
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "get",
                "range": [
                  2322,
                  2325
                ],
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 2
                  },
                  "end": {
                    "line": 69,
                    "column": 5
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "self",
                            "range": [
                              2340,
                              2344
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 10
                              },
                              "end": {
                                "line": 70,
                                "column": 14
                              }
                            }
                          },
                          "init": {
                            "type": "ThisExpression",
                            "range": [
                              2347,
                              2351
                            ],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 17
                              },
                              "end": {
                                "line": 70,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            2340,
                            2351
                          ],
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 10
                            },
                            "end": {
                              "line": 70,
                              "column": 21
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        2334,
                        2352
                      ],
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 4
                        },
                        "end": {
                          "line": 70,
                          "column": 22
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "result",
                            "range": [
                              2363,
                              2369
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 10
                              },
                              "end": {
                                "line": 71,
                                "column": 16
                              }
                            }
                          },
                          "init": {
                            "type": "ObjectExpression",
                            "properties": [],
                            "range": [
                              2372,
                              2374
                            ],
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 19
                              },
                              "end": {
                                "line": 71,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            2363,
                            2374
                          ],
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 10
                            },
                            "end": {
                              "line": 71,
                              "column": 21
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        2357,
                        2375
                      ],
                      "loc": {
                        "start": {
                          "line": 71,
                          "column": 4
                        },
                        "end": {
                          "line": 71,
                          "column": 22
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "UnaryExpression",
                        "operator": "!",
                        "argument": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              2385,
                              2389
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 9
                              },
                              "end": {
                                "line": 72,
                                "column": 13
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_reset",
                            "range": [
                              2390,
                              2396
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 14
                              },
                              "end": {
                                "line": 72,
                                "column": 20
                              }
                            }
                          },
                          "range": [
                            2385,
                            2396
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 9
                            },
                            "end": {
                              "line": 72,
                              "column": 20
                            }
                          }
                        },
                        "prefix": true,
                        "range": [
                          2384,
                          2396
                        ],
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 8
                          },
                          "end": {
                            "line": 72,
                            "column": 20
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "Identifier",
                                "name": "execMethod",
                                "range": [
                                  2406,
                                  2416
                                ],
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 16
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    2417,
                                    2421
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 21
                                    }
                                  }
                                },
                                {
                                  "type": "Literal",
                                  "value": "onGet",
                                  "raw": "'onGet'",
                                  "range": [
                                    2423,
                                    2430
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 30
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2406,
                                2431
                              ],
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 6
                                },
                                "end": {
                                  "line": 73,
                                  "column": 31
                                }
                              }
                            },
                            "range": [
                              2406,
                              2432
                            ],
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 6
                              },
                              "end": {
                                "line": 73,
                                "column": 32
                              }
                            }
                          }
                        ],
                        "range": [
                          2398,
                          2438
                        ],
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 22
                          },
                          "end": {
                            "line": 74,
                            "column": 5
                          }
                        }
                      },
                      "alternate": null,
                      "range": [
                        2380,
                        2438
                      ],
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 4
                        },
                        "end": {
                          "line": 74,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "Object",
                                    "range": [
                                      2443,
                                      2449
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 4
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "keys",
                                    "range": [
                                      2450,
                                      2454
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 15
                                      }
                                    }
                                  },
                                  "range": [
                                    2443,
                                    2454
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 4
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 15
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2455,
                                        2459
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "_state",
                                      "range": [
                                        2460,
                                        2466
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "range": [
                                      2455,
                                      2466
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 27
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2443,
                                  2467
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 28
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "sort",
                                "range": [
                                  2468,
                                  2472
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 33
                                  }
                                }
                              },
                              "range": [
                                2443,
                                2472
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 4
                                },
                                "end": {
                                  "line": 75,
                                  "column": 33
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              2443,
                              2474
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 4
                              },
                              "end": {
                                "line": 75,
                                "column": 35
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "forEach",
                            "range": [
                              2475,
                              2482
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 36
                              },
                              "end": {
                                "line": 75,
                                "column": 43
                              }
                            }
                          },
                          "range": [
                            2443,
                            2482
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 4
                            },
                            "end": {
                              "line": 75,
                              "column": 43
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "FunctionExpression",
                            "id": null,
                            "params": [
                              {
                                "type": "Identifier",
                                "name": "key",
                                "range": [
                                  2493,
                                  2496
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 54
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 57
                                  }
                                }
                              }
                            ],
                            "body": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "IfStatement",
                                  "test": {
                                    "type": "BinaryExpression",
                                    "operator": "===",
                                    "left": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "self",
                                            "range": [
                                              2510,
                                              2514
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 10
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 14
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "_ignore",
                                            "range": [
                                              2515,
                                              2522
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 15
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 22
                                              }
                                            }
                                          },
                                          "range": [
                                            2510,
                                            2522
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 10
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 22
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "indexOf",
                                          "range": [
                                            2523,
                                            2530
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 30
                                            }
                                          }
                                        },
                                        "range": [
                                          2510,
                                          2530
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 30
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "key",
                                          "range": [
                                            2531,
                                            2534
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 31
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 34
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        2510,
                                        2535
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 35
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "UnaryExpression",
                                      "operator": "-",
                                      "argument": {
                                        "type": "Literal",
                                        "value": 1,
                                        "raw": "1",
                                        "range": [
                                          2541,
                                          2542
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 42
                                          }
                                        }
                                      },
                                      "prefix": true,
                                      "range": [
                                        2540,
                                        2542
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 42
                                        }
                                      }
                                    },
                                    "range": [
                                      2510,
                                      2542
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 10
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 42
                                      }
                                    }
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "VariableDeclaration",
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "val",
                                              "range": [
                                                2558,
                                                2561
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 77,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 77,
                                                  "column": 15
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "MemberExpression",
                                              "computed": true,
                                              "object": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "self",
                                                  "range": [
                                                    2564,
                                                    2568
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 18
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 22
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "_state",
                                                  "range": [
                                                    2569,
                                                    2575
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 29
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  2564,
                                                  2575
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 77,
                                                    "column": 18
                                                  },
                                                  "end": {
                                                    "line": 77,
                                                    "column": 29
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "key",
                                                "range": [
                                                  2576,
                                                  2579
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 77,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 77,
                                                    "column": 33
                                                  }
                                                }
                                              },
                                              "range": [
                                                2564,
                                                2580
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 77,
                                                  "column": 18
                                                },
                                                "end": {
                                                  "line": 77,
                                                  "column": 34
                                                }
                                              }
                                            },
                                            "range": [
                                              2558,
                                              2580
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 77,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 77,
                                                "column": 34
                                              }
                                            }
                                          }
                                        ],
                                        "kind": "let",
                                        "range": [
                                          2554,
                                          2581
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 77,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 77,
                                            "column": 35
                                          }
                                        }
                                      },
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "Identifier",
                                          "name": "val",
                                          "range": [
                                            2594,
                                            2597
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 78,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 78,
                                              "column": 15
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "AssignmentExpression",
                                                "operator": "=",
                                                "left": {
                                                  "type": "Identifier",
                                                  "name": "val",
                                                  "range": [
                                                    2611,
                                                    2614
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 79,
                                                      "column": 10
                                                    },
                                                    "end": {
                                                      "line": 79,
                                                      "column": 13
                                                    }
                                                  }
                                                },
                                                "right": {
                                                  "type": "CallExpression",
                                                  "callee": {
                                                    "type": "MemberExpression",
                                                    "computed": false,
                                                    "object": {
                                                      "type": "Identifier",
                                                      "name": "JSON",
                                                      "range": [
                                                        2617,
                                                        2621
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 79,
                                                          "column": 16
                                                        },
                                                        "end": {
                                                          "line": 79,
                                                          "column": 20
                                                        }
                                                      }
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "name": "parse",
                                                      "range": [
                                                        2622,
                                                        2627
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 79,
                                                          "column": 21
                                                        },
                                                        "end": {
                                                          "line": 79,
                                                          "column": 26
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2617,
                                                      2627
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 79,
                                                        "column": 16
                                                      },
                                                      "end": {
                                                        "line": 79,
                                                        "column": 26
                                                      }
                                                    }
                                                  },
                                                  "arguments": [
                                                    {
                                                      "type": "CallExpression",
                                                      "callee": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "JSON",
                                                          "range": [
                                                            2628,
                                                            2632
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 27
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 31
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "stringify",
                                                          "range": [
                                                            2633,
                                                            2642
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 32
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 41
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2628,
                                                          2642
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 79,
                                                            "column": 27
                                                          },
                                                          "end": {
                                                            "line": 79,
                                                            "column": 41
                                                          }
                                                        }
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "Identifier",
                                                          "name": "val",
                                                          "range": [
                                                            2643,
                                                            2646
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 79,
                                                              "column": 42
                                                            },
                                                            "end": {
                                                              "line": 79,
                                                              "column": 45
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        2628,
                                                        2647
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 79,
                                                          "column": 27
                                                        },
                                                        "end": {
                                                          "line": 79,
                                                          "column": 46
                                                        }
                                                      }
                                                    }
                                                  ],
                                                  "range": [
                                                    2617,
                                                    2648
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 79,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 79,
                                                      "column": 47
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  2611,
                                                  2648
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 79,
                                                    "column": 10
                                                  },
                                                  "end": {
                                                    "line": 79,
                                                    "column": 47
                                                  }
                                                }
                                              },
                                              "range": [
                                                2611,
                                                2649
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 79,
                                                  "column": 10
                                                },
                                                "end": {
                                                  "line": 79,
                                                  "column": 48
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2599,
                                            2659
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 78,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 80,
                                              "column": 9
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          2590,
                                          2659
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 80,
                                            "column": 9
                                          }
                                        }
                                      },
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "MemberExpression",
                                            "computed": true,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "result",
                                              "range": [
                                                2668,
                                                2674
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 8
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 14
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "key",
                                              "range": [
                                                2675,
                                                2678
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 15
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 18
                                                }
                                              }
                                            },
                                            "range": [
                                              2668,
                                              2679
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 19
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "Identifier",
                                            "name": "val",
                                            "range": [
                                              2682,
                                              2685
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 25
                                              }
                                            }
                                          },
                                          "range": [
                                            2668,
                                            2685
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 25
                                            }
                                          }
                                        },
                                        "range": [
                                          2668,
                                          2686
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 26
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2544,
                                      2694
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 7
                                      }
                                    }
                                  },
                                  "alternate": null,
                                  "range": [
                                    2506,
                                    2694
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 7
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2498,
                                2700
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 59
                                },
                                "end": {
                                  "line": 83,
                                  "column": 5
                                }
                              }
                            },
                            "generator": false,
                            "expression": false,
                            "range": [
                              2483,
                              2700
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 44
                              },
                              "end": {
                                "line": 83,
                                "column": 5
                              }
                            }
                          }
                        ],
                        "range": [
                          2443,
                          2701
                        ],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 4
                          },
                          "end": {
                            "line": 83,
                            "column": 6
                          }
                        }
                      },
                      "range": [
                        2443,
                        2702
                      ],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 4
                        },
                        "end": {
                          "line": 83,
                          "column": 7
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "result",
                        "range": [
                          2714,
                          2720
                        ],
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 11
                          },
                          "end": {
                            "line": 84,
                            "column": 17
                          }
                        }
                      },
                      "range": [
                        2707,
                        2721
                      ],
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 4
                        },
                        "end": {
                          "line": 84,
                          "column": 18
                        }
                      }
                    }
                  ],
                  "range": [
                    2328,
                    2725
                  ],
                  "loc": {
                    "start": {
                      "line": 69,
                      "column": 8
                    },
                    "end": {
                      "line": 85,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  2325,
                  2725
                ],
                "loc": {
                  "start": {
                    "line": 69,
                    "column": 5
                  },
                  "end": {
                    "line": 85,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                2322,
                2725
              ],
              "loc": {
                "start": {
                  "line": 69,
                  "column": 2
                },
                "end": {
                  "line": 85,
                  "column": 3
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "update",
                "range": [
                  2728,
                  2734
                ],
                "loc": {
                  "start": {
                    "line": 86,
                    "column": 2
                  },
                  "end": {
                    "line": 86,
                    "column": 8
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "RestElement",
                    "argument": {
                      "type": "Identifier",
                      "name": "values",
                      "range": [
                        2738,
                        2744
                      ],
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 12
                        },
                        "end": {
                          "line": 86,
                          "column": 18
                        }
                      }
                    },
                    "range": [
                      2735,
                      2744
                    ],
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 9
                      },
                      "end": {
                        "line": 86,
                        "column": 18
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "self",
                            "range": [
                              2758,
                              2762
                            ],
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 10
                              },
                              "end": {
                                "line": 87,
                                "column": 14
                              }
                            }
                          },
                          "init": {
                            "type": "ThisExpression",
                            "range": [
                              2765,
                              2769
                            ],
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 17
                              },
                              "end": {
                                "line": 87,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            2758,
                            2769
                          ],
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 10
                            },
                            "end": {
                              "line": 87,
                              "column": 21
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        2752,
                        2770
                      ],
                      "loc": {
                        "start": {
                          "line": 87,
                          "column": 4
                        },
                        "end": {
                          "line": 87,
                          "column": 22
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "values",
                            "range": [
                              2775,
                              2781
                            ],
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 4
                              },
                              "end": {
                                "line": 88,
                                "column": 10
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "forEach",
                            "range": [
                              2782,
                              2789
                            ],
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 11
                              },
                              "end": {
                                "line": 88,
                                "column": 18
                              }
                            }
                          },
                          "range": [
                            2775,
                            2789
                          ],
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 4
                            },
                            "end": {
                              "line": 88,
                              "column": 18
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "FunctionExpression",
                            "id": null,
                            "params": [
                              {
                                "type": "Identifier",
                                "name": "value",
                                "range": [
                                  2800,
                                  2805
                                ],
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 34
                                  }
                                }
                              }
                            ],
                            "body": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "IfStatement",
                                  "test": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "Array",
                                        "range": [
                                          2819,
                                          2824
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 10
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 15
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "isArray",
                                        "range": [
                                          2825,
                                          2832
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "range": [
                                        2819,
                                        2832
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "value",
                                        "range": [
                                          2833,
                                          2838
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 29
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2819,
                                      2839
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 10
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 30
                                      }
                                    }
                                  },
                                  "consequent": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "value",
                                              "range": [
                                                2851,
                                                2856
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 8
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 13
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "forEach",
                                              "range": [
                                                2857,
                                                2864
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 14
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 21
                                                }
                                              }
                                            },
                                            "range": [
                                              2851,
                                              2864
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 21
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "FunctionExpression",
                                              "id": null,
                                              "params": [
                                                {
                                                  "type": "Identifier",
                                                  "name": "v",
                                                  "range": [
                                                    2875,
                                                    2876
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 90,
                                                      "column": 32
                                                    },
                                                    "end": {
                                                      "line": 90,
                                                      "column": 33
                                                    }
                                                  }
                                                }
                                              ],
                                              "body": {
                                                "type": "BlockStatement",
                                                "body": [
                                                  {
                                                    "type": "ExpressionStatement",
                                                    "expression": {
                                                      "type": "CallExpression",
                                                      "callee": {
                                                        "type": "MemberExpression",
                                                        "computed": false,
                                                        "object": {
                                                          "type": "Identifier",
                                                          "name": "self",
                                                          "range": [
                                                            2890,
                                                            2894
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 91,
                                                              "column": 10
                                                            },
                                                            "end": {
                                                              "line": 91,
                                                              "column": 14
                                                            }
                                                          }
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "name": "update",
                                                          "range": [
                                                            2895,
                                                            2901
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 91,
                                                              "column": 15
                                                            },
                                                            "end": {
                                                              "line": 91,
                                                              "column": 21
                                                            }
                                                          }
                                                        },
                                                        "range": [
                                                          2890,
                                                          2901
                                                        ],
                                                        "loc": {
                                                          "start": {
                                                            "line": 91,
                                                            "column": 10
                                                          },
                                                          "end": {
                                                            "line": 91,
                                                            "column": 21
                                                          }
                                                        }
                                                      },
                                                      "arguments": [
                                                        {
                                                          "type": "Identifier",
                                                          "name": "v",
                                                          "range": [
                                                            2902,
                                                            2903
                                                          ],
                                                          "loc": {
                                                            "start": {
                                                              "line": 91,
                                                              "column": 22
                                                            },
                                                            "end": {
                                                              "line": 91,
                                                              "column": 23
                                                            }
                                                          }
                                                        }
                                                      ],
                                                      "range": [
                                                        2890,
                                                        2904
                                                      ],
                                                      "loc": {
                                                        "start": {
                                                          "line": 91,
                                                          "column": 10
                                                        },
                                                        "end": {
                                                          "line": 91,
                                                          "column": 24
                                                        }
                                                      }
                                                    },
                                                    "range": [
                                                      2890,
                                                      2905
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 91,
                                                        "column": 10
                                                      },
                                                      "end": {
                                                        "line": 91,
                                                        "column": 25
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  2878,
                                                  2915
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 90,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 9
                                                  }
                                                }
                                              },
                                              "generator": false,
                                              "expression": false,
                                              "range": [
                                                2865,
                                                2915
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 22
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 9
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2851,
                                            2916
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 92,
                                              "column": 10
                                            }
                                          }
                                        },
                                        "range": [
                                          2851,
                                          2917
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 92,
                                            "column": 11
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2841,
                                      2925
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 93,
                                        "column": 7
                                      }
                                    }
                                  },
                                  "alternate": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "VariableDeclaration",
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "v",
                                              "range": [
                                                2947,
                                                2948
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 94,
                                                  "column": 14
                                                },
                                                "end": {
                                                  "line": 94,
                                                  "column": 15
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "CallExpression",
                                              "callee": {
                                                "type": "Identifier",
                                                "name": "parseFloat",
                                                "range": [
                                                  2951,
                                                  2961
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 94,
                                                    "column": 18
                                                  },
                                                  "end": {
                                                    "line": 94,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "arguments": [
                                                {
                                                  "type": "Identifier",
                                                  "name": "value",
                                                  "range": [
                                                    2962,
                                                    2967
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 94,
                                                      "column": 34
                                                    }
                                                  }
                                                }
                                              ],
                                              "range": [
                                                2951,
                                                2968
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 94,
                                                  "column": 18
                                                },
                                                "end": {
                                                  "line": 94,
                                                  "column": 35
                                                }
                                              }
                                            },
                                            "range": [
                                              2947,
                                              2968
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 94,
                                                "column": 14
                                              },
                                              "end": {
                                                "line": 94,
                                                "column": 35
                                              }
                                            }
                                          }
                                        ],
                                        "kind": "const",
                                        "range": [
                                          2941,
                                          2969
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 94,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 94,
                                            "column": 36
                                          }
                                        }
                                      },
                                      {
                                        "type": "IfStatement",
                                        "test": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "Identifier",
                                              "name": "Number",
                                              "range": [
                                                2982,
                                                2988
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 95,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 95,
                                                  "column": 18
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "isFinite",
                                              "range": [
                                                2989,
                                                2997
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 95,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 95,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "range": [
                                              2982,
                                              2997
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 95,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 95,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "v",
                                              "range": [
                                                2998,
                                                2999
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 95,
                                                  "column": 28
                                                },
                                                "end": {
                                                  "line": 95,
                                                  "column": 29
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2982,
                                            3000
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 95,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 95,
                                              "column": 30
                                            }
                                          }
                                        },
                                        "consequent": {
                                          "type": "BlockStatement",
                                          "body": [
                                            {
                                              "type": "ExpressionStatement",
                                              "expression": {
                                                "type": "CallExpression",
                                                "callee": {
                                                  "type": "Identifier",
                                                  "name": "execMethod",
                                                  "range": [
                                                    3014,
                                                    3024
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 10
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 20
                                                    }
                                                  }
                                                },
                                                "arguments": [
                                                  {
                                                    "type": "Identifier",
                                                    "name": "self",
                                                    "range": [
                                                      3025,
                                                      3029
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 21
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 25
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Literal",
                                                    "value": "onUpdate",
                                                    "raw": "'onUpdate'",
                                                    "range": [
                                                      3031,
                                                      3041
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 27
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 37
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "type": "Identifier",
                                                    "name": "v",
                                                    "range": [
                                                      3043,
                                                      3044
                                                    ],
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 39
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 40
                                                      }
                                                    }
                                                  }
                                                ],
                                                "range": [
                                                  3014,
                                                  3045
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 96,
                                                    "column": 10
                                                  },
                                                  "end": {
                                                    "line": 96,
                                                    "column": 41
                                                  }
                                                }
                                              },
                                              "range": [
                                                3014,
                                                3046
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 10
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 42
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            3002,
                                            3056
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 95,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 9
                                            }
                                          }
                                        },
                                        "alternate": null,
                                        "range": [
                                          2978,
                                          3056
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 95,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 9
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2931,
                                      3064
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 93,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 7
                                      }
                                    }
                                  },
                                  "range": [
                                    2815,
                                    3064
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 7
                                    }
                                  }
                                }
                              ],
                              "range": [
                                2807,
                                3070
                              ],
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 36
                                },
                                "end": {
                                  "line": 99,
                                  "column": 5
                                }
                              }
                            },
                            "generator": false,
                            "expression": false,
                            "range": [
                              2790,
                              3070
                            ],
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 19
                              },
                              "end": {
                                "line": 99,
                                "column": 5
                              }
                            }
                          }
                        ],
                        "range": [
                          2775,
                          3071
                        ],
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 4
                          },
                          "end": {
                            "line": 99,
                            "column": 6
                          }
                        }
                      },
                      "range": [
                        2775,
                        3072
                      ],
                      "loc": {
                        "start": {
                          "line": 88,
                          "column": 4
                        },
                        "end": {
                          "line": 99,
                          "column": 7
                        }
                      }
                    }
                  ],
                  "range": [
                    2746,
                    3076
                  ],
                  "loc": {
                    "start": {
                      "line": 86,
                      "column": 20
                    },
                    "end": {
                      "line": 100,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  2734,
                  3076
                ],
                "loc": {
                  "start": {
                    "line": 86,
                    "column": 8
                  },
                  "end": {
                    "line": 100,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                2728,
                3076
              ],
              "loc": {
                "start": {
                  "line": 86,
                  "column": 2
                },
                "end": {
                  "line": 100,
                  "column": 3
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "reset",
                "range": [
                  3079,
                  3084
                ],
                "loc": {
                  "start": {
                    "line": 101,
                    "column": 2
                  },
                  "end": {
                    "line": 101,
                    "column": 7
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "self",
                            "range": [
                              3099,
                              3103
                            ],
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 10
                              },
                              "end": {
                                "line": 102,
                                "column": 14
                              }
                            }
                          },
                          "init": {
                            "type": "ThisExpression",
                            "range": [
                              3106,
                              3110
                            ],
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 17
                              },
                              "end": {
                                "line": 102,
                                "column": 21
                              }
                            }
                          },
                          "range": [
                            3099,
                            3110
                          ],
                          "loc": {
                            "start": {
                              "line": 102,
                              "column": 10
                            },
                            "end": {
                              "line": 102,
                              "column": 21
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        3093,
                        3111
                      ],
                      "loc": {
                        "start": {
                          "line": 102,
                          "column": 4
                        },
                        "end": {
                          "line": 102,
                          "column": 22
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              3116,
                              3120
                            ],
                            "loc": {
                              "start": {
                                "line": 103,
                                "column": 4
                              },
                              "end": {
                                "line": 103,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_state",
                            "range": [
                              3121,
                              3127
                            ],
                            "loc": {
                              "start": {
                                "line": 103,
                                "column": 9
                              },
                              "end": {
                                "line": 103,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            3116,
                            3127
                          ],
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 4
                            },
                            "end": {
                              "line": 103,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "properties": [],
                          "range": [
                            3130,
                            3132
                          ],
                          "loc": {
                            "start": {
                              "line": 103,
                              "column": 18
                            },
                            "end": {
                              "line": 103,
                              "column": 20
                            }
                          }
                        },
                        "range": [
                          3116,
                          3132
                        ],
                        "loc": {
                          "start": {
                            "line": 103,
                            "column": 4
                          },
                          "end": {
                            "line": 103,
                            "column": 20
                          }
                        }
                      },
                      "range": [
                        3116,
                        3133
                      ],
                      "loc": {
                        "start": {
                          "line": 103,
                          "column": 4
                        },
                        "end": {
                          "line": 103,
                          "column": 21
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "ThisExpression",
                              "range": [
                                3138,
                                3142
                              ],
                              "loc": {
                                "start": {
                                  "line": 104,
                                  "column": 4
                                },
                                "end": {
                                  "line": 104,
                                  "column": 8
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "_collectors",
                              "range": [
                                3143,
                                3154
                              ],
                              "loc": {
                                "start": {
                                  "line": 104,
                                  "column": 9
                                },
                                "end": {
                                  "line": 104,
                                  "column": 20
                                }
                              }
                            },
                            "range": [
                              3138,
                              3154
                            ],
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 4
                              },
                              "end": {
                                "line": 104,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "forEach",
                            "range": [
                              3155,
                              3162
                            ],
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 21
                              },
                              "end": {
                                "line": 104,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            3138,
                            3162
                          ],
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 4
                            },
                            "end": {
                              "line": 104,
                              "column": 28
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "FunctionExpression",
                            "id": null,
                            "params": [
                              {
                                "type": "Identifier",
                                "name": "collector",
                                "range": [
                                  3173,
                                  3182
                                ],
                                "loc": {
                                  "start": {
                                    "line": 104,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 104,
                                    "column": 48
                                  }
                                }
                              }
                            ],
                            "body": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "computed": true,
                                      "object": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "self",
                                          "range": [
                                            3192,
                                            3196
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 6
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 10
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "_state",
                                          "range": [
                                            3197,
                                            3203
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 11
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 17
                                            }
                                          }
                                        },
                                        "range": [
                                          3192,
                                          3203
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 6
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 17
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "collector",
                                          "range": [
                                            3204,
                                            3213
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 18
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "name",
                                          "range": [
                                            3214,
                                            3218
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "range": [
                                          3204,
                                          3218
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 32
                                          }
                                        }
                                      },
                                      "range": [
                                        3192,
                                        3219
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 6
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Identifier",
                                      "name": "undefined",
                                      "range": [
                                        3222,
                                        3231
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 45
                                        }
                                      }
                                    },
                                    "range": [
                                      3192,
                                      3231
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 45
                                      }
                                    }
                                  },
                                  "range": [
                                    3192,
                                    3232
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 46
                                    }
                                  }
                                }
                              ],
                              "range": [
                                3184,
                                3238
                              ],
                              "loc": {
                                "start": {
                                  "line": 104,
                                  "column": 50
                                },
                                "end": {
                                  "line": 106,
                                  "column": 5
                                }
                              }
                            },
                            "generator": false,
                            "expression": false,
                            "range": [
                              3163,
                              3238
                            ],
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 29
                              },
                              "end": {
                                "line": 106,
                                "column": 5
                              }
                            }
                          }
                        ],
                        "range": [
                          3138,
                          3239
                        ],
                        "loc": {
                          "start": {
                            "line": 104,
                            "column": 4
                          },
                          "end": {
                            "line": 106,
                            "column": 6
                          }
                        }
                      },
                      "range": [
                        3138,
                        3240
                      ],
                      "loc": {
                        "start": {
                          "line": 104,
                          "column": 4
                        },
                        "end": {
                          "line": 106,
                          "column": 7
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "ThisExpression",
                            "range": [
                              3245,
                              3249
                            ],
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 4
                              },
                              "end": {
                                "line": 107,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_reset",
                            "range": [
                              3250,
                              3256
                            ],
                            "loc": {
                              "start": {
                                "line": 107,
                                "column": 9
                              },
                              "end": {
                                "line": 107,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            3245,
                            3256
                          ],
                          "loc": {
                            "start": {
                              "line": 107,
                              "column": 4
                            },
                            "end": {
                              "line": 107,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": true,
                          "raw": "true",
                          "range": [
                            3259,
                            3263
                          ],
                          "loc": {
                            "start": {
                              "line": 107,
                              "column": 18
                            },
                            "end": {
                              "line": 107,
                              "column": 22
                            }
                          }
                        },
                        "range": [
                          3245,
                          3263
                        ],
                        "loc": {
                          "start": {
                            "line": 107,
                            "column": 4
                          },
                          "end": {
                            "line": 107,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        3245,
                        3264
                      ],
                      "loc": {
                        "start": {
                          "line": 107,
                          "column": 4
                        },
                        "end": {
                          "line": 107,
                          "column": 23
                        }
                      }
                    }
                  ],
                  "range": [
                    3087,
                    3268
                  ],
                  "loc": {
                    "start": {
                      "line": 101,
                      "column": 10
                    },
                    "end": {
                      "line": 108,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  3084,
                  3268
                ],
                "loc": {
                  "start": {
                    "line": 101,
                    "column": 7
                  },
                  "end": {
                    "line": 108,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                3079,
                3268
              ],
              "loc": {
                "start": {
                  "line": 101,
                  "column": 2
                },
                "end": {
                  "line": 108,
                  "column": 3
                }
              },
              "static": false
            }
          ],
          "range": [
            360,
            3270
          ],
          "loc": {
            "start": {
              "line": 11,
              "column": 40
            },
            "end": {
              "line": 109,
              "column": 1
            }
          }
        },
        "range": [
          335,
          3270
        ],
        "loc": {
          "start": {
            "line": 11,
            "column": 15
          },
          "end": {
            "line": 109,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * A stat collector that initially includes no collector functions.\n * @example\n * const statsCollector = new BaseStatsCollector();\n * statsCollector.addCollector({name: 'custom', onUpdate: fn});\n * statsCollector.update([1, 2, 3, 4, 5]);\n * statsCollector.get();\n ",
            "range": [
              48,
              319
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 0
              },
              "end": {
                "line": 10,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "range": [
        320,
        3270
      ],
      "loc": {
        "start": {
          "line": 11,
          "column": 0
        },
        "end": {
          "line": 109,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * A stat collector that initially includes no collector functions.\n * @example\n * const statsCollector = new BaseStatsCollector();\n * statsCollector.addCollector({name: 'custom', onUpdate: fn});\n * statsCollector.update([1, 2, 3, 4, 5]);\n * statsCollector.get();\n ",
          "range": [
            48,
            319
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 10,
              "column": 3
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    3270
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 109,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * A stat collector that initially includes no collector functions.\n * @example\n * const statsCollector = new BaseStatsCollector();\n * statsCollector.addCollector({name: 'custom', onUpdate: fn});\n * statsCollector.update([1, 2, 3, 4, 5]);\n * statsCollector.get();\n ",
      "range": [
        48,
        319
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 10,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n   * Add a collector function that can process data\n   * when update() or get() is called.\n   * @param {Object} collector An object with the following properties:\n   *   - **name** - [String] The name of the collector\n   *   - **initialValue** - [any] The initial value if update() has never been called\n   *   - **requirements** - [Array] An array of collector names that must be added before this collector\n   *   - **onUpdate** - [Function]\n   *   - **onGet** - [Function]\n   * @example\n   * const statCollector = new BaseStatsCollector();\n   * statCollector.addCollector({\n   *   name: 'test-sum',\n   *   initialValue: 0,\n   *   onUpdate: function (prev, state, val) { return prev + val; }\n   * });\n   * @return {undefined}\n   ",
      "range": [
        482,
        1219
      ],
      "loc": {
        "start": {
          "line": 18,
          "column": 2
        },
        "end": {
          "line": 35,
          "column": 5
        }
      }
    }
  ]
}