text: ;(function webpackUniversalModuleDefinition(root, factory) {
    if (typeof exports === 'object' && typeof module === 'object') module.exports = factory()
    else if (typeof define === 'function' && define.amd) define([], factory)
    else if (typeof exports === 'object') exports['Sketchfab'] = factory()
    else root['Sketchfab'] = factory()
  })(this, function() {
    return /******/ (function(modules) {
      // webpackBootstrap
      /******/ // The module cache
      /******/ var installedModules = {} // The require function
      /******/
      /******/ /******/ function __webpack_require__(moduleId) {
        /******/
        /******/ // Check if module is in cache
        /******/ if (installedModules[moduleId]) {
          /******/ return installedModules[moduleId].exports
          /******/
        } // Create a new module (and put it into the cache)
        /******/ /******/ var module = (installedModules[moduleId] = {
          /******/ i: moduleId,
          /******/ l: false,
          /******/ exports: {},
          /******/
        }) // Execute the module function
        /******/
        /******/ /******/ modules[moduleId].call(
          module.exports,
          module,
          module.exports,
          __webpack_require__
        ) // Flag the module as loaded
        /******/
        /******/ /******/ module.l = true // Return the exports of the module
        /******/
        /******/ /******/ return module.exports
        /******/
      } // expose the modules object (__webpack_modules__)
      /******/
      /******/
      /******/ /******/ __webpack_require__.m = modules // expose the module cache
      /******/
      /******/ /******/ __webpack_require__.c = installedModules // define getter function for harmony exports
      /******/
      /******/ /******/ __webpack_require__.d = function(exports, name, getter) {
        /******/ if (!__webpack_require__.o(exports, name)) {
          /******/ Object.defineProperty(exports, name, {
            /******/ configurable: false,
            /******/ enumerable: true,
            /******/ get: getter,
            /******/
          })
          /******/
        }
        /******/
      } // getDefaultExport function for compatibility with non-harmony modules
      /******/
      /******/ /******/ __webpack_require__.n = function(module) {
        /******/ var getter =
          module && module.__esModule
            ? /******/ function getDefault() {
                return module['default']
              }
            : /******/ function getModuleExports() {
                return module
              }
        /******/ __webpack_require__.d(getter, 'a', getter)
        /******/ return getter
        /******/
      } // Object.prototype.hasOwnProperty.call
      /******/
      /******/ /******/ __webpack_require__.o = function(object, property) {
        return Object.prototype.hasOwnProperty.call(object, property)
      } // __webpack_public_path__
      /******/
      /******/ /******/ __webpack_require__.p = '/static/builds/web/dist/' // Load entry module and return exports
      /******/
      /******/ /******/ return __webpack_require__((__webpack_require__.s = 39))
      /******/
    })(
      /************************************************************************/
      /******/ [
        /* 0 */
        /***/ function(module, exports) {
          // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
          var global = (module.exports =
            typeof window != 'undefined' && window.Math == Math
              ? window
              : typeof self != 'undefined' && self.Math == Math
                ? self
                : // eslint-disable-next-line no-new-func
                  Function('return this')())
          if (typeof __g == 'number') __g = global // eslint-disable-line no-undef
  
          /***/
        },
        /* 1 */
        /***/ function(module, exports) {
          var hasOwnProperty = {}.hasOwnProperty
          module.exports = function(it, key) {
            return hasOwnProperty.call(it, key)
          }
  
          /***/
        },
        /* 2 */
        /***/ function(module, exports, __webpack_require__) {
          // to indexed object, toObject with fallback for non-array-like ES3 strings
          var IObject = __webpack_require__(42)
          var defined = __webpack_require__(14)
          module.exports = function(it) {
            return IObject(defined(it))
          }
  
          /***/
        },
        /* 3 */
        /***/ function(module, exports, __webpack_require__) {
          var dP = __webpack_require__(4)
          var createDesc = __webpack_require__(13)
          module.exports = __webpack_require__(5)
            ? function(object, key, value) {
                return dP.f(object, key, createDesc(1, value))
              }
            : function(object, key, value) {
                object[key] = value
                return object
              }
  
          /***/
        },
        /* 4 */
        /***/ function(module, exports, __webpack_require__) {
          var anObject = __webpack_require__(12)
          var IE8_DOM_DEFINE = __webpack_require__(31)
          var toPrimitive = __webpack_require__(20)
          var dP = Object.defineProperty
  
          exports.f = __webpack_require__(5)
            ? Object.defineProperty
            : function defineProperty(O, P, Attributes) {
                anObject(O)
                P = toPrimitive(P, true)
                anObject(Attributes)
                if (IE8_DOM_DEFINE)
                  try {
                    return dP(O, P, Attributes)
                  } catch (e) {
                    /* empty */
                  }
                if ('get' in Attributes || 'set' in Attributes)
                  throw TypeError('Accessors not supported!')
                if ('value' in Attributes) O[P] = Attributes.value
                return O
              }
  
          /***/
        },
        /* 5 */
        /***/ function(module, exports, __webpack_require__) {
          // Thank's IE8 for his funny defineProperty
          module.exports = !__webpack_require__(9)(function() {
            return (
              Object.defineProperty({}, 'a', {
                get: function() {
                  return 7
                },
              }).a != 7
            )
          })
  
          /***/
        },
        /* 6 */
        /***/ function(module, exports, __webpack_require__) {
          var store = __webpack_require__(17)('wks')
          var uid = __webpack_require__(11)
          var Symbol = __webpack_require__(0).Symbol
          var USE_SYMBOL = typeof Symbol == 'function'
  
          var $exports = (module.exports = function(name) {
            return (
              store[name] ||
              (store[name] =
                (USE_SYMBOL && Symbol[name]) || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name))
            )
          })
  
          $exports.store = store
  
          /***/
        },
        /* 7 */
        /***/ function(module, exports) {
          var core = (module.exports = { version: '2.5.3' })
          if (typeof __e == 'number') __e = core // eslint-disable-line no-undef
  
          /***/
        },
        /* 8 */
        /***/ function(module, exports) {
          module.exports = function(it) {
            return typeof it === 'object' ? it !== null : typeof it === 'function'
          }
  
          /***/
        },
        /* 9 */
        /***/ function(module, exports) {
          module.exports = function(exec) {
            try {
              return !!exec()
            } catch (e) {
              return true
            }
          }
  
          /***/
        },
        /* 10 */
        /***/ function(module, exports, __webpack_require__) {
          // 19.1.2.14 / 15.2.3.14 Object.keys(O)
          var $keys = __webpack_require__(29)
          var enumBugKeys = __webpack_require__(18)
  
          module.exports =
            Object.keys ||
            function keys(O) {
              return $keys(O, enumBugKeys)
            }
  
          /***/
        },
        /* 11 */
        /***/ function(module, exports) {
          var id = 0
          var px = Math.random()
          module.exports = function(key) {
            return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36))
          }
  
          /***/
        },
        /* 12 */
        /***/ function(module, exports, __webpack_require__) {
          var isObject = __webpack_require__(8)
          module.exports = function(it) {
            if (!isObject(it)) throw TypeError(it + ' is not an object!')
            return it
          }
  
          /***/
        },
        /* 13 */
        /***/ function(module, exports) {
          module.exports = function(bitmap, value) {
            return {
              enumerable: !(bitmap & 1),
              configurable: !(bitmap & 2),
              writable: !(bitmap & 4),
              value: value,
            }
          }
  
          /***/
        },
        /* 14 */
        /***/ function(module, exports) {
          // 7.2.1 RequireObjectCoercible(argument)
          module.exports = function(it) {
            if (it == undefined) throw TypeError("Can't call method on  " + it)
            return it
          }
  
          /***/
        },
        /* 15 */
        /***/ function(module, exports) {
          // 7.1.4 ToInteger
          var ceil = Math.ceil
          var floor = Math.floor
          module.exports = function(it) {
            return isNaN((it = +it)) ? 0 : (it > 0 ? floor : ceil)(it)
          }
  
          /***/
        },
        /* 16 */
        /***/ function(module, exports, __webpack_require__) {
          var shared = __webpack_require__(17)('keys')
          var uid = __webpack_require__(11)
          module.exports = function(key) {
            return shared[key] || (shared[key] = uid(key))
          }
  
          /***/
        },
        /* 17 */
        /***/ function(module, exports, __webpack_require__) {
          var global = __webpack_require__(0)
          var SHARED = '__core-js_shared__'
          var store = global[SHARED] || (global[SHARED] = {})
          module.exports = function(key) {
            return store[key] || (store[key] = {})
          }
  
          /***/
        },
        /* 18 */
        /***/ function(module, exports) {
          // IE 8- don't enum bug keys
          module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(
            ','
          )
  
          /***/
        },
        /* 19 */
        /***/ function(module, exports, __webpack_require__) {
          var global = __webpack_require__(0)
          var core = __webpack_require__(7)
          var ctx = __webpack_require__(47)
          var hide = __webpack_require__(3)
          var PROTOTYPE = 'prototype'
  
          var $export = function(type, name, source) {
            var IS_FORCED = type & $export.F
            var IS_GLOBAL = type & $export.G
            var IS_STATIC = type & $export.S
            var IS_PROTO = type & $export.P
            var IS_BIND = type & $export.B
            var IS_WRAP = type & $export.W
            var exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
            var expProto = exports[PROTOTYPE]
            var target = IS_GLOBAL
              ? global
              : IS_STATIC
                ? global[name]
                : (global[name] || {})[PROTOTYPE]
            var key, own, out
            if (IS_GLOBAL) source = name
            for (key in source) {
              // contains in native
              own = !IS_FORCED && target && target[key] !== undefined
              if (own && key in exports) continue
              // export native or passed
              out = own ? target[key] : source[key]
              // prevent global pollution for namespaces
              exports[key] =
                IS_GLOBAL && typeof target[key] != 'function'
                  ? source[key]
                  : // bind timers to global for call from export context
                    IS_BIND && own
                    ? ctx(out, global)
                    : // wrap global constructors for prevent change them in library
                      IS_WRAP && target[key] == out
                      ? (function(C) {
                          var F = function(a, b, c) {
                            if (this instanceof C) {
                              switch (arguments.length) {
                                case 0:
                                  return new C()
                                case 1:
                                  return new C(a)
                                case 2:
                                  return new C(a, b)
                              }
                              return new C(a, b, c)
                            }
                            return C.apply(this, arguments)
                          }
                          F[PROTOTYPE] = C[PROTOTYPE]
                          return F
                          // make static versions for prototype methods
                        })(out)
                      : IS_PROTO && typeof out == 'function'
                        ? ctx(Function.call, out)
                        : out
              // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
              if (IS_PROTO) {
                ;(exports.virtual || (exports.virtual = {}))[key] = out
                // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
                if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out)
              }
            }
          }
          // type bitmap
          $export.F = 1 // forced
          $export.G = 2 // global
          $export.S = 4 // static
          $export.P = 8 // proto
          $export.B = 16 // bind
          $export.W = 32 // wrap
          $export.U = 64 // safe
          $export.R = 128 // real proto method for `library`
          module.exports = $export
  
          /***/
        },
        /* 20 */
        /***/ function(module, exports, __webpack_require__) {
          // 7.1.1 ToPrimitive(input [, PreferredType])
          var isObject = __webpack_require__(8)
          // instead of the ES6 spec version, we didn't implement @@toPrimitive case
          // and the second argument - flag - preferred type is a string
          module.exports = function(it, S) {
            if (!isObject(it)) return it
            var fn, val
            if (S && typeof (fn = it.toString) == 'function' && !isObject((val = fn.call(it))))
              return val
            if (typeof (fn = it.valueOf) == 'function' && !isObject((val = fn.call(it)))) return val
            if (!S && typeof (fn = it.toString) == 'function' && !isObject((val = fn.call(it))))
              return val
            throw TypeError("Can't convert object to primitive value")
          }
  
          /***/
        },
        /* 21 */
        /***/ function(module, exports) {
          module.exports = true
  
          /***/
        },
        /* 22 */
        /***/ function(module, exports) {
          module.exports = {}
  
          /***/
        },
        /* 23 */
        /***/ function(module, exports, __webpack_require__) {
          var def = __webpack_require__(4).f
          var has = __webpack_require__(1)
          var TAG = __webpack_require__(6)('toStringTag')
  
          module.exports = function(it, tag, stat) {
            if (it && !has((it = stat ? it : it.prototype), TAG))
              def(it, TAG, { configurable: true, value: tag })
          }
  
          /***/
        },
        /* 24 */
        /***/ function(module, exports, __webpack_require__) {
          exports.f = __webpack_require__(6)
  
          /***/
        },
        /* 25 */
        /***/ function(module, exports, __webpack_require__) {
          var global = __webpack_require__(0)
          var core = __webpack_require__(7)
          var LIBRARY = __webpack_require__(21)
          var wksExt = __webpack_require__(24)
          var defineProperty = __webpack_require__(4).f
          module.exports = function(name) {
            var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {})
            if (name.charAt(0) != '_' && !(name in $Symbol))
              defineProperty($Symbol, name, { value: wksExt.f(name) })
          }
  
          /***/
        },
        /* 26 */
        /***/ function(module, exports) {
          exports.f = {}.propertyIsEnumerable
  
          /***/
        },
        /* 27 */
        /***/ function(module, exports, __webpack_require__) {
          module.exports = { default: __webpack_require__(40), __esModule: true }
  
          /***/
        },
        /* 28 */
        /***/ function(module, exports, __webpack_require__) {
          // 7.1.13 ToObject(argument)
          var defined = __webpack_require__(14)
          module.exports = function(it) {
            return Object(defined(it))
          }
  
          /***/
        },
        /* 29 */
        /***/ function(module, exports, __webpack_require__) {
          var has = __webpack_require__(1)
          var toIObject = __webpack_require__(2)
          var arrayIndexOf = __webpack_require__(43)(false)
          var IE_PROTO = __webpack_require__(16)('IE_PROTO')
  
          module.exports = function(object, names) {
            var O = toIObject(object)
            var i = 0
            var result = []
            var key
            for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key)
            // Don't enum bug & hidden keys
            while (names.length > i)
              if (has(O, (key = names[i++]))) {
                ~arrayIndexOf(result, key) || result.push(key)
              }
            return result
          }
  
          /***/
        },
        /* 30 */
        /***/ function(module, exports) {
          var toString = {}.toString
  
          module.exports = function(it) {
            return toString.call(it).slice(8, -1)
          }
  
          /***/
        },
        /* 31 */
        /***/ function(module, exports, __webpack_require__) {
          module.exports =
            !__webpack_require__(5) &&
            !__webpack_require__(9)(function() {
              return (
                Object.defineProperty(__webpack_require__(32)('div'), 'a', {
                  get: function() {
                    return 7
                  },
                }).a != 7
              )
            })
  
          /***/
        },
        /* 32 */
        /***/ function(module, exports, __webpack_require__) {
          var isObject = __webpack_require__(8)
          var document = __webpack_require__(0).document
          // typeof document.createElement is 'object' in old IE
          var is = isObject(document) && isObject(document.createElement)
          module.exports = function(it) {
            return is ? document.createElement(it) : {}
          }
  
          /***/
        },
        /* 33 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          exports.__esModule = true
  
          var _iterator = __webpack_require__(49)
  
          var _iterator2 = _interopRequireDefault(_iterator)
  
          var _symbol = __webpack_require__(61)
  
          var _symbol2 = _interopRequireDefault(_symbol)
  
          var _typeof =
            typeof _symbol2.default === 'function' && typeof _iterator2.default === 'symbol'
              ? function(obj) {
                  return typeof obj
                }
              : function(obj) {
                  return obj &&
                    typeof _symbol2.default === 'function' &&
                    obj.constructor === _symbol2.default &&
                    obj !== _symbol2.default.prototype
                    ? 'symbol'
                    : typeof obj
                }
  
          function _interopRequireDefault(obj) {
            return obj && obj.__esModule ? obj : { default: obj }
          }
  
          exports.default =
            typeof _symbol2.default === 'function' && _typeof(_iterator2.default) === 'symbol'
              ? function(obj) {
                  return typeof obj === 'undefined' ? 'undefined' : _typeof(obj)
                }
              : function(obj) {
                  return obj &&
                    typeof _symbol2.default === 'function' &&
                    obj.constructor === _symbol2.default &&
                    obj !== _symbol2.default.prototype
                    ? 'symbol'
                    : typeof obj === 'undefined'
                      ? 'undefined'
                      : _typeof(obj)
                }
  
          /***/
        },
        /* 34 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          var LIBRARY = __webpack_require__(21)
          var $export = __webpack_require__(19)
          var redefine = __webpack_require__(35)
          var hide = __webpack_require__(3)
          var has = __webpack_require__(1)
          var Iterators = __webpack_require__(22)
          var $iterCreate = __webpack_require__(53)
          var setToStringTag = __webpack_require__(23)
          var getPrototypeOf = __webpack_require__(56)
          var ITERATOR = __webpack_require__(6)('iterator')
          var BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
          var FF_ITERATOR = '@@iterator'
          var KEYS = 'keys'
          var VALUES = 'values'
  
          var returnThis = function() {
            return this
          }
  
          module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
            $iterCreate(Constructor, NAME, next)
            var getMethod = function(kind) {
              if (!BUGGY && kind in proto) return proto[kind]
              switch (kind) {
                case KEYS:
                  return function keys() {
                    return new Constructor(this, kind)
                  }
                case VALUES:
                  return function values() {
                    return new Constructor(this, kind)
                  }
              }
              return function entries() {
                return new Constructor(this, kind)
              }
            }
            var TAG = NAME + ' Iterator'
            var DEF_VALUES = DEFAULT == VALUES
            var VALUES_BUG = false
            var proto = Base.prototype
            var $native = proto[ITERATOR] || proto[FF_ITERATOR] || (DEFAULT && proto[DEFAULT])
            var $default = (!BUGGY && $native) || getMethod(DEFAULT)
            var $entries = DEFAULT ? (!DEF_VALUES ? $default : getMethod('entries')) : undefined
            var $anyNative = NAME == 'Array' ? proto.entries || $native : $native
            var methods, key, IteratorPrototype
            // Fix native
            if ($anyNative) {
              IteratorPrototype = getPrototypeOf($anyNative.call(new Base()))
              if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
                // Set @@toStringTag to native iterators
                setToStringTag(IteratorPrototype, TAG, true)
                // fix for some old engines
                if (!LIBRARY && !has(IteratorPrototype, ITERATOR))
                  hide(IteratorPrototype, ITERATOR, returnThis)
              }
            }
            // fix Array#{values, @@iterator}.name in V8 / FF
            if (DEF_VALUES && $native && $native.name !== VALUES) {
              VALUES_BUG = true
              $default = function values() {
                return $native.call(this)
              }
            }
            // Define iterator
            if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
              hide(proto, ITERATOR, $default)
            }
            // Plug for library
            Iterators[NAME] = $default
            Iterators[TAG] = returnThis
            if (DEFAULT) {
              methods = {
                values: DEF_VALUES ? $default : getMethod(VALUES),
                keys: IS_SET ? $default : getMethod(KEYS),
                entries: $entries,
              }
              if (FORCED)
                for (key in methods) {
                  if (!(key in proto)) redefine(proto, key, methods[key])
                }
              else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods)
            }
            return methods
          }
  
          /***/
        },
        /* 35 */
        /***/ function(module, exports, __webpack_require__) {
          module.exports = __webpack_require__(3)
  
          /***/
        },
        /* 36 */
        /***/ function(module, exports, __webpack_require__) {
          // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
          var anObject = __webpack_require__(12)
          var dPs = __webpack_require__(54)
          var enumBugKeys = __webpack_require__(18)
          var IE_PROTO = __webpack_require__(16)('IE_PROTO')
          var Empty = function() {
            /* empty */
          }
          var PROTOTYPE = 'prototype'
  
          // Create object with fake `null` prototype: use iframe Object with cleared prototype
          var createDict = function() {
            // Thrash, waste and sodomy: IE GC bug
            var iframe = __webpack_require__(32)('iframe')
            var i = enumBugKeys.length
            var lt = '<'
            var gt = '>'
            var iframeDocument
            iframe.style.display = 'none'
            __webpack_require__(55).appendChild(iframe)
            iframe.src = 'javascript:' // eslint-disable-line no-script-url
            // createDict = iframe.contentWindow.Object;
            // html.removeChild(iframe);
            iframeDocument = iframe.contentWindow.document
            iframeDocument.open()
            iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt)
            iframeDocument.close()
            createDict = iframeDocument.F
            while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]
            return createDict()
          }
  
          module.exports =
            Object.create ||
            function create(O, Properties) {
              var result
              if (O !== null) {
                Empty[PROTOTYPE] = anObject(O)
                result = new Empty()
                Empty[PROTOTYPE] = null
                // add "__proto__" for Object.getPrototypeOf polyfill
                result[IE_PROTO] = O
              } else result = createDict()
              return Properties === undefined ? result : dPs(result, Properties)
            }
  
          /***/
        },
        /* 37 */
        /***/ function(module, exports) {
          exports.f = Object.getOwnPropertySymbols
  
          /***/
        },
        /* 38 */
        /***/ function(module, exports, __webpack_require__) {
          // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
          var $keys = __webpack_require__(29)
          var hiddenKeys = __webpack_require__(18).concat('length', 'prototype')
  
          exports.f =
            Object.getOwnPropertyNames ||
            function getOwnPropertyNames(O) {
              return $keys(O, hiddenKeys)
            }
  
          /***/
        },
        /* 39 */
        /***/ function(module, __webpack_exports__, __webpack_require__) {
          'use strict'
          Object.defineProperty(__webpack_exports__, '__esModule', { value: true })
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(
            27
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(
            __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__ = __webpack_require__(
            33
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default = __webpack_require__.n(
            __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_apis_viewer_lib_APIClient__ = __webpack_require__(
            72
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_utilities_ParseQueryString__ = __webpack_require__(
            73
          )
  
          window.SketchfabAPIClient =
            __WEBPACK_IMPORTED_MODULE_2_apis_viewer_lib_APIClient__['a' /* default */]
  
          var Sketchfab = function Sketchfab(version, target) {
            var v = version,
              t = target
  
            if (
              (typeof version === 'undefined'
                ? 'undefined'
                : __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(version)) ===
              'object'
            ) {
              t = version
              v = null
            }
            this._version = v
            this._target = t
            // get a unique identifier for the iframe
            // making sure we get message for us
            // and not another API sketchfab in the same page
            if (!window.sketchfabAPIinstances) window.sketchfabAPIinstances = []
            window.sketchfabAPIinstances.push(this)
            // if people keep adding/removing iframes
            // we might have problems
            // this._apiId = window.frames.length;
            // so we only count skfb api instances
            // must be a string
            this._apiId = window.sketchfabAPIinstances.length.toString()
            if (this._target.id) {
              // preferred id are user provided id
              // chances are big that an uniq Id exists
              // as it's DOM mandatory
              // but we concatenate just in case.
              // now apiId are Stable and easily debugged
              this._apiId += '_' + this._target.id
            }
            if (!this._target.allow) this._target.allow = 'vr; autoplay; fullscreen'
  
            this._client = undefined
            this._options = undefined
            this._domain = 'sketchfab.com'
            this._urlTemplate = 'https://YYYY/models/XXXX/embed'
            this._url = this._urlTemplate.replace('YYYY', this._domain)
  
            // url options for debug only
            this._transmitOptions = {}
            this._getURLOptions()
          }
  
          Sketchfab.prototype = {
            _urlOptionsDict: {
              skfb_api_version: {
                // allow interactive changes
                // version api viewer
                default: '1.3.1',
                type: 'string',
              },
            },
  
            _optionsLoaded: function _optionsLoaded(urlOptions) {
              this._urlOptions = urlOptions
              this._version = this._getURLOption('skfb_api_version', this._version)
            },
  
            _getURLOption: function _getURLOption(name, defaultValue) {
              var dictQueryParam = this._urlOptionsDict[name]
              if (!dictQueryParam) return defaultValue
              // default if not overridden
              if (defaultValue === undefined || defaultValue === null) {
                defaultValue = dictQueryParam.default
              }
              var value = this._urlOptions[name]
              // no option
              if (!value || !value.length) return defaultValue
              // finally the option
              return value[0]
            },
  
            _getURLOptions: function _getURLOptions() {
              if (!window || !window.location.search) return this._optionsLoaded({})
              var urlOptions = Object(
                __WEBPACK_IMPORTED_MODULE_3_utilities_ParseQueryString__['a' /* parse */]
              )(window.location.search)
              var namespace = 'skfb_'
              for (var key in urlOptions) {
                if (!key.startsWith(namespace)) continue
                this._transmitOptions[key.substr(5)] = urlOptions[key]
              }
  
              return this._optionsLoaded(urlOptions)
            },
  
            getEmbedURL: function getEmbedURL(urlid, options) {
              var url = this._url + '?api_version=' + this._version + '&api_id=' + this._apiId
  
              if (options) {
                __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(
                  options
                ).forEach(function(key) {
                  // filter options
                  if (options[key] == null || typeof options[key] === 'function') {
                    return
                  }
  
                  url += '&' + key.toString() + '=' + options[key].toString()
                })
              }
              var transmitOptions = this._transmitOptions
              __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(
                this._transmitOptions
              ).forEach(function(key) {
                url += '&' + key.toString() + '=' + transmitOptions[key].toString()
              })
  
              return url.replace('XXXX', urlid)
            },
  
            init: function init(urlid, options) {
              this._options = options
              this._urlid = urlid
              this._realInit()
            },
  
            reload: function reload(urlDomain) {
              var s = document.createElement('script')
              s.setAttribute(
                'src',
                'https://static.' + urlDomain + '/api/sketchfab-viewer-' + this._version + '.js'
              )
              s.addEventListener(
                'load',
                function() {
                  this._url = this._urlTemplate.replace('YYYY', urlDomain)
                  if (this._domain.indexOf('sketchfab.com') !== -1) {
                    this._transmitOptions.hook_prod = 1
                    this._transmitOptions.model = this._urlid
                  }
                  this._realInit()
                }.bind(this)
              )
              document.body.appendChild(s)
              return
            },
  
            // ready+id <---- ready+id
            //          ----> api/initialize+id
            _initializeAPIEmbed: function _initializeAPIEmbed(e) {
              // filter message from everything
              // chrome extension, faye, other iframes
              if (!e.data) return
              if (!e.data.instanceId) return
              if (this._apiId !== e.data.instanceId) return
              if (e.data.type !== 'api.ready') return
  
              var opt = e.data.options
              if (opt && opt.domain) {
                this.reload(opt.domain)
                return
              }
  
              if (e.data.error !== undefined) {
                this.error(e.data.error)
                return
              }
  
              // wait til we get an acutal message
              // in order to be sure contentWindow exists
              // and has the correct domain in case of reloading
              var domainSource = this._target.src.split('/')
              domainSource = 'https://' + domainSource[2]
              //this._domain = domainSource;
              this._client = new window.SketchfabAPIClient(
                this._target.contentWindow,
                this._apiId,
                domainSource
              )
  
              this._client.use(
                this._version,
                function(err, api) {
                  if (err) throw err
  
                  this.success.call(this, api)
                }.bind(this)
              )
  
              window.removeEventListener('message', this._claimEmbedBinded)
            },
  
            _realInit: function _realInit() {
              // special listener just for ready and instance id recuperation
              this._initializeAPIEmbedBinded = this._initializeAPIEmbed.bind(this)
              window.addEventListener('message', this._initializeAPIEmbedBinded)
  
              this._target.onload = function(evt) {
                try {
                  var title = evt.currentTarget.contentDocument.title
                  if (title.startsWith('Page not found') || title.startsWith('400 - ')) {
                    this.error.call(this, 'Model not found ' + this._urlid)
                  }
                } catch (e) {
                  // CORS error not allowing that check
                  // when accessing e.currentTarget.contentDocument
                  // so we silently fail this call.
                }
              }.bind(this)
              this._target.src = this.getEmbedURL(this._urlid, this._options)
            },
  
            success: function success(api) {
              // api ready to use
              if (this._options.success && typeof this._options.success === 'function') {
                this._options.success(api)
              }
            },
  
            error: function error(api) {
              // api error
              if (this._options.error && typeof this._options.error === 'function') {
                this._options.error(api)
              }
            },
          }
  
          /* harmony default export */ __webpack_exports__['default'] = Sketchfab
  
          /***/
        },
        /* 40 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(41)
          module.exports = __webpack_require__(7).Object.keys
  
          /***/
        },
        /* 41 */
        /***/ function(module, exports, __webpack_require__) {
          // 19.1.2.14 Object.keys(O)
          var toObject = __webpack_require__(28)
          var $keys = __webpack_require__(10)
  
          __webpack_require__(46)('keys', function() {
            return function keys(it) {
              return $keys(toObject(it))
            }
          })
  
          /***/
        },
        /* 42 */
        /***/ function(module, exports, __webpack_require__) {
          // fallback for non-array-like ES3 and non-enumerable old V8 strings
          var cof = __webpack_require__(30)
          // eslint-disable-next-line no-prototype-builtins
          module.exports = Object('z').propertyIsEnumerable(0)
            ? Object
            : function(it) {
                return cof(it) == 'String' ? it.split('') : Object(it)
              }
  
          /***/
        },
        /* 43 */
        /***/ function(module, exports, __webpack_require__) {
          // false -> Array#indexOf
          // true  -> Array#includes
          var toIObject = __webpack_require__(2)
          var toLength = __webpack_require__(44)
          var toAbsoluteIndex = __webpack_require__(45)
          module.exports = function(IS_INCLUDES) {
            return function($this, el, fromIndex) {
              var O = toIObject($this)
              var length = toLength(O.length)
              var index = toAbsoluteIndex(fromIndex, length)
              var value
              // Array#includes uses SameValueZero equality algorithm
              // eslint-disable-next-line no-self-compare
              if (IS_INCLUDES && el != el)
                while (length > index) {
                  value = O[index++]
                  // eslint-disable-next-line no-self-compare
                  if (value != value) return true
                  // Array#indexOf ignores holes, Array#includes - not
                }
              else
                for (; length > index; index++)
                  if (IS_INCLUDES || index in O) {
                    if (O[index] === el) return IS_INCLUDES || index || 0
                  }
              return !IS_INCLUDES && -1
            }
          }
  
          /***/
        },
        /* 44 */
        /***/ function(module, exports, __webpack_require__) {
          // 7.1.15 ToLength
          var toInteger = __webpack_require__(15)
          var min = Math.min
          module.exports = function(it) {
            return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0 // pow(2, 53) - 1 == 9007199254740991
          }
  
          /***/
        },
        /* 45 */
        /***/ function(module, exports, __webpack_require__) {
          var toInteger = __webpack_require__(15)
          var max = Math.max
          var min = Math.min
          module.exports = function(index, length) {
            index = toInteger(index)
            return index < 0 ? max(index + length, 0) : min(index, length)
          }
  
          /***/
        },
        /* 46 */
        /***/ function(module, exports, __webpack_require__) {
          // most Object methods by ES6 should accept primitives
          var $export = __webpack_require__(19)
          var core = __webpack_require__(7)
          var fails = __webpack_require__(9)
          module.exports = function(KEY, exec) {
            var fn = (core.Object || {})[KEY] || Object[KEY]
            var exp = {}
            exp[KEY] = exec(fn)
            $export(
              $export.S +
                $export.F *
                  fails(function() {
                    fn(1)
                  }),
              'Object',
              exp
            )
          }
  
          /***/
        },
        /* 47 */
        /***/ function(module, exports, __webpack_require__) {
          // optional / simple context binding
          var aFunction = __webpack_require__(48)
          module.exports = function(fn, that, length) {
            aFunction(fn)
            if (that === undefined) return fn
            switch (length) {
              case 1:
                return function(a) {
                  return fn.call(that, a)
                }
              case 2:
                return function(a, b) {
                  return fn.call(that, a, b)
                }
              case 3:
                return function(a, b, c) {
                  return fn.call(that, a, b, c)
                }
            }
            return function(/* ...args */) {
              return fn.apply(that, arguments)
            }
          }
  
          /***/
        },
        /* 48 */
        /***/ function(module, exports) {
          module.exports = function(it) {
            if (typeof it != 'function') throw TypeError(it + ' is not a function!')
            return it
          }
  
          /***/
        },
        /* 49 */
        /***/ function(module, exports, __webpack_require__) {
          module.exports = { default: __webpack_require__(50), __esModule: true }
  
          /***/
        },
        /* 50 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(51)
          __webpack_require__(57)
          module.exports = __webpack_require__(24).f('iterator')
  
          /***/
        },
        /* 51 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          var $at = __webpack_require__(52)(true)
  
          // 21.1.3.27 String.prototype[@@iterator]()
          __webpack_require__(34)(
            String,
            'String',
            function(iterated) {
              this._t = String(iterated) // target
              this._i = 0 // next index
              // 21.1.5.2.1 %StringIteratorPrototype%.next()
            },
            function() {
              var O = this._t
              var index = this._i
              var point
              if (index >= O.length) return { value: undefined, done: true }
              point = $at(O, index)
              this._i += point.length
              return { value: point, done: false }
            }
          )
  
          /***/
        },
        /* 52 */
        /***/ function(module, exports, __webpack_require__) {
          var toInteger = __webpack_require__(15)
          var defined = __webpack_require__(14)
          // true  -> String#at
          // false -> String#codePointAt
          module.exports = function(TO_STRING) {
            return function(that, pos) {
              var s = String(defined(that))
              var i = toInteger(pos)
              var l = s.length
              var a, b
              if (i < 0 || i >= l) return TO_STRING ? '' : undefined
              a = s.charCodeAt(i)
              return a < 0xd800 ||
                a > 0xdbff ||
                i + 1 === l ||
                (b = s.charCodeAt(i + 1)) < 0xdc00 ||
                b > 0xdfff
                ? TO_STRING
                  ? s.charAt(i)
                  : a
                : TO_STRING
                  ? s.slice(i, i + 2)
                  : ((a - 0xd800) << 10) + (b - 0xdc00) + 0x10000
            }
          }
  
          /***/
        },
        /* 53 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          var create = __webpack_require__(36)
          var descriptor = __webpack_require__(13)
          var setToStringTag = __webpack_require__(23)
          var IteratorPrototype = {}
  
          // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
          __webpack_require__(3)(IteratorPrototype, __webpack_require__(6)('iterator'), function() {
            return this
          })
  
          module.exports = function(Constructor, NAME, next) {
            Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) })
            setToStringTag(Constructor, NAME + ' Iterator')
          }
  
          /***/
        },
        /* 54 */
        /***/ function(module, exports, __webpack_require__) {
          var dP = __webpack_require__(4)
          var anObject = __webpack_require__(12)
          var getKeys = __webpack_require__(10)
  
          module.exports = __webpack_require__(5)
            ? Object.defineProperties
            : function defineProperties(O, Properties) {
                anObject(O)
                var keys = getKeys(Properties)
                var length = keys.length
                var i = 0
                var P
                while (length > i) dP.f(O, (P = keys[i++]), Properties[P])
                return O
              }
  
          /***/
        },
        /* 55 */
        /***/ function(module, exports, __webpack_require__) {
          var document = __webpack_require__(0).document
          module.exports = document && document.documentElement
  
          /***/
        },
        /* 56 */
        /***/ function(module, exports, __webpack_require__) {
          // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
          var has = __webpack_require__(1)
          var toObject = __webpack_require__(28)
          var IE_PROTO = __webpack_require__(16)('IE_PROTO')
          var ObjectProto = Object.prototype
  
          module.exports =
            Object.getPrototypeOf ||
            function(O) {
              O = toObject(O)
              if (has(O, IE_PROTO)) return O[IE_PROTO]
              if (typeof O.constructor == 'function' && O instanceof O.constructor) {
                return O.constructor.prototype
              }
              return O instanceof Object ? ObjectProto : null
            }
  
          /***/
        },
        /* 57 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(58)
          var global = __webpack_require__(0)
          var hide = __webpack_require__(3)
          var Iterators = __webpack_require__(22)
          var TO_STRING_TAG = __webpack_require__(6)('toStringTag')
  
          var DOMIterables = (
            'CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
            'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
            'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
            'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
            'TextTrackList,TouchList'
          ).split(',')
  
          for (var i = 0; i < DOMIterables.length; i++) {
            var NAME = DOMIterables[i]
            var Collection = global[NAME]
            var proto = Collection && Collection.prototype
            if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME)
            Iterators[NAME] = Iterators.Array
          }
  
          /***/
        },
        /* 58 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          var addToUnscopables = __webpack_require__(59)
          var step = __webpack_require__(60)
          var Iterators = __webpack_require__(22)
          var toIObject = __webpack_require__(2)
  
          // 22.1.3.4 Array.prototype.entries()
          // 22.1.3.13 Array.prototype.keys()
          // 22.1.3.29 Array.prototype.values()
          // 22.1.3.30 Array.prototype[@@iterator]()
          module.exports = __webpack_require__(34)(
            Array,
            'Array',
            function(iterated, kind) {
              this._t = toIObject(iterated) // target
              this._i = 0 // next index
              this._k = kind // kind
              // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
            },
            function() {
              var O = this._t
              var kind = this._k
              var index = this._i++
              if (!O || index >= O.length) {
                this._t = undefined
                return step(1)
              }
              if (kind == 'keys') return step(0, index)
              if (kind == 'values') return step(0, O[index])
              return step(0, [index, O[index]])
            },
            'values'
          )
  
          // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
          Iterators.Arguments = Iterators.Array
  
          addToUnscopables('keys')
          addToUnscopables('values')
          addToUnscopables('entries')
  
          /***/
        },
        /* 59 */
        /***/ function(module, exports) {
          module.exports = function() {
            /* empty */
          }
  
          /***/
        },
        /* 60 */
        /***/ function(module, exports) {
          module.exports = function(done, value) {
            return { value: value, done: !!done }
          }
  
          /***/
        },
        /* 61 */
        /***/ function(module, exports, __webpack_require__) {
          module.exports = { default: __webpack_require__(62), __esModule: true }
  
          /***/
        },
        /* 62 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(63)
          __webpack_require__(69)
          __webpack_require__(70)
          __webpack_require__(71)
          module.exports = __webpack_require__(7).Symbol
  
          /***/
        },
        /* 63 */
        /***/ function(module, exports, __webpack_require__) {
          'use strict'
  
          // ECMAScript 6 symbols shim
          var global = __webpack_require__(0)
          var has = __webpack_require__(1)
          var DESCRIPTORS = __webpack_require__(5)
          var $export = __webpack_require__(19)
          var redefine = __webpack_require__(35)
          var META = __webpack_require__(64).KEY
          var $fails = __webpack_require__(9)
          var shared = __webpack_require__(17)
          var setToStringTag = __webpack_require__(23)
          var uid = __webpack_require__(11)
          var wks = __webpack_require__(6)
          var wksExt = __webpack_require__(24)
          var wksDefine = __webpack_require__(25)
          var enumKeys = __webpack_require__(65)
          var isArray = __webpack_require__(66)
          var anObject = __webpack_require__(12)
          var isObject = __webpack_require__(8)
          var toIObject = __webpack_require__(2)
          var toPrimitive = __webpack_require__(20)
          var createDesc = __webpack_require__(13)
          var _create = __webpack_require__(36)
          var gOPNExt = __webpack_require__(67)
          var $GOPD = __webpack_require__(68)
          var $DP = __webpack_require__(4)
          var $keys = __webpack_require__(10)
          var gOPD = $GOPD.f
          var dP = $DP.f
          var gOPN = gOPNExt.f
          var $Symbol = global.Symbol
          var $JSON = global.JSON
          var _stringify = $JSON && $JSON.stringify
          var PROTOTYPE = 'prototype'
          var HIDDEN = wks('_hidden')
          var TO_PRIMITIVE = wks('toPrimitive')
          var isEnum = {}.propertyIsEnumerable
          var SymbolRegistry = shared('symbol-registry')
          var AllSymbols = shared('symbols')
          var OPSymbols = shared('op-symbols')
          var ObjectProto = Object[PROTOTYPE]
          var USE_NATIVE = typeof $Symbol == 'function'
          var QObject = global.QObject
          // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
          var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild
  
          // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
          var setSymbolDesc =
            DESCRIPTORS &&
            $fails(function() {
              return (
                _create(
                  dP({}, 'a', {
                    get: function() {
                      return dP(this, 'a', { value: 7 }).a
                    },
                  })
                ).a != 7
              )
            })
              ? function(it, key, D) {
                  var protoDesc = gOPD(ObjectProto, key)
                  if (protoDesc) delete ObjectProto[key]
                  dP(it, key, D)
                  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc)
                }
              : dP
  
          var wrap = function(tag) {
            var sym = (AllSymbols[tag] = _create($Symbol[PROTOTYPE]))
            sym._k = tag
            return sym
          }
  
          var isSymbol =
            USE_NATIVE && typeof $Symbol.iterator == 'symbol'
              ? function(it) {
                  return typeof it == 'symbol'
                }
              : function(it) {
                  return it instanceof $Symbol
                }
  
          var $defineProperty = function defineProperty(it, key, D) {
            if (it === ObjectProto) $defineProperty(OPSymbols, key, D)
            anObject(it)
            key = toPrimitive(key, true)
            anObject(D)
            if (has(AllSymbols, key)) {
              if (!D.enumerable) {
                if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}))
                it[HIDDEN][key] = true
              } else {
                if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false
                D = _create(D, { enumerable: createDesc(0, false) })
              }
              return setSymbolDesc(it, key, D)
            }
            return dP(it, key, D)
          }
          var $defineProperties = function defineProperties(it, P) {
            anObject(it)
            var keys = enumKeys((P = toIObject(P)))
            var i = 0
            var l = keys.length
            var key
            while (l > i) $defineProperty(it, (key = keys[i++]), P[key])
            return it
          }
          var $create = function create(it, P) {
            return P === undefined ? _create(it) : $defineProperties(_create(it), P)
          }
          var $propertyIsEnumerable = function propertyIsEnumerable(key) {
            var E = isEnum.call(this, (key = toPrimitive(key, true)))
            if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false
            return E ||
              !has(this, key) ||
              !has(AllSymbols, key) ||
              (has(this, HIDDEN) && this[HIDDEN][key])
              ? E
              : true
          }
          var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
            it = toIObject(it)
            key = toPrimitive(key, true)
            if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return
            var D = gOPD(it, key)
            if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))
              D.enumerable = true
            return D
          }
          var $getOwnPropertyNames = function getOwnPropertyNames(it) {
            var names = gOPN(toIObject(it))
            var result = []
            var i = 0
            var key
            while (names.length > i) {
              if (!has(AllSymbols, (key = names[i++])) && key != HIDDEN && key != META)
                result.push(key)
            }
            return result
          }
          var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
            var IS_OP = it === ObjectProto
            var names = gOPN(IS_OP ? OPSymbols : toIObject(it))
            var result = []
            var i = 0
            var key
            while (names.length > i) {
              if (has(AllSymbols, (key = names[i++])) && (IS_OP ? has(ObjectProto, key) : true))
                result.push(AllSymbols[key])
            }
            return result
          }
  
          // 19.4.1.1 Symbol([description])
          if (!USE_NATIVE) {
            $Symbol = function Symbol() {
              if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!')
              var tag = uid(arguments.length > 0 ? arguments[0] : undefined)
              var $set = function(value) {
                if (this === ObjectProto) $set.call(OPSymbols, value)
                if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false
                setSymbolDesc(this, tag, createDesc(1, value))
              }
              if (DESCRIPTORS && setter)
                setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set })
              return wrap(tag)
            }
            redefine($Symbol[PROTOTYPE], 'toString', function toString() {
              return this._k
            })
  
            $GOPD.f = $getOwnPropertyDescriptor
            $DP.f = $defineProperty
            __webpack_require__(38).f = gOPNExt.f = $getOwnPropertyNames
            __webpack_require__(26).f = $propertyIsEnumerable
            __webpack_require__(37).f = $getOwnPropertySymbols
  
            if (DESCRIPTORS && !__webpack_require__(21)) {
              redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true)
            }
  
            wksExt.f = function(name) {
              return wrap(wks(name))
            }
          }
  
          $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol })
  
          for (
            var es6Symbols = // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
              'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(
                ','
              ),
              j = 0;
            es6Symbols.length > j;
  
          )
            wks(es6Symbols[j++])
  
          for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k; )
            wksDefine(wellKnownSymbols[k++])
  
          $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
            // 19.4.2.1 Symbol.for(key)
            for: function(key) {
              return has(SymbolRegistry, (key += ''))
                ? SymbolRegistry[key]
                : (SymbolRegistry[key] = $Symbol(key))
            },
            // 19.4.2.5 Symbol.keyFor(sym)
            keyFor: function keyFor(sym) {
              if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!')
              for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key
            },
            useSetter: function() {
              setter = true
            },
            useSimple: function() {
              setter = false
            },
          })
  
          $export($export.S + $export.F * !USE_NATIVE, 'Object', {
            // 19.1.2.2 Object.create(O [, Properties])
            create: $create,
            // 19.1.2.4 Object.defineProperty(O, P, Attributes)
            defineProperty: $defineProperty,
            // 19.1.2.3 Object.defineProperties(O, Properties)
            defineProperties: $defineProperties,
            // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
            getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
            // 19.1.2.7 Object.getOwnPropertyNames(O)
            getOwnPropertyNames: $getOwnPropertyNames,
            // 19.1.2.8 Object.getOwnPropertySymbols(O)
            getOwnPropertySymbols: $getOwnPropertySymbols,
          })
  
          // 24.3.2 JSON.stringify(value [, replacer [, space]])
          $JSON &&
            $export(
              $export.S +
                $export.F *
                  (!USE_NATIVE ||
                    $fails(function() {
                      var S = $Symbol()
                      // MS Edge converts symbol values to JSON as {}
                      // WebKit converts symbol values to JSON as null
                      // V8 throws on boxed symbols
                      return (
                        _stringify([S]) != '[null]' ||
                        _stringify({ a: S }) != '{}' ||
                        _stringify(Object(S)) != '{}'
                      )
                    })),
              'JSON',
              {
                stringify: function stringify(it) {
                  var args = [it]
                  var i = 1
                  var replacer, $replacer
                  while (arguments.length > i) args.push(arguments[i++])
                  $replacer = replacer = args[1]
                  if ((!isObject(replacer) && it === undefined) || isSymbol(it)) return // IE8 returns string on undefined
                  if (!isArray(replacer))
                    replacer = function(key, value) {
                      if (typeof $replacer == 'function') value = $replacer.call(this, key, value)
                      if (!isSymbol(value)) return value
                    }
                  args[1] = replacer
                  return _stringify.apply($JSON, args)
                },
              }
            )
  
          // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
          $Symbol[PROTOTYPE][TO_PRIMITIVE] ||
            __webpack_require__(3)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf)
          // 19.4.3.5 Symbol.prototype[@@toStringTag]
          setToStringTag($Symbol, 'Symbol')
          // 20.2.1.9 Math[@@toStringTag]
          setToStringTag(Math, 'Math', true)
          // 24.3.3 JSON[@@toStringTag]
          setToStringTag(global.JSON, 'JSON', true)
  
          /***/
        },
        /* 64 */
        /***/ function(module, exports, __webpack_require__) {
          var META = __webpack_require__(11)('meta')
          var isObject = __webpack_require__(8)
          var has = __webpack_require__(1)
          var setDesc = __webpack_require__(4).f
          var id = 0
          var isExtensible =
            Object.isExtensible ||
            function() {
              return true
            }
          var FREEZE = !__webpack_require__(9)(function() {
            return isExtensible(Object.preventExtensions({}))
          })
          var setMeta = function(it) {
            setDesc(it, META, {
              value: {
                i: 'O' + ++id, // object ID
                w: {}, // weak collections IDs
              },
            })
          }
          var fastKey = function(it, create) {
            // return primitive with prefix
            if (!isObject(it))
              return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it
            if (!has(it, META)) {
              // can't set metadata to uncaught frozen object
              if (!isExtensible(it)) return 'F'
              // not necessary to add metadata
              if (!create) return 'E'
              // add missing metadata
              setMeta(it)
              // return object ID
            }
            return it[META].i
          }
          var getWeak = function(it, create) {
            if (!has(it, META)) {
              // can't set metadata to uncaught frozen object
              if (!isExtensible(it)) return true
              // not necessary to add metadata
              if (!create) return false
              // add missing metadata
              setMeta(it)
              // return hash weak collections IDs
            }
            return it[META].w
          }
          // add metadata on freeze-family methods calling
          var onFreeze = function(it) {
            if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it)
            return it
          }
          var meta = (module.exports = {
            KEY: META,
            NEED: false,
            fastKey: fastKey,
            getWeak: getWeak,
            onFreeze: onFreeze,
          })
  
          /***/
        },
        /* 65 */
        /***/ function(module, exports, __webpack_require__) {
          // all enumerable object keys, includes symbols
          var getKeys = __webpack_require__(10)
          var gOPS = __webpack_require__(37)
          var pIE = __webpack_require__(26)
          module.exports = function(it) {
            var result = getKeys(it)
            var getSymbols = gOPS.f
            if (getSymbols) {
              var symbols = getSymbols(it)
              var isEnum = pIE.f
              var i = 0
              var key
              while (symbols.length > i) if (isEnum.call(it, (key = symbols[i++]))) result.push(key)
            }
            return result
          }
  
          /***/
        },
        /* 66 */
        /***/ function(module, exports, __webpack_require__) {
          // 7.2.2 IsArray(argument)
          var cof = __webpack_require__(30)
          module.exports =
            Array.isArray ||
            function isArray(arg) {
              return cof(arg) == 'Array'
            }
  
          /***/
        },
        /* 67 */
        /***/ function(module, exports, __webpack_require__) {
          // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
          var toIObject = __webpack_require__(2)
          var gOPN = __webpack_require__(38).f
          var toString = {}.toString
  
          var windowNames =
            typeof window == 'object' && window && Object.getOwnPropertyNames
              ? Object.getOwnPropertyNames(window)
              : []
  
          var getWindowNames = function(it) {
            try {
              return gOPN(it)
            } catch (e) {
              return windowNames.slice()
            }
          }
  
          module.exports.f = function getOwnPropertyNames(it) {
            return windowNames && toString.call(it) == '[object Window]'
              ? getWindowNames(it)
              : gOPN(toIObject(it))
          }
  
          /***/
        },
        /* 68 */
        /***/ function(module, exports, __webpack_require__) {
          var pIE = __webpack_require__(26)
          var createDesc = __webpack_require__(13)
          var toIObject = __webpack_require__(2)
          var toPrimitive = __webpack_require__(20)
          var has = __webpack_require__(1)
          var IE8_DOM_DEFINE = __webpack_require__(31)
          var gOPD = Object.getOwnPropertyDescriptor
  
          exports.f = __webpack_require__(5)
            ? gOPD
            : function getOwnPropertyDescriptor(O, P) {
                O = toIObject(O)
                P = toPrimitive(P, true)
                if (IE8_DOM_DEFINE)
                  try {
                    return gOPD(O, P)
                  } catch (e) {
                    /* empty */
                  }
                if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P])
              }
  
          /***/
        },
        /* 69 */
        /***/ function(module, exports) {
          /***/
        },
        /* 70 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(25)('asyncIterator')
  
          /***/
        },
        /* 71 */
        /***/ function(module, exports, __webpack_require__) {
          __webpack_require__(25)('observable')
  
          /***/
        },
        /* 72 */
        /***/ function(module, __webpack_exports__, __webpack_require__) {
          'use strict'
          var API = function API(members, apiClient) {
            // populate this with method
            members.forEach(function(name) {
              this[name] = function() {
                var requestId = apiClient._requestIdCounter++
  
                var args = Array.prototype.slice.call(arguments)
                var callback
  
                if (args.length > 0) {
                  var lastArg = args[args.length - 1]
  
                  if (typeof lastArg === 'function') {
                    callback = args.pop()
                  }
                }
  
                // no callback no need to maintain a pending request
                if (callback) apiClient._pendingRequests[requestId] = callback.bind(this)
  
                apiClient._target.postMessage(
                  {
                    type: 'api.request',
                    instanceId: apiClient.getIdentifier(),
                    requestId: requestId,
                    member: name,
                    arguments: args,
                  },
                  apiClient.getDomain()
                )
              }
            }, this)
  
            this.addEventListener = function(name, callback, options) {
              // If the 'viewerready' event has already beend triggered we want to
              // execute the user's callback right away.
              if (name === 'viewerready' && apiClient.isViewerReady) {
                callback()
              }
  
              if (!apiClient._eventListeners[name]) apiClient._eventListeners[name] = []
  
              apiClient._eventListeners[name].push(callback)
              if (options && this.setListenerOptions) {
                options.name = name
                this.setListenerOptions(options)
              }
            }
  
            this.removeEventListener = function(name, callback) {
              if (!apiClient._eventListeners[name]) return
  
              var index = apiClient._eventListeners[name].indexOf(callback)
              if (index !== -1) {
                apiClient._eventListeners[name].splice(index, 1)
              }
            }
          }
  
          var APIClient = function APIClient(target, apiId, domain) {
            this._target = target
            this._requestIdCounter = 0
            this._pendingRequests = {}
            this._eventListeners = {}
            this._ready = false
            this._domain = domain
            this._instanceId = apiId
  
            this.listenServer()
          }
  
          APIClient.prototype = {
            getIdentifier: function getIdentifier() {
              return this._instanceId
            },
            getDomain: function getDomain() {
              return this._domain
            },
            setIdentifier: function setIdentifier(id) {
              this._instanceId = id
            },
            use: function use(version, callback) {
              this._version = version
              this._ready = true
  
              // we need to delay this call to be sure the server is ready
              var requestId = this._requestIdCounter++
  
              // function to initialize the api when the server will answer
              this._pendingRequests[requestId] = function(err, instanceId, members) {
                if (err) {
                  callback.call(this, err)
                } else {
                  callback.call(this, null, new API(members, this))
                }
              }.bind(this)
  
              this._target.postMessage(
                {
                  type: 'api.initialize',
                  requestId: requestId,
                  name: version,
                  instanceId: this._instanceId,
                },
                this._domain
              )
            },
  
            listenServer: function listenServer() {
              // Accept only msg of this data.type
              var msgTypeFilter = [
                //'api.ready',
                'api.initialize.result',
                'api.request.result',
                'api.event',
              ]
  
              window.addEventListener(
                'message',
                function(e) {
                  // filter message from everything
                  // chrome extension, faye, other iframes
                  if (e.origin !== this._domain || !e.data || !e.data.type || !e.data.instanceId)
                    return
  
                  // check if message is from this API sketchfab and from its instancied iframe
                  if (e.data.instanceId !== this.getIdentifier()) return
  
                  // check if we handle those type of msg
                  var msgType = e.data.type
                  if (msgTypeFilter.indexOf(msgType) === -1) return
  
                  // if it's an event dont check the request
                  if (msgType === 'api.event') {
                    var args = e.data.results
                    var eventName = args[0]
  
                    // handle listener that listen all or * events
                    if (this._eventListeners['*'] || this._eventListeners.all) {
                      ;['*', 'all'].forEach(function(eventAll) {
                        var evts = this._eventListeners[eventAll]
                        if (!evts) return
                        evts.forEach(function(callback) {
                          // callback is used as this to maintain a potential callback
                          // where the user would binded its own this
                          callback.apply(callback, args)
                        })
                      }, this)
                      return
                    }
  
                    // for localised listener ( not all events )
                    var argumentsWithoutEventName = args.slice(1)
                    var evt = this._eventListeners[eventName]
                    if (evt) {
                      // execute all callback listening eventName
                      evt.forEach(function(callback) {
                        // callback is used as this to maintain a potential callback
                        // where the user would binded its own this
                        callback.apply(callback, argumentsWithoutEventName)
                      })
                    } else if (eventName === 'viewerready') {
                      this.isViewerReady = true
                    }
                  } else {
                    var pending = this._pendingRequests[e.data.requestId]
                    if (!pending) return
                    pending.apply(null, e.data.results)
                  }
                }.bind(this)
              )
            },
          }
  
          /* harmony default export */ __webpack_exports__['a'] = APIClient
  
          /***/
        },
        /* 73 */
        /***/ function(module, __webpack_exports__, __webpack_require__) {
          'use strict'
          /* unused harmony export normalize */
          /* harmony export (immutable) */ __webpack_exports__['a'] = parse
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(
            33
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(
            __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__ = __webpack_require__(
            27
          )
          /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default = __webpack_require__.n(
            __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__
          )
  
          function normalize(parameters) {
            var destination = {}
  
            __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default()(
              parameters
            ).forEach(function(name) {
              destination[name] = !Array.isArray(parameters[name])
                ? [parameters[name]]
                : parameters[name]
            })
  
            return destination
          }
  
          function parse(queryString) {
            if (
              (typeof queryString === 'undefined'
                ? 'undefined'
                : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(
                    queryString
                  )) === 'object'
            )
              return normalize(queryString)
  
            if (queryString[0] === '?') queryString = queryString.substr(1)
  
            return queryString.split(/&+/g).reduce(function(data, part) {
              if (part.length === 0) return data
  
              var splitOffset = part.indexOf('=')
              if (splitOffset === -1) splitOffset = part.length
  
              var name = decodeURIComponent(part.substr(0, splitOffset).replace(/\+/g, '%20'))
              var value = decodeURIComponent(part.substr(splitOffset + 1).replace(/\+/g, '%20'))
  
              if (typeof data[name] === 'undefined') data[name] = []
  
              data[name].push(value)
  
              return data
            }, {})
          }
  
          /* unused harmony default export */ var _unused_webpack_default_export = {
            normalize: normalize,
            parse: parse,
          }
  
          /***/
        },
        /******/
      ]
    )['default']
  })
  //# sourceMappingURL=sketchfab-viewer-1.3.1.js.map
  