{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Subscription",
            "range": [
              9,
              21
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 21
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Subscription",
            "range": [
              9,
              21
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 21
              }
            }
          },
          "range": [
            9,
            21
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 21
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Subscription",
        "raw": "'../Subscription'",
        "range": [
          29,
          46
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 29
          },
          "end": {
            "line": 1,
            "column": 46
          }
        }
      },
      "range": [
        0,
        47
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 47
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              57,
              65
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              57,
              65
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "range": [
            57,
            65
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/tryCatch",
        "raw": "'../util/tryCatch'",
        "range": [
          73,
          91
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 25
          },
          "end": {
            "line": 2,
            "column": 43
          }
        }
      },
      "range": [
        48,
        92
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 44
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              102,
              113
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              102,
              113
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "range": [
            102,
            113
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 9
            },
            "end": {
              "line": 3,
              "column": 20
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/errorObject",
        "raw": "'../util/errorObject'",
        "range": [
          121,
          142
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 28
          },
          "end": {
            "line": 3,
            "column": 49
          }
        }
      },
      "range": [
        93,
        143
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 50
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "OuterSubscriber",
            "range": [
              153,
              168
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 24
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "OuterSubscriber",
            "range": [
              153,
              168
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 24
              }
            }
          },
          "range": [
            153,
            168
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 9
            },
            "end": {
              "line": 4,
              "column": 24
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../OuterSubscriber",
        "raw": "'../OuterSubscriber'",
        "range": [
          176,
          196
        ],
        "loc": {
          "start": {
            "line": 4,
            "column": 32
          },
          "end": {
            "line": 4,
            "column": 52
          }
        }
      },
      "range": [
        144,
        197
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 53
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "subscribeToResult",
            "range": [
              207,
              224
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 9
              },
              "end": {
                "line": 5,
                "column": 26
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "subscribeToResult",
            "range": [
              207,
              224
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 9
              },
              "end": {
                "line": 5,
                "column": 26
              }
            }
          },
          "range": [
            207,
            224
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 9
            },
            "end": {
              "line": 5,
              "column": 26
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/subscribeToResult",
        "raw": "'../util/subscribeToResult'",
        "range": [
          232,
          259
        ],
        "loc": {
          "start": {
            "line": 5,
            "column": 34
          },
          "end": {
            "line": 5,
            "column": 61
          }
        }
      },
      "range": [
        198,
        260
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 62
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * <img src=\"./img/bufferWhen.png\" width=\"100%\">\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * @example <caption>Emit an array of the last clicks every [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferWhen(() =>\n *   Rx.Observable.interval(1000 + Math.random() * 4000)\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n ",
          "range": [
            261,
            1628
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "FunctionDeclaration",
        "id": {
          "type": "Identifier",
          "name": "bufferWhen",
          "range": [
            1645,
            1655
          ],
          "loc": {
            "start": {
              "line": 39,
              "column": 16
            },
            "end": {
              "line": 39,
              "column": 26
            }
          }
        },
        "params": [
          {
            "type": "Identifier",
            "name": "closingSelector",
            "range": [
              1656,
              1671
            ],
            "loc": {
              "start": {
                "line": 39,
                "column": 27
              },
              "end": {
                "line": 39,
                "column": 42
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "body": [
            {
              "type": "ReturnStatement",
              "argument": {
                "type": "CallExpression",
                "callee": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "ThisExpression",
                    "range": [
                      1686,
                      1690
                    ],
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 11
                      },
                      "end": {
                        "line": 40,
                        "column": 15
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "lift",
                    "range": [
                      1691,
                      1695
                    ],
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 16
                      },
                      "end": {
                        "line": 40,
                        "column": 20
                      }
                    }
                  },
                  "range": [
                    1686,
                    1695
                  ],
                  "loc": {
                    "start": {
                      "line": 40,
                      "column": 11
                    },
                    "end": {
                      "line": 40,
                      "column": 20
                    }
                  }
                },
                "arguments": [
                  {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "BufferWhenOperator",
                      "range": [
                        1700,
                        1718
                      ],
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 25
                        },
                        "end": {
                          "line": 40,
                          "column": 43
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          1719,
                          1734
                        ],
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 44
                          },
                          "end": {
                            "line": 40,
                            "column": 59
                          }
                        }
                      }
                    ],
                    "range": [
                      1696,
                      1735
                    ],
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 21
                      },
                      "end": {
                        "line": 40,
                        "column": 60
                      }
                    }
                  }
                ],
                "range": [
                  1686,
                  1736
                ],
                "loc": {
                  "start": {
                    "line": 40,
                    "column": 11
                  },
                  "end": {
                    "line": 40,
                    "column": 61
                  }
                }
              },
              "range": [
                1679,
                1737
              ],
              "loc": {
                "start": {
                  "line": 40,
                  "column": 4
                },
                "end": {
                  "line": 40,
                  "column": 62
                }
              }
            }
          ],
          "range": [
            1673,
            1739
          ],
          "loc": {
            "start": {
              "line": 39,
              "column": 44
            },
            "end": {
              "line": 41,
              "column": 1
            }
          }
        },
        "generator": false,
        "expression": false,
        "range": [
          1636,
          1739
        ],
        "loc": {
          "start": {
            "line": 39,
            "column": 7
          },
          "end": {
            "line": 41,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * <img src=\"./img/bufferWhen.png\" width=\"100%\">\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * @example <caption>Emit an array of the last clicks every [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferWhen(() =>\n *   Rx.Observable.interval(1000 + Math.random() * 4000)\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n ",
            "range": [
              261,
              1628
            ],
            "loc": {
              "start": {
                "line": 6,
                "column": 0
              },
              "end": {
                "line": 38,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        1629,
        1739
      ],
      "loc": {
        "start": {
          "line": 39,
          "column": 0
        },
        "end": {
          "line": 41,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * <img src=\"./img/bufferWhen.png\" width=\"100%\">\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * @example <caption>Emit an array of the last clicks every [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferWhen(() =>\n *   Rx.Observable.interval(1000 + Math.random() * 4000)\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n ",
          "range": [
            261,
            1628
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "BufferWhenOperator",
            "range": [
              1744,
              1762
            ],
            "loc": {
              "start": {
                "line": 42,
                "column": 4
              },
              "end": {
                "line": 42,
                "column": 22
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "BufferWhenOperator",
                      "range": [
                        1793,
                        1811
                      ],
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 13
                        },
                        "end": {
                          "line": 43,
                          "column": 31
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          1812,
                          1827
                        ],
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 32
                          },
                          "end": {
                            "line": 43,
                            "column": 47
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  1839,
                                  1843
                                ],
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "closingSelector",
                                "range": [
                                  1844,
                                  1859
                                ],
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                1839,
                                1859
                              ],
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 8
                                },
                                "end": {
                                  "line": 44,
                                  "column": 28
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "closingSelector",
                              "range": [
                                1862,
                                1877
                              ],
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 31
                                },
                                "end": {
                                  "line": 44,
                                  "column": 46
                                }
                              }
                            },
                            "range": [
                              1839,
                              1877
                            ],
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 8
                              },
                              "end": {
                                "line": 44,
                                "column": 46
                              }
                            }
                          },
                          "range": [
                            1839,
                            1878
                          ],
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 8
                            },
                            "end": {
                              "line": 44,
                              "column": 47
                            }
                          }
                        }
                      ],
                      "range": [
                        1829,
                        1884
                      ],
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 49
                        },
                        "end": {
                          "line": 45,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      1784,
                      1884
                    ],
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 4
                      },
                      "end": {
                        "line": 45,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenOperator",
                            "range": [
                              1889,
                              1907
                            ],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 4
                              },
                              "end": {
                                "line": 46,
                                "column": 22
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              1908,
                              1917
                            ],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 23
                              },
                              "end": {
                                "line": 46,
                                "column": 32
                              }
                            }
                          },
                          "range": [
                            1889,
                            1917
                          ],
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 4
                            },
                            "end": {
                              "line": 46,
                              "column": 32
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "call",
                          "range": [
                            1918,
                            1922
                          ],
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 33
                            },
                            "end": {
                              "line": 46,
                              "column": 37
                            }
                          }
                        },
                        "range": [
                          1889,
                          1922
                        ],
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 4
                          },
                          "end": {
                            "line": 46,
                            "column": 37
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "subscriber",
                            "range": [
                              1935,
                              1945
                            ],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 50
                              },
                              "end": {
                                "line": 46,
                                "column": 60
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "source",
                            "range": [
                              1947,
                              1953
                            ],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 62
                              },
                              "end": {
                                "line": 46,
                                "column": 68
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "source",
                                    "range": [
                                      1972,
                                      1978
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_subscribe",
                                    "range": [
                                      1979,
                                      1989
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "range": [
                                    1972,
                                    1989
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 32
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "NewExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "BufferWhenSubscriber",
                                      "range": [
                                        1994,
                                        2014
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 47,
                                          "column": 57
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "subscriber",
                                        "range": [
                                          2015,
                                          2025
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 58
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 68
                                          }
                                        }
                                      },
                                      {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            2027,
                                            2031
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 70
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 74
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "closingSelector",
                                          "range": [
                                            2032,
                                            2047
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 75
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 90
                                            }
                                          }
                                        },
                                        "range": [
                                          2027,
                                          2047
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 70
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 90
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      1990,
                                      2048
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 91
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1972,
                                  2049
                                ],
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 92
                                  }
                                }
                              },
                              "range": [
                                1965,
                                2050
                              ],
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 8
                                },
                                "end": {
                                  "line": 47,
                                  "column": 93
                                }
                              }
                            }
                          ],
                          "range": [
                            1955,
                            2056
                          ],
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 70
                            },
                            "end": {
                              "line": 48,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          1925,
                          2056
                        ],
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 40
                          },
                          "end": {
                            "line": 48,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1889,
                        2056
                      ],
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 4
                        },
                        "end": {
                          "line": 48,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      1889,
                      2057
                    ],
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 4
                      },
                      "end": {
                        "line": 48,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "BufferWhenOperator",
                      "range": [
                        2069,
                        2087
                      ],
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 11
                        },
                        "end": {
                          "line": 49,
                          "column": 29
                        }
                      }
                    },
                    "range": [
                      2062,
                      2088
                    ],
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 4
                      },
                      "end": {
                        "line": 49,
                        "column": 30
                      }
                    }
                  }
                ],
                "range": [
                  1778,
                  2090
                ],
                "loc": {
                  "start": {
                    "line": 42,
                    "column": 38
                  },
                  "end": {
                    "line": 50,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                1766,
                2090
              ],
              "loc": {
                "start": {
                  "line": 42,
                  "column": 26
                },
                "end": {
                  "line": 50,
                  "column": 1
                }
              }
            },
            "arguments": [],
            "range": [
              1766,
              2092
            ],
            "loc": {
              "start": {
                "line": 42,
                "column": 26
              },
              "end": {
                "line": 50,
                "column": 3
              }
            }
          },
          "range": [
            1744,
            2093
          ],
          "loc": {
            "start": {
              "line": 42,
              "column": 4
            },
            "end": {
              "line": 50,
              "column": 4
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        1740,
        2094
      ],
      "loc": {
        "start": {
          "line": 42,
          "column": 0
        },
        "end": {
          "line": 50,
          "column": 5
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            2095,
            2186
          ],
          "loc": {
            "start": {
              "line": 51,
              "column": 0
            },
            "end": {
              "line": 55,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "BufferWhenSubscriber",
            "range": [
              2191,
              2211
            ],
            "loc": {
              "start": {
                "line": 56,
                "column": 4
              },
              "end": {
                "line": 56,
                "column": 24
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "_super",
                  "range": [
                    2225,
                    2231
                  ],
                  "loc": {
                    "start": {
                      "line": 56,
                      "column": 38
                    },
                    "end": {
                      "line": 56,
                      "column": 44
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "Identifier",
                        "name": "__extends",
                        "range": [
                          2239,
                          2248
                        ],
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 4
                          },
                          "end": {
                            "line": 57,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "name": "BufferWhenSubscriber",
                          "range": [
                            2249,
                            2269
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 14
                            },
                            "end": {
                              "line": 57,
                              "column": 34
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "_super",
                          "range": [
                            2271,
                            2277
                          ],
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 36
                            },
                            "end": {
                              "line": 57,
                              "column": 42
                            }
                          }
                        }
                      ],
                      "range": [
                        2239,
                        2278
                      ],
                      "loc": {
                        "start": {
                          "line": 57,
                          "column": 4
                        },
                        "end": {
                          "line": 57,
                          "column": 43
                        }
                      }
                    },
                    "range": [
                      2239,
                      2279
                    ],
                    "loc": {
                      "start": {
                        "line": 57,
                        "column": 4
                      },
                      "end": {
                        "line": 57,
                        "column": 44
                      }
                    }
                  },
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "BufferWhenSubscriber",
                      "range": [
                        2293,
                        2313
                      ],
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 13
                        },
                        "end": {
                          "line": 58,
                          "column": 33
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "destination",
                        "range": [
                          2314,
                          2325
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 34
                          },
                          "end": {
                            "line": 58,
                            "column": 45
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          2327,
                          2342
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 47
                          },
                          "end": {
                            "line": 58,
                            "column": 62
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "_super",
                                "range": [
                                  2354,
                                  2360
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 14
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "call",
                                "range": [
                                  2361,
                                  2365
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 19
                                  }
                                }
                              },
                              "range": [
                                2354,
                                2365
                              ],
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 8
                                },
                                "end": {
                                  "line": 59,
                                  "column": 19
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "ThisExpression",
                                "range": [
                                  2366,
                                  2370
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 24
                                  }
                                }
                              },
                              {
                                "type": "Identifier",
                                "name": "destination",
                                "range": [
                                  2372,
                                  2383
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 37
                                  }
                                }
                              }
                            ],
                            "range": [
                              2354,
                              2384
                            ],
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 8
                              },
                              "end": {
                                "line": 59,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            2354,
                            2385
                          ],
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 8
                            },
                            "end": {
                              "line": 59,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2394,
                                  2398
                                ],
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "closingSelector",
                                "range": [
                                  2399,
                                  2414
                                ],
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                2394,
                                2414
                              ],
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 8
                                },
                                "end": {
                                  "line": 60,
                                  "column": 28
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "closingSelector",
                              "range": [
                                2417,
                                2432
                              ],
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 31
                                },
                                "end": {
                                  "line": 60,
                                  "column": 46
                                }
                              }
                            },
                            "range": [
                              2394,
                              2432
                            ],
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 8
                              },
                              "end": {
                                "line": 60,
                                "column": 46
                              }
                            }
                          },
                          "range": [
                            2394,
                            2433
                          ],
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 8
                            },
                            "end": {
                              "line": 60,
                              "column": 47
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2442,
                                  2446
                                ],
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "subscribing",
                                "range": [
                                  2447,
                                  2458
                                ],
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                2442,
                                2458
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 8
                                },
                                "end": {
                                  "line": 61,
                                  "column": 24
                                }
                              }
                            },
                            "right": {
                              "type": "Literal",
                              "value": false,
                              "raw": "false",
                              "range": [
                                2461,
                                2466
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 27
                                },
                                "end": {
                                  "line": 61,
                                  "column": 32
                                }
                              }
                            },
                            "range": [
                              2442,
                              2466
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 8
                              },
                              "end": {
                                "line": 61,
                                "column": 32
                              }
                            }
                          },
                          "range": [
                            2442,
                            2467
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 8
                            },
                            "end": {
                              "line": 61,
                              "column": 33
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2476,
                                  2480
                                ],
                                "loc": {
                                  "start": {
                                    "line": 62,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 62,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "openBuffer",
                                "range": [
                                  2481,
                                  2491
                                ],
                                "loc": {
                                  "start": {
                                    "line": 62,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 62,
                                    "column": 23
                                  }
                                }
                              },
                              "range": [
                                2476,
                                2491
                              ],
                              "loc": {
                                "start": {
                                  "line": 62,
                                  "column": 8
                                },
                                "end": {
                                  "line": 62,
                                  "column": 23
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              2476,
                              2493
                            ],
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 8
                              },
                              "end": {
                                "line": 62,
                                "column": 25
                              }
                            }
                          },
                          "range": [
                            2476,
                            2494
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 8
                            },
                            "end": {
                              "line": 62,
                              "column": 26
                            }
                          }
                        }
                      ],
                      "range": [
                        2344,
                        2500
                      ],
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 64
                        },
                        "end": {
                          "line": 63,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      2284,
                      2500
                    ],
                    "loc": {
                      "start": {
                        "line": 58,
                        "column": 4
                      },
                      "end": {
                        "line": 63,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              2505,
                              2525
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 4
                              },
                              "end": {
                                "line": 64,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2526,
                              2535
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 25
                              },
                              "end": {
                                "line": 64,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            2505,
                            2535
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 4
                            },
                            "end": {
                              "line": 64,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_next",
                          "range": [
                            2536,
                            2541
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 35
                            },
                            "end": {
                              "line": 64,
                              "column": 40
                            }
                          }
                        },
                        "range": [
                          2505,
                          2541
                        ],
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 4
                          },
                          "end": {
                            "line": 64,
                            "column": 40
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "value",
                            "range": [
                              2554,
                              2559
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 53
                              },
                              "end": {
                                "line": 64,
                                "column": 58
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2571,
                                        2575
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "buffer",
                                      "range": [
                                        2576,
                                        2582
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "range": [
                                      2571,
                                      2582
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "push",
                                    "range": [
                                      2583,
                                      2587
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    2571,
                                    2587
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 24
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "value",
                                    "range": [
                                      2588,
                                      2593
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 30
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2571,
                                  2594
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 31
                                  }
                                }
                              },
                              "range": [
                                2571,
                                2595
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 8
                                },
                                "end": {
                                  "line": 65,
                                  "column": 32
                                }
                              }
                            }
                          ],
                          "range": [
                            2561,
                            2601
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 60
                            },
                            "end": {
                              "line": 66,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2544,
                          2601
                        ],
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 43
                          },
                          "end": {
                            "line": 66,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2505,
                        2601
                      ],
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 4
                        },
                        "end": {
                          "line": 66,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2505,
                      2602
                    ],
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 4
                      },
                      "end": {
                        "line": 66,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              2607,
                              2627
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 4
                              },
                              "end": {
                                "line": 67,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2628,
                              2637
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 25
                              },
                              "end": {
                                "line": 67,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            2607,
                            2637
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 4
                            },
                            "end": {
                              "line": 67,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_complete",
                          "range": [
                            2638,
                            2647
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 35
                            },
                            "end": {
                              "line": 67,
                              "column": 44
                            }
                          }
                        },
                        "range": [
                          2607,
                          2647
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 4
                          },
                          "end": {
                            "line": 67,
                            "column": 44
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "buffer",
                                    "range": [
                                      2676,
                                      2682
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2685,
                                        2689
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "buffer",
                                      "range": [
                                        2690,
                                        2696
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "range": [
                                      2685,
                                      2696
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "range": [
                                    2676,
                                    2696
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 32
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                2672,
                                2697
                              ],
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 8
                                },
                                "end": {
                                  "line": 68,
                                  "column": 33
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "buffer",
                                "range": [
                                  2710,
                                  2716
                                ],
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 18
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              2732,
                                              2736
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "destination",
                                            "range": [
                                              2737,
                                              2748
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 70,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 70,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            2732,
                                            2748
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "next",
                                          "range": [
                                            2749,
                                            2753
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          2732,
                                          2753
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "buffer",
                                          "range": [
                                            2754,
                                            2760
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 40
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        2732,
                                        2761
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      2732,
                                      2762
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 42
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2718,
                                  2772
                                ],
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                2706,
                                2772
                              ],
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 8
                                },
                                "end": {
                                  "line": 71,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "Identifier",
                                        "name": "_super",
                                        "range": [
                                          2781,
                                          2787
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 14
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "prototype",
                                        "range": [
                                          2788,
                                          2797
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 72,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 72,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "range": [
                                        2781,
                                        2797
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "_complete",
                                      "range": [
                                        2798,
                                        2807
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 72,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 72,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      2781,
                                      2807
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "call",
                                    "range": [
                                      2808,
                                      2812
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 39
                                      }
                                    }
                                  },
                                  "range": [
                                    2781,
                                    2812
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 39
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "ThisExpression",
                                    "range": [
                                      2813,
                                      2817
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 44
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2781,
                                  2818
                                ],
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 45
                                  }
                                }
                              },
                              "range": [
                                2781,
                                2819
                              ],
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 8
                                },
                                "end": {
                                  "line": 72,
                                  "column": 46
                                }
                              }
                            }
                          ],
                          "range": [
                            2662,
                            2825
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 59
                            },
                            "end": {
                              "line": 73,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2650,
                          2825
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 47
                          },
                          "end": {
                            "line": 73,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2607,
                        2825
                      ],
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 4
                        },
                        "end": {
                          "line": 73,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2607,
                      2826
                    ],
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 4
                      },
                      "end": {
                        "line": 73,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              2831,
                              2851
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 4
                              },
                              "end": {
                                "line": 74,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2852,
                              2861
                            ],
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 25
                              },
                              "end": {
                                "line": 74,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            2831,
                            2861
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 4
                            },
                            "end": {
                              "line": 74,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_unsubscribe",
                          "range": [
                            2862,
                            2874
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 35
                            },
                            "end": {
                              "line": 74,
                              "column": 47
                            }
                          }
                        },
                        "range": [
                          2831,
                          2874
                        ],
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 4
                          },
                          "end": {
                            "line": 74,
                            "column": 47
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "AssignmentExpression",
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2899,
                                      2903
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "buffer",
                                    "range": [
                                      2904,
                                      2910
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "range": [
                                    2899,
                                    2910
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 19
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": null,
                                  "raw": "null",
                                  "range": [
                                    2913,
                                    2917
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 26
                                    }
                                  }
                                },
                                "range": [
                                  2899,
                                  2917
                                ],
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 26
                                  }
                                }
                              },
                              "range": [
                                2899,
                                2918
                              ],
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 8
                                },
                                "end": {
                                  "line": 75,
                                  "column": 27
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "AssignmentExpression",
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2927,
                                      2931
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "subscribing",
                                    "range": [
                                      2932,
                                      2943
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    2927,
                                    2943
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 24
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": false,
                                  "raw": "false",
                                  "range": [
                                    2946,
                                    2951
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 32
                                    }
                                  }
                                },
                                "range": [
                                  2927,
                                  2951
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 32
                                  }
                                }
                              },
                              "range": [
                                2927,
                                2952
                              ],
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 8
                                },
                                "end": {
                                  "line": 76,
                                  "column": 33
                                }
                              }
                            }
                          ],
                          "range": [
                            2889,
                            2958
                          ],
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 62
                            },
                            "end": {
                              "line": 77,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2877,
                          2958
                        ],
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 50
                          },
                          "end": {
                            "line": 77,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2831,
                        2958
                      ],
                      "loc": {
                        "start": {
                          "line": 74,
                          "column": 4
                        },
                        "end": {
                          "line": 77,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2831,
                      2959
                    ],
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 4
                      },
                      "end": {
                        "line": 77,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              2964,
                              2984
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 4
                              },
                              "end": {
                                "line": 78,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2985,
                              2994
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 25
                              },
                              "end": {
                                "line": 78,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            2964,
                            2994
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 4
                            },
                            "end": {
                              "line": 78,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "notifyNext",
                          "range": [
                            2995,
                            3005
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 35
                            },
                            "end": {
                              "line": 78,
                              "column": 45
                            }
                          }
                        },
                        "range": [
                          2964,
                          3005
                        ],
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 4
                          },
                          "end": {
                            "line": 78,
                            "column": 45
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "outerValue",
                            "range": [
                              3018,
                              3028
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 58
                              },
                              "end": {
                                "line": 78,
                                "column": 68
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerValue",
                            "range": [
                              3030,
                              3040
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 70
                              },
                              "end": {
                                "line": 78,
                                "column": 80
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "outerIndex",
                            "range": [
                              3042,
                              3052
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 82
                              },
                              "end": {
                                "line": 78,
                                "column": 92
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerIndex",
                            "range": [
                              3054,
                              3064
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 94
                              },
                              "end": {
                                "line": 78,
                                "column": 104
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerSub",
                            "range": [
                              3066,
                              3074
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 106
                              },
                              "end": {
                                "line": 78,
                                "column": 114
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3086,
                                      3090
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "openBuffer",
                                    "range": [
                                      3091,
                                      3101
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    3086,
                                    3101
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 23
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  3086,
                                  3103
                                ],
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 25
                                  }
                                }
                              },
                              "range": [
                                3086,
                                3104
                              ],
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 8
                                },
                                "end": {
                                  "line": 79,
                                  "column": 26
                                }
                              }
                            }
                          ],
                          "range": [
                            3076,
                            3110
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 116
                            },
                            "end": {
                              "line": 80,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3008,
                          3110
                        ],
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 48
                          },
                          "end": {
                            "line": 80,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2964,
                        3110
                      ],
                      "loc": {
                        "start": {
                          "line": 78,
                          "column": 4
                        },
                        "end": {
                          "line": 80,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2964,
                      3111
                    ],
                    "loc": {
                      "start": {
                        "line": 78,
                        "column": 4
                      },
                      "end": {
                        "line": 80,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              3116,
                              3136
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 4
                              },
                              "end": {
                                "line": 81,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3137,
                              3146
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 25
                              },
                              "end": {
                                "line": 81,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            3116,
                            3146
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 4
                            },
                            "end": {
                              "line": 81,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "notifyComplete",
                          "range": [
                            3147,
                            3161
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 35
                            },
                            "end": {
                              "line": 81,
                              "column": 49
                            }
                          }
                        },
                        "range": [
                          3116,
                          3161
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 4
                          },
                          "end": {
                            "line": 81,
                            "column": 49
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    3190,
                                    3194
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "subscribing",
                                  "range": [
                                    3195,
                                    3206
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 28
                                    }
                                  }
                                },
                                "range": [
                                  3190,
                                  3206
                                ],
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 28
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3222,
                                            3226
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 83,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 83,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "complete",
                                          "range": [
                                            3227,
                                            3235
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 83,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 83,
                                              "column": 25
                                            }
                                          }
                                        },
                                        "range": [
                                          3222,
                                          3235
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 83,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 83,
                                            "column": 25
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3222,
                                        3237
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "range": [
                                      3222,
                                      3238
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 28
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3208,
                                  3248
                                ],
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 84,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3276,
                                            3280
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 86,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 86,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "openBuffer",
                                          "range": [
                                            3281,
                                            3291
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 86,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 86,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "range": [
                                          3276,
                                          3291
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 86,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 86,
                                            "column": 27
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3276,
                                        3293
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 29
                                        }
                                      }
                                    },
                                    "range": [
                                      3276,
                                      3294
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 30
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3262,
                                  3304
                                ],
                                "loc": {
                                  "start": {
                                    "line": 85,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                3186,
                                3304
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 8
                                },
                                "end": {
                                  "line": 87,
                                  "column": 9
                                }
                              }
                            }
                          ],
                          "range": [
                            3176,
                            3310
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 64
                            },
                            "end": {
                              "line": 88,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3164,
                          3310
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 52
                          },
                          "end": {
                            "line": 88,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3116,
                        3310
                      ],
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 4
                        },
                        "end": {
                          "line": 88,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3116,
                      3311
                    ],
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 4
                      },
                      "end": {
                        "line": 88,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "BufferWhenSubscriber",
                            "range": [
                              3316,
                              3336
                            ],
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 4
                              },
                              "end": {
                                "line": 89,
                                "column": 24
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3337,
                              3346
                            ],
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 25
                              },
                              "end": {
                                "line": 89,
                                "column": 34
                              }
                            }
                          },
                          "range": [
                            3316,
                            3346
                          ],
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 4
                            },
                            "end": {
                              "line": 89,
                              "column": 34
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "openBuffer",
                          "range": [
                            3347,
                            3357
                          ],
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 35
                            },
                            "end": {
                              "line": 89,
                              "column": 45
                            }
                          }
                        },
                        "range": [
                          3316,
                          3357
                        ],
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 4
                          },
                          "end": {
                            "line": 89,
                            "column": 45
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "closingSubscription",
                                    "range": [
                                      3386,
                                      3405
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 90,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 90,
                                        "column": 31
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3408,
                                        3412
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 38
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "closingSubscription",
                                      "range": [
                                        3413,
                                        3432
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      3408,
                                      3432
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 90,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 90,
                                        "column": 58
                                      }
                                    }
                                  },
                                  "range": [
                                    3386,
                                    3432
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 90,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 90,
                                      "column": 58
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                3382,
                                3433
                              ],
                              "loc": {
                                "start": {
                                  "line": 90,
                                  "column": 8
                                },
                                "end": {
                                  "line": 90,
                                  "column": 59
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "closingSubscription",
                                "range": [
                                  3446,
                                  3465
                                ],
                                "loc": {
                                  "start": {
                                    "line": 91,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 91,
                                    "column": 31
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3481,
                                            3485
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 92,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 92,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "remove",
                                          "range": [
                                            3486,
                                            3492
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 92,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 92,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "range": [
                                          3481,
                                          3492
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 92,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 92,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "closingSubscription",
                                          "range": [
                                            3493,
                                            3512
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 92,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 92,
                                              "column": 43
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3481,
                                        3513
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 44
                                        }
                                      }
                                    },
                                    "range": [
                                      3481,
                                      3514
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 45
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "closingSubscription",
                                          "range": [
                                            3527,
                                            3546
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 31
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "unsubscribe",
                                          "range": [
                                            3547,
                                            3558
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 43
                                            }
                                          }
                                        },
                                        "range": [
                                          3527,
                                          3558
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 93,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 93,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3527,
                                        3560
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 93,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 93,
                                          "column": 45
                                        }
                                      }
                                    },
                                    "range": [
                                      3527,
                                      3561
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 93,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 93,
                                        "column": 46
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3467,
                                  3571
                                ],
                                "loc": {
                                  "start": {
                                    "line": 91,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3442,
                                3571
                              ],
                              "loc": {
                                "start": {
                                  "line": 91,
                                  "column": 8
                                },
                                "end": {
                                  "line": 94,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "buffer",
                                    "range": [
                                      3584,
                                      3590
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3593,
                                        3597
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "buffer",
                                      "range": [
                                        3598,
                                        3604
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 95,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 95,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "range": [
                                      3593,
                                      3604
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "range": [
                                    3584,
                                    3604
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 32
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                3580,
                                3605
                              ],
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 8
                                },
                                "end": {
                                  "line": 95,
                                  "column": 33
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    3618,
                                    3622
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "buffer",
                                  "range": [
                                    3623,
                                    3629
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 23
                                    }
                                  }
                                },
                                "range": [
                                  3618,
                                  3629
                                ],
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 23
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3645,
                                              3649
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "destination",
                                            "range": [
                                              3650,
                                              3661
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            3645,
                                            3661
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "next",
                                          "range": [
                                            3662,
                                            3666
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          3645,
                                          3666
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 97,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "buffer",
                                          "range": [
                                            3667,
                                            3673
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 40
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3645,
                                        3674
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 97,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 97,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      3645,
                                      3675
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 97,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 42
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3631,
                                  3685
                                ],
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3614,
                                3685
                              ],
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 8
                                },
                                "end": {
                                  "line": 98,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "AssignmentExpression",
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3694,
                                      3698
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 99,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "buffer",
                                    "range": [
                                      3699,
                                      3705
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 99,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "range": [
                                    3694,
                                    3705
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 19
                                    }
                                  }
                                },
                                "right": {
                                  "type": "ArrayExpression",
                                  "elements": [],
                                  "range": [
                                    3708,
                                    3710
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 24
                                    }
                                  }
                                },
                                "range": [
                                  3694,
                                  3710
                                ],
                                "loc": {
                                  "start": {
                                    "line": 99,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                3694,
                                3711
                              ],
                              "loc": {
                                "start": {
                                  "line": 99,
                                  "column": 8
                                },
                                "end": {
                                  "line": 99,
                                  "column": 25
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "closingNotifier",
                                    "range": [
                                      3724,
                                      3739
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 100,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 100,
                                        "column": 27
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "Identifier",
                                        "name": "tryCatch",
                                        "range": [
                                          3742,
                                          3750
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3751,
                                              3755
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 39
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 43
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "closingSelector",
                                            "range": [
                                              3756,
                                              3771
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 44
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 59
                                              }
                                            }
                                          },
                                          "range": [
                                            3751,
                                            3771
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 39
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 59
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3742,
                                        3772
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 100,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 100,
                                          "column": 60
                                        }
                                      }
                                    },
                                    "arguments": [],
                                    "range": [
                                      3742,
                                      3774
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 100,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 100,
                                        "column": 62
                                      }
                                    }
                                  },
                                  "range": [
                                    3724,
                                    3774
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 100,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 100,
                                      "column": 62
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                3720,
                                3775
                              ],
                              "loc": {
                                "start": {
                                  "line": 100,
                                  "column": 8
                                },
                                "end": {
                                  "line": 100,
                                  "column": 63
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "BinaryExpression",
                                "operator": "===",
                                "left": {
                                  "type": "Identifier",
                                  "name": "closingNotifier",
                                  "range": [
                                    3788,
                                    3803
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 27
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Identifier",
                                  "name": "errorObject",
                                  "range": [
                                    3808,
                                    3819
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 43
                                    }
                                  }
                                },
                                "range": [
                                  3788,
                                  3819
                                ],
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 43
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3835,
                                            3839
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 102,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 102,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "error",
                                          "range": [
                                            3840,
                                            3845
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 102,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 102,
                                              "column": 22
                                            }
                                          }
                                        },
                                        "range": [
                                          3835,
                                          3845
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 102,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 102,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "errorObject",
                                            "range": [
                                              3846,
                                              3857
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 102,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 102,
                                                "column": 34
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "e",
                                            "range": [
                                              3858,
                                              3859
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 102,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 102,
                                                "column": 36
                                              }
                                            }
                                          },
                                          "range": [
                                            3846,
                                            3859
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 102,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 102,
                                              "column": 36
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3835,
                                        3860
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 37
                                        }
                                      }
                                    },
                                    "range": [
                                      3835,
                                      3861
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 38
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3821,
                                  3871
                                ],
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "closingSubscription",
                                        "range": [
                                          3899,
                                          3918
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "NewExpression",
                                        "callee": {
                                          "type": "Identifier",
                                          "name": "Subscription",
                                          "range": [
                                            3925,
                                            3937
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 50
                                            }
                                          }
                                        },
                                        "arguments": [],
                                        "range": [
                                          3921,
                                          3939
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 52
                                          }
                                        }
                                      },
                                      "range": [
                                        3899,
                                        3939
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "range": [
                                      3899,
                                      3940
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 53
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3953,
                                            3957
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 106,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 106,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "closingSubscription",
                                          "range": [
                                            3958,
                                            3977
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 106,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 106,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "range": [
                                          3953,
                                          3977
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Identifier",
                                        "name": "closingSubscription",
                                        "range": [
                                          3980,
                                          3999
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "range": [
                                        3953,
                                        3999
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 106,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 106,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      3953,
                                      4000
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 106,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 106,
                                        "column": 59
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            4013,
                                            4017
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 107,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 107,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "add",
                                          "range": [
                                            4018,
                                            4021
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 107,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 107,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "range": [
                                          4013,
                                          4021
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 107,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 107,
                                            "column": 20
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "closingSubscription",
                                          "range": [
                                            4022,
                                            4041
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 107,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 107,
                                              "column": 40
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4013,
                                        4042
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      4013,
                                      4043
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 42
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            4056,
                                            4060
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "subscribing",
                                          "range": [
                                            4061,
                                            4072
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "range": [
                                          4056,
                                          4072
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          4075,
                                          4079
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "range": [
                                        4056,
                                        4079
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 108,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 108,
                                          "column": 35
                                        }
                                      }
                                    },
                                    "range": [
                                      4056,
                                      4080
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 36
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "closingSubscription",
                                          "range": [
                                            4093,
                                            4112
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 31
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "add",
                                          "range": [
                                            4113,
                                            4116
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 35
                                            }
                                          }
                                        },
                                        "range": [
                                          4093,
                                          4116
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 109,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 109,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "Identifier",
                                            "name": "subscribeToResult",
                                            "range": [
                                              4117,
                                              4134
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 109,
                                                "column": 36
                                              },
                                              "end": {
                                                "line": 109,
                                                "column": 53
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "ThisExpression",
                                              "range": [
                                                4135,
                                                4139
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 109,
                                                  "column": 54
                                                },
                                                "end": {
                                                  "line": 109,
                                                  "column": 58
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "closingNotifier",
                                              "range": [
                                                4141,
                                                4156
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 109,
                                                  "column": 60
                                                },
                                                "end": {
                                                  "line": 109,
                                                  "column": 75
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            4117,
                                            4157
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 109,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 109,
                                              "column": 76
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4093,
                                        4158
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 109,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 109,
                                          "column": 77
                                        }
                                      }
                                    },
                                    "range": [
                                      4093,
                                      4159
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 78
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            4172,
                                            4176
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "subscribing",
                                          "range": [
                                            4177,
                                            4188
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "range": [
                                          4172,
                                          4188
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": false,
                                        "raw": "false",
                                        "range": [
                                          4191,
                                          4196
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "range": [
                                        4172,
                                        4196
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 36
                                        }
                                      }
                                    },
                                    "range": [
                                      4172,
                                      4197
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 37
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3885,
                                  4207
                                ],
                                "loc": {
                                  "start": {
                                    "line": 104,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 111,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                3784,
                                4207
                              ],
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 8
                                },
                                "end": {
                                  "line": 111,
                                  "column": 9
                                }
                              }
                            }
                          ],
                          "range": [
                            3372,
                            4213
                          ],
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 60
                            },
                            "end": {
                              "line": 112,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3360,
                          4213
                        ],
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 48
                          },
                          "end": {
                            "line": 112,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3316,
                        4213
                      ],
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 4
                        },
                        "end": {
                          "line": 112,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3316,
                      4214
                    ],
                    "loc": {
                      "start": {
                        "line": 89,
                        "column": 4
                      },
                      "end": {
                        "line": 112,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "BufferWhenSubscriber",
                      "range": [
                        4226,
                        4246
                      ],
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 11
                        },
                        "end": {
                          "line": 113,
                          "column": 31
                        }
                      }
                    },
                    "range": [
                      4219,
                      4247
                    ],
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 4
                      },
                      "end": {
                        "line": 113,
                        "column": 32
                      }
                    }
                  }
                ],
                "range": [
                  2233,
                  4249
                ],
                "loc": {
                  "start": {
                    "line": 56,
                    "column": 46
                  },
                  "end": {
                    "line": 114,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2215,
                4249
              ],
              "loc": {
                "start": {
                  "line": 56,
                  "column": 28
                },
                "end": {
                  "line": 114,
                  "column": 1
                }
              }
            },
            "arguments": [
              {
                "type": "Identifier",
                "name": "OuterSubscriber",
                "range": [
                  4250,
                  4265
                ],
                "loc": {
                  "start": {
                    "line": 114,
                    "column": 2
                  },
                  "end": {
                    "line": 114,
                    "column": 17
                  }
                }
              }
            ],
            "range": [
              2215,
              4266
            ],
            "loc": {
              "start": {
                "line": 56,
                "column": 28
              },
              "end": {
                "line": 114,
                "column": 18
              }
            }
          },
          "range": [
            2191,
            4267
          ],
          "loc": {
            "start": {
              "line": 56,
              "column": 4
            },
            "end": {
              "line": 114,
              "column": 19
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2187,
        4268
      ],
      "loc": {
        "start": {
          "line": 56,
          "column": 0
        },
        "end": {
          "line": 114,
          "column": 20
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            2095,
            2186
          ],
          "loc": {
            "start": {
              "line": 51,
              "column": 0
            },
            "end": {
              "line": 55,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=bufferWhen.js.map",
          "range": [
            4269,
            4307
          ],
          "loc": {
            "start": {
              "line": 115,
              "column": 0
            },
            "end": {
              "line": 115,
              "column": 38
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    4268
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 114,
      "column": 20
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * <img src=\"./img/bufferWhen.png\" width=\"100%\">\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * @example <caption>Emit an array of the last clicks every [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferWhen(() =>\n *   Rx.Observable.interval(1000 + Math.random() * 4000)\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n ",
      "range": [
        261,
        1628
      ],
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 38,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
      "range": [
        2095,
        2186
      ],
      "loc": {
        "start": {
          "line": 51,
          "column": 0
        },
        "end": {
          "line": 55,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=bufferWhen.js.map",
      "range": [
        4269,
        4307
      ],
      "loc": {
        "start": {
          "line": 115,
          "column": 0
        },
        "end": {
          "line": 115,
          "column": 38
        }
      }
    }
  ]
}