{"version":3,"sources":["webpack://biri/webpack/universalModuleDefinition","webpack://biri/webpack/bootstrap","webpack://biri/./index.js","webpack://biri/./node_modules/@babel/runtime/regenerator/index.js","webpack://biri/./node_modules/regenerator-runtime/runtime.js","webpack://biri/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://biri/./node_modules/@babel/runtime/helpers/interopRequireDefault.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","connection","_id","promises","startConnection","onIceCandidate","candidate","protocol","foundation","forEach","resolve","length","RTCPeerConnection","sdpSemantics","addEventListener","createOffer","offerToReceiveAudio","offerToReceiveVideo","offer","setLocalDescription","Error","promise","Promise","push","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","makeInvokeMethod","fn","obj","err","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","reject","invoke","result","__await","then","unwrapped","error","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","asyncGeneratorStep","gen","_next","_throw","args","arguments","apply"],"mappings":"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","file":"biri.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"biri\"] = factory();\n\telse\n\t\troot[\"biri\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","let _id = null\n\nconst promises = []\n\nlet connection\n\nasync function startConnection() {\n  if (connection) return\n\n  const peerConnectionConfig = [\n    { sdpSemantics: \"unified-plan\" },\n    { sdpSemantics: \"plan-b\" }\n  ]\n\n  connection = new RTCPeerConnection(peerConnectionConfig[0]);\n\n  connection.addEventListener('icecandidate', onIceCandidate);\n\n  const offer = await connection.createOffer({\n    offerToReceiveAudio: 1,\n    offerToReceiveVideo: 1\n  })\n  connection.setLocalDescription(offer)\n\n  function onIceCandidate({ candidate }) {\n    if (!candidate) return\n\n    if (candidate.protocol == 'udp') {\n      _id = candidate.foundation\n      promises.forEach(resolve => resolve(_id))\n      promises.length = 0\n    }\n  }\n}\n\nasync function biri() {\n  if (typeof RTCPeerConnection == 'undefined')\n    throw new Error(`This browser doesn't support WebRTC, so biri cannot provide a unique, static ID for this machine.`)\n\n  if (_id) return _id\n\n  const promise = new Promise(resolve => {\n    startConnection()\n    promises.push(resolve)\n  })\n\n  return promise\n}\n\nmodule.exports = biri\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\nmodule.exports = _asyncToGenerator;","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;"],"sourceRoot":""}