From ee90da148fb1f4c4aa61bcbbf261fec82aba00e0 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 30 Jan 2017 09:57:31 +0200 Subject: [PATCH] 0.20.3 --- dist/system-production.js | 4 ++-- dist/system-production.js.map | 2 +- dist/system-production.src.js | 13 +++++++++++-- dist/system-production.src.js.map | 2 +- dist/system.js | 6 +++--- dist/system.js.map | 2 +- dist/system.src.js | 16 ++++++++++++---- dist/system.src.js.map | 2 +- package.json | 2 +- 9 files changed, 33 insertions(+), 16 deletions(-) diff --git a/dist/system-production.js b/dist/system-production.js index e588a1da..9c35daba 100644 --- a/dist/system-production.js +++ b/dist/system-production.js @@ -1,5 +1,5 @@ /* - * SystemJS v0.20.2 Production + * SystemJS v0.20.3 Production */ -!function(){"use strict";function e(e){return J?Symbol():"@@"+e}function t(e,t){z||(t=t.replace(W?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=H&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return B?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length)||1===e.length)||"/"===o){var s,a=!n||"/"!==t[n.length];if(a?(void 0===t&&r(e,t),s=t):"/"===t[n.length+1]?"file:"!==n?(s=t.substr(n.length+2),s=s.substr(s.indexOf("/")+1)):s=t.substr(8):s=t.substr(n.length+1),"/"===o){if(!a)return t.substr(0,t.length-s.length-1)+e;r(e,t)}for(var u=s.substr(0,s.lastIndexOf("/")+1)+e,c=[],l=void 0,f=0;f1&&h(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof c))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&m(e,r,n),o[r.key]=t}var s=r.registration;if(r.registration=void 0,!s)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=s[0],r.importerSetters=[],n.moduleObj={},s[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.executingRequire=s[1],n.execute=s[2]):g(e,r,n,s[1]),n.dependencies.length||(n.linked=!0,e.trace&&m(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function y(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var s=o.records[r],a=n[r];if(a&&(!s||s.module&&a!==s.module))return a;(!s||!a&&s.module)&&(s=d(o,r,s&&s.registration));var u=s.linkRecord;return u?v(e,s,u,n,o):s})}function m(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function g(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,s=!1,a=n.call(F,function(e,t){if(!s){if("object"==typeof e)for(var r in e)"__useDefault"!==r&&(o[r]=e[r]);else o[e]=t;s=!0;for(var n=0;nthis.len&&(this.match=e,this.len=r)}}function _(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(T,r),r.match}function M(){f.call(this),this[oe]={baseURL:q,paths:{},map:{},submap:{},bundles:{},depCache:{},wasm:!1},this.registry.set("@empty",ne)}function C(e,t){var r=this[oe];if(t){var o=_(r.submap,t),i=r.submap[o],s=i&&_(i,e);if(s){var a=i[s]+e.substr(s.length);return n(a,o)||a}}var u=r.map,s=_(u,e);if(s){var a=u[s]+e.substr(s.length);return n(a,o)||a}}function D(e){return fetch(e).then(function(e){if(e.ok)return e.arrayBuffer();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(function(e){var t=new Uint8Array(e);return 0===t[0]&&97===t[1]&&115===t[2]?WebAssembly.compile(t).then(function(e){var t=new WebAssembly.Instance(e,{});return new c(t.exports)}):new TextDecoder("utf-8").decode(t)})}function N(e,t){return new Promise(function(r,n){return I(e,"anonymous",void 0,function(){t(),r()},n)})}function A(e,t){var r=this[oe],n=r.wasm,o=r.bundles[e];if(o){var i=this,s=i.resolveSync(o,void 0);if(i.registry.has(s))return;return pe[s]||(pe[s]=N(s,t).then(function(){i.registry.has(s)||i.registry.set(s,i.newModule({})),delete pe[s]}))}var a=r.depCache[e];if(a)for(var u=n?fetch:P,c=0;c1&&h(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof c))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&m(e,r,n),o[r.key]=t}var s=r.registration;if(r.registration=void 0,!s)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=s[0],r.importerSetters=[],n.moduleObj={},s[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.executingRequire=s[1],n.execute=s[2]):g(e,r,n,s[1]),n.dependencies.length||(n.linked=!0,e.trace&&m(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function y(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var s=o.records[r],a=n[r];if(a&&(!s||s.module&&a!==s.module))return a;(!s||!a&&s.module)&&(s=d(o,r,s&&s.registration));var u=s.linkRecord;return u?v(e,s,u,n,o):s})}function m(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function g(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,s=!1,a=n.call(J,function(e,t){if(!s){if("object"==typeof e)for(var r in e)"__useDefault"!==r&&(o[r]=e[r]);else o[e]=t;s=!0;for(var n=0;nthis.len&&(this.match=e,this.len=r)}}function _(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(M,r),r.match}function C(){f.call(this),this[se]={baseURL:z,paths:{},map:{},submap:{},bundles:{},depCache:{},wasm:!1},this.registry.set("@empty",ie)}function D(e,t){var r=this[se];if(t){var o=_(r.submap,t),i=r.submap[o],s=i&&_(i,e);if(s){var a=i[s]+e.substr(s.length);return n(a,o)||a}}var u=r.map,s=_(u,e);if(s){var a=u[s]+e.substr(s.length);return n(a,o)||a}}function N(e){return fetch(e).then(function(e){if(e.ok)return e.arrayBuffer();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(function(e){var t=new Uint8Array(e);return 0===t[0]&&97===t[1]&&115===t[2]?WebAssembly.compile(t).then(function(e){var t=new WebAssembly.Instance(e,{});return new c(t.exports)}):new TextDecoder("utf-8").decode(t)})}function A(e,t){return new Promise(function(r,n){return U(e,"anonymous",void 0,function(){t(),r()},n)})}function q(e,t){var r=this[se],n=r.wasm,o=r.bundles[e];if(o){var i=this,s=i.resolveSync(o,void 0);if(i.registry.has(s))return;return ve[s]||(ve[s]=A(s,t).then(function(){i.registry.has(s)||i.registry.set(s,i.newModule({})),delete ve[s]}))}var a=r.depCache[e];if(a)for(var u=n?fetch:L,c=0;c skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\n/* systemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.bundles),\n map: map,\n wasm: config.wasm\n };\n}; */\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n return new TextDecoder('utf-8').decode(bytes);\n });\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm)\n return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]} \ No newline at end of file +{"version":3,"file":"system-production.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/systemjs-production-loader.js","../src/system-production.js"],"names":["resolvedPromise","addToError","RegisterLoader","global","SystemJSProductionLoader","createSymbol","name","hasSymbol","Symbol","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","isBrowser","replace","isWindows","err","message","errArgs","fileName","Error","lineNumber","stack","originalErr","isNode","throwResolveError","RangeError","relUrl","parentUrl","resolveIfNotPlain","parentProtocol","substr","indexOf","firstChar","secondChar","length","pathname","parentIsPlain","undefined","segmented","lastIndexOf","output","segmentIndex","i","pop","push","join","protocolIndex","match","arrayValues","arr","values","iterator","iterable","keys","Object","keyIndex","next","value","done","Loader","this","registry","Registry","ensureInstantiated","module","ModuleNamespace","TypeError","ensureResolution","resolvedKey","REGISTRY","_registry","baseObject","defineProperty","BASE_OBJECT","forEach","extendNamespace","key","enumerable","get","call","REGISTER_INTERNAL","lastRegister","records","trace","createLoadRecord","state","registration","importerSetters","linkRecord","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","linked","error","resolveInstantiate","loader","parentKey","Promise","resolve","load","instantiate","then","link","createProcessAnonRegister","INSTANTIATE","instantiation","traceLoad","default","__useDefault","registerDeclarative","catch","resolveInstantiateDep","traceDepMap","loads","deps","depMap","declare","locked","declared","p","ContextualLoader","exports","instantiateDeps","seen","depsInstantiatePromises","Array","all","setter","deepDepsInstantiatePromises","depLoad","depLink","clearLoadErrors","index","setterIndex","splice","id","ensureEvaluate","doEvaluate","makeDynamicRequire","declarativeExecute","configurable","set","require","dynamicExecute","__esModule","hasOwnProperty","nullContext","e","isModule","m","hasStringTag","toStringTag","prototype","toString","extend","a","b","preloadScript","url","supportsPreload","supportsPrefetch","preloadImage","Image","src","document","createElement","rel","as","href","head","appendChild","removeChild","workerImport","reject","importScripts","scriptLoad","crossOrigin","integrity","cleanup","loadingScripts","script","removeEventListener","isWorker","type","charset","async","addEventListener","applyPaths","baseURL","paths","mapMatch","getMapMatch","target","resolved","baseURI","checkMap","curLen","split","len","map","bestMatch","CONFIG","submap","bundles","depCache","wasm","emptyModule","plainResolve","config","parent","instantiateIfWasm","fetch","res","ok","arrayBuffer","status","statusText","fetched","bytes","Uint8Array","WebAssembly","compile","wasmModule","Instance","TextDecoder","decode","doScriptLoad","processAnonRegister","coreInstantiate","bundle","bundleUrl","resolveSync","has","loadedBundles","newModule","preloadFn","sourceOrModule","eval","window","process","versions","node","platform","envGlobal","self","getElementsByTagName","bases","location","cwd","constructor","import","RESOLVE_INSTANTIATE","RESOLVE","iteratorSupport","entries","namespace","delete","create","instantiated","register","registerDynamic","freeze","PLAIN_RESOLVE","PLAIN_RESOLVE_SYNC","relList","supports","onerror","msg","apply","arguments","plainResolveSync","systemJSPrototype","bindings","cfg","val","v","resolvedParent","concat","version","System","SystemJS"],"mappings":"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","sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript, isModule } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.isModule = isModule;\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\n/* systemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.bundles),\n map: map,\n wasm: config.wasm\n };\n}; */\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n return new TextDecoder('utf-8').decode(bytes);\n });\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm)\n return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]} \ No newline at end of file diff --git a/dist/system-production.src.js b/dist/system-production.src.js index 6e6f01a2..a754a354 100644 --- a/dist/system-production.src.js +++ b/dist/system-production.src.js @@ -1,5 +1,5 @@ /* - * SystemJS v0.20.2 Production + * SystemJS v0.20.3 Production */ (function () { 'use strict'; @@ -1148,6 +1148,13 @@ var emptyModule = new ModuleNamespace({}); +var hasStringTag; +function isModule (m) { + if (hasStringTag === undefined) + hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag; + return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]'; +} + var CONFIG = createSymbol('loader-config'); var PLAIN_RESOLVE = createSymbol('plain-resolve'); @@ -1383,6 +1390,8 @@ systemJSPrototype.newModule = function (bindings) { return new ModuleNamespace(bindings); }; +systemJSPrototype.isModule = isModule; + systemJSPrototype.resolveSync = function (key, parentKey) { var resolved = resolveIfNotPlain(key, parentKey || baseURI); if (resolved !== undefined) @@ -1653,7 +1662,7 @@ function coreInstantiate (key, processAnonRegister) { return doScriptLoad(key, processAnonRegister); } -SystemJSProductionLoader$1.prototype.version = "0.20.2 Production"; +SystemJSProductionLoader$1.prototype.version = "0.20.3 Production"; var System = new SystemJSProductionLoader$1(); diff --git a/dist/system-production.src.js.map b/dist/system-production.src.js.map index 244a4a85..c4fee1f6 100644 --- a/dist/system-production.src.js.map +++ b/dist/system-production.src.js.map @@ -1 +1 @@ -{"version":3,"file":"system-production.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/systemjs-production-loader.js","../src/system-production.js"],"sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\n/* systemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.bundles),\n map: map,\n wasm: config.wasm\n };\n}; */\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n return new TextDecoder('utf-8').decode(bytes);\n });\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm)\n return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["resolvedPromise","addToError","RegisterLoader","global","SystemJSProductionLoader"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"system-production.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/systemjs-production-loader.js","../src/system-production.js"],"sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript, isModule } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.isModule = isModule;\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\n/* systemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.bundles),\n map: map,\n wasm: config.wasm\n };\n}; */\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n return new TextDecoder('utf-8').decode(bytes);\n });\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm)\n return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["resolvedPromise","addToError","RegisterLoader","global","SystemJSProductionLoader"],"mappings":"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"} \ No newline at end of file diff --git a/dist/system.js b/dist/system.js index 553e8d3c..56888c72 100644 --- a/dist/system.js +++ b/dist/system.js @@ -1,7 +1,7 @@ /* - * SystemJS v0.20.2 Dev + * SystemJS v0.20.3 Dev */ -!function(){"use strict";function e(e){return at?Symbol():"@@"+e}function t(e,t){rt||(t=t.replace(ot?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=ut&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return nt?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length)||1===e.length)||"/"===o){var a,s=!n||"/"!==t[n.length];if(s?(void 0===t&&r(e,t),a=t):"/"===t[n.length+1]?"file:"!==n?(a=t.substr(n.length+2),a=a.substr(a.indexOf("/")+1)):a=t.substr(8):a=t.substr(n.length+1),"/"===o){if(!s)return t.substr(0,t.length-a.length-1)+e;r(e,t)}for(var u=a.substr(0,a.lastIndexOf("/")+1)+e,l=[],c=void 0,f=0;f1&&g(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof l))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&v(e,r,n),o[r.key]=t}var a=r.registration;if(r.registration=void 0,!a)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=a[0],r.importerSetters=[],n.moduleObj={},a[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.executingRequire=a[1],n.execute=a[2]):y(e,r,n,a[1]),n.dependencies.length||(n.linked=!0,e.trace&&v(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function m(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var a=o.records[r],s=n[r];if(s&&(!a||a.module&&s!==a.module))return s;(!a||!s&&a.module)&&(a=d(o,r,a&&a.registration));var u=a.linkRecord;return u?h(e,a,u,n,o):a})}function v(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function y(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,a=!1,s=n.call(it,function(e,t){if(!a){if("object"==typeof e)for(var r in e)"__useDefault"!==r&&(o[r]=e[r]);else o[e]=t;a=!0;for(var n=0;nthis.len&&(this.match=e,this.len=r)}}function T(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(q,r),r.match}function z(e,t,r,n){if("file:///"===e.substr(0,8)){if(Ct)return N(e,t,r,n);throw new Error("Unable to fetch file URLs in this environment.")}e=e.replace(/#/g,"%23");var o={headers:{Accept:"application/x-es-module, */*"}};return r&&(o.integrity=r),t&&("string"==typeof t&&(o.headers.Authorization=t),o.credentials="include"),fetch(e,o).then(function(e){if(e.ok)return n?e.arrayBuffer():e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)})}function N(e,t,r,n){return new Promise(function(r,o){function i(){r(n?s.response:s.responseText)}function a(){o(new Error("XHR error: "+(s.status?" ("+s.status+(s.statusText?" "+s.statusText:"")+")":"")+" loading "+e))}e=e.replace(/#/g,"%23");var s=new XMLHttpRequest;n&&(s.responseType="arraybuffer"),s.onreadystatechange=function(){4===s.readyState&&(0==s.status?s.response?i():(s.addEventListener("error",a),s.addEventListener("load",i)):200===s.status?i():a())},s.open("GET",e,!0),s.setRequestHeader&&(s.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&s.setRequestHeader("Authorization",t),s.withCredentials=!0)),s.send(null)})}function J(e,t,r,n){return"file:///"!=e.substr(0,8)?Promise.reject(new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// supported running in Node.')):(Pt=Pt||require("fs"),e=ot?e.replace(/\//g,"\\").substr(8):e.substr(7),new Promise(function(t,r){Pt.readFile(e,function(e,o){if(e)return r(e);if(n)t(o);else{var i=o+"";"\ufeff"===i[0]&&(i=i.substr(1)),t(i)}})}))}function $(){throw new Error("No fetch method is defined for this environment.")}function B(){return{pluginKey:void 0,pluginArgument:void 0,pluginModule:void 0,packageKey:void 0,packageConfig:void 0,load:void 0}}function W(e,t,r){var n=B();if(r){var o;t.pluginFirst?-1!==(o=r.lastIndexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(0,o)):-1!==(o=r.indexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(o+1)),n.packageKey=T(t.packages,r),n.packageKey&&(n.packageConfig=t.packages[n.packageKey])}return n}function G(e,t){var r=this[kt],n=B(),o=W(this,r,t),i=this;return Promise.resolve().then(function(){var r=e.lastIndexOf("#?");if(-1===r)return Promise.resolve(e);var n=pe.call(i,e.substr(r+2));return ge.call(i,n,t,!0).then(function(t){return t?e.substr(0,r):"@empty"})}).then(function(e){var a=te(r.pluginFirst,e);return a?(n.pluginKey=a.plugin,Promise.all([Q.call(i,r,a.argument,o&&o.pluginArgument||t,n,o,!0),i.resolve(a.plugin,t)]).then(function(e){if(n.pluginArgument=e[0],n.pluginKey=e[1],n.pluginArgument===n.pluginKey)throw new Error("Plugin "+n.pluginArgument+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");return re(r.pluginFirst,e[0],e[1])})):Q.call(i,r,e,o&&o.pluginArgument||t,n,o,!1)}).then(function(e){return he.call(i,e,t,o)}).then(function(e){return ee.call(i,r,e,n),n.pluginKey||!n.load.loader?e:i.resolve(n.load.loader,e).then(function(t){return n.pluginKey=t,n.pluginArgument=e,e})}).then(function(e){return i[xt][e]=n,e})}function H(e,t){var r=te(e.pluginFirst,t);if(r){var n=H.call(this,e,r.plugin);return re(e.pluginFirst,X.call(this,e,r.argument,void 0,!1),n)}return X.call(this,e,t,void 0,!1)}function Z(e,t){var r=this[kt],n=B(),o=o||W(this,r,t),i=te(r.pluginFirst,e);return i?(n.pluginKey=Z.call(this,i.plugin,t),re(r.pluginFirst,Y.call(this,r,i.argument,o.pluginArgument||t,n,o,!!n.pluginKey),n.pluginKey)):Y.call(this,r,e,o.pluginArgument||t,n,o,!!n.pluginKey)}function X(e,t,r,o){var i=n(t,r||tt);if(i)return U(e.baseURL,e.paths,i);if(o){var a=T(e.map,t);if(a&&(t=e.map[a]+t.substr(a.length),i=n(t,tt)))return U(e.baseURL,e.paths,i)}return this.registry.has(t)?t:"@node/"===t.substr(0,6)?t:U(e.baseURL,e.paths,t)}function Y(e,t,r,n,o,i){if(o&&o.packageConfig&&"."!==t[0]){var a=o.packageConfig.map,s=a&&T(a,t);if(s&&"string"==typeof a[s]){var u=ae(this,e,o.packageConfig,o.packageKey,s,t,n,i);if(u)return u}}var l=X.call(this,e,t,r,!0),c=ce(e,l);if(n.packageKey=c&&c.packageKey||T(e.packages,l),!n.packageKey)return l;if(-1!==e.packageConfigKeys.indexOf(l))return n.packageKey=void 0,l;n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=ke());var f=l.substr(n.packageKey.length+1);return oe(this,e,n.packageConfig,n.packageKey,f,n,i)}function Q(e,t,r,n,o,i){var a=this;return bt.then(function(){if(o&&o.packageConfig&&"./"!==t.substr(0,2)){var r=o.packageConfig.map,s=r&&T(r,t);if(s)return ue(a,e,o.packageConfig,o.packageKey,s,t,n,i)}return bt}).then(function(o){if(o)return o;var s=X.call(a,e,t,r,!0),u=ce(e,s);if(n.packageKey=u&&u.packageKey||T(e.packages,s),!n.packageKey)return Promise.resolve(s);if(-1!==e.packageConfigKeys.indexOf(s))return n.packageKey=void 0,n.load=V(),n.load.format="json",Promise.resolve(s);n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=ke());var l=u&&!n.packageConfig.configured;return(l?fe(a,e,u.configPath,n):bt).then(function(){var t=s.substr(n.packageKey.length+1);return se(a,e,n.packageConfig,n.packageKey,t,n,i)})})}function V(){return{extension:"",deps:void 0,format:void 0,loader:void 0,scriptLoad:void 0,globals:void 0,nonce:void 0,integrity:void 0,sourceMap:void 0,exports:void 0,encapsulateGlobal:!1,crossOrigin:void 0,cjsRequireDetection:!0,cjsDeferDepsExecute:!1,esModule:!1}}function ee(e,t,r){r.load=r.load||V();var n,o=0;for(var i in e.meta)if(n=i.indexOf("*"),-1!==n&&i.substr(0,n)===t.substr(0,n)&&i.substr(n+1)===t.substr(t.length-i.length+n+1)){var a=i.split("/").length;a>o&&(o=a),A(r.load,e.meta[i],o!==a)}if(e.meta[t]&&A(r.load,e.meta[t],!1),r.packageKey){var s=t.substr(r.packageKey.length+1),u={};if(r.packageConfig.meta){var o=0;de(r.packageConfig.meta,s,function(e,t,r){r>o&&(o=r),A(u,t,r&&o>r)}),A(r.load,u,!1)}r.packageConfig.format&&!r.pluginKey&&(r.load.format=r.load.format||r.packageConfig.format)}}function te(e,t){var r,n,o=e?t.indexOf("!"):t.lastIndexOf("!");return-1!==o?(e?(r=t.substr(o+1),n=t.substr(0,o)):(r=t.substr(0,o),n=t.substr(o+1)||r.substr(r.lastIndexOf(".")+1)),{argument:r,plugin:n}):void 0}function re(e,t,r){return e?r+"!"+t:t+"!"+r}function ne(e,t,r,n,o){if(!n||!t.defaultExtension||"/"===n[n.length-1]||o)return n;var i=!1;if(t.meta&&de(t.meta,n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),!i&&e.meta&&de(e.meta,r+"/"+n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),i)return n;var a="."+t.defaultExtension;return n.substr(n.length-a.length)!==a?n+a:n}function oe(e,t,r,n,o,i,a){if(!o){if(!r.main)return n;o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}if(r.map){var s="./"+o,u=T(r.map,s);if(u||(s="./"+ne(e,r,n,o,a),s!=="./"+o&&(u=T(r.map,s))),u){var l=ae(e,t,r,n,u,s,i,a);if(l)return l}}return n+"/"+ne(e,r,n,o,a)}function ie(e,t,r){return t.substr(0,e.length)===e&&r.length>e.length?!1:!0}function ae(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("object"==typeof u)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+n);if(ie(o,u,i)&&"string"==typeof u)return Y.call(this,t,u+i.substr(o.length),n+"/",a,a,s)}function se(e,t,r,n,o,i,a){if(!o){if(!r.main)return Promise.resolve(n);o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}var s,u;return r.map&&(s="./"+o,u=T(r.map,s),u||(s="./"+ne(e,r,n,o,a),s!=="./"+o&&(u=T(r.map,s)))),(u?ue(e,t,r,n,u,s,i,a):bt).then(function(t){return Promise.resolve(t?t:n+"/"+ne(e,r,n,o,a))})}function ue(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("string"==typeof u)return ie(o,u,i)?Q.call(e,t,u+i.substr(o.length),n+"/",a,a,s).then(function(t){return he.call(e,t,n+"/",a)}):bt;var l=[],c=[];for(var d in u){var p=pe(d);c.push({condition:p,map:u[d]}),l.push(f.prototype.import.call(e,p.module,n))}return Promise.all(l).then(function(e){for(var t=0;t1?"object"==typeof o?r[n]=ve(o,t-1):"packageConfig"!==n&&(r[n]=o):r[n]=o}return r}function ye(e,t){var r=e[t];return r instanceof Array?e[t].concat([]):"object"==typeof r?ve(r,3):e[t]}function be(e){if(e){if(-1!==wr.indexOf(e))return ye(this[kt],e);throw new Error('"'+e+'" is not a valid configuration name. Must be one of '+wr.join(", ")+".")}for(var t={},r=0;r "+o.paths[a]+" is no longer supported as wildcards are deprecated."),delete o.paths[a])}if(e.defaultJSExtensions&&_.call(o,"The defaultJSExtensions configuration option is deprecated.\n Use packages defaultExtension instead.",!0),"boolean"==typeof e.pluginFirst&&(o.pluginFirst=e.pluginFirst),e.map)for(var a in e.map){var s=e.map[a];if("string"==typeof s)o.map[a]=X.call(r,o,s,void 0,!1);else{var u=X.call(r,o,a,void 0,!0),l=o.packages[u];l||(l=o.packages[u]=ke(),l.defaultExtension=""),xe(l,{map:s},u,!1,o)}}if(e.packageConfigPaths){for(var c=[],f=0;ft.index)return!0;return!1}Mt.lastIndex=Yt.lastIndex=Qt.lastIndex=0;var r,n=[],o=[],i=[];if(e.length/e.split("\n").length<200){for(;r=Qt.exec(e);)o.push([r.index,r.index+r[0].length]);for(;r=Yt.exec(e);)t(o,r)||i.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=Mt.exec(e);)if(!t(o,r)&&!t(i,r)){var a=r[1].substr(1,r[1].length-2);if(a.match(/"|'/))continue;n.push(a)}return n}function Ae(e){if(-1===Vt.indexOf(e)){try{var t=it[e]}catch(t){Vt.push(e)}this(e,t)}}function Ie(e){if("string"==typeof e)return D(e,it);if(!(e instanceof Array))throw new Error("Global exports must be a string or array.");for(var t={},r=0;r1&&g(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof l))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&v(e,r,n),o[r.key]=t}var a=r.registration;if(r.registration=void 0,!a)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=a[0],r.importerSetters=[],n.moduleObj={},a[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.executingRequire=a[1],n.execute=a[2]):y(e,r,n,a[1]),n.dependencies.length||(n.linked=!0,e.trace&&v(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function m(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var a=o.records[r],s=n[r];if(s&&(!a||a.module&&s!==a.module))return s;(!a||!s&&a.module)&&(a=d(o,r,a&&a.registration));var u=a.linkRecord;return u?h(e,a,u,n,o):a})}function v(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function y(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,a=!1,s=n.call(at,function(e,t){if(!a){if("object"==typeof e)for(var r in e)"__useDefault"!==r&&(o[r]=e[r]);else o[e]=t;a=!0;for(var n=0;nthis.len&&(this.match=e,this.len=r)}}function z(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(q,r),r.match}function N(e,t,r,n){if("file:///"===e.substr(0,8)){if(At)return J(e,t,r,n);throw new Error("Unable to fetch file URLs in this environment.")}e=e.replace(/#/g,"%23");var o={headers:{Accept:"application/x-es-module, */*"}};return r&&(o.integrity=r),t&&("string"==typeof t&&(o.headers.Authorization=t),o.credentials="include"),fetch(e,o).then(function(e){if(e.ok)return n?e.arrayBuffer():e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)})}function J(e,t,r,n){return new Promise(function(r,o){function i(){r(n?s.response:s.responseText)}function a(){o(new Error("XHR error: "+(s.status?" ("+s.status+(s.statusText?" "+s.statusText:"")+")":"")+" loading "+e))}e=e.replace(/#/g,"%23");var s=new XMLHttpRequest;n&&(s.responseType="arraybuffer"),s.onreadystatechange=function(){4===s.readyState&&(0==s.status?s.response?i():(s.addEventListener("error",a),s.addEventListener("load",i)):200===s.status?i():a())},s.open("GET",e,!0),s.setRequestHeader&&(s.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&s.setRequestHeader("Authorization",t),s.withCredentials=!0)),s.send(null)})}function $(e,t,r,n){return"file:///"!=e.substr(0,8)?Promise.reject(new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// supported running in Node.')):(Mt=Mt||require("fs"),e=it?e.replace(/\//g,"\\").substr(8):e.substr(7),new Promise(function(t,r){Mt.readFile(e,function(e,o){if(e)return r(e);if(n)t(o);else{var i=o+"";"\ufeff"===i[0]&&(i=i.substr(1)),t(i)}})}))}function B(){throw new Error("No fetch method is defined for this environment.")}function W(){return{pluginKey:void 0,pluginArgument:void 0,pluginModule:void 0,packageKey:void 0,packageConfig:void 0,load:void 0}}function G(e,t,r){var n=W();if(r){var o;t.pluginFirst?-1!==(o=r.lastIndexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(0,o)):-1!==(o=r.indexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(o+1)),n.packageKey=z(t.packages,r),n.packageKey&&(n.packageConfig=t.packages[n.packageKey])}return n}function H(e,t){var r=this[Ot],n=W(),o=G(this,r,t),i=this;return Promise.resolve().then(function(){var r=e.lastIndexOf("#?");if(-1===r)return Promise.resolve(e);var n=ge.call(i,e.substr(r+2));return he.call(i,n,t,!0).then(function(t){return t?e.substr(0,r):"@empty"})}).then(function(e){var a=re(r.pluginFirst,e);return a?(n.pluginKey=a.plugin,Promise.all([V.call(i,r,a.argument,o&&o.pluginArgument||t,n,o,!0),i.resolve(a.plugin,t)]).then(function(e){if(n.pluginArgument=e[0],n.pluginKey=e[1],n.pluginArgument===n.pluginKey)throw new Error("Plugin "+n.pluginArgument+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");return ne(r.pluginFirst,e[0],e[1])})):V.call(i,r,e,o&&o.pluginArgument||t,n,o,!1)}).then(function(e){return me.call(i,e,t,o)}).then(function(e){return te.call(i,r,e,n),n.pluginKey||!n.load.loader?e:i.resolve(n.load.loader,e).then(function(t){return n.pluginKey=t,n.pluginArgument=e,e})}).then(function(e){return i[St][e]=n,e})}function Z(e,t){var r=re(e.pluginFirst,t);if(r){var n=Z.call(this,e,r.plugin);return ne(e.pluginFirst,Y.call(this,e,r.argument,void 0,!1),n)}return Y.call(this,e,t,void 0,!1)}function X(e,t){var r=this[Ot],n=W(),o=o||G(this,r,t),i=re(r.pluginFirst,e);return i?(n.pluginKey=X.call(this,i.plugin,t),ne(r.pluginFirst,Q.call(this,r,i.argument,o.pluginArgument||t,n,o,!!n.pluginKey),n.pluginKey)):Q.call(this,r,e,o.pluginArgument||t,n,o,!!n.pluginKey)}function Y(e,t,r,o){var i=n(t,r||rt);if(i)return U(e.baseURL,e.paths,i);if(o){var a=z(e.map,t);if(a&&(t=e.map[a]+t.substr(a.length),i=n(t,rt)))return U(e.baseURL,e.paths,i)}return this.registry.has(t)?t:"@node/"===t.substr(0,6)?t:U(e.baseURL,e.paths,t)}function Q(e,t,r,n,o,i){if(o&&o.packageConfig&&"."!==t[0]){var a=o.packageConfig.map,s=a&&z(a,t);if(s&&"string"==typeof a[s]){var u=se(this,e,o.packageConfig,o.packageKey,s,t,n,i);if(u)return u}}var l=Y.call(this,e,t,r,!0),c=fe(e,l);if(n.packageKey=c&&c.packageKey||z(e.packages,l),!n.packageKey)return l;if(-1!==e.packageConfigKeys.indexOf(l))return n.packageKey=void 0,l;n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=xe());var f=l.substr(n.packageKey.length+1);return ie(this,e,n.packageConfig,n.packageKey,f,n,i)}function V(e,t,r,n,o,i){var a=this;return kt.then(function(){if(o&&o.packageConfig&&"./"!==t.substr(0,2)){var r=o.packageConfig.map,s=r&&z(r,t);if(s)return le(a,e,o.packageConfig,o.packageKey,s,t,n,i)}return kt}).then(function(o){if(o)return o;var s=Y.call(a,e,t,r,!0),u=fe(e,s);if(n.packageKey=u&&u.packageKey||z(e.packages,s),!n.packageKey)return Promise.resolve(s);if(-1!==e.packageConfigKeys.indexOf(s))return n.packageKey=void 0,n.load=ee(),n.load.format="json",Promise.resolve(s);n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=xe());var l=u&&!n.packageConfig.configured;return(l?de(a,e,u.configPath,n):kt).then(function(){var t=s.substr(n.packageKey.length+1);return ue(a,e,n.packageConfig,n.packageKey,t,n,i)})})}function ee(){return{extension:"",deps:void 0,format:void 0,loader:void 0,scriptLoad:void 0,globals:void 0,nonce:void 0,integrity:void 0,sourceMap:void 0,exports:void 0,encapsulateGlobal:!1,crossOrigin:void 0,cjsRequireDetection:!0,cjsDeferDepsExecute:!1,esModule:!1}}function te(e,t,r){r.load=r.load||ee();var n,o=0;for(var i in e.meta)if(n=i.indexOf("*"),-1!==n&&i.substr(0,n)===t.substr(0,n)&&i.substr(n+1)===t.substr(t.length-i.length+n+1)){var a=i.split("/").length;a>o&&(o=a),I(r.load,e.meta[i],o!==a)}if(e.meta[t]&&I(r.load,e.meta[t],!1),r.packageKey){var s=t.substr(r.packageKey.length+1),u={};if(r.packageConfig.meta){var o=0;pe(r.packageConfig.meta,s,function(e,t,r){r>o&&(o=r),I(u,t,r&&o>r)}),I(r.load,u,!1)}r.packageConfig.format&&!r.pluginKey&&(r.load.format=r.load.format||r.packageConfig.format)}}function re(e,t){var r,n,o=e?t.indexOf("!"):t.lastIndexOf("!");return-1!==o?(e?(r=t.substr(o+1),n=t.substr(0,o)):(r=t.substr(0,o),n=t.substr(o+1)||r.substr(r.lastIndexOf(".")+1)),{argument:r,plugin:n}):void 0}function ne(e,t,r){return e?r+"!"+t:t+"!"+r}function oe(e,t,r,n,o){if(!n||!t.defaultExtension||"/"===n[n.length-1]||o)return n;var i=!1;if(t.meta&&pe(t.meta,n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),!i&&e.meta&&pe(e.meta,r+"/"+n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),i)return n;var a="."+t.defaultExtension;return n.substr(n.length-a.length)!==a?n+a:n}function ie(e,t,r,n,o,i,a){if(!o){if(!r.main)return n;o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}if(r.map){var s="./"+o,u=z(r.map,s);if(u||(s="./"+oe(e,r,n,o,a),s!=="./"+o&&(u=z(r.map,s))),u){var l=se(e,t,r,n,u,s,i,a);if(l)return l}}return n+"/"+oe(e,r,n,o,a)}function ae(e,t,r){return t.substr(0,e.length)===e&&r.length>e.length?!1:!0}function se(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("object"==typeof u)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+n);if(ae(o,u,i)&&"string"==typeof u)return Q.call(this,t,u+i.substr(o.length),n+"/",a,a,s)}function ue(e,t,r,n,o,i,a){if(!o){if(!r.main)return Promise.resolve(n);o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}var s,u;return r.map&&(s="./"+o,u=z(r.map,s),u||(s="./"+oe(e,r,n,o,a),s!=="./"+o&&(u=z(r.map,s)))),(u?le(e,t,r,n,u,s,i,a):kt).then(function(t){return Promise.resolve(t?t:n+"/"+oe(e,r,n,o,a))})}function le(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("string"==typeof u)return ae(o,u,i)?V.call(e,t,u+i.substr(o.length),n+"/",a,a,s).then(function(t){return me.call(e,t,n+"/",a)}):kt;var l=[],c=[];for(var d in u){var p=ge(d);c.push({condition:p,map:u[d]}),l.push(f.prototype.import.call(e,p.module,n))}return Promise.all(l).then(function(e){for(var t=0;t1?"object"==typeof o?r[n]=ye(o,t-1):"packageConfig"!==n&&(r[n]=o):r[n]=o}return r}function be(e,t){var r=e[t];return r instanceof Array?e[t].concat([]):"object"==typeof r?ye(r,3):e[t]}function we(e){if(e){if(-1!==xr.indexOf(e))return be(this[Ot],e);throw new Error('"'+e+'" is not a valid configuration name. Must be one of '+xr.join(", ")+".")}for(var t={},r=0;r "+o.paths[a]+" is no longer supported as wildcards are deprecated."),delete o.paths[a])}if(e.defaultJSExtensions&&M.call(o,"The defaultJSExtensions configuration option is deprecated.\n Use packages defaultExtension instead.",!0),"boolean"==typeof e.pluginFirst&&(o.pluginFirst=e.pluginFirst),e.map)for(var a in e.map){var s=e.map[a];if("string"==typeof s)o.map[a]=Y.call(r,o,s,void 0,!1);else{var u=Y.call(r,o,a,void 0,!0),l=o.packages[u];l||(l=o.packages[u]=xe(),l.defaultExtension=""),Oe(l,{map:s},u,!1,o)}}if(e.packageConfigPaths){for(var c=[],f=0;ft.index)return!0;return!1}Lt.lastIndex=Vt.lastIndex=er.lastIndex=0;var r,n=[],o=[],i=[];if(e.length/e.split("\n").length<200){for(;r=er.exec(e);)o.push([r.index,r.index+r[0].length]);for(;r=Vt.exec(e);)t(o,r)||i.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=Lt.exec(e);)if(!t(o,r)&&!t(i,r)){var a=r[1].substr(1,r[1].length-2);if(a.match(/"|'/))continue;n.push(a)}return n}function Ie(e){if(-1===tr.indexOf(e)){try{var t=at[e]}catch(t){tr.push(e)}this(e,t)}}function Fe(e){if("string"==typeof e)return T(e,at);if(!(e instanceof Array))throw new Error("Global exports must be a string or array.");for(var t={},r=0;r1;)n=o.shift(),e=e[n]=e[n]||{};n=o.shift(),void 0===e[n]&&(e[n]=r)}function Ye(e,t){var r=e.match(hr);if(r)for(var n=r[0].match(mr),o=0;o1;)n=o.shift(),e=e[n]=e[n]||{};n=o.shift(),void 0===e[n]&&(e[n]=r)}function Qe(e,t){var r=e.match(vr);if(r)for(var n=r[0].match(yr),o=0;o skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { isWindows } from './common.js';\n\n/*\n * Source loading\n */\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\n // fetch doesn't support file:/// urls\n if (url.substr(0, 8) === 'file:///') {\n if (hasXhr)\n return xhrFetch(url, authorization, integrity, asBuffer);\n else\n throw new Error('Unable to fetch file URLs in this environment.');\n }\n\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var opts = {\n // NB deprecate\n headers: { Accept: 'application/x-es-module, */*' }\n };\n\n if (integrity)\n opts.integrity = integrity;\n\n if (authorization) {\n if (typeof authorization == 'string')\n opts.headers['Authorization'] = authorization;\n opts.credentials = 'include';\n }\n\n return fetch(url, opts)\n .then(function(res) {\n if (res.ok)\n return asBuffer ? res.arrayBuffer() : res.text();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n });\n}\n\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\n return new Promise(function (resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var xhr = new XMLHttpRequest();\n if (asBuffer)\n xhr.responseType = 'arraybuffer';\n function load() {\n resolve(asBuffer ? xhr.response : xhr.responseText);\n }\n function error() {\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // in Chrome on file:/// URLs, status is 0\n if (xhr.status == 0) {\n if (xhr.response) {\n load();\n }\n else {\n // when responseText is empty, wait for load or error event\n // to inform if it is a 404 or empty file\n xhr.addEventListener('error', error);\n xhr.addEventListener('load', load);\n }\n }\n else if (xhr.status === 200) {\n load();\n }\n else {\n error();\n }\n }\n };\n xhr.open(\"GET\", url, true);\n\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\n // can set \"authorization: true\" to enable withCredentials only\n if (authorization) {\n if (typeof authorization == 'string')\n xhr.setRequestHeader('Authorization', authorization);\n xhr.withCredentials = true;\n }\n }\n\n xhr.send(null);\n });\n}\n\nvar fs;\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\n if (url.substr(0, 8) != 'file:///')\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node.'));\n\n fs = fs || require('fs');\n if (isWindows)\n url = url.replace(/\\//g, '\\\\').substr(8);\n else\n url = url.substr(7);\n\n return new Promise(function (resolve, reject) {\n fs.readFile(url, function(err, data) {\n if (err) {\n return reject(err);\n }\n else {\n if (asBuffer) {\n resolve(data);\n }\n else {\n // Strip Byte Order Mark out if it's the leading char\n var dataString = data + '';\n if (dataString[0] === '\\ufeff')\n dataString = dataString.substr(1);\n\n resolve(dataString);\n }\n }\n });\n });\n}\n\nfunction noFetch () {\n throw new Error('No fetch method is defined for this environment.');\n}\n\nvar fetchFunction;\n\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\n\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\n fetchFunction = fetchFetch;\nelse if (hasXhr)\n fetchFunction = xhrFetch;\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\n fetchFunction = nodeFetch;\nelse\n fetchFunction = noFetch;\n\nexport default fetchFunction;\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\nimport { setPkgConfig, createPackage } from './config.js';\nimport fetch from './fetch.js';\n\nexport function createMetadata () {\n return {\n pluginKey: undefined,\n pluginArgument: undefined,\n pluginModule: undefined,\n packageKey: undefined,\n packageConfig: undefined,\n load: undefined\n };\n}\n\nfunction getCoreParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n }\n\n return parentMetadata;\n}\n\nfunction getParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n\n // detect parent package\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\n if (parentMetadata.packageKey)\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\n }\n\n return parentMetadata;\n}\n\nexport function normalize (key, parentKey) {\n var config = this[CONFIG];\n\n var metadata = createMetadata();\n var parentMetadata = getParentMetadata(this, config, parentKey);\n\n var loader = this;\n\n return Promise.resolve()\n\n // boolean conditional\n .then(function () {\n // first we normalize the conditional\n var booleanIndex = key.lastIndexOf('#?');\n\n if (booleanIndex === -1)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.resolve(conditionObj.module, parentKey)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\n });*/\n\n return resolveCondition.call(loader, conditionObj, parentKey, true)\n .then(function (conditionValue) {\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\n });\n })\n\n // plugin\n .then(function (key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n if (!parsed)\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\n\n metadata.pluginKey = parsed.plugin;\n\n return Promise.all([\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\n loader.resolve(parsed.plugin, parentKey)\n ])\n .then(function (normalized) {\n metadata.pluginArgument = normalized[0];\n metadata.pluginKey = normalized[1];\n\n // don't allow a plugin to load itself\n if (metadata.pluginArgument === metadata.pluginKey)\n throw new Error('Plugin ' + metadata.pluginArgument + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');\n\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\n });\n })\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\n })\n .then(function (normalized) {\n setMeta.call(loader, config, normalized, metadata);\n\n if (metadata.pluginKey || !metadata.load.loader)\n return normalized;\n\n // loader by configuration\n // normalizes to parent to support package loaders\n return loader.resolve(metadata.load.loader, normalized)\n .then(function (pluginKey) {\n metadata.pluginKey = pluginKey;\n metadata.pluginArgument = normalized;\n return normalized;\n });\n })\n .then(function (normalized) {\n loader[METADATA][normalized] = metadata;\n return normalized;\n });\n}\n\n// normalization function used for registry keys\n// just does coreResolve without map\nexport function decanonicalize (config, key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false), pluginKey);\n }\n\n return coreResolve.call(this, config, key, undefined, false);\n}\n\nexport function normalizeSync (key, parentKey) {\n var config = this[CONFIG];\n\n // normalizeSync is metadataless, so create metadata\n var metadata = createMetadata();\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\n\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\n return combinePluginParts(config.pluginFirst,\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\n metadata.pluginKey);\n }\n\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\n}\n\nexport function coreResolve (config, key, parentKey, doMap) {\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\n\n // standard URL resolution\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\n if (doMap) {\n var mapMatch = getMapMatch(config.map, key);\n\n if (mapMatch) {\n key = config.map[mapMatch] + key.substr(mapMatch.length);\n\n relativeResolved = resolveIfNotPlain(key, baseURI);\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n }\n }\n\n if (this.registry.has(key))\n return key;\n\n if (key.substr(0, 6) === '@node/')\n return key;\n\n return applyPaths(config.baseURL, config.paths, key);\n}\n\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n var normalized = coreResolve.call(this, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return normalized;\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n return normalized;\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n}\n\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n var loader = this;\n\n return resolvedPromise\n .then(function () {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch)\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n }\n\n return resolvedPromise;\n })\n .then(function (mapped) {\n if (mapped)\n return mapped;\n\n // apply map, core, paths, contextual package map\n var normalized = coreResolve.call(loader, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return Promise.resolve(normalized);\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n metadata.load = createMeta();\n metadata.load.format = 'json';\n return Promise.resolve(normalized);\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\n\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\n .then(function () {\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n });\n });\n}\n\nfunction createMeta () {\n return {\n extension: '',\n deps: undefined,\n format: undefined,\n loader: undefined,\n scriptLoad: undefined,\n globals: undefined,\n nonce: undefined,\n integrity: undefined,\n sourceMap: undefined,\n exports: undefined,\n encapsulateGlobal: false,\n crossOrigin: undefined,\n cjsRequireDetection: true,\n cjsDeferDepsExecute: false,\n esModule: false\n };\n}\n\nfunction setMeta (config, key, metadata) {\n metadata.load = metadata.load || createMeta();\n\n // apply wildcard metas\n var bestDepth = 0;\n var wildcardIndex;\n for (var module in config.meta) {\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\n var depth = module.split('/').length;\n if (depth > bestDepth)\n bestDepth = depth;\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\n }\n }\n\n // apply exact meta\n if (config.meta[key])\n extendMeta(metadata.load, config.meta[key], false);\n\n // apply package meta\n if (metadata.packageKey) {\n var subPath = key.substr(metadata.packageKey.length + 1);\n\n var meta = {};\n if (metadata.packageConfig.meta) {\n var bestDepth = 0;\n\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth > bestDepth)\n bestDepth = matchDepth;\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\n });\n\n extendMeta(metadata.load, meta, false);\n }\n\n // format\n if (metadata.packageConfig.format && !metadata.pluginKey)\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\n }\n}\n\nfunction parsePlugin (pluginFirst, key) {\n var argumentKey;\n var pluginKey;\n\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\n\n if (pluginIndex === -1)\n return;\n\n if (pluginFirst) {\n argumentKey = key.substr(pluginIndex + 1);\n pluginKey = key.substr(0, pluginIndex);\n }\n else {\n argumentKey = key.substr(0, pluginIndex);\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\n }\n\n return {\n argument: argumentKey,\n plugin: pluginKey\n };\n}\n\n// put key back together after parts have been normalized\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\n if (pluginFirst)\n return pluginKey + '!' + argumentKey;\n else\n return argumentKey + '!' + pluginKey;\n}\n\n/*\n * Package Configuration Extension\n *\n * Example:\n *\n * SystemJS.packages = {\n * jquery: {\n * main: 'index.js', // when not set, package key is requested directly\n * format: 'amd',\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\n * modules: {\n * '*.ts': {\n * loader: 'typescript'\n * },\n * 'vendor/sizzle.js': {\n * format: 'global'\n * }\n * },\n * map: {\n * // map internal require('sizzle') to local require('./vendor/sizzle')\n * sizzle: './vendor/sizzle.js',\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\n * './vendor/another.js': './another/index.js',\n * // test.js / test -> lib/test.js\n * './test.js': './lib/test.js',\n *\n * // environment-specific map configurations\n * './index.js': {\n * '~browser': './index-node.js',\n * './custom-condition.js|~export': './index-custom.js'\n * }\n * },\n * // allows for setting package-prefixed depCache\n * // keys are normalized module keys relative to the package itself\n * depCache: {\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\n * './index.js': ['./test'],\n * './test.js': ['external-dep'],\n * 'external-dep/path.js': ['./another.js']\n * }\n * }\n * };\n *\n * Then:\n * import 'jquery' -> jquery/index.js\n * import 'jquery/submodule' -> jquery/submodule.js\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\n * import 'jquery/vendor/another' -> another/index.js\n *\n * Detailed Behaviours\n * - main can have a leading \"./\" can be added optionally\n * - map and defaultExtension are applied to the main\n * - defaultExtension adds the extension only if the exact extension is not present\n\n * - if a meta value is available for a module, map and defaultExtension are skipped\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\n * - condition module map is '@env' module in package or '@system-env' globally\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\n * - internal package map targets cannot use boolean conditionals\n *\n * Package Configuration Loading\n *\n * Not all packages may already have their configuration present in the System config\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\n * a request, will first request a \".json\" file by the package key to derive the package\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\n * case in SystemJS.\n *\n * Example:\n *\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\n *\n * // will first request 'packages/new-package/package.json' for the package config\n * // before completing the package request to 'packages/new-package/path'\n * SystemJS.import('packages/new-package/path');\n *\n * // will first request 'packages/test/package.json' before the main\n * SystemJS.import('packages/test');\n *\n * When a package matches packageConfigPaths, it will always send a config request for\n * the package configuration.\n * The package key itself is taken to be the match up to and including the last wildcard\n * or trailing slash.\n * The most specific package config path will be used.\n * Any existing package configurations for the package will deeply merge with the\n * package config, with the existing package configurations taking preference.\n * To opt-out of the package configuration request for a package that matches\n * packageConfigPaths, use the { configured: true } package config option.\n *\n */\n\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\n // don't apply extensions to folders or if defaultExtension = false\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\n return subPath;\n\n var metaMatch = false;\n\n // exact meta or meta with any content after the last wildcard skips extension\n if (pkg.meta)\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n // exact global meta or meta with any content after the last wildcard skips extension\n if (!metaMatch && config.meta)\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n if (metaMatch)\n return subPath;\n\n // work out what the defaultExtension is and add if not there already\n var defaultExtension = '.' + pkg.defaultExtension;\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\n return subPath + defaultExtension;\n else\n return subPath;\n}\n\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n else\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return pkgKey;\n }\n\n // map config checking without then with extensions\n if (pkg.map) {\n var mapPath = './' + subPath;\n\n var mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n if (mapMatch) {\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n // normal package resolution\n return pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n}\n\nfunction validMapping (mapMatch, mapped, path) {\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\n // but only if the path is exactly ./x and not ./x/z\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\n return false;\n\n return true;\n}\n\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'object')\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\n\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\n return;\n\n return packageResolveSync.call(this, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\n}\n\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n else\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return Promise.resolve(pkgKey);\n }\n\n // map config checking without then with extensions\n var mapPath, mapMatch;\n\n if (pkg.map) {\n mapPath = './' + subPath;\n mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n }\n\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\n .then(function (mapped) {\n if (mapped)\n return Promise.resolve(mapped);\n\n // normal package resolution / fallback resolution for no conditional match\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions));\n });\n}\n\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'string') {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\n /*if (loader.builder)\n return Promise.resolve(pkgKey + '/#:' + path);*/\n\n // we load all conditions upfront\n var conditionPromises = [];\n var conditions = [];\n for (var e in mapped) {\n var c = parseCondition(e);\n conditions.push({\n condition: c,\n map: mapped[e]\n });\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\n }\n\n // map object -> conditional map\n return Promise.all(conditionPromises)\n .then(function (conditionValues) {\n // first map condition to match is used\n for (var i = 0; i < conditions.length; i++) {\n var c = conditions[i].condition;\n var value = readMemberExpression(c.prop, conditionValues[i].__useDefault ? conditionValues[i].default : conditionValues[i]);\n if (!c.negate && value || c.negate && !value)\n return conditions[i].map;\n }\n })\n .then(function (mapped) {\n if (mapped) {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // no environment match -> fallback to original subPath by returning undefined\n });\n}\n\n// check if the given normalized key matches a packageConfigPath\n// if so, loads the config\nvar packageConfigPaths = {};\n\n// data object for quick checks against package paths\nfunction createPkgConfigPathObj (path) {\n var lastWildcard = path.lastIndexOf('*');\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\n return {\n length: length,\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\n wildcard: lastWildcard !== -1\n };\n}\n\n// most specific match wins\nfunction getPackageConfigMatch (config, normalized) {\n var pkgKey, exactMatch = false, configPath;\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\n var packageConfigPath = config.packageConfigPaths[i];\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\n if (normalized.length < p.length)\n continue;\n var match = normalized.match(p.regEx);\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\n pkgKey = match[1];\n exactMatch = !p.wildcard;\n configPath = pkgKey + packageConfigPath.substr(p.length);\n }\n }\n\n if (!pkgKey)\n return;\n\n return {\n packageKey: pkgKey,\n configPath: configPath\n };\n}\n\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\n var configLoader = loader.pluginLoader || loader;\n\n // ensure we note this is a package config file path\n // it will then be skipped from getting other normalizations itself to ensure idempotency\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\n config.packageConfigKeys.push(pkgConfigPath);\n\n return configLoader.import(pkgConfigPath)\n .then(function (pkgConfig) {\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\n metadata.packageConfig.configured = true;\n })\n .catch(function (err) {\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\n });\n}\n\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\n // wildcard meta\n var wildcardIndex;\n for (var module in pkgMeta) {\n // allow meta to start with ./ for flexibility\n var dotRel = module.substr(0, 2) === './' ? './' : '';\n if (dotRel)\n module = module.substr(2);\n\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\n // alow match function to return true for an exit path\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\n return;\n }\n }\n // exact meta\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\n if (exactMeta)\n matchFn(exactMeta, exactMeta, 0);\n}\n\n\n/*\n * Conditions Extension\n *\n * Allows a condition module to alter the resolution of an import via syntax:\n *\n * import $ from 'jquery/#{browser}';\n *\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\n * take the default export of that module.\n * If the default export is not a string, an error is thrown.\n *\n * We then substitute the string into the require to get the conditional resolution\n * enabling environment-specific variations like:\n *\n * import $ from 'jquery/ie'\n * import $ from 'jquery/firefox'\n * import $ from 'jquery/chrome'\n * import $ from 'jquery/safari'\n *\n * It can be useful for a condition module to define multiple conditions.\n * This can be done via the `|` modifier to specify an export member expression:\n *\n * import 'jquery/#{./browser.js|grade.version}'\n *\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\n *\n *\n * Boolean Conditionals\n *\n * For polyfill modules, that are used as imports but have no module value,\n * a binary conditional allows a module not to be loaded at all if not needed:\n *\n * import 'es5-shim#?./conditions.js|needs-es5shim'\n *\n * These conditions can also be negated via:\n *\n * import 'es5-shim#?./conditions.js|~es6'\n *\n */\n\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\n\nfunction parseCondition (condition) {\n var conditionExport, conditionModule, negation;\n\n var negation;\n var conditionExportIndex = condition.lastIndexOf('|');\n if (conditionExportIndex !== -1) {\n conditionExport = condition.substr(conditionExportIndex + 1);\n conditionModule = condition.substr(0, conditionExportIndex);\n\n if (conditionExport[0] === '~') {\n negation = true;\n conditionExport = conditionExport.substr(1);\n }\n }\n else {\n negation = condition[0] === '~';\n conditionExport = 'default';\n conditionModule = condition.substr(negation);\n if (sysConditions.indexOf(conditionModule) !== -1) {\n conditionExport = conditionModule;\n conditionModule = null;\n }\n }\n\n return {\n module: conditionModule || '@system-env',\n prop: conditionExport,\n negate: negation\n };\n}\n\nfunction resolveCondition (conditionObj, parentKey, bool) {\n // import without __useDefault handling here\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\n .then(function (condition) {\n var m = readMemberExpression(conditionObj.prop, condition);\n\n if (bool && typeof m !== 'boolean')\n throw new TypeError('Condition did not resolve to a boolean.');\n\n return conditionObj.negate ? !m : m;\n });\n}\n\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\nfunction interpolateConditional (key, parentKey, parentMetadata) {\n // first we normalize the conditional\n var conditionalMatch = key.match(interpolationRegEx);\n\n if (!conditionalMatch)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\n });*/\n\n return resolveCondition.call(this, conditionObj, parentKey, false)\n .then(function (conditionValue) {\n if (typeof conditionValue !== 'string')\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\n\n if (conditionValue.indexOf('/') !== -1)\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\n\n return key.replace(interpolationRegEx, conditionValue);\n });\n}\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\nimport { coreResolve } from './resolve.js';\n\n/*\n Extend config merging one deep only\n\n loader.config({\n some: 'random',\n config: 'here',\n deep: {\n config: { too: 'too' }\n }\n });\n\n <=>\n\n loader.some = 'random';\n loader.config = 'here'\n loader.deep = loader.deep || {};\n loader.deep.config = { too: 'too' };\n\n\n Normalizes meta and package configs allowing for:\n\n SystemJS.config({\n meta: {\n './index.js': {}\n }\n });\n\n To become\n\n SystemJS.meta['https://thissite.com/index.js'] = {};\n\n For easy normalization canonicalization with latest URL support.\n\n*/\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\nfunction envSet(loader, cfg, envCallback) {\n for (var i = 0; i < envConfigNames.length; i++) {\n var envConfig = envConfigNames[i];\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\n envCallback(cfg[envConfig]);\n }\n}\n\nfunction cloneObj (obj, maxDepth) {\n var clone = {};\n for (var p in obj) {\n var prop = obj[p];\n if (maxDepth > 1) {\n if (typeof prop === 'object')\n clone[p] = cloneObj(prop, maxDepth - 1);\n else if (p !== 'packageConfig')\n clone[p] = prop;\n }\n else {\n clone[p] = prop;\n }\n }\n return clone;\n}\n\nexport function getConfigItem (config, p) {\n var cfgItem = config[p];\n\n // getConfig must return an unmodifiable clone of the configuration\n if (cfgItem instanceof Array)\n return config[p].concat([]);\n else if (typeof cfgItem === 'object')\n return cloneObj(cfgItem, 3)\n else\n return config[p];\n}\n\nexport function getConfig (configName) {\n if (configName) {\n if (configNames.indexOf(configName) !== -1)\n return getConfigItem(this[CONFIG], configName);\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\n }\n\n var cfg = {};\n for (var i = 0; i < configNames.length; i++) {\n var p = configNames[i];\n var configItem = getConfigItem(this[CONFIG], p);\n if (configItem !== undefined)\n cfg[p] = configItem;\n }\n return cfg;\n}\n\nexport function setConfig (cfg, isEnvConfig) {\n var loader = this;\n var config = this[CONFIG];\n\n if ('warnings' in cfg)\n config.warnings = cfg.warnings;\n\n if ('wasm' in cfg)\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\n\n if ('production' in cfg || 'build' in cfg)\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\n\n if (!isEnvConfig) {\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\n // these exceptions will be unnecessary when we can properly implement config queuings\n var baseURL;\n envSet(loader, cfg, function(cfg) {\n baseURL = baseURL || cfg.baseURL;\n });\n baseURL = baseURL || cfg.baseURL;\n\n // always configure baseURL first\n if (baseURL) {\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n envSet(loader, cfg, function(cfg) {\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n });\n\n for (var p in config.paths) {\n if (config.paths[p].indexOf('*') === -1)\n continue;\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\n delete config.paths[p];\n }\n }\n\n if (cfg.defaultJSExtensions)\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\n\n if (typeof cfg.pluginFirst === 'boolean')\n config.pluginFirst = cfg.pluginFirst;\n\n if (cfg.map) {\n for (var p in cfg.map) {\n var v = cfg.map[p];\n\n if (typeof v === 'string') {\n config.map[p] = coreResolve.call(loader, config, v, undefined, false);\n }\n\n // object map\n else {\n var pkgName = coreResolve.call(loader, config, p, undefined, true);\n var pkg = config.packages[pkgName];\n if (!pkg) {\n pkg = config.packages[pkgName] = createPackage();\n // use '' instead of false to keep type consistent\n pkg.defaultExtension = '';\n }\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\n }\n }\n }\n\n if (cfg.packageConfigPaths) {\n var packageConfigPaths = [];\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\n var path = cfg.packageConfigPaths[i];\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false);\n packageConfigPaths[i] = normalized + path.substr(packageLength);\n }\n config.packageConfigPaths = packageConfigPaths;\n }\n\n if (cfg.bundles) {\n for (var p in cfg.bundles) {\n var bundle = [];\n for (var i = 0; i < cfg.bundles[p].length; i++)\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\n config.bundles[p] = bundle;\n }\n }\n\n if (cfg.packages) {\n for (var p in cfg.packages) {\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\n throw new TypeError('\"' + p + '\" is not a valid package name.');\n\n var pkgName = coreResolve.call(loader, config, p[p.length -1] !== '/' ? p + '/' : p, undefined, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\n }\n }\n\n if (cfg.depCache) {\n for (var p in cfg.depCache)\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\n }\n\n if (cfg.meta) {\n for (var p in cfg.meta) {\n // base wildcard stays base\n if (p[0] === '*') {\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\n }\n else {\n var resolved = coreResolve.call(loader, config, p, undefined, true);\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\n }\n }\n }\n\n if ('transpiler' in cfg)\n config.transpiler = cfg.transpiler;\n\n\n // copy any remaining non-standard configuration properties\n for (var c in cfg) {\n if (configNames.indexOf(c) !== -1)\n continue;\n if (envConfigNames.indexOf(c) !== -1)\n continue;\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\n\n config[c] = cfg[c];\n }\n\n envSet(loader, cfg, function(cfg) {\n loader.config(cfg, true);\n });\n}\n\nexport function createPackage () {\n return {\n defaultExtension: undefined,\n main: undefined,\n format: undefined,\n meta: undefined,\n map: undefined,\n packageConfig: undefined,\n configured: false\n };\n}\n\n// deeply-merge (to first level) config with any existing package config\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\n for (var prop in cfg) {\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\n if (!prependConfig || pkg[prop] === undefined)\n pkg[prop] = cfg[prop];\n }\n else if (prop === 'map') {\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\n }\n else if (prop === 'meta') {\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\n }\n else if (Object.hasOwnProperty.call(cfg, prop)) {\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\n }\n }\n\n // default defaultExtension for packages only\n if (pkg.defaultExtension === undefined)\n pkg.defaultExtension = 'js';\n\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\n pkg.main = pkg.map['.'];\n delete pkg.map['.'];\n }\n // main object becomes main map\n else if (typeof pkg.main === 'object') {\n pkg.map = pkg.map || {};\n pkg.map['./@main'] = pkg.main;\n pkg.main['default'] = pkg.main['default'] || './';\n pkg.main = '@main';\n }\n\n return pkg;\n}\n","import { isBrowser, global } from './common.js';\n\nvar hasBuffer = typeof Buffer !== 'undefined';\ntry {\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\n hasBuffer = false;\n}\ncatch (e) {\n hasBuffer = false;\n}\n\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\nfunction inlineSourceMap (sourceMapString) {\n if (hasBuffer)\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\n else if (typeof btoa !== 'undefined')\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\n else\n return '';\n}\n\nfunction getSource(source, sourceMap, address, wrap) {\n var lastLineIndex = source.lastIndexOf('\\n');\n\n if (sourceMap) {\n if (typeof sourceMap != 'object')\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\n\n sourceMap = JSON.stringify(sourceMap);\n }\n\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\n // adds the sourceURL comment if not already present\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\n // add sourceMappingURL if load.metadata.sourceMap is set\n + (sourceMap && inlineSourceMap(sourceMap) || '');\n}\n\n// script execution via injecting a script tag into the page\n// this allows CSP nonce to be set for CSP environments\nvar head;\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\n if (!head)\n head = document.head || document.body || document.documentElement;\n\n var script = document.createElement('script');\n script.text = getSource(source, sourceMap, address, false);\n var onerror = window.onerror;\n var e;\n window.onerror = function(_e) {\n e = addToError(_e, 'Evaluating ' + address);\n if (onerror)\n onerror.apply(this, arguments);\n }\n preExec(loader);\n\n if (nonce)\n script.setAttribute('nonce', nonce);\n\n head.appendChild(script);\n head.removeChild(script);\n postExec();\n window.onerror = onerror;\n if (e)\n return e;\n}\n\nvar vm;\nvar useVm;\n\nvar curSystem;\n\nvar callCounter = 0;\nfunction preExec (loader) {\n if (callCounter++ == 0)\n curSystem = global.System;\n global.System = global.SystemJS = loader;\n}\nfunction postExec () {\n if (--callCounter == 0)\n global.System = global.SystemJS = curSystem;\n}\n\nvar supportsScriptExec = false;\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\n supportsScriptExec = true;\n}\n\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\n if (!source)\n return;\n if (nonce && supportsScriptExec)\n return scriptExec(loader, source, sourceMap, address, nonce);\n try {\n preExec(loader);\n // global scoped eval for node (avoids require scope leak)\n if (!vm && loader._nodeRequire) {\n vm = loader._nodeRequire('vm');\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\n }\n if (useVm)\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\n else\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\n postExec();\n }\n catch (e) {\n postExec();\n return e;\n }\n}\n","\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\n\nexport default function (loader) {\n loader.set('@@cjs-helpers', loader.newModule({\n requireResolve: requireResolve.bind(loader),\n getPathVars: getPathVars\n }));\n\n loader.set('@@global-helpers', loader.newModule({\n prepareGlobal: prepareGlobal\n }));\n\n /*\n AMD-compatible require\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\n */\n function require (names, callback, errback, referer) {\n // in amd, first arg can be a config object... we just ignore\n if (typeof names === 'object' && !(names instanceof Array))\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\n\n // amd require\n if (typeof names === 'string' && typeof callback === 'function')\n names = [names];\n if (names instanceof Array) {\n var dynamicRequires = [];\n for (var i = 0; i < names.length; i++)\n dynamicRequires.push(loader.import(names[i], referer));\n Promise.all(dynamicRequires).then(function (modules) {\n for (var i = 0; i < modules.length; i++)\n modules[i] = modules[i].__useDefault ? modules[i].default : modules[i];\n if (callback)\n callback.apply(null, modules);\n }, errback);\n }\n\n // commonjs require\n else if (typeof names === 'string') {\n var normalized = loader.decanonicalize(names, referer);\n var module = loader.get(normalized);\n if (!module)\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\n return module.__useDefault ? module.default : module;\n }\n\n else\n throw new TypeError('Invalid require');\n }\n\n function define (name, deps, factory) {\n if (typeof name !== 'string') {\n factory = deps;\n deps = name;\n name = null;\n }\n\n if (!(deps instanceof Array)) {\n factory = deps;\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\n }\n\n if (typeof factory !== 'function')\n factory = (function (factory) {\n return function() { return factory; }\n })(factory);\n\n if (!name) {\n if (curMetaDeps) {\n deps = deps.concat(curMetaDeps);\n curMetaDeps = undefined;\n }\n }\n\n // remove system dependencies\n var requireIndex, exportsIndex, moduleIndex;\n\n if ((requireIndex = deps.indexOf('require')) !== -1) {\n\n deps.splice(requireIndex, 1);\n\n // only trace cjs requires for non-named\n // named defines assume the trace has already been done\n if (!name)\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\n }\n\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\n deps.splice(exportsIndex, 1);\n\n if ((moduleIndex = deps.indexOf('module')) !== -1)\n deps.splice(moduleIndex, 1);\n\n function execute (req, exports, module) {\n var depValues = [];\n for (var i = 0; i < deps.length; i++)\n depValues.push(req(deps[i]));\n\n module.uri = module.id;\n\n module.config = noop;\n\n // add back in system dependencies\n if (moduleIndex !== -1)\n depValues.splice(moduleIndex, 0, module);\n\n if (exportsIndex !== -1)\n depValues.splice(exportsIndex, 0, exports);\n\n if (requireIndex !== -1) {\n var contextualRequire = function (names, callback, errback) {\n if (typeof names === 'string' && typeof callback !== 'function')\n return req(names);\n return require.call(loader, names, callback, errback, module.id);\n };\n contextualRequire.toUrl = function (name) {\n return loader.normalizeSync(name, module.id);\n };\n depValues.splice(requireIndex, 0, contextualRequire);\n }\n\n // set global require to AMD require\n var curRequire = global.require;\n global.require = require;\n\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\n\n global.require = curRequire;\n\n if (typeof output !== 'undefined')\n module.exports = output;\n }\n\n // anonymous define\n if (!name) {\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\n }\n else {\n loader.registerDynamic(name, deps, false, execute);\n\n // if we don't have any other defines,\n // then let this be an anonymous define\n // this is just to support single modules of the form:\n // define('jquery')\n // still loading anonymously\n // because it is done widely enough to be useful\n // as soon as there is more than one define, this gets removed though\n if (lastNamedDefine) {\n lastNamedDefine = undefined;\n multipleNamedDefines = true;\n }\n else if (!multipleNamedDefines) {\n lastNamedDefine = [deps, execute];\n }\n }\n }\n define.amd = {};\n\n loader.amdDefine = define;\n loader.amdRequire = require;\n}\n\n// CJS\nvar windowOrigin;\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\n\nfunction stripOrigin(path) {\n if (path.substr(0, 8) === 'file:///')\n return path.substr(7 + !!isWindows);\n\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\n return path.substr(windowOrigin.length);\n\n return path;\n}\n\nexport function requireResolve (request, parentId) {\n return stripOrigin(this.normalizeSync(request, parentId));\n}\n\nexport function getPathVars (moduleId) {\n // remove any plugin syntax\n var pluginIndex = moduleId.lastIndexOf('!');\n var filename;\n if (pluginIndex !== -1)\n filename = moduleId.substr(0, pluginIndex);\n else\n filename = moduleId;\n\n var dirname = filename.split('/');\n dirname.pop();\n dirname = dirname.join('/');\n\n return {\n filename: stripOrigin(filename),\n dirname: stripOrigin(dirname)\n };\n}\n\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\n// extract CJS dependencies from source text via regex static analysis\n// read require('x') statements not in comments or strings\nexport function getCJSDeps (source) {\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n\n // track string and comment locations for unminified source\n var stringLocations = [], commentLocations = [];\n\n function inLocation (locations, match) {\n for (var i = 0; i < locations.length; i++)\n if (locations[i][0] < match.index && locations[i][1] > match.index)\n return true;\n return false;\n }\n\n if (source.length / source.split('\\n').length < 200) {\n while (match = stringRegEx.exec(source))\n stringLocations.push([match.index, match.index + match[0].length]);\n\n // TODO: track template literals here before comments\n\n while (match = commentRegEx.exec(source)) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match))\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\n }\n }\n\n while (match = cjsRequireRegEx.exec(source)) {\n // ensure we're not within a string or comment location\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\n var dep = match[1].substr(1, match[1].length - 2);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/))\n continue;\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\n// Global\n// bare minimum ignores\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\n 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\n\nvar globalSnapshot;\nfunction globalIterator (globalName) {\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\n return;\n try {\n var value = global[globalName];\n }\n catch (e) {\n ignoredGlobalProps.push(globalName);\n }\n this(globalName, value);\n}\n\nexport function getGlobalValue (exports) {\n if (typeof exports === 'string')\n return readMemberExpression(exports, global);\n\n if (!(exports instanceof Array))\n throw new Error('Global exports must be a string or array.');\n\n var globalValue = {};\n for (var i = 0; i < exports.length; i++)\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\n return globalValue;\n}\n\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\n // disable module detection\n var curDefine = global.define;\n\n global.define = undefined;\n\n // set globals\n var oldGlobals;\n if (globals) {\n oldGlobals = {};\n for (var g in globals) {\n oldGlobals[g] = global[g];\n global[g] = globals[g];\n }\n }\n\n // store a complete copy of the global object in order to detect changes\n if (!exports) {\n globalSnapshot = {};\n\n Object.keys(global).forEach(globalIterator, function (name, value) {\n globalSnapshot[name] = value;\n });\n }\n\n // return function to retrieve global\n return function () {\n var globalValue = exports ? getGlobalValue(exports) : {};\n\n var singleGlobal;\n var multipleExports = !!exports;\n\n if (!exports || encapsulate)\n Object.keys(global).forEach(globalIterator, function (name, value) {\n if (globalSnapshot[name] === value)\n return;\n if (value === undefined)\n return;\n\n // allow global encapsulation where globals are removed\n if (encapsulate)\n global[name] = undefined;\n\n if (!exports) {\n globalValue[name] = value;\n\n if (singleGlobal !== undefined) {\n if (!multipleExports && singleGlobal !== value)\n multipleExports = true;\n }\n else {\n singleGlobal = value;\n }\n }\n });\n\n globalValue = multipleExports ? globalValue : singleGlobal;\n\n // revert globals\n if (oldGlobals) {\n for (var g in oldGlobals)\n global[g] = oldGlobals[g];\n }\n global.define = curDefine;\n\n return globalValue;\n };\n}\n\n// AMD\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\nvar wsRegEx = /^\\s+|\\s+$/g;\n\nvar requireRegExs = {};\n\nfunction amdGetCJSDeps(source, requireIndex) {\n\n // remove comments\n source = source.replace(commentRegEx, '');\n\n // determine the require alias\n var params = source.match(fnBracketRegEx);\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\n\n // find or generate the regex for this requireAlias\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\n\n requireRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n while (match = requireRegEx.exec(source))\n deps.push(match[2] || match[3]);\n\n return deps;\n}\n\nfunction wrapEsModuleExecute (execute) {\n return function (require, exports, module) {\n execute(require, exports, module);\n Object.defineProperty(module.exports, '__esModule', {\n value: true\n });\n };\n}\n\n// generate anonymous define from singular named define\nvar multipleNamedDefines = false;\nvar lastNamedDefine;\nvar curMetaDeps;\nvar curEsModule = false;\nexport function clearLastDefine (metaDeps, esModule) {\n curMetaDeps = metaDeps;\n curEsModule = esModule;\n lastNamedDefine = undefined;\n multipleNamedDefines = false;\n}\nexport function registerLastDefine (loader) {\n if (lastNamedDefine)\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\n\n // bundles are an empty module\n else if (multipleNamedDefines)\n loader.registerDynamic([], false, noop);\n}\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript } from './common.js';\nimport { evaluate } from './evaluate.js';\nimport fetch from './fetch.js';\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\n\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\n\n// include the node require since we're overriding it\nexport var nodeRequire;\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\n nodeRequire = require;\n\nfunction setMetaEsModule (metadata, moduleValue) {\n if (metadata.load.esModule && !('__esModule' in moduleValue))\n Object.defineProperty(moduleValue, '__esModule', {\n value: true\n });\n}\n\nexport function instantiate (key, processAnonRegister) {\n var loader = this;\n var config = this[CONFIG];\n var metadata = this[METADATA][key];\n // first do bundles and depCache\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\n .then(function () {\n if (processAnonRegister())\n return;\n\n // node module loading\n if (key.substr(0, 6) === '@node/') {\n if (!loader._nodeRequire)\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\n loader.registerDynamic([], false, function () {\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\n });\n processAnonRegister();\n return;\n }\n\n if (metadata.load.scriptLoad ) {\n if (metadata.load.pluginKey || !supportsScriptLoad) {\n metadata.load.scriptLoad = false;\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\n }\n }\n else if (metadata.load.scriptLoad !== false && supportsScriptLoad) {\n // auto script load AMD, global without deps\n if (!metadata.load.deps && !metadata.load.globals &&\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\n metadata.load.scriptLoad = true;\n }\n\n // fetch / translate / instantiate pipeline\n if (!metadata.load.scriptLoad)\n return initializePlugin(loader, key, metadata)\n .then(function () {\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\n })\n\n // just script loading\n return new Promise(function (resolve, reject) {\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\n\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\n if (!processAnonRegister()) {\n metadata.load.format = 'global';\n var globalValue = getGlobalValue(metadata.load.exports);\n loader.registerDynamic([], false, function () {\n setMetaEsModule(metadata, globalValue);\n return globalValue;\n });\n processAnonRegister();\n }\n\n resolve();\n }, reject);\n });\n })\n .then(function (instantiated) {\n loader[METADATA][key] = undefined;\n return instantiated;\n });\n};\n\nfunction initializePlugin (loader, key, metadata) {\n if (!metadata.pluginKey)\n return resolvedPromise;\n\n return loader.import(metadata.pluginKey).then(function (plugin) {\n metadata.pluginModule = plugin;\n metadata.pluginLoad = {\n name: key,\n address: metadata.pluginArgument,\n source: undefined,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n });\n}\n\nfunction loadBundlesAndDepCache (config, loader, key) {\n // load direct deps, in turn will pick up their trace trees\n var deps = config.depCache[key];\n if (deps) {\n for (var i = 0; i < deps.length; i++)\n loader.normalize(deps[i], key).then(preloadScript);\n }\n else {\n var matched = false;\n for (var b in config.bundles) {\n for (var i = 0; i < config.bundles[b].length; i++) {\n var curModule = config.bundles[b][i];\n\n if (curModule == key) {\n matched = true;\n break;\n }\n\n // wildcard in bundles includes / boundaries\n if (curModule.indexOf('*') != -1) {\n var parts = curModule.split('*');\n if (parts.length != 2) {\n config.bundles[b].splice(i--, 1);\n continue;\n }\n\n if (key.substring(0, parts[0].length) == parts[0] &&\n key.substr(key.length - parts[1].length, parts[1].length) == parts[1]) {\n matched = true;\n break;\n }\n }\n }\n\n if (matched)\n return loader.import(b);\n }\n }\n}\n\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\n if (metadata.load.exports && !metadata.load.format)\n metadata.load.format = 'global';\n\n return resolvedPromise\n\n // locate\n .then(function () {\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\n return;\n\n return metadata.pluginModule.locate.call(loader, metadata.pluginLoad)\n .then(function (address) {\n if (address)\n metadata.pluginLoad.address = address;\n });\n })\n\n // fetch\n .then(function () {\n if (!metadata.pluginModule)\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\n\n if (!metadata.pluginModule.fetch)\n return fetch(metadata.pluginArgument, metadata.load.authorization, metadata.load.integrity, wasm);\n\n wasm = false;\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\n });\n })\n\n .then(function (fetched) {\n // fetch is already a utf-8 string if not doing wasm detection\n if (!wasm || typeof fetched === 'string')\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\n\n var bytes = new Uint8Array(fetched);\n\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return loader.newModule(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var stringSource = new TextDecoder('utf-8').decode(bytes);\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\n })\n}\n\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\n return Promise.resolve(source)\n // translate\n .then(function (source) {\n if (metadata.load.format === 'detect')\n metadata.load.format = undefined;\n\n readMetaSyntax(source, metadata);\n\n if (!metadata.pluginModule || !metadata.pluginModule.translate)\n return source;\n\n metadata.pluginLoad.source = source;\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (translated) {\n if (metadata.load.sourceMap) {\n if (typeof metadata.load.sourceMap !== 'object')\n throw new Error('metadata.load.sourceMap must be set to an object.');\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\n }\n\n if (typeof translated === 'string')\n return translated;\n else\n return metadata.pluginLoad.source;\n });\n })\n .then(function (source) {\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\n metadata.load.format = 'register';\n return source;\n }\n\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\n return source;\n }\n\n metadata.load.format = 'esm';\n return transpile(loader, source, key, metadata, processAnonRegister);\n })\n\n // instantiate\n .then(function (translated) {\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\n return translated;\n\n var calledInstantiate = false;\n metadata.pluginLoad.source = translated;\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\n translated = load.source;\n metadata.load = load.metadata;\n if (calledInstantiate)\n throw new Error('Instantiate must only be called once.');\n calledInstantiate = true;\n }))\n .then(function (result) {\n if (calledInstantiate)\n return translated;\n return protectedCreateNamespace(result);\n });\n })\n .then(function (source) {\n // plugin instantiate result case\n if (typeof source !== 'string')\n return source;\n\n if (!metadata.load.format)\n metadata.load.format = detectLegacyFormat(source);\n\n var registered = false;\n\n switch (metadata.load.format) {\n case 'esm':\n case 'register':\n case 'system':\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n if (!processAnonRegister())\n return emptyModule;\n return;\n break;\n\n case 'json':\n // warn.call(config, '\"json\" module format is deprecated.');\n return loader.newModule({ default: JSON.parse(source), __useDefault: true });\n\n case 'amd':\n var curDefine = global.define;\n global.define = loader.amdDefine;\n\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n\n // if didn't register anonymously, use the last named define if only one\n registered = processAnonRegister();\n if (!registered) {\n registerLastDefine(loader);\n registered = processAnonRegister();\n }\n\n global.define = curDefine;\n\n if (err)\n throw err;\n break;\n\n case 'cjs':\n var metaDeps = metadata.load.deps;\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\n\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n deps.push(metadata.load.globals[g]);\n\n loader.registerDynamic(deps, true, function (require, exports, module) {\n require.resolve = function (key) {\n return requireResolve.call(loader, key, module.id);\n };\n // support module.paths ish\n module.paths = [];\n module.require = require;\n\n // ensure meta deps execute first\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\n for (var i = 0; i < metaDeps.length; i++)\n require(metaDeps[i]);\n\n var pathVars = getPathVars(module.id);\n var __cjsWrapper = {\n exports: exports,\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\n };\n\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\n\n // add metadata.globals to the wrapper arguments\n if (metadata.load.globals)\n for (var g in metadata.load.globals) {\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\n cjsWrapper += \", \" + g;\n }\n\n // disable AMD detection\n var define = global.define;\n global.define = undefined;\n global.__cjsWrapper = __cjsWrapper;\n\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n\n setMetaEsModule(metadata, exports);\n\n global.__cjsWrapper = undefined;\n global.define = define;\n });\n registered = processAnonRegister();\n break;\n\n case 'global':\n var deps = metadata.load.deps || [];\n for (var g in metadata.load.globals) {\n var gl = metadata.load.globals[g];\n if (gl)\n deps.push(gl);\n }\n\n loader.registerDynamic(deps, false, function (require, exports, module) {\n var globals;\n if (metadata.load.globals) {\n globals = {};\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n globals[g] = require(metadata.load.globals[g]);\n }\n\n var exportName = metadata.load.exports;\n\n if (exportName)\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\n\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\n\n if (err)\n throw err;\n\n var output = retrieveGlobal();\n setMetaEsModule(metadata, output);\n return output;\n });\n registered = processAnonRegister();\n break;\n\n default:\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\n }\n\n if (!registered)\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\n });\n}\n\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\n\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\nexport var esmRegEx = /(^\\s*|[}\\);\\n]\\s*)(import\\s*(['\"]|(\\*\\s+as\\s+)?[^\"'\\(\\)\\n;]+\\s*from\\s*['\"]|\\{)|export\\s+\\*\\s+from\\s+[\"']|export\\s*(\\{|default|function|class|var|const|let|async\\s+function))/;\n\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\nexport function detectRegisterFormat(source) {\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\n return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';\n}\n\n// AMD Module Format Detection RegEx\n// define([.., .., ..], ...)\n// define(varName); || define(function(require, exports) {}); || define({})\nvar amdRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\n\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\n\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\nexport function detectLegacyFormat (source) {\n if (source.match(amdRegEx))\n return 'amd';\n\n cjsExportsRegEx.lastIndex = 0;\n cjsRequireRegEx.lastIndex = 0;\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\n return 'cjs';\n\n // global is the fallback format\n return 'global';\n}\n\nfunction sanitizeSourceMap (address, sourceMap) {\n var originalName = address.split('!')[0];\n\n // force set the filename of the original file\n if (!sourceMap.file || sourceMap.file == address)\n sourceMap.file = originalName + '!transpiled';\n\n // force set the sources list if only one source\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\n sourceMap.sources = [originalName];\n}\n\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\n if (!loader.transpiler)\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\n\n // deps support for es transpile\n if (metadata.load.deps) {\n var depsPrefix = '';\n for (var i = 0; i < metadata.load.deps.length; i++)\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\n source = depsPrefix + source;\n }\n\n // do transpilation\n return loader.import.call(loader, loader.transpiler)\n .then(function (transpiler) {\n if (transpiler.__useDefault)\n transpiler = transpiler.default;\n\n // translate hooks means this is a transpiler plugin instead of a raw implementation\n if (!transpiler.translate)\n throw new Error(loader.transpier + ' is not a valid transpiler plugin.');\n\n // if transpiler is the same as the plugin loader, then don't run twice\n if (transpiler === metadata.pluginModule)\n return load.source;\n\n // convert the source map into an object for transpilation chaining\n if (typeof metadata.load.sourceMap === 'string')\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\n\n metadata.pluginLoad = metadata.pluginLoad || {\n name: key,\n address: key,\n source: source,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (source) {\n // sanitize sourceMap if an object not a JSON string\n var sourceMap = metadata.load.sourceMap;\n if (sourceMap && typeof sourceMap === 'object')\n sanitizeSourceMap(key, sourceMap);\n\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\n metadata.load.format = 'register';\n\n return source;\n });\n }, function (err) {\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\n });\n}\n\n// detect any meta header syntax\n// only set if not already set\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\n\nfunction setMetaProperty(target, p, value) {\n var pParts = p.split('.');\n var curPart;\n while (pParts.length > 1) {\n curPart = pParts.shift();\n target = target[curPart] = target[curPart] || {};\n }\n curPart = pParts.shift();\n if (target[curPart] === undefined)\n target[curPart] = value;\n}\n\nfunction readMetaSyntax (source, metadata) {\n var meta = source.match(metaRegEx);\n if (!meta)\n return;\n\n var metaParts = meta[0].match(metaPartRegEx);\n\n for (var i = 0; i < metaParts.length; i++) {\n var curPart = metaParts[i];\n var len = curPart.length;\n\n var firstChar = curPart.substr(0, 1);\n if (curPart.substr(len - 1, 1) == ';')\n len--;\n\n if (firstChar != '\"' && firstChar != \"'\")\n continue;\n\n var metaString = curPart.substr(1, curPart.length - 3);\n var metaName = metaString.substr(0, metaString.indexOf(' '));\n\n if (metaName) {\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\n\n if (metaName === 'deps')\n metaName = 'deps[]';\n\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\n metaName = metaName.substr(0, metaName.length - 2);\n metadata.load[metaName] = metadata.load[metaName] || [];\n metadata.load[metaName].push(metaValue);\n }\n // \"use strict\" is not meta\n else if (metaName !== 'use') {\n setMetaProperty(metadata.load, metaName, metaValue);\n }\n }\n else {\n metadata.load[metaString] = true;\n }\n }\n}\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule } from './common.js';\n\nimport { getConfig, getConfigItem, setConfig } from './config.js';\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\nimport { instantiate, nodeRequire } from './instantiate.js';\nimport formatHelpers from './format-helpers.js';\n\nexport default SystemJSLoader;\n\nvar scriptSrc;\n\n// Promise detection and error message\nif (typeof Promise === 'undefined')\n throw new Error('SystemJS needs a Promise polyfill.');\n\nif (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n var curScript = scripts[scripts.length - 1];\n if (document.currentScript && (curScript.defer || curScript.async))\n curScript = document.currentScript;\n\n scriptSrc = curScript && curScript.src;\n}\n// worker\nelse if (typeof importScripts !== 'undefined') {\n try {\n throw new Error('_');\n }\n catch (e) {\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\n scriptSrc = url;\n });\n }\n}\n// node\nelse if (typeof __filename !== 'undefined') {\n scriptSrc = __filename;\n}\n\nfunction SystemJSLoader () {\n RegisterLoader.call(this);\n\n // NB deprecate\n this._loader = {};\n\n // internal metadata store\n this[METADATA] = {};\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n\n packageConfigPaths: [],\n packageConfigKeys: [],\n map: {},\n packages: {},\n depCache: {},\n meta: {},\n bundles: {},\n\n production: false,\n\n transpiler: undefined,\n loadedBundles: {},\n\n // global behaviour flags\n warnings: false,\n pluginFirst: false,\n\n // enable wasm loading and detection when supported\n wasm: false\n };\n\n // make the location of the system.js script accessible (if any)\n this.scriptSrc = scriptSrc;\n\n this._nodeRequire = nodeRequire;\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n\n setProduction.call(this, false, false);\n\n // add module format helpers\n formatHelpers(this);\n}\n\nexport var envModule;\nexport function setProduction (isProduction, isBuilder) {\n this[CONFIG].production = isProduction;\n this.registry.set('@system-env', envModule = this.newModule({\n browser: isBrowser,\n node: !!this._nodeRequire,\n production: !isBuilder && isProduction,\n dev: isBuilder || !isProduction,\n build: isBuilder,\n 'default': true\n }));\n}\n\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\n\nSystemJSLoader.prototype.constructor = SystemJSLoader;\n\n// NB deprecate normalize\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\n\nSystemJSLoader.prototype.load = function (key, parentKey) {\n warn.call(this[CONFIG], 'System.load is deprecated.');\n return this.import(key, parentKey);\n};\n\n// NB deprecate decanonicalize, normalizeSync\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\n\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\n\nSystemJSLoader.prototype.config = setConfig;\nSystemJSLoader.prototype.getConfig = getConfig;\n\nSystemJSLoader.prototype.global = global;\n\nSystemJSLoader.prototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\n\nvar hasProxy = typeof Proxy !== 'undefined';\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\n Object.defineProperty(SystemJSLoader.prototype, configName, {\n get: function () {\n var cfg = getConfigItem(this[CONFIG], configName);\n\n if (hasProxy && typeof cfg === 'object')\n cfg = new Proxy(cfg, {\n set: function (target, option) {\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\n }\n });\n\n //if (typeof cfg === 'object')\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\n return cfg;\n },\n set: function (name) {\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\n }\n });\n})(configNames[i]);\n\n/*\n * Backwards-compatible registry API, to be deprecated\n */\nfunction registryWarn(loader, method) {\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\n}\nSystemJSLoader.prototype.delete = function (key) {\n registryWarn(this, 'delete');\n this.registry.delete(key);\n};\nSystemJSLoader.prototype.get = function (key) {\n registryWarn(this, 'get');\n return this.registry.get(key);\n};\nSystemJSLoader.prototype.has = function (key) {\n registryWarn(this, 'has');\n return this.registry.has(key);\n};\nSystemJSLoader.prototype.set = function (key, module) {\n registryWarn(this, 'set');\n return this.registry.set(key, module);\n};\nSystemJSLoader.prototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\n// ensure System.register and System.registerDynamic decanonicalize\nSystemJSLoader.prototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSLoader from './systemjs-loader.js';\n\nSystemJSLoader.prototype.version = VERSION;\n\nvar System = new SystemJSLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker)\n global.SystemJS = global.System = System;\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]} \ No newline at end of file +{"version":3,"file":"system.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/fetch.js","../src/resolve.js","../src/config.js","../src/evaluate.js","../src/format-helpers.js","../src/instantiate.js","../src/systemjs-loader.js","../src/system.js"],"names":["resolvedPromise","addToError","RegisterLoader","global","commentRegEx","stringRegEx","instantiate","fetch","SystemJSLoader","createSymbol","name","hasSymbol","Symbol","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","isBrowser","replace","isWindows","err","message","errArgs","fileName","Error","lineNumber","stack","originalErr","isNode","throwResolveError","RangeError","relUrl","parentUrl","resolveIfNotPlain","parentProtocol","substr","indexOf","firstChar","secondChar","length","pathname","parentIsPlain","undefined","segmented","lastIndexOf","output","segmentIndex","i","pop","push","join","protocolIndex","match","arrayValues","arr","values","iterator","iterable","keys","Object","keyIndex","next","value","done","Loader","this","registry","Registry","ensureInstantiated","module","ModuleNamespace","TypeError","ensureResolution","resolvedKey","REGISTRY","_registry","baseObject","defineProperty","BASE_OBJECT","forEach","extendNamespace","key","enumerable","get","call","REGISTER_INTERNAL","lastRegister","records","trace","createLoadRecord","state","registration","importerSetters","linkRecord","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","linked","error","resolveInstantiate","loader","parentKey","Promise","resolve","load","then","link","createProcessAnonRegister","INSTANTIATE","instantiation","traceLoad","default","__useDefault","registerDeclarative","catch","resolveInstantiateDep","traceDepMap","loads","deps","depMap","declare","locked","declared","p","ContextualLoader","exports","instantiateDeps","seen","depsInstantiatePromises","Array","all","setter","deepDepsInstantiatePromises","depLoad","depLink","clearLoadErrors","index","setterIndex","splice","id","ensureEvaluate","doEvaluate","makeDynamicRequire","declarativeExecute","configurable","set","require","dynamicExecute","__esModule","hasOwnProperty","nullContext","e","noop","protectedCreateNamespace","bindings","isModule","m","hasStringTag","toStringTag","prototype","toString","warn","msg","force","warnings","console","loadNodeModule","baseURL","parentModuleContext","Module","_nodeRequire","base","paths","_nodeModulePaths","extend","a","b","prepend","extendMeta","_prepend","val","concat","preloadScript","url","supportsPreload","supportsPrefetch","preloadImage","Image","src","document","createElement","rel","as","href","head","appendChild","removeChild","workerImport","reject","importScripts","scriptLoad","crossOrigin","integrity","cleanup","loadingScripts","script","removeEventListener","isWorker","type","charset","async","addEventListener","readMemberExpression","pParts","split","shift","applyPaths","mapMatch","getMapMatch","target","resolved","baseURI","checkMap","curLen","len","map","bestMatch","fetchFetch","authorization","asBuffer","hasXhr","xhrFetch","opts","headers","Accept","credentials","res","ok","arrayBuffer","text","status","statusText","xhr","response","responseText","XMLHttpRequest","responseType","onreadystatechange","readyState","open","setRequestHeader","withCredentials","send","nodeFetch","fs","readFile","data","dataString","noFetch","createMetadata","pluginKey","pluginArgument","pluginModule","packageKey","packageConfig","getParentMetadata","config","parentMetadata","parentPluginIndex","pluginFirst","packages","normalize","CONFIG","metadata","booleanIndex","conditionObj","parseCondition","resolveCondition","conditionValue","parsed","parsePlugin","plugin","packageResolve","argument","normalized","combinePluginParts","interpolateConditional","setMeta","METADATA","decanonicalize","coreResolve","normalizeSync","packageResolveSync","doMap","relativeResolved","has","skipExtensions","parentMap","parentMapMatch","mapped","doMapSync","pkgConfigMatch","getPackageConfigMatch","packageConfigKeys","createPackage","subPath","applyPackageConfigSync","createMeta","format","loadConfig","configured","loadPackageConfigPath","configPath","applyPackageConfig","extension","globals","nonce","sourceMap","encapsulateGlobal","cjsRequireDetection","cjsDeferDepsExecute","esModule","wildcardIndex","bestDepth","meta","depth","getMetaMatches","metaPattern","matchMeta","matchDepth","argumentKey","pluginIndex","addDefaultExtension","pkg","pkgKey","defaultExtension","metaMatch","main","mapPath","validMapping","path","conditionPromises","conditions","c","condition","import","conditionValues","prop","negate","createPkgConfigPathObj","lastWildcard","Math","max","regEx","RegExp","wildcard","exactMatch","packageConfigPaths","packageConfigPath","pkgConfigPath","configLoader","pluginLoader","pkgConfig","setPkgConfig","pkgMeta","matchFn","dotRel","exactMeta","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","bool","conditionalMatch","interpolationRegEx","envSet","cfg","envCallback","envConfigNames","envConfig","envModule","cloneObj","obj","maxDepth","clone","getConfigItem","cfgItem","getConfig","configName","configNames","configItem","setConfig","isEnvConfig","wasm","WebAssembly","setProduction","production","build","defaultJSExtensions","v","pkgName","packageLength","bundles","bundle","depCache","transpiler","prependConfig","inlineSourceMap","sourceMapString","hasBuffer","sourceMapPrefix","Buffer","btoa","unescape","encodeURIComponent","getSource","source","address","wrap","lastLineIndex","JSON","stringify","scriptExec","body","documentElement","onerror","window","_e","apply","arguments","preExec","setAttribute","postExec","callCounter","curSystem","System","SystemJS","evaluate","noWrap","supportsScriptExec","vm","useVm","runInThisContext","filename","eval","stripOrigin","windowOrigin","requireResolve","request","parentId","getPathVars","moduleId","dirname","getCJSDeps","inLocation","locations","cjsRequireRegEx","lastIndex","stringLocations","commentLocations","exec","dep","globalIterator","globalName","ignoredGlobalProps","getGlobalValue","globalValue","prepareGlobal","moduleName","encapsulate","curDefine","define","oldGlobals","g","globalSnapshot","singleGlobal","multipleExports","amdGetCJSDeps","requireIndex","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","wrapEsModuleExecute","clearLastDefine","metaDeps","curMetaDeps","curEsModule","lastNamedDefine","multipleNamedDefines","registerLastDefine","registerDynamic","setMetaEsModule","moduleValue","processAnonRegister","loadBundlesAndDepCache","supportsScriptLoad","amdDefine","initializePlugin","runFetchPipeline","instantiated","pluginLoad","matched","curModule","parts","substring","locate","fetched","translateAndInstantiate","bytes","Uint8Array","compile","wasmModule","Instance","newModule","stringSource","TextDecoder","decode","readMetaSyntax","translate","traceOpts","translated","sanitizeSourceMap","detectRegisterFormat","esmRegEx","transpile","calledInstantiate","result","detectLegacyFormat","registered","emptyModule","parse","pathVars","__cjsWrapper","args","cjsWrapper","hashBangRegEx","gl","exportName","retrieveGlobal","leadingCommentAndMeta","leadingCommentAndMetaRegEx","amdRegEx","cjsExportsRegEx","originalName","file","sources","depsPrefix","transpier","setMetaProperty","curPart","metaRegEx","metaParts","metaPartRegEx","metaString","metaName","metaValue","_loader","loadedBundles","scriptSrc","nodeRequire","formatHelpers","isProduction","isBuilder","browser","node","dev","registryWarn","method","process","versions","platform","envGlobal","self","getElementsByTagName","bases","location","cwd","constructor","parent","RESOLVE_INSTANTIATE","RESOLVE","iteratorSupport","entries","namespace","delete","create","register","freeze","relList","supports","fetchFunction","fetch$1","chrome","navigator","userAgent","names","callback","errback","referer","dynamicRequires","modules","factory","req","depValues","uri","moduleIndex","exportsIndex","contextualRequire","toUrl","curRequire","bind","amd","amdRequire","protocol","hostname","port","scripts","curScript","currentScript","defer","__filename","resolveSync","hasProxy","Proxy","option","version"],"mappings":"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","sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { isWindows } from './common.js';\n\n/*\n * Source loading\n */\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\n // fetch doesn't support file:/// urls\n if (url.substr(0, 8) === 'file:///') {\n if (hasXhr)\n return xhrFetch(url, authorization, integrity, asBuffer);\n else\n throw new Error('Unable to fetch file URLs in this environment.');\n }\n\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var opts = {\n // NB deprecate\n headers: { Accept: 'application/x-es-module, */*' }\n };\n\n if (integrity)\n opts.integrity = integrity;\n\n if (authorization) {\n if (typeof authorization == 'string')\n opts.headers['Authorization'] = authorization;\n opts.credentials = 'include';\n }\n\n return fetch(url, opts)\n .then(function(res) {\n if (res.ok)\n return asBuffer ? res.arrayBuffer() : res.text();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n });\n}\n\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\n return new Promise(function (resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var xhr = new XMLHttpRequest();\n if (asBuffer)\n xhr.responseType = 'arraybuffer';\n function load() {\n resolve(asBuffer ? xhr.response : xhr.responseText);\n }\n function error() {\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // in Chrome on file:/// URLs, status is 0\n if (xhr.status == 0) {\n if (xhr.response) {\n load();\n }\n else {\n // when responseText is empty, wait for load or error event\n // to inform if it is a 404 or empty file\n xhr.addEventListener('error', error);\n xhr.addEventListener('load', load);\n }\n }\n else if (xhr.status === 200) {\n load();\n }\n else {\n error();\n }\n }\n };\n xhr.open(\"GET\", url, true);\n\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\n // can set \"authorization: true\" to enable withCredentials only\n if (authorization) {\n if (typeof authorization == 'string')\n xhr.setRequestHeader('Authorization', authorization);\n xhr.withCredentials = true;\n }\n }\n\n xhr.send(null);\n });\n}\n\nvar fs;\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\n if (url.substr(0, 8) != 'file:///')\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node.'));\n\n fs = fs || require('fs');\n if (isWindows)\n url = url.replace(/\\//g, '\\\\').substr(8);\n else\n url = url.substr(7);\n\n return new Promise(function (resolve, reject) {\n fs.readFile(url, function(err, data) {\n if (err) {\n return reject(err);\n }\n else {\n if (asBuffer) {\n resolve(data);\n }\n else {\n // Strip Byte Order Mark out if it's the leading char\n var dataString = data + '';\n if (dataString[0] === '\\ufeff')\n dataString = dataString.substr(1);\n\n resolve(dataString);\n }\n }\n });\n });\n}\n\nfunction noFetch () {\n throw new Error('No fetch method is defined for this environment.');\n}\n\nvar fetchFunction;\n\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\n\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\n fetchFunction = fetchFetch;\nelse if (hasXhr)\n fetchFunction = xhrFetch;\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\n fetchFunction = nodeFetch;\nelse\n fetchFunction = noFetch;\n\nexport default fetchFunction;\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\nimport { setPkgConfig, createPackage } from './config.js';\nimport fetch from './fetch.js';\n\nexport function createMetadata () {\n return {\n pluginKey: undefined,\n pluginArgument: undefined,\n pluginModule: undefined,\n packageKey: undefined,\n packageConfig: undefined,\n load: undefined\n };\n}\n\nfunction getCoreParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n }\n\n return parentMetadata;\n}\n\nfunction getParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n\n // detect parent package\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\n if (parentMetadata.packageKey)\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\n }\n\n return parentMetadata;\n}\n\nexport function normalize (key, parentKey) {\n var config = this[CONFIG];\n\n var metadata = createMetadata();\n var parentMetadata = getParentMetadata(this, config, parentKey);\n\n var loader = this;\n\n return Promise.resolve()\n\n // boolean conditional\n .then(function () {\n // first we normalize the conditional\n var booleanIndex = key.lastIndexOf('#?');\n\n if (booleanIndex === -1)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.resolve(conditionObj.module, parentKey)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\n });*/\n\n return resolveCondition.call(loader, conditionObj, parentKey, true)\n .then(function (conditionValue) {\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\n });\n })\n\n // plugin\n .then(function (key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n if (!parsed)\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\n\n metadata.pluginKey = parsed.plugin;\n\n return Promise.all([\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\n loader.resolve(parsed.plugin, parentKey)\n ])\n .then(function (normalized) {\n metadata.pluginArgument = normalized[0];\n metadata.pluginKey = normalized[1];\n\n // don't allow a plugin to load itself\n if (metadata.pluginArgument === metadata.pluginKey)\n throw new Error('Plugin ' + metadata.pluginArgument + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');\n\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\n });\n })\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\n })\n .then(function (normalized) {\n setMeta.call(loader, config, normalized, metadata);\n\n if (metadata.pluginKey || !metadata.load.loader)\n return normalized;\n\n // loader by configuration\n // normalizes to parent to support package loaders\n return loader.resolve(metadata.load.loader, normalized)\n .then(function (pluginKey) {\n metadata.pluginKey = pluginKey;\n metadata.pluginArgument = normalized;\n return normalized;\n });\n })\n .then(function (normalized) {\n loader[METADATA][normalized] = metadata;\n return normalized;\n });\n}\n\n// normalization function used for registry keys\n// just does coreResolve without map\nexport function decanonicalize (config, key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false), pluginKey);\n }\n\n return coreResolve.call(this, config, key, undefined, false);\n}\n\nexport function normalizeSync (key, parentKey) {\n var config = this[CONFIG];\n\n // normalizeSync is metadataless, so create metadata\n var metadata = createMetadata();\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\n\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\n return combinePluginParts(config.pluginFirst,\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\n metadata.pluginKey);\n }\n\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\n}\n\nexport function coreResolve (config, key, parentKey, doMap) {\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\n\n // standard URL resolution\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\n if (doMap) {\n var mapMatch = getMapMatch(config.map, key);\n\n if (mapMatch) {\n key = config.map[mapMatch] + key.substr(mapMatch.length);\n\n relativeResolved = resolveIfNotPlain(key, baseURI);\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n }\n }\n\n if (this.registry.has(key))\n return key;\n\n if (key.substr(0, 6) === '@node/')\n return key;\n\n return applyPaths(config.baseURL, config.paths, key);\n}\n\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n var normalized = coreResolve.call(this, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return normalized;\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n return normalized;\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n}\n\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n var loader = this;\n\n return resolvedPromise\n .then(function () {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch)\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n }\n\n return resolvedPromise;\n })\n .then(function (mapped) {\n if (mapped)\n return mapped;\n\n // apply map, core, paths, contextual package map\n var normalized = coreResolve.call(loader, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return Promise.resolve(normalized);\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n metadata.load = createMeta();\n metadata.load.format = 'json';\n return Promise.resolve(normalized);\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\n\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\n .then(function () {\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n });\n });\n}\n\nfunction createMeta () {\n return {\n extension: '',\n deps: undefined,\n format: undefined,\n loader: undefined,\n scriptLoad: undefined,\n globals: undefined,\n nonce: undefined,\n integrity: undefined,\n sourceMap: undefined,\n exports: undefined,\n encapsulateGlobal: false,\n crossOrigin: undefined,\n cjsRequireDetection: true,\n cjsDeferDepsExecute: false,\n esModule: false\n };\n}\n\nfunction setMeta (config, key, metadata) {\n metadata.load = metadata.load || createMeta();\n\n // apply wildcard metas\n var bestDepth = 0;\n var wildcardIndex;\n for (var module in config.meta) {\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\n var depth = module.split('/').length;\n if (depth > bestDepth)\n bestDepth = depth;\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\n }\n }\n\n // apply exact meta\n if (config.meta[key])\n extendMeta(metadata.load, config.meta[key], false);\n\n // apply package meta\n if (metadata.packageKey) {\n var subPath = key.substr(metadata.packageKey.length + 1);\n\n var meta = {};\n if (metadata.packageConfig.meta) {\n var bestDepth = 0;\n\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth > bestDepth)\n bestDepth = matchDepth;\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\n });\n\n extendMeta(metadata.load, meta, false);\n }\n\n // format\n if (metadata.packageConfig.format && !metadata.pluginKey)\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\n }\n}\n\nfunction parsePlugin (pluginFirst, key) {\n var argumentKey;\n var pluginKey;\n\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\n\n if (pluginIndex === -1)\n return;\n\n if (pluginFirst) {\n argumentKey = key.substr(pluginIndex + 1);\n pluginKey = key.substr(0, pluginIndex);\n }\n else {\n argumentKey = key.substr(0, pluginIndex);\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\n }\n\n return {\n argument: argumentKey,\n plugin: pluginKey\n };\n}\n\n// put key back together after parts have been normalized\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\n if (pluginFirst)\n return pluginKey + '!' + argumentKey;\n else\n return argumentKey + '!' + pluginKey;\n}\n\n/*\n * Package Configuration Extension\n *\n * Example:\n *\n * SystemJS.packages = {\n * jquery: {\n * main: 'index.js', // when not set, package key is requested directly\n * format: 'amd',\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\n * modules: {\n * '*.ts': {\n * loader: 'typescript'\n * },\n * 'vendor/sizzle.js': {\n * format: 'global'\n * }\n * },\n * map: {\n * // map internal require('sizzle') to local require('./vendor/sizzle')\n * sizzle: './vendor/sizzle.js',\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\n * './vendor/another.js': './another/index.js',\n * // test.js / test -> lib/test.js\n * './test.js': './lib/test.js',\n *\n * // environment-specific map configurations\n * './index.js': {\n * '~browser': './index-node.js',\n * './custom-condition.js|~export': './index-custom.js'\n * }\n * },\n * // allows for setting package-prefixed depCache\n * // keys are normalized module keys relative to the package itself\n * depCache: {\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\n * './index.js': ['./test'],\n * './test.js': ['external-dep'],\n * 'external-dep/path.js': ['./another.js']\n * }\n * }\n * };\n *\n * Then:\n * import 'jquery' -> jquery/index.js\n * import 'jquery/submodule' -> jquery/submodule.js\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\n * import 'jquery/vendor/another' -> another/index.js\n *\n * Detailed Behaviours\n * - main can have a leading \"./\" can be added optionally\n * - map and defaultExtension are applied to the main\n * - defaultExtension adds the extension only if the exact extension is not present\n\n * - if a meta value is available for a module, map and defaultExtension are skipped\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\n * - condition module map is '@env' module in package or '@system-env' globally\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\n * - internal package map targets cannot use boolean conditionals\n *\n * Package Configuration Loading\n *\n * Not all packages may already have their configuration present in the System config\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\n * a request, will first request a \".json\" file by the package key to derive the package\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\n * case in SystemJS.\n *\n * Example:\n *\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\n *\n * // will first request 'packages/new-package/package.json' for the package config\n * // before completing the package request to 'packages/new-package/path'\n * SystemJS.import('packages/new-package/path');\n *\n * // will first request 'packages/test/package.json' before the main\n * SystemJS.import('packages/test');\n *\n * When a package matches packageConfigPaths, it will always send a config request for\n * the package configuration.\n * The package key itself is taken to be the match up to and including the last wildcard\n * or trailing slash.\n * The most specific package config path will be used.\n * Any existing package configurations for the package will deeply merge with the\n * package config, with the existing package configurations taking preference.\n * To opt-out of the package configuration request for a package that matches\n * packageConfigPaths, use the { configured: true } package config option.\n *\n */\n\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\n // don't apply extensions to folders or if defaultExtension = false\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\n return subPath;\n\n var metaMatch = false;\n\n // exact meta or meta with any content after the last wildcard skips extension\n if (pkg.meta)\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n // exact global meta or meta with any content after the last wildcard skips extension\n if (!metaMatch && config.meta)\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n if (metaMatch)\n return subPath;\n\n // work out what the defaultExtension is and add if not there already\n var defaultExtension = '.' + pkg.defaultExtension;\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\n return subPath + defaultExtension;\n else\n return subPath;\n}\n\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n else\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return pkgKey;\n }\n\n // map config checking without then with extensions\n if (pkg.map) {\n var mapPath = './' + subPath;\n\n var mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n if (mapMatch) {\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n // normal package resolution\n return pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n}\n\nfunction validMapping (mapMatch, mapped, path) {\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\n // but only if the path is exactly ./x and not ./x/z\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\n return false;\n\n return true;\n}\n\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'object')\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\n\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\n return;\n\n return packageResolveSync.call(this, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\n}\n\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n else\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return Promise.resolve(pkgKey);\n }\n\n // map config checking without then with extensions\n var mapPath, mapMatch;\n\n if (pkg.map) {\n mapPath = './' + subPath;\n mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n }\n\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\n .then(function (mapped) {\n if (mapped)\n return Promise.resolve(mapped);\n\n // normal package resolution / fallback resolution for no conditional match\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions));\n });\n}\n\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'string') {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\n /*if (loader.builder)\n return Promise.resolve(pkgKey + '/#:' + path);*/\n\n // we load all conditions upfront\n var conditionPromises = [];\n var conditions = [];\n for (var e in mapped) {\n var c = parseCondition(e);\n conditions.push({\n condition: c,\n map: mapped[e]\n });\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\n }\n\n // map object -> conditional map\n return Promise.all(conditionPromises)\n .then(function (conditionValues) {\n // first map condition to match is used\n for (var i = 0; i < conditions.length; i++) {\n var c = conditions[i].condition;\n var value = readMemberExpression(c.prop, conditionValues[i].__useDefault ? conditionValues[i].default : conditionValues[i]);\n if (!c.negate && value || c.negate && !value)\n return conditions[i].map;\n }\n })\n .then(function (mapped) {\n if (mapped) {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // no environment match -> fallback to original subPath by returning undefined\n });\n}\n\n// check if the given normalized key matches a packageConfigPath\n// if so, loads the config\nvar packageConfigPaths = {};\n\n// data object for quick checks against package paths\nfunction createPkgConfigPathObj (path) {\n var lastWildcard = path.lastIndexOf('*');\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\n return {\n length: length,\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\n wildcard: lastWildcard !== -1\n };\n}\n\n// most specific match wins\nfunction getPackageConfigMatch (config, normalized) {\n var pkgKey, exactMatch = false, configPath;\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\n var packageConfigPath = config.packageConfigPaths[i];\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\n if (normalized.length < p.length)\n continue;\n var match = normalized.match(p.regEx);\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\n pkgKey = match[1];\n exactMatch = !p.wildcard;\n configPath = pkgKey + packageConfigPath.substr(p.length);\n }\n }\n\n if (!pkgKey)\n return;\n\n return {\n packageKey: pkgKey,\n configPath: configPath\n };\n}\n\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\n var configLoader = loader.pluginLoader || loader;\n\n // ensure we note this is a package config file path\n // it will then be skipped from getting other normalizations itself to ensure idempotency\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\n config.packageConfigKeys.push(pkgConfigPath);\n\n return configLoader.import(pkgConfigPath)\n .then(function (pkgConfig) {\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\n metadata.packageConfig.configured = true;\n })\n .catch(function (err) {\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\n });\n}\n\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\n // wildcard meta\n var wildcardIndex;\n for (var module in pkgMeta) {\n // allow meta to start with ./ for flexibility\n var dotRel = module.substr(0, 2) === './' ? './' : '';\n if (dotRel)\n module = module.substr(2);\n\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\n // alow match function to return true for an exit path\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\n return;\n }\n }\n // exact meta\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\n if (exactMeta)\n matchFn(exactMeta, exactMeta, 0);\n}\n\n\n/*\n * Conditions Extension\n *\n * Allows a condition module to alter the resolution of an import via syntax:\n *\n * import $ from 'jquery/#{browser}';\n *\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\n * take the default export of that module.\n * If the default export is not a string, an error is thrown.\n *\n * We then substitute the string into the require to get the conditional resolution\n * enabling environment-specific variations like:\n *\n * import $ from 'jquery/ie'\n * import $ from 'jquery/firefox'\n * import $ from 'jquery/chrome'\n * import $ from 'jquery/safari'\n *\n * It can be useful for a condition module to define multiple conditions.\n * This can be done via the `|` modifier to specify an export member expression:\n *\n * import 'jquery/#{./browser.js|grade.version}'\n *\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\n *\n *\n * Boolean Conditionals\n *\n * For polyfill modules, that are used as imports but have no module value,\n * a binary conditional allows a module not to be loaded at all if not needed:\n *\n * import 'es5-shim#?./conditions.js|needs-es5shim'\n *\n * These conditions can also be negated via:\n *\n * import 'es5-shim#?./conditions.js|~es6'\n *\n */\n\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\n\nfunction parseCondition (condition) {\n var conditionExport, conditionModule, negation;\n\n var negation;\n var conditionExportIndex = condition.lastIndexOf('|');\n if (conditionExportIndex !== -1) {\n conditionExport = condition.substr(conditionExportIndex + 1);\n conditionModule = condition.substr(0, conditionExportIndex);\n\n if (conditionExport[0] === '~') {\n negation = true;\n conditionExport = conditionExport.substr(1);\n }\n }\n else {\n negation = condition[0] === '~';\n conditionExport = 'default';\n conditionModule = condition.substr(negation);\n if (sysConditions.indexOf(conditionModule) !== -1) {\n conditionExport = conditionModule;\n conditionModule = null;\n }\n }\n\n return {\n module: conditionModule || '@system-env',\n prop: conditionExport,\n negate: negation\n };\n}\n\nfunction resolveCondition (conditionObj, parentKey, bool) {\n // import without __useDefault handling here\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\n .then(function (condition) {\n var m = readMemberExpression(conditionObj.prop, condition);\n\n if (bool && typeof m !== 'boolean')\n throw new TypeError('Condition did not resolve to a boolean.');\n\n return conditionObj.negate ? !m : m;\n });\n}\n\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\nfunction interpolateConditional (key, parentKey, parentMetadata) {\n // first we normalize the conditional\n var conditionalMatch = key.match(interpolationRegEx);\n\n if (!conditionalMatch)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\n });*/\n\n return resolveCondition.call(this, conditionObj, parentKey, false)\n .then(function (conditionValue) {\n if (typeof conditionValue !== 'string')\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\n\n if (conditionValue.indexOf('/') !== -1)\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\n\n return key.replace(interpolationRegEx, conditionValue);\n });\n}\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\nimport { coreResolve } from './resolve.js';\n\n/*\n Extend config merging one deep only\n\n loader.config({\n some: 'random',\n config: 'here',\n deep: {\n config: { too: 'too' }\n }\n });\n\n <=>\n\n loader.some = 'random';\n loader.config = 'here'\n loader.deep = loader.deep || {};\n loader.deep.config = { too: 'too' };\n\n\n Normalizes meta and package configs allowing for:\n\n SystemJS.config({\n meta: {\n './index.js': {}\n }\n });\n\n To become\n\n SystemJS.meta['https://thissite.com/index.js'] = {};\n\n For easy normalization canonicalization with latest URL support.\n\n*/\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\nfunction envSet(loader, cfg, envCallback) {\n for (var i = 0; i < envConfigNames.length; i++) {\n var envConfig = envConfigNames[i];\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\n envCallback(cfg[envConfig]);\n }\n}\n\nfunction cloneObj (obj, maxDepth) {\n var clone = {};\n for (var p in obj) {\n var prop = obj[p];\n if (maxDepth > 1) {\n if (typeof prop === 'object')\n clone[p] = cloneObj(prop, maxDepth - 1);\n else if (p !== 'packageConfig')\n clone[p] = prop;\n }\n else {\n clone[p] = prop;\n }\n }\n return clone;\n}\n\nexport function getConfigItem (config, p) {\n var cfgItem = config[p];\n\n // getConfig must return an unmodifiable clone of the configuration\n if (cfgItem instanceof Array)\n return config[p].concat([]);\n else if (typeof cfgItem === 'object')\n return cloneObj(cfgItem, 3)\n else\n return config[p];\n}\n\nexport function getConfig (configName) {\n if (configName) {\n if (configNames.indexOf(configName) !== -1)\n return getConfigItem(this[CONFIG], configName);\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\n }\n\n var cfg = {};\n for (var i = 0; i < configNames.length; i++) {\n var p = configNames[i];\n var configItem = getConfigItem(this[CONFIG], p);\n if (configItem !== undefined)\n cfg[p] = configItem;\n }\n return cfg;\n}\n\nexport function setConfig (cfg, isEnvConfig) {\n var loader = this;\n var config = this[CONFIG];\n\n if ('warnings' in cfg)\n config.warnings = cfg.warnings;\n\n if ('wasm' in cfg)\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\n\n if ('production' in cfg || 'build' in cfg)\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\n\n if (!isEnvConfig) {\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\n // these exceptions will be unnecessary when we can properly implement config queuings\n var baseURL;\n envSet(loader, cfg, function(cfg) {\n baseURL = baseURL || cfg.baseURL;\n });\n baseURL = baseURL || cfg.baseURL;\n\n // always configure baseURL first\n if (baseURL) {\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n envSet(loader, cfg, function(cfg) {\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n });\n\n for (var p in config.paths) {\n if (config.paths[p].indexOf('*') === -1)\n continue;\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\n delete config.paths[p];\n }\n }\n\n if (cfg.defaultJSExtensions)\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\n\n if (typeof cfg.pluginFirst === 'boolean')\n config.pluginFirst = cfg.pluginFirst;\n\n if (cfg.map) {\n for (var p in cfg.map) {\n var v = cfg.map[p];\n\n if (typeof v === 'string') {\n config.map[p] = coreResolve.call(loader, config, v, undefined, false);\n }\n\n // object map\n else {\n var pkgName = coreResolve.call(loader, config, p, undefined, true);\n var pkg = config.packages[pkgName];\n if (!pkg) {\n pkg = config.packages[pkgName] = createPackage();\n // use '' instead of false to keep type consistent\n pkg.defaultExtension = '';\n }\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\n }\n }\n }\n\n if (cfg.packageConfigPaths) {\n var packageConfigPaths = [];\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\n var path = cfg.packageConfigPaths[i];\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false);\n packageConfigPaths[i] = normalized + path.substr(packageLength);\n }\n config.packageConfigPaths = packageConfigPaths;\n }\n\n if (cfg.bundles) {\n for (var p in cfg.bundles) {\n var bundle = [];\n for (var i = 0; i < cfg.bundles[p].length; i++)\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\n config.bundles[p] = bundle;\n }\n }\n\n if (cfg.packages) {\n for (var p in cfg.packages) {\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\n throw new TypeError('\"' + p + '\" is not a valid package name.');\n\n var pkgName = coreResolve.call(loader, config, p[p.length -1] !== '/' ? p + '/' : p, undefined, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\n }\n }\n\n if (cfg.depCache) {\n for (var p in cfg.depCache)\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\n }\n\n if (cfg.meta) {\n for (var p in cfg.meta) {\n // base wildcard stays base\n if (p[0] === '*') {\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\n }\n else {\n var resolved = coreResolve.call(loader, config, p, undefined, true);\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\n }\n }\n }\n\n if ('transpiler' in cfg)\n config.transpiler = cfg.transpiler;\n\n\n // copy any remaining non-standard configuration properties\n for (var c in cfg) {\n if (configNames.indexOf(c) !== -1)\n continue;\n if (envConfigNames.indexOf(c) !== -1)\n continue;\n\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\n loader[c] = cfg[c];\n }\n\n envSet(loader, cfg, function(cfg) {\n loader.config(cfg, true);\n });\n}\n\nexport function createPackage () {\n return {\n defaultExtension: undefined,\n main: undefined,\n format: undefined,\n meta: undefined,\n map: undefined,\n packageConfig: undefined,\n configured: false\n };\n}\n\n// deeply-merge (to first level) config with any existing package config\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\n for (var prop in cfg) {\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\n if (!prependConfig || pkg[prop] === undefined)\n pkg[prop] = cfg[prop];\n }\n else if (prop === 'map') {\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\n }\n else if (prop === 'meta') {\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\n }\n else if (Object.hasOwnProperty.call(cfg, prop)) {\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\n }\n }\n\n // default defaultExtension for packages only\n if (pkg.defaultExtension === undefined)\n pkg.defaultExtension = 'js';\n\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\n pkg.main = pkg.map['.'];\n delete pkg.map['.'];\n }\n // main object becomes main map\n else if (typeof pkg.main === 'object') {\n pkg.map = pkg.map || {};\n pkg.map['./@main'] = pkg.main;\n pkg.main['default'] = pkg.main['default'] || './';\n pkg.main = '@main';\n }\n\n return pkg;\n}\n","import { isBrowser, global } from './common.js';\n\nvar hasBuffer = typeof Buffer !== 'undefined';\ntry {\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\n hasBuffer = false;\n}\ncatch (e) {\n hasBuffer = false;\n}\n\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\nfunction inlineSourceMap (sourceMapString) {\n if (hasBuffer)\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\n else if (typeof btoa !== 'undefined')\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\n else\n return '';\n}\n\nfunction getSource(source, sourceMap, address, wrap) {\n var lastLineIndex = source.lastIndexOf('\\n');\n\n if (sourceMap) {\n if (typeof sourceMap != 'object')\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\n\n sourceMap = JSON.stringify(sourceMap);\n }\n\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\n // adds the sourceURL comment if not already present\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\n // add sourceMappingURL if load.metadata.sourceMap is set\n + (sourceMap && inlineSourceMap(sourceMap) || '');\n}\n\n// script execution via injecting a script tag into the page\n// this allows CSP nonce to be set for CSP environments\nvar head;\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\n if (!head)\n head = document.head || document.body || document.documentElement;\n\n var script = document.createElement('script');\n script.text = getSource(source, sourceMap, address, false);\n var onerror = window.onerror;\n var e;\n window.onerror = function(_e) {\n e = addToError(_e, 'Evaluating ' + address);\n if (onerror)\n onerror.apply(this, arguments);\n }\n preExec(loader);\n\n if (nonce)\n script.setAttribute('nonce', nonce);\n\n head.appendChild(script);\n head.removeChild(script);\n postExec();\n window.onerror = onerror;\n if (e)\n return e;\n}\n\nvar vm;\nvar useVm;\n\nvar curSystem;\n\nvar callCounter = 0;\nfunction preExec (loader) {\n if (callCounter++ == 0)\n curSystem = global.System;\n global.System = global.SystemJS = loader;\n}\nfunction postExec () {\n if (--callCounter == 0)\n global.System = global.SystemJS = curSystem;\n}\n\nvar supportsScriptExec = false;\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\n supportsScriptExec = true;\n}\n\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\n if (!source)\n return;\n if (nonce && supportsScriptExec)\n return scriptExec(loader, source, sourceMap, address, nonce);\n try {\n preExec(loader);\n // global scoped eval for node (avoids require scope leak)\n if (!vm && loader._nodeRequire) {\n vm = loader._nodeRequire('vm');\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\n }\n if (useVm)\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\n else\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\n postExec();\n }\n catch (e) {\n postExec();\n return e;\n }\n}\n","\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\n\nexport default function (loader) {\n loader.set('@@cjs-helpers', loader.newModule({\n requireResolve: requireResolve.bind(loader),\n getPathVars: getPathVars\n }));\n\n loader.set('@@global-helpers', loader.newModule({\n prepareGlobal: prepareGlobal\n }));\n\n /*\n AMD-compatible require\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\n */\n function require (names, callback, errback, referer) {\n // in amd, first arg can be a config object... we just ignore\n if (typeof names === 'object' && !(names instanceof Array))\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\n\n // amd require\n if (typeof names === 'string' && typeof callback === 'function')\n names = [names];\n if (names instanceof Array) {\n var dynamicRequires = [];\n for (var i = 0; i < names.length; i++)\n dynamicRequires.push(loader.import(names[i], referer));\n Promise.all(dynamicRequires).then(function (modules) {\n for (var i = 0; i < modules.length; i++)\n modules[i] = modules[i].__useDefault ? modules[i].default : modules[i];\n if (callback)\n callback.apply(null, modules);\n }, errback);\n }\n\n // commonjs require\n else if (typeof names === 'string') {\n var normalized = loader.decanonicalize(names, referer);\n var module = loader.get(normalized);\n if (!module)\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\n return module.__useDefault ? module.default : module;\n }\n\n else\n throw new TypeError('Invalid require');\n }\n\n function define (name, deps, factory) {\n if (typeof name !== 'string') {\n factory = deps;\n deps = name;\n name = null;\n }\n\n if (!(deps instanceof Array)) {\n factory = deps;\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\n }\n\n if (typeof factory !== 'function')\n factory = (function (factory) {\n return function() { return factory; }\n })(factory);\n\n if (!name) {\n if (curMetaDeps) {\n deps = deps.concat(curMetaDeps);\n curMetaDeps = undefined;\n }\n }\n\n // remove system dependencies\n var requireIndex, exportsIndex, moduleIndex;\n\n if ((requireIndex = deps.indexOf('require')) !== -1) {\n\n deps.splice(requireIndex, 1);\n\n // only trace cjs requires for non-named\n // named defines assume the trace has already been done\n if (!name)\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\n }\n\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\n deps.splice(exportsIndex, 1);\n\n if ((moduleIndex = deps.indexOf('module')) !== -1)\n deps.splice(moduleIndex, 1);\n\n function execute (req, exports, module) {\n var depValues = [];\n for (var i = 0; i < deps.length; i++)\n depValues.push(req(deps[i]));\n\n module.uri = module.id;\n\n module.config = noop;\n\n // add back in system dependencies\n if (moduleIndex !== -1)\n depValues.splice(moduleIndex, 0, module);\n\n if (exportsIndex !== -1)\n depValues.splice(exportsIndex, 0, exports);\n\n if (requireIndex !== -1) {\n var contextualRequire = function (names, callback, errback) {\n if (typeof names === 'string' && typeof callback !== 'function')\n return req(names);\n return require.call(loader, names, callback, errback, module.id);\n };\n contextualRequire.toUrl = function (name) {\n return loader.normalizeSync(name, module.id);\n };\n depValues.splice(requireIndex, 0, contextualRequire);\n }\n\n // set global require to AMD require\n var curRequire = global.require;\n global.require = require;\n\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\n\n global.require = curRequire;\n\n if (typeof output !== 'undefined')\n module.exports = output;\n }\n\n // anonymous define\n if (!name) {\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\n }\n else {\n loader.registerDynamic(name, deps, false, execute);\n\n // if we don't have any other defines,\n // then let this be an anonymous define\n // this is just to support single modules of the form:\n // define('jquery')\n // still loading anonymously\n // because it is done widely enough to be useful\n // as soon as there is more than one define, this gets removed though\n if (lastNamedDefine) {\n lastNamedDefine = undefined;\n multipleNamedDefines = true;\n }\n else if (!multipleNamedDefines) {\n lastNamedDefine = [deps, execute];\n }\n }\n }\n define.amd = {};\n\n loader.amdDefine = define;\n loader.amdRequire = require;\n}\n\n// CJS\nvar windowOrigin;\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\n\nfunction stripOrigin(path) {\n if (path.substr(0, 8) === 'file:///')\n return path.substr(7 + !!isWindows);\n\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\n return path.substr(windowOrigin.length);\n\n return path;\n}\n\nexport function requireResolve (request, parentId) {\n return stripOrigin(this.normalizeSync(request, parentId));\n}\n\nexport function getPathVars (moduleId) {\n // remove any plugin syntax\n var pluginIndex = moduleId.lastIndexOf('!');\n var filename;\n if (pluginIndex !== -1)\n filename = moduleId.substr(0, pluginIndex);\n else\n filename = moduleId;\n\n var dirname = filename.split('/');\n dirname.pop();\n dirname = dirname.join('/');\n\n return {\n filename: stripOrigin(filename),\n dirname: stripOrigin(dirname)\n };\n}\n\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\n// extract CJS dependencies from source text via regex static analysis\n// read require('x') statements not in comments or strings\nexport function getCJSDeps (source) {\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n\n // track string and comment locations for unminified source\n var stringLocations = [], commentLocations = [];\n\n function inLocation (locations, match) {\n for (var i = 0; i < locations.length; i++)\n if (locations[i][0] < match.index && locations[i][1] > match.index)\n return true;\n return false;\n }\n\n if (source.length / source.split('\\n').length < 200) {\n while (match = stringRegEx.exec(source))\n stringLocations.push([match.index, match.index + match[0].length]);\n\n // TODO: track template literals here before comments\n\n while (match = commentRegEx.exec(source)) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match))\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\n }\n }\n\n while (match = cjsRequireRegEx.exec(source)) {\n // ensure we're not within a string or comment location\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\n var dep = match[1].substr(1, match[1].length - 2);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/))\n continue;\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\n// Global\n// bare minimum ignores\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\n 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\n\nvar globalSnapshot;\nfunction globalIterator (globalName) {\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\n return;\n try {\n var value = global[globalName];\n }\n catch (e) {\n ignoredGlobalProps.push(globalName);\n }\n this(globalName, value);\n}\n\nexport function getGlobalValue (exports) {\n if (typeof exports === 'string')\n return readMemberExpression(exports, global);\n\n if (!(exports instanceof Array))\n throw new Error('Global exports must be a string or array.');\n\n var globalValue = {};\n for (var i = 0; i < exports.length; i++)\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\n return globalValue;\n}\n\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\n // disable module detection\n var curDefine = global.define;\n\n global.define = undefined;\n\n // set globals\n var oldGlobals;\n if (globals) {\n oldGlobals = {};\n for (var g in globals) {\n oldGlobals[g] = global[g];\n global[g] = globals[g];\n }\n }\n\n // store a complete copy of the global object in order to detect changes\n if (!exports) {\n globalSnapshot = {};\n\n Object.keys(global).forEach(globalIterator, function (name, value) {\n globalSnapshot[name] = value;\n });\n }\n\n // return function to retrieve global\n return function () {\n var globalValue = exports ? getGlobalValue(exports) : {};\n\n var singleGlobal;\n var multipleExports = !!exports;\n\n if (!exports || encapsulate)\n Object.keys(global).forEach(globalIterator, function (name, value) {\n if (globalSnapshot[name] === value)\n return;\n if (value === undefined)\n return;\n\n // allow global encapsulation where globals are removed\n if (encapsulate)\n global[name] = undefined;\n\n if (!exports) {\n globalValue[name] = value;\n\n if (singleGlobal !== undefined) {\n if (!multipleExports && singleGlobal !== value)\n multipleExports = true;\n }\n else {\n singleGlobal = value;\n }\n }\n });\n\n globalValue = multipleExports ? globalValue : singleGlobal;\n\n // revert globals\n if (oldGlobals) {\n for (var g in oldGlobals)\n global[g] = oldGlobals[g];\n }\n global.define = curDefine;\n\n return globalValue;\n };\n}\n\n// AMD\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\nvar wsRegEx = /^\\s+|\\s+$/g;\n\nvar requireRegExs = {};\n\nfunction amdGetCJSDeps(source, requireIndex) {\n\n // remove comments\n source = source.replace(commentRegEx, '');\n\n // determine the require alias\n var params = source.match(fnBracketRegEx);\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\n\n // find or generate the regex for this requireAlias\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\n\n requireRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n while (match = requireRegEx.exec(source))\n deps.push(match[2] || match[3]);\n\n return deps;\n}\n\nfunction wrapEsModuleExecute (execute) {\n return function (require, exports, module) {\n execute(require, exports, module);\n Object.defineProperty(module.exports, '__esModule', {\n value: true\n });\n };\n}\n\n// generate anonymous define from singular named define\nvar multipleNamedDefines = false;\nvar lastNamedDefine;\nvar curMetaDeps;\nvar curEsModule = false;\nexport function clearLastDefine (metaDeps, esModule) {\n curMetaDeps = metaDeps;\n curEsModule = esModule;\n lastNamedDefine = undefined;\n multipleNamedDefines = false;\n}\nexport function registerLastDefine (loader) {\n if (lastNamedDefine)\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\n\n // bundles are an empty module\n else if (multipleNamedDefines)\n loader.registerDynamic([], false, noop);\n}\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript } from './common.js';\nimport { evaluate } from './evaluate.js';\nimport fetch from './fetch.js';\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\n\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\n\n// include the node require since we're overriding it\nexport var nodeRequire;\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\n nodeRequire = require;\n\nfunction setMetaEsModule (metadata, moduleValue) {\n if (metadata.load.esModule && !('__esModule' in moduleValue))\n Object.defineProperty(moduleValue, '__esModule', {\n value: true\n });\n}\n\nexport function instantiate (key, processAnonRegister) {\n var loader = this;\n var config = this[CONFIG];\n var metadata = this[METADATA][key];\n // first do bundles and depCache\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\n .then(function () {\n if (processAnonRegister())\n return;\n\n // node module loading\n if (key.substr(0, 6) === '@node/') {\n if (!loader._nodeRequire)\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\n loader.registerDynamic([], false, function () {\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\n });\n processAnonRegister();\n return;\n }\n\n if (metadata.load.scriptLoad ) {\n if (metadata.load.pluginKey || !supportsScriptLoad) {\n metadata.load.scriptLoad = false;\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\n }\n }\n else if (metadata.load.scriptLoad !== false && supportsScriptLoad) {\n // auto script load AMD, global without deps\n if (!metadata.load.deps && !metadata.load.globals &&\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\n metadata.load.scriptLoad = true;\n }\n\n // fetch / translate / instantiate pipeline\n if (!metadata.load.scriptLoad)\n return initializePlugin(loader, key, metadata)\n .then(function () {\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\n })\n\n // just script loading\n return new Promise(function (resolve, reject) {\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\n\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\n if (!processAnonRegister()) {\n metadata.load.format = 'global';\n var globalValue = getGlobalValue(metadata.load.exports);\n loader.registerDynamic([], false, function () {\n setMetaEsModule(metadata, globalValue);\n return globalValue;\n });\n processAnonRegister();\n }\n\n resolve();\n }, reject);\n });\n })\n .then(function (instantiated) {\n loader[METADATA][key] = undefined;\n return instantiated;\n });\n};\n\nfunction initializePlugin (loader, key, metadata) {\n if (!metadata.pluginKey)\n return resolvedPromise;\n\n return loader.import(metadata.pluginKey).then(function (plugin) {\n metadata.pluginModule = plugin;\n metadata.pluginLoad = {\n name: key,\n address: metadata.pluginArgument,\n source: undefined,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n });\n}\n\nfunction loadBundlesAndDepCache (config, loader, key) {\n // load direct deps, in turn will pick up their trace trees\n var deps = config.depCache[key];\n if (deps) {\n for (var i = 0; i < deps.length; i++)\n loader.normalize(deps[i], key).then(preloadScript);\n }\n else {\n var matched = false;\n for (var b in config.bundles) {\n for (var i = 0; i < config.bundles[b].length; i++) {\n var curModule = config.bundles[b][i];\n\n if (curModule == key) {\n matched = true;\n break;\n }\n\n // wildcard in bundles includes / boundaries\n if (curModule.indexOf('*') != -1) {\n var parts = curModule.split('*');\n if (parts.length != 2) {\n config.bundles[b].splice(i--, 1);\n continue;\n }\n\n if (key.substring(0, parts[0].length) == parts[0] &&\n key.substr(key.length - parts[1].length, parts[1].length) == parts[1]) {\n matched = true;\n break;\n }\n }\n }\n\n if (matched)\n return loader.import(b);\n }\n }\n}\n\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\n if (metadata.load.exports && !metadata.load.format)\n metadata.load.format = 'global';\n\n return resolvedPromise\n\n // locate\n .then(function () {\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\n return;\n\n return metadata.pluginModule.locate.call(loader, metadata.pluginLoad)\n .then(function (address) {\n if (address)\n metadata.pluginLoad.address = address;\n });\n })\n\n // fetch\n .then(function () {\n if (!metadata.pluginModule)\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\n\n if (!metadata.pluginModule.fetch)\n return fetch(metadata.pluginArgument, metadata.load.authorization, metadata.load.integrity, wasm);\n\n wasm = false;\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\n });\n })\n\n .then(function (fetched) {\n // fetch is already a utf-8 string if not doing wasm detection\n if (!wasm || typeof fetched === 'string')\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\n\n var bytes = new Uint8Array(fetched);\n\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return loader.newModule(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var stringSource = new TextDecoder('utf-8').decode(bytes);\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\n })\n}\n\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\n return Promise.resolve(source)\n // translate\n .then(function (source) {\n if (metadata.load.format === 'detect')\n metadata.load.format = undefined;\n\n readMetaSyntax(source, metadata);\n\n if (!metadata.pluginModule || !metadata.pluginModule.translate)\n return source;\n\n metadata.pluginLoad.source = source;\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (translated) {\n if (metadata.load.sourceMap) {\n if (typeof metadata.load.sourceMap !== 'object')\n throw new Error('metadata.load.sourceMap must be set to an object.');\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\n }\n\n if (typeof translated === 'string')\n return translated;\n else\n return metadata.pluginLoad.source;\n });\n })\n .then(function (source) {\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\n metadata.load.format = 'register';\n return source;\n }\n\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\n return source;\n }\n\n metadata.load.format = 'esm';\n return transpile(loader, source, key, metadata, processAnonRegister);\n })\n\n // instantiate\n .then(function (translated) {\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\n return translated;\n\n var calledInstantiate = false;\n metadata.pluginLoad.source = translated;\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\n translated = load.source;\n metadata.load = load.metadata;\n if (calledInstantiate)\n throw new Error('Instantiate must only be called once.');\n calledInstantiate = true;\n }))\n .then(function (result) {\n if (calledInstantiate)\n return translated;\n return protectedCreateNamespace(result);\n });\n })\n .then(function (source) {\n // plugin instantiate result case\n if (typeof source !== 'string')\n return source;\n\n if (!metadata.load.format)\n metadata.load.format = detectLegacyFormat(source);\n\n var registered = false;\n\n switch (metadata.load.format) {\n case 'esm':\n case 'register':\n case 'system':\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n if (!processAnonRegister())\n return emptyModule;\n return;\n break;\n\n case 'json':\n // warn.call(config, '\"json\" module format is deprecated.');\n return loader.newModule({ default: JSON.parse(source), __useDefault: true });\n\n case 'amd':\n var curDefine = global.define;\n global.define = loader.amdDefine;\n\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n\n // if didn't register anonymously, use the last named define if only one\n registered = processAnonRegister();\n if (!registered) {\n registerLastDefine(loader);\n registered = processAnonRegister();\n }\n\n global.define = curDefine;\n\n if (err)\n throw err;\n break;\n\n case 'cjs':\n var metaDeps = metadata.load.deps;\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\n\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n deps.push(metadata.load.globals[g]);\n\n loader.registerDynamic(deps, true, function (require, exports, module) {\n require.resolve = function (key) {\n return requireResolve.call(loader, key, module.id);\n };\n // support module.paths ish\n module.paths = [];\n module.require = require;\n\n // ensure meta deps execute first\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\n for (var i = 0; i < metaDeps.length; i++)\n require(metaDeps[i]);\n\n var pathVars = getPathVars(module.id);\n var __cjsWrapper = {\n exports: exports,\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\n };\n\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\n\n // add metadata.globals to the wrapper arguments\n if (metadata.load.globals)\n for (var g in metadata.load.globals) {\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\n cjsWrapper += \", \" + g;\n }\n\n // disable AMD detection\n var define = global.define;\n global.define = undefined;\n global.__cjsWrapper = __cjsWrapper;\n\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n\n setMetaEsModule(metadata, exports);\n\n global.__cjsWrapper = undefined;\n global.define = define;\n });\n registered = processAnonRegister();\n break;\n\n case 'global':\n var deps = metadata.load.deps || [];\n for (var g in metadata.load.globals) {\n var gl = metadata.load.globals[g];\n if (gl)\n deps.push(gl);\n }\n\n loader.registerDynamic(deps, false, function (require, exports, module) {\n var globals;\n if (metadata.load.globals) {\n globals = {};\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n globals[g] = require(metadata.load.globals[g]);\n }\n\n var exportName = metadata.load.exports;\n\n if (exportName)\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\n\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\n\n if (err)\n throw err;\n\n var output = retrieveGlobal();\n setMetaEsModule(metadata, output);\n return output;\n });\n registered = processAnonRegister();\n break;\n\n default:\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\n }\n\n if (!registered)\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\n });\n}\n\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\n\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\nexport var esmRegEx = /(^\\s*|[}\\);\\n]\\s*)(import\\s*(['\"]|(\\*\\s+as\\s+)?[^\"'\\(\\)\\n;]+\\s*from\\s*['\"]|\\{)|export\\s+\\*\\s+from\\s+[\"']|export\\s*(\\{|default|function|class|var|const|let|async\\s+function))/;\n\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\nexport function detectRegisterFormat(source) {\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\n return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';\n}\n\n// AMD Module Format Detection RegEx\n// define([.., .., ..], ...)\n// define(varName); || define(function(require, exports) {}); || define({})\nvar amdRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\n\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\n\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\nexport function detectLegacyFormat (source) {\n if (source.match(amdRegEx))\n return 'amd';\n\n cjsExportsRegEx.lastIndex = 0;\n cjsRequireRegEx.lastIndex = 0;\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\n return 'cjs';\n\n // global is the fallback format\n return 'global';\n}\n\nfunction sanitizeSourceMap (address, sourceMap) {\n var originalName = address.split('!')[0];\n\n // force set the filename of the original file\n if (!sourceMap.file || sourceMap.file == address)\n sourceMap.file = originalName + '!transpiled';\n\n // force set the sources list if only one source\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\n sourceMap.sources = [originalName];\n}\n\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\n if (!loader.transpiler)\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\n\n // deps support for es transpile\n if (metadata.load.deps) {\n var depsPrefix = '';\n for (var i = 0; i < metadata.load.deps.length; i++)\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\n source = depsPrefix + source;\n }\n\n // do transpilation\n return loader.import.call(loader, loader.transpiler)\n .then(function (transpiler) {\n if (transpiler.__useDefault)\n transpiler = transpiler.default;\n\n // translate hooks means this is a transpiler plugin instead of a raw implementation\n if (!transpiler.translate)\n throw new Error(loader.transpier + ' is not a valid transpiler plugin.');\n\n // if transpiler is the same as the plugin loader, then don't run twice\n if (transpiler === metadata.pluginModule)\n return load.source;\n\n // convert the source map into an object for transpilation chaining\n if (typeof metadata.load.sourceMap === 'string')\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\n\n metadata.pluginLoad = metadata.pluginLoad || {\n name: key,\n address: key,\n source: source,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (source) {\n // sanitize sourceMap if an object not a JSON string\n var sourceMap = metadata.load.sourceMap;\n if (sourceMap && typeof sourceMap === 'object')\n sanitizeSourceMap(key, sourceMap);\n\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\n metadata.load.format = 'register';\n\n return source;\n });\n }, function (err) {\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\n });\n}\n\n// detect any meta header syntax\n// only set if not already set\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\n\nfunction setMetaProperty(target, p, value) {\n var pParts = p.split('.');\n var curPart;\n while (pParts.length > 1) {\n curPart = pParts.shift();\n target = target[curPart] = target[curPart] || {};\n }\n curPart = pParts.shift();\n if (target[curPart] === undefined)\n target[curPart] = value;\n}\n\nfunction readMetaSyntax (source, metadata) {\n var meta = source.match(metaRegEx);\n if (!meta)\n return;\n\n var metaParts = meta[0].match(metaPartRegEx);\n\n for (var i = 0; i < metaParts.length; i++) {\n var curPart = metaParts[i];\n var len = curPart.length;\n\n var firstChar = curPart.substr(0, 1);\n if (curPart.substr(len - 1, 1) == ';')\n len--;\n\n if (firstChar != '\"' && firstChar != \"'\")\n continue;\n\n var metaString = curPart.substr(1, curPart.length - 3);\n var metaName = metaString.substr(0, metaString.indexOf(' '));\n\n if (metaName) {\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\n\n if (metaName === 'deps')\n metaName = 'deps[]';\n\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\n metaName = metaName.substr(0, metaName.length - 2);\n metadata.load[metaName] = metadata.load[metaName] || [];\n metadata.load[metaName].push(metaValue);\n }\n // \"use strict\" is not meta\n else if (metaName !== 'use') {\n setMetaProperty(metadata.load, metaName, metaValue);\n }\n }\n else {\n metadata.load[metaString] = true;\n }\n }\n}\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule, isModule } from './common.js';\n\nimport { getConfig, getConfigItem, setConfig } from './config.js';\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\nimport { instantiate, nodeRequire } from './instantiate.js';\nimport formatHelpers from './format-helpers.js';\n\nexport default SystemJSLoader;\n\nvar scriptSrc;\n\n// Promise detection and error message\nif (typeof Promise === 'undefined')\n throw new Error('SystemJS needs a Promise polyfill.');\n\nif (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n var curScript = scripts[scripts.length - 1];\n if (document.currentScript && (curScript.defer || curScript.async))\n curScript = document.currentScript;\n\n scriptSrc = curScript && curScript.src;\n}\n// worker\nelse if (typeof importScripts !== 'undefined') {\n try {\n throw new Error('_');\n }\n catch (e) {\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\n scriptSrc = url;\n });\n }\n}\n// node\nelse if (typeof __filename !== 'undefined') {\n scriptSrc = __filename;\n}\n\nfunction SystemJSLoader () {\n RegisterLoader.call(this);\n\n // NB deprecate\n this._loader = {};\n\n // internal metadata store\n this[METADATA] = {};\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n\n packageConfigPaths: [],\n packageConfigKeys: [],\n map: {},\n packages: {},\n depCache: {},\n meta: {},\n bundles: {},\n\n production: false,\n\n transpiler: undefined,\n loadedBundles: {},\n\n // global behaviour flags\n warnings: false,\n pluginFirst: false,\n\n // enable wasm loading and detection when supported\n wasm: false\n };\n\n // make the location of the system.js script accessible (if any)\n this.scriptSrc = scriptSrc;\n\n this._nodeRequire = nodeRequire;\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n\n setProduction.call(this, false, false);\n\n // add module format helpers\n formatHelpers(this);\n}\n\nexport var envModule;\nexport function setProduction (isProduction, isBuilder) {\n this[CONFIG].production = isProduction;\n this.registry.set('@system-env', envModule = this.newModule({\n browser: isBrowser,\n node: !!this._nodeRequire,\n production: !isBuilder && isProduction,\n dev: isBuilder || !isProduction,\n build: isBuilder,\n 'default': true\n }));\n}\n\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\n\nSystemJSLoader.prototype.constructor = SystemJSLoader;\n\n// NB deprecate normalize\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\n\nSystemJSLoader.prototype.load = function (key, parentKey) {\n warn.call(this[CONFIG], 'System.load is deprecated.');\n return this.import(key, parentKey);\n};\n\n// NB deprecate decanonicalize, normalizeSync\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\n\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\n\nSystemJSLoader.prototype.config = setConfig;\nSystemJSLoader.prototype.getConfig = getConfig;\n\nSystemJSLoader.prototype.global = global;\n\nSystemJSLoader.prototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\n\nvar hasProxy = typeof Proxy !== 'undefined';\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\n Object.defineProperty(SystemJSLoader.prototype, configName, {\n get: function () {\n var cfg = getConfigItem(this[CONFIG], configName);\n\n if (hasProxy && typeof cfg === 'object')\n cfg = new Proxy(cfg, {\n set: function (target, option) {\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\n }\n });\n\n //if (typeof cfg === 'object')\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\n return cfg;\n },\n set: function (name) {\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\n }\n });\n})(configNames[i]);\n\n/*\n * Backwards-compatible registry API, to be deprecated\n */\nfunction registryWarn(loader, method) {\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\n}\nSystemJSLoader.prototype.delete = function (key) {\n registryWarn(this, 'delete');\n this.registry.delete(key);\n};\nSystemJSLoader.prototype.get = function (key) {\n registryWarn(this, 'get');\n return this.registry.get(key);\n};\nSystemJSLoader.prototype.has = function (key) {\n registryWarn(this, 'has');\n return this.registry.has(key);\n};\nSystemJSLoader.prototype.set = function (key, module) {\n registryWarn(this, 'set');\n return this.registry.set(key, module);\n};\nSystemJSLoader.prototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\nSystemJSLoader.prototype.isModule = isModule;\n\n// ensure System.register and System.registerDynamic decanonicalize\nSystemJSLoader.prototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSLoader from './systemjs-loader.js';\n\nSystemJSLoader.prototype.version = VERSION;\n\nvar System = new SystemJSLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker)\n global.SystemJS = global.System = System;\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]} \ No newline at end of file diff --git a/dist/system.src.js b/dist/system.src.js index 213130c1..49d7fa59 100644 --- a/dist/system.src.js +++ b/dist/system.src.js @@ -1,5 +1,5 @@ /* - * SystemJS v0.20.2 Dev + * SystemJS v0.20.3 Dev */ (function () { 'use strict'; @@ -1156,6 +1156,13 @@ function protectedCreateNamespace (bindings) { return new ModuleNamespace({ default: bindings, __useDefault: true }); } +var hasStringTag; +function isModule (m) { + if (hasStringTag === undefined) + hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag; + return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]'; +} + var CONFIG = createSymbol('loader-config'); var METADATA = createSymbol('metadata'); @@ -2589,9 +2596,9 @@ function setConfig (cfg, isEnvConfig) { continue; if (envConfigNames.indexOf(c) !== -1) continue; - // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.'); - config[c] = cfg[c]; + // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.'); + loader[c] = cfg[c]; } envSet(loader, cfg, function(cfg) { @@ -3921,6 +3928,7 @@ SystemJSLoader$1.prototype.set = function (key, module) { SystemJSLoader$1.prototype.newModule = function (bindings) { return new ModuleNamespace(bindings); }; +SystemJSLoader$1.prototype.isModule = isModule; // ensure System.register and System.registerDynamic decanonicalize SystemJSLoader$1.prototype.register = function (key, deps, declare) { @@ -3935,7 +3943,7 @@ SystemJSLoader$1.prototype.registerDynamic = function (key, deps, executingRequi return RegisterLoader$1.prototype.registerDynamic.call(this, key, deps, executingRequire, execute); }; -SystemJSLoader$1.prototype.version = "0.20.2 Dev"; +SystemJSLoader$1.prototype.version = "0.20.3 Dev"; var System = new SystemJSLoader$1(); diff --git a/dist/system.src.js.map b/dist/system.src.js.map index f2920881..248f67d4 100644 --- a/dist/system.src.js.map +++ b/dist/system.src.js.map @@ -1 +1 @@ -{"version":3,"file":"system.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/fetch.js","../src/resolve.js","../src/config.js","../src/evaluate.js","../src/format-helpers.js","../src/instantiate.js","../src/systemjs-loader.js","../src/system.js"],"sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { isWindows } from './common.js';\n\n/*\n * Source loading\n */\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\n // fetch doesn't support file:/// urls\n if (url.substr(0, 8) === 'file:///') {\n if (hasXhr)\n return xhrFetch(url, authorization, integrity, asBuffer);\n else\n throw new Error('Unable to fetch file URLs in this environment.');\n }\n\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var opts = {\n // NB deprecate\n headers: { Accept: 'application/x-es-module, */*' }\n };\n\n if (integrity)\n opts.integrity = integrity;\n\n if (authorization) {\n if (typeof authorization == 'string')\n opts.headers['Authorization'] = authorization;\n opts.credentials = 'include';\n }\n\n return fetch(url, opts)\n .then(function(res) {\n if (res.ok)\n return asBuffer ? res.arrayBuffer() : res.text();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n });\n}\n\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\n return new Promise(function (resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var xhr = new XMLHttpRequest();\n if (asBuffer)\n xhr.responseType = 'arraybuffer';\n function load() {\n resolve(asBuffer ? xhr.response : xhr.responseText);\n }\n function error() {\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // in Chrome on file:/// URLs, status is 0\n if (xhr.status == 0) {\n if (xhr.response) {\n load();\n }\n else {\n // when responseText is empty, wait for load or error event\n // to inform if it is a 404 or empty file\n xhr.addEventListener('error', error);\n xhr.addEventListener('load', load);\n }\n }\n else if (xhr.status === 200) {\n load();\n }\n else {\n error();\n }\n }\n };\n xhr.open(\"GET\", url, true);\n\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\n // can set \"authorization: true\" to enable withCredentials only\n if (authorization) {\n if (typeof authorization == 'string')\n xhr.setRequestHeader('Authorization', authorization);\n xhr.withCredentials = true;\n }\n }\n\n xhr.send(null);\n });\n}\n\nvar fs;\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\n if (url.substr(0, 8) != 'file:///')\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node.'));\n\n fs = fs || require('fs');\n if (isWindows)\n url = url.replace(/\\//g, '\\\\').substr(8);\n else\n url = url.substr(7);\n\n return new Promise(function (resolve, reject) {\n fs.readFile(url, function(err, data) {\n if (err) {\n return reject(err);\n }\n else {\n if (asBuffer) {\n resolve(data);\n }\n else {\n // Strip Byte Order Mark out if it's the leading char\n var dataString = data + '';\n if (dataString[0] === '\\ufeff')\n dataString = dataString.substr(1);\n\n resolve(dataString);\n }\n }\n });\n });\n}\n\nfunction noFetch () {\n throw new Error('No fetch method is defined for this environment.');\n}\n\nvar fetchFunction;\n\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\n\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\n fetchFunction = fetchFetch;\nelse if (hasXhr)\n fetchFunction = xhrFetch;\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\n fetchFunction = nodeFetch;\nelse\n fetchFunction = noFetch;\n\nexport default fetchFunction;\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\nimport { setPkgConfig, createPackage } from './config.js';\nimport fetch from './fetch.js';\n\nexport function createMetadata () {\n return {\n pluginKey: undefined,\n pluginArgument: undefined,\n pluginModule: undefined,\n packageKey: undefined,\n packageConfig: undefined,\n load: undefined\n };\n}\n\nfunction getCoreParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n }\n\n return parentMetadata;\n}\n\nfunction getParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n\n // detect parent package\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\n if (parentMetadata.packageKey)\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\n }\n\n return parentMetadata;\n}\n\nexport function normalize (key, parentKey) {\n var config = this[CONFIG];\n\n var metadata = createMetadata();\n var parentMetadata = getParentMetadata(this, config, parentKey);\n\n var loader = this;\n\n return Promise.resolve()\n\n // boolean conditional\n .then(function () {\n // first we normalize the conditional\n var booleanIndex = key.lastIndexOf('#?');\n\n if (booleanIndex === -1)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.resolve(conditionObj.module, parentKey)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\n });*/\n\n return resolveCondition.call(loader, conditionObj, parentKey, true)\n .then(function (conditionValue) {\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\n });\n })\n\n // plugin\n .then(function (key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n if (!parsed)\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\n\n metadata.pluginKey = parsed.plugin;\n\n return Promise.all([\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\n loader.resolve(parsed.plugin, parentKey)\n ])\n .then(function (normalized) {\n metadata.pluginArgument = normalized[0];\n metadata.pluginKey = normalized[1];\n\n // don't allow a plugin to load itself\n if (metadata.pluginArgument === metadata.pluginKey)\n throw new Error('Plugin ' + metadata.pluginArgument + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');\n\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\n });\n })\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\n })\n .then(function (normalized) {\n setMeta.call(loader, config, normalized, metadata);\n\n if (metadata.pluginKey || !metadata.load.loader)\n return normalized;\n\n // loader by configuration\n // normalizes to parent to support package loaders\n return loader.resolve(metadata.load.loader, normalized)\n .then(function (pluginKey) {\n metadata.pluginKey = pluginKey;\n metadata.pluginArgument = normalized;\n return normalized;\n });\n })\n .then(function (normalized) {\n loader[METADATA][normalized] = metadata;\n return normalized;\n });\n}\n\n// normalization function used for registry keys\n// just does coreResolve without map\nexport function decanonicalize (config, key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false), pluginKey);\n }\n\n return coreResolve.call(this, config, key, undefined, false);\n}\n\nexport function normalizeSync (key, parentKey) {\n var config = this[CONFIG];\n\n // normalizeSync is metadataless, so create metadata\n var metadata = createMetadata();\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\n\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\n return combinePluginParts(config.pluginFirst,\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\n metadata.pluginKey);\n }\n\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\n}\n\nexport function coreResolve (config, key, parentKey, doMap) {\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\n\n // standard URL resolution\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\n if (doMap) {\n var mapMatch = getMapMatch(config.map, key);\n\n if (mapMatch) {\n key = config.map[mapMatch] + key.substr(mapMatch.length);\n\n relativeResolved = resolveIfNotPlain(key, baseURI);\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n }\n }\n\n if (this.registry.has(key))\n return key;\n\n if (key.substr(0, 6) === '@node/')\n return key;\n\n return applyPaths(config.baseURL, config.paths, key);\n}\n\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n var normalized = coreResolve.call(this, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return normalized;\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n return normalized;\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n}\n\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n var loader = this;\n\n return resolvedPromise\n .then(function () {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch)\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n }\n\n return resolvedPromise;\n })\n .then(function (mapped) {\n if (mapped)\n return mapped;\n\n // apply map, core, paths, contextual package map\n var normalized = coreResolve.call(loader, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return Promise.resolve(normalized);\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n metadata.load = createMeta();\n metadata.load.format = 'json';\n return Promise.resolve(normalized);\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\n\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\n .then(function () {\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n });\n });\n}\n\nfunction createMeta () {\n return {\n extension: '',\n deps: undefined,\n format: undefined,\n loader: undefined,\n scriptLoad: undefined,\n globals: undefined,\n nonce: undefined,\n integrity: undefined,\n sourceMap: undefined,\n exports: undefined,\n encapsulateGlobal: false,\n crossOrigin: undefined,\n cjsRequireDetection: true,\n cjsDeferDepsExecute: false,\n esModule: false\n };\n}\n\nfunction setMeta (config, key, metadata) {\n metadata.load = metadata.load || createMeta();\n\n // apply wildcard metas\n var bestDepth = 0;\n var wildcardIndex;\n for (var module in config.meta) {\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\n var depth = module.split('/').length;\n if (depth > bestDepth)\n bestDepth = depth;\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\n }\n }\n\n // apply exact meta\n if (config.meta[key])\n extendMeta(metadata.load, config.meta[key], false);\n\n // apply package meta\n if (metadata.packageKey) {\n var subPath = key.substr(metadata.packageKey.length + 1);\n\n var meta = {};\n if (metadata.packageConfig.meta) {\n var bestDepth = 0;\n\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth > bestDepth)\n bestDepth = matchDepth;\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\n });\n\n extendMeta(metadata.load, meta, false);\n }\n\n // format\n if (metadata.packageConfig.format && !metadata.pluginKey)\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\n }\n}\n\nfunction parsePlugin (pluginFirst, key) {\n var argumentKey;\n var pluginKey;\n\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\n\n if (pluginIndex === -1)\n return;\n\n if (pluginFirst) {\n argumentKey = key.substr(pluginIndex + 1);\n pluginKey = key.substr(0, pluginIndex);\n }\n else {\n argumentKey = key.substr(0, pluginIndex);\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\n }\n\n return {\n argument: argumentKey,\n plugin: pluginKey\n };\n}\n\n// put key back together after parts have been normalized\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\n if (pluginFirst)\n return pluginKey + '!' + argumentKey;\n else\n return argumentKey + '!' + pluginKey;\n}\n\n/*\n * Package Configuration Extension\n *\n * Example:\n *\n * SystemJS.packages = {\n * jquery: {\n * main: 'index.js', // when not set, package key is requested directly\n * format: 'amd',\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\n * modules: {\n * '*.ts': {\n * loader: 'typescript'\n * },\n * 'vendor/sizzle.js': {\n * format: 'global'\n * }\n * },\n * map: {\n * // map internal require('sizzle') to local require('./vendor/sizzle')\n * sizzle: './vendor/sizzle.js',\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\n * './vendor/another.js': './another/index.js',\n * // test.js / test -> lib/test.js\n * './test.js': './lib/test.js',\n *\n * // environment-specific map configurations\n * './index.js': {\n * '~browser': './index-node.js',\n * './custom-condition.js|~export': './index-custom.js'\n * }\n * },\n * // allows for setting package-prefixed depCache\n * // keys are normalized module keys relative to the package itself\n * depCache: {\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\n * './index.js': ['./test'],\n * './test.js': ['external-dep'],\n * 'external-dep/path.js': ['./another.js']\n * }\n * }\n * };\n *\n * Then:\n * import 'jquery' -> jquery/index.js\n * import 'jquery/submodule' -> jquery/submodule.js\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\n * import 'jquery/vendor/another' -> another/index.js\n *\n * Detailed Behaviours\n * - main can have a leading \"./\" can be added optionally\n * - map and defaultExtension are applied to the main\n * - defaultExtension adds the extension only if the exact extension is not present\n\n * - if a meta value is available for a module, map and defaultExtension are skipped\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\n * - condition module map is '@env' module in package or '@system-env' globally\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\n * - internal package map targets cannot use boolean conditionals\n *\n * Package Configuration Loading\n *\n * Not all packages may already have their configuration present in the System config\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\n * a request, will first request a \".json\" file by the package key to derive the package\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\n * case in SystemJS.\n *\n * Example:\n *\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\n *\n * // will first request 'packages/new-package/package.json' for the package config\n * // before completing the package request to 'packages/new-package/path'\n * SystemJS.import('packages/new-package/path');\n *\n * // will first request 'packages/test/package.json' before the main\n * SystemJS.import('packages/test');\n *\n * When a package matches packageConfigPaths, it will always send a config request for\n * the package configuration.\n * The package key itself is taken to be the match up to and including the last wildcard\n * or trailing slash.\n * The most specific package config path will be used.\n * Any existing package configurations for the package will deeply merge with the\n * package config, with the existing package configurations taking preference.\n * To opt-out of the package configuration request for a package that matches\n * packageConfigPaths, use the { configured: true } package config option.\n *\n */\n\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\n // don't apply extensions to folders or if defaultExtension = false\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\n return subPath;\n\n var metaMatch = false;\n\n // exact meta or meta with any content after the last wildcard skips extension\n if (pkg.meta)\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n // exact global meta or meta with any content after the last wildcard skips extension\n if (!metaMatch && config.meta)\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n if (metaMatch)\n return subPath;\n\n // work out what the defaultExtension is and add if not there already\n var defaultExtension = '.' + pkg.defaultExtension;\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\n return subPath + defaultExtension;\n else\n return subPath;\n}\n\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n else\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return pkgKey;\n }\n\n // map config checking without then with extensions\n if (pkg.map) {\n var mapPath = './' + subPath;\n\n var mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n if (mapMatch) {\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n // normal package resolution\n return pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n}\n\nfunction validMapping (mapMatch, mapped, path) {\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\n // but only if the path is exactly ./x and not ./x/z\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\n return false;\n\n return true;\n}\n\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'object')\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\n\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\n return;\n\n return packageResolveSync.call(this, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\n}\n\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n else\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return Promise.resolve(pkgKey);\n }\n\n // map config checking without then with extensions\n var mapPath, mapMatch;\n\n if (pkg.map) {\n mapPath = './' + subPath;\n mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n }\n\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\n .then(function (mapped) {\n if (mapped)\n return Promise.resolve(mapped);\n\n // normal package resolution / fallback resolution for no conditional match\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions));\n });\n}\n\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'string') {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\n /*if (loader.builder)\n return Promise.resolve(pkgKey + '/#:' + path);*/\n\n // we load all conditions upfront\n var conditionPromises = [];\n var conditions = [];\n for (var e in mapped) {\n var c = parseCondition(e);\n conditions.push({\n condition: c,\n map: mapped[e]\n });\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\n }\n\n // map object -> conditional map\n return Promise.all(conditionPromises)\n .then(function (conditionValues) {\n // first map condition to match is used\n for (var i = 0; i < conditions.length; i++) {\n var c = conditions[i].condition;\n var value = readMemberExpression(c.prop, conditionValues[i].__useDefault ? conditionValues[i].default : conditionValues[i]);\n if (!c.negate && value || c.negate && !value)\n return conditions[i].map;\n }\n })\n .then(function (mapped) {\n if (mapped) {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // no environment match -> fallback to original subPath by returning undefined\n });\n}\n\n// check if the given normalized key matches a packageConfigPath\n// if so, loads the config\nvar packageConfigPaths = {};\n\n// data object for quick checks against package paths\nfunction createPkgConfigPathObj (path) {\n var lastWildcard = path.lastIndexOf('*');\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\n return {\n length: length,\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\n wildcard: lastWildcard !== -1\n };\n}\n\n// most specific match wins\nfunction getPackageConfigMatch (config, normalized) {\n var pkgKey, exactMatch = false, configPath;\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\n var packageConfigPath = config.packageConfigPaths[i];\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\n if (normalized.length < p.length)\n continue;\n var match = normalized.match(p.regEx);\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\n pkgKey = match[1];\n exactMatch = !p.wildcard;\n configPath = pkgKey + packageConfigPath.substr(p.length);\n }\n }\n\n if (!pkgKey)\n return;\n\n return {\n packageKey: pkgKey,\n configPath: configPath\n };\n}\n\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\n var configLoader = loader.pluginLoader || loader;\n\n // ensure we note this is a package config file path\n // it will then be skipped from getting other normalizations itself to ensure idempotency\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\n config.packageConfigKeys.push(pkgConfigPath);\n\n return configLoader.import(pkgConfigPath)\n .then(function (pkgConfig) {\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\n metadata.packageConfig.configured = true;\n })\n .catch(function (err) {\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\n });\n}\n\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\n // wildcard meta\n var wildcardIndex;\n for (var module in pkgMeta) {\n // allow meta to start with ./ for flexibility\n var dotRel = module.substr(0, 2) === './' ? './' : '';\n if (dotRel)\n module = module.substr(2);\n\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\n // alow match function to return true for an exit path\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\n return;\n }\n }\n // exact meta\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\n if (exactMeta)\n matchFn(exactMeta, exactMeta, 0);\n}\n\n\n/*\n * Conditions Extension\n *\n * Allows a condition module to alter the resolution of an import via syntax:\n *\n * import $ from 'jquery/#{browser}';\n *\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\n * take the default export of that module.\n * If the default export is not a string, an error is thrown.\n *\n * We then substitute the string into the require to get the conditional resolution\n * enabling environment-specific variations like:\n *\n * import $ from 'jquery/ie'\n * import $ from 'jquery/firefox'\n * import $ from 'jquery/chrome'\n * import $ from 'jquery/safari'\n *\n * It can be useful for a condition module to define multiple conditions.\n * This can be done via the `|` modifier to specify an export member expression:\n *\n * import 'jquery/#{./browser.js|grade.version}'\n *\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\n *\n *\n * Boolean Conditionals\n *\n * For polyfill modules, that are used as imports but have no module value,\n * a binary conditional allows a module not to be loaded at all if not needed:\n *\n * import 'es5-shim#?./conditions.js|needs-es5shim'\n *\n * These conditions can also be negated via:\n *\n * import 'es5-shim#?./conditions.js|~es6'\n *\n */\n\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\n\nfunction parseCondition (condition) {\n var conditionExport, conditionModule, negation;\n\n var negation;\n var conditionExportIndex = condition.lastIndexOf('|');\n if (conditionExportIndex !== -1) {\n conditionExport = condition.substr(conditionExportIndex + 1);\n conditionModule = condition.substr(0, conditionExportIndex);\n\n if (conditionExport[0] === '~') {\n negation = true;\n conditionExport = conditionExport.substr(1);\n }\n }\n else {\n negation = condition[0] === '~';\n conditionExport = 'default';\n conditionModule = condition.substr(negation);\n if (sysConditions.indexOf(conditionModule) !== -1) {\n conditionExport = conditionModule;\n conditionModule = null;\n }\n }\n\n return {\n module: conditionModule || '@system-env',\n prop: conditionExport,\n negate: negation\n };\n}\n\nfunction resolveCondition (conditionObj, parentKey, bool) {\n // import without __useDefault handling here\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\n .then(function (condition) {\n var m = readMemberExpression(conditionObj.prop, condition);\n\n if (bool && typeof m !== 'boolean')\n throw new TypeError('Condition did not resolve to a boolean.');\n\n return conditionObj.negate ? !m : m;\n });\n}\n\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\nfunction interpolateConditional (key, parentKey, parentMetadata) {\n // first we normalize the conditional\n var conditionalMatch = key.match(interpolationRegEx);\n\n if (!conditionalMatch)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\n });*/\n\n return resolveCondition.call(this, conditionObj, parentKey, false)\n .then(function (conditionValue) {\n if (typeof conditionValue !== 'string')\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\n\n if (conditionValue.indexOf('/') !== -1)\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\n\n return key.replace(interpolationRegEx, conditionValue);\n });\n}\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\nimport { coreResolve } from './resolve.js';\n\n/*\n Extend config merging one deep only\n\n loader.config({\n some: 'random',\n config: 'here',\n deep: {\n config: { too: 'too' }\n }\n });\n\n <=>\n\n loader.some = 'random';\n loader.config = 'here'\n loader.deep = loader.deep || {};\n loader.deep.config = { too: 'too' };\n\n\n Normalizes meta and package configs allowing for:\n\n SystemJS.config({\n meta: {\n './index.js': {}\n }\n });\n\n To become\n\n SystemJS.meta['https://thissite.com/index.js'] = {};\n\n For easy normalization canonicalization with latest URL support.\n\n*/\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\nfunction envSet(loader, cfg, envCallback) {\n for (var i = 0; i < envConfigNames.length; i++) {\n var envConfig = envConfigNames[i];\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\n envCallback(cfg[envConfig]);\n }\n}\n\nfunction cloneObj (obj, maxDepth) {\n var clone = {};\n for (var p in obj) {\n var prop = obj[p];\n if (maxDepth > 1) {\n if (typeof prop === 'object')\n clone[p] = cloneObj(prop, maxDepth - 1);\n else if (p !== 'packageConfig')\n clone[p] = prop;\n }\n else {\n clone[p] = prop;\n }\n }\n return clone;\n}\n\nexport function getConfigItem (config, p) {\n var cfgItem = config[p];\n\n // getConfig must return an unmodifiable clone of the configuration\n if (cfgItem instanceof Array)\n return config[p].concat([]);\n else if (typeof cfgItem === 'object')\n return cloneObj(cfgItem, 3)\n else\n return config[p];\n}\n\nexport function getConfig (configName) {\n if (configName) {\n if (configNames.indexOf(configName) !== -1)\n return getConfigItem(this[CONFIG], configName);\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\n }\n\n var cfg = {};\n for (var i = 0; i < configNames.length; i++) {\n var p = configNames[i];\n var configItem = getConfigItem(this[CONFIG], p);\n if (configItem !== undefined)\n cfg[p] = configItem;\n }\n return cfg;\n}\n\nexport function setConfig (cfg, isEnvConfig) {\n var loader = this;\n var config = this[CONFIG];\n\n if ('warnings' in cfg)\n config.warnings = cfg.warnings;\n\n if ('wasm' in cfg)\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\n\n if ('production' in cfg || 'build' in cfg)\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\n\n if (!isEnvConfig) {\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\n // these exceptions will be unnecessary when we can properly implement config queuings\n var baseURL;\n envSet(loader, cfg, function(cfg) {\n baseURL = baseURL || cfg.baseURL;\n });\n baseURL = baseURL || cfg.baseURL;\n\n // always configure baseURL first\n if (baseURL) {\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n envSet(loader, cfg, function(cfg) {\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n });\n\n for (var p in config.paths) {\n if (config.paths[p].indexOf('*') === -1)\n continue;\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\n delete config.paths[p];\n }\n }\n\n if (cfg.defaultJSExtensions)\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\n\n if (typeof cfg.pluginFirst === 'boolean')\n config.pluginFirst = cfg.pluginFirst;\n\n if (cfg.map) {\n for (var p in cfg.map) {\n var v = cfg.map[p];\n\n if (typeof v === 'string') {\n config.map[p] = coreResolve.call(loader, config, v, undefined, false);\n }\n\n // object map\n else {\n var pkgName = coreResolve.call(loader, config, p, undefined, true);\n var pkg = config.packages[pkgName];\n if (!pkg) {\n pkg = config.packages[pkgName] = createPackage();\n // use '' instead of false to keep type consistent\n pkg.defaultExtension = '';\n }\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\n }\n }\n }\n\n if (cfg.packageConfigPaths) {\n var packageConfigPaths = [];\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\n var path = cfg.packageConfigPaths[i];\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false);\n packageConfigPaths[i] = normalized + path.substr(packageLength);\n }\n config.packageConfigPaths = packageConfigPaths;\n }\n\n if (cfg.bundles) {\n for (var p in cfg.bundles) {\n var bundle = [];\n for (var i = 0; i < cfg.bundles[p].length; i++)\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\n config.bundles[p] = bundle;\n }\n }\n\n if (cfg.packages) {\n for (var p in cfg.packages) {\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\n throw new TypeError('\"' + p + '\" is not a valid package name.');\n\n var pkgName = coreResolve.call(loader, config, p[p.length -1] !== '/' ? p + '/' : p, undefined, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\n }\n }\n\n if (cfg.depCache) {\n for (var p in cfg.depCache)\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\n }\n\n if (cfg.meta) {\n for (var p in cfg.meta) {\n // base wildcard stays base\n if (p[0] === '*') {\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\n }\n else {\n var resolved = coreResolve.call(loader, config, p, undefined, true);\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\n }\n }\n }\n\n if ('transpiler' in cfg)\n config.transpiler = cfg.transpiler;\n\n\n // copy any remaining non-standard configuration properties\n for (var c in cfg) {\n if (configNames.indexOf(c) !== -1)\n continue;\n if (envConfigNames.indexOf(c) !== -1)\n continue;\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\n\n config[c] = cfg[c];\n }\n\n envSet(loader, cfg, function(cfg) {\n loader.config(cfg, true);\n });\n}\n\nexport function createPackage () {\n return {\n defaultExtension: undefined,\n main: undefined,\n format: undefined,\n meta: undefined,\n map: undefined,\n packageConfig: undefined,\n configured: false\n };\n}\n\n// deeply-merge (to first level) config with any existing package config\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\n for (var prop in cfg) {\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\n if (!prependConfig || pkg[prop] === undefined)\n pkg[prop] = cfg[prop];\n }\n else if (prop === 'map') {\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\n }\n else if (prop === 'meta') {\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\n }\n else if (Object.hasOwnProperty.call(cfg, prop)) {\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\n }\n }\n\n // default defaultExtension for packages only\n if (pkg.defaultExtension === undefined)\n pkg.defaultExtension = 'js';\n\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\n pkg.main = pkg.map['.'];\n delete pkg.map['.'];\n }\n // main object becomes main map\n else if (typeof pkg.main === 'object') {\n pkg.map = pkg.map || {};\n pkg.map['./@main'] = pkg.main;\n pkg.main['default'] = pkg.main['default'] || './';\n pkg.main = '@main';\n }\n\n return pkg;\n}\n","import { isBrowser, global } from './common.js';\n\nvar hasBuffer = typeof Buffer !== 'undefined';\ntry {\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\n hasBuffer = false;\n}\ncatch (e) {\n hasBuffer = false;\n}\n\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\nfunction inlineSourceMap (sourceMapString) {\n if (hasBuffer)\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\n else if (typeof btoa !== 'undefined')\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\n else\n return '';\n}\n\nfunction getSource(source, sourceMap, address, wrap) {\n var lastLineIndex = source.lastIndexOf('\\n');\n\n if (sourceMap) {\n if (typeof sourceMap != 'object')\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\n\n sourceMap = JSON.stringify(sourceMap);\n }\n\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\n // adds the sourceURL comment if not already present\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\n // add sourceMappingURL if load.metadata.sourceMap is set\n + (sourceMap && inlineSourceMap(sourceMap) || '');\n}\n\n// script execution via injecting a script tag into the page\n// this allows CSP nonce to be set for CSP environments\nvar head;\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\n if (!head)\n head = document.head || document.body || document.documentElement;\n\n var script = document.createElement('script');\n script.text = getSource(source, sourceMap, address, false);\n var onerror = window.onerror;\n var e;\n window.onerror = function(_e) {\n e = addToError(_e, 'Evaluating ' + address);\n if (onerror)\n onerror.apply(this, arguments);\n }\n preExec(loader);\n\n if (nonce)\n script.setAttribute('nonce', nonce);\n\n head.appendChild(script);\n head.removeChild(script);\n postExec();\n window.onerror = onerror;\n if (e)\n return e;\n}\n\nvar vm;\nvar useVm;\n\nvar curSystem;\n\nvar callCounter = 0;\nfunction preExec (loader) {\n if (callCounter++ == 0)\n curSystem = global.System;\n global.System = global.SystemJS = loader;\n}\nfunction postExec () {\n if (--callCounter == 0)\n global.System = global.SystemJS = curSystem;\n}\n\nvar supportsScriptExec = false;\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\n supportsScriptExec = true;\n}\n\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\n if (!source)\n return;\n if (nonce && supportsScriptExec)\n return scriptExec(loader, source, sourceMap, address, nonce);\n try {\n preExec(loader);\n // global scoped eval for node (avoids require scope leak)\n if (!vm && loader._nodeRequire) {\n vm = loader._nodeRequire('vm');\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\n }\n if (useVm)\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\n else\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\n postExec();\n }\n catch (e) {\n postExec();\n return e;\n }\n}\n","\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\n\nexport default function (loader) {\n loader.set('@@cjs-helpers', loader.newModule({\n requireResolve: requireResolve.bind(loader),\n getPathVars: getPathVars\n }));\n\n loader.set('@@global-helpers', loader.newModule({\n prepareGlobal: prepareGlobal\n }));\n\n /*\n AMD-compatible require\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\n */\n function require (names, callback, errback, referer) {\n // in amd, first arg can be a config object... we just ignore\n if (typeof names === 'object' && !(names instanceof Array))\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\n\n // amd require\n if (typeof names === 'string' && typeof callback === 'function')\n names = [names];\n if (names instanceof Array) {\n var dynamicRequires = [];\n for (var i = 0; i < names.length; i++)\n dynamicRequires.push(loader.import(names[i], referer));\n Promise.all(dynamicRequires).then(function (modules) {\n for (var i = 0; i < modules.length; i++)\n modules[i] = modules[i].__useDefault ? modules[i].default : modules[i];\n if (callback)\n callback.apply(null, modules);\n }, errback);\n }\n\n // commonjs require\n else if (typeof names === 'string') {\n var normalized = loader.decanonicalize(names, referer);\n var module = loader.get(normalized);\n if (!module)\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\n return module.__useDefault ? module.default : module;\n }\n\n else\n throw new TypeError('Invalid require');\n }\n\n function define (name, deps, factory) {\n if (typeof name !== 'string') {\n factory = deps;\n deps = name;\n name = null;\n }\n\n if (!(deps instanceof Array)) {\n factory = deps;\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\n }\n\n if (typeof factory !== 'function')\n factory = (function (factory) {\n return function() { return factory; }\n })(factory);\n\n if (!name) {\n if (curMetaDeps) {\n deps = deps.concat(curMetaDeps);\n curMetaDeps = undefined;\n }\n }\n\n // remove system dependencies\n var requireIndex, exportsIndex, moduleIndex;\n\n if ((requireIndex = deps.indexOf('require')) !== -1) {\n\n deps.splice(requireIndex, 1);\n\n // only trace cjs requires for non-named\n // named defines assume the trace has already been done\n if (!name)\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\n }\n\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\n deps.splice(exportsIndex, 1);\n\n if ((moduleIndex = deps.indexOf('module')) !== -1)\n deps.splice(moduleIndex, 1);\n\n function execute (req, exports, module) {\n var depValues = [];\n for (var i = 0; i < deps.length; i++)\n depValues.push(req(deps[i]));\n\n module.uri = module.id;\n\n module.config = noop;\n\n // add back in system dependencies\n if (moduleIndex !== -1)\n depValues.splice(moduleIndex, 0, module);\n\n if (exportsIndex !== -1)\n depValues.splice(exportsIndex, 0, exports);\n\n if (requireIndex !== -1) {\n var contextualRequire = function (names, callback, errback) {\n if (typeof names === 'string' && typeof callback !== 'function')\n return req(names);\n return require.call(loader, names, callback, errback, module.id);\n };\n contextualRequire.toUrl = function (name) {\n return loader.normalizeSync(name, module.id);\n };\n depValues.splice(requireIndex, 0, contextualRequire);\n }\n\n // set global require to AMD require\n var curRequire = global.require;\n global.require = require;\n\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\n\n global.require = curRequire;\n\n if (typeof output !== 'undefined')\n module.exports = output;\n }\n\n // anonymous define\n if (!name) {\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\n }\n else {\n loader.registerDynamic(name, deps, false, execute);\n\n // if we don't have any other defines,\n // then let this be an anonymous define\n // this is just to support single modules of the form:\n // define('jquery')\n // still loading anonymously\n // because it is done widely enough to be useful\n // as soon as there is more than one define, this gets removed though\n if (lastNamedDefine) {\n lastNamedDefine = undefined;\n multipleNamedDefines = true;\n }\n else if (!multipleNamedDefines) {\n lastNamedDefine = [deps, execute];\n }\n }\n }\n define.amd = {};\n\n loader.amdDefine = define;\n loader.amdRequire = require;\n}\n\n// CJS\nvar windowOrigin;\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\n\nfunction stripOrigin(path) {\n if (path.substr(0, 8) === 'file:///')\n return path.substr(7 + !!isWindows);\n\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\n return path.substr(windowOrigin.length);\n\n return path;\n}\n\nexport function requireResolve (request, parentId) {\n return stripOrigin(this.normalizeSync(request, parentId));\n}\n\nexport function getPathVars (moduleId) {\n // remove any plugin syntax\n var pluginIndex = moduleId.lastIndexOf('!');\n var filename;\n if (pluginIndex !== -1)\n filename = moduleId.substr(0, pluginIndex);\n else\n filename = moduleId;\n\n var dirname = filename.split('/');\n dirname.pop();\n dirname = dirname.join('/');\n\n return {\n filename: stripOrigin(filename),\n dirname: stripOrigin(dirname)\n };\n}\n\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\n// extract CJS dependencies from source text via regex static analysis\n// read require('x') statements not in comments or strings\nexport function getCJSDeps (source) {\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n\n // track string and comment locations for unminified source\n var stringLocations = [], commentLocations = [];\n\n function inLocation (locations, match) {\n for (var i = 0; i < locations.length; i++)\n if (locations[i][0] < match.index && locations[i][1] > match.index)\n return true;\n return false;\n }\n\n if (source.length / source.split('\\n').length < 200) {\n while (match = stringRegEx.exec(source))\n stringLocations.push([match.index, match.index + match[0].length]);\n\n // TODO: track template literals here before comments\n\n while (match = commentRegEx.exec(source)) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match))\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\n }\n }\n\n while (match = cjsRequireRegEx.exec(source)) {\n // ensure we're not within a string or comment location\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\n var dep = match[1].substr(1, match[1].length - 2);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/))\n continue;\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\n// Global\n// bare minimum ignores\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\n 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\n\nvar globalSnapshot;\nfunction globalIterator (globalName) {\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\n return;\n try {\n var value = global[globalName];\n }\n catch (e) {\n ignoredGlobalProps.push(globalName);\n }\n this(globalName, value);\n}\n\nexport function getGlobalValue (exports) {\n if (typeof exports === 'string')\n return readMemberExpression(exports, global);\n\n if (!(exports instanceof Array))\n throw new Error('Global exports must be a string or array.');\n\n var globalValue = {};\n for (var i = 0; i < exports.length; i++)\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\n return globalValue;\n}\n\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\n // disable module detection\n var curDefine = global.define;\n\n global.define = undefined;\n\n // set globals\n var oldGlobals;\n if (globals) {\n oldGlobals = {};\n for (var g in globals) {\n oldGlobals[g] = global[g];\n global[g] = globals[g];\n }\n }\n\n // store a complete copy of the global object in order to detect changes\n if (!exports) {\n globalSnapshot = {};\n\n Object.keys(global).forEach(globalIterator, function (name, value) {\n globalSnapshot[name] = value;\n });\n }\n\n // return function to retrieve global\n return function () {\n var globalValue = exports ? getGlobalValue(exports) : {};\n\n var singleGlobal;\n var multipleExports = !!exports;\n\n if (!exports || encapsulate)\n Object.keys(global).forEach(globalIterator, function (name, value) {\n if (globalSnapshot[name] === value)\n return;\n if (value === undefined)\n return;\n\n // allow global encapsulation where globals are removed\n if (encapsulate)\n global[name] = undefined;\n\n if (!exports) {\n globalValue[name] = value;\n\n if (singleGlobal !== undefined) {\n if (!multipleExports && singleGlobal !== value)\n multipleExports = true;\n }\n else {\n singleGlobal = value;\n }\n }\n });\n\n globalValue = multipleExports ? globalValue : singleGlobal;\n\n // revert globals\n if (oldGlobals) {\n for (var g in oldGlobals)\n global[g] = oldGlobals[g];\n }\n global.define = curDefine;\n\n return globalValue;\n };\n}\n\n// AMD\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\nvar wsRegEx = /^\\s+|\\s+$/g;\n\nvar requireRegExs = {};\n\nfunction amdGetCJSDeps(source, requireIndex) {\n\n // remove comments\n source = source.replace(commentRegEx, '');\n\n // determine the require alias\n var params = source.match(fnBracketRegEx);\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\n\n // find or generate the regex for this requireAlias\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\n\n requireRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n while (match = requireRegEx.exec(source))\n deps.push(match[2] || match[3]);\n\n return deps;\n}\n\nfunction wrapEsModuleExecute (execute) {\n return function (require, exports, module) {\n execute(require, exports, module);\n Object.defineProperty(module.exports, '__esModule', {\n value: true\n });\n };\n}\n\n// generate anonymous define from singular named define\nvar multipleNamedDefines = false;\nvar lastNamedDefine;\nvar curMetaDeps;\nvar curEsModule = false;\nexport function clearLastDefine (metaDeps, esModule) {\n curMetaDeps = metaDeps;\n curEsModule = esModule;\n lastNamedDefine = undefined;\n multipleNamedDefines = false;\n}\nexport function registerLastDefine (loader) {\n if (lastNamedDefine)\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\n\n // bundles are an empty module\n else if (multipleNamedDefines)\n loader.registerDynamic([], false, noop);\n}\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript } from './common.js';\nimport { evaluate } from './evaluate.js';\nimport fetch from './fetch.js';\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\n\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\n\n// include the node require since we're overriding it\nexport var nodeRequire;\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\n nodeRequire = require;\n\nfunction setMetaEsModule (metadata, moduleValue) {\n if (metadata.load.esModule && !('__esModule' in moduleValue))\n Object.defineProperty(moduleValue, '__esModule', {\n value: true\n });\n}\n\nexport function instantiate (key, processAnonRegister) {\n var loader = this;\n var config = this[CONFIG];\n var metadata = this[METADATA][key];\n // first do bundles and depCache\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\n .then(function () {\n if (processAnonRegister())\n return;\n\n // node module loading\n if (key.substr(0, 6) === '@node/') {\n if (!loader._nodeRequire)\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\n loader.registerDynamic([], false, function () {\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\n });\n processAnonRegister();\n return;\n }\n\n if (metadata.load.scriptLoad ) {\n if (metadata.load.pluginKey || !supportsScriptLoad) {\n metadata.load.scriptLoad = false;\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\n }\n }\n else if (metadata.load.scriptLoad !== false && supportsScriptLoad) {\n // auto script load AMD, global without deps\n if (!metadata.load.deps && !metadata.load.globals &&\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\n metadata.load.scriptLoad = true;\n }\n\n // fetch / translate / instantiate pipeline\n if (!metadata.load.scriptLoad)\n return initializePlugin(loader, key, metadata)\n .then(function () {\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\n })\n\n // just script loading\n return new Promise(function (resolve, reject) {\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\n\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\n if (!processAnonRegister()) {\n metadata.load.format = 'global';\n var globalValue = getGlobalValue(metadata.load.exports);\n loader.registerDynamic([], false, function () {\n setMetaEsModule(metadata, globalValue);\n return globalValue;\n });\n processAnonRegister();\n }\n\n resolve();\n }, reject);\n });\n })\n .then(function (instantiated) {\n loader[METADATA][key] = undefined;\n return instantiated;\n });\n};\n\nfunction initializePlugin (loader, key, metadata) {\n if (!metadata.pluginKey)\n return resolvedPromise;\n\n return loader.import(metadata.pluginKey).then(function (plugin) {\n metadata.pluginModule = plugin;\n metadata.pluginLoad = {\n name: key,\n address: metadata.pluginArgument,\n source: undefined,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n });\n}\n\nfunction loadBundlesAndDepCache (config, loader, key) {\n // load direct deps, in turn will pick up their trace trees\n var deps = config.depCache[key];\n if (deps) {\n for (var i = 0; i < deps.length; i++)\n loader.normalize(deps[i], key).then(preloadScript);\n }\n else {\n var matched = false;\n for (var b in config.bundles) {\n for (var i = 0; i < config.bundles[b].length; i++) {\n var curModule = config.bundles[b][i];\n\n if (curModule == key) {\n matched = true;\n break;\n }\n\n // wildcard in bundles includes / boundaries\n if (curModule.indexOf('*') != -1) {\n var parts = curModule.split('*');\n if (parts.length != 2) {\n config.bundles[b].splice(i--, 1);\n continue;\n }\n\n if (key.substring(0, parts[0].length) == parts[0] &&\n key.substr(key.length - parts[1].length, parts[1].length) == parts[1]) {\n matched = true;\n break;\n }\n }\n }\n\n if (matched)\n return loader.import(b);\n }\n }\n}\n\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\n if (metadata.load.exports && !metadata.load.format)\n metadata.load.format = 'global';\n\n return resolvedPromise\n\n // locate\n .then(function () {\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\n return;\n\n return metadata.pluginModule.locate.call(loader, metadata.pluginLoad)\n .then(function (address) {\n if (address)\n metadata.pluginLoad.address = address;\n });\n })\n\n // fetch\n .then(function () {\n if (!metadata.pluginModule)\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\n\n if (!metadata.pluginModule.fetch)\n return fetch(metadata.pluginArgument, metadata.load.authorization, metadata.load.integrity, wasm);\n\n wasm = false;\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\n });\n })\n\n .then(function (fetched) {\n // fetch is already a utf-8 string if not doing wasm detection\n if (!wasm || typeof fetched === 'string')\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\n\n var bytes = new Uint8Array(fetched);\n\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return loader.newModule(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var stringSource = new TextDecoder('utf-8').decode(bytes);\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\n })\n}\n\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\n return Promise.resolve(source)\n // translate\n .then(function (source) {\n if (metadata.load.format === 'detect')\n metadata.load.format = undefined;\n\n readMetaSyntax(source, metadata);\n\n if (!metadata.pluginModule || !metadata.pluginModule.translate)\n return source;\n\n metadata.pluginLoad.source = source;\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (translated) {\n if (metadata.load.sourceMap) {\n if (typeof metadata.load.sourceMap !== 'object')\n throw new Error('metadata.load.sourceMap must be set to an object.');\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\n }\n\n if (typeof translated === 'string')\n return translated;\n else\n return metadata.pluginLoad.source;\n });\n })\n .then(function (source) {\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\n metadata.load.format = 'register';\n return source;\n }\n\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\n return source;\n }\n\n metadata.load.format = 'esm';\n return transpile(loader, source, key, metadata, processAnonRegister);\n })\n\n // instantiate\n .then(function (translated) {\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\n return translated;\n\n var calledInstantiate = false;\n metadata.pluginLoad.source = translated;\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\n translated = load.source;\n metadata.load = load.metadata;\n if (calledInstantiate)\n throw new Error('Instantiate must only be called once.');\n calledInstantiate = true;\n }))\n .then(function (result) {\n if (calledInstantiate)\n return translated;\n return protectedCreateNamespace(result);\n });\n })\n .then(function (source) {\n // plugin instantiate result case\n if (typeof source !== 'string')\n return source;\n\n if (!metadata.load.format)\n metadata.load.format = detectLegacyFormat(source);\n\n var registered = false;\n\n switch (metadata.load.format) {\n case 'esm':\n case 'register':\n case 'system':\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n if (!processAnonRegister())\n return emptyModule;\n return;\n break;\n\n case 'json':\n // warn.call(config, '\"json\" module format is deprecated.');\n return loader.newModule({ default: JSON.parse(source), __useDefault: true });\n\n case 'amd':\n var curDefine = global.define;\n global.define = loader.amdDefine;\n\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n\n // if didn't register anonymously, use the last named define if only one\n registered = processAnonRegister();\n if (!registered) {\n registerLastDefine(loader);\n registered = processAnonRegister();\n }\n\n global.define = curDefine;\n\n if (err)\n throw err;\n break;\n\n case 'cjs':\n var metaDeps = metadata.load.deps;\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\n\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n deps.push(metadata.load.globals[g]);\n\n loader.registerDynamic(deps, true, function (require, exports, module) {\n require.resolve = function (key) {\n return requireResolve.call(loader, key, module.id);\n };\n // support module.paths ish\n module.paths = [];\n module.require = require;\n\n // ensure meta deps execute first\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\n for (var i = 0; i < metaDeps.length; i++)\n require(metaDeps[i]);\n\n var pathVars = getPathVars(module.id);\n var __cjsWrapper = {\n exports: exports,\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\n };\n\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\n\n // add metadata.globals to the wrapper arguments\n if (metadata.load.globals)\n for (var g in metadata.load.globals) {\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\n cjsWrapper += \", \" + g;\n }\n\n // disable AMD detection\n var define = global.define;\n global.define = undefined;\n global.__cjsWrapper = __cjsWrapper;\n\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n\n setMetaEsModule(metadata, exports);\n\n global.__cjsWrapper = undefined;\n global.define = define;\n });\n registered = processAnonRegister();\n break;\n\n case 'global':\n var deps = metadata.load.deps || [];\n for (var g in metadata.load.globals) {\n var gl = metadata.load.globals[g];\n if (gl)\n deps.push(gl);\n }\n\n loader.registerDynamic(deps, false, function (require, exports, module) {\n var globals;\n if (metadata.load.globals) {\n globals = {};\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n globals[g] = require(metadata.load.globals[g]);\n }\n\n var exportName = metadata.load.exports;\n\n if (exportName)\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\n\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\n\n if (err)\n throw err;\n\n var output = retrieveGlobal();\n setMetaEsModule(metadata, output);\n return output;\n });\n registered = processAnonRegister();\n break;\n\n default:\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\n }\n\n if (!registered)\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\n });\n}\n\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\n\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\nexport var esmRegEx = /(^\\s*|[}\\);\\n]\\s*)(import\\s*(['\"]|(\\*\\s+as\\s+)?[^\"'\\(\\)\\n;]+\\s*from\\s*['\"]|\\{)|export\\s+\\*\\s+from\\s+[\"']|export\\s*(\\{|default|function|class|var|const|let|async\\s+function))/;\n\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\nexport function detectRegisterFormat(source) {\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\n return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';\n}\n\n// AMD Module Format Detection RegEx\n// define([.., .., ..], ...)\n// define(varName); || define(function(require, exports) {}); || define({})\nvar amdRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\n\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\n\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\nexport function detectLegacyFormat (source) {\n if (source.match(amdRegEx))\n return 'amd';\n\n cjsExportsRegEx.lastIndex = 0;\n cjsRequireRegEx.lastIndex = 0;\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\n return 'cjs';\n\n // global is the fallback format\n return 'global';\n}\n\nfunction sanitizeSourceMap (address, sourceMap) {\n var originalName = address.split('!')[0];\n\n // force set the filename of the original file\n if (!sourceMap.file || sourceMap.file == address)\n sourceMap.file = originalName + '!transpiled';\n\n // force set the sources list if only one source\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\n sourceMap.sources = [originalName];\n}\n\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\n if (!loader.transpiler)\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\n\n // deps support for es transpile\n if (metadata.load.deps) {\n var depsPrefix = '';\n for (var i = 0; i < metadata.load.deps.length; i++)\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\n source = depsPrefix + source;\n }\n\n // do transpilation\n return loader.import.call(loader, loader.transpiler)\n .then(function (transpiler) {\n if (transpiler.__useDefault)\n transpiler = transpiler.default;\n\n // translate hooks means this is a transpiler plugin instead of a raw implementation\n if (!transpiler.translate)\n throw new Error(loader.transpier + ' is not a valid transpiler plugin.');\n\n // if transpiler is the same as the plugin loader, then don't run twice\n if (transpiler === metadata.pluginModule)\n return load.source;\n\n // convert the source map into an object for transpilation chaining\n if (typeof metadata.load.sourceMap === 'string')\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\n\n metadata.pluginLoad = metadata.pluginLoad || {\n name: key,\n address: key,\n source: source,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (source) {\n // sanitize sourceMap if an object not a JSON string\n var sourceMap = metadata.load.sourceMap;\n if (sourceMap && typeof sourceMap === 'object')\n sanitizeSourceMap(key, sourceMap);\n\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\n metadata.load.format = 'register';\n\n return source;\n });\n }, function (err) {\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\n });\n}\n\n// detect any meta header syntax\n// only set if not already set\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\n\nfunction setMetaProperty(target, p, value) {\n var pParts = p.split('.');\n var curPart;\n while (pParts.length > 1) {\n curPart = pParts.shift();\n target = target[curPart] = target[curPart] || {};\n }\n curPart = pParts.shift();\n if (target[curPart] === undefined)\n target[curPart] = value;\n}\n\nfunction readMetaSyntax (source, metadata) {\n var meta = source.match(metaRegEx);\n if (!meta)\n return;\n\n var metaParts = meta[0].match(metaPartRegEx);\n\n for (var i = 0; i < metaParts.length; i++) {\n var curPart = metaParts[i];\n var len = curPart.length;\n\n var firstChar = curPart.substr(0, 1);\n if (curPart.substr(len - 1, 1) == ';')\n len--;\n\n if (firstChar != '\"' && firstChar != \"'\")\n continue;\n\n var metaString = curPart.substr(1, curPart.length - 3);\n var metaName = metaString.substr(0, metaString.indexOf(' '));\n\n if (metaName) {\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\n\n if (metaName === 'deps')\n metaName = 'deps[]';\n\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\n metaName = metaName.substr(0, metaName.length - 2);\n metadata.load[metaName] = metadata.load[metaName] || [];\n metadata.load[metaName].push(metaValue);\n }\n // \"use strict\" is not meta\n else if (metaName !== 'use') {\n setMetaProperty(metadata.load, metaName, metaValue);\n }\n }\n else {\n metadata.load[metaString] = true;\n }\n }\n}\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule } from './common.js';\n\nimport { getConfig, getConfigItem, setConfig } from './config.js';\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\nimport { instantiate, nodeRequire } from './instantiate.js';\nimport formatHelpers from './format-helpers.js';\n\nexport default SystemJSLoader;\n\nvar scriptSrc;\n\n// Promise detection and error message\nif (typeof Promise === 'undefined')\n throw new Error('SystemJS needs a Promise polyfill.');\n\nif (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n var curScript = scripts[scripts.length - 1];\n if (document.currentScript && (curScript.defer || curScript.async))\n curScript = document.currentScript;\n\n scriptSrc = curScript && curScript.src;\n}\n// worker\nelse if (typeof importScripts !== 'undefined') {\n try {\n throw new Error('_');\n }\n catch (e) {\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\n scriptSrc = url;\n });\n }\n}\n// node\nelse if (typeof __filename !== 'undefined') {\n scriptSrc = __filename;\n}\n\nfunction SystemJSLoader () {\n RegisterLoader.call(this);\n\n // NB deprecate\n this._loader = {};\n\n // internal metadata store\n this[METADATA] = {};\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n\n packageConfigPaths: [],\n packageConfigKeys: [],\n map: {},\n packages: {},\n depCache: {},\n meta: {},\n bundles: {},\n\n production: false,\n\n transpiler: undefined,\n loadedBundles: {},\n\n // global behaviour flags\n warnings: false,\n pluginFirst: false,\n\n // enable wasm loading and detection when supported\n wasm: false\n };\n\n // make the location of the system.js script accessible (if any)\n this.scriptSrc = scriptSrc;\n\n this._nodeRequire = nodeRequire;\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n\n setProduction.call(this, false, false);\n\n // add module format helpers\n formatHelpers(this);\n}\n\nexport var envModule;\nexport function setProduction (isProduction, isBuilder) {\n this[CONFIG].production = isProduction;\n this.registry.set('@system-env', envModule = this.newModule({\n browser: isBrowser,\n node: !!this._nodeRequire,\n production: !isBuilder && isProduction,\n dev: isBuilder || !isProduction,\n build: isBuilder,\n 'default': true\n }));\n}\n\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\n\nSystemJSLoader.prototype.constructor = SystemJSLoader;\n\n// NB deprecate normalize\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\n\nSystemJSLoader.prototype.load = function (key, parentKey) {\n warn.call(this[CONFIG], 'System.load is deprecated.');\n return this.import(key, parentKey);\n};\n\n// NB deprecate decanonicalize, normalizeSync\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\n\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\n\nSystemJSLoader.prototype.config = setConfig;\nSystemJSLoader.prototype.getConfig = getConfig;\n\nSystemJSLoader.prototype.global = global;\n\nSystemJSLoader.prototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\n\nvar hasProxy = typeof Proxy !== 'undefined';\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\n Object.defineProperty(SystemJSLoader.prototype, configName, {\n get: function () {\n var cfg = getConfigItem(this[CONFIG], configName);\n\n if (hasProxy && typeof cfg === 'object')\n cfg = new Proxy(cfg, {\n set: function (target, option) {\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\n }\n });\n\n //if (typeof cfg === 'object')\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\n return cfg;\n },\n set: function (name) {\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\n }\n });\n})(configNames[i]);\n\n/*\n * Backwards-compatible registry API, to be deprecated\n */\nfunction registryWarn(loader, method) {\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\n}\nSystemJSLoader.prototype.delete = function (key) {\n registryWarn(this, 'delete');\n this.registry.delete(key);\n};\nSystemJSLoader.prototype.get = function (key) {\n registryWarn(this, 'get');\n return this.registry.get(key);\n};\nSystemJSLoader.prototype.has = function (key) {\n registryWarn(this, 'has');\n return this.registry.has(key);\n};\nSystemJSLoader.prototype.set = function (key, module) {\n registryWarn(this, 'set');\n return this.registry.set(key, module);\n};\nSystemJSLoader.prototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\n// ensure System.register and System.registerDynamic decanonicalize\nSystemJSLoader.prototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSLoader from './systemjs-loader.js';\n\nSystemJSLoader.prototype.version = VERSION;\n\nvar System = new SystemJSLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker)\n global.SystemJS = global.System = System;\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["resolvedPromise","addToError","RegisterLoader","global","commentRegEx","stringRegEx","instantiate","fetch","SystemJSLoader"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"system.js.map","sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/fetch.js","../src/resolve.js","../src/config.js","../src/evaluate.js","../src/format-helpers.js","../src/instantiate.js","../src/systemjs-loader.js","../src/system.js"],"sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);\n}\nelse if (typeof process != 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1)\n || firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n this._registry = REGISTRY;\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, clearing failed modules from registration cache synchronously\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: {}\n }\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = loader.registry[loader.registry._registry];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module)\n return instantiate(loader, load, load.linkRecord, registry, state);\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = {};\n link.moduleObj.__useDefault = true;\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name === 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports)\n link.moduleObj = moduleObj = declared.exports;\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n })))\n .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(key, this.key);\n};\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (link.error)\n throw link.error;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return module.__useDefault ? module.default : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLink.error)\n err = depLink.error;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.default)\n moduleObj.default = module.exports;\n\n // __esModule flag extension support\n if (moduleObj.default && moduleObj.default.__esModule)\n for (var p in moduleObj.default)\n if (Object.hasOwnProperty.call(moduleObj.default, p) && p !== 'default')\n moduleObj[p] = moduleObj.default[p];\n }\n }\n\n if (err)\n return link.error = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n\n // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: true });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = baseURL.substr(isWindows ? 8 : 7);\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*')\\s*\\)/g;\n","import { isWindows } from './common.js';\n\n/*\n * Source loading\n */\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\n // fetch doesn't support file:/// urls\n if (url.substr(0, 8) === 'file:///') {\n if (hasXhr)\n return xhrFetch(url, authorization, integrity, asBuffer);\n else\n throw new Error('Unable to fetch file URLs in this environment.');\n }\n\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var opts = {\n // NB deprecate\n headers: { Accept: 'application/x-es-module, */*' }\n };\n\n if (integrity)\n opts.integrity = integrity;\n\n if (authorization) {\n if (typeof authorization == 'string')\n opts.headers['Authorization'] = authorization;\n opts.credentials = 'include';\n }\n\n return fetch(url, opts)\n .then(function(res) {\n if (res.ok)\n return asBuffer ? res.arrayBuffer() : res.text();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n });\n}\n\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\n return new Promise(function (resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var xhr = new XMLHttpRequest();\n if (asBuffer)\n xhr.responseType = 'arraybuffer';\n function load() {\n resolve(asBuffer ? xhr.response : xhr.responseText);\n }\n function error() {\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // in Chrome on file:/// URLs, status is 0\n if (xhr.status == 0) {\n if (xhr.response) {\n load();\n }\n else {\n // when responseText is empty, wait for load or error event\n // to inform if it is a 404 or empty file\n xhr.addEventListener('error', error);\n xhr.addEventListener('load', load);\n }\n }\n else if (xhr.status === 200) {\n load();\n }\n else {\n error();\n }\n }\n };\n xhr.open(\"GET\", url, true);\n\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\n // can set \"authorization: true\" to enable withCredentials only\n if (authorization) {\n if (typeof authorization == 'string')\n xhr.setRequestHeader('Authorization', authorization);\n xhr.withCredentials = true;\n }\n }\n\n xhr.send(null);\n });\n}\n\nvar fs;\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\n if (url.substr(0, 8) != 'file:///')\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node.'));\n\n fs = fs || require('fs');\n if (isWindows)\n url = url.replace(/\\//g, '\\\\').substr(8);\n else\n url = url.substr(7);\n\n return new Promise(function (resolve, reject) {\n fs.readFile(url, function(err, data) {\n if (err) {\n return reject(err);\n }\n else {\n if (asBuffer) {\n resolve(data);\n }\n else {\n // Strip Byte Order Mark out if it's the leading char\n var dataString = data + '';\n if (dataString[0] === '\\ufeff')\n dataString = dataString.substr(1);\n\n resolve(dataString);\n }\n }\n });\n });\n}\n\nfunction noFetch () {\n throw new Error('No fetch method is defined for this environment.');\n}\n\nvar fetchFunction;\n\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\n\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\n fetchFunction = fetchFetch;\nelse if (hasXhr)\n fetchFunction = xhrFetch;\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\n fetchFunction = nodeFetch;\nelse\n fetchFunction = noFetch;\n\nexport default fetchFunction;\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\nimport { setPkgConfig, createPackage } from './config.js';\nimport fetch from './fetch.js';\n\nexport function createMetadata () {\n return {\n pluginKey: undefined,\n pluginArgument: undefined,\n pluginModule: undefined,\n packageKey: undefined,\n packageConfig: undefined,\n load: undefined\n };\n}\n\nfunction getCoreParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n }\n\n return parentMetadata;\n}\n\nfunction getParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n\n // detect parent package\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\n if (parentMetadata.packageKey)\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\n }\n\n return parentMetadata;\n}\n\nexport function normalize (key, parentKey) {\n var config = this[CONFIG];\n\n var metadata = createMetadata();\n var parentMetadata = getParentMetadata(this, config, parentKey);\n\n var loader = this;\n\n return Promise.resolve()\n\n // boolean conditional\n .then(function () {\n // first we normalize the conditional\n var booleanIndex = key.lastIndexOf('#?');\n\n if (booleanIndex === -1)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.resolve(conditionObj.module, parentKey)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\n });*/\n\n return resolveCondition.call(loader, conditionObj, parentKey, true)\n .then(function (conditionValue) {\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\n });\n })\n\n // plugin\n .then(function (key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n if (!parsed)\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\n\n metadata.pluginKey = parsed.plugin;\n\n return Promise.all([\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\n loader.resolve(parsed.plugin, parentKey)\n ])\n .then(function (normalized) {\n metadata.pluginArgument = normalized[0];\n metadata.pluginKey = normalized[1];\n\n // don't allow a plugin to load itself\n if (metadata.pluginArgument === metadata.pluginKey)\n throw new Error('Plugin ' + metadata.pluginArgument + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');\n\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\n });\n })\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\n })\n .then(function (normalized) {\n setMeta.call(loader, config, normalized, metadata);\n\n if (metadata.pluginKey || !metadata.load.loader)\n return normalized;\n\n // loader by configuration\n // normalizes to parent to support package loaders\n return loader.resolve(metadata.load.loader, normalized)\n .then(function (pluginKey) {\n metadata.pluginKey = pluginKey;\n metadata.pluginArgument = normalized;\n return normalized;\n });\n })\n .then(function (normalized) {\n loader[METADATA][normalized] = metadata;\n return normalized;\n });\n}\n\n// normalization function used for registry keys\n// just does coreResolve without map\nexport function decanonicalize (config, key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false), pluginKey);\n }\n\n return coreResolve.call(this, config, key, undefined, false);\n}\n\nexport function normalizeSync (key, parentKey) {\n var config = this[CONFIG];\n\n // normalizeSync is metadataless, so create metadata\n var metadata = createMetadata();\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\n\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\n return combinePluginParts(config.pluginFirst,\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\n metadata.pluginKey);\n }\n\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\n}\n\nexport function coreResolve (config, key, parentKey, doMap) {\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\n\n // standard URL resolution\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\n if (doMap) {\n var mapMatch = getMapMatch(config.map, key);\n\n if (mapMatch) {\n key = config.map[mapMatch] + key.substr(mapMatch.length);\n\n relativeResolved = resolveIfNotPlain(key, baseURI);\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n }\n }\n\n if (this.registry.has(key))\n return key;\n\n if (key.substr(0, 6) === '@node/')\n return key;\n\n return applyPaths(config.baseURL, config.paths, key);\n}\n\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n var normalized = coreResolve.call(this, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return normalized;\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n return normalized;\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n}\n\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n var loader = this;\n\n return resolvedPromise\n .then(function () {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch)\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n }\n\n return resolvedPromise;\n })\n .then(function (mapped) {\n if (mapped)\n return mapped;\n\n // apply map, core, paths, contextual package map\n var normalized = coreResolve.call(loader, config, key, parentKey, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return Promise.resolve(normalized);\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n metadata.load = createMeta();\n metadata.load.format = 'json';\n return Promise.resolve(normalized);\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\n\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\n .then(function () {\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n });\n });\n}\n\nfunction createMeta () {\n return {\n extension: '',\n deps: undefined,\n format: undefined,\n loader: undefined,\n scriptLoad: undefined,\n globals: undefined,\n nonce: undefined,\n integrity: undefined,\n sourceMap: undefined,\n exports: undefined,\n encapsulateGlobal: false,\n crossOrigin: undefined,\n cjsRequireDetection: true,\n cjsDeferDepsExecute: false,\n esModule: false\n };\n}\n\nfunction setMeta (config, key, metadata) {\n metadata.load = metadata.load || createMeta();\n\n // apply wildcard metas\n var bestDepth = 0;\n var wildcardIndex;\n for (var module in config.meta) {\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\n var depth = module.split('/').length;\n if (depth > bestDepth)\n bestDepth = depth;\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\n }\n }\n\n // apply exact meta\n if (config.meta[key])\n extendMeta(metadata.load, config.meta[key], false);\n\n // apply package meta\n if (metadata.packageKey) {\n var subPath = key.substr(metadata.packageKey.length + 1);\n\n var meta = {};\n if (metadata.packageConfig.meta) {\n var bestDepth = 0;\n\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth > bestDepth)\n bestDepth = matchDepth;\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\n });\n\n extendMeta(metadata.load, meta, false);\n }\n\n // format\n if (metadata.packageConfig.format && !metadata.pluginKey)\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\n }\n}\n\nfunction parsePlugin (pluginFirst, key) {\n var argumentKey;\n var pluginKey;\n\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\n\n if (pluginIndex === -1)\n return;\n\n if (pluginFirst) {\n argumentKey = key.substr(pluginIndex + 1);\n pluginKey = key.substr(0, pluginIndex);\n }\n else {\n argumentKey = key.substr(0, pluginIndex);\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\n }\n\n return {\n argument: argumentKey,\n plugin: pluginKey\n };\n}\n\n// put key back together after parts have been normalized\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\n if (pluginFirst)\n return pluginKey + '!' + argumentKey;\n else\n return argumentKey + '!' + pluginKey;\n}\n\n/*\n * Package Configuration Extension\n *\n * Example:\n *\n * SystemJS.packages = {\n * jquery: {\n * main: 'index.js', // when not set, package key is requested directly\n * format: 'amd',\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\n * modules: {\n * '*.ts': {\n * loader: 'typescript'\n * },\n * 'vendor/sizzle.js': {\n * format: 'global'\n * }\n * },\n * map: {\n * // map internal require('sizzle') to local require('./vendor/sizzle')\n * sizzle: './vendor/sizzle.js',\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\n * './vendor/another.js': './another/index.js',\n * // test.js / test -> lib/test.js\n * './test.js': './lib/test.js',\n *\n * // environment-specific map configurations\n * './index.js': {\n * '~browser': './index-node.js',\n * './custom-condition.js|~export': './index-custom.js'\n * }\n * },\n * // allows for setting package-prefixed depCache\n * // keys are normalized module keys relative to the package itself\n * depCache: {\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\n * './index.js': ['./test'],\n * './test.js': ['external-dep'],\n * 'external-dep/path.js': ['./another.js']\n * }\n * }\n * };\n *\n * Then:\n * import 'jquery' -> jquery/index.js\n * import 'jquery/submodule' -> jquery/submodule.js\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\n * import 'jquery/vendor/another' -> another/index.js\n *\n * Detailed Behaviours\n * - main can have a leading \"./\" can be added optionally\n * - map and defaultExtension are applied to the main\n * - defaultExtension adds the extension only if the exact extension is not present\n\n * - if a meta value is available for a module, map and defaultExtension are skipped\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\n * - condition module map is '@env' module in package or '@system-env' globally\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\n * - internal package map targets cannot use boolean conditionals\n *\n * Package Configuration Loading\n *\n * Not all packages may already have their configuration present in the System config\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\n * a request, will first request a \".json\" file by the package key to derive the package\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\n * case in SystemJS.\n *\n * Example:\n *\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\n *\n * // will first request 'packages/new-package/package.json' for the package config\n * // before completing the package request to 'packages/new-package/path'\n * SystemJS.import('packages/new-package/path');\n *\n * // will first request 'packages/test/package.json' before the main\n * SystemJS.import('packages/test');\n *\n * When a package matches packageConfigPaths, it will always send a config request for\n * the package configuration.\n * The package key itself is taken to be the match up to and including the last wildcard\n * or trailing slash.\n * The most specific package config path will be used.\n * Any existing package configurations for the package will deeply merge with the\n * package config, with the existing package configurations taking preference.\n * To opt-out of the package configuration request for a package that matches\n * packageConfigPaths, use the { configured: true } package config option.\n *\n */\n\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\n // don't apply extensions to folders or if defaultExtension = false\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\n return subPath;\n\n var metaMatch = false;\n\n // exact meta or meta with any content after the last wildcard skips extension\n if (pkg.meta)\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n // exact global meta or meta with any content after the last wildcard skips extension\n if (!metaMatch && config.meta)\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n if (metaMatch)\n return subPath;\n\n // work out what the defaultExtension is and add if not there already\n var defaultExtension = '.' + pkg.defaultExtension;\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\n return subPath + defaultExtension;\n else\n return subPath;\n}\n\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n else\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return pkgKey;\n }\n\n // map config checking without then with extensions\n if (pkg.map) {\n var mapPath = './' + subPath;\n\n var mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n if (mapMatch) {\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n // normal package resolution\n return pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n}\n\nfunction validMapping (mapMatch, mapped, path) {\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\n // but only if the path is exactly ./x and not ./x/z\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\n return false;\n\n return true;\n}\n\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'object')\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\n\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\n return;\n\n return packageResolveSync.call(this, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\n}\n\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n else\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return Promise.resolve(pkgKey);\n }\n\n // map config checking without then with extensions\n var mapPath, mapMatch;\n\n if (pkg.map) {\n mapPath = './' + subPath;\n mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n }\n\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\n .then(function (mapped) {\n if (mapped)\n return Promise.resolve(mapped);\n\n // normal package resolution / fallback resolution for no conditional match\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(loader, pkg, pkgKey, subPath, skipExtensions));\n });\n}\n\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'string') {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\n /*if (loader.builder)\n return Promise.resolve(pkgKey + '/#:' + path);*/\n\n // we load all conditions upfront\n var conditionPromises = [];\n var conditions = [];\n for (var e in mapped) {\n var c = parseCondition(e);\n conditions.push({\n condition: c,\n map: mapped[e]\n });\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\n }\n\n // map object -> conditional map\n return Promise.all(conditionPromises)\n .then(function (conditionValues) {\n // first map condition to match is used\n for (var i = 0; i < conditions.length; i++) {\n var c = conditions[i].condition;\n var value = readMemberExpression(c.prop, conditionValues[i].__useDefault ? conditionValues[i].default : conditionValues[i]);\n if (!c.negate && value || c.negate && !value)\n return conditions[i].map;\n }\n })\n .then(function (mapped) {\n if (mapped) {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // no environment match -> fallback to original subPath by returning undefined\n });\n}\n\n// check if the given normalized key matches a packageConfigPath\n// if so, loads the config\nvar packageConfigPaths = {};\n\n// data object for quick checks against package paths\nfunction createPkgConfigPathObj (path) {\n var lastWildcard = path.lastIndexOf('*');\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\n return {\n length: length,\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\n wildcard: lastWildcard !== -1\n };\n}\n\n// most specific match wins\nfunction getPackageConfigMatch (config, normalized) {\n var pkgKey, exactMatch = false, configPath;\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\n var packageConfigPath = config.packageConfigPaths[i];\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\n if (normalized.length < p.length)\n continue;\n var match = normalized.match(p.regEx);\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\n pkgKey = match[1];\n exactMatch = !p.wildcard;\n configPath = pkgKey + packageConfigPath.substr(p.length);\n }\n }\n\n if (!pkgKey)\n return;\n\n return {\n packageKey: pkgKey,\n configPath: configPath\n };\n}\n\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\n var configLoader = loader.pluginLoader || loader;\n\n // ensure we note this is a package config file path\n // it will then be skipped from getting other normalizations itself to ensure idempotency\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\n config.packageConfigKeys.push(pkgConfigPath);\n\n return configLoader.import(pkgConfigPath)\n .then(function (pkgConfig) {\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\n metadata.packageConfig.configured = true;\n })\n .catch(function (err) {\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\n });\n}\n\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\n // wildcard meta\n var wildcardIndex;\n for (var module in pkgMeta) {\n // allow meta to start with ./ for flexibility\n var dotRel = module.substr(0, 2) === './' ? './' : '';\n if (dotRel)\n module = module.substr(2);\n\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\n // alow match function to return true for an exit path\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\n return;\n }\n }\n // exact meta\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\n if (exactMeta)\n matchFn(exactMeta, exactMeta, 0);\n}\n\n\n/*\n * Conditions Extension\n *\n * Allows a condition module to alter the resolution of an import via syntax:\n *\n * import $ from 'jquery/#{browser}';\n *\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\n * take the default export of that module.\n * If the default export is not a string, an error is thrown.\n *\n * We then substitute the string into the require to get the conditional resolution\n * enabling environment-specific variations like:\n *\n * import $ from 'jquery/ie'\n * import $ from 'jquery/firefox'\n * import $ from 'jquery/chrome'\n * import $ from 'jquery/safari'\n *\n * It can be useful for a condition module to define multiple conditions.\n * This can be done via the `|` modifier to specify an export member expression:\n *\n * import 'jquery/#{./browser.js|grade.version}'\n *\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\n *\n *\n * Boolean Conditionals\n *\n * For polyfill modules, that are used as imports but have no module value,\n * a binary conditional allows a module not to be loaded at all if not needed:\n *\n * import 'es5-shim#?./conditions.js|needs-es5shim'\n *\n * These conditions can also be negated via:\n *\n * import 'es5-shim#?./conditions.js|~es6'\n *\n */\n\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\n\nfunction parseCondition (condition) {\n var conditionExport, conditionModule, negation;\n\n var negation;\n var conditionExportIndex = condition.lastIndexOf('|');\n if (conditionExportIndex !== -1) {\n conditionExport = condition.substr(conditionExportIndex + 1);\n conditionModule = condition.substr(0, conditionExportIndex);\n\n if (conditionExport[0] === '~') {\n negation = true;\n conditionExport = conditionExport.substr(1);\n }\n }\n else {\n negation = condition[0] === '~';\n conditionExport = 'default';\n conditionModule = condition.substr(negation);\n if (sysConditions.indexOf(conditionModule) !== -1) {\n conditionExport = conditionModule;\n conditionModule = null;\n }\n }\n\n return {\n module: conditionModule || '@system-env',\n prop: conditionExport,\n negate: negation\n };\n}\n\nfunction resolveCondition (conditionObj, parentKey, bool) {\n // import without __useDefault handling here\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\n .then(function (condition) {\n var m = readMemberExpression(conditionObj.prop, condition);\n\n if (bool && typeof m !== 'boolean')\n throw new TypeError('Condition did not resolve to a boolean.');\n\n return conditionObj.negate ? !m : m;\n });\n}\n\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\nfunction interpolateConditional (key, parentKey, parentMetadata) {\n // first we normalize the conditional\n var conditionalMatch = key.match(interpolationRegEx);\n\n if (!conditionalMatch)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\n });*/\n\n return resolveCondition.call(this, conditionObj, parentKey, false)\n .then(function (conditionValue) {\n if (typeof conditionValue !== 'string')\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\n\n if (conditionValue.indexOf('/') !== -1)\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\n\n return key.replace(interpolationRegEx, conditionValue);\n });\n}\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\nimport { coreResolve } from './resolve.js';\n\n/*\n Extend config merging one deep only\n\n loader.config({\n some: 'random',\n config: 'here',\n deep: {\n config: { too: 'too' }\n }\n });\n\n <=>\n\n loader.some = 'random';\n loader.config = 'here'\n loader.deep = loader.deep || {};\n loader.deep.config = { too: 'too' };\n\n\n Normalizes meta and package configs allowing for:\n\n SystemJS.config({\n meta: {\n './index.js': {}\n }\n });\n\n To become\n\n SystemJS.meta['https://thissite.com/index.js'] = {};\n\n For easy normalization canonicalization with latest URL support.\n\n*/\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\nfunction envSet(loader, cfg, envCallback) {\n for (var i = 0; i < envConfigNames.length; i++) {\n var envConfig = envConfigNames[i];\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\n envCallback(cfg[envConfig]);\n }\n}\n\nfunction cloneObj (obj, maxDepth) {\n var clone = {};\n for (var p in obj) {\n var prop = obj[p];\n if (maxDepth > 1) {\n if (typeof prop === 'object')\n clone[p] = cloneObj(prop, maxDepth - 1);\n else if (p !== 'packageConfig')\n clone[p] = prop;\n }\n else {\n clone[p] = prop;\n }\n }\n return clone;\n}\n\nexport function getConfigItem (config, p) {\n var cfgItem = config[p];\n\n // getConfig must return an unmodifiable clone of the configuration\n if (cfgItem instanceof Array)\n return config[p].concat([]);\n else if (typeof cfgItem === 'object')\n return cloneObj(cfgItem, 3)\n else\n return config[p];\n}\n\nexport function getConfig (configName) {\n if (configName) {\n if (configNames.indexOf(configName) !== -1)\n return getConfigItem(this[CONFIG], configName);\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\n }\n\n var cfg = {};\n for (var i = 0; i < configNames.length; i++) {\n var p = configNames[i];\n var configItem = getConfigItem(this[CONFIG], p);\n if (configItem !== undefined)\n cfg[p] = configItem;\n }\n return cfg;\n}\n\nexport function setConfig (cfg, isEnvConfig) {\n var loader = this;\n var config = this[CONFIG];\n\n if ('warnings' in cfg)\n config.warnings = cfg.warnings;\n\n if ('wasm' in cfg)\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\n\n if ('production' in cfg || 'build' in cfg)\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\n\n if (!isEnvConfig) {\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\n // these exceptions will be unnecessary when we can properly implement config queuings\n var baseURL;\n envSet(loader, cfg, function(cfg) {\n baseURL = baseURL || cfg.baseURL;\n });\n baseURL = baseURL || cfg.baseURL;\n\n // always configure baseURL first\n if (baseURL) {\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n envSet(loader, cfg, function(cfg) {\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n });\n\n for (var p in config.paths) {\n if (config.paths[p].indexOf('*') === -1)\n continue;\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\n delete config.paths[p];\n }\n }\n\n if (cfg.defaultJSExtensions)\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\n\n if (typeof cfg.pluginFirst === 'boolean')\n config.pluginFirst = cfg.pluginFirst;\n\n if (cfg.map) {\n for (var p in cfg.map) {\n var v = cfg.map[p];\n\n if (typeof v === 'string') {\n config.map[p] = coreResolve.call(loader, config, v, undefined, false);\n }\n\n // object map\n else {\n var pkgName = coreResolve.call(loader, config, p, undefined, true);\n var pkg = config.packages[pkgName];\n if (!pkg) {\n pkg = config.packages[pkgName] = createPackage();\n // use '' instead of false to keep type consistent\n pkg.defaultExtension = '';\n }\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\n }\n }\n }\n\n if (cfg.packageConfigPaths) {\n var packageConfigPaths = [];\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\n var path = cfg.packageConfigPaths[i];\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false);\n packageConfigPaths[i] = normalized + path.substr(packageLength);\n }\n config.packageConfigPaths = packageConfigPaths;\n }\n\n if (cfg.bundles) {\n for (var p in cfg.bundles) {\n var bundle = [];\n for (var i = 0; i < cfg.bundles[p].length; i++)\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\n config.bundles[p] = bundle;\n }\n }\n\n if (cfg.packages) {\n for (var p in cfg.packages) {\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\n throw new TypeError('\"' + p + '\" is not a valid package name.');\n\n var pkgName = coreResolve.call(loader, config, p[p.length -1] !== '/' ? p + '/' : p, undefined, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\n }\n }\n\n if (cfg.depCache) {\n for (var p in cfg.depCache)\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\n }\n\n if (cfg.meta) {\n for (var p in cfg.meta) {\n // base wildcard stays base\n if (p[0] === '*') {\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\n }\n else {\n var resolved = coreResolve.call(loader, config, p, undefined, true);\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\n }\n }\n }\n\n if ('transpiler' in cfg)\n config.transpiler = cfg.transpiler;\n\n\n // copy any remaining non-standard configuration properties\n for (var c in cfg) {\n if (configNames.indexOf(c) !== -1)\n continue;\n if (envConfigNames.indexOf(c) !== -1)\n continue;\n\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\n loader[c] = cfg[c];\n }\n\n envSet(loader, cfg, function(cfg) {\n loader.config(cfg, true);\n });\n}\n\nexport function createPackage () {\n return {\n defaultExtension: undefined,\n main: undefined,\n format: undefined,\n meta: undefined,\n map: undefined,\n packageConfig: undefined,\n configured: false\n };\n}\n\n// deeply-merge (to first level) config with any existing package config\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\n for (var prop in cfg) {\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\n if (!prependConfig || pkg[prop] === undefined)\n pkg[prop] = cfg[prop];\n }\n else if (prop === 'map') {\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\n }\n else if (prop === 'meta') {\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\n }\n else if (Object.hasOwnProperty.call(cfg, prop)) {\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\n }\n }\n\n // default defaultExtension for packages only\n if (pkg.defaultExtension === undefined)\n pkg.defaultExtension = 'js';\n\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\n pkg.main = pkg.map['.'];\n delete pkg.map['.'];\n }\n // main object becomes main map\n else if (typeof pkg.main === 'object') {\n pkg.map = pkg.map || {};\n pkg.map['./@main'] = pkg.main;\n pkg.main['default'] = pkg.main['default'] || './';\n pkg.main = '@main';\n }\n\n return pkg;\n}\n","import { isBrowser, global } from './common.js';\n\nvar hasBuffer = typeof Buffer !== 'undefined';\ntry {\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\n hasBuffer = false;\n}\ncatch (e) {\n hasBuffer = false;\n}\n\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\nfunction inlineSourceMap (sourceMapString) {\n if (hasBuffer)\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\n else if (typeof btoa !== 'undefined')\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\n else\n return '';\n}\n\nfunction getSource(source, sourceMap, address, wrap) {\n var lastLineIndex = source.lastIndexOf('\\n');\n\n if (sourceMap) {\n if (typeof sourceMap != 'object')\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\n\n sourceMap = JSON.stringify(sourceMap);\n }\n\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\n // adds the sourceURL comment if not already present\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\n // add sourceMappingURL if load.metadata.sourceMap is set\n + (sourceMap && inlineSourceMap(sourceMap) || '');\n}\n\n// script execution via injecting a script tag into the page\n// this allows CSP nonce to be set for CSP environments\nvar head;\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\n if (!head)\n head = document.head || document.body || document.documentElement;\n\n var script = document.createElement('script');\n script.text = getSource(source, sourceMap, address, false);\n var onerror = window.onerror;\n var e;\n window.onerror = function(_e) {\n e = addToError(_e, 'Evaluating ' + address);\n if (onerror)\n onerror.apply(this, arguments);\n }\n preExec(loader);\n\n if (nonce)\n script.setAttribute('nonce', nonce);\n\n head.appendChild(script);\n head.removeChild(script);\n postExec();\n window.onerror = onerror;\n if (e)\n return e;\n}\n\nvar vm;\nvar useVm;\n\nvar curSystem;\n\nvar callCounter = 0;\nfunction preExec (loader) {\n if (callCounter++ == 0)\n curSystem = global.System;\n global.System = global.SystemJS = loader;\n}\nfunction postExec () {\n if (--callCounter == 0)\n global.System = global.SystemJS = curSystem;\n}\n\nvar supportsScriptExec = false;\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\n supportsScriptExec = true;\n}\n\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\n if (!source)\n return;\n if (nonce && supportsScriptExec)\n return scriptExec(loader, source, sourceMap, address, nonce);\n try {\n preExec(loader);\n // global scoped eval for node (avoids require scope leak)\n if (!vm && loader._nodeRequire) {\n vm = loader._nodeRequire('vm');\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\n }\n if (useVm)\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\n else\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\n postExec();\n }\n catch (e) {\n postExec();\n return e;\n }\n}\n","\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\n\nexport default function (loader) {\n loader.set('@@cjs-helpers', loader.newModule({\n requireResolve: requireResolve.bind(loader),\n getPathVars: getPathVars\n }));\n\n loader.set('@@global-helpers', loader.newModule({\n prepareGlobal: prepareGlobal\n }));\n\n /*\n AMD-compatible require\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\n */\n function require (names, callback, errback, referer) {\n // in amd, first arg can be a config object... we just ignore\n if (typeof names === 'object' && !(names instanceof Array))\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\n\n // amd require\n if (typeof names === 'string' && typeof callback === 'function')\n names = [names];\n if (names instanceof Array) {\n var dynamicRequires = [];\n for (var i = 0; i < names.length; i++)\n dynamicRequires.push(loader.import(names[i], referer));\n Promise.all(dynamicRequires).then(function (modules) {\n for (var i = 0; i < modules.length; i++)\n modules[i] = modules[i].__useDefault ? modules[i].default : modules[i];\n if (callback)\n callback.apply(null, modules);\n }, errback);\n }\n\n // commonjs require\n else if (typeof names === 'string') {\n var normalized = loader.decanonicalize(names, referer);\n var module = loader.get(normalized);\n if (!module)\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\n return module.__useDefault ? module.default : module;\n }\n\n else\n throw new TypeError('Invalid require');\n }\n\n function define (name, deps, factory) {\n if (typeof name !== 'string') {\n factory = deps;\n deps = name;\n name = null;\n }\n\n if (!(deps instanceof Array)) {\n factory = deps;\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\n }\n\n if (typeof factory !== 'function')\n factory = (function (factory) {\n return function() { return factory; }\n })(factory);\n\n if (!name) {\n if (curMetaDeps) {\n deps = deps.concat(curMetaDeps);\n curMetaDeps = undefined;\n }\n }\n\n // remove system dependencies\n var requireIndex, exportsIndex, moduleIndex;\n\n if ((requireIndex = deps.indexOf('require')) !== -1) {\n\n deps.splice(requireIndex, 1);\n\n // only trace cjs requires for non-named\n // named defines assume the trace has already been done\n if (!name)\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\n }\n\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\n deps.splice(exportsIndex, 1);\n\n if ((moduleIndex = deps.indexOf('module')) !== -1)\n deps.splice(moduleIndex, 1);\n\n function execute (req, exports, module) {\n var depValues = [];\n for (var i = 0; i < deps.length; i++)\n depValues.push(req(deps[i]));\n\n module.uri = module.id;\n\n module.config = noop;\n\n // add back in system dependencies\n if (moduleIndex !== -1)\n depValues.splice(moduleIndex, 0, module);\n\n if (exportsIndex !== -1)\n depValues.splice(exportsIndex, 0, exports);\n\n if (requireIndex !== -1) {\n var contextualRequire = function (names, callback, errback) {\n if (typeof names === 'string' && typeof callback !== 'function')\n return req(names);\n return require.call(loader, names, callback, errback, module.id);\n };\n contextualRequire.toUrl = function (name) {\n return loader.normalizeSync(name, module.id);\n };\n depValues.splice(requireIndex, 0, contextualRequire);\n }\n\n // set global require to AMD require\n var curRequire = global.require;\n global.require = require;\n\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\n\n global.require = curRequire;\n\n if (typeof output !== 'undefined')\n module.exports = output;\n }\n\n // anonymous define\n if (!name) {\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\n }\n else {\n loader.registerDynamic(name, deps, false, execute);\n\n // if we don't have any other defines,\n // then let this be an anonymous define\n // this is just to support single modules of the form:\n // define('jquery')\n // still loading anonymously\n // because it is done widely enough to be useful\n // as soon as there is more than one define, this gets removed though\n if (lastNamedDefine) {\n lastNamedDefine = undefined;\n multipleNamedDefines = true;\n }\n else if (!multipleNamedDefines) {\n lastNamedDefine = [deps, execute];\n }\n }\n }\n define.amd = {};\n\n loader.amdDefine = define;\n loader.amdRequire = require;\n}\n\n// CJS\nvar windowOrigin;\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\n\nfunction stripOrigin(path) {\n if (path.substr(0, 8) === 'file:///')\n return path.substr(7 + !!isWindows);\n\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\n return path.substr(windowOrigin.length);\n\n return path;\n}\n\nexport function requireResolve (request, parentId) {\n return stripOrigin(this.normalizeSync(request, parentId));\n}\n\nexport function getPathVars (moduleId) {\n // remove any plugin syntax\n var pluginIndex = moduleId.lastIndexOf('!');\n var filename;\n if (pluginIndex !== -1)\n filename = moduleId.substr(0, pluginIndex);\n else\n filename = moduleId;\n\n var dirname = filename.split('/');\n dirname.pop();\n dirname = dirname.join('/');\n\n return {\n filename: stripOrigin(filename),\n dirname: stripOrigin(dirname)\n };\n}\n\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\n// extract CJS dependencies from source text via regex static analysis\n// read require('x') statements not in comments or strings\nexport function getCJSDeps (source) {\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n\n // track string and comment locations for unminified source\n var stringLocations = [], commentLocations = [];\n\n function inLocation (locations, match) {\n for (var i = 0; i < locations.length; i++)\n if (locations[i][0] < match.index && locations[i][1] > match.index)\n return true;\n return false;\n }\n\n if (source.length / source.split('\\n').length < 200) {\n while (match = stringRegEx.exec(source))\n stringLocations.push([match.index, match.index + match[0].length]);\n\n // TODO: track template literals here before comments\n\n while (match = commentRegEx.exec(source)) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match))\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\n }\n }\n\n while (match = cjsRequireRegEx.exec(source)) {\n // ensure we're not within a string or comment location\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\n var dep = match[1].substr(1, match[1].length - 2);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/))\n continue;\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\n// Global\n// bare minimum ignores\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\n 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\n\nvar globalSnapshot;\nfunction globalIterator (globalName) {\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\n return;\n try {\n var value = global[globalName];\n }\n catch (e) {\n ignoredGlobalProps.push(globalName);\n }\n this(globalName, value);\n}\n\nexport function getGlobalValue (exports) {\n if (typeof exports === 'string')\n return readMemberExpression(exports, global);\n\n if (!(exports instanceof Array))\n throw new Error('Global exports must be a string or array.');\n\n var globalValue = {};\n for (var i = 0; i < exports.length; i++)\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\n return globalValue;\n}\n\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\n // disable module detection\n var curDefine = global.define;\n\n global.define = undefined;\n\n // set globals\n var oldGlobals;\n if (globals) {\n oldGlobals = {};\n for (var g in globals) {\n oldGlobals[g] = global[g];\n global[g] = globals[g];\n }\n }\n\n // store a complete copy of the global object in order to detect changes\n if (!exports) {\n globalSnapshot = {};\n\n Object.keys(global).forEach(globalIterator, function (name, value) {\n globalSnapshot[name] = value;\n });\n }\n\n // return function to retrieve global\n return function () {\n var globalValue = exports ? getGlobalValue(exports) : {};\n\n var singleGlobal;\n var multipleExports = !!exports;\n\n if (!exports || encapsulate)\n Object.keys(global).forEach(globalIterator, function (name, value) {\n if (globalSnapshot[name] === value)\n return;\n if (value === undefined)\n return;\n\n // allow global encapsulation where globals are removed\n if (encapsulate)\n global[name] = undefined;\n\n if (!exports) {\n globalValue[name] = value;\n\n if (singleGlobal !== undefined) {\n if (!multipleExports && singleGlobal !== value)\n multipleExports = true;\n }\n else {\n singleGlobal = value;\n }\n }\n });\n\n globalValue = multipleExports ? globalValue : singleGlobal;\n\n // revert globals\n if (oldGlobals) {\n for (var g in oldGlobals)\n global[g] = oldGlobals[g];\n }\n global.define = curDefine;\n\n return globalValue;\n };\n}\n\n// AMD\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\nvar wsRegEx = /^\\s+|\\s+$/g;\n\nvar requireRegExs = {};\n\nfunction amdGetCJSDeps(source, requireIndex) {\n\n // remove comments\n source = source.replace(commentRegEx, '');\n\n // determine the require alias\n var params = source.match(fnBracketRegEx);\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\n\n // find or generate the regex for this requireAlias\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\n\n requireRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n while (match = requireRegEx.exec(source))\n deps.push(match[2] || match[3]);\n\n return deps;\n}\n\nfunction wrapEsModuleExecute (execute) {\n return function (require, exports, module) {\n execute(require, exports, module);\n Object.defineProperty(module.exports, '__esModule', {\n value: true\n });\n };\n}\n\n// generate anonymous define from singular named define\nvar multipleNamedDefines = false;\nvar lastNamedDefine;\nvar curMetaDeps;\nvar curEsModule = false;\nexport function clearLastDefine (metaDeps, esModule) {\n curMetaDeps = metaDeps;\n curEsModule = esModule;\n lastNamedDefine = undefined;\n multipleNamedDefines = false;\n}\nexport function registerLastDefine (loader) {\n if (lastNamedDefine)\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\n\n // bundles are an empty module\n else if (multipleNamedDefines)\n loader.registerDynamic([], false, noop);\n}\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript } from './common.js';\nimport { evaluate } from './evaluate.js';\nimport fetch from './fetch.js';\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\n\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\n\n// include the node require since we're overriding it\nexport var nodeRequire;\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\n nodeRequire = require;\n\nfunction setMetaEsModule (metadata, moduleValue) {\n if (metadata.load.esModule && !('__esModule' in moduleValue))\n Object.defineProperty(moduleValue, '__esModule', {\n value: true\n });\n}\n\nexport function instantiate (key, processAnonRegister) {\n var loader = this;\n var config = this[CONFIG];\n var metadata = this[METADATA][key];\n // first do bundles and depCache\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\n .then(function () {\n if (processAnonRegister())\n return;\n\n // node module loading\n if (key.substr(0, 6) === '@node/') {\n if (!loader._nodeRequire)\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\n loader.registerDynamic([], false, function () {\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\n });\n processAnonRegister();\n return;\n }\n\n if (metadata.load.scriptLoad ) {\n if (metadata.load.pluginKey || !supportsScriptLoad) {\n metadata.load.scriptLoad = false;\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\n }\n }\n else if (metadata.load.scriptLoad !== false && supportsScriptLoad) {\n // auto script load AMD, global without deps\n if (!metadata.load.deps && !metadata.load.globals &&\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\n metadata.load.scriptLoad = true;\n }\n\n // fetch / translate / instantiate pipeline\n if (!metadata.load.scriptLoad)\n return initializePlugin(loader, key, metadata)\n .then(function () {\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\n })\n\n // just script loading\n return new Promise(function (resolve, reject) {\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\n\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\n if (!processAnonRegister()) {\n metadata.load.format = 'global';\n var globalValue = getGlobalValue(metadata.load.exports);\n loader.registerDynamic([], false, function () {\n setMetaEsModule(metadata, globalValue);\n return globalValue;\n });\n processAnonRegister();\n }\n\n resolve();\n }, reject);\n });\n })\n .then(function (instantiated) {\n loader[METADATA][key] = undefined;\n return instantiated;\n });\n};\n\nfunction initializePlugin (loader, key, metadata) {\n if (!metadata.pluginKey)\n return resolvedPromise;\n\n return loader.import(metadata.pluginKey).then(function (plugin) {\n metadata.pluginModule = plugin;\n metadata.pluginLoad = {\n name: key,\n address: metadata.pluginArgument,\n source: undefined,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n });\n}\n\nfunction loadBundlesAndDepCache (config, loader, key) {\n // load direct deps, in turn will pick up their trace trees\n var deps = config.depCache[key];\n if (deps) {\n for (var i = 0; i < deps.length; i++)\n loader.normalize(deps[i], key).then(preloadScript);\n }\n else {\n var matched = false;\n for (var b in config.bundles) {\n for (var i = 0; i < config.bundles[b].length; i++) {\n var curModule = config.bundles[b][i];\n\n if (curModule == key) {\n matched = true;\n break;\n }\n\n // wildcard in bundles includes / boundaries\n if (curModule.indexOf('*') != -1) {\n var parts = curModule.split('*');\n if (parts.length != 2) {\n config.bundles[b].splice(i--, 1);\n continue;\n }\n\n if (key.substring(0, parts[0].length) == parts[0] &&\n key.substr(key.length - parts[1].length, parts[1].length) == parts[1]) {\n matched = true;\n break;\n }\n }\n }\n\n if (matched)\n return loader.import(b);\n }\n }\n}\n\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\n if (metadata.load.exports && !metadata.load.format)\n metadata.load.format = 'global';\n\n return resolvedPromise\n\n // locate\n .then(function () {\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\n return;\n\n return metadata.pluginModule.locate.call(loader, metadata.pluginLoad)\n .then(function (address) {\n if (address)\n metadata.pluginLoad.address = address;\n });\n })\n\n // fetch\n .then(function () {\n if (!metadata.pluginModule)\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\n\n if (!metadata.pluginModule.fetch)\n return fetch(metadata.pluginArgument, metadata.load.authorization, metadata.load.integrity, wasm);\n\n wasm = false;\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\n });\n })\n\n .then(function (fetched) {\n // fetch is already a utf-8 string if not doing wasm detection\n if (!wasm || typeof fetched === 'string')\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\n\n var bytes = new Uint8Array(fetched);\n\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return loader.newModule(wasmModule.exports);\n });\n }\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var stringSource = new TextDecoder('utf-8').decode(bytes);\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\n })\n}\n\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\n return Promise.resolve(source)\n // translate\n .then(function (source) {\n if (metadata.load.format === 'detect')\n metadata.load.format = undefined;\n\n readMetaSyntax(source, metadata);\n\n if (!metadata.pluginModule || !metadata.pluginModule.translate)\n return source;\n\n metadata.pluginLoad.source = source;\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (translated) {\n if (metadata.load.sourceMap) {\n if (typeof metadata.load.sourceMap !== 'object')\n throw new Error('metadata.load.sourceMap must be set to an object.');\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\n }\n\n if (typeof translated === 'string')\n return translated;\n else\n return metadata.pluginLoad.source;\n });\n })\n .then(function (source) {\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\n metadata.load.format = 'register';\n return source;\n }\n\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\n return source;\n }\n\n metadata.load.format = 'esm';\n return transpile(loader, source, key, metadata, processAnonRegister);\n })\n\n // instantiate\n .then(function (translated) {\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\n return translated;\n\n var calledInstantiate = false;\n metadata.pluginLoad.source = translated;\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\n translated = load.source;\n metadata.load = load.metadata;\n if (calledInstantiate)\n throw new Error('Instantiate must only be called once.');\n calledInstantiate = true;\n }))\n .then(function (result) {\n if (calledInstantiate)\n return translated;\n return protectedCreateNamespace(result);\n });\n })\n .then(function (source) {\n // plugin instantiate result case\n if (typeof source !== 'string')\n return source;\n\n if (!metadata.load.format)\n metadata.load.format = detectLegacyFormat(source);\n\n var registered = false;\n\n switch (metadata.load.format) {\n case 'esm':\n case 'register':\n case 'system':\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n if (!processAnonRegister())\n return emptyModule;\n return;\n break;\n\n case 'json':\n // warn.call(config, '\"json\" module format is deprecated.');\n return loader.newModule({ default: JSON.parse(source), __useDefault: true });\n\n case 'amd':\n var curDefine = global.define;\n global.define = loader.amdDefine;\n\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n\n // if didn't register anonymously, use the last named define if only one\n registered = processAnonRegister();\n if (!registered) {\n registerLastDefine(loader);\n registered = processAnonRegister();\n }\n\n global.define = curDefine;\n\n if (err)\n throw err;\n break;\n\n case 'cjs':\n var metaDeps = metadata.load.deps;\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\n\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n deps.push(metadata.load.globals[g]);\n\n loader.registerDynamic(deps, true, function (require, exports, module) {\n require.resolve = function (key) {\n return requireResolve.call(loader, key, module.id);\n };\n // support module.paths ish\n module.paths = [];\n module.require = require;\n\n // ensure meta deps execute first\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\n for (var i = 0; i < metaDeps.length; i++)\n require(metaDeps[i]);\n\n var pathVars = getPathVars(module.id);\n var __cjsWrapper = {\n exports: exports,\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\n };\n\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\n\n // add metadata.globals to the wrapper arguments\n if (metadata.load.globals)\n for (var g in metadata.load.globals) {\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\n cjsWrapper += \", \" + g;\n }\n\n // disable AMD detection\n var define = global.define;\n global.define = undefined;\n global.__cjsWrapper = __cjsWrapper;\n\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n\n setMetaEsModule(metadata, exports);\n\n global.__cjsWrapper = undefined;\n global.define = define;\n });\n registered = processAnonRegister();\n break;\n\n case 'global':\n var deps = metadata.load.deps || [];\n for (var g in metadata.load.globals) {\n var gl = metadata.load.globals[g];\n if (gl)\n deps.push(gl);\n }\n\n loader.registerDynamic(deps, false, function (require, exports, module) {\n var globals;\n if (metadata.load.globals) {\n globals = {};\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n globals[g] = require(metadata.load.globals[g]);\n }\n\n var exportName = metadata.load.exports;\n\n if (exportName)\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\n\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\n\n if (err)\n throw err;\n\n var output = retrieveGlobal();\n setMetaEsModule(metadata, output);\n return output;\n });\n registered = processAnonRegister();\n break;\n\n default:\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\n }\n\n if (!registered)\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\n });\n}\n\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\n\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\nexport var esmRegEx = /(^\\s*|[}\\);\\n]\\s*)(import\\s*(['\"]|(\\*\\s+as\\s+)?[^\"'\\(\\)\\n;]+\\s*from\\s*['\"]|\\{)|export\\s+\\*\\s+from\\s+[\"']|export\\s*(\\{|default|function|class|var|const|let|async\\s+function))/;\n\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\nexport function detectRegisterFormat(source) {\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\n return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';\n}\n\n// AMD Module Format Detection RegEx\n// define([.., .., ..], ...)\n// define(varName); || define(function(require, exports) {}); || define({})\nvar amdRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\n\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\n\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\nexport function detectLegacyFormat (source) {\n if (source.match(amdRegEx))\n return 'amd';\n\n cjsExportsRegEx.lastIndex = 0;\n cjsRequireRegEx.lastIndex = 0;\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\n return 'cjs';\n\n // global is the fallback format\n return 'global';\n}\n\nfunction sanitizeSourceMap (address, sourceMap) {\n var originalName = address.split('!')[0];\n\n // force set the filename of the original file\n if (!sourceMap.file || sourceMap.file == address)\n sourceMap.file = originalName + '!transpiled';\n\n // force set the sources list if only one source\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\n sourceMap.sources = [originalName];\n}\n\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\n if (!loader.transpiler)\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\n\n // deps support for es transpile\n if (metadata.load.deps) {\n var depsPrefix = '';\n for (var i = 0; i < metadata.load.deps.length; i++)\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\n source = depsPrefix + source;\n }\n\n // do transpilation\n return loader.import.call(loader, loader.transpiler)\n .then(function (transpiler) {\n if (transpiler.__useDefault)\n transpiler = transpiler.default;\n\n // translate hooks means this is a transpiler plugin instead of a raw implementation\n if (!transpiler.translate)\n throw new Error(loader.transpier + ' is not a valid transpiler plugin.');\n\n // if transpiler is the same as the plugin loader, then don't run twice\n if (transpiler === metadata.pluginModule)\n return load.source;\n\n // convert the source map into an object for transpilation chaining\n if (typeof metadata.load.sourceMap === 'string')\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\n\n metadata.pluginLoad = metadata.pluginLoad || {\n name: key,\n address: key,\n source: source,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (source) {\n // sanitize sourceMap if an object not a JSON string\n var sourceMap = metadata.load.sourceMap;\n if (sourceMap && typeof sourceMap === 'object')\n sanitizeSourceMap(key, sourceMap);\n\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\n metadata.load.format = 'register';\n\n return source;\n });\n }, function (err) {\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\n });\n}\n\n// detect any meta header syntax\n// only set if not already set\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\n\nfunction setMetaProperty(target, p, value) {\n var pParts = p.split('.');\n var curPart;\n while (pParts.length > 1) {\n curPart = pParts.shift();\n target = target[curPart] = target[curPart] || {};\n }\n curPart = pParts.shift();\n if (target[curPart] === undefined)\n target[curPart] = value;\n}\n\nfunction readMetaSyntax (source, metadata) {\n var meta = source.match(metaRegEx);\n if (!meta)\n return;\n\n var metaParts = meta[0].match(metaPartRegEx);\n\n for (var i = 0; i < metaParts.length; i++) {\n var curPart = metaParts[i];\n var len = curPart.length;\n\n var firstChar = curPart.substr(0, 1);\n if (curPart.substr(len - 1, 1) == ';')\n len--;\n\n if (firstChar != '\"' && firstChar != \"'\")\n continue;\n\n var metaString = curPart.substr(1, curPart.length - 3);\n var metaName = metaString.substr(0, metaString.indexOf(' '));\n\n if (metaName) {\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\n\n if (metaName === 'deps')\n metaName = 'deps[]';\n\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\n metaName = metaName.substr(0, metaName.length - 2);\n metadata.load[metaName] = metadata.load[metaName] || [];\n metadata.load[metaName].push(metaValue);\n }\n // \"use strict\" is not meta\n else if (metaName !== 'use') {\n setMetaProperty(metadata.load, metaName, metaValue);\n }\n }\n else {\n metadata.load[metaString] = true;\n }\n }\n}\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule, isModule } from './common.js';\n\nimport { getConfig, getConfigItem, setConfig } from './config.js';\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\nimport { instantiate, nodeRequire } from './instantiate.js';\nimport formatHelpers from './format-helpers.js';\n\nexport default SystemJSLoader;\n\nvar scriptSrc;\n\n// Promise detection and error message\nif (typeof Promise === 'undefined')\n throw new Error('SystemJS needs a Promise polyfill.');\n\nif (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n var curScript = scripts[scripts.length - 1];\n if (document.currentScript && (curScript.defer || curScript.async))\n curScript = document.currentScript;\n\n scriptSrc = curScript && curScript.src;\n}\n// worker\nelse if (typeof importScripts !== 'undefined') {\n try {\n throw new Error('_');\n }\n catch (e) {\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\n scriptSrc = url;\n });\n }\n}\n// node\nelse if (typeof __filename !== 'undefined') {\n scriptSrc = __filename;\n}\n\nfunction SystemJSLoader () {\n RegisterLoader.call(this);\n\n // NB deprecate\n this._loader = {};\n\n // internal metadata store\n this[METADATA] = {};\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n\n packageConfigPaths: [],\n packageConfigKeys: [],\n map: {},\n packages: {},\n depCache: {},\n meta: {},\n bundles: {},\n\n production: false,\n\n transpiler: undefined,\n loadedBundles: {},\n\n // global behaviour flags\n warnings: false,\n pluginFirst: false,\n\n // enable wasm loading and detection when supported\n wasm: false\n };\n\n // make the location of the system.js script accessible (if any)\n this.scriptSrc = scriptSrc;\n\n this._nodeRequire = nodeRequire;\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n\n setProduction.call(this, false, false);\n\n // add module format helpers\n formatHelpers(this);\n}\n\nexport var envModule;\nexport function setProduction (isProduction, isBuilder) {\n this[CONFIG].production = isProduction;\n this.registry.set('@system-env', envModule = this.newModule({\n browser: isBrowser,\n node: !!this._nodeRequire,\n production: !isBuilder && isProduction,\n dev: isBuilder || !isProduction,\n build: isBuilder,\n 'default': true\n }));\n}\n\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\n\nSystemJSLoader.prototype.constructor = SystemJSLoader;\n\n// NB deprecate normalize\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\n\nSystemJSLoader.prototype.load = function (key, parentKey) {\n warn.call(this[CONFIG], 'System.load is deprecated.');\n return this.import(key, parentKey);\n};\n\n// NB deprecate decanonicalize, normalizeSync\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\n\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\n\nSystemJSLoader.prototype.config = setConfig;\nSystemJSLoader.prototype.getConfig = getConfig;\n\nSystemJSLoader.prototype.global = global;\n\nSystemJSLoader.prototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return m.__useDefault ? m.default: m;\n });\n};\n\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\n\nvar hasProxy = typeof Proxy !== 'undefined';\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\n Object.defineProperty(SystemJSLoader.prototype, configName, {\n get: function () {\n var cfg = getConfigItem(this[CONFIG], configName);\n\n if (hasProxy && typeof cfg === 'object')\n cfg = new Proxy(cfg, {\n set: function (target, option) {\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\n }\n });\n\n //if (typeof cfg === 'object')\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\n return cfg;\n },\n set: function (name) {\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\n }\n });\n})(configNames[i]);\n\n/*\n * Backwards-compatible registry API, to be deprecated\n */\nfunction registryWarn(loader, method) {\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\n}\nSystemJSLoader.prototype.delete = function (key) {\n registryWarn(this, 'delete');\n this.registry.delete(key);\n};\nSystemJSLoader.prototype.get = function (key) {\n registryWarn(this, 'get');\n return this.registry.get(key);\n};\nSystemJSLoader.prototype.has = function (key) {\n registryWarn(this, 'has');\n return this.registry.has(key);\n};\nSystemJSLoader.prototype.set = function (key, module) {\n registryWarn(this, 'set');\n return this.registry.set(key, module);\n};\nSystemJSLoader.prototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\nSystemJSLoader.prototype.isModule = isModule;\n\n// ensure System.register and System.registerDynamic decanonicalize\nSystemJSLoader.prototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSLoader from './systemjs-loader.js';\n\nSystemJSLoader.prototype.version = VERSION;\n\nvar System = new SystemJSLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker)\n global.SystemJS = global.System = System;\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["resolvedPromise","addToError","RegisterLoader","global","commentRegEx","stringRegEx","instantiate","fetch","SystemJSLoader"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index fcd24c13..261a2347 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "systemjs", - "version": "0.20.2", + "version": "0.20.3", "description": "Dynamic ES module loader", "repository": { "type": "git",