@inrupt/solid-client-authn-browser 1.17.0 → 1.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/constant.d.ts +2 -2
  2. package/dist/index.js +53 -30
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +53 -30
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/solid-client-authn.bundle.js +7 -7
  7. package/dist/solid-client-authn.bundle.js.map +1 -1
  8. package/package.json +6 -6
  9. package/rollup.config.mjs +1 -1
  10. package/src/ClientAuthentication.spec.ts +66 -38
  11. package/src/ClientAuthentication.ts +4 -4
  12. package/src/Session.spec.ts +44 -44
  13. package/src/Session.ts +24 -18
  14. package/src/__mocks__/ClientAuthentication.ts +2 -2
  15. package/src/defaultSession.ts +4 -3
  16. package/src/dependencies.ts +5 -5
  17. package/src/login/oidc/ClientRegistrar.spec.ts +22 -22
  18. package/src/login/oidc/ClientRegistrar.ts +4 -2
  19. package/src/login/oidc/IssuerConfigFetcher.spec.ts +25 -25
  20. package/src/login/oidc/IssuerConfigFetcher.ts +12 -7
  21. package/src/login/oidc/OidcLoginHandler.spec.ts +15 -15
  22. package/src/login/oidc/OidcLoginHandler.ts +14 -9
  23. package/src/login/oidc/Redirector.spec.ts +1 -1
  24. package/src/login/oidc/__mocks__/ClientRegistrar.ts +3 -3
  25. package/src/login/oidc/__mocks__/IssuerConfigFetcher.ts +3 -3
  26. package/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.spec.ts +42 -42
  27. package/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts +32 -19
  28. package/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.spec.ts +12 -12
  29. package/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts +2 -2
  30. package/src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.spec.ts +7 -7
  31. package/src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.ts +2 -2
  32. package/src/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.spec.ts +17 -17
  33. package/src/login/oidc/refresh/TokenRefresher.spec.ts +14 -14
  34. package/src/login/oidc/refresh/TokenRefresher.ts +12 -8
  35. package/src/login/oidc/refresh/__mocks__/TokenRefresher.ts +1 -1
  36. package/src/sessionInfo/SessionInfoManager.spec.ts +37 -15
  37. package/src/sessionInfo/SessionInfoManager.ts +46 -50
  38. package/src/sessionInfo/__mocks__/SessionInfoManager.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"solid-client-authn.bundle.js","sources":["../../../node_modules/events/events.js","../../../node_modules/@inrupt/universal-fetch/dist/index-browser.mjs","../../../node_modules/jose/dist/browser/runtime/webcrypto.js","../../../node_modules/jose/dist/browser/lib/buffer_utils.js","../../../node_modules/jose/dist/browser/runtime/base64url.js","../../../node_modules/jose/dist/browser/util/errors.js","../../../node_modules/jose/dist/browser/lib/crypto_key.js","../../../node_modules/jose/dist/browser/lib/invalid_key_input.js","../../../node_modules/jose/dist/browser/runtime/random.js","../../../node_modules/jose/dist/browser/runtime/is_key_like.js","../../../node_modules/jose/dist/browser/lib/is_disjoint.js","../../../node_modules/jose/dist/browser/lib/is_object.js","../../../node_modules/jose/dist/browser/runtime/check_key_length.js","../../../node_modules/jose/dist/browser/runtime/jwk_to_key.js","../../../node_modules/jose/dist/browser/lib/check_key_type.js","../../../node_modules/jose/dist/browser/lib/validate_crit.js","../../../node_modules/jose/dist/browser/lib/validate_algorithms.js","../../../node_modules/jose/dist/browser/runtime/key_to_jwk.js","../../../node_modules/jose/dist/browser/key/export.js","../../../node_modules/jose/dist/browser/runtime/subtle_dsa.js","../../../node_modules/jose/dist/browser/runtime/get_sign_verify_key.js","../../../node_modules/jose/dist/browser/runtime/verify.js","../../../node_modules/jose/dist/browser/jws/compact/verify.js","../../../node_modules/jose/dist/browser/jws/flattened/verify.js","../../../node_modules/jose/dist/browser/lib/epoch.js","../../../node_modules/jose/dist/browser/lib/secs.js","../../../node_modules/jose/dist/browser/lib/jwt_claims_set.js","../../../node_modules/jose/dist/browser/jws/flattened/sign.js","../../../node_modules/jose/dist/browser/runtime/sign.js","../../../node_modules/jose/dist/browser/jws/compact/sign.js","../../../node_modules/jose/dist/browser/jwt/produce.js","../../../node_modules/jose/dist/browser/jwt/sign.js","../../../node_modules/jose/dist/browser/runtime/generate.js","../../../node_modules/jose/dist/browser/key/generate_key_pair.js","../../../node_modules/@inrupt/solid-client-authn-core/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/@inrupt/solid-client-authn-core/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/@inrupt/solid-client-authn-core/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/@inrupt/solid-client-authn-core/node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@inrupt/solid-client-authn-core/dist/index.mjs","../../../node_modules/jose/dist/browser/jwt/verify.js","../../../node_modules/jose/dist/browser/key/import.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/storage/StorageUtility.ts","../../../node_modules/@inrupt/oidc-client/lib/oidc-client.min.js","../../../node_modules/@inrupt/oidc-client-ext/dist/index.es.js","../src/ClientAuthentication.ts","../src/login/oidc/OidcLoginHandler.ts","../src/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.ts","../src/login/oidc/IssuerConfigFetcher.ts","../src/sessionInfo/SessionInfoManager.ts","../src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.ts","../src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts","../src/login/oidc/AggregateRedirectHandler.ts","../src/storage/BrowserStorage.ts","../src/login/oidc/Redirector.ts","../src/login/oidc/ClientRegistrar.ts","../src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts","../src/login/oidc/refresh/TokenRefresher.ts","../src/dependencies.ts","../src/constant.ts","../src/Session.ts","../src/defaultSession.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var indexBrowser = globalThis.fetch;\nconst { fetch, Response, Request, Headers } = globalThis;\n\nexport { Headers, Request, Response, indexBrowser as default, fetch };\n","export default crypto;\nexport const isCryptoKey = (key) => key instanceof CryptoKey;\n","import digest from '../runtime/digest.js';\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nexport function p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nexport async function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await digest('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nexport const encodeBase64 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n};\nexport const encode = (input) => {\n return encodeBase64(input).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nexport const decodeBase64 = (encoded) => {\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n};\nexport const decode = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return decodeBase64(encoded);\n }\n catch (_a) {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n","export class JOSEError extends Error {\n static get code() {\n return 'ERR_JOSE_GENERIC';\n }\n constructor(message) {\n var _a;\n super(message);\n this.code = 'ERR_JOSE_GENERIC';\n this.name = this.constructor.name;\n (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static get code() {\n return 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JWTExpired extends JOSEError {\n static get code() {\n return 'ERR_JWT_EXPIRED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_EXPIRED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n static get code() {\n return 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n}\nexport class JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_NOT_SUPPORTED';\n }\n static get code() {\n return 'ERR_JOSE_NOT_SUPPORTED';\n }\n}\nexport class JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_DECRYPTION_FAILED';\n this.message = 'decryption operation failed';\n }\n static get code() {\n return 'ERR_JWE_DECRYPTION_FAILED';\n }\n}\nexport class JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_INVALID';\n }\n static get code() {\n return 'ERR_JWE_INVALID';\n }\n}\nexport class JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_INVALID';\n }\n static get code() {\n return 'ERR_JWS_INVALID';\n }\n}\nexport class JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWT_INVALID';\n }\n static get code() {\n return 'ERR_JWT_INVALID';\n }\n}\nexport class JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWK_INVALID';\n }\n static get code() {\n return 'ERR_JWK_INVALID';\n }\n}\nexport class JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_INVALID';\n }\n static get code() {\n return 'ERR_JWKS_INVALID';\n }\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_NO_MATCHING_KEY';\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_NO_MATCHING_KEY';\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n }\n}\nSymbol.asyncIterator;\nexport class JWKSTimeout extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_TIMEOUT';\n this.message = 'request timed out';\n }\n static get code() {\n return 'ERR_JWKS_TIMEOUT';\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n this.message = 'signature verification failed';\n }\n static get code() {\n return 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n }\n}\n","function unusable(name, prop = 'algorithm.name') {\n return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\n}\nfunction isAlgorithm(algorithm, name) {\n return algorithm.name === name;\n}\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usages) {\n if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {\n let msg = 'CryptoKey does not support this operation, its usages must include ';\n if (usages.length > 2) {\n const last = usages.pop();\n msg += `one of ${usages.join(', ')}, or ${last}.`;\n }\n else if (usages.length === 2) {\n msg += `one of ${usages[0]} or ${usages[1]}.`;\n }\n else {\n msg += `${usages[0]}.`;\n }\n throw new TypeError(msg);\n }\n}\nexport function checkSigCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'EdDSA': {\n if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {\n throw unusable('Ed25519 or Ed448');\n }\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\nexport function checkEncCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n case 'X448':\n break;\n default:\n throw unusable('ECDH, X25519, or X448');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n const expected = parseInt(alg.slice(9), 10) || 1;\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\n","function message(msg, actual, ...types) {\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor && actual.constructor.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport default (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nexport function withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n","import crypto from './webcrypto.js';\nexport default crypto.getRandomValues.bind(crypto);\n","import { isCryptoKey } from './webcrypto.js';\nexport default (key) => {\n return isCryptoKey(key);\n};\nexport const types = ['CryptoKey'];\n","const isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexport default isDisjoint;\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","export default (alg, key) => {\n if (alg.startsWith('RS') || alg.startsWith('PS')) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n }\n};\n","import crypto from './webcrypto.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { decode as base64url } from './base64url.js';\nfunction subtleMapping(jwk) {\n let algorithm;\n let keyUsages;\n switch (jwk.kty) {\n case 'oct': {\n switch (jwk.alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n algorithm = { name: 'HMAC', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n throw new JOSENotSupported(`${jwk.alg} keys cannot be imported as CryptoKey instances`);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n algorithm = { name: 'AES-GCM' };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n algorithm = { name: 'AES-KW' };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n algorithm = { name: 'PBKDF2' };\n keyUsages = ['deriveBits'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'RSA': {\n switch (jwk.alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`,\n };\n keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'EC': {\n switch (jwk.alg) {\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'OKP': {\n switch (jwk.alg) {\n case 'EdDSA':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"kty\" (Key Type) Parameter value');\n }\n return { algorithm, keyUsages };\n}\nconst parse = async (jwk) => {\n var _a, _b;\n if (!jwk.alg) {\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n }\n const { algorithm, keyUsages } = subtleMapping(jwk);\n const rest = [\n algorithm,\n (_a = jwk.ext) !== null && _a !== void 0 ? _a : false,\n (_b = jwk.key_ops) !== null && _b !== void 0 ? _b : keyUsages,\n ];\n if (algorithm.name === 'PBKDF2') {\n return crypto.subtle.importKey('raw', base64url(jwk.k), ...rest);\n }\n const keyData = { ...jwk };\n delete keyData.alg;\n delete keyData.use;\n return crypto.subtle.importKey('jwk', keyData, ...rest);\n};\nexport default parse;\n","import { withAlg as invalidKeyInput } from './invalid_key_input.js';\nimport isKeyLike, { types } from '../runtime/is_key_like.js';\nconst symmetricTypeCheck = (alg, key) => {\n if (key instanceof Uint8Array)\n return;\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, ...types, 'Uint8Array'));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${types.join(' or ')} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage) => {\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, ...types));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (usage === 'sign' && key.type === 'public') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm signing must be of type \"private\"`);\n }\n if (usage === 'decrypt' && key.type === 'public') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n if (key.algorithm && usage === 'verify' && key.type === 'private') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm verifying must be of type \"public\"`);\n }\n if (key.algorithm && usage === 'encrypt' && key.type === 'private') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n};\nconst checkKeyType = (alg, key, usage) => {\n const symmetric = alg.startsWith('HS') ||\n alg === 'dir' ||\n alg.startsWith('PBES2') ||\n /^A\\d{3}(?:GCM)?KW$/.test(alg);\n if (symmetric) {\n symmetricTypeCheck(alg, key);\n }\n else {\n asymmetricTypeCheck(alg, key, usage);\n }\n};\nexport default checkKeyType;\n","import { JOSENotSupported } from '../util/errors.js';\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n else if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexport default validateCrit;\n","const validateAlgorithms = (option, algorithms) => {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n};\nexport default validateAlgorithms;\n","import crypto, { isCryptoKey } from './webcrypto.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { encode as base64url } from './base64url.js';\nimport { types } from './is_key_like.js';\nconst keyToJWK = async (key) => {\n if (key instanceof Uint8Array) {\n return {\n kty: 'oct',\n k: base64url(key),\n };\n }\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, ...types, 'Uint8Array'));\n }\n if (!key.extractable) {\n throw new TypeError('non-extractable CryptoKey cannot be exported as a JWK');\n }\n const { ext, key_ops, alg, use, ...jwk } = await crypto.subtle.exportKey('jwk', key);\n return jwk;\n};\nexport default keyToJWK;\n","import { toSPKI as exportPublic } from '../runtime/asn1.js';\nimport { toPKCS8 as exportPrivate } from '../runtime/asn1.js';\nimport keyToJWK from '../runtime/key_to_jwk.js';\nexport async function exportSPKI(key) {\n return exportPublic(key);\n}\nexport async function exportPKCS8(key) {\n return exportPrivate(key);\n}\nexport async function exportJWK(key) {\n return keyToJWK(key);\n}\n","import { JOSENotSupported } from '../util/errors.js';\nexport default function subtleDsa(alg, algorithm) {\n const hash = `SHA-${alg.slice(-3)}`;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n return { hash, name: 'HMAC' };\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { hash, name: 'RSA-PSS', saltLength: alg.slice(-3) >> 3 };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { hash, name: 'RSASSA-PKCS1-v1_5' };\n case 'ES256':\n case 'ES384':\n case 'ES512':\n return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };\n case 'EdDSA':\n return { name: algorithm.name };\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","import crypto, { isCryptoKey } from './webcrypto.js';\nimport { checkSigCryptoKey } from '../lib/crypto_key.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { types } from './is_key_like.js';\nexport default function getCryptoKey(alg, key, usage) {\n if (isCryptoKey(key)) {\n checkSigCryptoKey(key, alg, usage);\n return key;\n }\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError(invalidKeyInput(key, ...types));\n }\n return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);\n }\n throw new TypeError(invalidKeyInput(key, ...types, 'Uint8Array'));\n}\n","import subtleAlgorithm from './subtle_dsa.js';\nimport crypto from './webcrypto.js';\nimport checkKeyLength from './check_key_length.js';\nimport getVerifyKey from './get_sign_verify_key.js';\nconst verify = async (alg, key, signature, data) => {\n const cryptoKey = await getVerifyKey(alg, key, 'verify');\n checkKeyLength(alg, cryptoKey);\n const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);\n try {\n return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n }\n catch (_a) {\n return false;\n }\n};\nexport default verify;\n","import { flattenedVerify } from '../flattened/verify.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { decoder } from '../../lib/buffer_utils.js';\nexport async function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new JWSInvalid('Invalid Compact JWS');\n }\n const verified = await flattenedVerify({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as base64url } from '../../runtime/base64url.js';\nimport verify from '../../runtime/verify.js';\nimport { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';\nimport { concat, encoder, decoder } from '../../lib/buffer_utils.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport isObject from '../../lib/is_object.js';\nimport checkKeyType from '../../lib/check_key_type.js';\nimport validateCrit from '../../lib/validate_crit.js';\nimport validateAlgorithms from '../../lib/validate_algorithms.js';\nexport async function flattenedVerify(jws, key, options) {\n var _a;\n if (!isObject(jws)) {\n throw new JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !isObject(jws.header)) {\n throw new JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = base64url(jws.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n catch (_b) {\n throw new JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!isDisjoint(parsedProt, jws.header)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && validateAlgorithms('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n }\n checkKeyType(alg, key, 'verify');\n const data = concat(encoder.encode((_a = jws.protected) !== null && _a !== void 0 ? _a : ''), encoder.encode('.'), typeof jws.payload === 'string' ? encoder.encode(jws.payload) : jws.payload);\n const signature = base64url(jws.signature);\n const verified = await verify(alg, key, signature, data);\n if (!verified) {\n throw new JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n payload = base64url(jws.payload);\n }\n else if (typeof jws.payload === 'string') {\n payload = encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","export default (date) => Math.floor(date.getTime() / 1000);\n","const minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;\nexport default (str) => {\n const matched = REGEX.exec(str);\n if (!matched) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[1]);\n const unit = matched[2].toLowerCase();\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n return Math.round(value);\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n return Math.round(value * minute);\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n return Math.round(value * hour);\n case 'day':\n case 'days':\n case 'd':\n return Math.round(value * day);\n case 'week':\n case 'weeks':\n case 'w':\n return Math.round(value * week);\n default:\n return Math.round(value * year);\n }\n};\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';\nimport { decoder } from './buffer_utils.js';\nimport epoch from './epoch.js';\nimport secs from './secs.js';\nimport isObject from './is_object.js';\nconst normalizeTyp = (value) => value.toLowerCase().replace(/^application\\//, '');\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexport default (protectedHeader, encodedPayload, options = {}) => {\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', 'typ', 'check_failed');\n }\n let payload;\n try {\n payload = JSON.parse(decoder.decode(encodedPayload));\n }\n catch (_a) {\n }\n if (!isObject(payload)) {\n throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n if (maxTokenAge !== undefined)\n requiredClaims.push('iat');\n if (audience !== undefined)\n requiredClaims.push('aud');\n if (subject !== undefined)\n requiredClaims.push('sub');\n if (issuer !== undefined)\n requiredClaims.push('iss');\n for (const claim of new Set(requiredClaims.reverse())) {\n if (!(claim in payload)) {\n throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, claim, 'missing');\n }\n }\n if (issuer && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = secs(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = epoch(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new JWTClaimValidationFailed('\"iat\" claim must be a number', 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new JWTClaimValidationFailed('\"exp\" claim must be a number', 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new JWTExpired('\"exp\" claim timestamp check failed', 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : secs(maxTokenAge);\n if (age - tolerance > max) {\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', 'iat', 'check_failed');\n }\n }\n return payload;\n};\n","import { encode as base64url } from '../../runtime/base64url.js';\nimport sign from '../../runtime/sign.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { encoder, decoder, concat } from '../../lib/buffer_utils.js';\nimport checkKeyType from '../../lib/check_key_type.js';\nimport validateCrit from '../../lib/validate_crit.js';\nexport class FlattenedSign {\n constructor(payload) {\n if (!(payload instanceof Uint8Array)) {\n throw new TypeError('payload must be an instance of Uint8Array');\n }\n this._payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n async sign(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader) {\n throw new JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = this._protectedHeader.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n checkKeyType(alg, key, 'sign');\n let payload = this._payload;\n if (b64) {\n payload = encoder.encode(base64url(payload));\n }\n let protectedHeader;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(base64url(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n const data = concat(protectedHeader, encoder.encode('.'), payload);\n const signature = await sign(alg, key, data);\n const jws = {\n signature: base64url(signature),\n payload: '',\n };\n if (b64) {\n jws.payload = decoder.decode(payload);\n }\n if (this._unprotectedHeader) {\n jws.header = this._unprotectedHeader;\n }\n if (this._protectedHeader) {\n jws.protected = decoder.decode(protectedHeader);\n }\n return jws;\n }\n}\n","import subtleAlgorithm from './subtle_dsa.js';\nimport crypto from './webcrypto.js';\nimport checkKeyLength from './check_key_length.js';\nimport getSignKey from './get_sign_verify_key.js';\nconst sign = async (alg, key, data) => {\n const cryptoKey = await getSignKey(alg, key, 'sign');\n checkKeyLength(alg, cryptoKey);\n const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);\n return new Uint8Array(signature);\n};\nexport default sign;\n","import { FlattenedSign } from '../flattened/sign.js';\nexport class CompactSign {\n constructor(payload) {\n this._flattened = new FlattenedSign(payload);\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n async sign(key, options) {\n const jws = await this._flattened.sign(key, options);\n if (jws.payload === undefined) {\n throw new TypeError('use the flattened module for creating JWS with b64: false');\n }\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n }\n}\n","import epoch from '../lib/epoch.js';\nimport isObject from '../lib/is_object.js';\nimport secs from '../lib/secs.js';\nexport class ProduceJWT {\n constructor(payload) {\n if (!isObject(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this._payload = payload;\n }\n setIssuer(issuer) {\n this._payload = { ...this._payload, iss: issuer };\n return this;\n }\n setSubject(subject) {\n this._payload = { ...this._payload, sub: subject };\n return this;\n }\n setAudience(audience) {\n this._payload = { ...this._payload, aud: audience };\n return this;\n }\n setJti(jwtId) {\n this._payload = { ...this._payload, jti: jwtId };\n return this;\n }\n setNotBefore(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, nbf: input };\n }\n else {\n this._payload = { ...this._payload, nbf: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setExpirationTime(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, exp: input };\n }\n else {\n this._payload = { ...this._payload, exp: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setIssuedAt(input) {\n if (typeof input === 'undefined') {\n this._payload = { ...this._payload, iat: epoch(new Date()) };\n }\n else {\n this._payload = { ...this._payload, iat: input };\n }\n return this;\n }\n}\n","import { CompactSign } from '../jws/compact/sign.js';\nimport { JWTInvalid } from '../util/errors.js';\nimport { encoder } from '../lib/buffer_utils.js';\nimport { ProduceJWT } from './produce.js';\nexport class SignJWT extends ProduceJWT {\n setProtectedHeader(protectedHeader) {\n this._protectedHeader = protectedHeader;\n return this;\n }\n async sign(key, options) {\n var _a;\n const sig = new CompactSign(encoder.encode(JSON.stringify(this._payload)));\n sig.setProtectedHeader(this._protectedHeader);\n if (Array.isArray((_a = this._protectedHeader) === null || _a === void 0 ? void 0 : _a.crit) &&\n this._protectedHeader.crit.includes('b64') &&\n this._protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n return sig.sign(key, options);\n }\n}\n","import crypto from './webcrypto.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport random from './random.js';\nexport async function generateSecret(alg, options) {\n var _a;\n let length;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n length = parseInt(alg.slice(-3), 10);\n algorithm = { name: 'HMAC', hash: `SHA-${length}`, length };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n length = parseInt(alg.slice(-3), 10);\n return random(new Uint8Array(length >> 3));\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n length = parseInt(alg.slice(1, 4), 10);\n algorithm = { name: 'AES-KW', length };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n length = parseInt(alg.slice(1, 4), 10);\n algorithm = { name: 'AES-GCM', length };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return crypto.subtle.generateKey(algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages);\n}\nfunction getModulusLengthOption(options) {\n var _a;\n const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');\n }\n return modulusLength;\n}\nexport async function generateKeyPair(alg, options) {\n var _a, _b, _c;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = {\n name: 'RSA-PSS',\n hash: `SHA-${alg.slice(-3)}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: `SHA-${alg.slice(-3)}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['decrypt', 'unwrapKey', 'encrypt', 'wrapKey'];\n break;\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'EdDSA':\n keyUsages = ['sign', 'verify'];\n const crv = (_a = options === null || options === void 0 ? void 0 : options.crv) !== null && _a !== void 0 ? _a : 'Ed25519';\n switch (crv) {\n case 'Ed25519':\n case 'Ed448':\n algorithm = { name: crv };\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported crv option provided');\n }\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n keyUsages = ['deriveKey', 'deriveBits'];\n const crv = (_b = options === null || options === void 0 ? void 0 : options.crv) !== null && _b !== void 0 ? _b : 'P-256';\n switch (crv) {\n case 'P-256':\n case 'P-384':\n case 'P-521': {\n algorithm = { name: 'ECDH', namedCurve: crv };\n break;\n }\n case 'X25519':\n case 'X448':\n algorithm = { name: crv };\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448');\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return (crypto.subtle.generateKey(algorithm, (_c = options === null || options === void 0 ? void 0 : options.extractable) !== null && _c !== void 0 ? _c : false, keyUsages));\n}\n","import { generateKeyPair as generate } from '../runtime/generate.js';\nexport async function generateKeyPair(alg, options) {\n return generate(alg, options);\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { EventEmitter } from 'events';\nimport { fetch, Headers } from '@inrupt/universal-fetch';\nimport { jwtVerify, importJWK, exportJWK, SignJWT, generateKeyPair } from 'jose';\nimport { v4 } from 'uuid';\n\nconst SOLID_CLIENT_AUTHN_KEY_PREFIX = \"solidClientAuthn:\";\nconst PREFERRED_SIGNING_ALG = [\"ES256\", \"RS256\"];\nconst EVENTS = {\n ERROR: \"error\",\n LOGIN: \"login\",\n LOGOUT: \"logout\",\n NEW_REFRESH_TOKEN: \"newRefreshToken\",\n SESSION_EXPIRED: \"sessionExpired\",\n SESSION_EXTENDED: \"sessionExtended\",\n SESSION_RESTORED: \"sessionRestore\",\n TIMEOUT_SET: \"timeoutSet\",\n};\nconst REFRESH_BEFORE_EXPIRATION_SECONDS = 5;\nconst SCOPE_OPENID = \"openid\";\nconst SCOPE_OFFLINE = \"offline_access\";\nconst SCOPE_WEBID = \"webid\";\nconst DEFAULT_SCOPES = [SCOPE_OPENID, SCOPE_OFFLINE, SCOPE_WEBID].join(\" \");\n\nconst buildProxyHandler = (toExclude, errorMessage) => ({\n get(target, prop, receiver) {\n if (!Object.getOwnPropertyNames(EventEmitter).includes(prop) &&\n Object.getOwnPropertyNames(toExclude).includes(prop)) {\n throw new Error(`${errorMessage}: [${prop}] is not supported`);\n }\n return Reflect.get(target, prop, receiver);\n },\n});\n\nclass AggregateHandler {\n constructor(handleables) {\n this.handleables = handleables;\n }\n async getProperHandler(params) {\n const canHandleList = await Promise.all(this.handleables.map((handleable) => handleable.canHandle(...params)));\n for (let i = 0; i < canHandleList.length; i += 1) {\n if (canHandleList[i]) {\n return this.handleables[i];\n }\n }\n return null;\n }\n async canHandle(...params) {\n return (await this.getProperHandler(params)) !== null;\n }\n async handle(...params) {\n const handler = await this.getProperHandler(params);\n if (handler) {\n return handler.handle(...params);\n }\n throw new Error(`[${this.constructor.name}] cannot find a suitable handler for: ${params\n .map((param) => {\n try {\n return JSON.stringify(param);\n }\n catch (err) {\n return param.toString();\n }\n })\n .join(\", \")}`);\n }\n}\n\nasync function fetchJwks(jwksIri, issuerIri) {\n const jwksResponse = await fetch(jwksIri);\n if (jwksResponse.status !== 200) {\n throw new Error(`Could not fetch JWKS for [${issuerIri}] at [${jwksIri}]: ${jwksResponse.status} ${jwksResponse.statusText}`);\n }\n let jwk;\n try {\n jwk = (await jwksResponse.json()).keys[0];\n }\n catch (e) {\n throw new Error(`Malformed JWKS for [${issuerIri}] at [${jwksIri}]: ${e.message}`);\n }\n return jwk;\n}\nasync function getWebidFromTokenPayload(idToken, jwksIri, issuerIri, clientId) {\n const jwk = await fetchJwks(jwksIri, issuerIri);\n let payload;\n try {\n const { payload: verifiedPayload } = await jwtVerify(idToken, await importJWK(jwk), {\n issuer: issuerIri,\n audience: clientId,\n });\n payload = verifiedPayload;\n }\n catch (e) {\n throw new Error(`Token verification failed: ${e.stack}`);\n }\n if (typeof payload.webid === \"string\") {\n return payload.webid;\n }\n if (typeof payload.sub !== \"string\") {\n throw new Error(`The token ${JSON.stringify(payload)} is invalid: it has no 'webid' claim and no 'sub' claim.`);\n }\n try {\n new URL(payload.sub);\n return payload.sub;\n }\n catch (e) {\n throw new Error(`The token has no 'webid' claim, and its 'sub' claim of [${payload.sub}] is invalid as a URL - error [${e}].`);\n }\n}\n\nfunction isValidRedirectUrl(redirectUrl) {\n try {\n const urlObject = new URL(redirectUrl);\n return urlObject.hash === \"\";\n }\n catch (e) {\n return false;\n }\n}\n\nclass AuthorizationCodeWithPkceOidcHandlerBase {\n constructor(storageUtility, redirector) {\n this.storageUtility = storageUtility;\n this.redirector = redirector;\n }\n async canHandle(oidcLoginOptions) {\n return !!(oidcLoginOptions.issuerConfiguration.grantTypesSupported &&\n oidcLoginOptions.issuerConfiguration.grantTypesSupported.indexOf(\"authorization_code\") > -1);\n }\n async handleRedirect({ oidcLoginOptions, state, codeVerifier, targetUrl, }) {\n await Promise.all([\n this.storageUtility.setForUser(state, {\n sessionId: oidcLoginOptions.sessionId,\n }),\n this.storageUtility.setForUser(oidcLoginOptions.sessionId, {\n codeVerifier,\n issuer: oidcLoginOptions.issuer.toString(),\n redirectUrl: oidcLoginOptions.redirectUrl,\n dpop: oidcLoginOptions.dpop ? \"true\" : \"false\",\n }),\n ]);\n this.redirector.redirect(targetUrl, {\n handleRedirect: oidcLoginOptions.handleRedirect,\n });\n return undefined;\n }\n}\n\nclass GeneralLogoutHandler {\n constructor(sessionInfoManager) {\n this.sessionInfoManager = sessionInfoManager;\n }\n async canHandle() {\n return true;\n }\n async handle(userId) {\n await this.sessionInfoManager.clear(userId);\n }\n}\n\nclass IRpLogoutHandler {\n constructor(redirector) {\n this.redirector = redirector;\n }\n async canHandle(userId, options) {\n return (options === null || options === void 0 ? void 0 : options.logoutType) === \"idp\";\n }\n async handle(userId, options) {\n if ((options === null || options === void 0 ? void 0 : options.logoutType) !== \"idp\") {\n throw new Error(\"Attempting to call idp logout handler to perform app logout\");\n }\n if (options.toLogoutUrl === undefined) {\n throw new Error(\"Cannot perform IDP logout. Did you log in using the OIDC authentication flow?\");\n }\n this.redirector.redirect(options.toLogoutUrl(options), {\n handleRedirect: options.handleRedirect,\n });\n }\n}\n\nclass IWaterfallLogoutHandler {\n constructor(sessionInfoManager, redirector) {\n this.handlers = [\n new GeneralLogoutHandler(sessionInfoManager),\n new IRpLogoutHandler(redirector),\n ];\n }\n async canHandle() {\n return true;\n }\n async handle(userId, options) {\n for (const handler of this.handlers) {\n if (await handler.canHandle(userId, options))\n await handler.handle(userId, options);\n }\n }\n}\n\nfunction getUnauthenticatedSession() {\n return {\n isLoggedIn: false,\n sessionId: v4(),\n fetch,\n };\n}\nasync function clear(sessionId, storage) {\n await Promise.all([\n storage.deleteAllUserData(sessionId, { secure: false }),\n storage.deleteAllUserData(sessionId, { secure: true }),\n ]);\n}\nclass SessionInfoManagerBase {\n constructor(storageUtility) {\n this.storageUtility = storageUtility;\n }\n update(_sessionId, _options) {\n throw new Error(\"Not Implemented\");\n }\n get(_) {\n throw new Error(\"Not implemented\");\n }\n async getAll() {\n throw new Error(\"Not implemented\");\n }\n async clear(sessionId) {\n return clear(sessionId, this.storageUtility);\n }\n async register(_sessionId) {\n throw new Error(\"Not implemented\");\n }\n async getRegisteredSessionIdAll() {\n throw new Error(\"Not implemented\");\n }\n async clearAll() {\n throw new Error(\"Not implemented\");\n }\n}\n\nfunction getEndSessionUrl({ endSessionEndpoint, idTokenHint, postLogoutRedirectUri, state, }) {\n const url = new URL(endSessionEndpoint);\n if (idTokenHint !== undefined)\n url.searchParams.append(\"id_token_hint\", idTokenHint);\n if (postLogoutRedirectUri !== undefined) {\n url.searchParams.append(\"post_logout_redirect_uri\", postLogoutRedirectUri);\n if (state !== undefined)\n url.searchParams.append(\"state\", state);\n }\n return url.toString();\n}\nfunction maybeBuildRpInitiatedLogout({ endSessionEndpoint, idTokenHint, }) {\n if (endSessionEndpoint === undefined)\n return undefined;\n return function logout({ state, postLogoutUrl }) {\n return getEndSessionUrl({\n endSessionEndpoint,\n idTokenHint,\n state,\n postLogoutRedirectUri: postLogoutUrl,\n });\n };\n}\n\nfunction isSupportedTokenType(token) {\n return typeof token === \"string\" && [\"DPoP\", \"Bearer\"].includes(token);\n}\n\nconst USER_SESSION_PREFIX = \"solidClientAuthenticationUser\";\n\nfunction isValidUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction determineSigningAlg(supported, preferred) {\n var _a;\n return ((_a = preferred.find((signingAlg) => {\n return supported.includes(signingAlg);\n })) !== null && _a !== void 0 ? _a : null);\n}\nfunction determineClientType(options, issuerConfig) {\n if (options.clientId !== undefined && !isValidUrl(options.clientId)) {\n return \"static\";\n }\n if (issuerConfig.scopesSupported.includes(\"webid\") &&\n options.clientId !== undefined &&\n isValidUrl(options.clientId)) {\n return \"solid-oidc\";\n }\n return \"dynamic\";\n}\nasync function handleRegistration(options, issuerConfig, storageUtility, clientRegistrar) {\n const clientType = determineClientType(options, issuerConfig);\n if (clientType === \"dynamic\") {\n return clientRegistrar.getClient({\n sessionId: options.sessionId,\n clientName: options.clientName,\n redirectUrl: options.redirectUrl,\n }, issuerConfig);\n }\n await storageUtility.setForUser(options.sessionId, {\n clientId: options.clientId,\n });\n if (options.clientSecret) {\n await storageUtility.setForUser(options.sessionId, {\n clientSecret: options.clientSecret,\n });\n }\n if (options.clientName) {\n await storageUtility.setForUser(options.sessionId, {\n clientName: options.clientName,\n });\n }\n return {\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n clientName: options.clientName,\n clientType,\n };\n}\n\nconst globalFetch = (request, init) => fetch(request, init);\nclass ClientAuthentication {\n constructor(loginHandler, redirectHandler, logoutHandler, sessionInfoManager, issuerConfigFetcher) {\n this.loginHandler = loginHandler;\n this.redirectHandler = redirectHandler;\n this.logoutHandler = logoutHandler;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.fetch = globalFetch;\n this.logout = async (sessionId, options) => {\n await this.logoutHandler.handle(sessionId, (options === null || options === void 0 ? void 0 : options.logoutType) === \"idp\"\n ? {\n ...options,\n toLogoutUrl: this.boundLogout,\n }\n : options);\n this.fetch = globalFetch;\n delete this.boundLogout;\n };\n this.getSessionInfo = async (sessionId) => {\n return this.sessionInfoManager.get(sessionId);\n };\n this.getAllSessionInfo = async () => {\n return this.sessionInfoManager.getAll();\n };\n }\n}\n\nasync function getSessionIdFromOauthState(storageUtility, oauthState) {\n return storageUtility.getForUser(oauthState, \"sessionId\");\n}\nasync function loadOidcContextFromStorage(sessionId, storageUtility, configFetcher) {\n try {\n const [issuerIri, codeVerifier, storedRedirectIri, dpop] = await Promise.all([\n storageUtility.getForUser(sessionId, \"issuer\", {\n errorIfNull: true,\n }),\n storageUtility.getForUser(sessionId, \"codeVerifier\"),\n storageUtility.getForUser(sessionId, \"redirectUrl\"),\n storageUtility.getForUser(sessionId, \"dpop\", { errorIfNull: true }),\n ]);\n await storageUtility.deleteForUser(sessionId, \"codeVerifier\");\n const issuerConfig = await configFetcher.fetchConfig(issuerIri);\n return {\n codeVerifier,\n redirectUrl: storedRedirectIri,\n issuerConfig,\n dpop: dpop === \"true\",\n };\n }\n catch (e) {\n throw new Error(`Failed to retrieve OIDC context from storage associated with session [${sessionId}]: ${e}`);\n }\n}\nasync function saveSessionInfoToStorage(storageUtility, sessionId, webId, isLoggedIn, refreshToken, secure, dpopKey) {\n if (refreshToken !== undefined) {\n await storageUtility.setForUser(sessionId, { refreshToken }, { secure });\n }\n if (webId !== undefined) {\n await storageUtility.setForUser(sessionId, { webId }, { secure });\n }\n if (isLoggedIn !== undefined) {\n await storageUtility.setForUser(sessionId, { isLoggedIn }, { secure });\n }\n if (dpopKey !== undefined) {\n await storageUtility.setForUser(sessionId, {\n publicKey: JSON.stringify(dpopKey.publicKey),\n privateKey: JSON.stringify(await exportJWK(dpopKey.privateKey)),\n }, { secure });\n }\n}\nclass StorageUtility {\n constructor(secureStorage, insecureStorage) {\n this.secureStorage = secureStorage;\n this.insecureStorage = insecureStorage;\n }\n getKey(userId) {\n return `solidClientAuthenticationUser:${userId}`;\n }\n async getUserData(userId, secure) {\n const stored = await (secure\n ? this.secureStorage\n : this.insecureStorage).get(this.getKey(userId));\n if (stored === undefined) {\n return {};\n }\n try {\n return JSON.parse(stored);\n }\n catch (err) {\n throw new Error(`Data for user [${userId}] in [${secure ? \"secure\" : \"unsecure\"}] storage is corrupted - expected valid JSON, but got: ${stored}`);\n }\n }\n async setUserData(userId, data, secure) {\n await (secure ? this.secureStorage : this.insecureStorage).set(this.getKey(userId), JSON.stringify(data));\n }\n async get(key, options) {\n const value = await ((options === null || options === void 0 ? void 0 : options.secure)\n ? this.secureStorage\n : this.insecureStorage).get(key);\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new Error(`[${key}] is not stored`);\n }\n return value;\n }\n async set(key, value, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).set(key, value);\n }\n async delete(key, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(key);\n }\n async getForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n let value;\n if (!userData || !userData[key]) {\n value = undefined;\n }\n value = userData[key];\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new Error(`Field [${key}] for user [${userId}] is not stored`);\n }\n return value || undefined;\n }\n async setForUser(userId, values, options) {\n let userData;\n try {\n userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n }\n catch (_a) {\n userData = {};\n }\n await this.setUserData(userId, { ...userData, ...values }, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n delete userData[key];\n await this.setUserData(userId, userData, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteAllUserData(userId, options) {\n await ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(this.getKey(userId));\n }\n}\n\nclass InMemoryStorage {\n constructor() {\n this.map = {};\n }\n async get(key) {\n return this.map[key] || undefined;\n }\n async set(key, value) {\n this.map[key] = value;\n }\n async delete(key) {\n delete this.map[key];\n }\n}\n\nclass ConfigurationError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nclass NotImplementedError extends Error {\n constructor(methodName) {\n super(`[${methodName}] is not implemented`);\n }\n}\n\nclass InvalidResponseError extends Error {\n constructor(missingFields) {\n super(`Invalid response from OIDC provider: missing fields ${missingFields}`);\n this.missingFields = missingFields;\n }\n}\n\nclass OidcProviderError extends Error {\n constructor(message, error, errorDescription) {\n super(message);\n this.error = error;\n this.errorDescription = errorDescription;\n }\n}\n\nfunction normalizeHTU(audience) {\n const audienceUrl = new URL(audience);\n return new URL(audienceUrl.pathname, audienceUrl.origin).toString();\n}\nasync function createDpopHeader(audience, method, dpopKey) {\n return new SignJWT({\n htu: normalizeHTU(audience),\n htm: method.toUpperCase(),\n jti: v4(),\n })\n .setProtectedHeader({\n alg: PREFERRED_SIGNING_ALG[0],\n jwk: dpopKey.publicKey,\n typ: \"dpop+jwt\",\n })\n .setIssuedAt()\n .sign(dpopKey.privateKey, {});\n}\nasync function generateDpopKeyPair() {\n const { privateKey, publicKey } = await generateKeyPair(PREFERRED_SIGNING_ALG[0]);\n const dpopKeyPair = {\n privateKey,\n publicKey: await exportJWK(publicKey),\n };\n [dpopKeyPair.publicKey.alg] = PREFERRED_SIGNING_ALG;\n return dpopKeyPair;\n}\n\nconst DEFAULT_EXPIRATION_TIME_SECONDS = 600;\nfunction isExpectedAuthError(statusCode) {\n return [401, 403].includes(statusCode);\n}\nasync function buildDpopFetchOptions(targetUrl, authToken, dpopKey, defaultOptions) {\n var _a;\n const headers = new Headers(defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.headers);\n headers.set(\"Authorization\", `DPoP ${authToken}`);\n headers.set(\"DPoP\", await createDpopHeader(targetUrl, (_a = defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.method) !== null && _a !== void 0 ? _a : \"get\", dpopKey));\n return {\n ...defaultOptions,\n headers,\n };\n}\nasync function buildAuthenticatedHeaders(targetUrl, authToken, dpopKey, defaultOptions) {\n if (dpopKey !== undefined) {\n return buildDpopFetchOptions(targetUrl, authToken, dpopKey, defaultOptions);\n }\n const headers = new Headers(defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.headers);\n headers.set(\"Authorization\", `Bearer ${authToken}`);\n return {\n ...defaultOptions,\n headers,\n };\n}\nasync function makeAuthenticatedRequest(unauthFetch, accessToken, url, defaultRequestInit, dpopKey) {\n return unauthFetch(url, await buildAuthenticatedHeaders(url.toString(), accessToken, dpopKey, defaultRequestInit));\n}\nasync function refreshAccessToken(refreshOptions, dpopKey, eventEmitter) {\n var _a;\n const tokenSet = await refreshOptions.tokenRefresher.refresh(refreshOptions.sessionId, refreshOptions.refreshToken, dpopKey);\n eventEmitter === null || eventEmitter === void 0 ? void 0 : eventEmitter.emit(EVENTS.SESSION_EXTENDED, (_a = tokenSet.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_EXPIRATION_TIME_SECONDS);\n if (typeof tokenSet.refreshToken === \"string\") {\n eventEmitter === null || eventEmitter === void 0 ? void 0 : eventEmitter.emit(EVENTS.NEW_REFRESH_TOKEN, tokenSet.refreshToken);\n }\n return {\n accessToken: tokenSet.accessToken,\n refreshToken: tokenSet.refreshToken,\n expiresIn: tokenSet.expiresIn,\n };\n}\nconst computeRefreshDelay = (expiresIn) => {\n if (expiresIn !== undefined) {\n return expiresIn - REFRESH_BEFORE_EXPIRATION_SECONDS > 0\n ?\n expiresIn - REFRESH_BEFORE_EXPIRATION_SECONDS\n : expiresIn;\n }\n return DEFAULT_EXPIRATION_TIME_SECONDS;\n};\nasync function buildAuthenticatedFetch(unauthFetch, accessToken, options) {\n var _a;\n let currentAccessToken = accessToken;\n let latestTimeout;\n const currentRefreshOptions = options === null || options === void 0 ? void 0 : options.refreshOptions;\n if (currentRefreshOptions !== undefined) {\n const proactivelyRefreshToken = async () => {\n var _a, _b, _c, _d;\n try {\n const { accessToken: refreshedAccessToken, refreshToken, expiresIn, } = await refreshAccessToken(currentRefreshOptions, options.dpopKey, options.eventEmitter);\n currentAccessToken = refreshedAccessToken;\n if (refreshToken !== undefined) {\n currentRefreshOptions.refreshToken = refreshToken;\n }\n clearTimeout(latestTimeout);\n latestTimeout = setTimeout(proactivelyRefreshToken, computeRefreshDelay(expiresIn) * 1000);\n (_a = options.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(EVENTS.TIMEOUT_SET, latestTimeout);\n }\n catch (e) {\n if (e instanceof OidcProviderError) {\n (_b = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _b === void 0 ? void 0 : _b.emit(EVENTS.ERROR, e.error, e.errorDescription);\n (_c = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _c === void 0 ? void 0 : _c.emit(EVENTS.SESSION_EXPIRED);\n }\n if (e instanceof InvalidResponseError &&\n e.missingFields.includes(\"access_token\")) {\n (_d = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _d === void 0 ? void 0 : _d.emit(EVENTS.SESSION_EXPIRED);\n }\n }\n };\n latestTimeout = setTimeout(proactivelyRefreshToken, computeRefreshDelay(options.expiresIn) * 1000);\n (_a = options.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(EVENTS.TIMEOUT_SET, latestTimeout);\n }\n else if (options !== undefined && options.eventEmitter !== undefined) {\n const expirationTimeout = setTimeout(() => {\n options.eventEmitter.emit(EVENTS.SESSION_EXPIRED);\n }, computeRefreshDelay(options.expiresIn) * 1000);\n options.eventEmitter.emit(EVENTS.TIMEOUT_SET, expirationTimeout);\n }\n return async (url, requestInit) => {\n let response = await makeAuthenticatedRequest(unauthFetch, currentAccessToken, url, requestInit, options === null || options === void 0 ? void 0 : options.dpopKey);\n const failedButNotExpectedAuthError = !response.ok && !isExpectedAuthError(response.status);\n if (response.ok || failedButNotExpectedAuthError) {\n return response;\n }\n const hasBeenRedirected = response.url !== url;\n if (hasBeenRedirected && (options === null || options === void 0 ? void 0 : options.dpopKey) !== undefined) {\n response = await makeAuthenticatedRequest(unauthFetch, currentAccessToken, response.url, requestInit, options.dpopKey);\n }\n return response;\n };\n}\n\nconst StorageUtilityGetResponse = \"getResponse\";\nconst StorageUtilityMock = {\n get: async (key, options) => StorageUtilityGetResponse,\n set: async (key, value) => {\n },\n delete: async (key) => {\n },\n getForUser: async (userId, key, options) => StorageUtilityGetResponse,\n setForUser: async (userId, values, options) => {\n },\n deleteForUser: async (userId, key, options) => {\n },\n deleteAllUserData: async (userId, options) => {\n },\n};\nconst mockStorage = (stored) => {\n const store = stored;\n return {\n get: async (key) => {\n if (store[key] === undefined) {\n return undefined;\n }\n if (typeof store[key] === \"string\") {\n return store[key];\n }\n return JSON.stringify(store[key]);\n },\n set: async (key, value) => {\n store[key] = value;\n },\n delete: async (key) => {\n delete store[key];\n },\n };\n};\nconst mockStorageUtility = (stored, isSecure = false) => {\n if (isSecure) {\n return new StorageUtility(mockStorage(stored), mockStorage({}));\n }\n return new StorageUtility(mockStorage({}), mockStorage(stored));\n};\n\nexport { AggregateHandler, AuthorizationCodeWithPkceOidcHandlerBase, ClientAuthentication, ConfigurationError, DEFAULT_SCOPES, EVENTS, GeneralLogoutHandler, IRpLogoutHandler, IWaterfallLogoutHandler, InMemoryStorage, InvalidResponseError, NotImplementedError, OidcProviderError, PREFERRED_SIGNING_ALG, REFRESH_BEFORE_EXPIRATION_SECONDS, SOLID_CLIENT_AUTHN_KEY_PREFIX, SessionInfoManagerBase, StorageUtility, StorageUtilityGetResponse, StorageUtilityMock, USER_SESSION_PREFIX, buildAuthenticatedFetch, buildProxyHandler, clear, createDpopHeader, determineSigningAlg, fetchJwks, generateDpopKeyPair, getEndSessionUrl, getSessionIdFromOauthState, getUnauthenticatedSession, getWebidFromTokenPayload, handleRegistration, isSupportedTokenType, isValidRedirectUrl, loadOidcContextFromStorage, maybeBuildRpInitiatedLogout, mockStorage, mockStorageUtility, saveSessionInfoToStorage };\n//# sourceMappingURL=index.mjs.map\n","import { compactVerify } from '../jws/compact/verify.js';\nimport jwtPayload from '../lib/jwt_claims_set.js';\nimport { JWTInvalid } from '../util/errors.js';\nexport async function jwtVerify(jwt, key, options) {\n var _a;\n const verified = await compactVerify(jwt, key, options);\n if (((_a = verified.protectedHeader.crit) === null || _a === void 0 ? void 0 : _a.includes('b64')) && verified.protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = jwtPayload(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as decodeBase64URL } from '../runtime/base64url.js';\nimport { fromSPKI, fromPKCS8, fromX509 } from '../runtime/asn1.js';\nimport asKeyObject from '../runtime/jwk_to_key.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport isObject from '../lib/is_object.js';\nexport async function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return fromSPKI(spki, alg, options);\n}\nexport async function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return fromX509(x509, alg, options);\n}\nexport async function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return fromPKCS8(pkcs8, alg, options);\n}\nexport async function importJWK(jwk, alg, octAsKeyObject) {\n var _a;\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n alg || (alg = jwk.alg);\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n octAsKeyObject !== null && octAsKeyObject !== void 0 ? octAsKeyObject : (octAsKeyObject = jwk.ext !== true);\n if (octAsKeyObject) {\n return asKeyObject({ ...jwk, alg, ext: (_a = jwk.ext) !== null && _a !== void 0 ? _a : false });\n }\n return decodeBase64URL(jwk.k);\n case 'RSA':\n if (jwk.oth !== undefined) {\n throw new JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n case 'EC':\n case 'OKP':\n return asKeyObject({ ...jwk, alg });\n default:\n throw new JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * A helper class that will validate items taken from local storage\n */\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\nimport { StorageUtility } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * This class in a no-value-added extension of StorageUtility from the core module.\n * The reason it has to be declared is for TSyringe to find the decorators in the\n * same modules as where the dependency container is declared (in this case,\n * the browser module, with the dependancy container in dependencies.ts).\n * @hidden\n */\nexport default class StorageUtilityBrowser extends StorageUtility {\n constructor(secureStorage: IStorage, insecureStorage: IStorage) {\n super(secureStorage, insecureStorage);\n }\n}\n","!function t(e,r){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{var n=r();for(var i in n)(\"object\"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=22)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}();var i={debug:function t(){},info:function t(){},warn:function t(){},error:function t(){}},o=void 0,s=void 0;(e.Log=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.reset=function t(){s=3,o=i},t.debug=function t(){if(s>=4){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.debug.apply(o,Array.from(r))}},t.info=function t(){if(s>=3){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.info.apply(o,Array.from(r))}},t.warn=function t(){if(s>=2){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.warn.apply(o,Array.from(r))}},t.error=function t(){if(s>=1){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.error.apply(o,Array.from(r))}},n(t,null,[{key:\"NONE\",get:function t(){return 0}},{key:\"ERROR\",get:function t(){return 1}},{key:\"WARN\",get:function t(){return 2}},{key:\"INFO\",get:function t(){return 3}},{key:\"DEBUG\",get:function t(){return 4}},{key:\"level\",get:function t(){return s},set:function t(e){if(!(0<=e&&e<=4))throw new Error(\"Invalid log level\");s=e}},{key:\"logger\",get:function t(){return o},set:function t(e){if(!e.debug&&e.info&&(e.debug=e.info),!(e.debug&&e.info&&e.warn&&e.error))throw new Error(\"Invalid logger\");o=e}}]),t}()).reset()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}();var i={setInterval:function(t){function e(e,r){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t,e){return setInterval(t,e)})),clearInterval:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){return clearInterval(t)}))},o=!1,s=null;e.Global=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t._testing=function t(){o=!0},t.setXMLHttpRequest=function t(e){s=e},n(t,null,[{key:\"location\",get:function t(){if(!o)return location}},{key:\"localStorage\",get:function t(){if(!o&&\"undefined\"!=typeof window)return localStorage}},{key:\"sessionStorage\",get:function t(){if(!o&&\"undefined\"!=typeof window)return sessionStorage}},{key:\"XMLHttpRequest\",get:function t(){if(!o&&\"undefined\"!=typeof window)return s||XMLHttpRequest}},{key:\"timer\",get:function t(){if(!o)return i}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.MetadataService=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(7);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\".well-known/openid-configuration\";e.MetadataService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(s(this,t),!e)throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"),new Error(\"settings\");this._settings=e,this._jsonService=new r([\"application/jwk-set+json\"])}return t.prototype.resetSigningKeys=function t(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug(\"MetadataService.getMetadata: getting metadata from\",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(t){i.Log.debug(\"MetadataService.getMetadata: json received\");var r=e._settings.metadataSeed||{};return e._settings.metadata=Object.assign({},r,t),e._settings.metadata}))):(i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"),Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty(\"issuer\")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty(\"authorization_endpoint\")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty(\"userinfo_endpoint\")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty(\"token_endpoint\",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty(\"check_session_iframe\",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty(\"end_session_endpoint\",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty(\"revocation_endpoint\",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty(\"jwks_uri\",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug(\"MetadataService.getMetadataProperty for: \"+e),this.getMetadata().then((function(t){if(i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"),void 0===t[e]){if(!0===r)return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \"+e);throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \"+e),new Error(\"Metadata does not contain property \"+e)}return t[e]}))},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty(\"jwks_uri\").then((function(t){return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\",t),e._jsonService.getJson(t).then((function(t){if(i.Log.debug(\"MetadataService.getSigningKeys: key set received\",t),!t.keys)throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"),new Error(\"Missing keys on keyset\");return e._settings.signingKeys=t.keys,e._settings.signingKeys}))}))},n(t,[{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(a)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=a))),this._metadataUrl}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf(\"?\")<0&&(e+=\"?\"),\"?\"!==e[e.length-1]&&(e+=\"&\"),e+=encodeURIComponent(r),e+=\"=\",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;\"string\"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),\"?\"===r&&(s=e.indexOf(\"#\"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,h=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2].replace(/\\+/g,\" \")),h++>50)return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\",e),{error:\"Response exceeded expected number of parameters\"};for(var l in u)return u;return{}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClientSettings=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=r(0),s=r(23),a=r(6),u=r(24),c=r(2);function h(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var l=\".well-known/openid-configuration\",f=\"id_token\",g=\"openid\",d=\"client_secret_post\";e.OidcClientSettings=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,l=e.signingKeys,p=e.metadataSeed,v=e.client_id,y=e.client_secret,m=e.response_type,_=void 0===m?f:m,S=e.scope,b=void 0===S?g:S,w=e.redirect_uri,F=e.post_logout_redirect_uri,E=e.client_authentication,x=void 0===E?d:E,A=e.prompt,k=e.display,P=e.max_age,C=e.ui_locales,T=e.acr_values,R=e.resource,I=e.response_mode,D=e.filterProtocolClaims,L=void 0===D||D,N=e.loadUserInfo,U=void 0===N||N,B=e.staleStateAge,O=void 0===B?900:B,j=e.clockSkew,M=void 0===j?300:j,H=e.clockService,V=void 0===H?new s.ClockService:H,K=e.userInfoJwtIssuer,q=void 0===K?\"OP\":K,J=e.mergeClaims,W=void 0!==J&&J,z=e.stateStore,Y=void 0===z?new a.WebStorageStateStore:z,G=e.ResponseValidatorCtor,X=void 0===G?u.ResponseValidator:G,$=e.MetadataServiceCtor,Q=void 0===$?c.MetadataService:$,Z=e.extraQueryParams,tt=void 0===Z?{}:Z,et=e.extraTokenParams,rt=void 0===et?{}:et;h(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=p,this._signingKeys=l,this._client_id=v,this._client_secret=y,this._response_type=_,this._scope=b,this._redirect_uri=w,this._post_logout_redirect_uri=F,this._client_authentication=x,this._prompt=A,this._display=k,this._max_age=P,this._ui_locales=C,this._acr_values=T,this._resource=R,this._response_mode=I,this._filterProtocolClaims=!!L,this._loadUserInfo=!!U,this._staleStateAge=O,this._clockSkew=M,this._clockService=V,this._userInfoJwtIssuer=q,this._mergeClaims=!!W,this._stateStore=Y,this._validator=new X(this),this._metadataService=new Q(this),this._extraQueryParams=\"object\"===(void 0===tt?\"undefined\":n(tt))?tt:{},this._extraTokenParams=\"object\"===(void 0===rt?\"undefined\":n(rt))?rt:{}}return t.prototype.getEpochTime=function t(){return this._clockService.getEpochTime()},i(t,[{key:\"client_id\",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"),new Error(\"client_id has already been assigned.\");this._client_id=e}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"response_type\",get:function t(){return this._response_type}},{key:\"scope\",get:function t(){return this._scope}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"post_logout_redirect_uri\",get:function t(){return this._post_logout_redirect_uri}},{key:\"client_authentication\",get:function t(){return this._client_authentication}},{key:\"prompt\",get:function t(){return this._prompt}},{key:\"display\",get:function t(){return this._display}},{key:\"max_age\",get:function t(){return this._max_age}},{key:\"ui_locales\",get:function t(){return this._ui_locales}},{key:\"acr_values\",get:function t(){return this._acr_values}},{key:\"resource\",get:function t(){return this._resource}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"authority\",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"),new Error(\"authority has already been assigned.\");this._authority=e}},{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(l)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=l)),this._metadataUrl}},{key:\"metadata\",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:\"metadataSeed\",get:function t(){return this._metadataSeed},set:function t(e){this._metadataSeed=e}},{key:\"signingKeys\",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:\"filterProtocolClaims\",get:function t(){return this._filterProtocolClaims}},{key:\"loadUserInfo\",get:function t(){return this._loadUserInfo}},{key:\"staleStateAge\",get:function t(){return this._staleStateAge}},{key:\"clockSkew\",get:function t(){return this._clockSkew}},{key:\"userInfoJwtIssuer\",get:function t(){return this._userInfoJwtIssuer}},{key:\"mergeClaims\",get:function t(){return this._mergeClaims}},{key:\"stateStore\",get:function t(){return this._stateStore}},{key:\"validator\",get:function t(){return this._validator}},{key:\"metadataService\",get:function t(){return this._metadataService}},{key:\"extraQueryParams\",get:function t(){return this._extraQueryParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?\"oidc.\":r,s=e.store,a=void 0===s?i.Global.localStorage:s;o(this,t),this._store=a,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug(\"WebStorageStateStore.set\",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug(\"WebStorageStateStore.get\",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug(\"WebStorageStateStore.remove\",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug(\"WebStorageStateStore.getAllKeys\");for(var e=[],r=0;r<this._store.length;r++){var i=this._store.key(r);0===i.indexOf(this._prefix)&&e.push(i.substr(this._prefix.length))}return Promise.resolve(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JsonService=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.JsonService=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;o(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push(\"application/json\"),n&&this._contentTypes.push(\"application/jwt\"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error(\"JsonService.getJson: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.getJson, url: \",e),new Promise((function(t,o){var s=new i._XMLHttpRequest;s.open(\"GET\",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug(\"JsonService.getJson: HTTP response received, status\",s.status),200===s.status){var r=s.getResponseHeader(\"Content-Type\");if(r){var i=a.find((function(t){if(r.startsWith(t))return!0}));if(\"application/jwt\"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error(\"JsonService.getJson: Error parsing JSON response\",t.message),void o(t)}}o(Error(\"Invalid response Content-Type: \"+r+\", from URL: \"+e))}else o(Error(s.statusText+\" (\"+s.status+\")\"))},s.onerror=function(){n.Log.error(\"JsonService.getJson: network error\"),o(Error(\"Network Error\"))},r&&(n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"),s.setRequestHeader(\"Authorization\",\"Bearer \"+r)),s.send()}))},t.prototype.postForm=function t(e,r,i){var o=this;if(!e)throw n.Log.error(\"JsonService.postForm: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.postForm, url: \",e),new Promise((function(t,s){var a=new o._XMLHttpRequest;a.open(\"POST\",e);var u=o._contentTypes;a.onload=function(){if(n.Log.debug(\"JsonService.postForm: HTTP response received, status\",a.status),200!==a.status){if(400===a.status)if(i=a.getResponseHeader(\"Content-Type\"))if(u.find((function(t){if(i.startsWith(t))return!0})))try{var r=JSON.parse(a.responseText);if(r&&r.error)return n.Log.error(\"JsonService.postForm: Error from server: \",r.error),void s(new Error(r.error))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(a.statusText+\" (\"+a.status+\")\"))}else{var i;if((i=a.getResponseHeader(\"Content-Type\"))&&u.find((function(t){if(i.startsWith(t))return!0})))try{return void t(JSON.parse(a.responseText))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(\"Invalid response Content-Type: \"+i+\", from URL: \"+e))}},a.onerror=function(){n.Log.error(\"JsonService.postForm: network error\"),s(Error(\"Network Error\"))};var c=\"\";for(var h in r){var l=r[h];l&&(c.length>0&&(c+=\"&\"),c+=encodeURIComponent(h),c+=\"=\",c+=encodeURIComponent(l))}a.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),void 0!==i&&a.setRequestHeader(\"Authorization\",\"Basic \"+btoa(i)),a.send(c)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SigninRequest.ctor: No url passed\"),new Error(\"url\");if(!s)throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"),new Error(\"client_id\");if(!a)throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"),new Error(\"redirect_uri\");if(!u)throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"),new Error(\"response_type\");if(!c)throw n.Log.error(\"SigninRequest.ctor: No scope passed\"),new Error(\"scope\");if(!h)throw n.Log.error(\"SigninRequest.ctor: No authority passed\"),new Error(\"authority\");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?\"query\":null),this.state=new o.SigninState({nonce:C,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,\"client_id\",s),r=i.UrlUtility.addQueryParam(r,\"redirect_uri\",a),r=i.UrlUtility.addQueryParam(r,\"response_type\",u),r=i.UrlUtility.addQueryParam(r,\"scope\",c),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,\"nonce\",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,\"code_challenge\",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,\"code_challenge_method\",\"S256\"));var R={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var D in F)r=i.UrlUtility.addQueryParam(r,D,F[D]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"id_token\"===t}))[0]},t.isOAuth=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"token\"===t}))[0]},t.isCode=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"code\"===t}))[0]},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=function s(t){return t&&t.__esModule?t:{default:t}}(r(14));function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.State=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;a(this,t),this._id=r||(0,o.default)(),this._data=n,this._created=\"number\"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug(\"State.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug(\"State.fromStorageString\"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then((function(e){i.Log.debug(\"State.clearStaleState: got keys\",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then((function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug(\"State.clearStaleState: got item from key: \",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error(\"State.clearStaleState: Error parsing state for key\",c,t.message),n=!0}else i.Log.debug(\"State.clearStaleState: no item in storage for key: \",c),n=!0;if(n)return i.Log.debug(\"State.clearStaleState: removed item for key: \",c),r.remove(c)})),n.push(u)},a=0;a<e.length;a++){var u;s(a)}return i.Log.debug(\"State.clearStaleState: waiting on promise count:\",n.length),Promise.all(n)}))},n(t,[{key:\"id\",get:function t(){return this._id}},{key:\"data\",get:function t(){return this._data}},{key:\"created\",get:function t(){return this._created}},{key:\"request_type\",get:function t(){return this._request_type}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClient=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(5),s=r(12),a=r(8),u=r(34),c=r(35),h=r(36),l=r(13),f=r(9);function g(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.OidcClient=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};g(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,h=r.prompt,l=r.display,f=r.max_age,g=r.ui_locales,d=r.id_token_hint,p=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug(\"OidcClient.createSigninRequest\");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,h=h||this._settings.prompt,l=l||this._settings.display,f=f||this._settings.max_age,g=g||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&\"code\"!==n?Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")):this._metadataService.getAuthorizationEndpoint().then((function(t){i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:h,display:l,max_age:f,ui_locales:g,id_token_hint:d,login_hint:p,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then((function(){return r}))}))},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSigninResponseState\");var o=\"query\"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type),s=o?\"?\":\"#\",c=new u.SigninResponse(e,s);if(!c.state)return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"),Promise.reject(new Error(\"No state in response\"));r=r||this._stateStore;var h=n?r.remove.bind(r):r.get.bind(r);return h(c.state).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:l.SigninState.fromStorageString(t),response:c}}))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSigninResponse\"),this.readSigninResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"),n._validator.validateSigninResponse(e,r)}))},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,h=r.request_type,l=arguments[1];return i.Log.debug(\"OidcClient.createSignoutRequest\"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(t){if(!t)throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"),new Error(\"no end session endpoint\");i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:h}),f=r.state;return f&&(i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"),(l=l||e._stateStore).set(f.id,f.toStorageString())),r}))},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSignoutResponseState\");var o=new h.SignoutResponse(e);if(!o.state)return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"),o.error?(i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({state:void 0,response:o});var a=o.state;r=r||this._stateStore;var u=n?r.remove.bind(r):r.get.bind(r);return u(a).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:f.State.fromStorageString(t),response:o}}))},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSignoutResponse\"),this.readSignoutResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return e?(i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"),r)}))},t.prototype.clearStaleState=function t(e){return i.Log.debug(\"OidcClient.clearStaleState\"),e=e||this._stateStore,f.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:\"_stateStore\",get:function t(){return this.settings.stateStore}},{key:\"_validator\",get:function t(){return this.settings.validator}},{key:\"_metadataService\",get:function t(){return this.settings.metadataService}},{key:\"settings\",get:function t(){return this._settings}},{key:\"metadataService\",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw o.Log.error(\"TokenClient.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r,this._metadataService=new a(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"authorization_code\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.code?r.redirect_uri?r.code_verifier?r.client_id?r.client_secret||\"client_secret_basic\"!=i?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeCode: No client_secret passed\"),Promise.reject(new Error(\"A client_secret is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"),Promise.reject(new Error(\"A code_verifier is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"),Promise.reject(new Error(\"A redirect_uri is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code passed\"),Promise.reject(new Error(\"A code is required\")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"refresh_token\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.refresh_token?r.client_id?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"),Promise.reject(new Error(\"A refresh_token is required\")))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ErrorResponse=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=r.error,a=r.error_description,u=r.error_uri,c=r.state,h=r.session_state;if(i(this,e),!s)throw n.Log.error(\"No error passed to ErrorResponse\"),new Error(\"error\");var l=o(this,t.call(this,a||s));return l.name=\"ErrorResponse\",l.error=s,l.error_description=a,l.error_uri=u,l.state=c,l.session_state=h,l}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(9),s=r(4),a=function u(t){return t&&t.__esModule?t:{default:t}}(r(14));function c(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function h(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.SigninState=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,l=r.code_verifier,f=r.response_mode,g=r.client_secret,d=r.scope,p=r.extraTokenParams,v=r.skipUserInfo;c(this,e);var y=h(this,t.call(this,arguments[0]));if(!0===n?y._nonce=(0,a.default)():n&&(y._nonce=n),!0===l?y._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():l&&(y._code_verifier=l),y.code_verifier){var m=s.JoseUtil.hashString(y.code_verifier,\"SHA256\");y._code_challenge=s.JoseUtil.hexToBase64Url(m)}return y._redirect_uri=u,y._authority=i,y._client_id=o,y._response_mode=f,y._client_secret=g,y._scope=d,y._extraTokenParams=p,y._skipUserInfo=v,y}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug(\"SigninState.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug(\"SigninState.fromStorageString\"),new e(JSON.parse(r))},n(e,[{key:\"nonce\",get:function t(){return this._nonce}},{key:\"authority\",get:function t(){return this._authority}},{key:\"client_id\",get:function t(){return this._client_id}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"code_verifier\",get:function t(){return this._code_verifier}},{key:\"code_challenge\",get:function t(){return this._code_challenge}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"scope\",get:function t(){return this._scope}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams}},{key:\"skipUserInfo\",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(){return(\"undefined\"!=i&&null!==i&&void 0!==i.getRandomValues?o:s)().replace(/-/g,\"\")};var i=\"undefined\"!=typeof window?window.crypto||window.msCrypto:null;function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^i.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function s(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.User=function(){function t(e){var r=e.id_token,n=e.session_state,i=e.access_token,o=e.refresh_token,s=e.token_type,a=e.scope,u=e.profile,c=e.expires_at,h=e.state;!function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.id_token=r,this.session_state=n,this.access_token=i,this.refresh_token=o,this.token_type=s,this.scope=a,this.profile=u,this.expires_at=c,this.state=h}return t.prototype.toStorageString=function t(){return i.Log.debug(\"User.toStorageString\"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})},t.fromStorageString=function e(r){return i.Log.debug(\"User.fromStorageString\"),new t(JSON.parse(r))},n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer(\"Access token expiring\"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer(\"Access token expired\"):u;o(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\",i),this._accessTokenExpiring.init(i)}else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex((function(t){return t===e}));r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug(\"Event: Raising event: \"+this._name);for(var e=0;e<this._callbacks.length;e++){var r;(r=this._callbacks)[e].apply(r,arguments)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SessionMonitor=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(19),s=r(1);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.SessionMonitor=function(){function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(a(this,t),!e)throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"),new Error(\"userManager\");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=u,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\",t.message)}))})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from getUser:\",t.message)})))}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", sub:\",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", anonymous user\")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then((function(){r._checkSessionIFrame.start(n)}))}else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\")})).catch((function(t){i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\",t.message)})))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug(\"SessionMonitor._stop\"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval((function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then((function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)})).catch((function(t){i.Log.error(\"SessionMonitor: error from querySessionStatus:\",t.message)}))}),1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then((function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\",t.session_state):(i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\",t.sub):i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"),r&&(e._sub?(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"),e._userManager.events._raiseUserSignedIn()))})).catch((function(t){e._sub&&(i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\",t.message),e._userManager.events._raiseUserSignedOut())}))},n(t,[{key:\"_settings\",get:function t(){return this._userManager.settings}},{key:\"_metadataService\",get:function t(){return this._userManager.metadataService}},{key:\"_client_id\",get:function t(){return this._settings.client_id}},{key:\"_checkSessionInterval\",get:function t(){return this._settings.checkSessionInterval}},{key:\"_stopCheckSessionOnError\",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];i(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||2e3,this._stopOnError=s;var a=n.indexOf(\"/\",n.indexOf(\"//\")+2);this._frame_origin=n.substr(0,a),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.style.display=\"none\",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise((function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener(\"message\",e._boundMessageEvent,!1)}))},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(\"error\"===e.data?(n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"),this._stopOnError&&this.stop()):\"changed\"===e.data?(n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"),this.stop(),this._callback()):n.Log.debug(\"CheckSessionIFrame: \"+e.data+\" message from check session op iframe\"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug(\"CheckSessionIFrame.start\"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+\" \"+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug(\"CheckSessionIFrame.stop\"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\"access_token\",u=\"refresh_token\";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"),new Error(\"No settings provided.\");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new a(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"access_token\";if(!e)throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"),new Error(\"No token provided.\");if(o!==a&&o!=u)throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"),new Error(\"Invalid token type.\");return this._metadataService.getRevocationEndpoint().then((function(t){if(t){n.Log.debug(\"TokenRevocationClient.revoke: Revoking \"+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"),new Error(\"Revocation not supported\")}))},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise((function(t,u){var c=new a._XMLHttpRequestCtor;c.open(\"POST\",e),c.onload=function(){n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\",c.status),200===c.status?t():u(Error(c.statusText+\" (\"+c.status+\")\"))},c.onerror=function(){n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"),u(\"Network Error\")};var h=\"client_id=\"+encodeURIComponent(r);i&&(h+=\"&client_secret=\"+encodeURIComponent(i)),h+=\"&token_type_hint=\"+encodeURIComponent(s),h+=\"&token=\"+encodeURIComponent(o),c.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),c.send(h)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.CordovaPopupWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e})),this.features=e.popupWindowFeatures||\"location=no,toolbar=no,zoom=no\",this.target=e.popupWindowTarget||\"_blank\",this.redirect_uri=e.startUrl,i.Log.debug(\"CordovaPopupWindow.ctor: redirect_uri: \"+this.redirect_uri)}return t.prototype._isInAppBrowserInstalled=function t(e){return[\"cordova-plugin-inappbrowser\",\"cordova-plugin-inappbrowser.inappbrowser\",\"org.apache.cordova.inappbrowser\"].some((function(t){return e.hasOwnProperty(t)}))},t.prototype.navigate=function t(e){if(e&&e.url){if(!window.cordova)return this._error(\"cordova is undefined\");var r=window.cordova.require(\"cordova/plugin_list\").metadata;if(!1===this._isInAppBrowserInstalled(r))return this._error(\"InAppBrowser plugin not found\");this._popup=cordova.InAppBrowser.open(e.url,this.target,this.features),this._popup?(i.Log.debug(\"CordovaPopupWindow.navigate: popup successfully created\"),this._exitCallbackEvent=this._exitCallback.bind(this),this._loadStartCallbackEvent=this._loadStartCallback.bind(this),this._popup.addEventListener(\"exit\",this._exitCallbackEvent,!1),this._popup.addEventListener(\"loadstart\",this._loadStartCallbackEvent,!1)):this._error(\"Error opening popup window\")}else this._error(\"No url provided\");return this.promise},t.prototype._loadStartCallback=function t(e){0===e.url.indexOf(this.redirect_uri)&&this._success({url:e.url})},t.prototype._exitCallback=function t(e){this._error(e)},t.prototype._success=function t(e){this._cleanup(),i.Log.debug(\"CordovaPopupWindow: Successful response from cordova popup window\"),this._resolve(e)},t.prototype._error=function t(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup()},t.prototype._cleanup=function t(){this._popup&&(i.Log.debug(\"CordovaPopupWindow: cleaning up popup\"),this._popup.removeEventListener(\"exit\",this._exitCallbackEvent,!1),this._popup.removeEventListener(\"loadstart\",this._loadStartCallbackEvent,!1),this._popup.close()),this._popup=null},n(t,[{key:\"promise\",get:function t(){return this._promise}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=r(0),i=r(10),o=r(5),s=r(6),a=r(37),u=r(38),c=r(16),h=r(2),l=r(48),f=r(49),g=r(19),d=r(20),p=r(18),v=r(1),y=r(15),m=r(50);e.default={Version:m.Version,Log:n.Log,OidcClient:i.OidcClient,OidcClientSettings:o.OidcClientSettings,WebStorageStateStore:s.WebStorageStateStore,InMemoryWebStorage:a.InMemoryWebStorage,UserManager:u.UserManager,AccessTokenEvents:c.AccessTokenEvents,MetadataService:h.MetadataService,CordovaPopupNavigator:l.CordovaPopupNavigator,CordovaIFrameNavigator:f.CordovaIFrameNavigator,CheckSessionIFrame:g.CheckSessionIFrame,TokenRevocationClient:d.TokenRevocationClient,SessionMonitor:p.SessionMonitor,Global:v.Global,User:y.User},t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.ClockService=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.getEpochTime=function t(){return Promise.resolve(Date.now()/1e3|0)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ResponseValidator=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=r(0),o=r(2),s=r(25),a=r(11),u=r(12),c=r(4);function h(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var l=[\"nonce\",\"at_hash\",\"iat\",\"nbf\",\"exp\",\"aud\",\"iss\",\"c_hash\"];e.ResponseValidator=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(h(this,t),!e)throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"),new Error(\"settings\");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new l(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"ResponseValidator.validateSigninResponse\"),this._processSigninParams(e,r).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"),n._validateTokens(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"),n._processClaims(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"),t}))}))}))},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"),Promise.reject(new Error(\"State does not match\"))):(i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"),Promise.reject(new Error(\"State does not match\"));if(!e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"),Promise.reject(new Error(\"No client_id on state\"));if(!e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"),Promise.reject(new Error(\"No authority on state\"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"),Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"),Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"))}else this._settings.client_id=e.client_id;return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"),Promise.reject(new Error(\"No id_token in response\"))):!e.nonce&&r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"),Promise.reject(new Error(\"Unexpected id_token in response\"))):e.code_verifier&&!r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"),Promise.reject(new Error(\"No code in response\"))):!e.code_verifier&&r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"),Promise.reject(new Error(\"Unexpected code in response\"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"),this._userInfoService.getClaims(r.access_token).then((function(t){return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"),t.sub!==r.profile.sub?(i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token\"),Promise.reject(new Error(\"sub from user info endpoint does not match sub in id_token\"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\",r.profile),r)}));i.Log.debug(\"ResponseValidator._processClaims: not loading user info\")}else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a<s.length;a++){var u=s[a];i[o]?Array.isArray(i[o])?i[o].indexOf(u)<0&&i[o].push(u):i[o]!==u&&(\"object\"===(void 0===u?\"undefined\":n(u))&&this._settings.mergeClaims?i[o]=this._mergeClaims(i[o],u):i[o]=[i[o],u]):i[o]=u}}return i},t.prototype._filterProtocolClaims=function t(e){i.Log.debug(\"ResponseValidator._filterProtocolClaims, incoming claims:\",e);var r=Object.assign({},e);return this._settings._filterProtocolClaims?(l.forEach((function(t){delete r[t]})),i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims filtered\",r)):i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims not filtered\"),r},t.prototype._validateTokens=function t(e,r){return r.code?(i.Log.debug(\"ResponseValidator._validateTokens: Validating code\"),this._processCode(e,r)):r.id_token?r.access_token?(i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token and access_token\"),this._validateIdTokenAndAccessToken(e,r)):(i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token\"),this._validateIdToken(e,r)):(i.Log.debug(\"ResponseValidator._validateTokens: No code to process or id_token to validate\"),Promise.resolve(r))},t.prototype._processCode=function t(e,r){var o=this,s={client_id:e.client_id,client_secret:e.client_secret,code:r.code,redirect_uri:e.redirect_uri,code_verifier:e.code_verifier};return e.extraTokenParams&&\"object\"===n(e.extraTokenParams)&&Object.assign(s,e.extraTokenParams),this._tokenClient.exchangeCode(s).then((function(t){for(var n in t)r[n]=t[n];return r.id_token?(i.Log.debug(\"ResponseValidator._processCode: token response successful, processing id_token\"),o._validateIdTokenAttributes(e,r)):(i.Log.debug(\"ResponseValidator._processCode: token response successful, returning response\"),r)}))},t.prototype._validateIdTokenAttributes=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){var o=e.client_id,s=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdTokenAttributes: Validaing JWT attributes; using clock skew (in seconds) of: \",s),n._settings.getEpochTime().then((function(a){return n._joseUtil.validateJwtAttributes(r.id_token,t,o,s,a).then((function(t){return e.nonce&&e.nonce!==t.nonce?(i.Log.error(\"ResponseValidator._validateIdTokenAttributes: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):t.sub?(r.profile=t,r):(i.Log.error(\"ResponseValidator._validateIdTokenAttributes: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))}))},t.prototype._validateIdTokenAndAccessToken=function t(e,r){var n=this;return this._validateIdToken(e,r).then((function(t){return n._validateAccessToken(t)}))},t.prototype._getSigningKeyForJwt=function t(e){var r=this;return this._metadataService.getSigningKeys().then((function(t){var n=e.header.kid;if(!t)return i.Log.error(\"ResponseValidator._validateIdToken: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));i.Log.debug(\"ResponseValidator._validateIdToken: Received signing keys\");var o=void 0;if(n)o=t.filter((function(t){return t.kid===n}))[0];else{if((t=r._filterByAlg(t,e.header.alg)).length>1)return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));o=t[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function t(e){var r=this;return this._getSigningKeyForJwt(e).then((function(t){return t?Promise.resolve(t):(r._metadataService.resetSigningKeys(),r._getSigningKeyForJwt(e))}))},t.prototype._validateIdToken=function t(e,r){var n=this;if(!e.nonce)return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"),Promise.reject(new Error(\"No nonce on state\"));var o=this._joseUtil.parseJwt(r.id_token);return o&&o.header&&o.payload?e.nonce!==o.payload.nonce?(i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):this._metadataService.getIssuer().then((function(t){return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"),n._getSigningKeyForJwtWithSingleRetry(o).then((function(s){if(!s)return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var a=e.client_id,u=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \",u),n._joseUtil.validateJwt(r.id_token,s,t,a,u).then((function(){return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))})):(i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\",o),Promise.reject(new Error(\"Failed to parse id_token\")))},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"),Promise.reject(new Error(\"No profile loaded from id_token\"));if(!e.profile.at_hash)return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"),Promise.reject(new Error(\"No at_hash in id_token\"));if(!e.id_token)return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"),Promise.reject(new Error(\"No id_token\"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\",r),Promise.reject(new Error(\"Failed to parse id_token\"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n),Promise.reject(new Error(\"Unsupported alg: \"+n));var o=n.substr(2,3);if(!o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));var s=\"sha\"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\",s),Promise.reject(new Error(\"Failed to validate at_hash\"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\",c,e.profile.at_hash),Promise.reject(new Error(\"Failed to validate at_hash\"))):(i.Log.debug(\"ResponseValidator._validateAccessToken: success\"),Promise.resolve(e))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(a(this,t),!e)throw o.Log.error(\"UserInfoService.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new u(this._settings),this._joseUtil=c}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then((function(t){return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\",t),r._jsonService.getJson(t,e).then((function(t){return o.Log.debug(\"UserInfoService.getClaims: claims received\",t),t}))})):(o.Log.error(\"UserInfoService.getClaims: No token passed\"),Promise.reject(new Error(\"A token is required\")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\",n),Promise.reject(new Error(\"Failed to parse id_token\"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case\"OP\":s=this._metadataService.getIssuer();break;case\"ANY\":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));a=s[0]}if(!a)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"),n.payload}))}))}))}catch(t){return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \",n,e.length),e},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=[\"RS256\",\"RS384\",\"RS512\",\"PS256\",\"PS384\",\"PS512\",\"ES256\",\"ES384\",\"ES512\"]},function(t,e,r){\"use strict\";(function(t){Object.defineProperty(e,\"__esModule\",{value:!0});var r,n,i,o,s,a,u,c,h,l,f,g=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},d={userAgent:!1},p={},v=v||(r=Math,i=(n={}).lib={},o=i.Base=function(){function t(){}return{extend:function e(r){t.prototype=this;var n=new t;return r&&n.mixIn(r),n.hasOwnProperty(\"init\")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function t(){var e=this.extend();return e.init.apply(e,arguments),e},init:function t(){},mixIn:function t(e){for(var r in e)e.hasOwnProperty(r)&&(this[r]=e[r]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function t(){return this.init.prototype.extend(this)}}}(),s=i.WordArray=o.extend({init:function t(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:4*e.length},toString:function t(e){return(e||u).stringify(this)},concat:function t(e){var r=this.words,n=e.words,i=this.sigBytes,o=e.sigBytes;if(this.clamp(),i%4)for(var s=0;s<o;s++){var a=n[s>>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s<o;s+=4)r[i+s>>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=r.ceil(n/4)},clone:function t(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var n=[],i=0;i<e;i+=4)n.push(4294967296*r.random()|0);return new s.init(n,e)}}),a=n.enc={},u=a.Hex={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o<n;o++){var s=r[o>>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i<r;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new s.init(n,r/2)}},c=a.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o<n;o++){var s=r[o>>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i<r;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new s.init(n,r)}},h=a.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function t(e){return c.parse(unescape(encodeURIComponent(e)))}},l=i.BufferedBlockAlgorithm=o.extend({reset:function t(){this._data=new s.init,this._nDataBytes=0},_append:function t(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var n=this._data,i=n.words,o=n.sigBytes,a=this.blockSize,u=o/(4*a),c=(u=e?r.ceil(u):r.max((0|u)-this._minBufferSize,0))*a,h=r.min(4*c,o);if(c){for(var l=0;l<c;l+=a)this._doProcessBlock(i,l);var f=i.splice(0,c);n.sigBytes-=h}return new s.init(f,h)},clone:function t(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),i.Hasher=l.extend({cfg:o.extend(),init:function t(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function t(){l.reset.call(this),this._doReset()},update:function t(e){return this._append(e),this._process(),this},finalize:function t(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function t(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function t(e){return function(t,r){return new f.HMAC.init(e,r).finalize(t)}}}),f=n.algo={},n);!function(t){var e,r=(e=v).lib,n=r.Base,i=r.WordArray;(e=e.x64={}).Word=n.extend({init:function t(e,r){this.high=e,this.low=r}}),e.WordArray=n.extend({init:function t(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:8*e.length},toX32:function t(){for(var e=this.words,r=e.length,n=[],o=0;o<r;o++){var s=e[o];n.push(s.high),n.push(s.low)}return i.create(n,this.sigBytes)},clone:function t(){for(var e=n.clone.call(this),r=e.words=this.words.slice(0),i=r.length,o=0;o<i;o++)r[o]=r[o].clone();return e}})}(),function(){var t=v,e=t.lib.WordArray;t.enc.Base64={stringify:function t(e){var r=e.words,n=e.sigBytes,i=this._map;e.clamp(),e=[];for(var o=0;o<n;o+=3)for(var s=(r[o>>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a<n;a++)e.push(i.charAt(s>>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join(\"\")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a<n;a++)if(a%4){var u=i.indexOf(r.charAt(a-1))<<a%4*2,c=i.indexOf(r.charAt(a))>>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),function(t){for(var e=v,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],h=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)g[d]=0|e[r+d];else{var p=g[d-15],v=g[d-2];g[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+g[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+g[d-16]}p=f+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&l)+s[d]+g[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),f=l,l=h,h=c,c=u+p|0,u=a,a=o,o=i,i=p+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=v,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(f=this._hash.words)[0],i=f[1],o=f[2],u=f[3],c=f[4],h=f[5],l=f[6],f=f[7],g=n.high,d=n.low,p=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=h.high,E=h.low,x=l.high,A=l.low,k=f.high,P=f.low,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,B=b,O=w,j=F,M=E,H=x,V=A,K=k,q=P,J=0;80>J;J++){var W=a[J];if(16>J)var z=W.high=0|e[r+2*J],Y=W.low=0|e[r+2*J+1];else{z=((Y=(z=a[J-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[J-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[J-7]).high,Z=(tt=a[J-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0<G>>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0<tt>>>0?1:0);W.high=z,W.low=Y}Q=B&j^~B&H,tt=O&M^~O&V,W=C&R^C&D^R&D;var et=T&I^T&L^I&L,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[J]).high),nt=$.low;Z=K+((B>>>14|O<<18)^(B>>>18|O<<14)^(B<<23|O>>>9))+(($=q+((O>>>14|B<<18)^(O>>>18|B<<14)^(O<<23|B>>>9)))>>>0<q>>>0?1:0),K=H,q=V,H=j,V=M,j=B,M=O,B=N+(Z=(Z=(Z=Z+Q+(($=$+tt)>>>0<tt>>>0?1:0))+rt+(($=$+nt)>>>0<nt>>>0?1:0))+z+(($=$+Y)>>>0<Y>>>0?1:0))+((O=U+$|0)>>>0<U>>>0?1:0)|0,N=D,U=L,D=R,L=I,R=C,I=T,C=Z+(W=G+W+((Y=X+et)>>>0<X>>>0?1:0))+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=g+C+(d>>>0<T>>>0?1:0),v=i.low=v+I,i.high=p+R+(v>>>0<I>>>0?1:0),m=o.low=m+L,o.high=y+D+(m>>>0<L>>>0?1:0),S=u.low=S+U,u.high=_+N+(S>>>0<U>>>0?1:0),w=c.low=w+O,c.high=b+B+(w>>>0<O>>>0?1:0),E=h.low=E+M,h.high=F+j+(E>>>0<M>>>0?1:0),A=l.low=A+V,l.high=x+H+(A>>>0<V>>>0?1:0),P=f.low=P+q,f.high=k+K+(P>>>0<q>>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=v,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar y,m=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function _(t){var e,r,n=\"\";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=m.charAt(r>>6)+m.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=m.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=m.charAt(r>>2)+m.charAt((3&r)<<4)),\"=\";(3&n.length)>0;)n+=\"=\";return n}function S(t){var e,r,n,i=\"\",o=0;for(e=0;e<t.length&&\"=\"!=t.charAt(e);++e)(n=m.indexOf(t.charAt(e)))<0||(0==o?(i+=T(n>>2),r=3&n,o=1):1==o?(i+=T(r<<2|n>>4),r=15&n,o=2):2==o?(i+=T(r),i+=T(n>>2),r=3&n,o=3):(i+=T(r<<2|n>>4),i+=T(15&n),o=0));return 1==o&&(i+=T(r<<2)),i}function b(t){var e,r=S(t),n=new Array;for(e=0;2*e<r.length;++e)n[e]=parseInt(r.substring(2*e,2*e+2),16);return n}function w(t,e,r){null!=t&&(\"number\"==typeof t?this.fromNumber(t,e,r):null==e&&\"string\"!=typeof t?this.fromString(t,256):this.fromString(t,e))}function F(){return new w(null)}\"Microsoft Internet Explorer\"==d.appName?(w.prototype.am=function E(t,e,r,n,i,o){for(var s=32767&e,a=e>>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},y=30):\"Netscape\"!=d.appName?(w.prototype.am=function x(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},y=26):(w.prototype.am=function A(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},y=28),w.prototype.DB=y,w.prototype.DM=(1<<y)-1,w.prototype.DV=1<<y;w.prototype.FV=Math.pow(2,52),w.prototype.F1=52-y,w.prototype.F2=2*y-52;var k,P,C=new Array;for(k=\"0\".charCodeAt(0),P=0;P<=9;++P)C[k++]=P;for(k=\"a\".charCodeAt(0),P=10;P<36;++P)C[k++]=P;for(k=\"A\".charCodeAt(0),P=10;P<36;++P)C[k++]=P;function T(t){return\"0123456789abcdefghijklmnopqrstuvwxyz\".charAt(t)}function R(t,e){var r=C[t.charCodeAt(e)];return null==r?-1:r}function I(t){var e=F();return e.fromInt(t),e}function D(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function L(t){this.m=t}function N(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function U(t,e){return t&e}function B(t,e){return t|e}function O(t,e){return t^e}function j(t,e){return t&~e}function M(t){if(0==t)return-1;var e=0;return 0==(65535&t)&&(t>>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function H(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function V(){}function K(t){return t}function q(t){this.r2=F(),this.q3=F(),w.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}L.prototype.convert=function J(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},L.prototype.revert=function W(t){return t},L.prototype.reduce=function z(t){t.divRemTo(this.m,null,t)},L.prototype.mulTo=function Y(t,e,r){t.multiplyTo(e,r),this.reduce(r)},L.prototype.sqrTo=function G(t,e){t.squareTo(e),this.reduce(e)},N.prototype.convert=function X(t){var e=F();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(w.ZERO)>0&&this.m.subTo(e,e),e},N.prototype.revert=function $(t){var e=F();return t.copyTo(e),this.reduce(e),e},N.prototype.reduce=function Q(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=32767&t[e],n=r*this.mpl+((r*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},N.prototype.mulTo=function Z(t,e,r){t.multiplyTo(e,r),this.reduce(r)},N.prototype.sqrTo=function tt(t,e){t.squareTo(e),this.reduce(e)},w.prototype.copyTo=function et(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},w.prototype.fromInt=function rt(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},w.prototype.fromString=function nt(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:R(t,n);s<0?\"-\"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this[this.t++]=s>>this.DB-o):this[this.t-1]|=s<<o,(o+=r)>=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&w.ZERO.subTo(this,this)},w.prototype.clamp=function it(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},w.prototype.dlShiftTo=function ot(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},w.prototype.drShiftTo=function st(t,e){for(var r=t;r<this.t;++r)e[r-t]=this[r];e.t=Math.max(this.t-t,0),e.s=this.s},w.prototype.lShiftTo=function at(t,e){var r,n=t%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(t/this.DB),a=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<<n;for(r=s-1;r>=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},w.prototype.rShiftTo=function ut(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<<n)-1;e[0]=this[r]>>n;for(var s=r+1;s<this.t;++s)e[s-r-1]|=(this[s]&o)<<i,e[s-r]=this[s]>>n;n>0&&(e[this.t-r-1]|=(this.s&o)<<i),e.t=this.t-r,e.clamp()}},w.prototype.subTo=function ct(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]-t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t[r],e[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},w.prototype.multiplyTo=function ht(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+r.t]=r.am(0,n[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&w.ZERO.subTo(e,e)},w.prototype.squareTo=function lt(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e[r],t,2*r,0,1);(t[r+e.t]+=e.am(r+1,2*e[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},w.prototype.divRemTo=function ft(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t)return null!=e&&e.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=F());var o=F(),s=this.s,a=t.s,u=this.DB-D(n[n.t-1]);u>0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<<this.F1)+(c>1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<<this.F1)/l,d=1<<this.F2,p=r.t,v=p-c,y=null==e?F():e;for(o.dlShiftTo(v,y),r.compareTo(y)>=0&&(r[r.t++]=1,r.subTo(y,r)),w.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t<c;)o[o.t++]=0;for(;--v>=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))<m)for(o.dlShiftTo(v,y),r.subTo(y,r);r[p]<--m;)r.subTo(y,r)}null!=e&&(r.drShiftTo(c,e),s!=a&&w.ZERO.subTo(e,e)),r.t=c,r.clamp(),u>0&&r.rShiftTo(u,r),s<0&&w.ZERO.subTo(r,r)}}},w.prototype.invDigit=function gt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},w.prototype.isEven=function dt(){return 0==(this.t>0?1&this[0]:this.s)},w.prototype.exp=function pt(t,e){if(t>4294967295||t<1)return w.ONE;var r=F(),n=F(),i=e.convert(this),o=D(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<<o)>0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},w.prototype.toString=function vt(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<<e)-1,i=!1,o=\"\",s=this.t,a=this.DB-s*this.DB%e;if(s-- >0)for(a<this.DB&&(r=this[s]>>a)>0&&(i=!0,o=T(r));s>=0;)a<e?(r=(this[s]&(1<<a)-1)<<e-a,r|=this[--s]>>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=T(r));return i?o:\"0\"},w.prototype.negate=function yt(){var t=F();return w.ZERO.subTo(this,t),t},w.prototype.abs=function mt(){return this.s<0?this.negate():this},w.prototype.compareTo=function _t(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},w.prototype.bitLength=function St(){return this.t<=0?0:this.DB*(this.t-1)+D(this[this.t-1]^this.s&this.DM)},w.prototype.mod=function bt(t){var e=F();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(w.ZERO)>0&&t.subTo(e,e),e},w.prototype.modPowInt=function wt(t,e){var r;return r=t<256||e.isEven()?new L(e):new N(e),this.exp(t,r)},w.ZERO=I(0),w.ONE=I(1),V.prototype.convert=K,V.prototype.revert=K,V.prototype.mulTo=function Ft(t,e,r){t.multiplyTo(e,r)},V.prototype.sqrTo=function Et(t,e){t.squareTo(e)},q.prototype.convert=function xt(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=F();return t.copyTo(e),this.reduce(e),e},q.prototype.revert=function At(t){return t},q.prototype.reduce=function kt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},q.prototype.mulTo=function Pt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},q.prototype.sqrTo=function Ct(t,e){t.squareTo(e),this.reduce(e)};var Tt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Rt=(1<<26)/Tt[Tt.length-1];\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction It(){this.i=0,this.j=0,this.S=new Array}w.prototype.chunkSize=function Dt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},w.prototype.toRadix=function Lt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=I(r),i=F(),o=F(),s=\"\";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},w.prototype.fromRadix=function Nt(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a<t.length;++a){var u=R(t,a);u<0?\"-\"==t.charAt(a)&&0==this.signum()&&(i=!0):(s=e*s+u,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&w.ZERO.subTo(this,this)},w.prototype.fromNumber=function Ut(t,e,r){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(w.ONE.shiftLeft(t-1),B,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(w.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}},w.prototype.bitwiseTo=function Bt(t,e,r){var n,i,o=Math.min(t.t,this.t);for(n=0;n<o;++n)r[n]=e(this[n],t[n]);if(t.t<this.t){for(i=t.s&this.DM,n=o;n<this.t;++n)r[n]=e(this[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<t.t;++n)r[n]=e(i,t[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()},w.prototype.changeBit=function Ot(t,e){var r=w.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r},w.prototype.addTo=function jt(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]+t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t[r],e[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},w.prototype.dMultiply=function Mt(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},w.prototype.dAddOffset=function Ht(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},w.prototype.multiplyLowerTo=function Vt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i<n;++i)r[i+this.t]=this.am(0,t[i],r,i,0,this.t);for(n=Math.min(t.t,e);i<n;++i)this.am(0,t[i],r,i,0,e-i);r.clamp()},w.prototype.multiplyUpperTo=function Kt(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r[this.t+n-e]=this.am(e-n,t[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)},w.prototype.modInt=function qt(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},w.prototype.millerRabin=function Jt(t){var e=this.subtract(w.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Tt.length&&(t=Tt.length);for(var i=F(),o=0;o<t;++o){i.fromInt(Tt[Math.floor(Math.random()*Tt.length)]);var s=i.modPow(n,this);if(0!=s.compareTo(w.ONE)&&0!=s.compareTo(e)){for(var a=1;a++<r&&0!=s.compareTo(e);)if(0==(s=s.modPowInt(2,this)).compareTo(w.ONE))return!1;if(0!=s.compareTo(e))return!1}}return!0},w.prototype.clone=\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Wt(){var t=F();return this.copyTo(t),t},w.prototype.intValue=function zt(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},w.prototype.byteValue=function Yt(){return 0==this.t?this.s:this[0]<<24>>24},w.prototype.shortValue=function Gt(){return 0==this.t?this.s:this[0]<<16>>16},w.prototype.signum=function Xt(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},w.prototype.toByteArray=function $t(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n<this.DB&&(r=this[t]>>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<<this.DB-n);t>=0;)n<8?(r=(this[t]&(1<<n)-1)<<8-n,r|=this[--t]>>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},w.prototype.equals=function Qt(t){return 0==this.compareTo(t)},w.prototype.min=function Zt(t){return this.compareTo(t)<0?this:t},w.prototype.max=function te(t){return this.compareTo(t)>0?this:t},w.prototype.and=function ee(t){var e=F();return this.bitwiseTo(t,U,e),e},w.prototype.or=function re(t){var e=F();return this.bitwiseTo(t,B,e),e},w.prototype.xor=function ne(t){var e=F();return this.bitwiseTo(t,O,e),e},w.prototype.andNot=function ie(t){var e=F();return this.bitwiseTo(t,j,e),e},w.prototype.not=function oe(){for(var t=F(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},w.prototype.shiftLeft=function se(t){var e=F();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},w.prototype.shiftRight=function ae(t){var e=F();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},w.prototype.getLowestSetBit=function ue(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+M(this[t]);return this.s<0?this.t*this.DB:-1},w.prototype.bitCount=function ce(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=H(this[r]^e);return t},w.prototype.testBit=function he(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:0!=(this[e]&1<<t%this.DB)},w.prototype.setBit=function le(t){return this.changeBit(t,B)},w.prototype.clearBit=function fe(t){return this.changeBit(t,j)},w.prototype.flipBit=function ge(t){return this.changeBit(t,O)},w.prototype.add=function de(t){var e=F();return this.addTo(t,e),e},w.prototype.subtract=function pe(t){var e=F();return this.subTo(t,e),e},w.prototype.multiply=function ve(t){var e=F();return this.multiplyTo(t,e),e},w.prototype.divide=function ye(t){var e=F();return this.divRemTo(t,e,null),e},w.prototype.remainder=function me(t){var e=F();return this.divRemTo(t,null,e),e},w.prototype.divideAndRemainder=function _e(t){var e=F(),r=F();return this.divRemTo(t,e,r),new Array(e,r)},w.prototype.modPow=function Se(t,e){var r,n,i=t.bitLength(),o=I(1);if(i<=0)return o;r=i<18?1:i<48?3:i<144?4:i<768?5:6,n=i<8?new L(e):e.isEven()?new q(e):new N(e);var s=new Array,a=3,u=r-1,c=(1<<r)-1;if(s[1]=n.convert(this),r>1){var h=F();for(n.sqrTo(s[1],h);a<=c;)s[a]=F(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=F();for(i=D(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<<i+1)-1)<<u-i,g>0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<<i);)n.sqrTo(o,p),f=o,o=p,p=f,--i<0&&(i=this.DB-1,--g)}return n.revert(o)},w.prototype.modInverse=function be(t){var e=t.isEven();if(this.isEven()&&e||0==t.signum())return w.ZERO;for(var r=t.clone(),n=this.clone(),i=I(1),o=I(0),s=I(0),a=I(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),e?(i.isEven()&&o.isEven()||(i.addTo(this,i),o.subTo(t,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(t,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),e?(s.isEven()&&a.isEven()||(s.addTo(this,s),a.subTo(t,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(w.ONE)?w.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},w.prototype.pow=function we(t){return this.exp(t,new V)},w.prototype.gcd=function Fe(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i<o&&(o=i),o>0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},w.prototype.isProbablePrime=function Ee(t){var e,r=this.abs();if(1==r.t&&r[0]<=Tt[Tt.length-1]){for(e=0;e<Tt.length;++e)if(r[0]==Tt[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Tt.length;){for(var n=Tt[e],i=e+1;i<Tt.length&&n<Rt;)n*=Tt[i++];for(n=r.modInt(n);e<i;)if(n%Tt[e++]==0)return!1}return r.millerRabin(t)},w.prototype.square=function xe(){var t=F();return this.squareTo(t),t},It.prototype.init=function Ae(t){var e,r,n;for(e=0;e<256;++e)this.S[e]=e;for(r=0,e=0;e<256;++e)r=r+this.S[e]+t[e%t.length]&255,n=this.S[e],this.S[e]=this.S[r],this.S[r]=n;this.i=0,this.j=0},It.prototype.next=function ke(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]};var Pe,Ce,Te;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */function Re(){!function t(e){Ce[Te++]^=255&e,Ce[Te++]^=e>>8&255,Ce[Te++]^=e>>16&255,Ce[Te++]^=e>>24&255,Te>=256&&(Te-=256)}((new Date).getTime())}if(null==Ce){var Ie;if(Ce=new Array,Te=0,void 0!==p&&(void 0!==p.crypto||void 0!==p.msCrypto)){var De=p.crypto||p.msCrypto;if(De.getRandomValues){var Le=new Uint8Array(32);for(De.getRandomValues(Le),Ie=0;Ie<32;++Ie)Ce[Te++]=Le[Ie]}else if(\"Netscape\"==d.appName&&d.appVersion<\"5\"){var Ne=p.crypto.random(32);for(Ie=0;Ie<Ne.length;++Ie)Ce[Te++]=255&Ne.charCodeAt(Ie)}}for(;Te<256;)Ie=Math.floor(65536*Math.random()),Ce[Te++]=Ie>>>8,Ce[Te++]=255&Ie;Te=0,Re()}function Ue(){if(null==Pe){for(Re(),(Pe=function t(){return new It}()).init(Ce),Te=0;Te<Ce.length;++Te)Ce[Te]=0;Te=0}return Pe.next()}function Be(){}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Oe(t,e){return new w(t,e)}function je(t,e,r){for(var n=\"\",i=0;n.length<e;)n+=r(String.fromCharCode.apply(String,t.concat([(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function Me(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction He(t,e){this.x=e,this.q=t}function Ve(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?w.ONE:n,this.zinv=null}function Ke(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Ve(this,null,null)}Be.prototype.nextBytes=function qe(t){var e;for(e=0;e<t.length;++e)t[e]=Ue()},Me.prototype.doPublic=function Je(t){return t.modPowInt(this.e,this.n)},Me.prototype.setPublic=function We(t,e){if(this.isPublic=!0,this.isPrivate=!1,\"string\"!=typeof t)this.n=t,this.e=e;else{if(!(null!=t&&null!=e&&t.length>0&&e.length>0))throw\"Invalid RSA public key\";this.n=Oe(t,16),this.e=parseInt(e,16)}},Me.prototype.encrypt=function ze(t){var e=function r(t,e){if(e<t.length+11)throw\"Message too long for RSA\";for(var r=new Array,n=t.length-1;n>=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new Be,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new w(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:\"0\"+i},Me.prototype.encryptOAEP=function Ye(t,e,r){var n=function i(t,e,r,n){var i=Sr.crypto.MessageDigest,o=Sr.crypto.Util,s=null;if(r||(r=\"sha1\"),\"string\"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return Lr(o.hashHex(Nr(e),s))}),t.length+2*n+2>e)throw\"Message too long for RSA\";var a,u=\"\";for(a=0;a<e-t.length-2*n-2;a+=1)u+=\"\\0\";var c=r(\"\")+u+\"\u0001\"+t,h=new Array(n);(new Be).nextBytes(h);var l=je(h,c.length,r),f=[];for(a=0;a<c.length;a+=1)f[a]=c.charCodeAt(a)^l.charCodeAt(a);var g=je(f,h.length,r),d=[0];for(a=0;a<h.length;a+=1)d[a+1]=h[a]^g.charCodeAt(a);return new w(d.concat(f))}(t,this.n.bitLength()+7>>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:\"0\"+s},Me.prototype.type=\"RSA\",He.prototype.equals=function Ge(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},He.prototype.toBigInteger=function Xe(){return this.x},He.prototype.negate=function $e(){return new He(this.q,this.x.negate().mod(this.q))},He.prototype.add=function Qe(t){return new He(this.q,this.x.add(t.toBigInteger()).mod(this.q))},He.prototype.subtract=function Ze(t){return new He(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},He.prototype.multiply=function tr(t){return new He(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},He.prototype.square=function er(){return new He(this.q,this.x.square().mod(this.q))},He.prototype.divide=function rr(t){return new He(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Ve.prototype.getX=function nr(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ve.prototype.getY=function ir(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ve.prototype.equals=function or(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(w.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(w.ZERO))},Ve.prototype.isInfinity=function sr(){return null==this.x&&null==this.y||this.z.equals(w.ZERO)&&!this.y.toBigInteger().equals(w.ZERO)},Ve.prototype.negate=function ar(){return new Ve(this.curve,this.x,this.y.negate(),this.z)},Ve.prototype.add=function ur(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(w.ZERO.equals(r))return w.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new w(\"3\"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Ve(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},Ve.prototype.twice=function cr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new w(\"3\"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);w.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Ve(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Ve.prototype.multiply=function hr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new w(\"3\")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new w(\"3\")),u=new Ve(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},Ve.prototype.multiplyTwo=function lr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},Ke.prototype.getQ=function fr(){return this.q},Ke.prototype.getA=function gr(){return this.a},Ke.prototype.getB=function dr(){return this.b},Ke.prototype.equals=function pr(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},Ke.prototype.getInfinity=function vr(){return this.infinity},Ke.prototype.fromBigInteger=function yr(t){return new He(this.q,t)},Ke.prototype.decodePointHex=function mr(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Ve(this,this.fromBigInteger(new w(r,16)),this.fromBigInteger(new w(n,16)));default:return null}},\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nHe.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Ve.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(r<n.length)n=n.slice(n.length-r);else for(;r>n.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Ve.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new w(n),s=new w(i);return new Ve(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ve.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new w(n,16),s=new w(i,16);return new Ve(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ve.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ve(this.curve,n,i)},Ve.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(w.valueOf(2)),e=this.curve.fromBigInteger(w.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ve(this.curve,n,i)},Ve.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new w(\"3\")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Ve.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Ve.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"},Ve.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error(\"Point is at infinity.\");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(w.ONE)<0||e.compareTo(t.subtract(w.ONE))>0)throw new Error(\"x coordinate out of bounds\");if(r.compareTo(w.ONE)<0||r.compareTo(t.subtract(w.ONE))>0)throw new Error(\"y coordinate out of bounds\");if(!this.isOnCurve())throw new Error(\"Point is not on the curve.\");if(this.multiply(t).isInfinity())throw new Error(\"Point is not a scalar multiple of G.\");return!0};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar _r=function(){var t=new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))',\"g\"),e=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\"),r={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function n(t,e,n){return e?r[e]:String.fromCharCode(parseInt(n,16))}var i=new String(\"\"),o=Object.hasOwnProperty;return function(r,s){var a,u,c=r.match(t),h=c[0],l=!1;\"{\"===h?a={}:\"[\"===h?a=[]:(a=[],l=!0);for(var f=[a],d=1-l,p=c.length;d<p;++d){var v;switch((h=c[d]).charCodeAt(0)){default:(v=f[0])[u||v.length]=+h,u=void 0;break;case 34:if(-1!==(h=h.substring(1,h.length-1)).indexOf(\"\\\\\")&&(h=h.replace(e,n)),v=f[0],!u){if(!(v instanceof Array)){u=h||i;break}u=v.length}v[u]=h,u=void 0;break;case 91:v=f[0],f.unshift(v[u||v.length]=[]),u=void 0;break;case 93:f.shift();break;case 102:(v=f[0])[u||v.length]=!1,u=void 0;break;case 110:(v=f[0])[u||v.length]=null,u=void 0;break;case 116:(v=f[0])[u||v.length]=!0,u=void 0;break;case 123:v=f[0],f.unshift(v[u||v.length]={}),u=void 0;break;case 125:f.shift()}}if(l){if(1!==f.length)throw new Error;a=a[0]}else if(f.length)throw new Error;if(s){a=function t(e,r){var n=e[r];if(n&&\"object\"===(void 0===n?\"undefined\":g(n))){var i=null;for(var a in n)if(o.call(n,a)&&n!==e){var u=t(n,a);void 0!==u?n[a]=u:(i||(i=[]),i.push(a))}if(i)for(var c=i.length;--c>=0;)delete n[i[c]]}return s.call(e,r,n)}({\"\":a},\"\")}return a}}();void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.asn1&&Sr.asn1||(Sr.asn1={}),Sr.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e=\"0\"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if(\"-\"!=e.substr(0,1))e.length%2==1?e=\"0\"+e:e.match(/^[0-7]/)||(e=\"00\"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n=\"\",i=0;i<r;i++)n+=\"f\";e=new w(n,16).xor(t).add(w.ONE).toString(16).replace(/^-/,\"\")}return e},this.getPEMStringFromHex=function(t,e){return jr(t,e)},this.newObject=function(t){var e=Sr.asn1,r=e.ASN1Object,n=e.DERBoolean,i=e.DERInteger,o=e.DERBitString,s=e.DEROctetString,a=e.DERNull,u=e.DERObjectIdentifier,c=e.DEREnumerated,h=e.DERUTF8String,l=e.DERNumericString,f=e.DERPrintableString,g=e.DERTeletexString,d=e.DERIA5String,p=e.DERUTCTime,v=e.DERGeneralizedTime,y=e.DERVisibleString,m=e.DERBMPString,_=e.DERSequence,S=e.DERSet,b=e.DERTaggedObject,w=e.ASN1Util.newObject;if(t instanceof e.ASN1Object)return t;var F=Object.keys(t);if(1!=F.length)throw new Error(\"key of param shall be only one.\");var E=F[0];if(-1==\":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:\".indexOf(\":\"+E+\":\"))throw new Error(\"undefined key: \"+E);if(\"bool\"==E)return new n(t[E]);if(\"int\"==E)return new i(t[E]);if(\"bitstr\"==E)return new o(t[E]);if(\"octstr\"==E)return new s(t[E]);if(\"null\"==E)return new a(t[E]);if(\"oid\"==E)return new u(t[E]);if(\"enum\"==E)return new c(t[E]);if(\"utf8str\"==E)return new h(t[E]);if(\"numstr\"==E)return new l(t[E]);if(\"prnstr\"==E)return new f(t[E]);if(\"telstr\"==E)return new g(t[E]);if(\"ia5str\"==E)return new d(t[E]);if(\"utctime\"==E)return new p(t[E]);if(\"gentime\"==E)return new v(t[E]);if(\"visstr\"==E)return new y(t[E]);if(\"bmpstr\"==E)return new m(t[E]);if(\"asn1\"==E)return new r(t[E]);if(\"seq\"==E){for(var x=t[E],A=[],k=0;k<x.length;k++){var P=w(x[k]);A.push(P)}return new _({array:A})}if(\"set\"==E){for(x=t[E],A=[],k=0;k<x.length;k++){P=w(x[k]);A.push(P)}return new S({array:A})}if(\"tag\"==E){var C=t[E];if(\"[object Array]\"===Object.prototype.toString.call(C)&&3==C.length){var T=w(C[2]);return new b({tag:C[0],explicit:C[1],obj:T})}return new b(C)}},this.jsonToASN1HEX=function(t){return this.newObject(t).getEncodedHex()}},Sr.asn1.ASN1Util.oidHexToInt=function(t){for(var e=\"\",r=parseInt(t.substr(0,2),16),n=(e=Math.floor(r/40)+\".\"+r%40,\"\"),i=2;i<t.length;i+=2){var o=(\"00000000\"+parseInt(t.substr(i,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),\"0\"==o.substr(0,1))e=e+\".\"+new w(n,2).toString(10),n=\"\"}return e},Sr.asn1.ASN1Util.oidIntToHex=function(t){var e=function t(e){var r=e.toString(16);return 1==r.length&&(r=\"0\"+r),r},r=function t(r){var n=\"\",i=new w(r,10).toString(2),o=7-i.length%7;7==o&&(o=0);for(var s=\"\",a=0;a<o;a++)s+=\"0\";i=s+i;for(a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u=\"1\"+u),n+=e(parseInt(u,2))}return n};if(!t.match(/^[0-9.]+$/))throw\"malformed oid string: \"+t;var n=\"\",i=t.split(\".\"),o=40*parseInt(i[0])+parseInt(i[1]);n+=e(o),i.splice(0,2);for(var s=0;s<i.length;s++)n+=r(i[s]);return n},Sr.asn1.ASN1Object=function(t){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error(\"this.hV is null or undefined\");if(this.hV.length%2==1)throw new Error(\"value hex must be even length: n=\"+\"\".length+\",v=\"+this.hV);var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e=\"0\"+e),t<128)return e;var r=e.length/2;if(r>15)throw\"ASN.1 length too long to represent by 8x: n = \"+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return\"\"},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},Sr.asn1.DERAbstractString=function(t){Sr.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Ir(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},Zr(Sr.asn1.DERAbstractString,Sr.asn1.ASN1Object),Sr.asn1.DERAbstractTime=function(t){Sr.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());\"utc\"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+\".\"+(u=u.replace(/[0]+$/,\"\"))}}return s+\"Z\"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join(\"0\")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=kr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},Zr(Sr.asn1.DERAbstractTime,Sr.asn1.ASN1Object),Sr.asn1.DERAbstractStructured=function(t){Sr.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},Zr(Sr.asn1.DERAbstractStructured,Sr.asn1.ASN1Object),Sr.asn1.DERBoolean=function(t){Sr.asn1.DERBoolean.superclass.constructor.call(this),this.hT=\"01\",this.hTLV=0==t?\"010100\":\"0101ff\"},Zr(Sr.asn1.DERBoolean,Sr.asn1.ASN1Object),Sr.asn1.DERInteger=function(t){Sr.asn1.DERInteger.superclass.constructor.call(this),this.hT=\"02\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=Sr.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new w(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},Zr(Sr.asn1.DERInteger,Sr.asn1.ASN1Object),Sr.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=Sr.asn1.ASN1Util.newObject(t.obj);t.hex=\"00\"+e.getEncodedHex()}Sr.asn1.DERBitString.superclass.constructor.call(this),this.hT=\"03\",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7<t)throw\"unused bits shall be from 0 to 7: u = \"+t;var r=\"0\"+t;this.hTLV=null,this.isModified=!0,this.hV=r+e},this.setByBinaryString=function(t){var e=8-(t=t.replace(/0+$/,\"\")).length%8;8==e&&(e=0);for(var r=0;r<=e;r++)t+=\"0\";var n=\"\";for(r=0;r<t.length-1;r+=8){var i=t.substr(r,8),o=parseInt(i,2).toString(16);1==o.length&&(o=\"0\"+o),n+=o}this.hTLV=null,this.isModified=!0,this.hV=\"0\"+e+n},this.setByBooleanArray=function(t){for(var e=\"\",r=0;r<t.length;r++)1==t[r]?e+=\"1\":e+=\"0\";this.setByBinaryString(e)},this.newFalseArray=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=!1;return e},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(t):void 0!==t.hex?this.setHexValueIncludingUnusedBits(t.hex):void 0!==t.bin?this.setByBinaryString(t.bin):void 0!==t.array&&this.setByBooleanArray(t.array))},Zr(Sr.asn1.DERBitString,Sr.asn1.ASN1Object),Sr.asn1.DEROctetString=function(t){if(void 0!==t&&void 0!==t.obj){var e=Sr.asn1.ASN1Util.newObject(t.obj);t.hex=e.getEncodedHex()}Sr.asn1.DEROctetString.superclass.constructor.call(this,t),this.hT=\"04\"},Zr(Sr.asn1.DEROctetString,Sr.asn1.DERAbstractString),Sr.asn1.DERNull=function(){Sr.asn1.DERNull.superclass.constructor.call(this),this.hT=\"05\",this.hTLV=\"0500\"},Zr(Sr.asn1.DERNull,Sr.asn1.ASN1Object),Sr.asn1.DERObjectIdentifier=function(t){Sr.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT=\"06\",this.setValueHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueOidString=function(t){var e=function r(t){var e=function t(e){var r=e.toString(16);return 1==r.length&&(r=\"0\"+r),r},r=function t(r){var n=\"\",i=parseInt(r,10).toString(2),o=7-i.length%7;7==o&&(o=0);for(var s=\"\",a=0;a<o;a++)s+=\"0\";i=s+i;for(a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u=\"1\"+u),n+=e(parseInt(u,2))}return n};try{if(!t.match(/^[0-9.]+$/))return null;var n=\"\",i=t.split(\".\"),o=40*parseInt(i[0],10)+parseInt(i[1],10);n+=e(o),i.splice(0,2);for(var s=0;s<i.length;s++)n+=r(i[s]);return n}catch(t){return null}}(t);if(null==e)throw new Error(\"malformed oid string: \"+t);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueName=function(t){var e=Sr.asn1.x509.OID.name2oid(t);if(\"\"===e)throw new Error(\"DERObjectIdentifier oidName undefined: \"+t);this.setValueOidString(e)},this.setValueNameOrOid=function(t){t.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(t):this.setValueName(t)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(t){\"string\"==typeof t?this.setValueNameOrOid(t):void 0!==t.oid?this.setValueNameOrOid(t.oid):void 0!==t.name?this.setValueNameOrOid(t.name):void 0!==t.hex&&this.setValueHex(t.hex)},void 0!==t&&this.setByParam(t)},Zr(Sr.asn1.DERObjectIdentifier,Sr.asn1.ASN1Object),Sr.asn1.DEREnumerated=function(t){Sr.asn1.DEREnumerated.superclass.constructor.call(this),this.hT=\"0a\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=Sr.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new w(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},Zr(Sr.asn1.DEREnumerated,Sr.asn1.ASN1Object),Sr.asn1.DERUTF8String=function(t){Sr.asn1.DERUTF8String.superclass.constructor.call(this,t),this.hT=\"0c\"},Zr(Sr.asn1.DERUTF8String,Sr.asn1.DERAbstractString),Sr.asn1.DERNumericString=function(t){Sr.asn1.DERNumericString.superclass.constructor.call(this,t),this.hT=\"12\"},Zr(Sr.asn1.DERNumericString,Sr.asn1.DERAbstractString),Sr.asn1.DERPrintableString=function(t){Sr.asn1.DERPrintableString.superclass.constructor.call(this,t),this.hT=\"13\"},Zr(Sr.asn1.DERPrintableString,Sr.asn1.DERAbstractString),Sr.asn1.DERTeletexString=function(t){Sr.asn1.DERTeletexString.superclass.constructor.call(this,t),this.hT=\"14\"},Zr(Sr.asn1.DERTeletexString,Sr.asn1.DERAbstractString),Sr.asn1.DERIA5String=function(t){Sr.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT=\"16\"},Zr(Sr.asn1.DERIA5String,Sr.asn1.DERAbstractString),Sr.asn1.DERVisibleString=function(t){Sr.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT=\"1a\"},Zr(Sr.asn1.DERVisibleString,Sr.asn1.DERAbstractString),Sr.asn1.DERBMPString=function(t){Sr.asn1.DERBMPString.superclass.constructor.call(this,t),this.hT=\"1e\"},Zr(Sr.asn1.DERBMPString,Sr.asn1.DERAbstractString),Sr.asn1.DERUTCTime=function(t){Sr.asn1.DERUTCTime.superclass.constructor.call(this,t),this.hT=\"17\",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,\"utc\"),this.hV=kr(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,\"utc\"),this.hV=kr(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):\"string\"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date))},Zr(Sr.asn1.DERUTCTime,Sr.asn1.DERAbstractTime),Sr.asn1.DERGeneralizedTime=function(t){Sr.asn1.DERGeneralizedTime.superclass.constructor.call(this,t),this.hT=\"18\",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,\"gen\",this.withMillis),this.hV=kr(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,\"gen\",this.withMillis),this.hV=kr(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):\"string\"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date),!0===t.millis&&(this.withMillis=!0))},Zr(Sr.asn1.DERGeneralizedTime,Sr.asn1.DERAbstractTime),Sr.asn1.DERSequence=function(t){Sr.asn1.DERSequence.superclass.constructor.call(this,t),this.hT=\"30\",this.getFreshValueHex=function(){for(var t=\"\",e=0;e<this.asn1Array.length;e++){t+=this.asn1Array[e].getEncodedHex()}return this.hV=t,this.hV}},Zr(Sr.asn1.DERSequence,Sr.asn1.DERAbstractStructured),Sr.asn1.DERSet=function(t){Sr.asn1.DERSet.superclass.constructor.call(this,t),this.hT=\"31\",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var r=this.asn1Array[e];t.push(r.getEncodedHex())}return 1==this.sortFlag&&t.sort(),this.hV=t.join(\"\"),this.hV},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.sortFlag=!1)},Zr(Sr.asn1.DERSet,Sr.asn1.DERAbstractStructured),Sr.asn1.DERTaggedObject=function(t){Sr.asn1.DERTaggedObject.superclass.constructor.call(this);var e=Sr.asn1;this.hT=\"a0\",this.hV=\"\",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,r){this.hT=e,this.isExplicit=t,this.asn1Object=r,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=r.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(t){null!=t.tag&&(this.hT=t.tag),null!=t.explicit&&(this.isExplicit=t.explicit),null!=t.tage&&(this.hT=t.tage,this.isExplicit=!0),null!=t.tagi&&(this.hT=t.tagi,this.isExplicit=!1),null!=t.obj&&(t.obj instanceof e.ASN1Object?(this.asn1Object=t.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):\"object\"==g(t.obj)&&(this.asn1Object=e.ASN1Util.newObject(t.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=t&&this.setByParam(t)},Zr(Sr.asn1.DERTaggedObject,Sr.asn1.ASN1Object);var Sr,br,wr,Fr=new function(){};function Er(t){for(var e=new Array,r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}function xr(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e}function Ar(t){for(var e=\"\",r=0;r<t.length;r++){var n=t[r].toString(16);1==n.length&&(n=\"0\"+n),e+=n}return e}function kr(t){return Ar(Er(t))}function Pr(t){return t=(t=(t=t.replace(/\\=/g,\"\")).replace(/\\+/g,\"-\")).replace(/\\//g,\"_\")}function Cr(t){return t.length%4==2?t+=\"==\":t.length%4==3&&(t+=\"=\"),t=(t=t.replace(/-/g,\"+\")).replace(/_/g,\"/\")}function Tr(t){return t.length%2==1&&(t=\"0\"+t),Pr(_(t))}function Rr(t){return S(Cr(t))}function Ir(t){return Kr(Gr(t))}function Dr(t){return decodeURIComponent(qr(t))}function Lr(t){for(var e=\"\",r=0;r<t.length-1;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e}function Nr(t){for(var e=\"\",r=0;r<t.length;r++)e+=(\"0\"+t.charCodeAt(r).toString(16)).slice(-2);return e}function Ur(t){return _(t)}function Br(t){var e=Ur(t).replace(/(.{64})/g,\"$1\\r\\n\");return e=e.replace(/\\r\\n$/,\"\")}function Or(t){return S(t.replace(/[^0-9A-Za-z\\/+=]*/g,\"\"))}function jr(t,e){return\"-----BEGIN \"+e+\"-----\\r\\n\"+Br(t)+\"\\r\\n-----END \"+e+\"-----\\r\\n\"}function Mr(t,e){if(-1==t.indexOf(\"-----BEGIN \"))throw\"can't find PEM header: \"+e;return Or(t=void 0!==e?(t=t.replace(new RegExp(\"^[^]*-----BEGIN \"+e+\"-----\"),\"\")).replace(new RegExp(\"-----END \"+e+\"-----[^]*$\"),\"\"):(t=t.replace(/^[^]*-----BEGIN [^-]+-----/,\"\")).replace(/-----END [^-]+-----[^]*$/,\"\"))}function Hr(t){var e,r,n,i,o,s,a,u,c,h,l;if(l=t.match(/^(\\d{2}|\\d{4})(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(|\\.\\d+)Z$/))return u=l[1],e=parseInt(u),2===u.length&&(50<=e&&e<100?e=1900+e:0<=e&&e<50&&(e=2e3+e)),r=parseInt(l[2])-1,n=parseInt(l[3]),i=parseInt(l[4]),o=parseInt(l[5]),s=parseInt(l[6]),a=0,\"\"!==(c=l[7])&&(h=(c.substr(1)+\"00\").substr(0,3),a=parseInt(h)),Date.UTC(e,r,n,i,o,s,a);throw\"unsupported zulu format: \"+t}function Vr(t){return~~(Hr(t)/1e3)}function Kr(t){return t.replace(/%/g,\"\")}function qr(t){return t.replace(/(..)/g,\"%$1\")}function Jr(t){var e=\"malformed IPv6 address\";if(!t.match(/^[0-9A-Fa-f:]+$/))throw e;var r=(t=t.toLowerCase()).split(\":\").length-1;if(r<2)throw e;var n=\":\".repeat(7-r+2),i=(t=t.replace(\"::\",n)).split(\":\");if(8!=i.length)throw e;for(var o=0;o<8;o++)i[o]=(\"0000\"+i[o]).slice(-4);return i.join(\"\")}function Wr(t){if(!t.match(/^[0-9A-Fa-f]{32}$/))throw\"malformed IPv6 address octet\";for(var e=(t=t.toLowerCase()).match(/.{1,4}/g),r=0;r<8;r++)e[r]=e[r].replace(/^0+/,\"\"),\"\"==e[r]&&(e[r]=\"0\");var n=(t=\":\"+e.join(\":\")+\":\").match(/:(0:){2,}/g);if(null===n)return t.slice(1,-1);var i=\"\";for(r=0;r<n.length;r++)n[r].length>i.length&&(i=n[r]);return(t=t.replace(i,\"::\")).slice(1,-1)}function zr(t){var e=\"malformed hex value\";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Wr(t):t;try{return parseInt(t.substr(0,2),16)+\".\"+parseInt(t.substr(2,2),16)+\".\"+parseInt(t.substr(4,2),16)+\".\"+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Yr(t){return t.match(/.{4}/g).map((function e(t){var e=parseInt(t.substr(0,2),16),r=parseInt(t.substr(2),16);if(0==e&r<128)return String.fromCharCode(r);if(e<8){var n=128|63&r;return Dr((192|(7&e)<<3|(192&r)>>6).toString(16)+n.toString(16))}n=128|(15&e)<<2|(192&r)>>6;var i=128|63&r;return Dr((224|(240&e)>>4).toString(16)+n.toString(16)+i.toString(16))})).join(\"\")}function Gr(t){for(var e=encodeURIComponent(t),r=\"\",n=0;n<e.length;n++)\"%\"==e[n]?(r+=e.substr(n,3),n+=2):r=r+\"%\"+kr(e[n]);return r}function Xr(t){return!(t.length%2!=0||!t.match(/^[0-9a-f]+$/)&&!t.match(/^[0-9A-F]+$/))}function $r(t){return t.length%2==1?\"0\"+t:t.substr(0,1)>\"7\"?\"00\"+t:t}Fr.getLblen=function(t,e){if(\"8\"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0<r&&r<10?r+1:-2},Fr.getL=function(t,e){var r=Fr.getLblen(t,e);return r<1?\"\":t.substr(e+2,2*r)},Fr.getVblen=function(t,e){var r;return\"\"==(r=Fr.getL(t,e))?-1:(\"8\"===r.substr(0,1)?new w(r.substr(2),16):new w(r,16)).intValue()},Fr.getVidx=function(t,e){var r=Fr.getLblen(t,e);return r<0?r:e+2*(r+1)},Fr.getV=function(t,e){var r=Fr.getVidx(t,e),n=Fr.getVblen(t,e);return t.substr(r,2*n)},Fr.getTLV=function(t,e){return t.substr(e,2)+Fr.getL(t,e)+Fr.getV(t,e)},Fr.getTLVblen=function(t,e){return 2+2*Fr.getLblen(t,e)+2*Fr.getVblen(t,e)},Fr.getNextSiblingIdx=function(t,e){return Fr.getVidx(t,e)+2*Fr.getVblen(t,e)},Fr.getChildIdx=function(t,e){var r,n,i,o=Fr,s=[];r=o.getVidx(t,e),n=2*o.getVblen(t,e),\"03\"==t.substr(e,2)&&(r+=2,n-=2),i=0;for(var a=r;i<=n;){var u=o.getTLVblen(t,a);if((i+=u)<=n&&s.push(a),a+=u,i>=n)break}return s},Fr.getNthChildIdx=function(t,e,r){return Fr.getChildIdx(t,e)[r]},Fr.getIdxbyList=function(t,e,r,n){var i,o,s=Fr;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},Fr.getIdxbyListEx=function(t,e,r,n){var i,o,s=Fr;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u<o.length;u++){var c=t.substr(o[u],2);if(\"number\"==typeof i&&!s.isContextTag(c)&&a==i||\"string\"==typeof i&&s.isContextTag(c,i))return s.getIdxbyListEx(t,o[u],r,n);s.isContextTag(c)||a++}return-1},Fr.getTLVbyList=function(t,e,r,n){var i=Fr,o=i.getIdxbyList(t,e,r,n);return-1==o||o>=t.length?null:i.getTLV(t,o)},Fr.getTLVbyListEx=function(t,e,r,n){var i=Fr,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},Fr.getVbyList=function(t,e,r,n,i){var o,s,a=Fr;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},Fr.getVbyListEx=function(t,e,r,n,i){var o,s,a=Fr;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),\"03\"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},Fr.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if(\"02\"!=n&&\"03\"!=n)return r;var i=Fr.getV(t,e);return\"02\"==n?parseInt(i,16):function o(t){try{var e=t.substr(0,2);if(\"00\"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return\"0\"==i&&(i=\"00000000\"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},Fr.getOID=function(t,e,r){null==r&&(r=null);try{return\"06\"!=t.substr(e,2)?r:function n(t){if(!Xr(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s<i.length/2;s++)o.push(parseInt(i.substr(2*s,2),16));var a=[],u=\"\";for(s=0;s<o.length;s++)128&o[s]?u+=Qr((127&o[s]).toString(2),7):(u+=Qr((127&o[s]).toString(2),7),a.push(new String(parseInt(u,2))),u=\"\");var c=e.join(\".\");return a.length>0&&(c=c+\".\"+a.join(\".\")),c}catch(t){return null}}(Fr.getV(t,e))}catch(t){return r}},Fr.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=Fr.getOID(t,e,r);if(n==r)return r;var i=Sr.asn1.x509.OID.oid2name(n);return\"\"==i?n:i}catch(t){return r}},Fr.getString=function(t,e,r){null==r&&(r=null);try{return Lr(Fr.getV(t,e))}catch(t){return r}},Fr.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join(\"0\")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a<o.length/2;a++)s.push(parseInt(o.substr(2*a,2),16));var u=[],c=\"\";for(a=0;a<s.length;a++)128&s[a]?c+=e((127&s[a]).toString(2),7):(c+=e((127&s[a]).toString(2),7),u.push(new String(parseInt(c,2))),c=\"\");var h=r.join(\".\");return u.length>0&&(h=h+\".\"+u.join(\".\")),h},Fr.dump=function(t,e,r,n){var i=Fr,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof Sr.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+\"..(total \"+e.length/2+\"bytes)..\"+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n=\"\");var h,l=e.ommit_long_octet;if(\"01\"==(h=u.substr(r,2)))return\"00\"==(f=o(u,r))?n+\"BOOLEAN FALSE\\n\":n+\"BOOLEAN TRUE\\n\";if(\"02\"==h)return n+\"INTEGER \"+c(f=o(u,r),l)+\"\\n\";if(\"03\"==h){var f=o(u,r);if(i.isASN1HEX(f.substr(2))){var g=n+\"BITSTRING, encapsulates\\n\";return g+=s(f.substr(2),e,0,n+\" \")}return n+\"BITSTRING \"+c(f,l)+\"\\n\"}if(\"04\"==h){f=o(u,r);if(i.isASN1HEX(f)){g=n+\"OCTETSTRING, encapsulates\\n\";return g+=s(f,e,0,n+\" \")}return n+\"OCTETSTRING \"+c(f,l)+\"\\n\"}if(\"05\"==h)return n+\"NULL\\n\";if(\"06\"==h){var d=o(u,r),p=Sr.asn1.ASN1Util.oidHexToInt(d),v=Sr.asn1.x509.OID.oid2name(p),y=p.replace(/\\./g,\" \");return\"\"!=v?n+\"ObjectIdentifier \"+v+\" (\"+y+\")\\n\":n+\"ObjectIdentifier (\"+y+\")\\n\"}if(\"0a\"==h)return n+\"ENUMERATED \"+parseInt(o(u,r))+\"\\n\";if(\"0c\"==h)return n+\"UTF8String '\"+Dr(o(u,r))+\"'\\n\";if(\"13\"==h)return n+\"PrintableString '\"+Dr(o(u,r))+\"'\\n\";if(\"14\"==h)return n+\"TeletexString '\"+Dr(o(u,r))+\"'\\n\";if(\"16\"==h)return n+\"IA5String '\"+Dr(o(u,r))+\"'\\n\";if(\"17\"==h)return n+\"UTCTime \"+Dr(o(u,r))+\"\\n\";if(\"18\"==h)return n+\"GeneralizedTime \"+Dr(o(u,r))+\"\\n\";if(\"1a\"==h)return n+\"VisualString '\"+Dr(o(u,r))+\"'\\n\";if(\"1e\"==h)return n+\"BMPString '\"+Yr(o(u,r))+\"'\\n\";if(\"30\"==h){if(\"3000\"==u.substr(r,4))return n+\"SEQUENCE {}\\n\";g=n+\"SEQUENCE\\n\";var m=e;if((2==(b=a(u,r)).length||3==b.length)&&\"06\"==u.substr(b[0],2)&&\"04\"==u.substr(b[b.length-1],2)){v=i.oidname(o(u,b[0]));var _=JSON.parse(JSON.stringify(e));_.x509ExtName=v,m=_}for(var S=0;S<b.length;S++)g+=s(u,m,b[S],n+\" \");return g}if(\"31\"==h){g=n+\"SET\\n\";var b=a(u,r);for(S=0;S<b.length;S++)g+=s(u,e,b[S],n+\" \");return g}if(0!=(128&(h=parseInt(h,16)))){var w=31&h;if(0!=(32&h)){for(g=n+\"[\"+w+\"]\\n\",b=a(u,r),S=0;S<b.length;S++)g+=s(u,e,b[S],n+\" \");return g}f=o(u,r);if(Fr.isASN1HEX(f)){var g=n+\"[\"+w+\"]\\n\";return g+=s(f,e,0,n+\" \")}return(\"68747470\"==f.substr(0,8)||\"subjectAltName\"===e.x509ExtName&&2==w)&&(f=Dr(f)),g=n+\"[\"+w+\"] \"+f+\"\\n\"}return n+\"UNKNOWN(\"+h+\") \"+o(u,r)+\"\\n\"},Fr.isContextTag=function(t,e){var r,n;t=t.toLowerCase();try{r=parseInt(t,16)}catch(t){return-1}if(void 0===e)return 128==(192&r);try{return null!=e.match(/^\\[[0-9]+\\]$/)&&(!((n=parseInt(e.substr(1,e.length-1),10))>31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},Fr.isASN1HEX=function(t){var e=Fr;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},Fr.checkStrictDER=function(t,e,r,n,i){var o=Fr;if(void 0===r){if(\"string\"!=typeof t)throw new Error(\"not hex string\");if(t=t.toLowerCase(),!Sr.lang.String.isHex(t))throw new Error(\"not hex string\");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error(\"L of TLV too long: idx=\"+e);var s=o.getVblen(t,e);if(s>n)throw new Error(\"value of L too long than hex: idx=\"+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error(\"V string length and L's value not the same:\"+u+\"/\"+2*s);if(0===e&&t.length!=a.length)throw new Error(\"total length and TLV length unmatch:\"+t.length+\"!=\"+a.length);var c=t.substr(e,2);if(\"02\"===c){var h=o.getVidx(t,e);if(\"00\"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error(\"not least zeros for DER INTEGER\")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d<g.length;d++){f+=o.getTLV(t,g[d]).length,o.checkStrictDER(t,g[d],r,n,i)}if(2*l!=f)throw new Error(\"sum of children's TLV length and L unmatch: \"+2*l+\"!=\"+f)}},Fr.oidname=function(t){var e=Sr.asn1;Sr.lang.String.isHex(t)&&(t=e.ASN1Util.oidHexToInt(t));var r=e.x509.OID.oid2name(t);return\"\"===r&&(r=t),r},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.lang&&Sr.lang||(Sr.lang={}),Sr.lang.String=function(){},\"function\"==typeof t?(e.utf8tob64u=br=function e(r){return Pr(t.from(r,\"utf8\").toString(\"base64\"))},e.b64utoutf8=wr=function e(r){return t.from(Cr(r),\"base64\").toString(\"utf8\")}):(e.utf8tob64u=br=function t(e){return Tr(Kr(Gr(e)))},e.b64utoutf8=wr=function t(e){return decodeURIComponent(qr(Rr(e)))}),Sr.lang.String.isInteger=function(t){return!!t.match(/^[0-9]+$/)||!!t.match(/^-[0-9]+$/)},Sr.lang.String.isHex=function(t){return Xr(t)},Sr.lang.String.isBase64=function(t){return!(!(t=t.replace(/\\s+/g,\"\")).match(/^[0-9A-Za-z+\\/]+={0,3}$/)||t.length%4!=0)},Sr.lang.String.isBase64URL=function(t){return!t.match(/[+/=]/)&&(t=Cr(t),Sr.lang.String.isBase64(t))},Sr.lang.String.isIntegerArray=function(t){return!!(t=t.replace(/\\s+/g,\"\")).match(/^\\[[0-9,]+\\]$/)},Sr.lang.String.isPrintable=function(t){return null!==t.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},Sr.lang.String.isIA5=function(t){return null!==t.match(/^[\\x20-\\x21\\x23-\\x7f]*$/)},Sr.lang.String.isMail=function(t){return null!==t.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\\.[A-Za-z0-9]{1,}$/)};var Qr=function t(e,r,n){return null==n&&(n=\"0\"),e.length>=r?e:new Array(r-e.length+1).join(n)+e};function Zr(t,e){var r=function t(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e)}void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\"},this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:v.algo.MD5,sha1:v.algo.SHA1,sha224:v.algo.SHA224,sha256:v.algo.SHA256,sha384:v.algo.SHA384,sha512:v.algo.SHA512,ripemd160:v.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw\"alg not supported in Util.DIGESTINFOHEAD: \"+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw\"key is too short for SigAlg: keylen=\"+r+\",\"+e;for(var o=\"0001\",s=\"00\"+n,a=\"\",u=i-o.length-s.length,c=0;c<u;c+=2)a+=\"ff\";return o+a+s},this.hashString=function(t,e){return new Sr.crypto.MessageDigest({alg:e}).digestString(t)},this.hashHex=function(t,e){return new Sr.crypto.MessageDigest({alg:e}).digestHex(t)},this.sha1=function(t){return this.hashString(t,\"sha1\")},this.sha256=function(t){return this.hashString(t,\"sha256\")},this.sha256Hex=function(t){return this.hashHex(t,\"sha256\")},this.sha512=function(t){return this.hashString(t,\"sha512\")},this.sha512Hex=function(t){return this.hashHex(t,\"sha512\")},this.isKey=function(t){return t instanceof Me||t instanceof Sr.crypto.DSA||t instanceof Sr.crypto.ECDSA}},Sr.crypto.Util.md5=function(t){return new Sr.crypto.MessageDigest({alg:\"md5\",prov:\"cryptojs\"}).digestString(t)},Sr.crypto.Util.ripemd160=function(t){return new Sr.crypto.MessageDigest({alg:\"ripemd160\",prov:\"cryptojs\"}).digestString(t)},Sr.crypto.Util.SECURERANDOMGEN=new Be,Sr.crypto.Util.getRandomHexOfNbytes=function(t){var e=new Array(t);return Sr.crypto.Util.SECURERANDOMGEN.nextBytes(e),Ar(e)},Sr.crypto.Util.getRandomBigIntegerOfNbytes=function(t){return new w(Sr.crypto.Util.getRandomHexOfNbytes(t),16)},Sr.crypto.Util.getRandomHexOfNbits=function(t){var e=t%8,r=new Array((t-e)/8+1);return Sr.crypto.Util.SECURERANDOMGEN.nextBytes(r),r[0]=(255<<e&255^255)&r[0],Ar(r)},Sr.crypto.Util.getRandomBigIntegerOfNbits=function(t){return new w(Sr.crypto.Util.getRandomHexOfNbits(t),16)},Sr.crypto.Util.getRandomBigIntegerZeroToMax=function(t){for(var e=t.bitLength();;){var r=Sr.crypto.Util.getRandomBigIntegerOfNbits(e);if(-1!=t.compareTo(r))return r}},Sr.crypto.Util.getRandomBigIntegerMinToMax=function(t,e){var r=t.compareTo(e);if(1==r)throw\"biMin is greater than biMax\";if(0==r)return t;var n=e.subtract(t);return Sr.crypto.Util.getRandomBigIntegerZeroToMax(n).add(t)},Sr.crypto.MessageDigest=function(t){this.setAlgAndProvider=function(t,e){if(null!==(t=Sr.crypto.MessageDigest.getCanonicalAlgName(t))&&void 0===e&&(e=Sr.crypto.Util.DEFAULTPROVIDER[t]),-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(t)&&\"cryptojs\"==e){try{this.md=Sr.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[t].create()}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+t+\"/\"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=v.enc.Hex.parse(t);this.md.update(e)},this.digest=function(){return this.md.finalize().toString(v.enc.Hex)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}if(-1!=\":sha256:\".indexOf(t)&&\"sjcl\"==e){try{this.md=new sjcl.hash.sha256}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+t+\"/\"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=sjcl.codec.hex.toBits(t);this.md.update(e)},this.digest=function(){var t=this.md.finalize();return sjcl.codec.hex.fromBits(t)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}},this.updateString=function(t){throw\"updateString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digest=function(){throw\"digest() not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digestString=function(t){throw\"digestString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digestHex=function(t){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},void 0!==t&&void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov&&(this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},Sr.crypto.MessageDigest.getCanonicalAlgName=function(t){return\"string\"==typeof t&&(t=(t=t.toLowerCase()).replace(/-/,\"\")),t},Sr.crypto.MessageDigest.getHashLength=function(t){var e=Sr.crypto.MessageDigest,r=e.getCanonicalAlgName(t);if(void 0===e.HASHLENGTH[r])throw\"not supported algorithm: \"+t;return e.HASHLENGTH[r]},Sr.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},Sr.crypto.Mac=function(t){this.setAlgAndProvider=function(t,e){if(null==(t=t.toLowerCase())&&(t=\"hmacsha1\"),\"hmac\"!=(t=t.toLowerCase()).substr(0,4))throw\"setAlgAndProvider unsupported HMAC alg: \"+t;void 0===e&&(e=Sr.crypto.Util.DEFAULTPROVIDER[t]),this.algProv=t+\"/\"+e;var r=t.substr(4);if(-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(r)&&\"cryptojs\"==e){try{var n=Sr.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];this.mac=v.algo.HMAC.create(n,this.pass)}catch(t){throw\"setAlgAndProvider hash alg set fail hashAlg=\"+r+\"/\"+t}this.updateString=function(t){this.mac.update(t)},this.updateHex=function(t){var e=v.enc.Hex.parse(t);this.mac.update(e)},this.doFinal=function(){return this.mac.finalize().toString(v.enc.Hex)},this.doFinalString=function(t){return this.updateString(t),this.doFinal()},this.doFinalHex=function(t){return this.updateHex(t),this.doFinal()}}},this.updateString=function(t){throw\"updateString(str) not supported for this alg/prov: \"+this.algProv},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algProv},this.doFinal=function(){throw\"digest() not supported for this alg/prov: \"+this.algProv},this.doFinalString=function(t){throw\"digestString(str) not supported for this alg/prov: \"+this.algProv},this.doFinalHex=function(t){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algProv},this.setPassword=function(t){if(\"string\"==typeof t){var e=t;return t.length%2!=1&&t.match(/^[0-9A-Fa-f]+$/)||(e=Nr(t)),void(this.pass=v.enc.Hex.parse(e))}if(\"object\"!=(void 0===t?\"undefined\":g(t)))throw\"KJUR.crypto.Mac unsupported password type: \"+t;e=null;if(void 0!==t.hex){if(t.hex.length%2!=0||!t.hex.match(/^[0-9A-Fa-f]+$/))throw\"Mac: wrong hex password: \"+t.hex;e=t.hex}if(void 0!==t.utf8&&(e=Ir(t.utf8)),void 0!==t.rstr&&(e=Nr(t.rstr)),void 0!==t.b64&&(e=S(t.b64)),void 0!==t.b64u&&(e=Rr(t.b64u)),null==e)throw\"KJUR.crypto.Mac unsupported password type: \"+t;this.pass=v.enc.Hex.parse(e)},void 0!==t&&(void 0!==t.pass&&this.setPassword(t.pass),void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov&&(this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},Sr.crypto.Signature=function(t){var e=null;if(this._setAlgNames=function(){var t=this.algName.match(/^(.+)with(.+)$/);t&&(this.mdAlgName=t[1].toLowerCase(),this.pubkeyAlgName=t[2].toLowerCase(),\"rsaandmgf1\"==this.pubkeyAlgName&&\"sha\"==this.mdAlgName&&(this.mdAlgName=\"sha1\"))},this._zeroPaddingOfSignature=function(t,e){for(var r=\"\",n=e/4-t.length,i=0;i<n;i++)r+=\"0\";return r+t},this.setAlgAndProvider=function(t,e){if(this._setAlgNames(),\"cryptojs/jsrsa\"!=e)throw new Error(\"provider not supported: \"+e);if(-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(this.mdAlgName)){try{this.md=new Sr.crypto.MessageDigest({alg:this.mdAlgName})}catch(t){throw new Error(\"setAlgAndProvider hash alg set fail alg=\"+this.mdAlgName+\"/\"+t)}this.init=function(t,e){var r=null;try{r=void 0===e?tn.getKey(t):tn.getKey(t,e)}catch(t){throw\"init failed:\"+t}if(!0===r.isPrivate)this.prvKey=r,this.state=\"SIGN\";else{if(!0!==r.isPublic)throw\"init failed.:\"+r;this.pubKey=r,this.state=\"VERIFY\"}},this.updateString=function(t){this.md.updateString(t)},this.updateHex=function(t){this.md.updateHex(t)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==Sr.crypto.ECDSA&&(this.prvKey=new Sr.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof Me&&\"rsaandmgf1\"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof Me&&\"rsa\"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof Sr.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof Sr.crypto.DSA))throw\"Signature: unsupported private key alg: \"+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(t){return this.updateString(t),this.sign()},this.signHex=function(t){return this.updateHex(t),this.sign()},this.verify=function(t){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==Sr.crypto.ECDSA&&(this.pubKey=new Sr.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof Me&&\"rsaandmgf1\"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,t,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof Me&&\"rsa\"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);if(void 0!==Sr.crypto.ECDSA&&this.pubKey instanceof Sr.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);if(void 0!==Sr.crypto.DSA&&this.pubKey instanceof Sr.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);throw\"Signature: unsupported public key alg: \"+this.pubkeyAlgName}}},this.init=function(t,e){throw\"init(key, pass) not supported for this alg:prov=\"+this.algProvName},this.updateString=function(t){throw\"updateString(str) not supported for this alg:prov=\"+this.algProvName},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg:prov=\"+this.algProvName},this.sign=function(){throw\"sign() not supported for this alg:prov=\"+this.algProvName},this.signString=function(t){throw\"digestString(str) not supported for this alg:prov=\"+this.algProvName},this.signHex=function(t){throw\"digestHex(hex) not supported for this alg:prov=\"+this.algProvName},this.verify=function(t){throw\"verify(hSigVal) not supported for this alg:prov=\"+this.algProvName},this.initParams=t,void 0!==t&&(void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov?this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=t.prov,this.algProvName=this.algName+\":\"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==t.psssaltlen&&(this.pssSaltLen=t.psssaltlen),void 0!==t.prvkeypem)){if(void 0!==t.prvkeypas)throw\"both prvkeypem and prvkeypas parameters not supported\";try{e=tn.getKey(t.prvkeypem);this.init(e)}catch(t){throw\"fatal error to load pem private key: \"+t}}},Sr.crypto.Cipher=function(t){},Sr.crypto.Cipher.encrypt=function(t,e,r){if(e instanceof Me&&e.isPublic){var n=Sr.crypto.Cipher.getAlgByKeyAndName(e,r);if(\"RSA\"===n)return e.encrypt(t);if(\"RSAOAEP\"===n)return e.encryptOAEP(t,\"sha1\");var i=n.match(/^RSAOAEP(\\d+)$/);if(null!==i)return e.encryptOAEP(t,\"sha\"+i[1]);throw\"Cipher.encrypt: unsupported algorithm for RSAKey: \"+r}throw\"Cipher.encrypt: unsupported key or algorithm\"},Sr.crypto.Cipher.decrypt=function(t,e,r){if(e instanceof Me&&e.isPrivate){var n=Sr.crypto.Cipher.getAlgByKeyAndName(e,r);if(\"RSA\"===n)return e.decrypt(t);if(\"RSAOAEP\"===n)return e.decryptOAEP(t,\"sha1\");var i=n.match(/^RSAOAEP(\\d+)$/);if(null!==i)return e.decryptOAEP(t,\"sha\"+i[1]);throw\"Cipher.decrypt: unsupported algorithm for RSAKey: \"+r}throw\"Cipher.decrypt: unsupported key or algorithm\"},Sr.crypto.Cipher.getAlgByKeyAndName=function(t,e){if(t instanceof Me){if(-1!=\":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:\".indexOf(e))return e;if(null==e)return\"RSA\";throw\"getAlgByKeyAndName: not supported algorithm name for RSAKey: \"+e}throw\"getAlgByKeyAndName: not supported algorithm name: \"+e},Sr.crypto.OID=new function(){this.oidhex2name={\"2a864886f70d010101\":\"rsaEncryption\",\"2a8648ce3d0201\":\"ecPublicKey\",\"2a8648ce380401\":\"dsa\",\"2a8648ce3d030107\":\"secp256r1\",\"2b8104001f\":\"secp192k1\",\"2b81040021\":\"secp224r1\",\"2b8104000a\":\"secp256k1\",\"2b81040023\":\"secp521r1\",\"2b81040022\":\"secp384r1\",\"2a8648ce380403\":\"SHA1withDSA\",\"608648016503040301\":\"SHA224withDSA\",\"608648016503040302\":\"SHA256withDSA\"}},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.ECDSA=function(t){var e=Error,r=w,n=Ve,i=Sr.crypto.ECDSA,o=Sr.crypto.ECParameterDB,s=i.getName,a=Fr,u=a.getVbyListEx,c=a.isASN1HEX,h=new Be;this.type=\"EC\",this.isPrivate=!1,this.isPublic=!1,this.getBigRandom=function(t){return new r(t.bitLength(),h).mod(t.subtract(r.ONE)).add(r.ONE)},this.setNamedCurve=function(t){this.ecparams=o.getByName(t),this.prvKeyHex=null,this.pubKeyHex=null,this.curveName=t},this.setPrivateKeyHex=function(t){this.isPrivate=!0,this.prvKeyHex=t},this.setPublicKeyHex=function(t){this.isPublic=!0,this.pubKeyHex=t},this.getPublicKeyXYHex=function(){var t=this.pubKeyHex;if(\"04\"!==t.substr(0,2))throw\"this method supports uncompressed format(04) only\";var e=this.ecparams.keylen/4;if(t.length!==2+2*e)throw\"malformed public key hex length\";var r={};return r.x=t.substr(2,e),r.y=t.substr(2+e),r},this.getShortNISTPCurveName=function(){var t=this.curveName;return\"secp256r1\"===t||\"NIST P-256\"===t||\"P-256\"===t||\"prime256v1\"===t?\"P-256\":\"secp384r1\"===t||\"NIST P-384\"===t||\"P-384\"===t?\"P-384\":null},this.generateKeyPairHex=function(){var t=this.ecparams.n,e=this.getBigRandom(t),r=this.ecparams.G.multiply(e),n=r.getX().toBigInteger(),i=r.getY().toBigInteger(),o=this.ecparams.keylen/4,s=(\"0000000000\"+e.toString(16)).slice(-o),a=\"04\"+(\"0000000000\"+n.toString(16)).slice(-o)+(\"0000000000\"+i.toString(16)).slice(-o);return this.setPrivateKeyHex(s),this.setPublicKeyHex(a),{ecprvhex:s,ecpubhex:a}},this.signWithMessageHash=function(t){return this.signHex(t,this.prvKeyHex)},this.signHex=function(t,e){var n=new r(e,16),o=this.ecparams.n,s=new r(t.substring(0,this.ecparams.keylen/4),16);do{var a=this.getBigRandom(o),u=this.ecparams.G.multiply(a).getX().toBigInteger().mod(o)}while(u.compareTo(r.ZERO)<=0);var c=a.modInverse(o).multiply(s.add(n.multiply(u))).mod(o);return i.biRSSigToASN1Sig(u,c)},this.sign=function(t,e){var n=e,i=this.ecparams.n,o=r.fromByteArrayUnsigned(t);do{var s=this.getBigRandom(i),a=this.ecparams.G.multiply(s).getX().toBigInteger().mod(i)}while(a.compareTo(w.ZERO)<=0);var u=s.modInverse(i).multiply(o.add(n.multiply(a))).mod(i);return this.serializeSig(a,u)},this.verifyWithMessageHash=function(t,e){return this.verifyHex(t,e,this.pubKeyHex)},this.verifyHex=function(t,e,o){try{var s,a,u=i.parseSigHex(e);s=u.r,a=u.s;var c=n.decodeFromHex(this.ecparams.curve,o),h=new r(t.substring(0,this.ecparams.keylen/4),16);return this.verifyRaw(h,s,a,c)}catch(t){return!1}},this.verify=function(t,e,i){var o,s,a;if(Bitcoin.Util.isArray(e)){var u=this.parseSig(e);o=u.r,s=u.s}else{if(\"object\"!==(void 0===e?\"undefined\":g(e))||!e.r||!e.s)throw\"Invalid value for signature\";o=e.r,s=e.s}if(i instanceof Ve)a=i;else{if(!Bitcoin.Util.isArray(i))throw\"Invalid format for pubkey value, must be byte array or ECPointFp\";a=n.decodeFrom(this.ecparams.curve,i)}var c=r.fromByteArrayUnsigned(t);return this.verifyRaw(c,o,s,a)},this.verifyRaw=function(t,e,n,i){var o=this.ecparams.n,s=this.ecparams.G;if(e.compareTo(r.ONE)<0||e.compareTo(o)>=0)return!1;if(n.compareTo(r.ONE)<0||n.compareTo(o)>=0)return!1;var a=n.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error(\"Signature not a valid DERSequence\");if(2!=t[e=2])throw new Error(\"First element in signature must be a DERInteger\");var n=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error(\"Second element in signature must be a DERInteger\");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:r.fromByteArrayUnsigned(n),s:r.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw\"Signature has the wrong length\";var e=t[0]-27;if(e<0||e>7)throw\"Invalid signature type\";var n=this.ecparams.n;return{r:r.fromByteArrayUnsigned(t.slice(1,33)).mod(n),s:r.fromByteArrayUnsigned(t.slice(33,65)).mod(n),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===c(t))throw new Error(\"not ASN.1 hex string\");var e,r,n;try{e=u(t,0,[\"[0]\",0],\"06\"),r=u(t,0,[1],\"04\");try{n=u(t,0,[\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}if(this.curveName=s(e),void 0===this.curveName)throw\"unsupported curve name\";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var r,n,i;try{u(t,0,[1,0],\"06\"),r=u(t,0,[1,1],\"06\"),n=u(t,0,[2,0,1],\"04\");try{i=u(t,0,[2,0,\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new e(\"malformed PKCS#8 plain ECC private key\")}if(this.curveName=s(r),void 0===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var r,n;try{u(t,0,[0,0],\"06\"),r=u(t,0,[0,1],\"06\"),n=u(t,0,[1],\"03\")}catch(t){throw new e(\"malformed PKCS#8 ECC public key\")}if(this.curveName=s(r),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var n,i;try{n=u(t,0,[0,5,0,1],\"06\"),i=u(t,0,[0,5,1],\"03\")}catch(t){throw new e(\"malformed X.509 certificate ECC public key\")}if(this.curveName=s(n),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName=\"secp256r1\"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},Sr.crypto.ECDSA.parseSigHex=function(t){var e=Sr.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new w(e.r,16),s:new w(e.s,16)}},Sr.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=Fr,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),\"30\"!=t.substr(0,2))throw new Error(\"signature is not a ASN.1 sequence\");var i=r(t,0);if(2!=i.length)throw new Error(\"signature shall have two elements\");var o=i[0],s=i[1];if(\"02\"!=t.substr(o,2))throw new Error(\"1st item not ASN.1 integer\");if(\"02\"!=t.substr(s,2))throw new Error(\"2nd item not ASN.1 integer\");return{r:n(t,o),s:n(t,s)}},Sr.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=Sr.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if(\"00\"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),\"00\"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r=\"00\"+r),n.length%32==30&&(n=\"00\"+n),r.length%32!=0)throw\"unknown ECDSA sig r length error\";if(n.length%32!=0)throw\"unknown ECDSA sig s length error\";return r+n},Sr.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw\"unknown ECDSA concatinated r-s sig length error\";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return Sr.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},Sr.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new w(t,16),n=new w(e,16);return Sr.crypto.ECDSA.biRSSigToASN1Sig(r,n)},Sr.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=Sr.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},Sr.crypto.ECDSA.getName=function(t){return\"2b8104001f\"===t?\"secp192k1\":\"2a8648ce3d030107\"===t?\"secp256r1\":\"2b8104000a\"===t?\"secp256k1\":\"2b81040021\"===t?\"secp224r1\":\"2b81040022\"===t?\"secp384r1\":-1!==\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t)?\"secp256r1\":-1!==\"|secp256k1|\".indexOf(t)?\"secp256k1\":-1!==\"|secp224r1|NIST P-224|P-224|\".indexOf(t)?\"secp224r1\":-1!==\"|secp384r1|NIST P-384|P-384|\".indexOf(t)?\"secp384r1\":null},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new w(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw\"unregistered EC curve name: \"+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new Ke(p,v,y),b=S.decodePointHex(\"04\"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var w=0;w<f.length;w++)e[f[w]]=n}},Sr.crypto.ECParameterDB.regist(\"secp128r1\",128,\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\",\"E87579C11079F43DD824993C2CEE5ED3\",\"FFFFFFFE0000000075A30D1B9038A115\",\"1\",\"161FF7528B899B2D0C28607CA52C5B86\",\"CF5AC8395BAFEB13C02DA292DDED7A83\",[],\"\",\"secp128r1 : SECG curve over a 128 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp160k1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\",\"0\",\"7\",\"0100000000000000000001B8FA16DFAB9ACA16B6B3\",\"1\",\"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\",\"938CF935318FDCED6BC28286531733C3F03C4FEE\",[],\"\",\"secp160k1 : SECG curve over a 160 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp160r1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\",\"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\",\"0100000000000000000001F4C8F927AED3CA752257\",\"1\",\"4A96B5688EF573284664698968C38BB913CBFC82\",\"23A628553168947D59DCC912042351377AC5FB32\",[],\"\",\"secp160r1 : SECG curve over a 160 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp192k1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\",\"0\",\"3\",\"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\",\"1\",\"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\",\"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\",[]),Sr.crypto.ECParameterDB.regist(\"secp192r1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\",\"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\",\"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\",\"1\",\"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\",\"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\",[]),Sr.crypto.ECParameterDB.regist(\"secp224r1\",224,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\",\"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\",\"1\",\"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\",\"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\",[]),Sr.crypto.ECParameterDB.regist(\"secp256k1\",256,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\",\"0\",\"7\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\",\"1\",\"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\",\"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\",[]),Sr.crypto.ECParameterDB.regist(\"secp256r1\",256,\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\",\"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\",\"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\",\"1\",\"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\",\"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\",[\"NIST P-256\",\"P-256\",\"prime256v1\"]),Sr.crypto.ECParameterDB.regist(\"secp384r1\",384,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC\",\"B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973\",\"1\",\"AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7\",\"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\",[\"NIST P-384\",\"P-384\"]),Sr.crypto.ECParameterDB.regist(\"secp521r1\",521,\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\",\"051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409\",\"1\",\"C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66\",\"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\",[\"NIST P-521\",\"P-521\"]);var tn=function(){var t=function t(r,n,i){return e(v.AES,r,n,i)},e=function t(e,r,n,i){var o=v.enc.Hex.parse(r),s=v.enc.Hex.parse(n),a=v.enc.Hex.parse(i),u={};u.key=s,u.iv=a,u.ciphertext=o;var c=e.decrypt(u,s,{iv:a});return v.enc.Hex.stringify(c)},r=function t(e,r,i){return n(v.AES,e,r,i)},n=function t(e,r,n,i){var o=v.enc.Hex.parse(r),s=v.enc.Hex.parse(n),a=v.enc.Hex.parse(i),u=e.encrypt(o,s,{iv:a}),c=v.enc.Hex.parse(u.toString());return v.enc.Base64.stringify(c)},i={\"AES-256-CBC\":{proc:t,eproc:r,keylen:32,ivlen:16},\"AES-192-CBC\":{proc:t,eproc:r,keylen:24,ivlen:16},\"AES-128-CBC\":{proc:t,eproc:r,keylen:16,ivlen:16},\"DES-EDE3-CBC\":{proc:function t(r,n,i){return e(v.TripleDES,r,n,i)},eproc:function t(e,r,i){return n(v.TripleDES,e,r,i)},keylen:24,ivlen:8},\"DES-CBC\":{proc:function t(r,n,i){return e(v.DES,r,n,i)},eproc:function t(e,r,i){return n(v.DES,e,r,i)},keylen:8,ivlen:8}},o=function t(e){var r={},n=e.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\",\"m\"));n&&(r.cipher=n[1],r.ivsalt=n[2]);var i=e.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\"));i&&(r.type=i[1]);var o=-1,s=0;-1!=e.indexOf(\"\\r\\n\\r\\n\")&&(o=e.indexOf(\"\\r\\n\\r\\n\"),s=2),-1!=e.indexOf(\"\\n\\n\")&&(o=e.indexOf(\"\\n\\n\"),s=1);var a=e.indexOf(\"-----END\");if(-1!=o&&-1!=a){var u=e.substring(o+2*s,a-s);u=u.replace(/\\s+/g,\"\"),r.data=u}return r},s=function t(e,r,n){for(var o=n.substring(0,16),s=v.enc.Hex.parse(o),a=v.enc.Utf8.parse(r),u=i[e].keylen+i[e].ivlen,c=\"\",h=null;;){var l=v.algo.MD5.create();if(null!=h&&l.update(h),l.update(a),l.update(s),h=l.finalize(),(c+=v.enc.Hex.stringify(h)).length>=2*u)break}var f={};return f.keyhex=c.substr(0,2*i[e].keylen),f.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),f},a=function t(e,r,n,o){var s=v.enc.Base64.parse(e),a=v.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:\"1.0.0\",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,h=s(i,r,u).keyhex;return a(c,i,h,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u=\"\";if(void 0!==o&&null!=o||(o=\"AES-256-CBC\"),void 0===i[o])throw new Error(\"KEYUTIL unsupported algorithm: \"+o);void 0!==a&&null!=a||(a=function t(e){var r=v.lib.WordArray.random(e);return v.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u=\"-----BEGIN \"+e+\" PRIVATE KEY-----\\r\\n\";return u+=\"Proc-Type: 4,ENCRYPTED\\r\\n\",u+=\"DEK-Info: \"+o+\",\"+a+\"\\r\\n\",u+=\"\\r\\n\",u+=c.replace(/(.{64})/g,\"$1\\r\\n\"),u+=\"\\r\\n-----END \"+e+\" PRIVATE KEY-----\\r\\n\"},parseHexOfEncryptedPKCS8:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw new Error(\"malformed format: SEQUENCE(0).items != 2: \"+s.length);o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw new Error(\"malformed format: SEQUENCE(0.0).items != 2: \"+a.length);if(\"2a864886f70d01050d\"!=i(e,a[0]))throw new Error(\"this only supports pkcs5PBES2\");var u=n(e,a[1]);if(2!=a.length)throw new Error(\"malformed format: SEQUENCE(0.0.1).items != 2: \"+u.length);var c=n(e,u[1]);if(2!=c.length)throw new Error(\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+c.length);if(\"2a864886f70d0307\"!=i(e,c[0]))throw\"this only supports TripleDES\";o.encryptionSchemeAlg=\"TripleDES\",o.encryptionSchemeIV=i(e,c[1]);var h=n(e,u[0]);if(2!=h.length)throw new Error(\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+h.length);if(\"2a864886f70d01050c\"!=i(e,h[0]))throw new Error(\"this only supports pkcs5PBKDF2\");var l=n(e,h[1]);if(l.length<2)throw new Error(\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+l.length);o.pbkdf2Salt=i(e,l[0]);var f=i(e,l[1]);try{o.pbkdf2Iter=parseInt(f,16)}catch(t){throw new Error(\"malformed format pbkdf2Iter: \"+f)}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=v.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=v.PBKDF2(r,n,{keySize:6,iterations:i});return v.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=Mr(e,\"ENCRYPTED PRIVATE KEY\"),i=this.parseHexOfEncryptedPKCS8(n),o=tn.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=v.enc.Hex.parse(i.ciphertext);var a=v.enc.Hex.parse(o),u=v.enc.Hex.parse(i.encryptionSchemeIV),c=v.TripleDES.decrypt(s,a,{iv:u});return v.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={algparam:null};if(\"30\"!=e.substr(0,2))throw new Error(\"malformed plain PKCS8 private key(code:001)\");var s=n(e,0);if(s.length<3)throw new Error(\"malformed plain PKCS8 private key(code:002)\");if(\"30\"!=e.substr(s[1],2))throw new Error(\"malformed PKCS8 private key(code:003)\");var a=n(e,s[1]);if(2!=a.length)throw new Error(\"malformed PKCS8 private key(code:004)\");if(\"06\"!=e.substr(a[0],2))throw new Error(\"malformed PKCS8 private key(code:005)\");if(o.algoid=i(e,a[0]),\"06\"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),\"04\"!=e.substr(s[2],2))throw new Error(\"malformed PKCS8 private key(code:006)\");return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=Mr(e,\"PRIVATE KEY\");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if(\"2a864886f70d010101\"==n.algoid)r=new Me;else if(\"2a8648ce380401\"==n.algoid)r=new Sr.crypto.DSA;else{if(\"2a8648ce3d0201\"!=n.algoid)throw new Error(\"unsupported private key algorithm\");r=new Sr.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=Fr.getVbyList(e,0,[0,0],\"06\");if(\"2a864886f70d010101\"===n)r=new Me;else if(\"2a8648ce380401\"===n)r=new Sr.crypto.DSA;else{if(\"2a8648ce3d0201\"!==n)throw new Error(\"unsupported PKCS#8 public key hex\");r=new Sr.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={};if(\"30\"!=e.substr(0,2))throw new Error(\"malformed RSA key(code:001)\");var s=n(e,0);if(2!=s.length)throw new Error(\"malformed RSA key(code:002)\");if(\"02\"!=e.substr(s[0],2))throw new Error(\"malformed RSA key(code:003)\");if(o.n=i(e,s[0]),\"02\"!=e.substr(s[1],2))throw new Error(\"malformed RSA key(code:004)\");return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw new Error(\"outer DERSequence shall have 2 elements: \"+s.length);var a=s[0];if(\"30\"!=e.substr(a,2))throw new Error(\"malformed PKCS8 public key(code:001)\");var u=n(e,a);if(2!=u.length)throw new Error(\"malformed PKCS8 public key(code:002)\");if(\"06\"!=e.substr(u[0],2))throw new Error(\"malformed PKCS8 public key(code:003)\");if(o.algoid=i(e,u[0]),\"06\"==e.substr(u[1],2)?o.algparam=i(e,u[1]):\"30\"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],\"02\"),o.algparam.q=r.getVbyList(e,u[1],[1],\"02\"),o.algparam.g=r.getVbyList(e,u[1],[2],\"02\")),\"03\"!=e.substr(s[1],2))throw new Error(\"malformed PKCS8 public key(code:004)\");return o.key=i(e,s[1]).substr(2),o}}}();tn.getKey=function(t,e,r){var n=(v=Fr).getChildIdx,i=(v.getV,v.getVbyList),o=Sr.crypto,s=o.ECDSA,a=o.DSA,u=Me,c=Mr,h=tn;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Rr(t.n),Rr(t.e)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Rr(t.n),Rr(t.e),Rr(t.d),Rr(t.p),Rr(t.q),Rr(t.dp),Rr(t.dq),Rr(t.qi)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Rr(t.n),Rr(t.e),Rr(t.d)),P;if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Rr(t.x)).slice(-l)+(\"0000000000\"+Rr(t.y)).slice(-l);return k.setPublicKeyHex(f),k}if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Rr(t.x)).slice(-l)+(\"0000000000\"+Rr(t.y)).slice(-l);var g=(\"0000000000\"+Rr(t.d)).slice(-l);return k.setPublicKeyHex(f),k.setPrivateKeyHex(g),k}if(\"pkcs5prv\"===r){var d,p=t,v=Fr;if(9===(d=n(p,0)).length)(P=new u).readPKCS5PrvKeyHex(p);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(p);else{if(!(d.length>2&&\"04\"===p.substr(d[1],2)))throw new Error(\"unsupported PKCS#1/5 hexadecimal key\");(P=new s).readPKCS5PrvKeyHex(p)}return P}if(\"pkcs8prv\"===r)return P=h.getKeyFromPlainPrivatePKCS8Hex(t);if(\"pkcs8pub\"===r)return h._getKeyFromPublicPKCS8Hex(t);if(\"x509pub\"===r)return on.getPublicKeyFromCertHex(t);if(-1!=t.indexOf(\"-END CERTIFICATE-\",0)||-1!=t.indexOf(\"-END X509 CERTIFICATE-\",0)||-1!=t.indexOf(\"-END TRUSTED CERTIFICATE-\",0))return on.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf(\"-END PUBLIC KEY-\")){var y=Mr(t,\"PUBLIC KEY\");return h._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var m=c(t,\"RSA PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var _=i(R=c(t,\"DSA PRIVATE KEY\"),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),F=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new w(_,16),new w(S,16),new w(b,16),new w(F,16),new w(E,16)),P}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){m=c(t,\"EC PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END PRIVATE KEY-\"))return h.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var x=h.getDecryptedKeyHex(t,e),A=new Me;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var k,P=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"04\"),C=i(R,0,[2,0],\"06\"),T=i(R,0,[3,0],\"03\").substr(2);if(void 0===Sr.crypto.OID.oidhex2name[C])throw new Error(\"undefined OID(hex) in KJUR.crypto.OID: \"+C);return(k=new s({curve:Sr.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var R;_=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),F=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new w(_,16),new w(S,16),new w(b,16),new w(F,16),new w(E,16)),P}if(-1!=t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\"))return h.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error(\"not supported argument\")},tn.generateKeypair=function(t,e){if(\"RSA\"==t){var r=e;(s=new Me).generate(r,\"10001\"),s.isPrivate=!0,s.isPublic=!0;var n=new Me,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if(\"EC\"==t){var s,a,u=e,c=new Sr.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new Sr.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new Sr.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw new Error(\"unknown algorithm: \"+t)},tn.getPEM=function(t,e,r,n,i,o){var s=Sr,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=Me;function y(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a0\",!0,{oid:{name:t.curveName}}]},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||\"PKCS8PUB\"==e))return jr(F=new l(t).getEncodedHex(),\"PUBLIC KEY\");if(\"PKCS1PRV\"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return jr(F=y(t).getEncodedHex(),\"RSA PRIVATE KEY\");if(\"PKCS1PRV\"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w=\"\";return w+=jr(S,\"EC PARAMETERS\"),w+=jr(b,\"EC PRIVATE KEY\")}if(\"PKCS1PRV\"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return jr(F=_(t).getEncodedHex(),\"DSA PRIVATE KEY\");if(\"PKCS5PRV\"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=y(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new h({seq:[{seq:[{oid:{name:\"pkcs5PBES2\"}},{seq:[{seq:[{oid:{name:\"pkcs5PBKDF2\"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:\"des-EDE3-CBC\"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=v.lib.WordArray.random(8),i=v.lib.WordArray.random(8),o=v.PBKDF2(r,n,{keySize:6,iterations:100}),s=v.enc.Hex.parse(e),a=v.TripleDES.encrypt(s,o,{iv:i})+\"\",u={};return u.ciphertext=a,u.pbkdf2Salt=v.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg=\"DES-EDE3-CBC\",u.encryptionSchemeIV=v.enc.Hex.stringify(i),u};if(\"PKCS8PRV\"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=y(t).getEncodedHex();F=h({seq:[{int:0},{seq:[{oid:{name:\"rsaEncryption\"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"dsa\"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}throw new Error(\"unsupported object nor format\")},tn.getKeyFromCSRPEM=function(t){var e=Mr(t,\"CERTIFICATE REQUEST\");return tn.getKeyFromCSRHex(e)},tn.getKeyFromCSRHex=function(t){var e=tn.parseCSRHex(t);return tn.getKey(e.p8pubkeyhex,null,\"pkcs8pub\")},tn.parseCSRHex=function(t){var e=Fr,r=e.getChildIdx,n=e.getTLV,i={},o=t;if(\"30\"!=o.substr(0,2))throw new Error(\"malformed CSR(code:001)\");var s=r(o,0);if(s.length<1)throw new Error(\"malformed CSR(code:002)\");if(\"30\"!=o.substr(s[0],2))throw new Error(\"malformed CSR(code:003)\");var a=r(o,s[0]);if(a.length<3)throw new Error(\"malformed CSR(code:004)\");return i.p8pubkeyhex=n(o,a[2]),i},tn.getKeyID=function(t){var e=tn,r=Fr;\"string\"==typeof t&&-1!=t.indexOf(\"BEGIN \")&&(t=e.getKey(t));var n=Mr(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return Sr.crypto.Util.hashHex(o,\"sha1\")},tn.getJWKFromKey=function(t){var e={};if(t instanceof Me&&t.isPrivate)return e.kty=\"RSA\",e.n=Tr(t.n.toString(16)),e.e=Tr(t.e.toString(16)),e.d=Tr(t.d.toString(16)),e.p=Tr(t.p.toString(16)),e.q=Tr(t.q.toString(16)),e.dp=Tr(t.dmp1.toString(16)),e.dq=Tr(t.dmq1.toString(16)),e.qi=Tr(t.coeff.toString(16)),e;if(t instanceof Me&&t.isPublic)return e.kty=\"RSA\",e.n=Tr(t.n.toString(16)),e.e=Tr(t.e.toString(16)),e;if(t instanceof Sr.crypto.ECDSA&&t.isPrivate){if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw new Error(\"unsupported curve name for JWT: \"+n);var r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Tr(r.x),e.y=Tr(r.y),e.d=Tr(t.prvKeyHex),e}if(t instanceof Sr.crypto.ECDSA&&t.isPublic){var n;if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw new Error(\"unsupported curve name for JWT: \"+n);r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Tr(r.x),e.y=Tr(r.y),e}throw new Error(\"not supported key object\")},Me.getPosArrayOfChildrenFromHex=function(t){return Fr.getChildIdx(t,0)},Me.getHexValueArrayOfChildrenFromHex=function(t){var e,r=Fr.getV,n=r(t,(e=Me.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},Me.prototype.readPrivateKeyFromPEMString=function(t){var e=Mr(t),r=Me.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},Me.prototype.readPKCS5PrvKeyHex=function(t){var e=Me.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},Me.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=Fr,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");try{e=h(t,0,[2,0,1],\"02\"),r=h(t,0,[2,0,2],\"02\"),n=h(t,0,[2,0,3],\"02\"),i=h(t,0,[2,0,4],\"02\"),o=h(t,0,[2,0,5],\"02\"),s=h(t,0,[2,0,6],\"02\"),a=h(t,0,[2,0,7],\"02\"),u=h(t,0,[2,0,8],\"02\")}catch(t){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(e,r,n,i,o,s,a,u)},Me.prototype.readPKCS5PubKeyHex=function(t){var e=Fr,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error(\"keyHex is not ASN.1 hex string\");var n=e.getChildIdx(t,0);if(2!==n.length||\"02\"!==t.substr(n[0],2)||\"02\"!==t.substr(n[1],2))throw new Error(\"wrong hex for PKCS#5 public key\");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},Me.prototype.readPKCS8PubKeyHex=function(t){var e=Fr;if(!1===e.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");if(\"06092a864886f70d010101\"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error(\"not PKCS8 RSA public key\");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},Me.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new on).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};new RegExp(\"[^0-9a-f]\",\"gi\");function en(t,e){for(var r=\"\",n=e/4-t.length,i=0;i<n;i++)r+=\"0\";return r+t}function rn(t,e,r){for(var n=\"\",i=0;n.length<e;)n+=Lr(r(Nr(t+String.fromCharCode.apply(String,[(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function nn(t){for(var e in Sr.crypto.Util.DIGESTINFOHEAD){var r=Sr.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function on(t){var e,r=Fr,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.getInt,d=r.oidname,p=r.hextooidstr,v=Mr;try{e=Sr.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",13:\"prn\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var t=u(this.hex,0,[0,0]);if(\"a0\"==t.substr(0,2)){var e=u(t,0,[0]),r=g(e,0);if(r<0||2<r)throw new Error(\"malformed version field\");return this.version=r+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],\"02\")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return d(a(t,0,[0],\"06\"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],\"30\")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],\"30\")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],\"30\")},this.getPublicKey=function(){return tn.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],\"03\",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],\"30\"),i=new Sr.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],\"30\"),o=n(a,e)}else{a=Mr(t);var u=h(a,0,[0,3,0,0],\"06\");if(\"2a864886f70d01090e\"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],\"30\"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c<o.length;c++){var l={critical:!1},g=0;3===n(a,o[c]).length&&(l.critical=!0,g=1),l.oid=r.hextooidstr(s(a,o[c],[0],\"06\"));var d=h(a,o[c],[1+g]);l.vidx=f(a,d),this.aExtInfo.push(l)}},this.getExtInfo=function(t){var e=this.aExtInfo,r=t;if(t.match(/^[0-9.]+$/)||(r=Sr.asn1.x509.OID.name2oid(t)),\"\"!==r)for(var n=0;n<e.length;n++)if(e[n].oid===r)return e[n]},this.getExtBasicConstraints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"basicConstraints\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"basicConstraints\"};if(e&&(n.critical=!0),\"3000\"===t)return n;if(\"30030101ff\"===t)return n.cA=!0,n;if(\"30060101ff02\"===t.substr(0,12)){var s=i(t,10),a=parseInt(s,16);return n.cA=!0,n.pathLen=a,n}throw new Error(\"hExtV parse error: \"+t)},this.getExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"keyUsage\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"keyUsage\"};return e&&(n.critical=!0),n.names=this.getExtKeyUsageString(t).split(\",\"),n},this.getExtKeyUsageBin=function(t){if(void 0===t){var e=this.getExtInfo(\"keyUsage\");if(void 0===e)return\"\";t=o(this.hex,e.vidx)}if(8!=t.length&&10!=t.length)throw new Error(\"malformed key usage value: \"+t);var r=\"000000000000000\"+parseInt(t.substr(6),16).toString(2);return 8==t.length&&(r=r.slice(-8)),10==t.length&&(r=r.slice(-16)),\"\"==(r=r.replace(/0+$/,\"\"))&&(r=\"0\"),r},this.getExtKeyUsageString=function(t){for(var e=this.getExtKeyUsageBin(t),r=new Array,n=0;n<e.length;n++)\"1\"==e.substr(n,1)&&r.push(on.KEYUSAGE_NAME[n]);return r.join(\",\")},this.getExtSubjectKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"subjectKeyIdentifier\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"subjectKeyIdentifier\"};e&&(n.critical=!0);var s=i(t,0);return n.kid={hex:s},n},this.getExtAuthorityKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"authorityKeyIdentifier\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:\"authorityKeyIdentifier\"};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++){var c=t.substr(a[u],2);if(\"80\"===c&&(s.kid={hex:i(t,a[u])}),\"a1\"===c){var h=o(t,a[u]),l=this.getGeneralNames(h);s.issuer=l[0].dn}\"82\"===c&&(s.sn={hex:i(t,a[u])})}return s},this.getExtExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"extKeyUsage\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:\"extKeyUsage\",array:[]};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++)s.array.push(d(i(t,a[u])));return s},this.getExtExtKeyUsageName=function(){var t=this.getExtInfo(\"extKeyUsage\");if(void 0===t)return t;var e=new Array,r=o(this.hex,t.vidx);if(\"\"===r)return e;for(var s=n(r,0),a=0;a<s.length;a++)e.push(d(i(r,s[a])));return e},this.getExtSubjectAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"subjectAltName\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"subjectAltName\",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getExtIssuerAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"issuerAltName\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"issuerAltName\",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getGeneralNames=function(t){for(var e=n(t,0),r=[],i=0;i<e.length;i++){var s=this.getGeneralName(o(t,e[i]));void 0!==s&&r.push(s)}return r},this.getGeneralName=function(t){var e=t.substr(0,2),r=i(t,0),n=Lr(r);return\"81\"==e?{rfc822:n}:\"82\"==e?{dns:n}:\"86\"==e?{uri:n}:\"87\"==e?{ip:zr(r)}:\"a4\"==e?{dn:this.getX500Name(r)}:void 0},this.getExtSubjectAltName2=function(){var t,e,r,s=this.getExtInfo(\"subjectAltName\");if(void 0===s)return s;for(var a=new Array,u=o(this.hex,s.vidx),c=n(u,0),h=0;h<c.length;h++)r=u.substr(c[h],2),t=i(u,c[h]),\"81\"===r&&(e=Dr(t),a.push([\"MAIL\",e])),\"82\"===r&&(e=Dr(t),a.push([\"DNS\",e])),\"84\"===r&&(e=on.hex2dn(t,0),a.push([\"DN\",e])),\"86\"===r&&(e=Dr(t),a.push([\"URI\",e])),\"87\"===r&&(e=zr(t),a.push([\"IP\",e]));return a},this.getExtCRLDistributionPoints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"cRLDistributionPoints\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"cRLDistributionPoints\",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]);i.array.push(this.getDistributionPoint(u))}return i},this.getDistributionPoint=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);\"a0\"==s&&(e.dpname=this.getDistributionPointName(a))}return e},this.getDistributionPointName=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);\"a0\"==s&&(e.full=this.getGeneralNames(a))}return e},this.getExtCRLDistributionPointsURI=function(){var t=this.getExtInfo(\"cRLDistributionPoints\");if(void 0===t)return t;for(var e=new Array,r=n(this.hex,t.vidx),i=0;i<r.length;i++)try{var o=Dr(s(this.hex,r[i],[0,0,0],\"86\"));e.push(o)}catch(t){}return e},this.getExtAIAInfo=function(){var t=this.getExtInfo(\"authorityInfoAccess\");if(void 0===t)return t;for(var e={ocsp:[],caissuer:[]},r=n(this.hex,t.vidx),i=0;i<r.length;i++){var o=s(this.hex,r[i],[0],\"06\"),a=s(this.hex,r[i],[1],\"86\");\"2b06010505073001\"===o&&e.ocsp.push(Dr(a)),\"2b06010505073002\"===o&&e.caissuer.push(Dr(a))}return e},this.getExtAuthorityInfoAccess=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"authorityInfoAccess\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"authorityInfoAccess\",array:[]};e&&(i.critical=!0);for(var u=n(t,0),c=0;c<u.length;c++){var h=a(t,u[c],[0],\"06\"),l=Dr(s(t,u[c],[1],\"86\"));if(\"2b06010505073001\"==h)i.array.push({ocsp:l});else{if(\"2b06010505073002\"!=h)throw new Error(\"unknown method: \"+h);i.array.push({caissuer:l})}}return i},this.getExtCertificatePolicies=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"certificatePolicies\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"certificatePolicies\",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]),c=this.getPolicyInformation(u);i.array.push(c)}return i},this.getPolicyInformation=function(t){var e={},r=s(t,0,[0],\"06\");e.policyoid=d(r);var i=l(t,0,[1],\"30\");if(-1!=i){e.array=[];for(var a=n(t,i),u=0;u<a.length;u++){var c=o(t,a[u]),h=this.getPolicyQualifierInfo(c);e.array.push(h)}}return e},this.getPolicyQualifierInfo=function(t){var e={},r=s(t,0,[0],\"06\");if(\"2b06010505070201\"===r){var n=a(t,0,[1],\"16\");e.cps=Lr(n)}else if(\"2b06010505070202\"===r){var i=u(t,0,[1],\"30\");e.unotice=this.getUserNotice(i)}return e},this.getUserNotice=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]);\"30\"!=s.substr(0,2)&&(e.exptext=this.getDisplayText(s))}return e},this.getDisplayText=function(t){var e={};return e.type={\"0c\":\"utf8\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"}[t.substr(0,2)],e.str=Lr(i(t,0)),e},this.getExtCRLNumber=function(t,e){var r={extname:\"cRLNumber\"};if(e&&(r.critical=!0),\"02\"==t.substr(0,2))return r.num={hex:i(t,0)},r;throw new Error(\"hExtV parse error: \"+t)},this.getExtCRLReason=function(t,e){var r={extname:\"cRLReason\"};if(e&&(r.critical=!0),\"0a\"==t.substr(0,2))return r.code=parseInt(i(t,0),16),r;throw new Error(\"hExtV parse error: \"+t)},this.getExtOcspNonce=function(t,e){var r={extname:\"ocspNonce\"};e&&(r.critical=!0);var n=i(t,0);return r.hex=n,r},this.getExtOcspNoCheck=function(t,e){var r={extname:\"ocspNoCheck\"};return e&&(r.critical=!0),r},this.getExtAdobeTimeStamp=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"adobeTimeStamp\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"adobeTimeStamp\"};e&&(i.critical=!0);var s=n(t,0);if(s.length>1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);\"0101ff\"==c&&(i.reqauth=!0),\"010100\"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n<t.length;n++)for(var i=t[n],o=0;o<i.length;o++)r.push(i[o]);for(n=0;n<r.length;n++){var s=r[n],a=s.ds,u=s.value,c=s.type;if(\":\"+a,\"prn\"!=a&&\"utf8\"!=a&&\"ia5\"!=a)return\"mixed\";if(\"ia5\"==a){if(\"CN\"!=c)return\"mixed\";if(Sr.lang.String.isMail(u))continue;return\"mixed\"}if(\"C\"==c){if(\"prn\"==a)continue;return\"mixed\"}if(\":\"+a,null==e)e=a;else if(e!==a)return\"mixed\"}return null==e?\"prn\":e},this.getX500Name=function(t){var e=this.getX500NameArray(t);return{array:e,str:this.dnarraytostr(e)}},this.getX500NameArray=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getRDN(o(t,r[i])));return e},this.getRDN=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getAttrTypeAndValue(o(t,r[i])));return e},this.getAttrTypeAndValue=function(t){var e={type:null,value:null,ds:null},r=n(t,0),i=s(t,r[0],[],\"06\"),o=s(t,r[1],[]),a=Sr.asn1.ASN1Util.oidHexToInt(i);return e.type=Sr.asn1.x509.OID.oid2atype(a),e.ds=this.HEX2STAG[t.substr(r[1],2)],\"bmp\"!=e.ds?e.value=Dr(o):e.value=Yr(o),e},this.readCertPEM=function(t){this.readCertHex(v(t))},this.readCertHex=function(t){this.hex=t,this.getVersion();try{h(this.hex,0,[0,7],\"a3\"),this.parseExt()}catch(t){}},this.getParam=function(){var t={};return t.version=this.getVersion(),t.serial={hex:this.getSerialNumberHex()},t.sigalg=this.getSignatureAlgorithmField(),t.issuer=this.getIssuer(),t.notbefore=this.getNotBefore(),t.notafter=this.getNotAfter(),t.subject=this.getSubject(),t.sbjpubkey=jr(this.getPublicKeyHex(),\"PUBLIC KEY\"),this.aExtInfo.length>0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=l(this.hex,0,[0,\"[3]\"])&&(t=c(this.hex,0,[0,\"[3]\",0],\"30\")));for(var e=[],r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]),a=this.getExtParam(s);null!=a&&e.push(a)}return e},this.getExtParam=function(t){var e=n(t,0).length;if(2!=e&&3!=e)throw new Error(\"wrong number elements in Extension: \"+e+\" \"+t);var r=p(s(t,0,[0],\"06\")),i=!1;3==e&&\"0101ff\"==u(t,0,[1])&&(i=!0);var o=u(t,0,[e-1,0]),a=void 0;if(\"2.5.29.14\"==r?a=this.getExtSubjectKeyIdentifier(o,i):\"2.5.29.15\"==r?a=this.getExtKeyUsage(o,i):\"2.5.29.17\"==r?a=this.getExtSubjectAltName(o,i):\"2.5.29.18\"==r?a=this.getExtIssuerAltName(o,i):\"2.5.29.19\"==r?a=this.getExtBasicConstraints(o,i):\"2.5.29.31\"==r?a=this.getExtCRLDistributionPoints(o,i):\"2.5.29.32\"==r?a=this.getExtCertificatePolicies(o,i):\"2.5.29.35\"==r?a=this.getExtAuthorityKeyIdentifier(o,i):\"2.5.29.37\"==r?a=this.getExtExtKeyUsage(o,i):\"1.3.6.1.5.5.7.1.1\"==r?a=this.getExtAuthorityInfoAccess(o,i):\"2.5.29.20\"==r?a=this.getExtCRLNumber(o,i):\"2.5.29.21\"==r?a=this.getExtCRLReason(o,i):\"1.3.6.1.5.5.7.48.1.2\"==r?a=this.getExtOcspNonce(o,i):\"1.3.6.1.5.5.7.48.1.5\"==r?a=this.getExtOcspNoCheck(o,i):\"1.2.840.113583.1.1.9.1\"==r&&(a=this.getExtAdobeTimeStamp(o,i)),null!=a)return a;var c={extname:r,extn:o};return i&&(c.critical=!0),c},this.findExt=function(t,e){for(var r=0;r<t.length;r++)if(t[r].extname==e)return t[r];return null},this.updateExtCDPFullURI=function(t,e){var r=this.findExt(t,\"cRLDistributionPoints\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)if(null!=n[i].dpname&&null!=n[i].dpname.full)for(var o=n[i].dpname.full,s=0;s<o.length;s++){var a=o[i];null!=a.uri&&(a.uri=e)}},this.updateExtAIAOCSP=function(t,e){var r=this.findExt(t,\"authorityInfoAccess\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)null!=n[i].ocsp&&(n[i].ocsp=e)},this.updateExtAIACAIssuer=function(t,e){var r=this.findExt(t,\"authorityInfoAccess\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)null!=n[i].caissuer&&(n[i].caissuer=e)},this.dnarraytostr=function(t){return\"/\"+t.map((function(t){return function e(t){return t.map((function(t){return function e(t){return t.type+\"=\"+t.value}(t).replace(/\\+/,\"\\\\+\")})).join(\"+\")}(t).replace(/\\//,\"\\\\/\")})).join(\"/\")},this.getInfo=function(){var t,e,r,n=function t(e){return JSON.stringify(e.array).replace(/[\\[\\]\\{\\}\\\"]/g,\"\")},i=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];if(r+=\" policy oid: \"+o.policyoid+\"\\n\",void 0!==o.array)for(var s=0;s<o.array.length;s++){var a=o.array[s];void 0!==a.cps&&(r+=\" cps: \"+a.cps+\"\\n\")}}return r},o=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];try{void 0!==o.dpname.full[0].uri&&(r+=\" \"+o.dpname.full[0].uri+\"\\n\")}catch(t){}try{void 0!==o.dname.full[0].dn.hex&&(r+=\" \"+on.hex2dn(o.dpname.full[0].dn.hex)+\"\\n\")}catch(t){}}return r},s=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];void 0!==o.caissuer&&(r+=\" caissuer: \"+o.caissuer+\"\\n\"),void 0!==o.ocsp&&(r+=\" ocsp: \"+o.ocsp+\"\\n\")}return r};if(t=\"Basic Fields\\n\",t+=\" serial number: \"+this.getSerialNumberHex()+\"\\n\",t+=\" signature algorithm: \"+this.getSignatureAlgorithmField()+\"\\n\",t+=\" issuer: \"+this.getIssuerString()+\"\\n\",t+=\" notBefore: \"+this.getNotBefore()+\"\\n\",t+=\" notAfter: \"+this.getNotAfter()+\"\\n\",t+=\" subject: \"+this.getSubjectString()+\"\\n\",t+=\" subject public key info: \\n\",t+=\" key algorithm: \"+(e=this.getPublicKey()).type+\"\\n\",\"RSA\"===e.type&&(t+=\" n=\"+$r(e.n.toString(16)).substr(0,16)+\"...\\n\",t+=\" e=\"+$r(e.e.toString(16))+\"\\n\"),null!=(r=this.aExtInfo)){t+=\"X509v3 Extensions:\\n\";for(var a=0;a<r.length;a++){var u=r[a],c=Sr.asn1.x509.OID.oid2name(u.oid);\"\"===c&&(c=u.oid);var h=\"\";if(!0===u.critical&&(h=\"CRITICAL\"),t+=\" \"+c+\" \"+h+\":\\n\",\"basicConstraints\"===c){var l=this.getExtBasicConstraints();void 0===l.cA?t+=\" {}\\n\":(t+=\" cA=true\",void 0!==l.pathLen&&(t+=\", pathLen=\"+l.pathLen),t+=\"\\n\")}else if(\"keyUsage\"===c)t+=\" \"+this.getExtKeyUsageString()+\"\\n\";else if(\"subjectKeyIdentifier\"===c)t+=\" \"+this.getExtSubjectKeyIdentifier().kid.hex+\"\\n\";else if(\"authorityKeyIdentifier\"===c){var f=this.getExtAuthorityKeyIdentifier();void 0!==f.kid&&(t+=\" kid=\"+f.kid.hex+\"\\n\")}else{if(\"extKeyUsage\"===c)t+=\" \"+this.getExtExtKeyUsage().array.join(\", \")+\"\\n\";else if(\"subjectAltName\"===c)t+=\" \"+n(this.getExtSubjectAltName())+\"\\n\";else if(\"cRLDistributionPoints\"===c)t+=o(this.getExtCRLDistributionPoints());else if(\"authorityInfoAccess\"===c)t+=s(this.getExtAuthorityInfoAccess());else\"certificatePolicies\"===c&&(t+=i(this.getExtCertificatePolicies()))}}}return t+=\"signature algorithm: \"+this.getSignatureAlgorithmName()+\"\\n\",t+=\"signature: \"+this.getSignatureValueHex().substr(0,16)+\"...\\n\"},\"string\"==typeof t&&(-1!=t.indexOf(\"-----BEGIN\")?this.readCertPEM(t):Sr.lang.String.isHex(t)&&this.readCertHex(t))}Me.prototype.sign=function(t,e){var r=function t(r){return Sr.crypto.Util.hashString(r,e)}(t);return this.signWithMessageHash(r,e)},Me.prototype.signWithMessageHash=function(t,e){var r=Oe(Sr.crypto.Util.getPaddedDigestInfoHex(t,e,this.n.bitLength()),16);return en(this.doPrivate(r).toString(16),this.n.bitLength())},Me.prototype.signPSS=function(t,e,r){var n=function t(r){return Sr.crypto.Util.hashHex(r,e)}(Nr(t));return void 0===r&&(r=-1),this.signWithMessageHashPSS(n,e,r)},Me.prototype.signWithMessageHashPSS=function(t,e,r){var n,i=Lr(t),o=i.length,s=this.n.bitLength()-1,a=Math.ceil(s/8),u=function t(r){return Sr.crypto.Util.hashHex(r,e)};if(-1===r||void 0===r)r=o;else if(-2===r)r=a-o-2;else if(r<-2)throw new Error(\"invalid salt length\");if(a<o+r+2)throw new Error(\"data too long\");var c=\"\";r>0&&(c=new Array(r),(new Be).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Lr(u(Nr(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+i+c))),l=[];for(n=0;n<a-r-o-2;n+=1)l[n]=0;var f=String.fromCharCode.apply(String,l)+\"\u0001\"+c,g=rn(h,f.length,u),d=[];for(n=0;n<f.length;n+=1)d[n]=f.charCodeAt(n)^g.charCodeAt(n);var p=65280>>8*a-s&255;for(d[0]&=~p,n=0;n<o;n++)d.push(h.charCodeAt(n));return d.push(188),en(this.doPrivate(new w(d)).toString(16),this.n.bitLength())},Me.prototype.verify=function(t,e){if(null==(e=e.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var r=Oe(e,16),n=this.n.bitLength();if(r.bitLength()>n)return!1;var i=this.doPublic(r).toString(16);if(i.length+3!=n/4)return!1;var o=nn(i.replace(/^1f+00/,\"\"));if(0==o.length)return!1;var s=o[0];return o[1]==function t(e){return Sr.crypto.Util.hashString(e,s)}(t)},Me.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=Oe(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;n[0];return n[1]==t},Me.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return Sr.crypto.Util.hashHex(e,r)}(Nr(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},Me.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new w(e,16),s=function t(e){return Sr.crypto.Util.hashHex(e,r)},a=Lr(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error(\"invalid salt length\");if(h<u+n+2)throw new Error(\"data too long\");var l=this.doPublic(o).toByteArray();for(i=0;i<l.length;i+=1)l[i]&=255;for(;l.length<h;)l.unshift(0);if(188!==l[h-1])throw new Error(\"encoded message does not end in 0xbc\");var f=(l=String.fromCharCode.apply(String,l)).substr(0,h-u-1),g=l.substr(f.length,u),d=65280>>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error(\"bits beyond keysize not zero\");var p=rn(g,f.length,s),v=[];for(i=0;i<f.length;i+=1)v[i]=f.charCodeAt(i)^p.charCodeAt(i);v[0]&=~d;var y=h-u-n-2;for(i=0;i<y;i+=1)if(0!==v[i])throw new Error(\"leftmost octets not zero\");if(1!==v[y])throw new Error(\"0x01 marker not found\");return g===Lr(s(Nr(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+a+String.fromCharCode.apply(String,v.slice(-n)))))},Me.SALT_LEN_HLEN=-1,Me.SALT_LEN_MAX=-2,Me.SALT_LEN_RECOVER=-2,on.hex2dn=function(t,e){void 0===e&&(e=0);var r=new on;Fr.getTLV(t,e);return r.getX500Name(t).str},on.hex2rdn=function(t,e){if(void 0===e&&(e=0),\"31\"!==t.substr(e,2))throw new Error(\"malformed RDN\");for(var r=new Array,n=Fr.getChildIdx(t,e),i=0;i<n.length;i++)r.push(on.hex2attrTypeValue(t,n[i]));return(r=r.map((function(t){return t.replace(\"+\",\"\\\\+\")}))).join(\"+\")},on.hex2attrTypeValue=function(t,e){var r=Fr,n=r.getV;if(void 0===e&&(e=0),\"30\"!==t.substr(e,2))throw new Error(\"malformed attribute type and value\");var i=r.getChildIdx(t,e);2!==i.length||t.substr(i[0],2);var o=n(t,i[0]),s=Sr.asn1.ASN1Util.oidHexToInt(o);return Sr.asn1.x509.OID.oid2atype(s)+\"=\"+Lr(n(t,i[1]))},on.getPublicKeyFromCertHex=function(t){var e=new on;return e.readCertHex(t),e.getPublicKey()},on.getPublicKeyFromCertPEM=function(t){var e=new on;return e.readCertPEM(t),e.getPublicKey()},on.getPublicKeyInfoPropOfCertPEM=function(t){var e,r,n=Fr.getVbyList,i={};return i.algparam=null,(e=new on).readCertPEM(t),r=e.getPublicKeyHex(),i.keyhex=n(r,0,[1],\"03\").substr(2),i.algoid=n(r,0,[0,0],\"06\"),\"2a8648ce3d0201\"===i.algoid&&(i.algparam=n(r,0,[0,1],\"06\")),i},on.KEYUSAGE_NAME=[\"digitalSignature\",\"nonRepudiation\",\"keyEncipherment\",\"dataEncipherment\",\"keyAgreement\",\"keyCertSign\",\"cRLSign\",\"encipherOnly\",\"decipherOnly\"],void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.jws&&Sr.jws||(Sr.jws={}),Sr.jws.JWS=function(){var t=Sr.jws.JWS.isSafeJSONString;this.parseJWS=function(e,r){if(void 0===this.parsedJWS||!r&&void 0===this.parsedJWS.sigvalH){var n=e.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/);if(null==n)throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\";var i=n[1],o=n[2],s=n[3],a=i+\".\"+o;if(this.parsedJWS={},this.parsedJWS.headB64U=i,this.parsedJWS.payloadB64U=o,this.parsedJWS.sigvalB64U=s,this.parsedJWS.si=a,!r){var u=Rr(s),c=Oe(u,16);this.parsedJWS.sigvalH=u,this.parsedJWS.sigvalBI=c}var h=wr(i),l=wr(o);if(this.parsedJWS.headS=h,this.parsedJWS.payloadS=l,!t(h,this.parsedJWS,\"headP\"))throw\"malformed JSON string for JWS Head: \"+h}}},Sr.jws.JWS.sign=function(t,e,r,n,i){var o,s,a,u=Sr,c=u.jws.JWS,h=c.readSafeJSONString,l=c.isSafeJSONString,f=u.crypto,d=(f.ECDSA,f.Mac),p=f.Signature,v=JSON;if(\"string\"!=typeof e&&\"object\"!=(void 0===e?\"undefined\":g(e)))throw\"spHeader must be JSON string or object: \"+e;if(\"object\"==(void 0===e?\"undefined\":g(e))&&(s=e,o=v.stringify(s)),\"string\"==typeof e){if(!l(o=e))throw\"JWS Head is not safe JSON string: \"+o;s=h(o)}if(a=r,\"object\"==(void 0===r?\"undefined\":g(r))&&(a=v.stringify(r)),\"\"!=t&&null!=t||void 0===s.alg||(t=s.alg),\"\"!=t&&null!=t&&void 0===s.alg&&(s.alg=t,o=v.stringify(s)),t!==s.alg)throw\"alg and sHeader.alg doesn't match: \"+t+\"!=\"+s.alg;var y=null;if(void 0===c.jwsalg2sigalg[t])throw\"unsupported alg name: \"+t;y=c.jwsalg2sigalg[t];var m=br(o)+\".\"+br(a),_=\"\";if(\"Hmac\"==y.substr(0,4)){if(void 0===n)throw\"mac key shall be specified for HS* alg\";var S=new d({alg:y,prov:\"cryptojs\",pass:n});S.updateString(m),_=S.doFinal()}else if(-1!=y.indexOf(\"withECDSA\")){(w=new p({alg:y})).init(n,i),w.updateString(m);var b=w.sign();_=Sr.crypto.ECDSA.asn1SigToConcatSig(b)}else{var w;if(\"none\"!=y)(w=new p({alg:y})).init(n,i),w.updateString(m),_=w.sign()}return m+\".\"+Tr(_)},Sr.jws.JWS.verify=function(t,e,r){var n,i=Sr,o=i.jws.JWS,s=o.readSafeJSONString,a=i.crypto,u=a.ECDSA,c=a.Mac,h=a.Signature;void 0!==g(Me)&&(n=Me);var l=t.split(\".\");if(3!==l.length)return!1;var f=l[0]+\".\"+l[1],d=Rr(l[2]),p=s(wr(l[0])),v=null,y=null;if(void 0===p.alg)throw\"algorithm not specified in header\";if((y=(v=p.alg).substr(0,2),null!=r&&\"[object Array]\"===Object.prototype.toString.call(r)&&r.length>0)&&-1==(\":\"+r.join(\":\")+\":\").indexOf(\":\"+v+\":\"))throw\"algorithm '\"+v+\"' not accepted in the list\";if(\"none\"!=v&&null===e)throw\"key shall be specified to verify.\";if(\"string\"==typeof e&&-1!=e.indexOf(\"-----BEGIN \")&&(e=tn.getKey(e)),!(\"RS\"!=y&&\"PS\"!=y||e instanceof n))throw\"key shall be a RSAKey obj for RS* and PS* algs\";if(\"ES\"==y&&!(e instanceof u))throw\"key shall be a ECDSA obj for ES* algs\";var m=null;if(void 0===o.jwsalg2sigalg[p.alg])throw\"unsupported alg name: \"+v;if(\"none\"==(m=o.jwsalg2sigalg[v]))throw\"not supported\";if(\"Hmac\"==m.substr(0,4)){if(void 0===e)throw\"hexadecimal key shall be specified for HMAC\";var _=new c({alg:m,pass:e});return _.updateString(f),d==_.doFinal()}if(-1!=m.indexOf(\"withECDSA\")){var S,b=null;try{b=u.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new h({alg:m})).init(e),S.updateString(f),S.verify(b)}return(S=new h({alg:m})).init(e),S.updateString(f),S.verify(d)},Sr.jws.JWS.parse=function(t){var e,r,n,i=t.split(\".\"),o={};if(2!=i.length&&3!=i.length)throw\"malformed sJWS: wrong number of '.' splitted elements\";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=Sr.jws.JWS.readSafeJSONString(wr(e)),o.payloadObj=Sr.jws.JWS.readSafeJSONString(wr(r)),o.headerPP=JSON.stringify(o.headerObj,null,\" \"),null==o.payloadObj?o.payloadPP=wr(r):o.payloadPP=JSON.stringify(o.payloadObj,null,\" \"),void 0!==n&&(o.sigHex=Rr(n)),o},Sr.jws.JWS.verifyJWT=function(t,e,r){var n=Sr.jws,i=n.JWS,o=i.readSafeJSONString,s=i.inArray,a=i.includedArray,u=t.split(\".\"),c=u[0],h=u[1],l=(Rr(u[2]),o(wr(c))),f=o(wr(h));if(void 0===l.alg)return!1;if(void 0===r.alg)throw\"acceptField.alg shall be specified\";if(!s(l.alg,r.alg))return!1;if(void 0!==f.iss&&\"object\"===g(r.iss)&&!s(f.iss,r.iss))return!1;if(void 0!==f.sub&&\"object\"===g(r.sub)&&!s(f.sub,r.sub))return!1;if(void 0!==f.aud&&\"object\"===g(r.aud))if(\"string\"==typeof f.aud){if(!s(f.aud,r.aud))return!1}else if(\"object\"==g(f.aud)&&!a(f.aud,r.aud))return!1;var d=n.IntDate.getNow();return void 0!==r.verifyAt&&\"number\"==typeof r.verifyAt&&(d=r.verifyAt),void 0!==r.gracePeriod&&\"number\"==typeof r.gracePeriod||(r.gracePeriod=0),!(void 0!==f.exp&&\"number\"==typeof f.exp&&f.exp+r.gracePeriod<d)&&(!(void 0!==f.nbf&&\"number\"==typeof f.nbf&&d<f.nbf-r.gracePeriod)&&(!(void 0!==f.iat&&\"number\"==typeof f.iat&&d<f.iat-r.gracePeriod)&&((void 0===f.jti||void 0===r.jti||f.jti===r.jti)&&!!i.verify(t,e,r.alg))))},Sr.jws.JWS.includedArray=function(t,e){var r=Sr.jws.JWS.inArray;if(null===t)return!1;if(\"object\"!==(void 0===t?\"undefined\":g(t)))return!1;if(\"number\"!=typeof t.length)return!1;for(var n=0;n<t.length;n++)if(!r(t[n],e))return!1;return!0},Sr.jws.JWS.inArray=function(t,e){if(null===e)return!1;if(\"object\"!==(void 0===e?\"undefined\":g(e)))return!1;if(\"number\"!=typeof e.length)return!1;for(var r=0;r<e.length;r++)if(e[r]==t)return!0;return!1},Sr.jws.JWS.jwsalg2sigalg={HS256:\"HmacSHA256\",HS384:\"HmacSHA384\",HS512:\"HmacSHA512\",RS256:\"SHA256withRSA\",RS384:\"SHA384withRSA\",RS512:\"SHA512withRSA\",ES256:\"SHA256withECDSA\",ES384:\"SHA384withECDSA\",PS256:\"SHA256withRSAandMGF1\",PS384:\"SHA384withRSAandMGF1\",PS512:\"SHA512withRSAandMGF1\",none:\"none\"},Sr.jws.JWS.isSafeJSONString=function(t,e,r){var n=null;try{return\"object\"!=(void 0===(n=_r(t))?\"undefined\":g(n))||n.constructor===Array?0:(e&&(e[r]=n),1)}catch(t){return 0}},Sr.jws.JWS.readSafeJSONString=function(t){var e=null;try{return\"object\"!=(void 0===(e=_r(t))?\"undefined\":g(e))||e.constructor===Array?null:e}catch(t){return null}},Sr.jws.JWS.getEncodedSignatureValueFromJWS=function(t){var e=t.match(/^[^.]+\\.[^.]+\\.([^.]+)$/);if(null==e)throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\";return e[1]},Sr.jws.JWS.getJWKthumbprint=function(t){if(\"RSA\"!==t.kty&&\"EC\"!==t.kty&&\"oct\"!==t.kty)throw\"unsupported algorithm for JWK Thumprint\";var e=\"{\";if(\"RSA\"===t.kty){if(\"string\"!=typeof t.n||\"string\"!=typeof t.e)throw\"wrong n and e value for RSA key\";e+='\"e\":\"'+t.e+'\",',e+='\"kty\":\"'+t.kty+'\",',e+='\"n\":\"'+t.n+'\"}'}else if(\"EC\"===t.kty){if(\"string\"!=typeof t.crv||\"string\"!=typeof t.x||\"string\"!=typeof t.y)throw\"wrong crv, x and y value for EC key\";e+='\"crv\":\"'+t.crv+'\",',e+='\"kty\":\"'+t.kty+'\",',e+='\"x\":\"'+t.x+'\",',e+='\"y\":\"'+t.y+'\"}'}else if(\"oct\"===t.kty){if(\"string\"!=typeof t.k)throw\"wrong k value for oct(symmetric) key\";e+='\"kty\":\"'+t.kty+'\",',e+='\"k\":\"'+t.k+'\"}'}var r=Nr(e);return Tr(Sr.crypto.Util.hashHex(r,\"sha256\"))},Sr.jws.IntDate={},Sr.jws.IntDate.get=function(t){var e=Sr.jws.IntDate,r=e.getNow,n=e.getZulu;if(\"now\"==t)return r();if(\"now + 1hour\"==t)return r()+3600;if(\"now + 1day\"==t)return r()+86400;if(\"now + 1month\"==t)return r()+2592e3;if(\"now + 1year\"==t)return r()+31536e3;if(t.match(/Z$/))return n(t);if(t.match(/^[0-9]+$/))return parseInt(t);throw\"unsupported format: \"+t},Sr.jws.IntDate.getZulu=function(t){return Vr(t)},Sr.jws.IntDate.getNow=function(){return~~(new Date/1e3)},Sr.jws.IntDate.intDate2UTCString=function(t){return new Date(1e3*t).toUTCString()},Sr.jws.IntDate.intDate2Zulu=function(t){var e=new Date(1e3*t);return(\"0000\"+e.getUTCFullYear()).slice(-4)+(\"00\"+(e.getUTCMonth()+1)).slice(-2)+(\"00\"+e.getUTCDate()).slice(-2)+(\"00\"+e.getUTCHours()).slice(-2)+(\"00\"+e.getUTCMinutes()).slice(-2)+(\"00\"+e.getUTCSeconds()).slice(-2)+\"Z\"},e.SecureRandom=Be,e.rng_seed_time=Re,e.BigInteger=w,e.RSAKey=Me;var sn=Sr.crypto.EDSA;e.EDSA=sn;var an=Sr.crypto.DSA;e.DSA=an;var un=Sr.crypto.Signature;e.Signature=un;var cn=Sr.crypto.MessageDigest;e.MessageDigest=cn;var hn=Sr.crypto.Mac;e.Mac=hn;var ln=Sr.crypto.Cipher;e.Cipher=ln,e.KEYUTIL=tn,e.ASN1HEX=Fr,e.X509=on,e.CryptoJS=v,e.b64tohex=S,e.b64toBA=b,e.stoBA=Er,e.BAtos=xr,e.BAtohex=Ar,e.stohex=kr,e.stob64=function fn(t){return _(kr(t))},e.stob64u=function gn(t){return Pr(_(kr(t)))},e.b64utos=function dn(t){return xr(b(Cr(t)))},e.b64tob64u=Pr,e.b64utob64=Cr,e.hex2b64=_,e.hextob64u=Tr,e.b64utohex=Rr,e.utf8tob64u=br,e.b64utoutf8=wr,e.utf8tob64=function pn(t){return _(Kr(Gr(t)))},e.b64toutf8=function vn(t){return decodeURIComponent(qr(S(t)))},e.utf8tohex=Ir,e.hextoutf8=Dr,e.hextorstr=Lr,e.rstrtohex=Nr,e.hextob64=Ur,e.hextob64nl=Br,e.b64nltohex=Or,e.hextopem=jr,e.pemtohex=Mr,e.hextoArrayBuffer=function yn(t){if(t.length%2!=0)throw\"input is not even length\";if(null==t.match(/^[0-9A-Fa-f]+$/))throw\"input is not hexadecimal\";for(var e=new ArrayBuffer(t.length/2),r=new DataView(e),n=0;n<t.length/2;n++)r.setUint8(n,parseInt(t.substr(2*n,2),16));return e},e.ArrayBuffertohex=function mn(t){for(var e=\"\",r=new DataView(t),n=0;n<t.byteLength;n++)e+=(\"00\"+r.getUint8(n).toString(16)).slice(-2);return e},e.zulutomsec=Hr,e.zulutosec=Vr,e.zulutodate=function _n(t){return new Date(Hr(t))},e.datetozulu=function Sn(t,e,r){var n,i=t.getUTCFullYear();if(e){if(i<1950||2049<i)throw\"not proper year for UTCTime: \"+i;n=(\"\"+i).slice(-2)}else n=(\"000\"+i).slice(-4);if(n+=(\"0\"+(t.getUTCMonth()+1)).slice(-2),n+=(\"0\"+t.getUTCDate()).slice(-2),n+=(\"0\"+t.getUTCHours()).slice(-2),n+=(\"0\"+t.getUTCMinutes()).slice(-2),n+=(\"0\"+t.getUTCSeconds()).slice(-2),r){var o=t.getUTCMilliseconds();0!==o&&(n+=\".\"+(o=(o=(\"00\"+o).slice(-3)).replace(/0+$/g,\"\")))}return n+=\"Z\"},e.uricmptohex=Kr,e.hextouricmp=qr,e.ipv6tohex=Jr,e.hextoipv6=Wr,e.hextoip=zr,e.iptohex=function bn(t){var e=\"malformed IP address\";if(!(t=t.toLowerCase(t)).match(/^[0-9.]+$/)){if(t.match(/^[0-9a-f:]+$/)&&-1!==t.indexOf(\":\"))return Jr(t);throw e}var r=t.split(\".\");if(4!==r.length)throw e;var n=\"\";try{for(var i=0;i<4;i++){n+=(\"0\"+parseInt(r[i]).toString(16)).slice(-2)}return n}catch(t){throw e}},e.encodeURIComponentAll=Gr,e.newline_toUnix=function wn(t){return t=t.replace(/\\r\\n/gm,\"\\n\")},e.newline_toDos=function Fn(t){return t=(t=t.replace(/\\r\\n/gm,\"\\n\")).replace(/\\n/gm,\"\\r\\n\")},e.hextoposhex=$r,e.intarystrtohex=function En(t){t=(t=(t=t.replace(/^\\s*\\[\\s*/,\"\")).replace(/\\s*\\]\\s*$/,\"\")).replace(/\\s*/g,\"\");try{return t.split(/,/).map((function(t,e,r){var n=parseInt(t);if(n<0||255<n)throw\"integer not in range 0-255\";return(\"00\"+n.toString(16)).slice(-2)})).join(\"\")}catch(t){throw\"malformed integer array string: \"+t}},e.strdiffidx=function t(e,r){var n=e.length;e.length>r.length&&(n=r.length);for(var i=0;i<n;i++)if(e.charCodeAt(i)!=r.charCodeAt(i))return i;return e.length!=r.length?n:-1},e.KJUR=Sr;var xn=Sr.crypto;e.crypto=xn;var An=Sr.asn1;e.asn1=An;var kn=Sr.jws;e.jws=kn;var Pn=Sr.lang;e.lang=Pn}).call(this,r(28).Buffer)},function(t,e,r){\"use strict\";(function(t){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\nvar n=r(30),i=r(31),o=r(32);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()<e)throw new RangeError(\"Invalid typed array length\");return u.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=u.prototype:(null===t&&(t=new u(e)),t.length=e),t}function u(t,e,r){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(t,e,r);if(\"number\"==typeof t){if(\"string\"==typeof e)throw new Error(\"If encoding is specified then the first argument must be a string\");return l(this,t)}return c(this,t,e,r)}function c(t,e,r,n){if(\"number\"==typeof e)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function i(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError(\"'offset' is out of bounds\");if(e.byteLength<r+(n||0))throw new RangeError(\"'length' is out of bounds\");e=void 0===r&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,r):new Uint8Array(e,r,n);u.TYPED_ARRAY_SUPPORT?(t=e).__proto__=u.prototype:t=f(t,e);return t}(t,e,r,n):\"string\"==typeof e?function s(t,e,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!u.isEncoding(r))throw new TypeError('\"encoding\" must be a valid string encoding');var n=0|d(e,r),i=(t=a(t,n)).write(e,r);i!==n&&(t=t.slice(0,i));return t}(t,e,r):function c(t,e){if(u.isBuffer(e)){var r=0|g(e.length);return 0===(t=a(t,r)).length||e.copy(t,0,0,r),t}if(e){if(\"undefined\"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||\"length\"in e)return\"number\"!=typeof e.length||function n(t){return t!=t}(e.length)?a(t,0):f(t,e);if(\"Buffer\"===e.type&&o(e.data))return f(t,e.data)}throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}(t,e)}function h(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be a number');if(t<0)throw new RangeError('\"size\" argument must not be negative')}function l(t,e){if(h(e),t=a(t,e<0?0:0|g(e)),!u.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}function f(t,e){var r=e.length<0?0:0|g(e.length);t=a(t,r);for(var n=0;n<r;n+=1)t[n]=255&e[n];return t}function g(t){if(t>=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return K(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return q(t).length;default:if(n)return K(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return I(this,e,r);case\"utf8\":case\"utf-8\":return A(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return R(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;o<a;o++)if(c(t,o)===c(e,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===u)return h*s}else-1!==h&&(o-=o-h),h=-1}else for(r+u>a&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;f<u;f++)if(c(t,o+f)!==c(e,f)){l=!1;break}if(l)return o}return-1}function _(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s<n;++s){var a=parseInt(e.substr(2*s,2),16);if(isNaN(a))return s;t[r+s]=a}return s}function S(t,e,r,n){return J(K(e,t.length-r),t,r,n)}function b(t,e,r,n){return J(function i(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function w(t,e,r,n){return b(t,e,r,n)}function F(t,e,r,n){return J(q(e),t,r,n)}function E(t,e,r,n){return J(function i(t,e){for(var r,n,i,o=[],s=0;s<t.length&&!((e-=2)<0);++s)n=(r=t.charCodeAt(s))>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var o,s,a,u,c=t[i],h=null,l=c>239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function f(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=C));return r}(n)}e.Buffer=u,e.SlowBuffer=function k(t){+t!=t&&(t=0);return u.alloc(+t)},e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function P(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&\"function\"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=s(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,r){return c(null,t,e,r)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,r){return function n(t,e,r,i){return h(e),e<=0?a(t,e):void 0!==r?\"string\"==typeof i?a(t,e).fill(r,i):a(t,e).fill(r):a(t,e)}(null,t,e,r)},u.allocUnsafe=function(t){return l(null,t)},u.allocUnsafeSlow=function(t){return l(null,t)},u.isBuffer=function t(e){return!(null==e||!e._isBuffer)},u.compare=function t(e,r){if(!u.isBuffer(e)||!u.isBuffer(r))throw new TypeError(\"Arguments must be Buffers\");if(e===r)return 0;for(var n=e.length,i=r.length,o=0,s=Math.min(n,i);o<s;++o)if(e[o]!==r[o]){n=e[o],i=r[o];break}return n<i?-1:i<n?1:0},u.isEncoding=function t(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},u.concat=function t(e,r){if(!o(e))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===r)for(r=0,n=0;n<e.length;++n)r+=e[n].length;var i=u.allocUnsafe(r),s=0;for(n=0;n<e.length;++n){var a=e[n];if(!u.isBuffer(a))throw new TypeError('\"list\" argument must be an Array of Buffers');a.copy(i,s),s+=a.length}return i},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function t(){var e=this.length;if(e%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var r=0;r<e;r+=2)v(this,r,r+1);return this},u.prototype.swap32=function t(){var e=this.length;if(e%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var r=0;r<e;r+=4)v(this,r,r+3),v(this,r+1,r+2);return this},u.prototype.swap64=function t(){var e=this.length;if(e%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var r=0;r<e;r+=8)v(this,r,r+7),v(this,r+1,r+6),v(this,r+2,r+5),v(this,r+3,r+4);return this},u.prototype.toString=function t(){var e=0|this.length;return 0===e?\"\":0===arguments.length?A(this,0,e):p.apply(this,arguments)},u.prototype.equals=function t(e){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e||0===u.compare(this,e)},u.prototype.inspect=function t(){var r=\"\",n=e.INSPECT_MAX_BYTES;return this.length>0&&(r=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(r+=\" ... \")),\"<Buffer \"+r+\">\"},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError(\"out of range index\");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(i>>>=0),a=(n>>>=0)-(r>>>=0),c=Math.min(s,a),h=this.slice(i,o),l=e.slice(r,n),f=0;f<c;++f)if(h[f]!==l[f]){s=h[f],a=l[f];break}return s<a?-1:a<s?1:0},u.prototype.includes=function t(e,r,n){return-1!==this.indexOf(e,r,n)},u.prototype.indexOf=function t(e,r,n){return y(this,e,r,n,!0)},u.prototype.lastIndexOf=function t(e,r,n){return y(this,e,r,n,!1)},u.prototype.write=function t(e,r,n,i){if(void 0===r)i=\"utf8\",n=this.length,r=0;else if(void 0===n&&\"string\"==typeof r)i=r,n=this.length,r=0;else{if(!isFinite(r))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");r|=0,isFinite(n)?(n|=0,void 0===i&&(i=\"utf8\")):(i=n,n=void 0)}var o=this.length-r;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");i||(i=\"utf8\");for(var s=!1;;)switch(i){case\"hex\":return _(this,e,r,n);case\"utf8\":case\"utf-8\":return S(this,e,r,n);case\"ascii\":return b(this,e,r,n);case\"latin1\":case\"binary\":return w(this,e,r,n);case\"base64\":return F(this,e,r,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,e,r,n);default:if(s)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function I(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",o=e;o<r;++o)i+=V(t[o]);return i}function D(t,e,r){for(var n=t.slice(e,r),i=\"\",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function L(t,e,r){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function N(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('\"value\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\"Index out of range\")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i<o;++i)t[r+i]=(e&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function B(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i<o;++i)t[r+i]=e>>>8*(n?i:3-i)&255}function O(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(t,e,r,n,o){return o||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function M(t,e,r,n,o){return o||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):r>i&&(r=i),r<e&&(r=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,r)).__proto__=u.prototype;else{var o=r-e;n=new u(o,void 0);for(var s=0;s<o;++s)n[s]=this[s+e]}return n},u.prototype.readUIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s<r&&(o*=256);)i+=this[e+s]*o;return i},u.prototype.readUIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e+--r],o=1;r>0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||L(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s<r&&(o*=256);)i+=this[e+s]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s<n&&(o*=256);)this[r+s]=e/o&255;return r+n},u.prototype.writeUIntBE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=n-1,s=1;for(this[r+o]=255&e;--o>=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):B(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s<n&&(a*=256);)e<0&&0===u&&0!==this[r+s-1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):B(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return M(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return M(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===e.length||0===this.length)return 0;if(r<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),e.length-r<i-n&&(i=e.length-r+n);var o,s=i-n;if(this===e&&n<r&&r<i)for(o=s-1;o>=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+r]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),r);return s},u.prototype.fill=function t(e,r,n,i){if(\"string\"==typeof e){if(\"string\"==typeof r?(i=r,r=0,n=this.length):\"string\"==typeof n&&(i=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==i&&\"string\"!=typeof i)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof i&&!u.isEncoding(i))throw new TypeError(\"Unknown encoding: \"+i)}else\"number\"==typeof e&&(e&=255);if(r<0||this.length<r||this.length<n)throw new RangeError(\"Out of range index\");if(n<=r)return this;var s;if(r>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(s=r;s<n;++s)this[s]=e;else{var a=u.isBuffer(e)?e:K(new u(e,i).toString()),c=a.length;for(s=0;s<n-r;++s)this[s+r]=a[s%c]}return this};var H=/[^+\\/0-9A-Za-z-_]/g;function V(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,o=[],s=0;s<n;++s){if((r=t.charCodeAt(s))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(H,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function J(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";e.byteLength=function n(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){var e,r,n=f(t),i=n[0],o=n[1],s=new u(function c(t,e,r){return 3*(e+r)/4-r}(0,i,o)),h=0,l=o>0?i-4:i;for(r=0;r<l;r+=4)e=a[t.charCodeAt(r)]<<18|a[t.charCodeAt(r+1)]<<12|a[t.charCodeAt(r+2)]<<6|a[t.charCodeAt(r+3)],s[h++]=e>>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===o&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===o&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=16383,a=0,u=r-n;a<u;a+=o)i.push(g(t,a,a+o>u?u:a+o));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+\"==\")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+\"=\"));return i.join(\"\")};for(var s=[],a=[],u=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,l=c.length;h<l;++h)s[h]=c[h],a[c.charCodeAt(h)]=h;function f(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function g(t,e,r){for(var n,i,o=[],a=e;a<r;a+=3)n=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),o.push(s[(i=n)>>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<<a)-1,c=u>>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<<c)-1,l=h>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.parseJwt=function t(r){i.Log.debug(\"JoseUtil.parseJwt\");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,h,l,f){i.Log.debug(\"JoseUtil.validateJwt\");try{if(\"RSA\"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\",s),Promise.reject(new Error(\"RSA key missing key material\"));var g=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(g)}else{if(\"EC\"!==s.kty)return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\",s),Promise.reject(new Error(\"EC key missing key material\"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,h,l,f)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(\"JWT validation failed\")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"),Promise.reject(new Error(\"issuer was not provided\"));if(c.iss!==n)return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\",c.iss),Promise.reject(new Error(\"Invalid issuer in token: \"+c.iss));if(!c.aud)return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"),Promise.reject(new Error(\"aud was not provided\"));if(!(c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0))return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\",c.aud),Promise.reject(new Error(\"Invalid audience in token: \"+c.aud));if(c.azp&&c.azp!==o)return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\",c.azp),Promise.reject(new Error(\"Invalid azp in token: \"+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"),Promise.reject(new Error(\"iat was not provided\"));if(h<c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat is in the future\",c.iat),Promise.reject(new Error(\"iat is in the future: \"+c.iat));if(c.nbf&&h<c.nbf)return i.Log.error(\"JoseUtil._validateJwt: nbf is in the future\",c.nbf),Promise.reject(new Error(\"nbf is in the future: \"+c.nbf));if(!c.exp)return i.Log.error(\"JoseUtil._validateJwt: exp was not provided\"),Promise.reject(new Error(\"exp was not provided\"));if(c.exp<l)return i.Log.error(\"JoseUtil._validateJwt: exp is in the past\",c.exp),Promise.reject(new Error(\"exp is in the past:\"+c.exp))}return Promise.resolve(c)},t._validateJwt=function r(n,o,s,a,c,h,l){return t.validateJwtAttributes(n,s,a,c,h,l).then((function(t){try{return e.JWS.verify(n,o,u)?t:(i.Log.error(\"JoseUtil._validateJwt: signature validation failed\"),Promise.reject(new Error(\"signature validation failed\")))}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(new Error(\"signature validation failed\"))}}))},t.hashString=function t(e,r){try{return o.Util.hashString(e,r)}catch(t){i.Log.error(t)}},t.hexToBase64Url=function t(e){try{return s(e)}catch(t){i.Log.error(t)}},t}()};var i=r(0);t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninResponse=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(3);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.SigninResponse=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\";o(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}},{key:\"isOpenIdConnect\",get:function t(){return this.scopes.indexOf(\"openid\")>=0||!!this.id_token}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SignoutRequest.ctor: No url passed\"),new Error(\"url\");for(var f in s&&(r=i.UrlUtility.addQueryParam(r,\"id_token_hint\",s)),a&&(r=i.UrlUtility.addQueryParam(r,\"post_logout_redirect_uri\",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,f,c[f]);this.url=r}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,\"?\");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.InMemoryWebStorage=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._data={}}return t.prototype.getItem=function t(e){return i.Log.debug(\"InMemoryWebStorage.getItem\",e),this._data[e]},t.prototype.setItem=function t(e,r){i.Log.debug(\"InMemoryWebStorage.setItem\",e),this._data[e]=r},t.prototype.removeItem=function t(e){i.Log.debug(\"InMemoryWebStorage.removeItem\",e),delete this._data[e]},t.prototype.key=function t(e){return Object.getOwnPropertyNames(this._data)[e]},n(t,[{key:\"length\",get:function t(){return Object.getOwnPropertyNames(this._data).length}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManager=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(10),s=r(39),a=r(15),u=r(45),c=r(47),h=r(18),l=r(8),f=r(20),g=r(11),d=r(4);function p(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function v(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.UserManager=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,y=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;p(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var m=v(this,t.call(this,r));return m._events=new u.UserManagerEvents(r),m._silentRenewService=new n(m),m.settings.automaticSilentRenew&&(i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"),m.startSilentRenew()),m.settings.monitorSession&&(i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"),m._sessionMonitor=new o(m)),m._tokenRevocationClient=new a(m._settings),m._tokenClient=new l(m._settings),m._joseUtil=y,m}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then((function(t){return t?(i.Log.info(\"UserManager.getUser: user loaded\"),e._events.load(t,!1),t):(i.Log.info(\"UserManager.getUser: user not found in storage\"),null)}))},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then((function(){i.Log.info(\"UserManager.removeUser: user removed from storage\"),e._events.unload()}))},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:r\";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then((function(){i.Log.info(\"UserManager.signinRedirect: successful\")}))},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinRedirectCallback: no sub\"),t}))},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:p\";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display=\"popup\",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopup: no sub\")),t}))):(i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"),Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopupCallback: no sub\")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=Object.assign({},r),this._loadUser().then((function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.request_type=\"si:s\",r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))}))},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then((function(t){return t?t.access_token?e._loadUser().then((function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then((function(){return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"),r.id_token=t.id_token||r.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then((function(){return e._events.load(r),r}))}))}return null})):(i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"),Promise.reject(\"No access token returned from token endpoint\")):(i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"),Promise.reject(\"No response returned from token endpoint\"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){return n.settings.getEpochTime().then((function(o){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew,o).then((function(t){return t?t.sub!==e.sub?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"),Promise.reject(new Error(\"sub in id_token does not match current sub\"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"),Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))):t.azp&&t.azp!==e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"),Promise.reject(new Error(\"azp in id_token does not match original azp\"))):!t.azp&&e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"),Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))):void 0:(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"),Promise.reject(new Error(\"Failed to validate id_token\")))}))}))}))},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||\"none\",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilent: no sub\")),t}))):(i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilentCallback: no sub\")),t}))},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then((function(t){var n=t.state;t.response;return\"si:r\"===n.request_type?r.signinRedirectCallback(e):\"si:p\"===n.request_type?r.signinPopupCallback(e):\"si:s\"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error(\"invalid response_type in state\"))}))},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then((function(t){var i=t.state,o=t.response;return i?\"so:r\"===i.request_type?n.signoutRedirectCallback(e):\"so:p\"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error(\"invalid response_type in state\")):o}))},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type=\"si:s\";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt=\"none\",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||\"openid\",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return e.processSigninResponse(t.url).then((function(t){if(i.Log.debug(\"UserManager.querySessionStatus: got signin response\"),t.session_state&&t.profile.sub)return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info(\"querySessionStatus successful, user not authenticated\")})).catch((function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&(\"login_required\"==t.message||\"consent_required\"==t.message||\"interaction_required\"==t.message||\"account_selection_required\"==t.message))return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"),{session_state:t.session_state};throw t}))}))):(i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then((function(t){return n._signinEnd(t.url,e)}))},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"),n.createSigninRequest(e).then((function(e){return i.Log.debug(\"UserManager._signinStart: got signin request\"),o.url=e.url,o.id=e.state.id,t.navigate(o)})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then((function(t){i.Log.debug(\"UserManager._signinEnd: got signin response\");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \",e.profile.sub),Promise.reject(new Error(\"login_required\"));i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\")}return r.storeUser(e).then((function(){return i.Log.debug(\"UserManager._signinEnd: user stored\"),r._events.load(e),e}))}))},e.prototype._signinCallback=function t(e,r){i.Log.debug(\"UserManager._signinCallback\");var n=\"query\"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?\"?\":\"#\";return r.callback(e,void 0,n)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:r\";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then((function(){i.Log.info(\"UserManager.signoutRedirect: successful\")}))},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then((function(t){return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"),t}))},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:p\";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display=\"popup\",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info(\"UserManager.signoutPopup: successful\")}))},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&\"boolean\"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,\"?\").then((function(){i.Log.info(\"UserManager.signoutPopupCallback: successful\")}))},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then((function(t){return n._signoutEnd(t.url)}))},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"),r._loadUser().then((function(n){return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then((function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"),e.id_token_hint=s),r.removeUser().then((function(){return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"),r.createSignoutRequest(e).then((function(e){return i.Log.debug(\"UserManager._signoutStart: got signout request\"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)}))}))}))})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then((function(t){return i.Log.debug(\"UserManager._signoutEnd: got signout response\"),t}))},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then((function(t){return e._revokeInternal(t,!0).then((function(r){if(r)return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then((function(){i.Log.debug(\"UserManager.revokeAccessToken: user stored\"),e._events.load(t)}))}))})).then((function(){i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\")}))},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then((function(t){return n._revokeRefreshTokenInternal(s,r).then((function(e){return t||e||i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(\".\")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,\"refresh_token\").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug(\"UserManager._loadUser: user storageString loaded\"),a.User.fromStorageString(t)):(i.Log.debug(\"UserManager._loadUser: no user storageString\"),null)}))},e.prototype.storeUser=function t(e){if(e){i.Log.debug(\"UserManager.storeUser: storing user\");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug(\"storeUser.storeUser: removing user\"),this._userStore.remove(this._userStoreKey)},n(e,[{key:\"_redirectNavigator\",get:function t(){return this.settings.redirectNavigator}},{key:\"_popupNavigator\",get:function t(){return this.settings.popupNavigator}},{key:\"_iframeNavigator\",get:function t(){return this.settings.iframeNavigator}},{key:\"_userStore\",get:function t(){return this.settings.userStore}},{key:\"events\",get:function t(){return this._events}},{key:\"_userStoreKey\",get:function t(){return\"user:\"+this.settings.authority+\":\"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=(r(0),r(5)),o=r(40),s=r(41),a=r(43),u=r(6),c=r(1),h=r(8);function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function f(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.UserManagerSettings=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,g=r.popupWindowFeatures,d=r.popupWindowTarget,p=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?2e3:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,D=void 0!==I&&I,L=r.accessTokenExpiringNotificationTime,N=void 0===L?60:L,U=r.redirectNavigator,B=void 0===U?new o.RedirectNavigator:U,O=r.popupNavigator,j=void 0===O?new s.PopupNavigator:O,M=r.iframeNavigator,H=void 0===M?new a.IFrameNavigator:M,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;l(this,e);var q=f(this,t.call(this,arguments[0]));return q._popup_redirect_uri=n,q._popup_post_logout_redirect_uri=i,q._popupWindowFeatures=g,q._popupWindowTarget=d,q._silent_redirect_uri=p,q._silentRequestTimeout=v,q._automaticSilentRenew=m,q._validateSubOnSilentRenew=S,q._includeIdTokenInSilentRenew=w,q._accessTokenExpiringNotificationTime=N,q._monitorSession=E,q._monitorAnonymousSession=A,q._checkSessionInterval=P,q._stopCheckSessionOnError=T,R?q._query_status_response_type=R:arguments[0]&&arguments[0].response_type?q._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?\"id_token\":\"code\":q._query_status_response_type=\"id_token\",q._revokeAccessTokenOnSignout=D,q._redirectNavigator=B,q._popupNavigator=j,q._iframeNavigator=H,q._userStore=K,q}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:\"popup_redirect_uri\",get:function t(){return this._popup_redirect_uri}},{key:\"popup_post_logout_redirect_uri\",get:function t(){return this._popup_post_logout_redirect_uri}},{key:\"popupWindowFeatures\",get:function t(){return this._popupWindowFeatures}},{key:\"popupWindowTarget\",get:function t(){return this._popupWindowTarget}},{key:\"silent_redirect_uri\",get:function t(){return this._silent_redirect_uri}},{key:\"silentRequestTimeout\",get:function t(){return this._silentRequestTimeout}},{key:\"automaticSilentRenew\",get:function t(){return this._automaticSilentRenew}},{key:\"validateSubOnSilentRenew\",get:function t(){return this._validateSubOnSilentRenew}},{key:\"includeIdTokenInSilentRenew\",get:function t(){return this._includeIdTokenInSilentRenew}},{key:\"accessTokenExpiringNotificationTime\",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:\"monitorSession\",get:function t(){return this._monitorSession}},{key:\"monitorAnonymousSession\",get:function t(){return this._monitorAnonymousSession}},{key:\"checkSessionInterval\",get:function t(){return this._checkSessionInterval}},{key:\"stopCheckSessionOnError\",get:function t(){return this._stopCheckSessionOnError}},{key:\"query_status_response_type\",get:function t(){return this._query_status_response_type}},{key:\"revokeAccessTokenOnSignout\",get:function t(){return this._revokeAccessTokenOnSignout}},{key:\"redirectNavigator\",get:function t(){return this._redirectNavigator}},{key:\"popupNavigator\",get:function t(){return this._popupNavigator}},{key:\"iframeNavigator\",get:function t(){return this._iframeNavigator}},{key:\"userStore\",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.RedirectNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(){return Promise.resolve(this)},t.prototype.navigate=function t(e){return e&&e.url?(e.useReplaceToNavigate?window.location.replace(e.url):window.location=e.url,Promise.resolve()):(i.Log.error(\"RedirectNavigator.navigate: No url provided\"),Promise.reject(new Error(\"No url provided\")))},n(t,[{key:\"url\",get:function t(){return window.location.href}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.PopupNavigator=void 0;var n=r(0),i=r(42);e.PopupNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new i.PopupWindow(e);return Promise.resolve(r)},t.prototype.callback=function t(e,r,o){n.Log.debug(\"PopupNavigator.callback\");try{return i.PopupWindow.notifyOpener(e,r,o),Promise.resolve()}catch(t){return Promise.reject(t)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.PopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(3);e.PopupWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e}));var o=e.popupWindowTarget||\"_blank\",s=e.popupWindowFeatures||\"location=no,toolbar=no,width=500,height=500,left=100,top=100;\";this._popup=window.open(\"\",o,s),this._popup&&(i.Log.debug(\"PopupWindow.ctor: popup successfully created\"),this._checkForPopupClosedTimer=window.setInterval(this._checkForPopupClosed.bind(this),500))}return t.prototype.navigate=function t(e){return this._popup?e&&e.url?(i.Log.debug(\"PopupWindow.navigate: Setting URL in popup\"),this._id=e.id,this._id&&(window[\"popupCallback_\"+e.id]=this._callback.bind(this)),this._popup.focus(),this._popup.window.location=e.url):(this._error(\"PopupWindow.navigate: no url provided\"),this._error(\"No url provided\")):this._error(\"PopupWindow.navigate: Error opening popup window\"),this.promise},t.prototype._success=function t(e){i.Log.debug(\"PopupWindow.callback: Successful response from popup window\"),this._cleanup(),this._resolve(e)},t.prototype._error=function t(e){i.Log.error(\"PopupWindow.error: \",e),this._cleanup(),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup(!1)},t.prototype._cleanup=function t(e){i.Log.debug(\"PopupWindow.cleanup\"),window.clearInterval(this._checkForPopupClosedTimer),this._checkForPopupClosedTimer=null,delete window[\"popupCallback_\"+this._id],this._popup&&!e&&this._popup.close(),this._popup=null},t.prototype._checkForPopupClosed=function t(){this._popup&&!this._popup.closed||this._error(\"Popup window closed\")},t.prototype._callback=function t(e,r){this._cleanup(r),e?(i.Log.debug(\"PopupWindow.callback success\"),this._success({url:e})):(i.Log.debug(\"PopupWindow.callback: Invalid response from popup\"),this._error(\"Invalid response from popup\"))},t.notifyOpener=function t(e,r,n){if(window.opener){if(e=e||window.location.href){var s=o.UrlUtility.parseUrlFragment(e,n);if(s.state){var a=\"popupCallback_\"+s.state,u=window.opener[a];u?(i.Log.debug(\"PopupWindow.notifyOpener: passing url message to opener\"),u(e,r)):i.Log.warn(\"PopupWindow.notifyOpener: no matching callback found on opener\")}else i.Log.warn(\"PopupWindow.notifyOpener: no state found in response url\")}}else i.Log.warn(\"PopupWindow.notifyOpener: no window.opener. Can't complete notification.\")},n(t,[{key:\"promise\",get:function t(){return this._promise}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.IFrameNavigator=void 0;var n=r(0),i=r(44);e.IFrameNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new i.IFrameWindow(e);return Promise.resolve(r)},t.prototype.callback=function t(e){n.Log.debug(\"IFrameNavigator.callback\");try{return i.IFrameWindow.notifyParent(e),Promise.resolve()}catch(t){return Promise.reject(t)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.IFrameWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.IFrameWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e})),this._boundMessageEvent=this._message.bind(this),window.addEventListener(\"message\",this._boundMessageEvent,!1),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.width=0,this._frame.height=0,window.document.body.appendChild(this._frame)}return t.prototype.navigate=function t(e){if(e&&e.url){var r=e.silentRequestTimeout||1e4;i.Log.debug(\"IFrameWindow.navigate: Using timeout of:\",r),this._timer=window.setTimeout(this._timeout.bind(this),r),this._frame.src=e.url}else this._error(\"No url provided\");return this.promise},t.prototype._success=function t(e){this._cleanup(),i.Log.debug(\"IFrameWindow: Successful response from frame window\"),this._resolve(e)},t.prototype._error=function t(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup()},t.prototype._cleanup=function t(){this._frame&&(i.Log.debug(\"IFrameWindow: cleanup\"),window.removeEventListener(\"message\",this._boundMessageEvent,!1),window.clearTimeout(this._timer),window.document.body.removeChild(this._frame),this._timer=null,this._frame=null,this._boundMessageEvent=null)},t.prototype._timeout=function t(){i.Log.debug(\"IFrameWindow.timeout\"),this._error(\"Frame window timed out\")},t.prototype._message=function t(e){if(i.Log.debug(\"IFrameWindow.message\"),this._timer&&e.origin===this._origin&&e.source===this._frame.contentWindow&&\"string\"==typeof e.data&&(e.data.startsWith(\"http://\")||e.data.startsWith(\"https://\"))){var r=e.data;r?this._success({url:r}):this._error(\"Invalid response from frame\")}},t.notifyParent=function t(e){i.Log.debug(\"IFrameWindow.notifyParent\"),(e=e||window.location.href)&&(i.Log.debug(\"IFrameWindow.notifyParent: posting url message to parent\"),window.parent.postMessage(e,location.protocol+\"//\"+location.host))},n(t,[{key:\"promise\",get:function t(){return this._promise}},{key:\"_origin\",get:function t(){return location.protocol+\"//\"+location.host}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerEvents=void 0;var n=r(0),i=r(16),o=r(17);e.UserManagerEvents=function(t){function e(r){!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var i=function s(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,t.call(this,r));return i._userLoaded=new o.Event(\"User loaded\"),i._userUnloaded=new o.Event(\"User unloaded\"),i._silentRenewError=new o.Event(\"Silent renew error\"),i._userSignedIn=new o.Event(\"User signed in\"),i._userSignedOut=new o.Event(\"User signed out\"),i._userSessionChanged=new o.Event(\"User session changed\"),i}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.load=function e(r){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];n.Log.debug(\"UserManagerEvents.load\"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug(\"UserManagerEvents.unload\"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(1),s=r(17);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function u(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.Timer=function(t){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;a(this,e);var s=u(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug(\"Timer.init timer \"+this._name+\" skipping initialization since already initialized for expiration:\",this.expiration);else{this.cancel(),i.Log.debug(\"Timer.init timer \"+this._name+\" for duration:\",e),this._expiration=r;var n=5;e<n&&(n=e),this._timerHandle=this._timer.setInterval(this._callback.bind(this),1e3*n)}},e.prototype.cancel=function t(){this._timerHandle&&(i.Log.debug(\"Timer.cancel: \",this._name),this._timer.clearInterval(this._timerHandle),this._timerHandle=null)},e.prototype._callback=function e(){var r=this._expiration-this.now;i.Log.debug(\"Timer.callback; \"+this._name+\" timer expires in:\",r),this._expiration<=this.now&&(this.cancel(),t.prototype.raise.call(this))},n(e,[{key:\"now\",get:function t(){return parseInt(this._nowFunc())}},{key:\"expiration\",get:function t(){return this._expiration}}]),e}(s.Event)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SilentRenewService=void 0;var n=r(0);e.SilentRenewService=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._userManager=e}return t.prototype.start=function t(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then((function(t){})).catch((function(t){n.Log.error(\"SilentRenewService.start: Error from getUser:\",t.message)})))},t.prototype.stop=function t(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},t.prototype._tokenExpiring=function t(){var e=this;this._userManager.signinSilent().then((function(t){n.Log.debug(\"SilentRenewService._tokenExpiring: Silent token renewal successful\")}),(function(t){n.Log.error(\"SilentRenewService._tokenExpiring: Error from signinSilent:\",t.message),e._userManager.events._raiseSilentRenewError(t)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupNavigator=void 0;var n=r(21);e.CordovaPopupNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new n.CordovaPopupWindow(e);return Promise.resolve(r)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaIFrameNavigator=void 0;var n=r(21);e.CordovaIFrameNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){e.popupWindowFeatures=\"hidden=yes\";var r=new n.CordovaPopupWindow(e);return Promise.resolve(r)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.Version=\"1.11.6\"}])}));","import { OidcClient, WebStorageStateStore } from '@inrupt/oidc-client';\nexport { CordovaIFrameNavigator, CordovaPopupNavigator, InMemoryWebStorage, Log, OidcClient, SessionMonitor, User, UserManager, Version, WebStorageStateStore } from '@inrupt/oidc-client';\nimport { determineSigningAlg, PREFERRED_SIGNING_ALG, getWebidFromTokenPayload, OidcProviderError, InvalidResponseError, generateDpopKeyPair, createDpopHeader, DEFAULT_SCOPES } from '@inrupt/solid-client-authn-core';\nimport { fetch as fetch$1 } from '@inrupt/universal-fetch';\n\nfunction processErrorResponse(responseBody, options) {\n var _a, _b, _c, _d;\n if (responseBody.error === \"invalid_redirect_uri\") {\n throw new Error(`Dynamic client registration failed: the provided redirect uri [${(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()}] is invalid - ${(_b = responseBody.error_description) !== null && _b !== void 0 ? _b : \"\"}`);\n }\n if (responseBody.error === \"invalid_client_metadata\") {\n throw new Error(`Dynamic client registration failed: the provided client metadata ${JSON.stringify(options)} is invalid - ${(_c = responseBody.error_description) !== null && _c !== void 0 ? _c : \"\"}`);\n }\n throw new Error(`Dynamic client registration failed: ${responseBody.error} - ${(_d = responseBody.error_description) !== null && _d !== void 0 ? _d : \"\"}`);\n}\nfunction validateRegistrationResponse(responseBody, options) {\n if (responseBody.client_id === undefined) {\n throw new Error(`Dynamic client registration failed: no client_id has been found on ${JSON.stringify(responseBody)}`);\n }\n if (options.redirectUrl &&\n (responseBody.redirect_uris === undefined ||\n responseBody.redirect_uris[0] !== options.redirectUrl.toString())) {\n throw new Error(`Dynamic client registration failed: the returned redirect URIs ${JSON.stringify(responseBody.redirect_uris)} don't match the provided ${JSON.stringify([\n options.redirectUrl.toString(),\n ])}`);\n }\n}\nasync function registerClient(options, issuerConfig) {\n var _a;\n if (!issuerConfig.registrationEndpoint) {\n throw new Error(\"Dynamic Registration could not be completed because the issuer has no registration endpoint.\");\n }\n if (!Array.isArray(issuerConfig.idTokenSigningAlgValuesSupported)) {\n throw new Error(\"The OIDC issuer discovery profile is missing the 'id_token_signing_alg_values_supported' value, which is mandatory.\");\n }\n const signingAlg = determineSigningAlg(issuerConfig.idTokenSigningAlgValuesSupported, PREFERRED_SIGNING_ALG);\n const config = {\n client_name: options.clientName,\n application_type: \"web\",\n redirect_uris: [(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()],\n subject_type: \"public\",\n token_endpoint_auth_method: \"client_secret_basic\",\n id_token_signed_response_alg: signingAlg,\n grant_types: [\"authorization_code\", \"refresh_token\"],\n };\n const headers = {\n \"Content-Type\": \"application/json\",\n };\n const registerResponse = await fetch(issuerConfig.registrationEndpoint.toString(), {\n method: \"POST\",\n headers,\n body: JSON.stringify(config),\n });\n if (registerResponse.ok) {\n const responseBody = await registerResponse.json();\n validateRegistrationResponse(responseBody, options);\n return {\n clientId: responseBody.client_id,\n clientSecret: responseBody.client_secret,\n idTokenSignedResponseAlg: responseBody.id_token_signed_response_alg,\n clientType: \"dynamic\",\n };\n }\n if (registerResponse.status === 400) {\n processErrorResponse(await registerResponse.json(), options);\n }\n throw new Error(`Dynamic client registration failed: the server returned ${registerResponse.status} ${registerResponse.statusText} - ${await registerResponse.text()}`);\n}\n\nfunction hasError(value) {\n return value.error !== undefined && typeof value.error === \"string\";\n}\nfunction hasErrorDescription(value) {\n return (value.error_description !== undefined &&\n typeof value.error_description === \"string\");\n}\nfunction hasErrorUri(value) {\n return value.error_uri !== undefined && typeof value.error_uri === \"string\";\n}\nfunction hasAccessToken(value) {\n return (value.access_token !== undefined && typeof value.access_token === \"string\");\n}\nfunction hasIdToken(value) {\n return value.id_token !== undefined && typeof value.id_token === \"string\";\n}\nfunction hasRefreshToken(value) {\n return (value.refresh_token !== undefined && typeof value.refresh_token === \"string\");\n}\nfunction hasTokenType(value) {\n return value.token_type !== undefined && typeof value.token_type === \"string\";\n}\nfunction hasExpiresIn(value) {\n return value.expires_in === undefined || typeof value.expires_in === \"number\";\n}\nfunction validatePreconditions(issuer, data) {\n if (data.grantType &&\n (!issuer.grantTypesSupported ||\n !issuer.grantTypesSupported.includes(data.grantType))) {\n throw new Error(`The issuer [${issuer.issuer}] does not support the [${data.grantType}] grant`);\n }\n if (!issuer.tokenEndpoint) {\n throw new Error(`This issuer [${issuer.issuer}] does not have a token endpoint`);\n }\n}\nfunction validateTokenEndpointResponse(tokenResponse, dpop) {\n if (hasError(tokenResponse)) {\n throw new OidcProviderError(`Token endpoint returned error [${tokenResponse.error}]${hasErrorDescription(tokenResponse)\n ? `: ${tokenResponse.error_description}`\n : \"\"}${hasErrorUri(tokenResponse) ? ` (see ${tokenResponse.error_uri})` : \"\"}`, tokenResponse.error, hasErrorDescription(tokenResponse)\n ? tokenResponse.error_description\n : undefined);\n }\n if (!hasAccessToken(tokenResponse)) {\n throw new InvalidResponseError([\"access_token\"]);\n }\n if (!hasIdToken(tokenResponse)) {\n throw new InvalidResponseError([\"id_token\"]);\n }\n if (!hasTokenType(tokenResponse)) {\n throw new InvalidResponseError([\"token_type\"]);\n }\n if (!hasExpiresIn(tokenResponse)) {\n throw new InvalidResponseError([\"expires_in\"]);\n }\n if (!dpop && tokenResponse.token_type.toLowerCase() !== \"bearer\") {\n throw new Error(`Invalid token endpoint response: requested a [Bearer] token, but got a 'token_type' value of [${tokenResponse.token_type}].`);\n }\n return tokenResponse;\n}\nasync function getTokens(issuer, client, data, dpop) {\n validatePreconditions(issuer, data);\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let dpopKey;\n if (dpop) {\n dpopKey = await generateDpopKeyPair();\n headers.DPoP = await createDpopHeader(issuer.tokenEndpoint, \"POST\", dpopKey);\n }\n if (client.clientSecret) {\n headers.Authorization = `Basic ${btoa(`${client.clientId}:${client.clientSecret}`)}`;\n }\n const requestBody = {\n grant_type: data.grantType,\n redirect_uri: data.redirectUrl,\n code: data.code,\n code_verifier: data.codeVerifier,\n client_id: client.clientId,\n };\n const tokenRequestInit = {\n method: \"POST\",\n headers,\n body: new URLSearchParams(requestBody).toString(),\n };\n const rawTokenResponse = await fetch$1(issuer.tokenEndpoint, tokenRequestInit);\n const jsonTokenResponse = (await rawTokenResponse.json());\n const tokenResponse = validateTokenEndpointResponse(jsonTokenResponse, dpop);\n const webId = await getWebidFromTokenPayload(tokenResponse.id_token, issuer.jwksUri, issuer.issuer, client.clientId);\n return {\n accessToken: tokenResponse.access_token,\n idToken: tokenResponse.id_token,\n refreshToken: hasRefreshToken(tokenResponse)\n ? tokenResponse.refresh_token\n : undefined,\n webId,\n dpopKey,\n expiresIn: tokenResponse.expires_in,\n };\n}\nasync function getBearerToken(redirectUrl) {\n let signinResponse;\n try {\n const client = new OidcClient({\n response_mode: \"query\",\n loadUserInfo: false,\n });\n signinResponse = await client.processSigninResponse(redirectUrl);\n if (client.settings.metadata === undefined) {\n throw new Error(\"Cannot retrieve issuer metadata from client information in storage.\");\n }\n if (client.settings.metadata.jwks_uri === undefined) {\n throw new Error(\"Missing some issuer metadata from client information in storage: 'jwks_uri' is undefined\");\n }\n if (client.settings.metadata.issuer === undefined) {\n throw new Error(\"Missing some issuer metadata from client information in storage: 'issuer' is undefined\");\n }\n if (client.settings.client_id === undefined) {\n throw new Error(\"Missing some client information in storage: 'client_id' is undefined\");\n }\n const webId = await getWebidFromTokenPayload(signinResponse.id_token, client.settings.metadata.jwks_uri, client.settings.metadata.issuer, client.settings.client_id);\n return {\n accessToken: signinResponse.access_token,\n idToken: signinResponse.id_token,\n webId,\n refreshToken: signinResponse.refresh_token,\n };\n }\n catch (err) {\n throw new Error(`Problem handling Auth Code Grant (Flow) redirect - URL [${redirectUrl}]: ${err}`);\n }\n}\nasync function getDpopToken(issuer, client, data) {\n return getTokens(issuer, client, data, true);\n}\n\nconst isValidUrl = (url) => {\n try {\n new URL(url);\n return true;\n }\n catch (_a) {\n return false;\n }\n};\nasync function refresh(refreshToken, issuer, client, dpopKey) {\n if (client.clientId === undefined) {\n throw new Error(\"No client ID available when trying to refresh the access token.\");\n }\n const requestBody = {\n grant_type: \"refresh_token\",\n refresh_token: refreshToken,\n scope: DEFAULT_SCOPES,\n };\n let dpopHeader = {};\n if (dpopKey !== undefined) {\n dpopHeader = {\n DPoP: await createDpopHeader(issuer.tokenEndpoint, \"POST\", dpopKey),\n };\n }\n let authHeader = {};\n if (client.clientSecret !== undefined) {\n authHeader = {\n Authorization: `Basic ${btoa(`${client.clientId}:${client.clientSecret}`)}`,\n };\n }\n else if (isValidUrl(client.clientId)) {\n requestBody.client_id = client.clientId;\n }\n const rawResponse = await fetch$1(issuer.tokenEndpoint, {\n method: \"POST\",\n body: new URLSearchParams(requestBody).toString(),\n headers: {\n ...dpopHeader,\n ...authHeader,\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n });\n let response;\n try {\n response = await rawResponse.json();\n }\n catch (e) {\n throw new Error(`The token endpoint of issuer ${issuer.issuer} returned a malformed response.`);\n }\n const validatedResponse = validateTokenEndpointResponse(response, dpopKey !== undefined);\n const webId = await getWebidFromTokenPayload(validatedResponse.id_token, issuer.jwksUri, issuer.issuer, client.clientId);\n return {\n accessToken: validatedResponse.access_token,\n idToken: validatedResponse.id_token,\n refreshToken: typeof validatedResponse.refresh_token === \"string\"\n ? validatedResponse.refresh_token\n : undefined,\n webId,\n dpopKey,\n expiresIn: validatedResponse.expires_in,\n };\n}\n\nfunction removeOidcQueryParam(redirectUrl) {\n const cleanedUrl = new URL(redirectUrl);\n cleanedUrl.searchParams.delete(\"code\");\n cleanedUrl.searchParams.delete(\"state\");\n cleanedUrl.hash = \"\";\n if (redirectUrl.includes(`${cleanedUrl.origin}/`)) {\n return cleanedUrl.href;\n }\n return `${cleanedUrl.origin}${cleanedUrl.href.substring(cleanedUrl.origin.length + 1)}`;\n}\nasync function clearOidcPersistentStorage() {\n const client = new OidcClient({\n response_mode: \"query\",\n });\n await client.clearStaleState(new WebStorageStateStore({}));\n const myStorage = window.localStorage;\n const itemsToRemove = [];\n for (let i = 0; i <= myStorage.length; i += 1) {\n const key = myStorage.key(i);\n if (key &&\n (key.match(/^oidc\\..+$/) ||\n key.match(/^solidClientAuthenticationUser:.+$/))) {\n itemsToRemove.push(key);\n }\n }\n itemsToRemove.forEach((key) => myStorage.removeItem(key));\n}\n\nexport { clearOidcPersistentStorage, getBearerToken, getDpopToken, refresh, registerClient, removeOidcQueryParam };\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n ISessionInfo,\n ISessionInternalInfo,\n ILoginOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n EVENTS,\n isValidRedirectUrl,\n ClientAuthentication as ClientAuthenticationBase,\n} from \"@inrupt/solid-client-authn-core\";\nimport { removeOidcQueryParam } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\n/**\n * @hidden\n */\nexport default class ClientAuthentication extends ClientAuthenticationBase {\n // Define these functions as properties so that they don't get accidentally re-bound.\n // Isn't Javascript fun?\n login = async (\n options: ILoginOptions,\n eventEmitter: EventEmitter\n ): Promise<void> => {\n // In order to get a clean start, make sure that the session is logged out\n // on login.\n // But we may want to preserve our client application info, particularly if\n // we used Dynamic Client Registration to register (since we don't\n // necessarily want the user to have to register this app each time they\n // login).\n await this.sessionInfoManager.clear(options.sessionId);\n\n // In the case of the user hitting the 'back' button in their browser, they\n // could return to a previous redirect URL that contains OIDC params that\n // are now longer valid. To be safe, strip relevant params now.\n // If the user is providing a redirect IRI, it should not be modified, so\n // normalization only applies if we default to the current location (which is\n // a bad practice and should be discouraged).\n const redirectUrl =\n options.redirectUrl ?? removeOidcQueryParam(window.location.href);\n if (!isValidRedirectUrl(redirectUrl)) {\n throw new Error(\n `${redirectUrl} is not a valid redirect URL, it is either a malformed IRI or it includes a hash fragment.`\n );\n }\n await this.loginHandler.handle({\n ...options,\n redirectUrl,\n // If no clientName is provided, the clientId may be used instead.\n clientName: options.clientName ?? options.clientId,\n eventEmitter,\n });\n };\n\n // Collects session information from storage, and returns them. Returns null\n // if the expected information cannot be found.\n // Note that the ID token is not stored, which means the session information\n // cannot be validated at this point.\n validateCurrentSession = async (\n currentSessionId: string\n ): Promise<(ISessionInfo & ISessionInternalInfo) | null> => {\n const sessionInfo = await this.sessionInfoManager.get(currentSessionId);\n if (\n sessionInfo === undefined ||\n sessionInfo.clientAppId === undefined ||\n sessionInfo.issuer === undefined\n ) {\n return null;\n }\n return sessionInfo;\n };\n\n handleIncomingRedirect = async (\n url: string,\n eventEmitter: EventEmitter\n ): Promise<ISessionInfo | undefined> => {\n try {\n const redirectInfo = await this.redirectHandler.handle(url, eventEmitter);\n // The `FallbackRedirectHandler` directly returns the global `fetch` for\n // his value, so we should ensure it's bound to `window` rather than to\n // ClientAuthentication, to avoid the following error:\n // > 'fetch' called on an object that does not implement interface Window.\n this.fetch = redirectInfo.fetch.bind(window);\n this.boundLogout = redirectInfo.getLogoutUrl;\n\n // Strip the oauth params:\n this.cleanUrlAfterRedirect(url);\n\n return {\n isLoggedIn: redirectInfo.isLoggedIn,\n webId: redirectInfo.webId,\n sessionId: redirectInfo.sessionId,\n expirationDate: redirectInfo.expirationDate,\n };\n } catch (err) {\n // Strip the oauth params:\n this.cleanUrlAfterRedirect(url);\n\n // FIXME: EVENTS.ERROR should be errorCode, errorDescription\n //\n // I'm not sure if \"redirect\" is a good error code, and in theory `err`\n // maybe an Error object and not a string; Maybe we want to just hardcode\n // a description instead?\n eventEmitter.emit(EVENTS.ERROR, \"redirect\", err);\n\n return undefined;\n }\n };\n\n private cleanUrlAfterRedirect(url: string): void {\n const cleanedUpUrl = new URL(url);\n cleanedUpUrl.searchParams.delete(\"state\");\n // For auth code flow\n cleanedUpUrl.searchParams.delete(\"code\");\n // For implicit flow\n cleanedUpUrl.searchParams.delete(\"id_token\");\n cleanedUpUrl.searchParams.delete(\"access_token\");\n // For login error\n cleanedUpUrl.searchParams.delete(\"error\");\n cleanedUpUrl.searchParams.delete(\"error_description\");\n cleanedUpUrl.searchParams.delete(\"iss\");\n\n // Remove OAuth-specific query params (since the login flow finishes with\n // the browser being redirected back with OAuth2 query params (e.g. for\n // 'code' and 'state'), and so if the user simply refreshes this page our\n // authentication library will be called again with what are now invalid\n // query parameters!).\n window.history.replaceState(null, \"\", cleanedUpUrl.toString());\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Handles Common Oidc login functions (Like fetching the configuration)\n */\n\nimport type {\n IClientRegistrar,\n IIssuerConfig,\n IIssuerConfigFetcher,\n ILoginOptions,\n ILoginHandler,\n IOidcHandler,\n IOidcOptions,\n IStorageUtility,\n LoginResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n ConfigurationError,\n handleRegistration,\n} from \"@inrupt/solid-client-authn-core\";\n\nfunction hasIssuer(\n options: ILoginOptions\n): options is ILoginOptions & { oidcIssuer: string } {\n return typeof options.oidcIssuer === \"string\";\n}\n\nfunction hasRedirectUrl(\n options: ILoginOptions\n): options is ILoginOptions & { redirectUrl: string } {\n return typeof options.redirectUrl === \"string\";\n}\n\n/**\n * @hidden\n */\nexport default class OidcLoginHandler implements ILoginHandler {\n constructor(\n private storageUtility: IStorageUtility,\n private oidcHandler: IOidcHandler,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar\n ) {}\n\n async canHandle(options: ILoginOptions): Promise<boolean> {\n return hasIssuer(options) && hasRedirectUrl(options);\n }\n\n async handle(options: ILoginOptions): Promise<LoginResult> {\n if (!hasIssuer(options)) {\n throw new ConfigurationError(\n `OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(\n options\n )}`\n );\n }\n if (!hasRedirectUrl(options)) {\n throw new ConfigurationError(\n `OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(\n options\n )}`\n );\n }\n\n // Fetch issuer config.\n const issuerConfig: IIssuerConfig =\n await this.issuerConfigFetcher.fetchConfig(options.oidcIssuer);\n\n const clientRegistration = await handleRegistration(\n options,\n issuerConfig,\n this.storageUtility,\n this.clientRegistrar\n );\n\n // Construct OIDC Options\n const OidcOptions: IOidcOptions = {\n // Note that here, the issuer is not the one from the received options, but\n // from the issuer's config. This enforces the canonical URL is used and stored,\n // which is also the one present in the ID token, so storing a technically\n // valid, but different issuer URL (e.g. using a trailing slash or not) now\n // could prevent from validating the ID token later.\n issuer: issuerConfig.issuer,\n // TODO: differentiate if DPoP should be true\n dpop: options.tokenType.toLowerCase() === \"dpop\",\n ...options,\n issuerConfiguration: issuerConfig,\n client: clientRegistration,\n };\n\n // Call proper OIDC Handler\n return this.oidcHandler.handle(OidcOptions);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Handler for the Authorization Code with PKCE Flow\n */\nimport type {\n IOidcHandler,\n IOidcOptions,\n LoginResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n DEFAULT_SCOPES,\n AuthorizationCodeWithPkceOidcHandlerBase,\n} from \"@inrupt/solid-client-authn-core\";\nimport { OidcClient } from \"@inrupt/oidc-client-ext\";\n\n/**\n * @hidden\n * Authorization code flow spec: https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth\n * PKCE: https://tools.ietf.org/html/rfc7636\n */\nexport default class AuthorizationCodeWithPkceOidcHandler\n extends AuthorizationCodeWithPkceOidcHandlerBase\n implements IOidcHandler\n{\n async handle(oidcLoginOptions: IOidcOptions): Promise<LoginResult> {\n /* eslint-disable camelcase */\n const oidcOptions = {\n authority: oidcLoginOptions.issuer.toString(),\n client_id: oidcLoginOptions.client.clientId,\n client_secret: oidcLoginOptions.client.clientSecret,\n redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n post_logout_redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n response_type: \"code\",\n scope: DEFAULT_SCOPES,\n filterProtocolClaims: true,\n // The userinfo endpoint on NSS fails, so disable this for now\n // Note that in Solid, information should be retrieved from the\n // profile referenced by the WebId.\n loadUserInfo: false,\n code_verifier: true,\n prompt: oidcLoginOptions.prompt ?? \"consent\",\n };\n /* eslint-enable camelcase */\n\n const oidcClientLibrary = new OidcClient(oidcOptions);\n\n try {\n const signingRequest = await oidcClientLibrary.createSigninRequest();\n // Make sure to await the promise before returning so that the error is caught.\n return await this.handleRedirect({\n oidcLoginOptions,\n // eslint-disable-next-line no-underscore-dangle\n state: signingRequest.state._id,\n // eslint-disable-next-line no-underscore-dangle\n codeVerifier: signingRequest.state._code_verifier,\n targetUrl: signingRequest.url.toString(),\n });\n } catch (err: unknown) {\n // eslint-disable-next-line no-console\n console.error(err);\n }\n\n // The login is only completed AFTER redirect, so nothing to return here.\n return undefined;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Responsible for fetching an IDP configuration\n */\nimport type {\n IIssuerConfig,\n IIssuerConfigFetcher,\n IStorageUtility,\n} from \"@inrupt/solid-client-authn-core\";\nimport { ConfigurationError } from \"@inrupt/solid-client-authn-core\";\nimport { fetch } from \"@inrupt/universal-fetch\";\n\nexport const WELL_KNOWN_OPENID_CONFIG = \".well-known/openid-configuration\";\n\n/* eslint-disable camelcase */\nconst issuerConfigKeyMap: Record<\n string,\n { toKey: string; convertToUrl?: boolean }\n> = {\n issuer: {\n toKey: \"issuer\",\n convertToUrl: true,\n },\n authorization_endpoint: {\n toKey: \"authorizationEndpoint\",\n convertToUrl: true,\n },\n token_endpoint: {\n toKey: \"tokenEndpoint\",\n convertToUrl: true,\n },\n userinfo_endpoint: {\n toKey: \"userinfoEndpoint\",\n convertToUrl: true,\n },\n jwks_uri: {\n toKey: \"jwksUri\",\n convertToUrl: true,\n },\n registration_endpoint: {\n toKey: \"registrationEndpoint\",\n convertToUrl: true,\n },\n end_session_endpoint: {\n toKey: \"endSessionEndpoint\",\n convertToUrl: true,\n },\n scopes_supported: { toKey: \"scopesSupported\" },\n response_types_supported: { toKey: \"responseTypesSupported\" },\n response_modes_supported: { toKey: \"responseModesSupported\" },\n grant_types_supported: { toKey: \"grantTypesSupported\" },\n acr_values_supported: { toKey: \"acrValuesSupported\" },\n subject_types_supported: { toKey: \"subjectTypesSupported\" },\n id_token_signing_alg_values_supported: {\n toKey: \"idTokenSigningAlgValuesSupported\",\n },\n id_token_encryption_alg_values_supported: {\n toKey: \"idTokenEncryptionAlgValuesSupported\",\n },\n id_token_encryption_enc_values_supported: {\n toKey: \"idTokenEncryptionEncValuesSupported\",\n },\n userinfo_signing_alg_values_supported: {\n toKey: \"userinfoSigningAlgValuesSupported\",\n },\n userinfo_encryption_alg_values_supported: {\n toKey: \"userinfoEncryptionAlgValuesSupported\",\n },\n userinfo_encryption_enc_values_supported: {\n toKey: \"userinfoEncryptionEncValuesSupported\",\n },\n request_object_signing_alg_values_supported: {\n toKey: \"requestObjectSigningAlgValuesSupported\",\n },\n request_object_encryption_alg_values_supported: {\n toKey: \"requestObjectEncryptionAlgValuesSupported\",\n },\n request_object_encryption_enc_values_supported: {\n toKey: \"requestObjectEncryptionEncValuesSupported\",\n },\n token_endpoint_auth_methods_supported: {\n toKey: \"tokenEndpointAuthMethodsSupported\",\n },\n token_endpoint_auth_signing_alg_values_supported: {\n toKey: \"tokenEndpointAuthSigningAlgValuesSupported\",\n },\n display_values_supported: { toKey: \"displayValuesSupported\" },\n claim_types_supported: { toKey: \"claimTypesSupported\" },\n claims_supported: { toKey: \"claimsSupported\" },\n service_documentation: { toKey: \"serviceDocumentation\" },\n claims_locales_supported: { toKey: \"claimsLocalesSupported\" },\n ui_locales_supported: { toKey: \"uiLocalesSupported\" },\n claims_parameter_supported: { toKey: \"claimsParameterSupported\" },\n request_parameter_supported: { toKey: \"requestParameterSupported\" },\n request_uri_parameter_supported: { toKey: \"requestUriParameterSupported\" },\n require_request_uri_registration: { toKey: \"requireRequestUriRegistration\" },\n op_policy_uri: {\n toKey: \"opPolicyUri\",\n convertToUrl: true,\n },\n op_tos_uri: {\n toKey: \"opTosUri\",\n convertToUrl: true,\n },\n};\n/* eslint-enable camelcase */\n\nfunction processConfig(\n config: Record<string, string | string[]>\n): IIssuerConfig {\n const parsedConfig: Record<string, string | string[]> = {};\n Object.keys(config).forEach((key) => {\n if (issuerConfigKeyMap[key]) {\n // TODO: PMcB55: Validate URL if \"issuerConfigKeyMap[key].convertToUrl\"\n // if (issuerConfigKeyMap[key].convertToUrl) {\n // validateUrl(config[key]);\n // }\n parsedConfig[issuerConfigKeyMap[key].toKey] = config[key];\n }\n });\n if (!Array.isArray(parsedConfig.scopesSupported)) {\n parsedConfig.scopesSupported = [\"openid\"];\n }\n return parsedConfig as unknown as IIssuerConfig;\n}\n\n/**\n * @hidden\n */\nexport default class IssuerConfigFetcher implements IIssuerConfigFetcher {\n constructor(private storageUtility: IStorageUtility) {}\n\n // This method needs no state (so can be static), and can be exposed to allow\n // callers to know where this implementation puts state it needs.\n public static getLocalStorageKey(issuer: string): string {\n return `issuerConfig:${issuer}`;\n }\n\n async fetchConfig(issuer: string): Promise<IIssuerConfig> {\n let issuerConfig: IIssuerConfig;\n\n const openIdConfigUrl = new URL(\n WELL_KNOWN_OPENID_CONFIG,\n // Make sure to append a slash at issuer URL, so that the .well-known URL\n // includes the full issuer path. See https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig.\n issuer.endsWith(\"/\") ? issuer : `${issuer}/`\n ).href;\n const issuerConfigRequestBody = await fetch(openIdConfigUrl);\n // Check the validity of the fetched config\n try {\n issuerConfig = processConfig(await issuerConfigRequestBody.json());\n } catch (err) {\n throw new ConfigurationError(\n `[${issuer.toString()}] has an invalid configuration: ${\n (err as { message: string }).message\n }`\n );\n }\n\n // Update store with fetched config\n await this.storageUtility.set(\n IssuerConfigFetcher.getLocalStorageKey(issuer),\n JSON.stringify(issuerConfig)\n );\n\n return issuerConfig;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n ISessionInfo,\n ISessionInfoManager,\n ISessionInternalInfo,\n IStorageUtility,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n isSupportedTokenType,\n clear as clearBase,\n SessionInfoManagerBase,\n} from \"@inrupt/solid-client-authn-core\";\nimport { clearOidcPersistentStorage } from \"@inrupt/oidc-client-ext\";\n\nexport { getUnauthenticatedSession } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @param sessionId\n * @param storage\n * @hidden\n */\nexport async function clear(\n sessionId: string,\n storage: IStorageUtility\n): Promise<void> {\n await clearBase(sessionId, storage);\n await clearOidcPersistentStorage();\n}\n\n/**\n * @hidden\n */\nexport class SessionInfoManager\n extends SessionInfoManagerBase\n implements ISessionInfoManager\n{\n async get(\n sessionId: string\n ): Promise<(ISessionInfo & ISessionInternalInfo) | undefined> {\n const isLoggedIn = await this.storageUtility.getForUser(\n sessionId,\n \"isLoggedIn\",\n {\n secure: true,\n }\n );\n\n const webId = await this.storageUtility.getForUser(sessionId, \"webId\", {\n secure: true,\n });\n\n const clientId = await this.storageUtility.getForUser(\n sessionId,\n \"clientId\",\n {\n secure: false,\n }\n );\n\n const clientSecret = await this.storageUtility.getForUser(\n sessionId,\n \"clientSecret\",\n {\n secure: false,\n }\n );\n\n const redirectUrl = await this.storageUtility.getForUser(\n sessionId,\n \"redirectUrl\",\n {\n secure: false,\n }\n );\n\n const refreshToken = await this.storageUtility.getForUser(\n sessionId,\n \"refreshToken\",\n {\n secure: true,\n }\n );\n\n const issuer = await this.storageUtility.getForUser(sessionId, \"issuer\", {\n secure: false,\n });\n\n const tokenType =\n (await this.storageUtility.getForUser(sessionId, \"tokenType\", {\n secure: false,\n })) ?? \"DPoP\";\n\n if (!isSupportedTokenType(tokenType)) {\n throw new Error(`Tokens of type [${tokenType}] are not supported.`);\n }\n\n if (\n clientId === undefined &&\n isLoggedIn === undefined &&\n webId === undefined &&\n refreshToken === undefined\n ) {\n return undefined;\n }\n\n return {\n sessionId,\n webId,\n isLoggedIn: isLoggedIn === \"true\",\n redirectUrl,\n refreshToken,\n issuer,\n clientAppId: clientId,\n clientAppSecret: clientSecret,\n tokenType,\n };\n }\n\n /**\n * This function removes all session-related information from storage.\n * @param sessionId the session identifier\n * @param storage the storage where session info is stored\n * @hidden\n */\n async clear(sessionId: string): Promise<void> {\n return clear(sessionId, this.storageUtility);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IIncomingRedirectHandler,\n ISessionInfo,\n} from \"@inrupt/solid-client-authn-core\";\n\nimport { getUnauthenticatedSession } from \"../../../sessionInfo/SessionInfoManager\";\n\n/**\n * This class handles redirect IRIs without any query params, and returns an unauthenticated\n * session. It serves as a fallback so that consuming libraries don't have to test\n * for the query params themselves, and can always try to use them as a redirect IRI.\n * @hidden\n */\nexport class FallbackRedirectHandler implements IIncomingRedirectHandler {\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n // The next URL object is built for validating it.\n // eslint-disable-next-line no-new\n new URL(redirectUrl);\n return true;\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`\n );\n }\n }\n\n async handle(\n // The argument is ignored, but must be present to implement the interface\n _redirectUrl: string\n ): Promise<ISessionInfo & { fetch: typeof fetch }> {\n return getUnauthenticatedSession();\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n// FIXME: The following doesn't work in the browser, it results in all the fetches\n// being unauthenticated. This should be looked into when migrating to universal-fetch.\n// import { fetch } from \"cross-fetch\";\n\nimport { fetch } from \"@inrupt/universal-fetch\";\n\nimport type {\n IClient,\n IClientRegistrar,\n IIssuerConfigFetcher,\n IIncomingRedirectHandler,\n ISessionInfoManager,\n IStorageUtility,\n ITokenRefresher,\n RefreshOptions,\n IncomingRedirectResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n buildAuthenticatedFetch,\n loadOidcContextFromStorage,\n maybeBuildRpInitiatedLogout,\n} from \"@inrupt/solid-client-authn-core\";\nimport type { CodeExchangeResult } from \"@inrupt/oidc-client-ext\";\nimport { getDpopToken, getBearerToken } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\n/**\n * @hidden\n */\nexport class AuthCodeRedirectHandler implements IIncomingRedirectHandler {\n constructor(\n private storageUtility: IStorageUtility,\n private sessionInfoManager: ISessionInfoManager,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar,\n private tokerRefresher: ITokenRefresher\n ) {}\n\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n const myUrl = new URL(redirectUrl);\n return (\n myUrl.searchParams.get(\"code\") !== null &&\n myUrl.searchParams.get(\"state\") !== null\n );\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`\n );\n }\n }\n\n async handle(\n redirectUrl: string,\n eventEmitter?: EventEmitter\n ): Promise<IncomingRedirectResult> {\n if (!(await this.canHandle(redirectUrl))) {\n throw new Error(\n `AuthCodeRedirectHandler cannot handle [${redirectUrl}]: it is missing one of [code, state].`\n );\n }\n\n const url = new URL(redirectUrl);\n const oauthState = url.searchParams.get(\"state\") as string;\n\n const storedSessionId = (await this.storageUtility.getForUser(\n oauthState,\n \"sessionId\",\n {\n errorIfNull: true,\n }\n )) as string;\n\n const {\n issuerConfig,\n codeVerifier,\n redirectUrl: storedRedirectIri,\n dpop: isDpop,\n } = await loadOidcContextFromStorage(\n storedSessionId,\n this.storageUtility,\n this.issuerConfigFetcher\n );\n\n const iss = url.searchParams.get(\"iss\");\n\n if (typeof iss === \"string\" && iss !== issuerConfig.issuer) {\n throw new Error(\n `The value of the iss parameter (${iss}) does not match the issuer identifier of the authorization server (${issuerConfig.issuer}). See [rfc9207](https://www.rfc-editor.org/rfc/rfc9207.html#section-2.3-3.1.1)`\n );\n }\n\n if (codeVerifier === undefined) {\n throw new Error(\n `The code verifier for session ${storedSessionId} is missing from storage.`\n );\n }\n\n if (storedRedirectIri === undefined) {\n throw new Error(\n `The redirect URL for session ${storedSessionId} is missing from storage.`\n );\n }\n\n const client: IClient = await this.clientRegistrar.getClient(\n { sessionId: storedSessionId },\n issuerConfig\n );\n\n let tokens: CodeExchangeResult;\n const tokenCreatedAt = Date.now();\n\n if (isDpop) {\n tokens = await getDpopToken(issuerConfig, client, {\n grantType: \"authorization_code\",\n // We rely on our 'canHandle' function checking that the OAuth 'code'\n // parameter is present in our query string.\n code: url.searchParams.get(\"code\") as string,\n codeVerifier,\n redirectUrl: storedRedirectIri,\n });\n\n // Delete oidc-client-specific session information from storage. This is\n // done automatically when retrieving a bearer token, but since the DPoP\n // binding uses our custom code, this needs to be done manually.\n window.localStorage.removeItem(`oidc.${oauthState}`);\n } else {\n tokens = await getBearerToken(url.toString());\n }\n\n let refreshOptions: RefreshOptions | undefined;\n if (tokens.refreshToken !== undefined) {\n refreshOptions = {\n sessionId: storedSessionId,\n refreshToken: tokens.refreshToken,\n tokenRefresher: this.tokerRefresher,\n };\n }\n\n const authFetch = await buildAuthenticatedFetch(fetch, tokens.accessToken, {\n dpopKey: tokens.dpopKey,\n refreshOptions,\n eventEmitter,\n expiresIn: tokens.expiresIn,\n });\n\n await this.storageUtility.setForUser(\n storedSessionId,\n {\n webId: tokens.webId,\n isLoggedIn: \"true\",\n },\n { secure: true }\n );\n\n const sessionInfo = await this.sessionInfoManager.get(storedSessionId);\n if (!sessionInfo) {\n throw new Error(`Could not retrieve session: [${storedSessionId}].`);\n }\n\n return Object.assign(sessionInfo, {\n fetch: authFetch,\n getLogoutUrl: maybeBuildRpInitiatedLogout({\n idTokenHint: tokens.idToken,\n endSessionEndpoint: issuerConfig.endSessionEndpoint,\n }),\n expirationDate:\n typeof tokens.expiresIn === \"number\"\n ? tokenCreatedAt + tokens.expiresIn * 1000\n : undefined,\n } as IncomingRedirectResult);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Responsible for selecting the correct OidcHandler to handle the provided OIDC Options\n */\nimport type {\n IIncomingRedirectHandler,\n IncomingRedirectInput,\n IncomingRedirectResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport { AggregateHandler } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class AggregateRedirectHandler\n extends AggregateHandler<IncomingRedirectInput, IncomingRedirectResult>\n implements IIncomingRedirectHandler\n{\n constructor(redirectHandlers: IIncomingRedirectHandler[]) {\n super(redirectHandlers);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class BrowserStorage implements IStorage {\n get storage(): typeof window.localStorage {\n return window.localStorage;\n }\n\n async get(key: string): Promise<string | undefined> {\n return this.storage.getItem(key) || undefined;\n }\n\n async set(key: string, value: string): Promise<void> {\n this.storage.setItem(key, value);\n }\n\n async delete(key: string): Promise<void> {\n this.storage.removeItem(key);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IRedirector,\n IRedirectorOptions,\n} from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class Redirector implements IRedirector {\n redirect(redirectUrl: string, options?: IRedirectorOptions): void {\n if (options && options.handleRedirect) {\n options.handleRedirect(redirectUrl);\n } else if (options && options.redirectByReplacingState) {\n window.history.replaceState({}, \"\", redirectUrl);\n } else {\n window.location.href = redirectUrl;\n }\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IStorageUtility,\n IClientRegistrar,\n IIssuerConfig,\n IClient,\n IClientRegistrarOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport { registerClient } from \"@inrupt/oidc-client-ext\";\n\n/**\n * @hidden\n */\nexport default class ClientRegistrar implements IClientRegistrar {\n constructor(private storageUtility: IStorageUtility) {}\n\n async getClient(\n options: IClientRegistrarOptions,\n issuerConfig: IIssuerConfig\n ): Promise<IClient> {\n // If client secret and/or client id are stored in storage, use those.\n const [\n storedClientId,\n storedClientSecret,\n // storedClientName,\n ] = await Promise.all([\n this.storageUtility.getForUser(options.sessionId, \"clientId\", {\n secure: false,\n }),\n this.storageUtility.getForUser(options.sessionId, \"clientSecret\", {\n secure: false,\n }),\n // this.storageUtility.getForUser(options.sessionId, \"clientName\", {\n // // FIXME: figure out how to persist secure storage at reload\n // secure: false,\n // }),\n ]);\n if (storedClientId) {\n return {\n clientId: storedClientId,\n clientSecret: storedClientSecret,\n clientType: \"dynamic\",\n };\n }\n\n try {\n const registeredClient = await registerClient(options, issuerConfig);\n // Save info\n const infoToSave: Record<string, string> = {\n clientId: registeredClient.clientId,\n };\n if (registeredClient.clientSecret) {\n infoToSave.clientSecret = registeredClient.clientSecret;\n }\n if (registeredClient.idTokenSignedResponseAlg) {\n infoToSave.idTokenSignedResponseAlg =\n registeredClient.idTokenSignedResponseAlg;\n }\n await this.storageUtility.setForUser(options.sessionId, infoToSave, {\n // FIXME: figure out how to persist secure storage at reload\n // Otherwise, the client info cannot be retrieved from storage, and\n // the lib tries to re-register the client on each fetch\n secure: false,\n });\n return registeredClient;\n } catch (error) {\n throw new Error(`Client registration failed: [${error}]`);\n }\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IIncomingRedirectHandler,\n ISessionInfo,\n} from \"@inrupt/solid-client-authn-core\";\nimport { EVENTS } from \"@inrupt/solid-client-authn-core\";\nimport type { EventEmitter } from \"events\";\n\nimport { getUnauthenticatedSession } from \"../../../sessionInfo/SessionInfoManager\";\n\n/**\n * This class handles redirect IRIs without any query params, and returns an unauthenticated\n * session. It serves as a fallback so that consuming libraries don't have to test\n * for the query params themselves, and can always try to use them as a redirect IRI.\n * @hidden\n */\nexport class ErrorOidcHandler implements IIncomingRedirectHandler {\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n // eslint-disable-next-line no-new\n return new URL(redirectUrl).searchParams.has(\"error\");\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`\n );\n }\n }\n\n async handle(\n redirectUrl: string,\n eventEmitter?: EventEmitter\n ): Promise<ISessionInfo & { fetch: typeof fetch }> {\n if (eventEmitter !== undefined) {\n const url = new URL(redirectUrl);\n const errorUrl = url.searchParams.get(\"error\");\n const errorDescriptionUrl = url.searchParams.get(\"error_description\");\n eventEmitter.emit(EVENTS.ERROR, errorUrl, errorDescriptionUrl);\n }\n return getUnauthenticatedSession();\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IClient,\n IClientRegistrar,\n IIssuerConfigFetcher,\n IStorageUtility,\n KeyPair,\n ITokenRefresher,\n TokenEndpointResponse,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n loadOidcContextFromStorage,\n EVENTS,\n} from \"@inrupt/solid-client-authn-core\";\nimport { refresh } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\n// Some identifiers are not in camelcase on purpose, as they are named using the\n// official names from the OIDC/OAuth2 specifications.\n/* eslint-disable camelcase */\n\n/**\n * @hidden\n */\nexport default class TokenRefresher implements ITokenRefresher {\n constructor(\n private storageUtility: IStorageUtility,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar\n ) {}\n\n async refresh(\n sessionId: string,\n refreshToken?: string,\n dpopKey?: KeyPair,\n eventEmitter?: EventEmitter\n ): Promise<TokenEndpointResponse> {\n const oidcContext = await loadOidcContextFromStorage(\n sessionId,\n this.storageUtility,\n this.issuerConfigFetcher\n );\n // This should also retrieve the client from storage\n const clientInfo: IClient = await this.clientRegistrar.getClient(\n { sessionId },\n oidcContext.issuerConfig\n );\n\n if (refreshToken === undefined) {\n // TODO: in a next PR, look up storage for a refresh token\n throw new Error(\n `Session [${sessionId}] has no refresh token to allow it to refresh its access token.`\n );\n }\n\n if (oidcContext.dpop && dpopKey === undefined) {\n throw new Error(\n `For session [${sessionId}], the key bound to the DPoP access token must be provided to refresh said access token.`\n );\n }\n\n const tokenSet = await refresh(\n refreshToken,\n oidcContext.issuerConfig,\n clientInfo,\n dpopKey\n );\n\n if (tokenSet.refreshToken !== undefined) {\n eventEmitter?.emit(EVENTS.NEW_REFRESH_TOKEN, tokenSet.refreshToken);\n await this.storageUtility.setForUser(sessionId, {\n refreshToken: tokenSet.refreshToken,\n });\n }\n return tokenSet;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Top Level core document. Responsible for setting up the dependency graph\n */\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\nimport {\n InMemoryStorage,\n IWaterfallLogoutHandler,\n} from \"@inrupt/solid-client-authn-core\";\nimport StorageUtilityBrowser from \"./storage/StorageUtility\";\nimport ClientAuthentication from \"./ClientAuthentication\";\nimport OidcLoginHandler from \"./login/oidc/OidcLoginHandler\";\nimport AuthorizationCodeWithPkceOidcHandler from \"./login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler\";\nimport IssuerConfigFetcher from \"./login/oidc/IssuerConfigFetcher\";\nimport { FallbackRedirectHandler } from \"./login/oidc/incomingRedirectHandler/FallbackRedirectHandler\";\nimport { SessionInfoManager } from \"./sessionInfo/SessionInfoManager\";\nimport { AuthCodeRedirectHandler } from \"./login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler\";\nimport AggregateRedirectHandler from \"./login/oidc/AggregateRedirectHandler\";\nimport BrowserStorage from \"./storage/BrowserStorage\";\nimport Redirector from \"./login/oidc/Redirector\";\nimport ClientRegistrar from \"./login/oidc/ClientRegistrar\";\nimport { ErrorOidcHandler } from \"./login/oidc/incomingRedirectHandler/ErrorOidcHandler\";\nimport TokenRefresher from \"./login/oidc/refresh/TokenRefresher\";\n\n/**\n *\n * @param dependencies\n * @deprecated This function will be removed from the external API in an upcoming release.\n */\nexport function getClientAuthenticationWithDependencies(dependencies: {\n secureStorage?: IStorage;\n insecureStorage?: IStorage;\n}): ClientAuthentication {\n const inMemoryStorage = new InMemoryStorage();\n const secureStorage = dependencies.secureStorage || inMemoryStorage;\n const insecureStorage = dependencies.insecureStorage || new BrowserStorage();\n\n const storageUtility = new StorageUtilityBrowser(\n secureStorage,\n insecureStorage\n );\n\n const issuerConfigFetcher = new IssuerConfigFetcher(storageUtility);\n const clientRegistrar = new ClientRegistrar(storageUtility);\n\n const sessionInfoManager = new SessionInfoManager(storageUtility);\n\n const tokenRefresher = new TokenRefresher(\n storageUtility,\n issuerConfigFetcher,\n clientRegistrar\n );\n\n const redirector = new Redirector();\n\n // make new handler for redirect and login\n const loginHandler = new OidcLoginHandler(\n storageUtility,\n new AuthorizationCodeWithPkceOidcHandler(storageUtility, redirector),\n issuerConfigFetcher,\n clientRegistrar\n );\n\n const redirectHandler = new AggregateRedirectHandler([\n new ErrorOidcHandler(),\n new AuthCodeRedirectHandler(\n storageUtility,\n sessionInfoManager,\n issuerConfigFetcher,\n clientRegistrar,\n tokenRefresher\n ),\n // This catch-all class will always be able to handle the\n // redirect IRI, so it must be registered last.\n new FallbackRedirectHandler(),\n ]);\n\n return new ClientAuthentication(\n loginHandler,\n redirectHandler,\n new IWaterfallLogoutHandler(sessionInfoManager, redirector),\n sessionInfoManager,\n issuerConfigFetcher\n );\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\nimport { SOLID_CLIENT_AUTHN_KEY_PREFIX } from \"@inrupt/solid-client-authn-core\";\n\nexport const KEY_CURRENT_SESSION = `${SOLID_CLIENT_AUTHN_KEY_PREFIX}currentSession`;\n\nexport const KEY_CURRENT_URL = `${SOLID_CLIENT_AUTHN_KEY_PREFIX}currentUrl`;\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n */\nimport type {\n ILoginInputOptions,\n ISessionInfo,\n IStorage,\n IHasSessionEventListener,\n ISessionEventListener,\n ILogoutOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport { EVENTS, buildProxyHandler } from \"@inrupt/solid-client-authn-core\";\nimport type { fetch } from \"@inrupt/universal-fetch\";\nimport { v4 } from \"uuid\";\nimport EventEmitter from \"events\";\nimport type ClientAuthentication from \"./ClientAuthentication\";\nimport { getClientAuthenticationWithDependencies } from \"./dependencies\";\nimport { KEY_CURRENT_SESSION, KEY_CURRENT_URL } from \"./constant\";\n\nexport interface ISessionOptions {\n /**\n * A private storage, unreachable to other scripts on the page. Typically in-memory.\n */\n secureStorage: IStorage;\n /**\n * A storage where non-sensitive information may be stored, potentially longer-lived than the secure storage.\n */\n insecureStorage: IStorage;\n /**\n * Details about the current session\n */\n sessionInfo: ISessionInfo;\n /**\n * An instance of the library core. Typically obtained using `getClientAuthenticationWithDependencies`.\n */\n clientAuthentication: ClientAuthentication;\n}\n\nexport interface IHandleIncomingRedirectOptions {\n /**\n * If the user has signed in before, setting this to `true` will automatically\n * redirect them to their Solid Identity Provider, which will then attempt to\n * re-activate the session and send the user back to your app without\n * requiring user interaction.\n * If your app's access has not expired yet and re-activation completed\n * successfully, a `sessionRestore` event will be fired with the URL the user\n * was at before they were redirected to their Solid Identity Provider.\n * {@see onSessionRestore}\n */\n restorePreviousSession?: boolean;\n\n /**\n * Inrupt's Enterprise Solid Server can set a cookie to allow the browser to\n * access private resources on a Pod. In order to mitigate the logout-on-refresh\n * issue on the short term, the server also implemented a session endpoint\n * enabling the client app to know whether the cookie is set. When a user\n * logs in to a server that has that capability enabled, applications that set\n * this option to `true` will be able to make use of it.\n *\n * If your app supports the newest session restore approach, and `restorePreviousSession`\n * is set to true, this option is automatically set to false, but your app will\n * not be logged out when reloaded.\n *\n * `useEssSession` defaults to false and will be removed in the future; to\n * preserve sessions across page reloads, use of `restorePreviousSession` is\n * recommended.\n *\n * @deprecated unreleased\n */\n useEssSession?: boolean;\n /**\n * The URL of the page handling the redirect, including the query\n * parameters — these contain the information to process the login.\n * Note: as a convenience, if no URL value is specified here, we default to\n * using the browser's current location.\n */\n url?: string;\n}\n\nexport async function silentlyAuthenticate(\n sessionId: string,\n clientAuthn: ClientAuthentication,\n session: Session\n): Promise<boolean> {\n const storedSessionInfo = await clientAuthn.validateCurrentSession(sessionId);\n if (storedSessionInfo !== null) {\n // It can be really useful to save the user's current browser location,\n // so that we can restore it after completing the silent authentication\n // on incoming redirect. This way, the user is eventually redirected back\n // to the page they were on and not to the app's redirect page.\n window.localStorage.setItem(KEY_CURRENT_URL, window.location.href);\n await clientAuthn.login(\n {\n sessionId,\n prompt: \"none\",\n oidcIssuer: storedSessionInfo.issuer,\n redirectUrl: storedSessionInfo.redirectUrl,\n clientId: storedSessionInfo.clientAppId,\n clientSecret: storedSessionInfo.clientAppSecret,\n tokenType: storedSessionInfo.tokenType ?? \"DPoP\",\n },\n session.events\n );\n return true;\n }\n return false;\n}\n\nfunction isLoggedIn(\n sessionInfo?: ISessionInfo\n): sessionInfo is ISessionInfo & { isLoggedIn: true } {\n return !!sessionInfo?.isLoggedIn;\n}\n\n/**\n * A {@link Session} object represents a user's session on an application. The session holds state, as it stores information enabling acces to private resources after login for instance.\n */\nexport class Session extends EventEmitter implements IHasSessionEventListener {\n /**\n * Information regarding the current session.\n */\n public readonly info: ISessionInfo;\n\n /**\n * Session attribute exposing the EventEmitter interface, to listen on session\n * events such as login, logout, etc.\n * @since 1.15.0\n */\n public readonly events: ISessionEventListener;\n\n private clientAuthentication: ClientAuthentication;\n\n private tokenRequestInProgress = false;\n\n /**\n * Session object constructor. Typically called as follows:\n *\n * ```typescript\n * const session = new Session();\n * ```\n *\n * See also [getDefaultSession](https://docs.inrupt.com/developer-tools/api/javascript/solid-client-authn-browser/functions.html#getdefaultsession).\n *\n * @param sessionOptions The options enabling the correct instantiation of\n * the session. Either both storages or clientAuthentication are required. For\n * more information, see {@link ISessionOptions}.\n * @param sessionId A string uniquely identifying the session.\n *\n */\n constructor(\n sessionOptions: Partial<ISessionOptions> = {},\n sessionId: string | undefined = undefined\n ) {\n super();\n // Until Session no longer implements EventEmitter, this.events is just a proxy\n // to this (with some interface filtering). When we make the breaking change,\n // this.events will be a regular EventEmitter (implementing ISessionEventEmitter):\n // this.events = new EventEmitter();\n this.events = new Proxy(\n this,\n buildProxyHandler(\n Session.prototype,\n \"events only implements ISessionEventListener\"\n )\n );\n if (sessionOptions.clientAuthentication) {\n this.clientAuthentication = sessionOptions.clientAuthentication;\n } else if (sessionOptions.secureStorage && sessionOptions.insecureStorage) {\n this.clientAuthentication = getClientAuthenticationWithDependencies({\n secureStorage: sessionOptions.secureStorage,\n insecureStorage: sessionOptions.insecureStorage,\n });\n } else {\n this.clientAuthentication = getClientAuthenticationWithDependencies({});\n }\n\n if (sessionOptions.sessionInfo) {\n this.info = {\n sessionId: sessionOptions.sessionInfo.sessionId,\n isLoggedIn: false,\n webId: sessionOptions.sessionInfo.webId,\n };\n } else {\n this.info = {\n sessionId: sessionId ?? v4(),\n isLoggedIn: false,\n };\n }\n\n // When a session is logged in, we want to track its ID in local storage to\n // enable silent refresh. The current session ID specifically stored in 'localStorage'\n // (as opposed to using our storage abstraction layer) because it is only\n // used in a browser-specific mechanism.\n this.events.on(EVENTS.LOGIN, () =>\n window.localStorage.setItem(KEY_CURRENT_SESSION, this.info.sessionId)\n );\n\n this.events.on(EVENTS.SESSION_EXPIRED, () => this.internalLogout(false));\n\n this.events.on(EVENTS.ERROR, () => this.internalLogout(false));\n }\n\n /**\n * Triggers the login process. Note that this method will redirect the user away from your app.\n *\n * @param options Parameter to customize the login behaviour. In particular, two options are mandatory: `options.oidcIssuer`, the user's identity provider, and `options.redirectUrl`, the URL to which the user will be redirected after logging in their identity provider.\n * @returns This method should redirect the user away from the app: it does not return anything. The login process is completed by {@linkcode handleIncomingRedirect}.\n */\n // Define these functions as properties so that they don't get accidentally re-bound.\n // Isn't Javascript fun?\n login = async (options: ILoginInputOptions): Promise<void> => {\n await this.clientAuthentication.login(\n {\n sessionId: this.info.sessionId,\n ...options,\n // Defaults the token type to DPoP\n tokenType: options.tokenType ?? \"DPoP\",\n },\n this.events\n );\n // `login` redirects the user away from the app,\n // so unless it throws an error, there is no code that should run afterwards\n // (since there is no \"after\" in the lifetime of the script).\n // Hence, this Promise never resolves:\n return new Promise(() => {});\n };\n\n /**\n * Fetches data using available login information. If the user is not logged in, this will behave as a regular `fetch`. The signature of this method is identical to the [canonical `fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * @param url The URL from which data should be fetched.\n * @param init Optional parameters customizing the request, by specifying an HTTP method, headers, a body, etc. Follows the [WHATWG Fetch Standard](https://fetch.spec.whatwg.org/).\n */\n fetch: typeof fetch = (url, init) =>\n this.clientAuthentication.fetch(url, init);\n\n /**\n * An internal logout function, to control whether or not the logout signal\n * should be sent, i.e. if the logout was user-initiated or is the result of\n * an external event.\n *\n * @hidden\n */\n private internalLogout = async (\n emitSignal: boolean,\n options?: ILogoutOptions\n ): Promise<void> => {\n // Clearing this value means that silent refresh will no longer be attempted.\n // In particular, in the case of a silent authentication error it prevents\n // from getting stuck in an authentication retries loop.\n window.localStorage.removeItem(KEY_CURRENT_SESSION);\n await this.clientAuthentication.logout(this.info.sessionId, options);\n this.info.isLoggedIn = false;\n if (emitSignal) {\n (this.events as EventEmitter).emit(EVENTS.LOGOUT);\n }\n };\n\n /**\n * Logs the user out of the application.\n *\n * There are 2 types of logout supported by this library,\n * `app` logout and `idp` logout.\n *\n * App logout will log the user out within the application\n * by clearing any session data from the browser. It does\n * not log the user out of their Solid identity provider,\n * and should not redirect the user away.\n * App logout can be performed as follows:\n * ```typescript\n * await session.logout({ logoutType: 'app' });\n * ```\n *\n * IDP logout will log the user out of their Solid identity provider,\n * and will redirect the user away from the application to do so.\n * IDP logout can be performed as follows:\n * ```typescript\n * await session.logout({\n * logoutType: 'idp',\n * // An optional URL to redirect to after logout has completed;\n * // this MUST match a logout URL listed in the clientId of\n * // the application that is logged in.\n * postLogoutUrl: 'https://example.com/logout',\n * // An optional value to be included in the query parameters\n * // when the IDP provider redirects the user to the postLogoutRedirectUrl.\n * state: \"my-state\"\n * });\n * ```\n */\n logout = async (options?: ILogoutOptions): Promise<void> =>\n this.internalLogout(true, options);\n\n /**\n * Completes the login process by processing the information provided by the\n * Solid identity provider through redirect.\n *\n * @param options See {@see IHandleIncomingRedirectOptions}.\n */\n handleIncomingRedirect = async (\n inputOptions: string | IHandleIncomingRedirectOptions = {}\n ): Promise<ISessionInfo | undefined> => {\n if (this.info.isLoggedIn) {\n return this.info;\n }\n\n if (this.tokenRequestInProgress) {\n return undefined;\n }\n const options =\n typeof inputOptions === \"string\" ? { url: inputOptions } : inputOptions;\n const url = options.url ?? window.location.href;\n\n this.tokenRequestInProgress = true;\n const sessionInfo = await this.clientAuthentication.handleIncomingRedirect(\n url,\n this.events\n );\n if (isLoggedIn(sessionInfo)) {\n this.setSessionInfo(sessionInfo);\n const currentUrl = window.localStorage.getItem(KEY_CURRENT_URL);\n if (currentUrl === null) {\n // The login event can only be triggered **after** the user has been\n // redirected from the IdP with access and ID tokens.\n (this.events as EventEmitter).emit(EVENTS.LOGIN);\n } else {\n // If an URL is stored in local storage, we are being logged in after a\n // silent authentication, so remove our currently stored URL location\n // to clean up our state now that we are completing the re-login process.\n window.localStorage.removeItem(KEY_CURRENT_URL);\n (this.events as EventEmitter).emit(EVENTS.SESSION_RESTORED, currentUrl);\n }\n } else if (options.restorePreviousSession === true) {\n // Silent authentication happens after a refresh, which means there are no\n // OAuth params in the current location IRI. It can only succeed if a session\n // was previously logged in, in which case its ID will be present with a known\n // identifier in local storage.\n // Check if we have a locally stored session ID...\n const storedSessionId = window.localStorage.getItem(KEY_CURRENT_SESSION);\n // ...if not, then there is no ID token, and so silent authentication cannot happen, but\n // if we do have a stored session ID, attempt to re-authenticate now silently.\n if (storedSessionId !== null) {\n const attemptedSilentAuthentication = await silentlyAuthenticate(\n storedSessionId,\n this.clientAuthentication,\n this\n );\n // At this point, we know that the main window will imminently be redirected.\n // However, this redirect is asynchronous and there is no way to halt execution\n // until it happens precisely. That's why the current Promise simply does not\n // resolve.\n if (attemptedSilentAuthentication) {\n return new Promise(() => {});\n }\n }\n }\n this.tokenRequestInProgress = false;\n return sessionInfo;\n };\n\n /**\n * Register a callback function to be called when a user completes login.\n *\n * The callback is called when {@link handleIncomingRedirect} completes successfully.\n *\n * @param callback The function called when a user completes login.\n * @deprecated Prefer session.events.on(EVENTS.LOGIN, callback)\n */\n onLogin(callback: () => unknown): void {\n this.events.on(EVENTS.LOGIN, callback);\n }\n\n /**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when a user completes logout.\n * @deprecated Prefer session.events.on(EVENTS.LOGOUT, callback)\n */\n onLogout(callback: () => unknown): void {\n this.events.on(EVENTS.LOGOUT, callback);\n }\n\n /**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when an error occurs.\n * @since 1.11.0\n * @deprecated Prefer session.events.on(EVENTS.ERROR, callback)\n */\n onError(\n callback: (\n error: string | null,\n errorDescription?: string | null\n ) => unknown\n ): void {\n this.events.on(EVENTS.ERROR, callback);\n }\n\n /**\n * Register a callback function to be called when a session is restored.\n *\n * Note: the callback will be called with the saved value of the 'current URL'\n * at the time the session was restored.\n *\n * @param callback The function called when a user's already logged-in session is restored, e.g., after a silent authentication is completed after a page refresh.\n * @deprecated Prefer session.events.on(EVENTS.SESSION_RESTORED, callback)\n */\n onSessionRestore(callback: (currentUrl: string) => unknown): void {\n this.events.on(EVENTS.SESSION_RESTORED, callback);\n }\n\n /**\n * Register a callback that runs when the session expires and can no longer\n * make authenticated requests, but following a user logout.\n * @param callback The function that runs on session expiration.\n * @since 1.11.0\n * @deprecated Prefer session.events.on(EVENTS.SESSION_EXPIRED, callback)\n */\n onSessionExpiration(callback: () => unknown): void {\n this.events.on(EVENTS.SESSION_EXPIRED, callback);\n }\n\n private setSessionInfo(\n sessionInfo: ISessionInfo & { isLoggedIn: true }\n ): void {\n this.info.isLoggedIn = sessionInfo.isLoggedIn;\n this.info.webId = sessionInfo.webId;\n this.info.sessionId = sessionInfo.sessionId;\n this.info.expirationDate = sessionInfo.expirationDate;\n this.events.on(EVENTS.SESSION_EXTENDED, (expiresIn: number) => {\n this.info.expirationDate = Date.now() + expiresIn * 1000;\n });\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\nimport { Session } from \"./Session\";\n\nlet defaultSession: Session | undefined;\n\n/**\n * Obtain the {@link Session} used when not explicitly instantiating one yourself.\n *\n * When using the top-level exports {@link fetch}, {@link login}, {@link logout},\n * {@link handleIncomingRedirect}, {@link onLogin} and {@link onLogout}, these apply to an\n * implicitly-instantiated {@link Session}.\n * This function returns a reference to that Session in order to obtain e.g. the current user's\n * WebID.\n * @since 1.3.0\n */\nexport function getDefaultSession(): Session {\n if (typeof defaultSession === \"undefined\") {\n defaultSession = new Session();\n }\n return defaultSession;\n}\n\n/**\n * This function's signature is equal to `window.fetch`, but if the current user is authenticated\n * (see [[login]] and [[handleIncomingRedirect]]), requests made using it will include that user's\n * credentials. If not, this will behave just like the regular `window.fetch`.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch}\n * @since 1.3.0\n */\n/* eslint-disable-next-line no-shadow */\nexport const fetch: Session[\"fetch\"] = (...args) => {\n const session = getDefaultSession();\n return session.fetch(...args);\n};\n\n/**\n * Triggers the login process. Note that this method will redirect the user away from your app.\n *\n * @param options Parameter to customize the login behaviour. In particular, two options are mandatory: `options.oidcIssuer`, the user's identity provider, and `options.redirectUrl`, the URL to which the user will be redirected after logging in their identity provider.\n * @returns This method should redirect the user away from the app: it does not return anything. The login process is completed by [[handleIncomingRedirect]].\n * @since 1.3.0\n */\nexport const login: Session[\"login\"] = (...args) => {\n const session = getDefaultSession();\n return session.login(...args);\n};\n\n/**\n * Logs the user out of the application.\n *\n * By default this does not log the user out of their Solid identity provider.\n * In order to do so, you must set the logoutType to `idp`.\n *\n * @since 1.3.0\n */\nexport const logout: Session[\"logout\"] = (...args) => {\n const session = getDefaultSession();\n return session.logout(...args);\n};\n\n/**\n * Completes the login process by processing the information provided by the Solid identity provider through redirect.\n *\n * @param url The URL of the page handling the redirect, including the query parameters — these contain the information to process the login.\n * @since 1.3.0\n */\nexport const handleIncomingRedirect: Session[\"handleIncomingRedirect\"] = (\n ...args\n) => {\n const session = getDefaultSession();\n return session.handleIncomingRedirect(...args);\n};\n\n/**\n * Register a callback function to be called when a user completes login.\n *\n * The callback is called when {@link handleIncomingRedirect} completes successfully.\n * @since 1.3.0\n *\n * @param callback The function called when a user completes login.\n * @deprecated Prefer events.on(EVENTS.LOGIN, callback)\n\n */\nexport const onLogin: Session[\"onLogin\"] = (...args) => {\n const session = getDefaultSession();\n return session.onLogin(...args);\n};\n\n/**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when a user completes logout.\n * @since 1.3.0\n * @deprecated Prefer events.on(EVENTS.LOGOUT, callback)\n\n */\nexport const onLogout: Session[\"onLogout\"] = (...args) => {\n const session = getDefaultSession();\n return session.onLogout(...args);\n};\n\n/**\n * Register a callback function to be called when a session is restored:\n *\n * @param callback The function called when a session is restored.\n * @since 1.3.0\n * @deprecated Prefer events.on(EVENTS.SESSION_RESTORED, callback)\n */\nexport const onSessionRestore: Session[\"onSessionRestore\"] = (...args) => {\n const session = getDefaultSession();\n return session.onSessionRestore(...args);\n};\n\n/**\n * {@link SessionEventEmitter} instance to subscribe to events by the default session.\n *\n * @since Unreleased\n */\nexport const events = (): Session[\"events\"] => {\n return getDefaultSession().events;\n};\n"],"names":["ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","EventEmitter","init","this","eventsModule","exports","once","emitter","name","Promise","resolve","reject","errorListener","err","removeListener","resolver","slice","arguments","eventTargetAgnosticAddListener","handler","flags","on","addErrorHandlerIfEventEmitter","_events","undefined","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","type","prepend","m","events","existing","warning","create","newListener","emit","unshift","push","length","warned","w","Error","String","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","Array","i","unwrapListeners","arrayClone","listenerCount","n","copy","addEventListener","wrapListener","arg","removeEventListener","defineProperty","enumerable","get","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","fetch","Response","Request","Headers","globalThis","crypto$1","crypto","isCryptoKey","CryptoKey","encoder","TextEncoder","decoder","TextDecoder","buffers","size","reduce","acc","buf","Uint8Array","forEach","buffer","encode","input","unencoded","fromCharCode","subarray","btoa","join","encodeBase64","replace","decode","encoded","binary","atob","bytes","charCodeAt","decodeBase64","_a","JOSEError","code","constructor","super","captureStackTrace","JWTClaimValidationFailed","claim","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWSInvalid","JWTInvalid","JWSSignatureVerificationFailed","unusable","prop","isAlgorithm","algorithm","getHashLength","hash","parseInt","checkSigCryptoKey","alg","usages","expected","getNamedCurve","namedCurve","some","includes","msg","last","checkUsage","actual","types","getRandomValues","invalidKeyInput","withAlg","isKeyLike","isDisjoint","headers","sources","filter","Boolean","header","parameters","parameter","has","add","Set","isObject","toString","proto","checkKeyLength","startsWith","modulusLength","asKeyObject","async","jwk","_b","keyUsages","kty","d","crv","subtleMapping","rest","ext","key_ops","subtle","importKey","base64url","k","keyData","use","checkKeyType","usage","test","symmetricTypeCheck","asymmetricTypeCheck","validateCrit","Err","recognizedDefault","recognizedOption","protectedHeader","joseHeader","crit","isArray","recognized","Map","entries","validateAlgorithms","option","algorithms","s","keyToJWK$1","extractable","exportKey","exportJWK","keyToJWK","subtleDsa","saltLength","getCryptoKey","verify","signature","data","cryptoKey","getVerifyKey","subtleAlgorithm","compactVerify","jws","options","payload","split","verified","protected","parsedProt","JSON","parse","b64","resolvedKey","result","unprotectedHeader","flattenedVerify","epoch","date","Math","floor","getTime","day","hour","REGEX","secs","str","matched","exec","parseFloat","toLowerCase","round","minute","normalizeTyp","jwtPayload","encodedPayload","typ","requiredClaims","issuer","subject","audience","maxTokenAge","reverse","iss","sub","audPayload","aud","audOption","tolerance","clockTolerance","currentDate","now","Date","iat","nbf","exp","age","FlattenedSign","_payload","setProtectedHeader","_protectedHeader","setUnprotectedHeader","_unprotectedHeader","stringify","getSignKey","sign","CompactSign","_flattened","ProduceJWT","setIssuer","setSubject","setAudience","setJti","jwtId","jti","setNotBefore","setExpirationTime","setIssuedAt","SignJWT","sig","getModulusLengthOption","generateKeyPair","_c","publicExponent","generateKey","generate","rnds8","rng","byteToHex","native$1","randomUUID","v4","offset","native","rnds","random","unsafeStringify","SOLID_CLIENT_AUTHN_KEY_PREFIX","PREFERRED_SIGNING_ALG","EVENTS","ERROR","LOGIN","LOGOUT","NEW_REFRESH_TOKEN","SESSION_EXPIRED","SESSION_EXTENDED","SESSION_RESTORED","TIMEOUT_SET","DEFAULT_SCOPES","AggregateHandler","handleables","params","canHandleList","all","map","handleable","canHandle","getProperHandler","handle","param","getWebidFromTokenPayload","idToken","jwksIri","issuerIri","clientId","jwksResponse","status","statusText","json","e","fetchJwks","verifiedPayload","jwt","jwtVerify","octAsKeyObject","decodeBase64URL","oth","importJWK","stack","webid","URL","AuthorizationCodeWithPkceOidcHandlerBase","storageUtility","redirector","oidcLoginOptions","issuerConfiguration","grantTypesSupported","indexOf","codeVerifier","targetUrl","setForUser","sessionId","redirectUrl","dpop","redirect","handleRedirect","GeneralLogoutHandler","sessionInfoManager","userId","clear","IRpLogoutHandler","logoutType","toLogoutUrl","IWaterfallLogoutHandler","handlers","getUnauthenticatedSession","isLoggedIn","storage","deleteAllUserData","secure","SessionInfoManagerBase","update","_sessionId","_options","_","maybeBuildRpInitiatedLogout","endSessionEndpoint","idTokenHint","postLogoutUrl","postLogoutRedirectUri","url","searchParams","append","getEndSessionUrl","isValidUrl","handleRegistration","issuerConfig","clientRegistrar","clientType","scopesSupported","determineClientType","getClient","clientName","clientSecret","globalFetch","request","ClientAuthentication$1","loginHandler","redirectHandler","logoutHandler","issuerConfigFetcher","logout","boundLogout","getSessionInfo","getAllSessionInfo","getAll","loadOidcContextFromStorage","configFetcher","storedRedirectIri","getForUser","errorIfNull","deleteForUser","fetchConfig","StorageUtility","secureStorage","insecureStorage","getKey","stored","delete","userData","getUserData","values","setUserData","InMemoryStorage","ConfigurationError","NotImplementedError","methodName","InvalidResponseError","missingFields","OidcProviderError","errorDescription","normalizeHTU","audienceUrl","pathname","origin","createDpopHeader","method","dpopKey","htu","htm","toUpperCase","publicKey","privateKey","DEFAULT_EXPIRATION_TIME_SECONDS","buildAuthenticatedHeaders","authToken","defaultOptions","buildDpopFetchOptions","makeAuthenticatedRequest","unauthFetch","accessToken","defaultRequestInit","computeRefreshDelay","expiresIn","buildAuthenticatedFetch","latestTimeout","currentAccessToken","currentRefreshOptions","refreshOptions","proactivelyRefreshToken","_d","refreshedAccessToken","refreshToken","eventEmitter","tokenSet","tokenRefresher","refresh","refreshAccessToken","clearTimeout","setTimeout","expirationTimeout","requestInit","response","failedButNotExpectedAuthError","ok","statusCode","StorageUtilityBrowser","r","t","l","c","o","Symbol","toStringTag","__esModule","default","hasOwnProperty","p","configurable","writable","debug","info","Log","reset","from","setInterval","clearInterval","Global","_testing","setXMLHttpRequest","location","window","localStorage","sessionStorage","XMLHttpRequest","MetadataService","a","JsonService","_settings","_jsonService","resetSigningKeys","signingKeys","getMetadata","metadata","metadataUrl","getJson","then","metadataSeed","assign","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","_metadataUrl","authority","UrlUtility","addQueryParam","encodeURIComponent","parseUrlFragment","href","lastIndexOf","substr","u","h","decodeURIComponent","JoseUtil","KeyUtil","X509","hextob64u","b64tohex","AllowedSigningAlgs","OidcClientSettings","iterator","v","client_id","y","client_secret","response_type","S","scope","b","redirect_uri","F","post_logout_redirect_uri","E","client_authentication","x","A","prompt","display","P","max_age","C","ui_locales","T","acr_values","resource","I","response_mode","D","filterProtocolClaims","L","N","loadUserInfo","U","B","staleStateAge","O","j","clockSkew","M","H","clockService","V","ClockService","K","userInfoJwtIssuer","q","J","mergeClaims","W","z","stateStore","Y","WebStorageStateStore","G","ResponseValidatorCtor","X","ResponseValidator","$","MetadataServiceCtor","Q","Z","extraQueryParams","tt","et","extraTokenParams","rt","_authority","_metadata","_metadataSeed","_signingKeys","_client_id","_client_secret","_response_type","_scope","_redirect_uri","_post_logout_redirect_uri","_client_authentication","_prompt","_display","_max_age","_ui_locales","_acr_values","_resource","_response_mode","_filterProtocolClaims","_loadUserInfo","_staleStateAge","_clockSkew","_clockService","_userInfoJwtIssuer","_mergeClaims","_stateStore","_validator","_metadataService","_extraQueryParams","_extraTokenParams","getEpochTime","prefix","store","_store","_prefix","setItem","getItem","remove","removeItem","getAllKeys","_contentTypes","_XMLHttpRequest","_jwtHandler","open","onload","getResponseHeader","find","responseText","onerror","setRequestHeader","send","postForm","SigninRequest","f","g","id_token_hint","login_hint","request_uri","request_type","skipUserInfo","isOidc","isCode","SigninState","nonce","code_verifier","id","code_challenge","isOAuth","State","created","_id","_data","_created","_request_type","toStorageString","fromStorageString","clearStaleState","OidcClient","createSigninRequest","readSigninResponseState","SigninResponse","processSigninResponse","validateSigninResponse","createSignoutRequest","SignoutRequest","readSignoutResponseState","SignoutResponse","ErrorResponse","processSignoutResponse","validateSignoutResponse","settings","validator","metadataService","TokenClient","exchangeCode","grant_type","exchangeRefreshToken","refresh_token","error_description","error_uri","session_state","ReferenceError","setPrototypeOf","__proto__","_nonce","_code_verifier","hashString","_code_challenge","hexToBase64Url","_skipUserInfo","msCrypto","User","id_token","access_token","token_type","profile","expires_at","expires_in","AccessTokenEvents","accessTokenExpiringNotificationTime","accessTokenExpiringTimer","Timer","accessTokenExpiredTimer","_accessTokenExpiringNotificationTime","_accessTokenExpiring","_accessTokenExpired","load","cancel","unload","addAccessTokenExpiring","addHandler","removeAccessTokenExpiring","removeHandler","addAccessTokenExpired","removeAccessTokenExpired","Event","_name","_callbacks","findIndex","splice","raise","SessionMonitor","CheckSessionIFrame","timer","_userManager","_CheckSessionIFrameCtor","_timer","addUserLoaded","_start","addUserUnloaded","_stop","getUser","monitorAnonymousSession","querySessionStatus","sid","catch","_sub","_sid","_checkSessionIFrame","start","_checkSessionInterval","_stopCheckSessionOnError","_callback","stop","_raiseUserSessionChanged","_raiseUserSignedOut","_raiseUserSignedIn","checkSessionInterval","stopCheckSessionOnError","_url","_interval","_stopOnError","_frame_origin","_frame","document","createElement","style","visibility","width","height","src","body","appendChild","_boundMessageEvent","_message","source","contentWindow","_session_state","postMessage","TokenRevocationClient","_XMLHttpRequestCtor","revoke","_revoke","CordovaPopupWindow","_promise","_resolve","_reject","features","popupWindowFeatures","popupWindowTarget","startUrl","_isInAppBrowserInstalled","navigate","cordova","_error","require","_popup","InAppBrowser","_exitCallbackEvent","_exitCallback","_loadStartCallbackEvent","_loadStartCallback","promise","_success","_cleanup","close","Version","InMemoryWebStorage","UserManager","CordovaPopupNavigator","CordovaIFrameNavigator","UserInfoService","_userInfoService","_joseUtil","_tokenClient","_processSigninParams","_validateTokens","_processClaims","isOpenIdConnect","getClaims","_processCode","_validateIdTokenAndAccessToken","_validateIdToken","_validateIdTokenAttributes","validateJwtAttributes","_validateAccessToken","_getSigningKeyForJwt","kid","_filterByAlg","_getSigningKeyForJwtWithSingleRetry","parseJwt","validateJwt","at_hash","_getClaimsFromJwt","KEYUTIL","userAgent","lib","Base","extend","mixIn","$super","clone","WordArray","words","sigBytes","clamp","ceil","enc","Hex","Latin1","Utf8","escape","unescape","BufferedBlockAlgorithm","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","high","low","toX32","Base64","_map","charAt","sqrt","pow","SHA256","_hash","HmacSHA256","SHA512","nt","HmacSHA512","SHA384","HmacSHA384","substring","fromNumber","fromString","appName","am","DB","DM","DV","FV","F1","F2","fromInt","mp","invDigit","mpl","mph","um","mt2","r2","q3","ONE","dlShiftTo","mu","divide","convert","compareTo","mod","revert","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","ZERO","subTo","copyTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","negate","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","Pe","Ce","Te","Tt","Rt","It","Re","chunkSize","LN2","log","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","subtract","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","toByteArray","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","multiply","remainder","divideAndRemainder","modInverse","gcd","square","next","Ie","De","Le","appVersion","Ne","Ue","Be","Oe","je","Me","dmp1","dmq1","coeff","He","Ve","curve","zinv","Ke","fromBigInteger","infinity","doPublic","setPublic","isPublic","isPrivate","encrypt","encryptOAEP","Sr","MessageDigest","Util","getCanonicalAlgName","Lr","hashHex","Nr","toBigInteger","getX","getY","isInfinity","twice","getInfinity","multiplyTwo","getQ","getA","getB","decodePointHex","getByteLength","getEncoded","toByteArrayUnsigned","decodeFrom","decodeFromHex","add2D","twice2D","valueOf","multiply2D","isOnCurve","validate","_r","RegExp","match","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","getPEMStringFromHex","jr","newObject","ASN1Object","DERBoolean","DERInteger","DERBitString","DEROctetString","DERNull","DERObjectIdentifier","DEREnumerated","DERUTF8String","DERNumericString","DERPrintableString","DERTeletexString","DERIA5String","DERUTCTime","DERGeneralizedTime","DERVisibleString","DERBMPString","DERSequence","DERSet","DERTaggedObject","array","tag","explicit","obj","jsonToASN1HEX","getEncodedHex","oidHexToInt","oidIntToHex","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","setByParam","tlv","DERAbstractString","superclass","getString","setString","Ir","setStringHex","hex","Zr","DERAbstractTime","localDateToUTC","getTimezoneOffset","formatDate","zeroPadding","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","kr","setByDateValue","UTC","setByDate","DERAbstractStructured","setByASN1ObjectArray","asn1Array","appendASN1Object","setByBigInteger","setByInteger","setValueHex","bigint","int","setHexValueIncludingUnusedBits","setUnusedBitsAndHexValue","setByBinaryString","setByBooleanArray","newFalseArray","bin","setValueOidString","setValueName","x509","OID","name2oid","setValueNameOrOid","oid","withMillis","millis","sortFlag","sort","sortflag","isExplicit","asn1Object","setASN1Object","tage","tagi","br","wr","Fr","Er","xr","Ar","Pr","Cr","Tr","Rr","Kr","Gr","Dr","qr","Ur","Br","Or","Mr","Hr","Vr","Jr","repeat","Wr","zr","Yr","Xr","$r","getLblen","getL","getVblen","getVidx","getV","getTLV","getTLVblen","getNextSiblingIdx","getChildIdx","getNthChildIdx","getIdxbyList","getIdxbyListEx","isContextTag","getTLVbyList","getTLVbyListEx","getVbyList","getVbyListEx","getInt","getOID","Qr","getOIDName","oid2name","hextooidstr","dump","ommit_long_octet","isASN1HEX","oidname","x509ExtName","checkStrictDER","lang","isHex","utf8tob64u","b64utoutf8","isInteger","isBase64","isBase64URL","isIntegerArray","isPrintable","isIA5","isMail","DIGESTINFOHEAD","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","DEFAULTPROVIDER","hmacmd5","hmacsha1","hmacsha224","hmacsha256","hmacsha384","hmacsha512","hmacripemd160","MD5withRSA","SHA1withRSA","SHA224withRSA","SHA256withRSA","SHA384withRSA","SHA512withRSA","RIPEMD160withRSA","MD5withECDSA","SHA1withECDSA","SHA224withECDSA","SHA256withECDSA","SHA384withECDSA","SHA512withECDSA","RIPEMD160withECDSA","SHA1withDSA","SHA224withDSA","SHA256withDSA","MD5withRSAandMGF1","SHAwithRSAandMGF1","SHA1withRSAandMGF1","SHA224withRSAandMGF1","SHA256withRSAandMGF1","SHA384withRSAandMGF1","SHA512withRSAandMGF1","RIPEMD160withRSAandMGF1","CRYPTOJSMESSAGEDIGESTNAME","MD5","SHA1","SHA224","RIPEMD160","getDigestInfoHex","getPaddedDigestInfoHex","digestString","digestHex","sha256Hex","sha512Hex","isKey","DSA","ECDSA","prov","SECURERANDOMGEN","getRandomHexOfNbytes","getRandomBigIntegerOfNbytes","getRandomHexOfNbits","getRandomBigIntegerOfNbits","getRandomBigIntegerZeroToMax","getRandomBigIntegerMinToMax","setAlgAndProvider","md","updateString","updateHex","digest","sjcl","codec","toBits","fromBits","algName","provName","HASHLENGTH","Mac","algProv","mac","pass","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64u","Signature","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","tn","prvKey","pubKey","sHashHex","ecprvhex","eccurvename","prv","hSign","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","signString","signHex","ecpubhex","pub","verifyWithMessageHashPSS","verifyWithMessageHash","algProvName","initParams","psssaltlen","prvkeypem","prvkeypas","Cipher","getAlgByKeyAndName","decrypt","decryptOAEP","oidhex2name","ECParameterDB","getName","getBigRandom","setNamedCurve","ecparams","getByName","prvKeyHex","pubKeyHex","curveName","setPrivateKeyHex","setPublicKeyHex","getPublicKeyXYHex","keylen","getShortNISTPCurveName","generateKeyPairHex","biRSSigToASN1Sig","fromByteArrayUnsigned","serializeSig","verifyHex","parseSigHex","verifyRaw","Bitcoin","parseSig","toByteArraySigned","parseSigCompact","readPKCS5PrvKeyHex","readPKCS8PrvKeyHex","readPKCS8PubKeyHex","readCertPubKeyHex","parseSigHexInHexRS","asn1SigToConcatSig","concatSigToASN1Sig","hexRSSigToASN1Sig","regist","AES","iv","ciphertext","proc","eproc","ivlen","TripleDES","DES","cipher","ivsalt","keyhex","ivhex","version","parsePKCS5PEM","getKeyAndUnusedIvByPasscodeAndIvsalt","decryptKeyB64","getDecryptedKeyHex","getEncryptedPKCS5PEMFromPrvKeyHex","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","PBKDF2","keySize","iterations","_getPlainPKCS8HexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algparam","algoid","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","en","rn","nn","AlgorithmIdentifier","PSSNAME2ASN1TLV","HEX2STAG","foffset","aExtInfo","getVersion","getSerialNumberHex","getSignatureAlgorithmField","getAlgorithmIdentifierName","getX500Name","getIssuerHex","getIssuerString","getSubject","getSubjectHex","getSubjectString","getNotBefore","getNotAfter","getPublicKeyHex","getPublicKeyIdx","getPublicKeyContentIdx","getPublicKey","getSignatureAlgorithmName","getSignatureValueHex","verifySignature","parseExt","critical","vidx","getExtInfo","getExtBasicConstraints","extname","cA","pathLen","getExtKeyUsage","names","getExtKeyUsageString","getExtKeyUsageBin","KEYUSAGE_NAME","getExtSubjectKeyIdentifier","getExtAuthorityKeyIdentifier","getGeneralNames","dn","sn","getExtExtKeyUsage","getExtExtKeyUsageName","getExtSubjectAltName","getExtIssuerAltName","getGeneralName","rfc822","dns","uri","ip","getExtSubjectAltName2","hex2dn","getExtCRLDistributionPoints","getDistributionPoint","dpname","getDistributionPointName","full","getExtCRLDistributionPointsURI","getExtAIAInfo","ocsp","caissuer","getExtAuthorityInfoAccess","getExtCertificatePolicies","getPolicyInformation","policyoid","getPolicyQualifierInfo","cps","unotice","getUserNotice","exptext","getDisplayText","getExtCRLNumber","num","getExtCRLReason","getExtOcspNonce","getExtOcspNoCheck","getExtAdobeTimeStamp","reqauth","getX500NameRule","ds","getX500NameArray","dnarraytostr","getRDN","getAttrTypeAndValue","oid2atype","readCertPEM","readCertHex","getParam","serial","sigalg","notbefore","notafter","sbjpubkey","getExtParamArray","sighex","getExtParam","extn","findExt","updateExtCDPFullURI","updateExtAIAOCSP","updateExtAIACAIssuer","getInfo","dname","xy","dp","dq","co","qi","setPrivateEx","setPrivate","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","prvKeyObj","pubKeyObj","getPEM","SubjectPublicKeyInfo","seq","octstr","bitstr","null","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getKeyID","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","doPrivate","signPSS","verifyPSS","SALT_LEN_HLEN","SALT_LEN_MAX","SALT_LEN_RECOVER","hex2rdn","hex2attrTypeValue","getPublicKeyInfoPropOfCertPEM","JWS","isSafeJSONString","parseJWS","parsedJWS","sigvalH","headB64U","payloadB64U","sigvalB64U","si","sigvalBI","headS","payloadS","readSafeJSONString","jwsalg2sigalg","headerObj","payloadObj","headerPP","payloadPP","sigHex","verifyJWT","inArray","includedArray","IntDate","getNow","verifyAt","gracePeriod","HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","PS256","PS384","PS512","none","getEncodedSignatureValueFromJWS","getJWKthumbprint","getZulu","intDate2UTCString","toUTCString","intDate2Zulu","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","SecureRandom","rng_seed_time","BigInteger","RSAKey","EDSA","an","un","cn","hn","ln","ASN1HEX","CryptoJS","b64toBA","stoBA","BAtos","BAtohex","stohex","stob64","stob64u","b64utos","b64tob64u","b64utob64","hex2b64","b64utohex","utf8tob64","b64toutf8","utf8tohex","hextoutf8","hextorstr","rstrtohex","hextob64","hextob64nl","b64nltohex","hextopem","pemtohex","hextoArrayBuffer","ArrayBuffer","DataView","setUint8","ArrayBuffertohex","byteLength","getUint8","zulutomsec","zulutosec","zulutodate","datetozulu","getUTCMilliseconds","uricmptohex","hextouricmp","ipv6tohex","hextoipv6","hextoip","iptohex","encodeURIComponentAll","newline_toUnix","newline_toDos","hextoposhex","intarystrtohex","strdiffidx","xn","An","kn","Pn","Buffer","TYPED_ARRAY_SUPPORT","isEncoding","write","isBuffer","isView","readUInt16BE","fromByteArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","kMaxLength","poolSize","_augment","species","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","isFinite","toJSON","_arr","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","trim","NaN","x5c","_validateJwt","azp","scopes","SilentRenewService","UserManagerSettings","UserManagerEvents","_silentRenewService","automaticSilentRenew","startSilentRenew","monitorSession","_sessionMonitor","_tokenRevocationClient","_loadUser","removeUser","storeUser","signinRedirect","useReplaceToNavigate","_signinStart","_redirectNavigator","signinRedirectCallback","_signinEnd","signinPopup","popup_redirect_uri","_signin","_popupNavigator","signinPopupCallback","_signinCallback","signinSilent","_useRefreshToken","includeIdTokenInSilentRenew","validateSubOnSilentRenew","current_sub","_signinSilentIframe","_validateIdTokenFromTokenRefreshToken","auth_time","silent_redirect_uri","_iframeNavigator","silentRequestTimeout","signinSilentCallback","signinCallback","signoutCallback","signoutRedirectCallback","signoutPopupCallback","query_status_response_type","prepare","callback","signoutRedirect","_signoutStart","_signoutEnd","signoutPopup","popup_post_logout_redirect_uri","_signout","revokeAccessTokenOnSignout","_revokeInternal","revokeAccessToken","_revokeAccessTokenInternal","_revokeRefreshTokenInternal","stopSilentRenew","_userStore","_userStoreKey","redirectNavigator","popupNavigator","iframeNavigator","userStore","RedirectNavigator","PopupNavigator","IFrameNavigator","_popup_redirect_uri","_popup_post_logout_redirect_uri","_popupWindowFeatures","_popupWindowTarget","_silent_redirect_uri","_silentRequestTimeout","_automaticSilentRenew","_validateSubOnSilentRenew","_includeIdTokenInSilentRenew","_monitorSession","_monitorAnonymousSession","_query_status_response_type","_revokeAccessTokenOnSignout","PopupWindow","notifyOpener","_checkForPopupClosedTimer","_checkForPopupClosed","focus","closed","opener","IFrameWindow","notifyParent","_timeout","removeChild","_origin","parent","protocol","host","_userLoaded","_userUnloaded","_silentRenewError","_userSignedIn","_userSignedOut","_userSessionChanged","removeUserLoaded","removeUserUnloaded","addSilentRenewError","removeSilentRenewError","_raiseSilentRenewError","addUserSignedIn","removeUserSignedIn","addUserSignedOut","removeUserSignedOut","addUserSessionChanged","removeUserSessionChanged","_nowFunc","expiration","_timerHandle","_expiration","_tokenExpiring","registerClient","registrationEndpoint","idTokenSigningAlgValuesSupported","signingAlg","supported","preferred","determineSigningAlg","config","client_name","application_type","redirect_uris","subject_type","token_endpoint_auth_method","id_token_signed_response_alg","grant_types","registerResponse","responseBody","validateRegistrationResponse","idTokenSignedResponseAlg","processErrorResponse","text","hasErrorDescription","validateTokenEndpointResponse","tokenResponse","hasErrorUri","hasAccessToken","hasIdToken","hasTokenType","hasExpiresIn","getTokens","client","grantType","tokenEndpoint","validatePreconditions","dpopKeyPair","generateDpopKeyPair","DPoP","Authorization","requestBody","tokenRequestInit","URLSearchParams","rawTokenResponse","fetch$1","webId","jwksUri","dpopHeader","authHeader","rawResponse","validatedResponse","ClientAuthentication","ClientAuthenticationBase","login","cleanedUrl","removeOidcQueryParam","isValidRedirectUrl","validateCurrentSession","currentSessionId","sessionInfo","clientAppId","handleIncomingRedirect","redirectInfo","getLogoutUrl","cleanUrlAfterRedirect","expirationDate","cleanedUpUrl","history","replaceState","hasIssuer","oidcIssuer","hasRedirectUrl","OidcLoginHandler","oidcHandler","clientRegistration","OidcOptions","tokenType","AuthorizationCodeWithPkceOidcHandler","oidcOptions","oidcClientLibrary","signingRequest","issuerConfigKeyMap","toKey","convertToUrl","authorization_endpoint","token_endpoint","userinfo_endpoint","jwks_uri","registration_endpoint","end_session_endpoint","scopes_supported","response_types_supported","response_modes_supported","grant_types_supported","acr_values_supported","subject_types_supported","id_token_signing_alg_values_supported","id_token_encryption_alg_values_supported","id_token_encryption_enc_values_supported","userinfo_signing_alg_values_supported","userinfo_encryption_alg_values_supported","userinfo_encryption_enc_values_supported","request_object_signing_alg_values_supported","request_object_encryption_alg_values_supported","request_object_encryption_enc_values_supported","token_endpoint_auth_methods_supported","token_endpoint_auth_signing_alg_values_supported","display_values_supported","claim_types_supported","claims_supported","service_documentation","claims_locales_supported","ui_locales_supported","claims_parameter_supported","request_parameter_supported","request_uri_parameter_supported","require_request_uri_registration","op_policy_uri","op_tos_uri","IssuerConfigFetcher","static","openIdConfigUrl","endsWith","issuerConfigRequestBody","parsedConfig","processConfig","getLocalStorageKey","clearBase","myStorage","itemsToRemove","clearOidcPersistentStorage","SessionInfoManager","token","clientAppSecret","FallbackRedirectHandler","_redirectUrl","AuthCodeRedirectHandler","tokerRefresher","myUrl","oauthState","storedSessionId","isDpop","tokens","tokenCreatedAt","getDpopToken","signinResponse","getBearerToken","authFetch","AggregateRedirectHandler","redirectHandlers","BrowserStorage","Redirector","redirectByReplacingState","ClientRegistrar","storedClientId","storedClientSecret","registeredClient","infoToSave","ErrorOidcHandler","errorUrl","errorDescriptionUrl","TokenRefresher","oidcContext","clientInfo","getClientAuthenticationWithDependencies","dependencies","inMemoryStorage","KEY_CURRENT_SESSION","KEY_CURRENT_URL","Session","sessionOptions","toExclude","errorMessage","tokenRequestInProgress","clientAuthentication","internalLogout","emitSignal","inputOptions","setSessionInfo","currentUrl","restorePreviousSession","attemptedSilentAuthentication","clientAuthn","session","storedSessionInfo","silentlyAuthenticate","Proxy","onLogin","onLogout","onError","onSessionRestore","onSessionExpiration","defaultSession","getDefaultSession"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47]}
1
+ {"version":3,"file":"solid-client-authn.bundle.js","sources":["../../../node_modules/events/events.js","../../../node_modules/@inrupt/universal-fetch/dist/index-browser.mjs","../../../node_modules/jose/dist/browser/runtime/webcrypto.js","../../../node_modules/jose/dist/browser/lib/buffer_utils.js","../../../node_modules/jose/dist/browser/runtime/base64url.js","../../../node_modules/jose/dist/browser/util/errors.js","../../../node_modules/jose/dist/browser/lib/crypto_key.js","../../../node_modules/jose/dist/browser/lib/invalid_key_input.js","../../../node_modules/jose/dist/browser/runtime/random.js","../../../node_modules/jose/dist/browser/runtime/is_key_like.js","../../../node_modules/jose/dist/browser/lib/is_disjoint.js","../../../node_modules/jose/dist/browser/lib/is_object.js","../../../node_modules/jose/dist/browser/runtime/check_key_length.js","../../../node_modules/jose/dist/browser/runtime/jwk_to_key.js","../../../node_modules/jose/dist/browser/lib/check_key_type.js","../../../node_modules/jose/dist/browser/lib/validate_crit.js","../../../node_modules/jose/dist/browser/lib/validate_algorithms.js","../../../node_modules/jose/dist/browser/runtime/key_to_jwk.js","../../../node_modules/jose/dist/browser/key/export.js","../../../node_modules/jose/dist/browser/runtime/subtle_dsa.js","../../../node_modules/jose/dist/browser/runtime/get_sign_verify_key.js","../../../node_modules/jose/dist/browser/runtime/verify.js","../../../node_modules/jose/dist/browser/jws/compact/verify.js","../../../node_modules/jose/dist/browser/jws/flattened/verify.js","../../../node_modules/jose/dist/browser/lib/epoch.js","../../../node_modules/jose/dist/browser/lib/secs.js","../../../node_modules/jose/dist/browser/lib/jwt_claims_set.js","../../../node_modules/jose/dist/browser/jws/flattened/sign.js","../../../node_modules/jose/dist/browser/runtime/sign.js","../../../node_modules/jose/dist/browser/jws/compact/sign.js","../../../node_modules/jose/dist/browser/jwt/produce.js","../../../node_modules/jose/dist/browser/jwt/sign.js","../../../node_modules/jose/dist/browser/runtime/generate.js","../../../node_modules/jose/dist/browser/key/generate_key_pair.js","../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@inrupt/solid-client-authn-core/dist/index.mjs","../../../node_modules/jose/dist/browser/jwt/verify.js","../../../node_modules/jose/dist/browser/key/import.js","../src/storage/StorageUtility.ts","../../../node_modules/@inrupt/oidc-client/lib/oidc-client.min.js","../../../node_modules/@inrupt/oidc-client-ext/dist/index.es.js","../src/ClientAuthentication.ts","../src/login/oidc/OidcLoginHandler.ts","../src/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.ts","../src/login/oidc/IssuerConfigFetcher.ts","../src/sessionInfo/SessionInfoManager.ts","../src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.ts","../src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts","../src/login/oidc/AggregateRedirectHandler.ts","../src/storage/BrowserStorage.ts","../src/login/oidc/Redirector.ts","../src/login/oidc/ClientRegistrar.ts","../src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts","../src/login/oidc/refresh/TokenRefresher.ts","../src/dependencies.ts","../src/constant.ts","../src/Session.ts","../src/defaultSession.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var indexBrowser = globalThis.fetch;\nconst { fetch, Response, Request, Headers } = globalThis;\n\nexport { Headers, Request, Response, indexBrowser as default, fetch };\n","export default crypto;\nexport const isCryptoKey = (key) => key instanceof CryptoKey;\n","import digest from '../runtime/digest.js';\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nexport function p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nexport async function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await digest('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nexport const encodeBase64 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n};\nexport const encode = (input) => {\n return encodeBase64(input).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nexport const decodeBase64 = (encoded) => {\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n};\nexport const decode = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return decodeBase64(encoded);\n }\n catch (_a) {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n","export class JOSEError extends Error {\n static get code() {\n return 'ERR_JOSE_GENERIC';\n }\n constructor(message) {\n var _a;\n super(message);\n this.code = 'ERR_JOSE_GENERIC';\n this.name = this.constructor.name;\n (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static get code() {\n return 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JWTExpired extends JOSEError {\n static get code() {\n return 'ERR_JWT_EXPIRED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_EXPIRED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n static get code() {\n return 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n}\nexport class JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_NOT_SUPPORTED';\n }\n static get code() {\n return 'ERR_JOSE_NOT_SUPPORTED';\n }\n}\nexport class JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_DECRYPTION_FAILED';\n this.message = 'decryption operation failed';\n }\n static get code() {\n return 'ERR_JWE_DECRYPTION_FAILED';\n }\n}\nexport class JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_INVALID';\n }\n static get code() {\n return 'ERR_JWE_INVALID';\n }\n}\nexport class JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_INVALID';\n }\n static get code() {\n return 'ERR_JWS_INVALID';\n }\n}\nexport class JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWT_INVALID';\n }\n static get code() {\n return 'ERR_JWT_INVALID';\n }\n}\nexport class JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWK_INVALID';\n }\n static get code() {\n return 'ERR_JWK_INVALID';\n }\n}\nexport class JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_INVALID';\n }\n static get code() {\n return 'ERR_JWKS_INVALID';\n }\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_NO_MATCHING_KEY';\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_NO_MATCHING_KEY';\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n }\n}\nSymbol.asyncIterator;\nexport class JWKSTimeout extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_TIMEOUT';\n this.message = 'request timed out';\n }\n static get code() {\n return 'ERR_JWKS_TIMEOUT';\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n this.message = 'signature verification failed';\n }\n static get code() {\n return 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n }\n}\n","function unusable(name, prop = 'algorithm.name') {\n return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\n}\nfunction isAlgorithm(algorithm, name) {\n return algorithm.name === name;\n}\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usages) {\n if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {\n let msg = 'CryptoKey does not support this operation, its usages must include ';\n if (usages.length > 2) {\n const last = usages.pop();\n msg += `one of ${usages.join(', ')}, or ${last}.`;\n }\n else if (usages.length === 2) {\n msg += `one of ${usages[0]} or ${usages[1]}.`;\n }\n else {\n msg += `${usages[0]}.`;\n }\n throw new TypeError(msg);\n }\n}\nexport function checkSigCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'EdDSA': {\n if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {\n throw unusable('Ed25519 or Ed448');\n }\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\nexport function checkEncCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n case 'X448':\n break;\n default:\n throw unusable('ECDH, X25519, or X448');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n const expected = parseInt(alg.slice(9), 10) || 1;\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\n","function message(msg, actual, ...types) {\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor && actual.constructor.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport default (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nexport function withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n","import crypto from './webcrypto.js';\nexport default crypto.getRandomValues.bind(crypto);\n","import { isCryptoKey } from './webcrypto.js';\nexport default (key) => {\n return isCryptoKey(key);\n};\nexport const types = ['CryptoKey'];\n","const isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexport default isDisjoint;\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","export default (alg, key) => {\n if (alg.startsWith('RS') || alg.startsWith('PS')) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n }\n};\n","import crypto from './webcrypto.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { decode as base64url } from './base64url.js';\nfunction subtleMapping(jwk) {\n let algorithm;\n let keyUsages;\n switch (jwk.kty) {\n case 'oct': {\n switch (jwk.alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n algorithm = { name: 'HMAC', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n throw new JOSENotSupported(`${jwk.alg} keys cannot be imported as CryptoKey instances`);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n algorithm = { name: 'AES-GCM' };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n algorithm = { name: 'AES-KW' };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n algorithm = { name: 'PBKDF2' };\n keyUsages = ['deriveBits'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'RSA': {\n switch (jwk.alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${jwk.alg.slice(-3)}` };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`,\n };\n keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'EC': {\n switch (jwk.alg) {\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'OKP': {\n switch (jwk.alg) {\n case 'EdDSA':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"kty\" (Key Type) Parameter value');\n }\n return { algorithm, keyUsages };\n}\nconst parse = async (jwk) => {\n var _a, _b;\n if (!jwk.alg) {\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n }\n const { algorithm, keyUsages } = subtleMapping(jwk);\n const rest = [\n algorithm,\n (_a = jwk.ext) !== null && _a !== void 0 ? _a : false,\n (_b = jwk.key_ops) !== null && _b !== void 0 ? _b : keyUsages,\n ];\n if (algorithm.name === 'PBKDF2') {\n return crypto.subtle.importKey('raw', base64url(jwk.k), ...rest);\n }\n const keyData = { ...jwk };\n delete keyData.alg;\n delete keyData.use;\n return crypto.subtle.importKey('jwk', keyData, ...rest);\n};\nexport default parse;\n","import { withAlg as invalidKeyInput } from './invalid_key_input.js';\nimport isKeyLike, { types } from '../runtime/is_key_like.js';\nconst symmetricTypeCheck = (alg, key) => {\n if (key instanceof Uint8Array)\n return;\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, ...types, 'Uint8Array'));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${types.join(' or ')} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage) => {\n if (!isKeyLike(key)) {\n throw new TypeError(invalidKeyInput(alg, key, ...types));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (usage === 'sign' && key.type === 'public') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm signing must be of type \"private\"`);\n }\n if (usage === 'decrypt' && key.type === 'public') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n if (key.algorithm && usage === 'verify' && key.type === 'private') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm verifying must be of type \"public\"`);\n }\n if (key.algorithm && usage === 'encrypt' && key.type === 'private') {\n throw new TypeError(`${types.join(' or ')} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n};\nconst checkKeyType = (alg, key, usage) => {\n const symmetric = alg.startsWith('HS') ||\n alg === 'dir' ||\n alg.startsWith('PBES2') ||\n /^A\\d{3}(?:GCM)?KW$/.test(alg);\n if (symmetric) {\n symmetricTypeCheck(alg, key);\n }\n else {\n asymmetricTypeCheck(alg, key, usage);\n }\n};\nexport default checkKeyType;\n","import { JOSENotSupported } from '../util/errors.js';\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n else if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexport default validateCrit;\n","const validateAlgorithms = (option, algorithms) => {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n};\nexport default validateAlgorithms;\n","import crypto, { isCryptoKey } from './webcrypto.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { encode as base64url } from './base64url.js';\nimport { types } from './is_key_like.js';\nconst keyToJWK = async (key) => {\n if (key instanceof Uint8Array) {\n return {\n kty: 'oct',\n k: base64url(key),\n };\n }\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, ...types, 'Uint8Array'));\n }\n if (!key.extractable) {\n throw new TypeError('non-extractable CryptoKey cannot be exported as a JWK');\n }\n const { ext, key_ops, alg, use, ...jwk } = await crypto.subtle.exportKey('jwk', key);\n return jwk;\n};\nexport default keyToJWK;\n","import { toSPKI as exportPublic } from '../runtime/asn1.js';\nimport { toPKCS8 as exportPrivate } from '../runtime/asn1.js';\nimport keyToJWK from '../runtime/key_to_jwk.js';\nexport async function exportSPKI(key) {\n return exportPublic(key);\n}\nexport async function exportPKCS8(key) {\n return exportPrivate(key);\n}\nexport async function exportJWK(key) {\n return keyToJWK(key);\n}\n","import { JOSENotSupported } from '../util/errors.js';\nexport default function subtleDsa(alg, algorithm) {\n const hash = `SHA-${alg.slice(-3)}`;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n return { hash, name: 'HMAC' };\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { hash, name: 'RSA-PSS', saltLength: alg.slice(-3) >> 3 };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { hash, name: 'RSASSA-PKCS1-v1_5' };\n case 'ES256':\n case 'ES384':\n case 'ES512':\n return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };\n case 'EdDSA':\n return { name: algorithm.name };\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","import crypto, { isCryptoKey } from './webcrypto.js';\nimport { checkSigCryptoKey } from '../lib/crypto_key.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { types } from './is_key_like.js';\nexport default function getCryptoKey(alg, key, usage) {\n if (isCryptoKey(key)) {\n checkSigCryptoKey(key, alg, usage);\n return key;\n }\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError(invalidKeyInput(key, ...types));\n }\n return crypto.subtle.importKey('raw', key, { hash: `SHA-${alg.slice(-3)}`, name: 'HMAC' }, false, [usage]);\n }\n throw new TypeError(invalidKeyInput(key, ...types, 'Uint8Array'));\n}\n","import subtleAlgorithm from './subtle_dsa.js';\nimport crypto from './webcrypto.js';\nimport checkKeyLength from './check_key_length.js';\nimport getVerifyKey from './get_sign_verify_key.js';\nconst verify = async (alg, key, signature, data) => {\n const cryptoKey = await getVerifyKey(alg, key, 'verify');\n checkKeyLength(alg, cryptoKey);\n const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);\n try {\n return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n }\n catch (_a) {\n return false;\n }\n};\nexport default verify;\n","import { flattenedVerify } from '../flattened/verify.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { decoder } from '../../lib/buffer_utils.js';\nexport async function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new JWSInvalid('Invalid Compact JWS');\n }\n const verified = await flattenedVerify({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as base64url } from '../../runtime/base64url.js';\nimport verify from '../../runtime/verify.js';\nimport { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';\nimport { concat, encoder, decoder } from '../../lib/buffer_utils.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport isObject from '../../lib/is_object.js';\nimport checkKeyType from '../../lib/check_key_type.js';\nimport validateCrit from '../../lib/validate_crit.js';\nimport validateAlgorithms from '../../lib/validate_algorithms.js';\nexport async function flattenedVerify(jws, key, options) {\n var _a;\n if (!isObject(jws)) {\n throw new JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !isObject(jws.header)) {\n throw new JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = base64url(jws.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n catch (_b) {\n throw new JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!isDisjoint(parsedProt, jws.header)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && validateAlgorithms('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n }\n checkKeyType(alg, key, 'verify');\n const data = concat(encoder.encode((_a = jws.protected) !== null && _a !== void 0 ? _a : ''), encoder.encode('.'), typeof jws.payload === 'string' ? encoder.encode(jws.payload) : jws.payload);\n let signature;\n try {\n signature = base64url(jws.signature);\n }\n catch (_c) {\n throw new JWSInvalid('Failed to base64url decode the signature');\n }\n const verified = await verify(alg, key, signature, data);\n if (!verified) {\n throw new JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n try {\n payload = base64url(jws.payload);\n }\n catch (_d) {\n throw new JWSInvalid('Failed to base64url decode the payload');\n }\n }\n else if (typeof jws.payload === 'string') {\n payload = encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","export default (date) => Math.floor(date.getTime() / 1000);\n","const minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;\nexport default (str) => {\n const matched = REGEX.exec(str);\n if (!matched) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[1]);\n const unit = matched[2].toLowerCase();\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n return Math.round(value);\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n return Math.round(value * minute);\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n return Math.round(value * hour);\n case 'day':\n case 'days':\n case 'd':\n return Math.round(value * day);\n case 'week':\n case 'weeks':\n case 'w':\n return Math.round(value * week);\n default:\n return Math.round(value * year);\n }\n};\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from '../util/errors.js';\nimport { decoder } from './buffer_utils.js';\nimport epoch from './epoch.js';\nimport secs from './secs.js';\nimport isObject from './is_object.js';\nconst normalizeTyp = (value) => value.toLowerCase().replace(/^application\\//, '');\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexport default (protectedHeader, encodedPayload, options = {}) => {\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', 'typ', 'check_failed');\n }\n let payload;\n try {\n payload = JSON.parse(decoder.decode(encodedPayload));\n }\n catch (_a) {\n }\n if (!isObject(payload)) {\n throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n if (maxTokenAge !== undefined)\n requiredClaims.push('iat');\n if (audience !== undefined)\n requiredClaims.push('aud');\n if (subject !== undefined)\n requiredClaims.push('sub');\n if (issuer !== undefined)\n requiredClaims.push('iss');\n for (const claim of new Set(requiredClaims.reverse())) {\n if (!(claim in payload)) {\n throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, claim, 'missing');\n }\n }\n if (issuer && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = secs(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = epoch(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new JWTClaimValidationFailed('\"iat\" claim must be a number', 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new JWTClaimValidationFailed('\"exp\" claim must be a number', 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new JWTExpired('\"exp\" claim timestamp check failed', 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : secs(maxTokenAge);\n if (age - tolerance > max) {\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', 'iat', 'check_failed');\n }\n }\n return payload;\n};\n","import { encode as base64url } from '../../runtime/base64url.js';\nimport sign from '../../runtime/sign.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport { JWSInvalid } from '../../util/errors.js';\nimport { encoder, decoder, concat } from '../../lib/buffer_utils.js';\nimport checkKeyType from '../../lib/check_key_type.js';\nimport validateCrit from '../../lib/validate_crit.js';\nexport class FlattenedSign {\n constructor(payload) {\n if (!(payload instanceof Uint8Array)) {\n throw new TypeError('payload must be an instance of Uint8Array');\n }\n this._payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n async sign(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader) {\n throw new JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n };\n const extensions = validateCrit(JWSInvalid, new Map([['b64', true]]), options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = this._protectedHeader.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n checkKeyType(alg, key, 'sign');\n let payload = this._payload;\n if (b64) {\n payload = encoder.encode(base64url(payload));\n }\n let protectedHeader;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(base64url(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n const data = concat(protectedHeader, encoder.encode('.'), payload);\n const signature = await sign(alg, key, data);\n const jws = {\n signature: base64url(signature),\n payload: '',\n };\n if (b64) {\n jws.payload = decoder.decode(payload);\n }\n if (this._unprotectedHeader) {\n jws.header = this._unprotectedHeader;\n }\n if (this._protectedHeader) {\n jws.protected = decoder.decode(protectedHeader);\n }\n return jws;\n }\n}\n","import subtleAlgorithm from './subtle_dsa.js';\nimport crypto from './webcrypto.js';\nimport checkKeyLength from './check_key_length.js';\nimport getSignKey from './get_sign_verify_key.js';\nconst sign = async (alg, key, data) => {\n const cryptoKey = await getSignKey(alg, key, 'sign');\n checkKeyLength(alg, cryptoKey);\n const signature = await crypto.subtle.sign(subtleAlgorithm(alg, cryptoKey.algorithm), cryptoKey, data);\n return new Uint8Array(signature);\n};\nexport default sign;\n","import { FlattenedSign } from '../flattened/sign.js';\nexport class CompactSign {\n constructor(payload) {\n this._flattened = new FlattenedSign(payload);\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n async sign(key, options) {\n const jws = await this._flattened.sign(key, options);\n if (jws.payload === undefined) {\n throw new TypeError('use the flattened module for creating JWS with b64: false');\n }\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n }\n}\n","import epoch from '../lib/epoch.js';\nimport isObject from '../lib/is_object.js';\nimport secs from '../lib/secs.js';\nexport class ProduceJWT {\n constructor(payload) {\n if (!isObject(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this._payload = payload;\n }\n setIssuer(issuer) {\n this._payload = { ...this._payload, iss: issuer };\n return this;\n }\n setSubject(subject) {\n this._payload = { ...this._payload, sub: subject };\n return this;\n }\n setAudience(audience) {\n this._payload = { ...this._payload, aud: audience };\n return this;\n }\n setJti(jwtId) {\n this._payload = { ...this._payload, jti: jwtId };\n return this;\n }\n setNotBefore(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, nbf: input };\n }\n else {\n this._payload = { ...this._payload, nbf: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setExpirationTime(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, exp: input };\n }\n else {\n this._payload = { ...this._payload, exp: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setIssuedAt(input) {\n if (typeof input === 'undefined') {\n this._payload = { ...this._payload, iat: epoch(new Date()) };\n }\n else {\n this._payload = { ...this._payload, iat: input };\n }\n return this;\n }\n}\n","import { CompactSign } from '../jws/compact/sign.js';\nimport { JWTInvalid } from '../util/errors.js';\nimport { encoder } from '../lib/buffer_utils.js';\nimport { ProduceJWT } from './produce.js';\nexport class SignJWT extends ProduceJWT {\n setProtectedHeader(protectedHeader) {\n this._protectedHeader = protectedHeader;\n return this;\n }\n async sign(key, options) {\n var _a;\n const sig = new CompactSign(encoder.encode(JSON.stringify(this._payload)));\n sig.setProtectedHeader(this._protectedHeader);\n if (Array.isArray((_a = this._protectedHeader) === null || _a === void 0 ? void 0 : _a.crit) &&\n this._protectedHeader.crit.includes('b64') &&\n this._protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n return sig.sign(key, options);\n }\n}\n","import crypto from './webcrypto.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport random from './random.js';\nexport async function generateSecret(alg, options) {\n var _a;\n let length;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n length = parseInt(alg.slice(-3), 10);\n algorithm = { name: 'HMAC', hash: `SHA-${length}`, length };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n length = parseInt(alg.slice(-3), 10);\n return random(new Uint8Array(length >> 3));\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n length = parseInt(alg.slice(1, 4), 10);\n algorithm = { name: 'AES-KW', length };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n length = parseInt(alg.slice(1, 4), 10);\n algorithm = { name: 'AES-GCM', length };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return crypto.subtle.generateKey(algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages);\n}\nfunction getModulusLengthOption(options) {\n var _a;\n const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');\n }\n return modulusLength;\n}\nexport async function generateKeyPair(alg, options) {\n var _a, _b, _c;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = {\n name: 'RSA-PSS',\n hash: `SHA-${alg.slice(-3)}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: `SHA-${alg.slice(-3)}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['decrypt', 'unwrapKey', 'encrypt', 'wrapKey'];\n break;\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'EdDSA':\n keyUsages = ['sign', 'verify'];\n const crv = (_a = options === null || options === void 0 ? void 0 : options.crv) !== null && _a !== void 0 ? _a : 'Ed25519';\n switch (crv) {\n case 'Ed25519':\n case 'Ed448':\n algorithm = { name: crv };\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported crv option provided');\n }\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n keyUsages = ['deriveKey', 'deriveBits'];\n const crv = (_b = options === null || options === void 0 ? void 0 : options.crv) !== null && _b !== void 0 ? _b : 'P-256';\n switch (crv) {\n case 'P-256':\n case 'P-384':\n case 'P-521': {\n algorithm = { name: 'ECDH', namedCurve: crv };\n break;\n }\n case 'X25519':\n case 'X448':\n algorithm = { name: crv };\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448');\n }\n break;\n }\n default:\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return (crypto.subtle.generateKey(algorithm, (_c = options === null || options === void 0 ? void 0 : options.extractable) !== null && _c !== void 0 ? _c : false, keyUsages));\n}\n","import { generateKeyPair as generate } from '../runtime/generate.js';\nexport async function generateKeyPair(alg, options) {\n return generate(alg, options);\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { EventEmitter } from 'events';\nimport { fetch, Headers } from '@inrupt/universal-fetch';\nimport { jwtVerify, importJWK, exportJWK, SignJWT, generateKeyPair } from 'jose';\nimport { v4 } from 'uuid';\n\nconst SOLID_CLIENT_AUTHN_KEY_PREFIX = \"solidClientAuthn:\";\nconst PREFERRED_SIGNING_ALG = [\"ES256\", \"RS256\"];\nconst EVENTS = {\n ERROR: \"error\",\n LOGIN: \"login\",\n LOGOUT: \"logout\",\n NEW_REFRESH_TOKEN: \"newRefreshToken\",\n SESSION_EXPIRED: \"sessionExpired\",\n SESSION_EXTENDED: \"sessionExtended\",\n SESSION_RESTORED: \"sessionRestore\",\n TIMEOUT_SET: \"timeoutSet\",\n};\nconst REFRESH_BEFORE_EXPIRATION_SECONDS = 5;\nconst SCOPE_OPENID = \"openid\";\nconst SCOPE_OFFLINE = \"offline_access\";\nconst SCOPE_WEBID = \"webid\";\nconst DEFAULT_SCOPES = [SCOPE_OPENID, SCOPE_OFFLINE, SCOPE_WEBID].join(\" \");\n\nconst buildProxyHandler = (toExclude, errorMessage) => ({\n get(target, prop, receiver) {\n if (!Object.getOwnPropertyNames(EventEmitter).includes(prop) &&\n Object.getOwnPropertyNames(toExclude).includes(prop)) {\n throw new Error(`${errorMessage}: [${prop}] is not supported`);\n }\n return Reflect.get(target, prop, receiver);\n },\n});\n\nclass AggregateHandler {\n constructor(handleables) {\n this.handleables = handleables;\n this.handleables = handleables;\n }\n async getProperHandler(params) {\n const canHandleList = await Promise.all(this.handleables.map((handleable) => handleable.canHandle(...params)));\n for (let i = 0; i < canHandleList.length; i += 1) {\n if (canHandleList[i]) {\n return this.handleables[i];\n }\n }\n return null;\n }\n async canHandle(...params) {\n return (await this.getProperHandler(params)) !== null;\n }\n async handle(...params) {\n const handler = await this.getProperHandler(params);\n if (handler) {\n return handler.handle(...params);\n }\n throw new Error(`[${this.constructor.name}] cannot find a suitable handler for: ${params\n .map((param) => {\n try {\n return JSON.stringify(param);\n }\n catch (err) {\n return param.toString();\n }\n })\n .join(\", \")}`);\n }\n}\n\nasync function fetchJwks(jwksIri, issuerIri) {\n const jwksResponse = await fetch.call(globalThis, jwksIri);\n if (jwksResponse.status !== 200) {\n throw new Error(`Could not fetch JWKS for [${issuerIri}] at [${jwksIri}]: ${jwksResponse.status} ${jwksResponse.statusText}`);\n }\n let jwk;\n try {\n jwk = (await jwksResponse.json()).keys[0];\n }\n catch (e) {\n throw new Error(`Malformed JWKS for [${issuerIri}] at [${jwksIri}]: ${e.message}`);\n }\n return jwk;\n}\nasync function getWebidFromTokenPayload(idToken, jwksIri, issuerIri, clientId) {\n const jwk = await fetchJwks(jwksIri, issuerIri);\n let payload;\n try {\n const { payload: verifiedPayload } = await jwtVerify(idToken, await importJWK(jwk), {\n issuer: issuerIri,\n audience: clientId,\n });\n payload = verifiedPayload;\n }\n catch (e) {\n throw new Error(`Token verification failed: ${e.stack}`);\n }\n if (typeof payload.webid === \"string\") {\n return payload.webid;\n }\n if (typeof payload.sub !== \"string\") {\n throw new Error(`The token ${JSON.stringify(payload)} is invalid: it has no 'webid' claim and no 'sub' claim.`);\n }\n try {\n new URL(payload.sub);\n return payload.sub;\n }\n catch (e) {\n throw new Error(`The token has no 'webid' claim, and its 'sub' claim of [${payload.sub}] is invalid as a URL - error [${e}].`);\n }\n}\n\nfunction isValidRedirectUrl(redirectUrl) {\n try {\n const urlObject = new URL(redirectUrl);\n const noReservedQuery = !urlObject.searchParams.has(\"code\") &&\n !urlObject.searchParams.has(\"state\");\n const noHash = urlObject.hash === \"\";\n return noReservedQuery && noHash;\n }\n catch (e) {\n return false;\n }\n}\n\nclass AuthorizationCodeWithPkceOidcHandlerBase {\n constructor(storageUtility, redirector) {\n this.storageUtility = storageUtility;\n this.redirector = redirector;\n this.storageUtility = storageUtility;\n this.redirector = redirector;\n }\n async canHandle(oidcLoginOptions) {\n return !!(oidcLoginOptions.issuerConfiguration.grantTypesSupported &&\n oidcLoginOptions.issuerConfiguration.grantTypesSupported.indexOf(\"authorization_code\") > -1);\n }\n async handleRedirect({ oidcLoginOptions, state, codeVerifier, targetUrl, }) {\n await Promise.all([\n this.storageUtility.setForUser(state, {\n sessionId: oidcLoginOptions.sessionId,\n }),\n this.storageUtility.setForUser(oidcLoginOptions.sessionId, {\n codeVerifier,\n issuer: oidcLoginOptions.issuer.toString(),\n redirectUrl: oidcLoginOptions.redirectUrl,\n dpop: oidcLoginOptions.dpop ? \"true\" : \"false\",\n }),\n ]);\n this.redirector.redirect(targetUrl, {\n handleRedirect: oidcLoginOptions.handleRedirect,\n });\n return undefined;\n }\n}\n\nclass GeneralLogoutHandler {\n constructor(sessionInfoManager) {\n this.sessionInfoManager = sessionInfoManager;\n this.sessionInfoManager = sessionInfoManager;\n }\n async canHandle() {\n return true;\n }\n async handle(userId) {\n await this.sessionInfoManager.clear(userId);\n }\n}\n\nclass IRpLogoutHandler {\n constructor(redirector) {\n this.redirector = redirector;\n this.redirector = redirector;\n }\n async canHandle(userId, options) {\n return (options === null || options === void 0 ? void 0 : options.logoutType) === \"idp\";\n }\n async handle(userId, options) {\n if ((options === null || options === void 0 ? void 0 : options.logoutType) !== \"idp\") {\n throw new Error(\"Attempting to call idp logout handler to perform app logout\");\n }\n if (options.toLogoutUrl === undefined) {\n throw new Error(\"Cannot perform IDP logout. Did you log in using the OIDC authentication flow?\");\n }\n this.redirector.redirect(options.toLogoutUrl(options), {\n handleRedirect: options.handleRedirect,\n });\n }\n}\n\nclass IWaterfallLogoutHandler {\n constructor(sessionInfoManager, redirector) {\n this.handlers = [\n new GeneralLogoutHandler(sessionInfoManager),\n new IRpLogoutHandler(redirector),\n ];\n }\n async canHandle() {\n return true;\n }\n async handle(userId, options) {\n for (const handler of this.handlers) {\n if (await handler.canHandle(userId, options))\n await handler.handle(userId, options);\n }\n }\n}\n\nfunction getUnauthenticatedSession() {\n return {\n isLoggedIn: false,\n sessionId: v4(),\n fetch: (...args) => fetch.call(globalThis, ...args),\n };\n}\nasync function clear(sessionId, storage) {\n await Promise.all([\n storage.deleteAllUserData(sessionId, { secure: false }),\n storage.deleteAllUserData(sessionId, { secure: true }),\n ]);\n}\nclass SessionInfoManagerBase {\n constructor(storageUtility) {\n this.storageUtility = storageUtility;\n this.storageUtility = storageUtility;\n }\n update(_sessionId, _options) {\n throw new Error(\"Not Implemented\");\n }\n get(_) {\n throw new Error(\"Not implemented\");\n }\n async getAll() {\n throw new Error(\"Not implemented\");\n }\n async clear(sessionId) {\n return clear(sessionId, this.storageUtility);\n }\n async register(_sessionId) {\n throw new Error(\"Not implemented\");\n }\n async getRegisteredSessionIdAll() {\n throw new Error(\"Not implemented\");\n }\n async clearAll() {\n throw new Error(\"Not implemented\");\n }\n}\n\nfunction getEndSessionUrl({ endSessionEndpoint, idTokenHint, postLogoutRedirectUri, state, }) {\n const url = new URL(endSessionEndpoint);\n if (idTokenHint !== undefined)\n url.searchParams.append(\"id_token_hint\", idTokenHint);\n if (postLogoutRedirectUri !== undefined) {\n url.searchParams.append(\"post_logout_redirect_uri\", postLogoutRedirectUri);\n if (state !== undefined)\n url.searchParams.append(\"state\", state);\n }\n return url.toString();\n}\nfunction maybeBuildRpInitiatedLogout({ endSessionEndpoint, idTokenHint, }) {\n if (endSessionEndpoint === undefined)\n return undefined;\n return function logout({ state, postLogoutUrl }) {\n return getEndSessionUrl({\n endSessionEndpoint,\n idTokenHint,\n state,\n postLogoutRedirectUri: postLogoutUrl,\n });\n };\n}\n\nfunction isSupportedTokenType(token) {\n return typeof token === \"string\" && [\"DPoP\", \"Bearer\"].includes(token);\n}\n\nconst USER_SESSION_PREFIX = \"solidClientAuthenticationUser\";\n\nfunction isValidUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction determineSigningAlg(supported, preferred) {\n var _a;\n return ((_a = preferred.find((signingAlg) => {\n return supported.includes(signingAlg);\n })) !== null && _a !== void 0 ? _a : null);\n}\nfunction determineClientType(options, issuerConfig) {\n if (options.clientId !== undefined && !isValidUrl(options.clientId)) {\n return \"static\";\n }\n if (issuerConfig.scopesSupported.includes(\"webid\") &&\n options.clientId !== undefined &&\n isValidUrl(options.clientId)) {\n return \"solid-oidc\";\n }\n return \"dynamic\";\n}\nasync function handleRegistration(options, issuerConfig, storageUtility, clientRegistrar) {\n const clientType = determineClientType(options, issuerConfig);\n if (clientType === \"dynamic\") {\n return clientRegistrar.getClient({\n sessionId: options.sessionId,\n clientName: options.clientName,\n redirectUrl: options.redirectUrl,\n }, issuerConfig);\n }\n await storageUtility.setForUser(options.sessionId, {\n clientId: options.clientId,\n });\n if (options.clientSecret) {\n await storageUtility.setForUser(options.sessionId, {\n clientSecret: options.clientSecret,\n });\n }\n if (options.clientName) {\n await storageUtility.setForUser(options.sessionId, {\n clientName: options.clientName,\n });\n }\n return {\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n clientName: options.clientName,\n clientType,\n };\n}\n\nconst globalFetch = (request, init) => fetch.call(globalThis, request, init);\nclass ClientAuthentication {\n constructor(loginHandler, redirectHandler, logoutHandler, sessionInfoManager, issuerConfigFetcher) {\n this.loginHandler = loginHandler;\n this.redirectHandler = redirectHandler;\n this.logoutHandler = logoutHandler;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.fetch = globalFetch;\n this.logout = async (sessionId, options) => {\n await this.logoutHandler.handle(sessionId, (options === null || options === void 0 ? void 0 : options.logoutType) === \"idp\"\n ? {\n ...options,\n toLogoutUrl: this.boundLogout,\n }\n : options);\n this.fetch = globalFetch;\n delete this.boundLogout;\n };\n this.getSessionInfo = async (sessionId) => {\n return this.sessionInfoManager.get(sessionId);\n };\n this.getAllSessionInfo = async () => {\n return this.sessionInfoManager.getAll();\n };\n this.loginHandler = loginHandler;\n this.redirectHandler = redirectHandler;\n this.logoutHandler = logoutHandler;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n }\n}\n\nasync function getSessionIdFromOauthState(storageUtility, oauthState) {\n return storageUtility.getForUser(oauthState, \"sessionId\");\n}\nasync function loadOidcContextFromStorage(sessionId, storageUtility, configFetcher) {\n try {\n const [issuerIri, codeVerifier, storedRedirectIri, dpop] = await Promise.all([\n storageUtility.getForUser(sessionId, \"issuer\", {\n errorIfNull: true,\n }),\n storageUtility.getForUser(sessionId, \"codeVerifier\"),\n storageUtility.getForUser(sessionId, \"redirectUrl\"),\n storageUtility.getForUser(sessionId, \"dpop\", { errorIfNull: true }),\n ]);\n await storageUtility.deleteForUser(sessionId, \"codeVerifier\");\n const issuerConfig = await configFetcher.fetchConfig(issuerIri);\n return {\n codeVerifier,\n redirectUrl: storedRedirectIri,\n issuerConfig,\n dpop: dpop === \"true\",\n };\n }\n catch (e) {\n throw new Error(`Failed to retrieve OIDC context from storage associated with session [${sessionId}]: ${e}`);\n }\n}\nasync function saveSessionInfoToStorage(storageUtility, sessionId, webId, isLoggedIn, refreshToken, secure, dpopKey) {\n if (refreshToken !== undefined) {\n await storageUtility.setForUser(sessionId, { refreshToken }, { secure });\n }\n if (webId !== undefined) {\n await storageUtility.setForUser(sessionId, { webId }, { secure });\n }\n if (isLoggedIn !== undefined) {\n await storageUtility.setForUser(sessionId, { isLoggedIn }, { secure });\n }\n if (dpopKey !== undefined) {\n await storageUtility.setForUser(sessionId, {\n publicKey: JSON.stringify(dpopKey.publicKey),\n privateKey: JSON.stringify(await exportJWK(dpopKey.privateKey)),\n }, { secure });\n }\n}\nclass StorageUtility {\n constructor(secureStorage, insecureStorage) {\n this.secureStorage = secureStorage;\n this.insecureStorage = insecureStorage;\n this.secureStorage = secureStorage;\n this.insecureStorage = insecureStorage;\n }\n getKey(userId) {\n return `solidClientAuthenticationUser:${userId}`;\n }\n async getUserData(userId, secure) {\n const stored = await (secure\n ? this.secureStorage\n : this.insecureStorage).get(this.getKey(userId));\n if (stored === undefined) {\n return {};\n }\n try {\n return JSON.parse(stored);\n }\n catch (err) {\n throw new Error(`Data for user [${userId}] in [${secure ? \"secure\" : \"unsecure\"}] storage is corrupted - expected valid JSON, but got: ${stored}`);\n }\n }\n async setUserData(userId, data, secure) {\n await (secure ? this.secureStorage : this.insecureStorage).set(this.getKey(userId), JSON.stringify(data));\n }\n async get(key, options) {\n const value = await ((options === null || options === void 0 ? void 0 : options.secure)\n ? this.secureStorage\n : this.insecureStorage).get(key);\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new Error(`[${key}] is not stored`);\n }\n return value;\n }\n async set(key, value, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).set(key, value);\n }\n async delete(key, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(key);\n }\n async getForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n let value;\n if (!userData || !userData[key]) {\n value = undefined;\n }\n value = userData[key];\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new Error(`Field [${key}] for user [${userId}] is not stored`);\n }\n return value || undefined;\n }\n async setForUser(userId, values, options) {\n let userData;\n try {\n userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n }\n catch (_a) {\n userData = {};\n }\n await this.setUserData(userId, { ...userData, ...values }, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n delete userData[key];\n await this.setUserData(userId, userData, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteAllUserData(userId, options) {\n await ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(this.getKey(userId));\n }\n}\n\nclass InMemoryStorage {\n constructor() {\n this.map = {};\n }\n async get(key) {\n return this.map[key] || undefined;\n }\n async set(key, value) {\n this.map[key] = value;\n }\n async delete(key) {\n delete this.map[key];\n }\n}\n\nclass ConfigurationError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nclass NotImplementedError extends Error {\n constructor(methodName) {\n super(`[${methodName}] is not implemented`);\n }\n}\n\nclass InvalidResponseError extends Error {\n constructor(missingFields) {\n super(`Invalid response from OIDC provider: missing fields ${missingFields}`);\n this.missingFields = missingFields;\n }\n}\n\nclass OidcProviderError extends Error {\n constructor(message, error, errorDescription) {\n super(message);\n this.error = error;\n this.errorDescription = errorDescription;\n }\n}\n\nfunction normalizeHTU(audience) {\n const audienceUrl = new URL(audience);\n return new URL(audienceUrl.pathname, audienceUrl.origin).toString();\n}\nasync function createDpopHeader(audience, method, dpopKey) {\n return new SignJWT({\n htu: normalizeHTU(audience),\n htm: method.toUpperCase(),\n jti: v4(),\n })\n .setProtectedHeader({\n alg: PREFERRED_SIGNING_ALG[0],\n jwk: dpopKey.publicKey,\n typ: \"dpop+jwt\",\n })\n .setIssuedAt()\n .sign(dpopKey.privateKey, {});\n}\nasync function generateDpopKeyPair() {\n const { privateKey, publicKey } = await generateKeyPair(PREFERRED_SIGNING_ALG[0]);\n const dpopKeyPair = {\n privateKey,\n publicKey: await exportJWK(publicKey),\n };\n [dpopKeyPair.publicKey.alg] = PREFERRED_SIGNING_ALG;\n return dpopKeyPair;\n}\n\nconst DEFAULT_EXPIRATION_TIME_SECONDS = 600;\nfunction isExpectedAuthError(statusCode) {\n return [401, 403].includes(statusCode);\n}\nasync function buildDpopFetchOptions(targetUrl, authToken, dpopKey, defaultOptions) {\n var _a;\n const headers = new Headers(defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.headers);\n headers.set(\"Authorization\", `DPoP ${authToken}`);\n headers.set(\"DPoP\", await createDpopHeader(targetUrl, (_a = defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.method) !== null && _a !== void 0 ? _a : \"get\", dpopKey));\n return {\n ...defaultOptions,\n headers,\n };\n}\nasync function buildAuthenticatedHeaders(targetUrl, authToken, dpopKey, defaultOptions) {\n if (dpopKey !== undefined) {\n return buildDpopFetchOptions(targetUrl, authToken, dpopKey, defaultOptions);\n }\n const headers = new Headers(defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.headers);\n headers.set(\"Authorization\", `Bearer ${authToken}`);\n return {\n ...defaultOptions,\n headers,\n };\n}\nasync function makeAuthenticatedRequest(unauthFetch, accessToken, url, defaultRequestInit, dpopKey) {\n return unauthFetch(url, await buildAuthenticatedHeaders(url.toString(), accessToken, dpopKey, defaultRequestInit));\n}\nasync function refreshAccessToken(refreshOptions, dpopKey, eventEmitter) {\n var _a;\n const tokenSet = await refreshOptions.tokenRefresher.refresh(refreshOptions.sessionId, refreshOptions.refreshToken, dpopKey);\n eventEmitter === null || eventEmitter === void 0 ? void 0 : eventEmitter.emit(EVENTS.SESSION_EXTENDED, (_a = tokenSet.expiresIn) !== null && _a !== void 0 ? _a : DEFAULT_EXPIRATION_TIME_SECONDS);\n if (typeof tokenSet.refreshToken === \"string\") {\n eventEmitter === null || eventEmitter === void 0 ? void 0 : eventEmitter.emit(EVENTS.NEW_REFRESH_TOKEN, tokenSet.refreshToken);\n }\n return {\n accessToken: tokenSet.accessToken,\n refreshToken: tokenSet.refreshToken,\n expiresIn: tokenSet.expiresIn,\n };\n}\nconst computeRefreshDelay = (expiresIn) => {\n if (expiresIn !== undefined) {\n return expiresIn - REFRESH_BEFORE_EXPIRATION_SECONDS > 0\n ?\n expiresIn - REFRESH_BEFORE_EXPIRATION_SECONDS\n : expiresIn;\n }\n return DEFAULT_EXPIRATION_TIME_SECONDS;\n};\nasync function buildAuthenticatedFetch(unauthFetch, accessToken, options) {\n var _a;\n let currentAccessToken = accessToken;\n let latestTimeout;\n const currentRefreshOptions = options === null || options === void 0 ? void 0 : options.refreshOptions;\n if (currentRefreshOptions !== undefined) {\n const proactivelyRefreshToken = async () => {\n var _a, _b, _c, _d;\n try {\n const { accessToken: refreshedAccessToken, refreshToken, expiresIn, } = await refreshAccessToken(currentRefreshOptions, options.dpopKey, options.eventEmitter);\n currentAccessToken = refreshedAccessToken;\n if (refreshToken !== undefined) {\n currentRefreshOptions.refreshToken = refreshToken;\n }\n clearTimeout(latestTimeout);\n latestTimeout = setTimeout(proactivelyRefreshToken, computeRefreshDelay(expiresIn) * 1000);\n (_a = options.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(EVENTS.TIMEOUT_SET, latestTimeout);\n }\n catch (e) {\n if (e instanceof OidcProviderError) {\n (_b = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _b === void 0 ? void 0 : _b.emit(EVENTS.ERROR, e.error, e.errorDescription);\n (_c = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _c === void 0 ? void 0 : _c.emit(EVENTS.SESSION_EXPIRED);\n }\n if (e instanceof InvalidResponseError &&\n e.missingFields.includes(\"access_token\")) {\n (_d = options === null || options === void 0 ? void 0 : options.eventEmitter) === null || _d === void 0 ? void 0 : _d.emit(EVENTS.SESSION_EXPIRED);\n }\n }\n };\n latestTimeout = setTimeout(proactivelyRefreshToken, computeRefreshDelay(options.expiresIn) * 1000);\n (_a = options.eventEmitter) === null || _a === void 0 ? void 0 : _a.emit(EVENTS.TIMEOUT_SET, latestTimeout);\n }\n else if (options !== undefined && options.eventEmitter !== undefined) {\n const expirationTimeout = setTimeout(() => {\n options.eventEmitter.emit(EVENTS.SESSION_EXPIRED);\n }, computeRefreshDelay(options.expiresIn) * 1000);\n options.eventEmitter.emit(EVENTS.TIMEOUT_SET, expirationTimeout);\n }\n return async (url, requestInit) => {\n let response = await makeAuthenticatedRequest(unauthFetch, currentAccessToken, url, requestInit, options === null || options === void 0 ? void 0 : options.dpopKey);\n const failedButNotExpectedAuthError = !response.ok && !isExpectedAuthError(response.status);\n if (response.ok || failedButNotExpectedAuthError) {\n return response;\n }\n const hasBeenRedirected = response.url !== url;\n if (hasBeenRedirected && (options === null || options === void 0 ? void 0 : options.dpopKey) !== undefined) {\n response = await makeAuthenticatedRequest(unauthFetch, currentAccessToken, response.url, requestInit, options.dpopKey);\n }\n return response;\n };\n}\n\nconst StorageUtilityGetResponse = \"getResponse\";\nconst StorageUtilityMock = {\n get: async (key, options) => StorageUtilityGetResponse,\n set: async (key, value) => {\n },\n delete: async (key) => {\n },\n getForUser: async (userId, key, options) => StorageUtilityGetResponse,\n setForUser: async (userId, values, options) => {\n },\n deleteForUser: async (userId, key, options) => {\n },\n deleteAllUserData: async (userId, options) => {\n },\n};\nconst mockStorage = (stored) => {\n const store = stored;\n return {\n get: async (key) => {\n if (store[key] === undefined) {\n return undefined;\n }\n if (typeof store[key] === \"string\") {\n return store[key];\n }\n return JSON.stringify(store[key]);\n },\n set: async (key, value) => {\n store[key] = value;\n },\n delete: async (key) => {\n delete store[key];\n },\n };\n};\nconst mockStorageUtility = (stored, isSecure = false) => {\n if (isSecure) {\n return new StorageUtility(mockStorage(stored), mockStorage({}));\n }\n return new StorageUtility(mockStorage({}), mockStorage(stored));\n};\n\nexport { AggregateHandler, AuthorizationCodeWithPkceOidcHandlerBase, ClientAuthentication, ConfigurationError, DEFAULT_SCOPES, EVENTS, GeneralLogoutHandler, IRpLogoutHandler, IWaterfallLogoutHandler, InMemoryStorage, InvalidResponseError, NotImplementedError, OidcProviderError, PREFERRED_SIGNING_ALG, REFRESH_BEFORE_EXPIRATION_SECONDS, SOLID_CLIENT_AUTHN_KEY_PREFIX, SessionInfoManagerBase, StorageUtility, StorageUtilityGetResponse, StorageUtilityMock, USER_SESSION_PREFIX, buildAuthenticatedFetch, buildProxyHandler, clear, createDpopHeader, determineSigningAlg, fetchJwks, generateDpopKeyPair, getEndSessionUrl, getSessionIdFromOauthState, getUnauthenticatedSession, getWebidFromTokenPayload, handleRegistration, isSupportedTokenType, isValidRedirectUrl, loadOidcContextFromStorage, maybeBuildRpInitiatedLogout, mockStorage, mockStorageUtility, saveSessionInfoToStorage };\n//# sourceMappingURL=index.mjs.map\n","import { compactVerify } from '../jws/compact/verify.js';\nimport jwtPayload from '../lib/jwt_claims_set.js';\nimport { JWTInvalid } from '../util/errors.js';\nexport async function jwtVerify(jwt, key, options) {\n var _a;\n const verified = await compactVerify(jwt, key, options);\n if (((_a = verified.protectedHeader.crit) === null || _a === void 0 ? void 0 : _a.includes('b64')) && verified.protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = jwtPayload(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","import { decode as decodeBase64URL } from '../runtime/base64url.js';\nimport { fromSPKI, fromPKCS8, fromX509 } from '../runtime/asn1.js';\nimport asKeyObject from '../runtime/jwk_to_key.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport isObject from '../lib/is_object.js';\nexport async function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return fromSPKI(spki, alg, options);\n}\nexport async function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return fromX509(x509, alg, options);\n}\nexport async function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return fromPKCS8(pkcs8, alg, options);\n}\nexport async function importJWK(jwk, alg, octAsKeyObject) {\n var _a;\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n alg || (alg = jwk.alg);\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n octAsKeyObject !== null && octAsKeyObject !== void 0 ? octAsKeyObject : (octAsKeyObject = jwk.ext !== true);\n if (octAsKeyObject) {\n return asKeyObject({ ...jwk, alg, ext: (_a = jwk.ext) !== null && _a !== void 0 ? _a : false });\n }\n return decodeBase64URL(jwk.k);\n case 'RSA':\n if (jwk.oth !== undefined) {\n throw new JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n case 'EC':\n case 'OKP':\n return asKeyObject({ ...jwk, alg });\n default:\n throw new JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * A helper class that will validate items taken from local storage\n */\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\nimport { StorageUtility } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * This class in a no-value-added extension of StorageUtility from the core module.\n * The reason it has to be declared is for TSyringe to find the decorators in the\n * same modules as where the dependency container is declared (in this case,\n * the browser module, with the dependancy container in dependencies.ts).\n * @hidden\n */\nexport default class StorageUtilityBrowser extends StorageUtility {\n constructor(secureStorage: IStorage, insecureStorage: IStorage) {\n super(secureStorage, insecureStorage);\n }\n}\n","!function t(e,r){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{var n=r();for(var i in n)(\"object\"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=22)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}();var i={debug:function t(){},info:function t(){},warn:function t(){},error:function t(){}},o=void 0,s=void 0;(e.Log=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.reset=function t(){s=3,o=i},t.debug=function t(){if(s>=4){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.debug.apply(o,Array.from(r))}},t.info=function t(){if(s>=3){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.info.apply(o,Array.from(r))}},t.warn=function t(){if(s>=2){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.warn.apply(o,Array.from(r))}},t.error=function t(){if(s>=1){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];o.error.apply(o,Array.from(r))}},n(t,null,[{key:\"NONE\",get:function t(){return 0}},{key:\"ERROR\",get:function t(){return 1}},{key:\"WARN\",get:function t(){return 2}},{key:\"INFO\",get:function t(){return 3}},{key:\"DEBUG\",get:function t(){return 4}},{key:\"level\",get:function t(){return s},set:function t(e){if(!(0<=e&&e<=4))throw new Error(\"Invalid log level\");s=e}},{key:\"logger\",get:function t(){return o},set:function t(e){if(!e.debug&&e.info&&(e.debug=e.info),!(e.debug&&e.info&&e.warn&&e.error))throw new Error(\"Invalid logger\");o=e}}]),t}()).reset()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}();var i={setInterval:function(t){function e(e,r){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t,e){return setInterval(t,e)})),clearInterval:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){return clearInterval(t)}))},o=!1,s=null;e.Global=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t._testing=function t(){o=!0},t.setXMLHttpRequest=function t(e){s=e},n(t,null,[{key:\"location\",get:function t(){if(!o)return location}},{key:\"localStorage\",get:function t(){if(!o&&\"undefined\"!=typeof window)return localStorage}},{key:\"sessionStorage\",get:function t(){if(!o&&\"undefined\"!=typeof window)return sessionStorage}},{key:\"XMLHttpRequest\",get:function t(){if(!o&&\"undefined\"!=typeof window)return s||XMLHttpRequest}},{key:\"timer\",get:function t(){if(!o)return i}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.MetadataService=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(7);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\".well-known/openid-configuration\";e.MetadataService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(s(this,t),!e)throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"),new Error(\"settings\");this._settings=e,this._jsonService=new r([\"application/jwk-set+json\"])}return t.prototype.resetSigningKeys=function t(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug(\"MetadataService.getMetadata: getting metadata from\",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(t){i.Log.debug(\"MetadataService.getMetadata: json received\");var r=e._settings.metadataSeed||{};return e._settings.metadata=Object.assign({},r,t),e._settings.metadata}))):(i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"),Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty(\"issuer\")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty(\"authorization_endpoint\")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty(\"userinfo_endpoint\")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty(\"token_endpoint\",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty(\"check_session_iframe\",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty(\"end_session_endpoint\",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty(\"revocation_endpoint\",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty(\"jwks_uri\",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug(\"MetadataService.getMetadataProperty for: \"+e),this.getMetadata().then((function(t){if(i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"),void 0===t[e]){if(!0===r)return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \"+e);throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \"+e),new Error(\"Metadata does not contain property \"+e)}return t[e]}))},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty(\"jwks_uri\").then((function(t){return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\",t),e._jsonService.getJson(t).then((function(t){if(i.Log.debug(\"MetadataService.getSigningKeys: key set received\",t),!t.keys)throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"),new Error(\"Missing keys on keyset\");return e._settings.signingKeys=t.keys,e._settings.signingKeys}))}))},n(t,[{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(a)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=a))),this._metadataUrl}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf(\"?\")<0&&(e+=\"?\"),\"?\"!==e[e.length-1]&&(e+=\"&\"),e+=encodeURIComponent(r),e+=\"=\",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;\"string\"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),\"?\"===r&&(s=e.indexOf(\"#\"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,h=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2].replace(/\\+/g,\" \")),h++>50)return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\",e),{error:\"Response exceeded expected number of parameters\"};for(var l in u)return u;return{}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClientSettings=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=r(0),s=r(23),a=r(6),u=r(24),c=r(2);function h(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var l=\".well-known/openid-configuration\",f=\"id_token\",g=\"openid\",d=\"client_secret_post\";e.OidcClientSettings=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,l=e.signingKeys,p=e.metadataSeed,v=e.client_id,y=e.client_secret,m=e.response_type,_=void 0===m?f:m,S=e.scope,b=void 0===S?g:S,w=e.redirect_uri,F=e.post_logout_redirect_uri,E=e.client_authentication,x=void 0===E?d:E,A=e.prompt,k=e.display,P=e.max_age,C=e.ui_locales,T=e.acr_values,R=e.resource,I=e.response_mode,D=e.filterProtocolClaims,L=void 0===D||D,N=e.loadUserInfo,U=void 0===N||N,B=e.staleStateAge,O=void 0===B?900:B,j=e.clockSkew,M=void 0===j?300:j,H=e.clockService,V=void 0===H?new s.ClockService:H,K=e.userInfoJwtIssuer,q=void 0===K?\"OP\":K,J=e.mergeClaims,W=void 0!==J&&J,z=e.stateStore,Y=void 0===z?new a.WebStorageStateStore:z,G=e.ResponseValidatorCtor,X=void 0===G?u.ResponseValidator:G,$=e.MetadataServiceCtor,Q=void 0===$?c.MetadataService:$,Z=e.extraQueryParams,tt=void 0===Z?{}:Z,et=e.extraTokenParams,rt=void 0===et?{}:et;h(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=p,this._signingKeys=l,this._client_id=v,this._client_secret=y,this._response_type=_,this._scope=b,this._redirect_uri=w,this._post_logout_redirect_uri=F,this._client_authentication=x,this._prompt=A,this._display=k,this._max_age=P,this._ui_locales=C,this._acr_values=T,this._resource=R,this._response_mode=I,this._filterProtocolClaims=!!L,this._loadUserInfo=!!U,this._staleStateAge=O,this._clockSkew=M,this._clockService=V,this._userInfoJwtIssuer=q,this._mergeClaims=!!W,this._stateStore=Y,this._validator=new X(this),this._metadataService=new Q(this),this._extraQueryParams=\"object\"===(void 0===tt?\"undefined\":n(tt))?tt:{},this._extraTokenParams=\"object\"===(void 0===rt?\"undefined\":n(rt))?rt:{}}return t.prototype.getEpochTime=function t(){return this._clockService.getEpochTime()},i(t,[{key:\"client_id\",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"),new Error(\"client_id has already been assigned.\");this._client_id=e}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"response_type\",get:function t(){return this._response_type}},{key:\"scope\",get:function t(){return this._scope}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"post_logout_redirect_uri\",get:function t(){return this._post_logout_redirect_uri}},{key:\"client_authentication\",get:function t(){return this._client_authentication}},{key:\"prompt\",get:function t(){return this._prompt}},{key:\"display\",get:function t(){return this._display}},{key:\"max_age\",get:function t(){return this._max_age}},{key:\"ui_locales\",get:function t(){return this._ui_locales}},{key:\"acr_values\",get:function t(){return this._acr_values}},{key:\"resource\",get:function t(){return this._resource}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"authority\",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"),new Error(\"authority has already been assigned.\");this._authority=e}},{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(l)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=l)),this._metadataUrl}},{key:\"metadata\",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:\"metadataSeed\",get:function t(){return this._metadataSeed},set:function t(e){this._metadataSeed=e}},{key:\"signingKeys\",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:\"filterProtocolClaims\",get:function t(){return this._filterProtocolClaims}},{key:\"loadUserInfo\",get:function t(){return this._loadUserInfo}},{key:\"staleStateAge\",get:function t(){return this._staleStateAge}},{key:\"clockSkew\",get:function t(){return this._clockSkew}},{key:\"userInfoJwtIssuer\",get:function t(){return this._userInfoJwtIssuer}},{key:\"mergeClaims\",get:function t(){return this._mergeClaims}},{key:\"stateStore\",get:function t(){return this._stateStore}},{key:\"validator\",get:function t(){return this._validator}},{key:\"metadataService\",get:function t(){return this._metadataService}},{key:\"extraQueryParams\",get:function t(){return this._extraQueryParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?\"oidc.\":r,s=e.store,a=void 0===s?i.Global.localStorage:s;o(this,t),this._store=a,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug(\"WebStorageStateStore.set\",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug(\"WebStorageStateStore.get\",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug(\"WebStorageStateStore.remove\",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug(\"WebStorageStateStore.getAllKeys\");for(var e=[],r=0;r<this._store.length;r++){var i=this._store.key(r);0===i.indexOf(this._prefix)&&e.push(i.substr(this._prefix.length))}return Promise.resolve(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JsonService=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.JsonService=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;o(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push(\"application/json\"),n&&this._contentTypes.push(\"application/jwt\"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error(\"JsonService.getJson: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.getJson, url: \",e),new Promise((function(t,o){var s=new i._XMLHttpRequest;s.open(\"GET\",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug(\"JsonService.getJson: HTTP response received, status\",s.status),200===s.status){var r=s.getResponseHeader(\"Content-Type\");if(r){var i=a.find((function(t){if(r.startsWith(t))return!0}));if(\"application/jwt\"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error(\"JsonService.getJson: Error parsing JSON response\",t.message),void o(t)}}o(Error(\"Invalid response Content-Type: \"+r+\", from URL: \"+e))}else o(Error(s.statusText+\" (\"+s.status+\")\"))},s.onerror=function(){n.Log.error(\"JsonService.getJson: network error\"),o(Error(\"Network Error\"))},r&&(n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"),s.setRequestHeader(\"Authorization\",\"Bearer \"+r)),s.send()}))},t.prototype.postForm=function t(e,r,i){var o=this;if(!e)throw n.Log.error(\"JsonService.postForm: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.postForm, url: \",e),new Promise((function(t,s){var a=new o._XMLHttpRequest;a.open(\"POST\",e);var u=o._contentTypes;a.onload=function(){if(n.Log.debug(\"JsonService.postForm: HTTP response received, status\",a.status),200!==a.status){if(400===a.status)if(i=a.getResponseHeader(\"Content-Type\"))if(u.find((function(t){if(i.startsWith(t))return!0})))try{var r=JSON.parse(a.responseText);if(r&&r.error)return n.Log.error(\"JsonService.postForm: Error from server: \",r.error),void s(new Error(r.error))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(a.statusText+\" (\"+a.status+\")\"))}else{var i;if((i=a.getResponseHeader(\"Content-Type\"))&&u.find((function(t){if(i.startsWith(t))return!0})))try{return void t(JSON.parse(a.responseText))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(\"Invalid response Content-Type: \"+i+\", from URL: \"+e))}},a.onerror=function(){n.Log.error(\"JsonService.postForm: network error\"),s(Error(\"Network Error\"))};var c=\"\";for(var h in r){var l=r[h];l&&(c.length>0&&(c+=\"&\"),c+=encodeURIComponent(h),c+=\"=\",c+=encodeURIComponent(l))}a.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),void 0!==i&&a.setRequestHeader(\"Authorization\",\"Basic \"+btoa(i)),a.send(c)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SigninRequest.ctor: No url passed\"),new Error(\"url\");if(!s)throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"),new Error(\"client_id\");if(!a)throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"),new Error(\"redirect_uri\");if(!u)throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"),new Error(\"response_type\");if(!c)throw n.Log.error(\"SigninRequest.ctor: No scope passed\"),new Error(\"scope\");if(!h)throw n.Log.error(\"SigninRequest.ctor: No authority passed\"),new Error(\"authority\");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?\"query\":null),this.state=new o.SigninState({nonce:C,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,\"client_id\",s),r=i.UrlUtility.addQueryParam(r,\"redirect_uri\",a),r=i.UrlUtility.addQueryParam(r,\"response_type\",u),r=i.UrlUtility.addQueryParam(r,\"scope\",c),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,\"nonce\",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,\"code_challenge\",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,\"code_challenge_method\",\"S256\"));var R={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var D in F)r=i.UrlUtility.addQueryParam(r,D,F[D]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"id_token\"===t}))[0]},t.isOAuth=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"token\"===t}))[0]},t.isCode=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"code\"===t}))[0]},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=function s(t){return t&&t.__esModule?t:{default:t}}(r(14));function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.State=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;a(this,t),this._id=r||(0,o.default)(),this._data=n,this._created=\"number\"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug(\"State.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug(\"State.fromStorageString\"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then((function(e){i.Log.debug(\"State.clearStaleState: got keys\",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then((function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug(\"State.clearStaleState: got item from key: \",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error(\"State.clearStaleState: Error parsing state for key\",c,t.message),n=!0}else i.Log.debug(\"State.clearStaleState: no item in storage for key: \",c),n=!0;if(n)return i.Log.debug(\"State.clearStaleState: removed item for key: \",c),r.remove(c)})),n.push(u)},a=0;a<e.length;a++){var u;s(a)}return i.Log.debug(\"State.clearStaleState: waiting on promise count:\",n.length),Promise.all(n)}))},n(t,[{key:\"id\",get:function t(){return this._id}},{key:\"data\",get:function t(){return this._data}},{key:\"created\",get:function t(){return this._created}},{key:\"request_type\",get:function t(){return this._request_type}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClient=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(5),s=r(12),a=r(8),u=r(34),c=r(35),h=r(36),l=r(13),f=r(9);function g(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.OidcClient=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};g(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,h=r.prompt,l=r.display,f=r.max_age,g=r.ui_locales,d=r.id_token_hint,p=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug(\"OidcClient.createSigninRequest\");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,h=h||this._settings.prompt,l=l||this._settings.display,f=f||this._settings.max_age,g=g||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&\"code\"!==n?Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")):this._metadataService.getAuthorizationEndpoint().then((function(t){i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:h,display:l,max_age:f,ui_locales:g,id_token_hint:d,login_hint:p,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then((function(){return r}))}))},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSigninResponseState\");var o=\"query\"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type),s=o?\"?\":\"#\",c=new u.SigninResponse(e,s);if(!c.state)return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"),Promise.reject(new Error(\"No state in response\"));r=r||this._stateStore;var h=n?r.remove.bind(r):r.get.bind(r);return h(c.state).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:l.SigninState.fromStorageString(t),response:c}}))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSigninResponse\"),this.readSigninResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"),n._validator.validateSigninResponse(e,r)}))},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,h=r.request_type,l=arguments[1];return i.Log.debug(\"OidcClient.createSignoutRequest\"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(t){if(!t)throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"),new Error(\"no end session endpoint\");i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:h}),f=r.state;return f&&(i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"),(l=l||e._stateStore).set(f.id,f.toStorageString())),r}))},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSignoutResponseState\");var o=new h.SignoutResponse(e);if(!o.state)return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"),o.error?(i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({state:void 0,response:o});var a=o.state;r=r||this._stateStore;var u=n?r.remove.bind(r):r.get.bind(r);return u(a).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:f.State.fromStorageString(t),response:o}}))},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSignoutResponse\"),this.readSignoutResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return e?(i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"),r)}))},t.prototype.clearStaleState=function t(e){return i.Log.debug(\"OidcClient.clearStaleState\"),e=e||this._stateStore,f.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:\"_stateStore\",get:function t(){return this.settings.stateStore}},{key:\"_validator\",get:function t(){return this.settings.validator}},{key:\"_metadataService\",get:function t(){return this.settings.metadataService}},{key:\"settings\",get:function t(){return this._settings}},{key:\"metadataService\",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw o.Log.error(\"TokenClient.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r,this._metadataService=new a(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"authorization_code\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.code?r.redirect_uri?r.code_verifier?r.client_id?r.client_secret||\"client_secret_basic\"!=i?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeCode: No client_secret passed\"),Promise.reject(new Error(\"A client_secret is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"),Promise.reject(new Error(\"A code_verifier is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"),Promise.reject(new Error(\"A redirect_uri is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code passed\"),Promise.reject(new Error(\"A code is required\")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"refresh_token\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.refresh_token?r.client_id?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"),Promise.reject(new Error(\"A refresh_token is required\")))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ErrorResponse=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=r.error,a=r.error_description,u=r.error_uri,c=r.state,h=r.session_state;if(i(this,e),!s)throw n.Log.error(\"No error passed to ErrorResponse\"),new Error(\"error\");var l=o(this,t.call(this,a||s));return l.name=\"ErrorResponse\",l.error=s,l.error_description=a,l.error_uri=u,l.state=c,l.session_state=h,l}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(9),s=r(4),a=function u(t){return t&&t.__esModule?t:{default:t}}(r(14));function c(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function h(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.SigninState=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,l=r.code_verifier,f=r.response_mode,g=r.client_secret,d=r.scope,p=r.extraTokenParams,v=r.skipUserInfo;c(this,e);var y=h(this,t.call(this,arguments[0]));if(!0===n?y._nonce=(0,a.default)():n&&(y._nonce=n),!0===l?y._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():l&&(y._code_verifier=l),y.code_verifier){var m=s.JoseUtil.hashString(y.code_verifier,\"SHA256\");y._code_challenge=s.JoseUtil.hexToBase64Url(m)}return y._redirect_uri=u,y._authority=i,y._client_id=o,y._response_mode=f,y._client_secret=g,y._scope=d,y._extraTokenParams=p,y._skipUserInfo=v,y}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug(\"SigninState.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug(\"SigninState.fromStorageString\"),new e(JSON.parse(r))},n(e,[{key:\"nonce\",get:function t(){return this._nonce}},{key:\"authority\",get:function t(){return this._authority}},{key:\"client_id\",get:function t(){return this._client_id}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"code_verifier\",get:function t(){return this._code_verifier}},{key:\"code_challenge\",get:function t(){return this._code_challenge}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"scope\",get:function t(){return this._scope}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams}},{key:\"skipUserInfo\",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(){return(\"undefined\"!=i&&null!==i&&void 0!==i.getRandomValues?o:s)().replace(/-/g,\"\")};var i=\"undefined\"!=typeof window?window.crypto||window.msCrypto:null;function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^i.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function s(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.User=function(){function t(e){var r=e.id_token,n=e.session_state,i=e.access_token,o=e.refresh_token,s=e.token_type,a=e.scope,u=e.profile,c=e.expires_at,h=e.state;!function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.id_token=r,this.session_state=n,this.access_token=i,this.refresh_token=o,this.token_type=s,this.scope=a,this.profile=u,this.expires_at=c,this.state=h}return t.prototype.toStorageString=function t(){return i.Log.debug(\"User.toStorageString\"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})},t.fromStorageString=function e(r){return i.Log.debug(\"User.fromStorageString\"),new t(JSON.parse(r))},n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer(\"Access token expiring\"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer(\"Access token expired\"):u;o(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\",i),this._accessTokenExpiring.init(i)}else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex((function(t){return t===e}));r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug(\"Event: Raising event: \"+this._name);for(var e=0;e<this._callbacks.length;e++){var r;(r=this._callbacks)[e].apply(r,arguments)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SessionMonitor=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(19),s=r(1);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.SessionMonitor=function(){function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(a(this,t),!e)throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"),new Error(\"userManager\");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=u,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\",t.message)}))})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from getUser:\",t.message)})))}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", sub:\",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", anonymous user\")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then((function(){r._checkSessionIFrame.start(n)}))}else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\")})).catch((function(t){i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\",t.message)})))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug(\"SessionMonitor._stop\"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval((function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then((function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)})).catch((function(t){i.Log.error(\"SessionMonitor: error from querySessionStatus:\",t.message)}))}),1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then((function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\",t.session_state):(i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\",t.sub):i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"),r&&(e._sub?(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"),e._userManager.events._raiseUserSignedIn()))})).catch((function(t){e._sub&&(i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\",t.message),e._userManager.events._raiseUserSignedOut())}))},n(t,[{key:\"_settings\",get:function t(){return this._userManager.settings}},{key:\"_metadataService\",get:function t(){return this._userManager.metadataService}},{key:\"_client_id\",get:function t(){return this._settings.client_id}},{key:\"_checkSessionInterval\",get:function t(){return this._settings.checkSessionInterval}},{key:\"_stopCheckSessionOnError\",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];i(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||2e3,this._stopOnError=s;var a=n.indexOf(\"/\",n.indexOf(\"//\")+2);this._frame_origin=n.substr(0,a),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.style.display=\"none\",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise((function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener(\"message\",e._boundMessageEvent,!1)}))},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(\"error\"===e.data?(n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"),this._stopOnError&&this.stop()):\"changed\"===e.data?(n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"),this.stop(),this._callback()):n.Log.debug(\"CheckSessionIFrame: \"+e.data+\" message from check session op iframe\"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug(\"CheckSessionIFrame.start\"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+\" \"+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug(\"CheckSessionIFrame.stop\"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\"access_token\",u=\"refresh_token\";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"),new Error(\"No settings provided.\");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new a(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"access_token\";if(!e)throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"),new Error(\"No token provided.\");if(o!==a&&o!=u)throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"),new Error(\"Invalid token type.\");return this._metadataService.getRevocationEndpoint().then((function(t){if(t){n.Log.debug(\"TokenRevocationClient.revoke: Revoking \"+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"),new Error(\"Revocation not supported\")}))},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise((function(t,u){var c=new a._XMLHttpRequestCtor;c.open(\"POST\",e),c.onload=function(){n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\",c.status),200===c.status?t():u(Error(c.statusText+\" (\"+c.status+\")\"))},c.onerror=function(){n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"),u(\"Network Error\")};var h=\"client_id=\"+encodeURIComponent(r);i&&(h+=\"&client_secret=\"+encodeURIComponent(i)),h+=\"&token_type_hint=\"+encodeURIComponent(s),h+=\"&token=\"+encodeURIComponent(o),c.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),c.send(h)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.CordovaPopupWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e})),this.features=e.popupWindowFeatures||\"location=no,toolbar=no,zoom=no\",this.target=e.popupWindowTarget||\"_blank\",this.redirect_uri=e.startUrl,i.Log.debug(\"CordovaPopupWindow.ctor: redirect_uri: \"+this.redirect_uri)}return t.prototype._isInAppBrowserInstalled=function t(e){return[\"cordova-plugin-inappbrowser\",\"cordova-plugin-inappbrowser.inappbrowser\",\"org.apache.cordova.inappbrowser\"].some((function(t){return e.hasOwnProperty(t)}))},t.prototype.navigate=function t(e){if(e&&e.url){if(!window.cordova)return this._error(\"cordova is undefined\");var r=window.cordova.require(\"cordova/plugin_list\").metadata;if(!1===this._isInAppBrowserInstalled(r))return this._error(\"InAppBrowser plugin not found\");this._popup=cordova.InAppBrowser.open(e.url,this.target,this.features),this._popup?(i.Log.debug(\"CordovaPopupWindow.navigate: popup successfully created\"),this._exitCallbackEvent=this._exitCallback.bind(this),this._loadStartCallbackEvent=this._loadStartCallback.bind(this),this._popup.addEventListener(\"exit\",this._exitCallbackEvent,!1),this._popup.addEventListener(\"loadstart\",this._loadStartCallbackEvent,!1)):this._error(\"Error opening popup window\")}else this._error(\"No url provided\");return this.promise},t.prototype._loadStartCallback=function t(e){0===e.url.indexOf(this.redirect_uri)&&this._success({url:e.url})},t.prototype._exitCallback=function t(e){this._error(e)},t.prototype._success=function t(e){this._cleanup(),i.Log.debug(\"CordovaPopupWindow: Successful response from cordova popup window\"),this._resolve(e)},t.prototype._error=function t(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup()},t.prototype._cleanup=function t(){this._popup&&(i.Log.debug(\"CordovaPopupWindow: cleaning up popup\"),this._popup.removeEventListener(\"exit\",this._exitCallbackEvent,!1),this._popup.removeEventListener(\"loadstart\",this._loadStartCallbackEvent,!1),this._popup.close()),this._popup=null},n(t,[{key:\"promise\",get:function t(){return this._promise}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=r(0),i=r(10),o=r(5),s=r(6),a=r(37),u=r(38),c=r(16),h=r(2),l=r(48),f=r(49),g=r(19),d=r(20),p=r(18),v=r(1),y=r(15),m=r(50);e.default={Version:m.Version,Log:n.Log,OidcClient:i.OidcClient,OidcClientSettings:o.OidcClientSettings,WebStorageStateStore:s.WebStorageStateStore,InMemoryWebStorage:a.InMemoryWebStorage,UserManager:u.UserManager,AccessTokenEvents:c.AccessTokenEvents,MetadataService:h.MetadataService,CordovaPopupNavigator:l.CordovaPopupNavigator,CordovaIFrameNavigator:f.CordovaIFrameNavigator,CheckSessionIFrame:g.CheckSessionIFrame,TokenRevocationClient:d.TokenRevocationClient,SessionMonitor:p.SessionMonitor,Global:v.Global,User:y.User},t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.ClockService=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.getEpochTime=function t(){return Promise.resolve(Date.now()/1e3|0)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ResponseValidator=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=r(0),o=r(2),s=r(25),a=r(11),u=r(12),c=r(4);function h(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var l=[\"nonce\",\"at_hash\",\"iat\",\"nbf\",\"exp\",\"aud\",\"iss\",\"c_hash\"];e.ResponseValidator=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(h(this,t),!e)throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"),new Error(\"settings\");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new l(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"ResponseValidator.validateSigninResponse\"),this._processSigninParams(e,r).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"),n._validateTokens(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"),n._processClaims(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"),t}))}))}))},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"),Promise.reject(new Error(\"State does not match\"))):(i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"),Promise.reject(new Error(\"State does not match\"));if(!e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"),Promise.reject(new Error(\"No client_id on state\"));if(!e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"),Promise.reject(new Error(\"No authority on state\"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"),Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"),Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"))}else this._settings.client_id=e.client_id;return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"),Promise.reject(new Error(\"No id_token in response\"))):!e.nonce&&r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"),Promise.reject(new Error(\"Unexpected id_token in response\"))):e.code_verifier&&!r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"),Promise.reject(new Error(\"No code in response\"))):!e.code_verifier&&r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"),Promise.reject(new Error(\"Unexpected code in response\"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"),this._userInfoService.getClaims(r.access_token).then((function(t){return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"),t.sub!==r.profile.sub?(i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token\"),Promise.reject(new Error(\"sub from user info endpoint does not match sub in id_token\"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\",r.profile),r)}));i.Log.debug(\"ResponseValidator._processClaims: not loading user info\")}else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a<s.length;a++){var u=s[a];i[o]?Array.isArray(i[o])?i[o].indexOf(u)<0&&i[o].push(u):i[o]!==u&&(\"object\"===(void 0===u?\"undefined\":n(u))&&this._settings.mergeClaims?i[o]=this._mergeClaims(i[o],u):i[o]=[i[o],u]):i[o]=u}}return i},t.prototype._filterProtocolClaims=function t(e){i.Log.debug(\"ResponseValidator._filterProtocolClaims, incoming claims:\",e);var r=Object.assign({},e);return this._settings._filterProtocolClaims?(l.forEach((function(t){delete r[t]})),i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims filtered\",r)):i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims not filtered\"),r},t.prototype._validateTokens=function t(e,r){return r.code?(i.Log.debug(\"ResponseValidator._validateTokens: Validating code\"),this._processCode(e,r)):r.id_token?r.access_token?(i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token and access_token\"),this._validateIdTokenAndAccessToken(e,r)):(i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token\"),this._validateIdToken(e,r)):(i.Log.debug(\"ResponseValidator._validateTokens: No code to process or id_token to validate\"),Promise.resolve(r))},t.prototype._processCode=function t(e,r){var o=this,s={client_id:e.client_id,client_secret:e.client_secret,code:r.code,redirect_uri:e.redirect_uri,code_verifier:e.code_verifier};return e.extraTokenParams&&\"object\"===n(e.extraTokenParams)&&Object.assign(s,e.extraTokenParams),this._tokenClient.exchangeCode(s).then((function(t){for(var n in t)r[n]=t[n];return r.id_token?(i.Log.debug(\"ResponseValidator._processCode: token response successful, processing id_token\"),o._validateIdTokenAttributes(e,r)):(i.Log.debug(\"ResponseValidator._processCode: token response successful, returning response\"),r)}))},t.prototype._validateIdTokenAttributes=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){var o=e.client_id,s=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdTokenAttributes: Validaing JWT attributes; using clock skew (in seconds) of: \",s),n._settings.getEpochTime().then((function(a){return n._joseUtil.validateJwtAttributes(r.id_token,t,o,s,a).then((function(t){return e.nonce&&e.nonce!==t.nonce?(i.Log.error(\"ResponseValidator._validateIdTokenAttributes: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):t.sub?(r.profile=t,r):(i.Log.error(\"ResponseValidator._validateIdTokenAttributes: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))}))},t.prototype._validateIdTokenAndAccessToken=function t(e,r){var n=this;return this._validateIdToken(e,r).then((function(t){return n._validateAccessToken(t)}))},t.prototype._getSigningKeyForJwt=function t(e){var r=this;return this._metadataService.getSigningKeys().then((function(t){var n=e.header.kid;if(!t)return i.Log.error(\"ResponseValidator._validateIdToken: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));i.Log.debug(\"ResponseValidator._validateIdToken: Received signing keys\");var o=void 0;if(n)o=t.filter((function(t){return t.kid===n}))[0];else{if((t=r._filterByAlg(t,e.header.alg)).length>1)return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));o=t[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function t(e){var r=this;return this._getSigningKeyForJwt(e).then((function(t){return t?Promise.resolve(t):(r._metadataService.resetSigningKeys(),r._getSigningKeyForJwt(e))}))},t.prototype._validateIdToken=function t(e,r){var n=this;if(!e.nonce)return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"),Promise.reject(new Error(\"No nonce on state\"));var o=this._joseUtil.parseJwt(r.id_token);return o&&o.header&&o.payload?e.nonce!==o.payload.nonce?(i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):this._metadataService.getIssuer().then((function(t){return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"),n._getSigningKeyForJwtWithSingleRetry(o).then((function(s){if(!s)return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var a=e.client_id,u=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \",u),n._joseUtil.validateJwt(r.id_token,s,t,a,u).then((function(){return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))})):(i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\",o),Promise.reject(new Error(\"Failed to parse id_token\")))},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"),Promise.reject(new Error(\"No profile loaded from id_token\"));if(!e.profile.at_hash)return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"),Promise.reject(new Error(\"No at_hash in id_token\"));if(!e.id_token)return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"),Promise.reject(new Error(\"No id_token\"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\",r),Promise.reject(new Error(\"Failed to parse id_token\"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n),Promise.reject(new Error(\"Unsupported alg: \"+n));var o=n.substr(2,3);if(!o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));var s=\"sha\"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\",s),Promise.reject(new Error(\"Failed to validate at_hash\"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\",c,e.profile.at_hash),Promise.reject(new Error(\"Failed to validate at_hash\"))):(i.Log.debug(\"ResponseValidator._validateAccessToken: success\"),Promise.resolve(e))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(a(this,t),!e)throw o.Log.error(\"UserInfoService.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new u(this._settings),this._joseUtil=c}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then((function(t){return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\",t),r._jsonService.getJson(t,e).then((function(t){return o.Log.debug(\"UserInfoService.getClaims: claims received\",t),t}))})):(o.Log.error(\"UserInfoService.getClaims: No token passed\"),Promise.reject(new Error(\"A token is required\")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\",n),Promise.reject(new Error(\"Failed to parse id_token\"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case\"OP\":s=this._metadataService.getIssuer();break;case\"ANY\":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));a=s[0]}if(!a)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"),n.payload}))}))}))}catch(t){return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \",n,e.length),e},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=[\"RS256\",\"RS384\",\"RS512\",\"PS256\",\"PS384\",\"PS512\",\"ES256\",\"ES384\",\"ES512\"]},function(t,e,r){\"use strict\";(function(t){Object.defineProperty(e,\"__esModule\",{value:!0});var r,n,i,o,s,a,u,c,h,l,f,g=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},d={userAgent:!1},p={},v=v||(r=Math,i=(n={}).lib={},o=i.Base=function(){function t(){}return{extend:function e(r){t.prototype=this;var n=new t;return r&&n.mixIn(r),n.hasOwnProperty(\"init\")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function t(){var e=this.extend();return e.init.apply(e,arguments),e},init:function t(){},mixIn:function t(e){for(var r in e)e.hasOwnProperty(r)&&(this[r]=e[r]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function t(){return this.init.prototype.extend(this)}}}(),s=i.WordArray=o.extend({init:function t(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:4*e.length},toString:function t(e){return(e||u).stringify(this)},concat:function t(e){var r=this.words,n=e.words,i=this.sigBytes,o=e.sigBytes;if(this.clamp(),i%4)for(var s=0;s<o;s++){var a=n[s>>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s<o;s+=4)r[i+s>>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=r.ceil(n/4)},clone:function t(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var n=[],i=0;i<e;i+=4)n.push(4294967296*r.random()|0);return new s.init(n,e)}}),a=n.enc={},u=a.Hex={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o<n;o++){var s=r[o>>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i<r;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new s.init(n,r/2)}},c=a.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o<n;o++){var s=r[o>>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i<r;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new s.init(n,r)}},h=a.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function t(e){return c.parse(unescape(encodeURIComponent(e)))}},l=i.BufferedBlockAlgorithm=o.extend({reset:function t(){this._data=new s.init,this._nDataBytes=0},_append:function t(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var n=this._data,i=n.words,o=n.sigBytes,a=this.blockSize,u=o/(4*a),c=(u=e?r.ceil(u):r.max((0|u)-this._minBufferSize,0))*a,h=r.min(4*c,o);if(c){for(var l=0;l<c;l+=a)this._doProcessBlock(i,l);var f=i.splice(0,c);n.sigBytes-=h}return new s.init(f,h)},clone:function t(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),i.Hasher=l.extend({cfg:o.extend(),init:function t(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function t(){l.reset.call(this),this._doReset()},update:function t(e){return this._append(e),this._process(),this},finalize:function t(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function t(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function t(e){return function(t,r){return new f.HMAC.init(e,r).finalize(t)}}}),f=n.algo={},n);!function(t){var e,r=(e=v).lib,n=r.Base,i=r.WordArray;(e=e.x64={}).Word=n.extend({init:function t(e,r){this.high=e,this.low=r}}),e.WordArray=n.extend({init:function t(e,r){e=this.words=e||[],this.sigBytes=null!=r?r:8*e.length},toX32:function t(){for(var e=this.words,r=e.length,n=[],o=0;o<r;o++){var s=e[o];n.push(s.high),n.push(s.low)}return i.create(n,this.sigBytes)},clone:function t(){for(var e=n.clone.call(this),r=e.words=this.words.slice(0),i=r.length,o=0;o<i;o++)r[o]=r[o].clone();return e}})}(),function(){var t=v,e=t.lib.WordArray;t.enc.Base64={stringify:function t(e){var r=e.words,n=e.sigBytes,i=this._map;e.clamp(),e=[];for(var o=0;o<n;o+=3)for(var s=(r[o>>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a<n;a++)e.push(i.charAt(s>>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join(\"\")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a<n;a++)if(a%4){var u=i.indexOf(r.charAt(a-1))<<a%4*2,c=i.indexOf(r.charAt(a))>>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),function(t){for(var e=v,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],h=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)g[d]=0|e[r+d];else{var p=g[d-15],v=g[d-2];g[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+g[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+g[d-16]}p=f+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&l)+s[d]+g[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),f=l,l=h,h=c,c=u+p|0,u=a,a=o,o=i,i=p+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=v,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(f=this._hash.words)[0],i=f[1],o=f[2],u=f[3],c=f[4],h=f[5],l=f[6],f=f[7],g=n.high,d=n.low,p=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=h.high,E=h.low,x=l.high,A=l.low,k=f.high,P=f.low,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,B=b,O=w,j=F,M=E,H=x,V=A,K=k,q=P,J=0;80>J;J++){var W=a[J];if(16>J)var z=W.high=0|e[r+2*J],Y=W.low=0|e[r+2*J+1];else{z=((Y=(z=a[J-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[J-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[J-7]).high,Z=(tt=a[J-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0<G>>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0<tt>>>0?1:0);W.high=z,W.low=Y}Q=B&j^~B&H,tt=O&M^~O&V,W=C&R^C&D^R&D;var et=T&I^T&L^I&L,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[J]).high),nt=$.low;Z=K+((B>>>14|O<<18)^(B>>>18|O<<14)^(B<<23|O>>>9))+(($=q+((O>>>14|B<<18)^(O>>>18|B<<14)^(O<<23|B>>>9)))>>>0<q>>>0?1:0),K=H,q=V,H=j,V=M,j=B,M=O,B=N+(Z=(Z=(Z=Z+Q+(($=$+tt)>>>0<tt>>>0?1:0))+rt+(($=$+nt)>>>0<nt>>>0?1:0))+z+(($=$+Y)>>>0<Y>>>0?1:0))+((O=U+$|0)>>>0<U>>>0?1:0)|0,N=D,U=L,D=R,L=I,R=C,I=T,C=Z+(W=G+W+((Y=X+et)>>>0<X>>>0?1:0))+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=g+C+(d>>>0<T>>>0?1:0),v=i.low=v+I,i.high=p+R+(v>>>0<I>>>0?1:0),m=o.low=m+L,o.high=y+D+(m>>>0<L>>>0?1:0),S=u.low=S+U,u.high=_+N+(S>>>0<U>>>0?1:0),w=c.low=w+O,c.high=b+B+(w>>>0<O>>>0?1:0),E=h.low=E+M,h.high=F+j+(E>>>0<M>>>0?1:0),A=l.low=A+V,l.high=x+H+(A>>>0<V>>>0?1:0),P=f.low=P+q,f.high=k+K+(P>>>0<q>>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=v,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar y,m=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function _(t){var e,r,n=\"\";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=m.charAt(r>>6)+m.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=m.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=m.charAt(r>>2)+m.charAt((3&r)<<4)),\"=\";(3&n.length)>0;)n+=\"=\";return n}function S(t){var e,r,n,i=\"\",o=0;for(e=0;e<t.length&&\"=\"!=t.charAt(e);++e)(n=m.indexOf(t.charAt(e)))<0||(0==o?(i+=T(n>>2),r=3&n,o=1):1==o?(i+=T(r<<2|n>>4),r=15&n,o=2):2==o?(i+=T(r),i+=T(n>>2),r=3&n,o=3):(i+=T(r<<2|n>>4),i+=T(15&n),o=0));return 1==o&&(i+=T(r<<2)),i}function b(t){var e,r=S(t),n=new Array;for(e=0;2*e<r.length;++e)n[e]=parseInt(r.substring(2*e,2*e+2),16);return n}function w(t,e,r){null!=t&&(\"number\"==typeof t?this.fromNumber(t,e,r):null==e&&\"string\"!=typeof t?this.fromString(t,256):this.fromString(t,e))}function F(){return new w(null)}\"Microsoft Internet Explorer\"==d.appName?(w.prototype.am=function E(t,e,r,n,i,o){for(var s=32767&e,a=e>>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},y=30):\"Netscape\"!=d.appName?(w.prototype.am=function x(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},y=26):(w.prototype.am=function A(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},y=28),w.prototype.DB=y,w.prototype.DM=(1<<y)-1,w.prototype.DV=1<<y;w.prototype.FV=Math.pow(2,52),w.prototype.F1=52-y,w.prototype.F2=2*y-52;var k,P,C=new Array;for(k=\"0\".charCodeAt(0),P=0;P<=9;++P)C[k++]=P;for(k=\"a\".charCodeAt(0),P=10;P<36;++P)C[k++]=P;for(k=\"A\".charCodeAt(0),P=10;P<36;++P)C[k++]=P;function T(t){return\"0123456789abcdefghijklmnopqrstuvwxyz\".charAt(t)}function R(t,e){var r=C[t.charCodeAt(e)];return null==r?-1:r}function I(t){var e=F();return e.fromInt(t),e}function D(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function L(t){this.m=t}function N(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function U(t,e){return t&e}function B(t,e){return t|e}function O(t,e){return t^e}function j(t,e){return t&~e}function M(t){if(0==t)return-1;var e=0;return 0==(65535&t)&&(t>>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function H(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function V(){}function K(t){return t}function q(t){this.r2=F(),this.q3=F(),w.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}L.prototype.convert=function J(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},L.prototype.revert=function W(t){return t},L.prototype.reduce=function z(t){t.divRemTo(this.m,null,t)},L.prototype.mulTo=function Y(t,e,r){t.multiplyTo(e,r),this.reduce(r)},L.prototype.sqrTo=function G(t,e){t.squareTo(e),this.reduce(e)},N.prototype.convert=function X(t){var e=F();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(w.ZERO)>0&&this.m.subTo(e,e),e},N.prototype.revert=function $(t){var e=F();return t.copyTo(e),this.reduce(e),e},N.prototype.reduce=function Q(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=32767&t[e],n=r*this.mpl+((r*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},N.prototype.mulTo=function Z(t,e,r){t.multiplyTo(e,r),this.reduce(r)},N.prototype.sqrTo=function tt(t,e){t.squareTo(e),this.reduce(e)},w.prototype.copyTo=function et(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},w.prototype.fromInt=function rt(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},w.prototype.fromString=function nt(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:R(t,n);s<0?\"-\"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this[this.t++]=s>>this.DB-o):this[this.t-1]|=s<<o,(o+=r)>=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&w.ZERO.subTo(this,this)},w.prototype.clamp=function it(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},w.prototype.dlShiftTo=function ot(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},w.prototype.drShiftTo=function st(t,e){for(var r=t;r<this.t;++r)e[r-t]=this[r];e.t=Math.max(this.t-t,0),e.s=this.s},w.prototype.lShiftTo=function at(t,e){var r,n=t%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(t/this.DB),a=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<<n;for(r=s-1;r>=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},w.prototype.rShiftTo=function ut(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<<n)-1;e[0]=this[r]>>n;for(var s=r+1;s<this.t;++s)e[s-r-1]|=(this[s]&o)<<i,e[s-r]=this[s]>>n;n>0&&(e[this.t-r-1]|=(this.s&o)<<i),e.t=this.t-r,e.clamp()}},w.prototype.subTo=function ct(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]-t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t[r],e[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},w.prototype.multiplyTo=function ht(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+r.t]=r.am(0,n[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&w.ZERO.subTo(e,e)},w.prototype.squareTo=function lt(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e[r],t,2*r,0,1);(t[r+e.t]+=e.am(r+1,2*e[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},w.prototype.divRemTo=function ft(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t)return null!=e&&e.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=F());var o=F(),s=this.s,a=t.s,u=this.DB-D(n[n.t-1]);u>0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<<this.F1)+(c>1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<<this.F1)/l,d=1<<this.F2,p=r.t,v=p-c,y=null==e?F():e;for(o.dlShiftTo(v,y),r.compareTo(y)>=0&&(r[r.t++]=1,r.subTo(y,r)),w.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t<c;)o[o.t++]=0;for(;--v>=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))<m)for(o.dlShiftTo(v,y),r.subTo(y,r);r[p]<--m;)r.subTo(y,r)}null!=e&&(r.drShiftTo(c,e),s!=a&&w.ZERO.subTo(e,e)),r.t=c,r.clamp(),u>0&&r.rShiftTo(u,r),s<0&&w.ZERO.subTo(r,r)}}},w.prototype.invDigit=function gt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},w.prototype.isEven=function dt(){return 0==(this.t>0?1&this[0]:this.s)},w.prototype.exp=function pt(t,e){if(t>4294967295||t<1)return w.ONE;var r=F(),n=F(),i=e.convert(this),o=D(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<<o)>0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},w.prototype.toString=function vt(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<<e)-1,i=!1,o=\"\",s=this.t,a=this.DB-s*this.DB%e;if(s-- >0)for(a<this.DB&&(r=this[s]>>a)>0&&(i=!0,o=T(r));s>=0;)a<e?(r=(this[s]&(1<<a)-1)<<e-a,r|=this[--s]>>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=T(r));return i?o:\"0\"},w.prototype.negate=function yt(){var t=F();return w.ZERO.subTo(this,t),t},w.prototype.abs=function mt(){return this.s<0?this.negate():this},w.prototype.compareTo=function _t(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},w.prototype.bitLength=function St(){return this.t<=0?0:this.DB*(this.t-1)+D(this[this.t-1]^this.s&this.DM)},w.prototype.mod=function bt(t){var e=F();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(w.ZERO)>0&&t.subTo(e,e),e},w.prototype.modPowInt=function wt(t,e){var r;return r=t<256||e.isEven()?new L(e):new N(e),this.exp(t,r)},w.ZERO=I(0),w.ONE=I(1),V.prototype.convert=K,V.prototype.revert=K,V.prototype.mulTo=function Ft(t,e,r){t.multiplyTo(e,r)},V.prototype.sqrTo=function Et(t,e){t.squareTo(e)},q.prototype.convert=function xt(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=F();return t.copyTo(e),this.reduce(e),e},q.prototype.revert=function At(t){return t},q.prototype.reduce=function kt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},q.prototype.mulTo=function Pt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},q.prototype.sqrTo=function Ct(t,e){t.squareTo(e),this.reduce(e)};var Tt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Rt=(1<<26)/Tt[Tt.length-1];\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction It(){this.i=0,this.j=0,this.S=new Array}w.prototype.chunkSize=function Dt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},w.prototype.toRadix=function Lt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=I(r),i=F(),o=F(),s=\"\";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},w.prototype.fromRadix=function Nt(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a<t.length;++a){var u=R(t,a);u<0?\"-\"==t.charAt(a)&&0==this.signum()&&(i=!0):(s=e*s+u,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&w.ZERO.subTo(this,this)},w.prototype.fromNumber=function Ut(t,e,r){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(w.ONE.shiftLeft(t-1),B,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(w.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}},w.prototype.bitwiseTo=function Bt(t,e,r){var n,i,o=Math.min(t.t,this.t);for(n=0;n<o;++n)r[n]=e(this[n],t[n]);if(t.t<this.t){for(i=t.s&this.DM,n=o;n<this.t;++n)r[n]=e(this[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<t.t;++n)r[n]=e(i,t[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()},w.prototype.changeBit=function Ot(t,e){var r=w.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r},w.prototype.addTo=function jt(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]+t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t[r],e[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},w.prototype.dMultiply=function Mt(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},w.prototype.dAddOffset=function Ht(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},w.prototype.multiplyLowerTo=function Vt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i<n;++i)r[i+this.t]=this.am(0,t[i],r,i,0,this.t);for(n=Math.min(t.t,e);i<n;++i)this.am(0,t[i],r,i,0,e-i);r.clamp()},w.prototype.multiplyUpperTo=function Kt(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r[this.t+n-e]=this.am(e-n,t[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)},w.prototype.modInt=function qt(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},w.prototype.millerRabin=function Jt(t){var e=this.subtract(w.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Tt.length&&(t=Tt.length);for(var i=F(),o=0;o<t;++o){i.fromInt(Tt[Math.floor(Math.random()*Tt.length)]);var s=i.modPow(n,this);if(0!=s.compareTo(w.ONE)&&0!=s.compareTo(e)){for(var a=1;a++<r&&0!=s.compareTo(e);)if(0==(s=s.modPowInt(2,this)).compareTo(w.ONE))return!1;if(0!=s.compareTo(e))return!1}}return!0},w.prototype.clone=\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Wt(){var t=F();return this.copyTo(t),t},w.prototype.intValue=function zt(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},w.prototype.byteValue=function Yt(){return 0==this.t?this.s:this[0]<<24>>24},w.prototype.shortValue=function Gt(){return 0==this.t?this.s:this[0]<<16>>16},w.prototype.signum=function Xt(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},w.prototype.toByteArray=function $t(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n<this.DB&&(r=this[t]>>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<<this.DB-n);t>=0;)n<8?(r=(this[t]&(1<<n)-1)<<8-n,r|=this[--t]>>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},w.prototype.equals=function Qt(t){return 0==this.compareTo(t)},w.prototype.min=function Zt(t){return this.compareTo(t)<0?this:t},w.prototype.max=function te(t){return this.compareTo(t)>0?this:t},w.prototype.and=function ee(t){var e=F();return this.bitwiseTo(t,U,e),e},w.prototype.or=function re(t){var e=F();return this.bitwiseTo(t,B,e),e},w.prototype.xor=function ne(t){var e=F();return this.bitwiseTo(t,O,e),e},w.prototype.andNot=function ie(t){var e=F();return this.bitwiseTo(t,j,e),e},w.prototype.not=function oe(){for(var t=F(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},w.prototype.shiftLeft=function se(t){var e=F();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},w.prototype.shiftRight=function ae(t){var e=F();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},w.prototype.getLowestSetBit=function ue(){for(var t=0;t<this.t;++t)if(0!=this[t])return t*this.DB+M(this[t]);return this.s<0?this.t*this.DB:-1},w.prototype.bitCount=function ce(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=H(this[r]^e);return t},w.prototype.testBit=function he(t){var e=Math.floor(t/this.DB);return e>=this.t?0!=this.s:0!=(this[e]&1<<t%this.DB)},w.prototype.setBit=function le(t){return this.changeBit(t,B)},w.prototype.clearBit=function fe(t){return this.changeBit(t,j)},w.prototype.flipBit=function ge(t){return this.changeBit(t,O)},w.prototype.add=function de(t){var e=F();return this.addTo(t,e),e},w.prototype.subtract=function pe(t){var e=F();return this.subTo(t,e),e},w.prototype.multiply=function ve(t){var e=F();return this.multiplyTo(t,e),e},w.prototype.divide=function ye(t){var e=F();return this.divRemTo(t,e,null),e},w.prototype.remainder=function me(t){var e=F();return this.divRemTo(t,null,e),e},w.prototype.divideAndRemainder=function _e(t){var e=F(),r=F();return this.divRemTo(t,e,r),new Array(e,r)},w.prototype.modPow=function Se(t,e){var r,n,i=t.bitLength(),o=I(1);if(i<=0)return o;r=i<18?1:i<48?3:i<144?4:i<768?5:6,n=i<8?new L(e):e.isEven()?new q(e):new N(e);var s=new Array,a=3,u=r-1,c=(1<<r)-1;if(s[1]=n.convert(this),r>1){var h=F();for(n.sqrTo(s[1],h);a<=c;)s[a]=F(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=F();for(i=D(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<<i+1)-1)<<u-i,g>0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<<i);)n.sqrTo(o,p),f=o,o=p,p=f,--i<0&&(i=this.DB-1,--g)}return n.revert(o)},w.prototype.modInverse=function be(t){var e=t.isEven();if(this.isEven()&&e||0==t.signum())return w.ZERO;for(var r=t.clone(),n=this.clone(),i=I(1),o=I(0),s=I(0),a=I(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),e?(i.isEven()&&o.isEven()||(i.addTo(this,i),o.subTo(t,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(t,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),e?(s.isEven()&&a.isEven()||(s.addTo(this,s),a.subTo(t,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(w.ONE)?w.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},w.prototype.pow=function we(t){return this.exp(t,new V)},w.prototype.gcd=function Fe(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i<o&&(o=i),o>0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},w.prototype.isProbablePrime=function Ee(t){var e,r=this.abs();if(1==r.t&&r[0]<=Tt[Tt.length-1]){for(e=0;e<Tt.length;++e)if(r[0]==Tt[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Tt.length;){for(var n=Tt[e],i=e+1;i<Tt.length&&n<Rt;)n*=Tt[i++];for(n=r.modInt(n);e<i;)if(n%Tt[e++]==0)return!1}return r.millerRabin(t)},w.prototype.square=function xe(){var t=F();return this.squareTo(t),t},It.prototype.init=function Ae(t){var e,r,n;for(e=0;e<256;++e)this.S[e]=e;for(r=0,e=0;e<256;++e)r=r+this.S[e]+t[e%t.length]&255,n=this.S[e],this.S[e]=this.S[r],this.S[r]=n;this.i=0,this.j=0},It.prototype.next=function ke(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]};var Pe,Ce,Te;\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */function Re(){!function t(e){Ce[Te++]^=255&e,Ce[Te++]^=e>>8&255,Ce[Te++]^=e>>16&255,Ce[Te++]^=e>>24&255,Te>=256&&(Te-=256)}((new Date).getTime())}if(null==Ce){var Ie;if(Ce=new Array,Te=0,void 0!==p&&(void 0!==p.crypto||void 0!==p.msCrypto)){var De=p.crypto||p.msCrypto;if(De.getRandomValues){var Le=new Uint8Array(32);for(De.getRandomValues(Le),Ie=0;Ie<32;++Ie)Ce[Te++]=Le[Ie]}else if(\"Netscape\"==d.appName&&d.appVersion<\"5\"){var Ne=p.crypto.random(32);for(Ie=0;Ie<Ne.length;++Ie)Ce[Te++]=255&Ne.charCodeAt(Ie)}}for(;Te<256;)Ie=Math.floor(65536*Math.random()),Ce[Te++]=Ie>>>8,Ce[Te++]=255&Ie;Te=0,Re()}function Ue(){if(null==Pe){for(Re(),(Pe=function t(){return new It}()).init(Ce),Te=0;Te<Ce.length;++Te)Ce[Te]=0;Te=0}return Pe.next()}function Be(){}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Oe(t,e){return new w(t,e)}function je(t,e,r){for(var n=\"\",i=0;n.length<e;)n+=r(String.fromCharCode.apply(String,t.concat([(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function Me(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction He(t,e){this.x=e,this.q=t}function Ve(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?w.ONE:n,this.zinv=null}function Ke(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Ve(this,null,null)}Be.prototype.nextBytes=function qe(t){var e;for(e=0;e<t.length;++e)t[e]=Ue()},Me.prototype.doPublic=function Je(t){return t.modPowInt(this.e,this.n)},Me.prototype.setPublic=function We(t,e){if(this.isPublic=!0,this.isPrivate=!1,\"string\"!=typeof t)this.n=t,this.e=e;else{if(!(null!=t&&null!=e&&t.length>0&&e.length>0))throw\"Invalid RSA public key\";this.n=Oe(t,16),this.e=parseInt(e,16)}},Me.prototype.encrypt=function ze(t){var e=function r(t,e){if(e<t.length+11)throw\"Message too long for RSA\";for(var r=new Array,n=t.length-1;n>=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new Be,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new w(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:\"0\"+i},Me.prototype.encryptOAEP=function Ye(t,e,r){var n=function i(t,e,r,n){var i=Sr.crypto.MessageDigest,o=Sr.crypto.Util,s=null;if(r||(r=\"sha1\"),\"string\"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return Lr(o.hashHex(Nr(e),s))}),t.length+2*n+2>e)throw\"Message too long for RSA\";var a,u=\"\";for(a=0;a<e-t.length-2*n-2;a+=1)u+=\"\\0\";var c=r(\"\")+u+\"\u0001\"+t,h=new Array(n);(new Be).nextBytes(h);var l=je(h,c.length,r),f=[];for(a=0;a<c.length;a+=1)f[a]=c.charCodeAt(a)^l.charCodeAt(a);var g=je(f,h.length,r),d=[0];for(a=0;a<h.length;a+=1)d[a+1]=h[a]^g.charCodeAt(a);return new w(d.concat(f))}(t,this.n.bitLength()+7>>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:\"0\"+s},Me.prototype.type=\"RSA\",He.prototype.equals=function Ge(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},He.prototype.toBigInteger=function Xe(){return this.x},He.prototype.negate=function $e(){return new He(this.q,this.x.negate().mod(this.q))},He.prototype.add=function Qe(t){return new He(this.q,this.x.add(t.toBigInteger()).mod(this.q))},He.prototype.subtract=function Ze(t){return new He(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},He.prototype.multiply=function tr(t){return new He(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},He.prototype.square=function er(){return new He(this.q,this.x.square().mod(this.q))},He.prototype.divide=function rr(t){return new He(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Ve.prototype.getX=function nr(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ve.prototype.getY=function ir(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ve.prototype.equals=function or(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(w.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(w.ZERO))},Ve.prototype.isInfinity=function sr(){return null==this.x&&null==this.y||this.z.equals(w.ZERO)&&!this.y.toBigInteger().equals(w.ZERO)},Ve.prototype.negate=function ar(){return new Ve(this.curve,this.x,this.y.negate(),this.z)},Ve.prototype.add=function ur(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(w.ZERO.equals(r))return w.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new w(\"3\"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Ve(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},Ve.prototype.twice=function cr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new w(\"3\"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);w.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Ve(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Ve.prototype.multiply=function hr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new w(\"3\")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new w(\"3\")),u=new Ve(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},Ve.prototype.multiplyTwo=function lr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},Ke.prototype.getQ=function fr(){return this.q},Ke.prototype.getA=function gr(){return this.a},Ke.prototype.getB=function dr(){return this.b},Ke.prototype.equals=function pr(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},Ke.prototype.getInfinity=function vr(){return this.infinity},Ke.prototype.fromBigInteger=function yr(t){return new He(this.q,t)},Ke.prototype.decodePointHex=function mr(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Ve(this,this.fromBigInteger(new w(r,16)),this.fromBigInteger(new w(n,16)));default:return null}},\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nHe.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Ve.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(r<n.length)n=n.slice(n.length-r);else for(;r>n.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Ve.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new w(n),s=new w(i);return new Ve(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ve.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new w(n,16),s=new w(i,16);return new Ve(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ve.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ve(this.curve,n,i)},Ve.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(w.valueOf(2)),e=this.curve.fromBigInteger(w.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ve(this.curve,n,i)},Ve.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new w(\"3\")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Ve.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Ve.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"},Ve.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error(\"Point is at infinity.\");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(w.ONE)<0||e.compareTo(t.subtract(w.ONE))>0)throw new Error(\"x coordinate out of bounds\");if(r.compareTo(w.ONE)<0||r.compareTo(t.subtract(w.ONE))>0)throw new Error(\"y coordinate out of bounds\");if(!this.isOnCurve())throw new Error(\"Point is not on the curve.\");if(this.multiply(t).isInfinity())throw new Error(\"Point is not a scalar multiple of G.\");return!0};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar _r=function(){var t=new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))',\"g\"),e=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\"),r={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function n(t,e,n){return e?r[e]:String.fromCharCode(parseInt(n,16))}var i=new String(\"\"),o=Object.hasOwnProperty;return function(r,s){var a,u,c=r.match(t),h=c[0],l=!1;\"{\"===h?a={}:\"[\"===h?a=[]:(a=[],l=!0);for(var f=[a],d=1-l,p=c.length;d<p;++d){var v;switch((h=c[d]).charCodeAt(0)){default:(v=f[0])[u||v.length]=+h,u=void 0;break;case 34:if(-1!==(h=h.substring(1,h.length-1)).indexOf(\"\\\\\")&&(h=h.replace(e,n)),v=f[0],!u){if(!(v instanceof Array)){u=h||i;break}u=v.length}v[u]=h,u=void 0;break;case 91:v=f[0],f.unshift(v[u||v.length]=[]),u=void 0;break;case 93:f.shift();break;case 102:(v=f[0])[u||v.length]=!1,u=void 0;break;case 110:(v=f[0])[u||v.length]=null,u=void 0;break;case 116:(v=f[0])[u||v.length]=!0,u=void 0;break;case 123:v=f[0],f.unshift(v[u||v.length]={}),u=void 0;break;case 125:f.shift()}}if(l){if(1!==f.length)throw new Error;a=a[0]}else if(f.length)throw new Error;if(s){a=function t(e,r){var n=e[r];if(n&&\"object\"===(void 0===n?\"undefined\":g(n))){var i=null;for(var a in n)if(o.call(n,a)&&n!==e){var u=t(n,a);void 0!==u?n[a]=u:(i||(i=[]),i.push(a))}if(i)for(var c=i.length;--c>=0;)delete n[i[c]]}return s.call(e,r,n)}({\"\":a},\"\")}return a}}();void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.asn1&&Sr.asn1||(Sr.asn1={}),Sr.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e=\"0\"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if(\"-\"!=e.substr(0,1))e.length%2==1?e=\"0\"+e:e.match(/^[0-7]/)||(e=\"00\"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n=\"\",i=0;i<r;i++)n+=\"f\";e=new w(n,16).xor(t).add(w.ONE).toString(16).replace(/^-/,\"\")}return e},this.getPEMStringFromHex=function(t,e){return jr(t,e)},this.newObject=function(t){var e=Sr.asn1,r=e.ASN1Object,n=e.DERBoolean,i=e.DERInteger,o=e.DERBitString,s=e.DEROctetString,a=e.DERNull,u=e.DERObjectIdentifier,c=e.DEREnumerated,h=e.DERUTF8String,l=e.DERNumericString,f=e.DERPrintableString,g=e.DERTeletexString,d=e.DERIA5String,p=e.DERUTCTime,v=e.DERGeneralizedTime,y=e.DERVisibleString,m=e.DERBMPString,_=e.DERSequence,S=e.DERSet,b=e.DERTaggedObject,w=e.ASN1Util.newObject;if(t instanceof e.ASN1Object)return t;var F=Object.keys(t);if(1!=F.length)throw new Error(\"key of param shall be only one.\");var E=F[0];if(-1==\":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:\".indexOf(\":\"+E+\":\"))throw new Error(\"undefined key: \"+E);if(\"bool\"==E)return new n(t[E]);if(\"int\"==E)return new i(t[E]);if(\"bitstr\"==E)return new o(t[E]);if(\"octstr\"==E)return new s(t[E]);if(\"null\"==E)return new a(t[E]);if(\"oid\"==E)return new u(t[E]);if(\"enum\"==E)return new c(t[E]);if(\"utf8str\"==E)return new h(t[E]);if(\"numstr\"==E)return new l(t[E]);if(\"prnstr\"==E)return new f(t[E]);if(\"telstr\"==E)return new g(t[E]);if(\"ia5str\"==E)return new d(t[E]);if(\"utctime\"==E)return new p(t[E]);if(\"gentime\"==E)return new v(t[E]);if(\"visstr\"==E)return new y(t[E]);if(\"bmpstr\"==E)return new m(t[E]);if(\"asn1\"==E)return new r(t[E]);if(\"seq\"==E){for(var x=t[E],A=[],k=0;k<x.length;k++){var P=w(x[k]);A.push(P)}return new _({array:A})}if(\"set\"==E){for(x=t[E],A=[],k=0;k<x.length;k++){P=w(x[k]);A.push(P)}return new S({array:A})}if(\"tag\"==E){var C=t[E];if(\"[object Array]\"===Object.prototype.toString.call(C)&&3==C.length){var T=w(C[2]);return new b({tag:C[0],explicit:C[1],obj:T})}return new b(C)}},this.jsonToASN1HEX=function(t){return this.newObject(t).getEncodedHex()}},Sr.asn1.ASN1Util.oidHexToInt=function(t){for(var e=\"\",r=parseInt(t.substr(0,2),16),n=(e=Math.floor(r/40)+\".\"+r%40,\"\"),i=2;i<t.length;i+=2){var o=(\"00000000\"+parseInt(t.substr(i,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),\"0\"==o.substr(0,1))e=e+\".\"+new w(n,2).toString(10),n=\"\"}return e},Sr.asn1.ASN1Util.oidIntToHex=function(t){var e=function t(e){var r=e.toString(16);return 1==r.length&&(r=\"0\"+r),r},r=function t(r){var n=\"\",i=new w(r,10).toString(2),o=7-i.length%7;7==o&&(o=0);for(var s=\"\",a=0;a<o;a++)s+=\"0\";i=s+i;for(a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u=\"1\"+u),n+=e(parseInt(u,2))}return n};if(!t.match(/^[0-9.]+$/))throw\"malformed oid string: \"+t;var n=\"\",i=t.split(\".\"),o=40*parseInt(i[0])+parseInt(i[1]);n+=e(o),i.splice(0,2);for(var s=0;s<i.length;s++)n+=r(i[s]);return n},Sr.asn1.ASN1Object=function(t){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error(\"this.hV is null or undefined\");if(this.hV.length%2==1)throw new Error(\"value hex must be even length: n=\"+\"\".length+\",v=\"+this.hV);var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e=\"0\"+e),t<128)return e;var r=e.length/2;if(r>15)throw\"ASN.1 length too long to represent by 8x: n = \"+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return\"\"},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},Sr.asn1.DERAbstractString=function(t){Sr.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Ir(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},Zr(Sr.asn1.DERAbstractString,Sr.asn1.ASN1Object),Sr.asn1.DERAbstractTime=function(t){Sr.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());\"utc\"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+\".\"+(u=u.replace(/[0]+$/,\"\"))}}return s+\"Z\"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join(\"0\")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=kr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},Zr(Sr.asn1.DERAbstractTime,Sr.asn1.ASN1Object),Sr.asn1.DERAbstractStructured=function(t){Sr.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},Zr(Sr.asn1.DERAbstractStructured,Sr.asn1.ASN1Object),Sr.asn1.DERBoolean=function(t){Sr.asn1.DERBoolean.superclass.constructor.call(this),this.hT=\"01\",this.hTLV=0==t?\"010100\":\"0101ff\"},Zr(Sr.asn1.DERBoolean,Sr.asn1.ASN1Object),Sr.asn1.DERInteger=function(t){Sr.asn1.DERInteger.superclass.constructor.call(this),this.hT=\"02\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=Sr.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new w(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},Zr(Sr.asn1.DERInteger,Sr.asn1.ASN1Object),Sr.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=Sr.asn1.ASN1Util.newObject(t.obj);t.hex=\"00\"+e.getEncodedHex()}Sr.asn1.DERBitString.superclass.constructor.call(this),this.hT=\"03\",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7<t)throw\"unused bits shall be from 0 to 7: u = \"+t;var r=\"0\"+t;this.hTLV=null,this.isModified=!0,this.hV=r+e},this.setByBinaryString=function(t){var e=8-(t=t.replace(/0+$/,\"\")).length%8;8==e&&(e=0);for(var r=0;r<=e;r++)t+=\"0\";var n=\"\";for(r=0;r<t.length-1;r+=8){var i=t.substr(r,8),o=parseInt(i,2).toString(16);1==o.length&&(o=\"0\"+o),n+=o}this.hTLV=null,this.isModified=!0,this.hV=\"0\"+e+n},this.setByBooleanArray=function(t){for(var e=\"\",r=0;r<t.length;r++)1==t[r]?e+=\"1\":e+=\"0\";this.setByBinaryString(e)},this.newFalseArray=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=!1;return e},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(t):void 0!==t.hex?this.setHexValueIncludingUnusedBits(t.hex):void 0!==t.bin?this.setByBinaryString(t.bin):void 0!==t.array&&this.setByBooleanArray(t.array))},Zr(Sr.asn1.DERBitString,Sr.asn1.ASN1Object),Sr.asn1.DEROctetString=function(t){if(void 0!==t&&void 0!==t.obj){var e=Sr.asn1.ASN1Util.newObject(t.obj);t.hex=e.getEncodedHex()}Sr.asn1.DEROctetString.superclass.constructor.call(this,t),this.hT=\"04\"},Zr(Sr.asn1.DEROctetString,Sr.asn1.DERAbstractString),Sr.asn1.DERNull=function(){Sr.asn1.DERNull.superclass.constructor.call(this),this.hT=\"05\",this.hTLV=\"0500\"},Zr(Sr.asn1.DERNull,Sr.asn1.ASN1Object),Sr.asn1.DERObjectIdentifier=function(t){Sr.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT=\"06\",this.setValueHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueOidString=function(t){var e=function r(t){var e=function t(e){var r=e.toString(16);return 1==r.length&&(r=\"0\"+r),r},r=function t(r){var n=\"\",i=parseInt(r,10).toString(2),o=7-i.length%7;7==o&&(o=0);for(var s=\"\",a=0;a<o;a++)s+=\"0\";i=s+i;for(a=0;a<i.length-1;a+=7){var u=i.substr(a,7);a!=i.length-7&&(u=\"1\"+u),n+=e(parseInt(u,2))}return n};try{if(!t.match(/^[0-9.]+$/))return null;var n=\"\",i=t.split(\".\"),o=40*parseInt(i[0],10)+parseInt(i[1],10);n+=e(o),i.splice(0,2);for(var s=0;s<i.length;s++)n+=r(i[s]);return n}catch(t){return null}}(t);if(null==e)throw new Error(\"malformed oid string: \"+t);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueName=function(t){var e=Sr.asn1.x509.OID.name2oid(t);if(\"\"===e)throw new Error(\"DERObjectIdentifier oidName undefined: \"+t);this.setValueOidString(e)},this.setValueNameOrOid=function(t){t.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(t):this.setValueName(t)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(t){\"string\"==typeof t?this.setValueNameOrOid(t):void 0!==t.oid?this.setValueNameOrOid(t.oid):void 0!==t.name?this.setValueNameOrOid(t.name):void 0!==t.hex&&this.setValueHex(t.hex)},void 0!==t&&this.setByParam(t)},Zr(Sr.asn1.DERObjectIdentifier,Sr.asn1.ASN1Object),Sr.asn1.DEREnumerated=function(t){Sr.asn1.DEREnumerated.superclass.constructor.call(this),this.hT=\"0a\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=Sr.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new w(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},Zr(Sr.asn1.DEREnumerated,Sr.asn1.ASN1Object),Sr.asn1.DERUTF8String=function(t){Sr.asn1.DERUTF8String.superclass.constructor.call(this,t),this.hT=\"0c\"},Zr(Sr.asn1.DERUTF8String,Sr.asn1.DERAbstractString),Sr.asn1.DERNumericString=function(t){Sr.asn1.DERNumericString.superclass.constructor.call(this,t),this.hT=\"12\"},Zr(Sr.asn1.DERNumericString,Sr.asn1.DERAbstractString),Sr.asn1.DERPrintableString=function(t){Sr.asn1.DERPrintableString.superclass.constructor.call(this,t),this.hT=\"13\"},Zr(Sr.asn1.DERPrintableString,Sr.asn1.DERAbstractString),Sr.asn1.DERTeletexString=function(t){Sr.asn1.DERTeletexString.superclass.constructor.call(this,t),this.hT=\"14\"},Zr(Sr.asn1.DERTeletexString,Sr.asn1.DERAbstractString),Sr.asn1.DERIA5String=function(t){Sr.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT=\"16\"},Zr(Sr.asn1.DERIA5String,Sr.asn1.DERAbstractString),Sr.asn1.DERVisibleString=function(t){Sr.asn1.DERIA5String.superclass.constructor.call(this,t),this.hT=\"1a\"},Zr(Sr.asn1.DERVisibleString,Sr.asn1.DERAbstractString),Sr.asn1.DERBMPString=function(t){Sr.asn1.DERBMPString.superclass.constructor.call(this,t),this.hT=\"1e\"},Zr(Sr.asn1.DERBMPString,Sr.asn1.DERAbstractString),Sr.asn1.DERUTCTime=function(t){Sr.asn1.DERUTCTime.superclass.constructor.call(this,t),this.hT=\"17\",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,\"utc\"),this.hV=kr(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,\"utc\"),this.hV=kr(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):\"string\"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date))},Zr(Sr.asn1.DERUTCTime,Sr.asn1.DERAbstractTime),Sr.asn1.DERGeneralizedTime=function(t){Sr.asn1.DERGeneralizedTime.superclass.constructor.call(this,t),this.hT=\"18\",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,\"gen\",this.withMillis),this.hV=kr(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,\"gen\",this.withMillis),this.hV=kr(this.s)),this.hV},void 0!==t&&(void 0!==t.str?this.setString(t.str):\"string\"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.setString(t):void 0!==t.hex?this.setStringHex(t.hex):void 0!==t.date&&this.setByDate(t.date),!0===t.millis&&(this.withMillis=!0))},Zr(Sr.asn1.DERGeneralizedTime,Sr.asn1.DERAbstractTime),Sr.asn1.DERSequence=function(t){Sr.asn1.DERSequence.superclass.constructor.call(this,t),this.hT=\"30\",this.getFreshValueHex=function(){for(var t=\"\",e=0;e<this.asn1Array.length;e++){t+=this.asn1Array[e].getEncodedHex()}return this.hV=t,this.hV}},Zr(Sr.asn1.DERSequence,Sr.asn1.DERAbstractStructured),Sr.asn1.DERSet=function(t){Sr.asn1.DERSet.superclass.constructor.call(this,t),this.hT=\"31\",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var r=this.asn1Array[e];t.push(r.getEncodedHex())}return 1==this.sortFlag&&t.sort(),this.hV=t.join(\"\"),this.hV},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.sortFlag=!1)},Zr(Sr.asn1.DERSet,Sr.asn1.DERAbstractStructured),Sr.asn1.DERTaggedObject=function(t){Sr.asn1.DERTaggedObject.superclass.constructor.call(this);var e=Sr.asn1;this.hT=\"a0\",this.hV=\"\",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,r){this.hT=e,this.isExplicit=t,this.asn1Object=r,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=r.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(t){null!=t.tag&&(this.hT=t.tag),null!=t.explicit&&(this.isExplicit=t.explicit),null!=t.tage&&(this.hT=t.tage,this.isExplicit=!0),null!=t.tagi&&(this.hT=t.tagi,this.isExplicit=!1),null!=t.obj&&(t.obj instanceof e.ASN1Object?(this.asn1Object=t.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):\"object\"==g(t.obj)&&(this.asn1Object=e.ASN1Util.newObject(t.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=t&&this.setByParam(t)},Zr(Sr.asn1.DERTaggedObject,Sr.asn1.ASN1Object);var Sr,br,wr,Fr=new function(){};function Er(t){for(var e=new Array,r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}function xr(t){for(var e=\"\",r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e}function Ar(t){for(var e=\"\",r=0;r<t.length;r++){var n=t[r].toString(16);1==n.length&&(n=\"0\"+n),e+=n}return e}function kr(t){return Ar(Er(t))}function Pr(t){return t=(t=(t=t.replace(/\\=/g,\"\")).replace(/\\+/g,\"-\")).replace(/\\//g,\"_\")}function Cr(t){return t.length%4==2?t+=\"==\":t.length%4==3&&(t+=\"=\"),t=(t=t.replace(/-/g,\"+\")).replace(/_/g,\"/\")}function Tr(t){return t.length%2==1&&(t=\"0\"+t),Pr(_(t))}function Rr(t){return S(Cr(t))}function Ir(t){return Kr(Gr(t))}function Dr(t){return decodeURIComponent(qr(t))}function Lr(t){for(var e=\"\",r=0;r<t.length-1;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e}function Nr(t){for(var e=\"\",r=0;r<t.length;r++)e+=(\"0\"+t.charCodeAt(r).toString(16)).slice(-2);return e}function Ur(t){return _(t)}function Br(t){var e=Ur(t).replace(/(.{64})/g,\"$1\\r\\n\");return e=e.replace(/\\r\\n$/,\"\")}function Or(t){return S(t.replace(/[^0-9A-Za-z\\/+=]*/g,\"\"))}function jr(t,e){return\"-----BEGIN \"+e+\"-----\\r\\n\"+Br(t)+\"\\r\\n-----END \"+e+\"-----\\r\\n\"}function Mr(t,e){if(-1==t.indexOf(\"-----BEGIN \"))throw\"can't find PEM header: \"+e;return Or(t=void 0!==e?(t=t.replace(new RegExp(\"^[^]*-----BEGIN \"+e+\"-----\"),\"\")).replace(new RegExp(\"-----END \"+e+\"-----[^]*$\"),\"\"):(t=t.replace(/^[^]*-----BEGIN [^-]+-----/,\"\")).replace(/-----END [^-]+-----[^]*$/,\"\"))}function Hr(t){var e,r,n,i,o,s,a,u,c,h,l;if(l=t.match(/^(\\d{2}|\\d{4})(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(|\\.\\d+)Z$/))return u=l[1],e=parseInt(u),2===u.length&&(50<=e&&e<100?e=1900+e:0<=e&&e<50&&(e=2e3+e)),r=parseInt(l[2])-1,n=parseInt(l[3]),i=parseInt(l[4]),o=parseInt(l[5]),s=parseInt(l[6]),a=0,\"\"!==(c=l[7])&&(h=(c.substr(1)+\"00\").substr(0,3),a=parseInt(h)),Date.UTC(e,r,n,i,o,s,a);throw\"unsupported zulu format: \"+t}function Vr(t){return~~(Hr(t)/1e3)}function Kr(t){return t.replace(/%/g,\"\")}function qr(t){return t.replace(/(..)/g,\"%$1\")}function Jr(t){var e=\"malformed IPv6 address\";if(!t.match(/^[0-9A-Fa-f:]+$/))throw e;var r=(t=t.toLowerCase()).split(\":\").length-1;if(r<2)throw e;var n=\":\".repeat(7-r+2),i=(t=t.replace(\"::\",n)).split(\":\");if(8!=i.length)throw e;for(var o=0;o<8;o++)i[o]=(\"0000\"+i[o]).slice(-4);return i.join(\"\")}function Wr(t){if(!t.match(/^[0-9A-Fa-f]{32}$/))throw\"malformed IPv6 address octet\";for(var e=(t=t.toLowerCase()).match(/.{1,4}/g),r=0;r<8;r++)e[r]=e[r].replace(/^0+/,\"\"),\"\"==e[r]&&(e[r]=\"0\");var n=(t=\":\"+e.join(\":\")+\":\").match(/:(0:){2,}/g);if(null===n)return t.slice(1,-1);var i=\"\";for(r=0;r<n.length;r++)n[r].length>i.length&&(i=n[r]);return(t=t.replace(i,\"::\")).slice(1,-1)}function zr(t){var e=\"malformed hex value\";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Wr(t):t;try{return parseInt(t.substr(0,2),16)+\".\"+parseInt(t.substr(2,2),16)+\".\"+parseInt(t.substr(4,2),16)+\".\"+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Yr(t){return t.match(/.{4}/g).map((function e(t){var e=parseInt(t.substr(0,2),16),r=parseInt(t.substr(2),16);if(0==e&r<128)return String.fromCharCode(r);if(e<8){var n=128|63&r;return Dr((192|(7&e)<<3|(192&r)>>6).toString(16)+n.toString(16))}n=128|(15&e)<<2|(192&r)>>6;var i=128|63&r;return Dr((224|(240&e)>>4).toString(16)+n.toString(16)+i.toString(16))})).join(\"\")}function Gr(t){for(var e=encodeURIComponent(t),r=\"\",n=0;n<e.length;n++)\"%\"==e[n]?(r+=e.substr(n,3),n+=2):r=r+\"%\"+kr(e[n]);return r}function Xr(t){return!(t.length%2!=0||!t.match(/^[0-9a-f]+$/)&&!t.match(/^[0-9A-F]+$/))}function $r(t){return t.length%2==1?\"0\"+t:t.substr(0,1)>\"7\"?\"00\"+t:t}Fr.getLblen=function(t,e){if(\"8\"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0<r&&r<10?r+1:-2},Fr.getL=function(t,e){var r=Fr.getLblen(t,e);return r<1?\"\":t.substr(e+2,2*r)},Fr.getVblen=function(t,e){var r;return\"\"==(r=Fr.getL(t,e))?-1:(\"8\"===r.substr(0,1)?new w(r.substr(2),16):new w(r,16)).intValue()},Fr.getVidx=function(t,e){var r=Fr.getLblen(t,e);return r<0?r:e+2*(r+1)},Fr.getV=function(t,e){var r=Fr.getVidx(t,e),n=Fr.getVblen(t,e);return t.substr(r,2*n)},Fr.getTLV=function(t,e){return t.substr(e,2)+Fr.getL(t,e)+Fr.getV(t,e)},Fr.getTLVblen=function(t,e){return 2+2*Fr.getLblen(t,e)+2*Fr.getVblen(t,e)},Fr.getNextSiblingIdx=function(t,e){return Fr.getVidx(t,e)+2*Fr.getVblen(t,e)},Fr.getChildIdx=function(t,e){var r,n,i,o=Fr,s=[];r=o.getVidx(t,e),n=2*o.getVblen(t,e),\"03\"==t.substr(e,2)&&(r+=2,n-=2),i=0;for(var a=r;i<=n;){var u=o.getTLVblen(t,a);if((i+=u)<=n&&s.push(a),a+=u,i>=n)break}return s},Fr.getNthChildIdx=function(t,e,r){return Fr.getChildIdx(t,e)[r]},Fr.getIdxbyList=function(t,e,r,n){var i,o,s=Fr;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},Fr.getIdxbyListEx=function(t,e,r,n){var i,o,s=Fr;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u<o.length;u++){var c=t.substr(o[u],2);if(\"number\"==typeof i&&!s.isContextTag(c)&&a==i||\"string\"==typeof i&&s.isContextTag(c,i))return s.getIdxbyListEx(t,o[u],r,n);s.isContextTag(c)||a++}return-1},Fr.getTLVbyList=function(t,e,r,n){var i=Fr,o=i.getIdxbyList(t,e,r,n);return-1==o||o>=t.length?null:i.getTLV(t,o)},Fr.getTLVbyListEx=function(t,e,r,n){var i=Fr,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},Fr.getVbyList=function(t,e,r,n,i){var o,s,a=Fr;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},Fr.getVbyListEx=function(t,e,r,n,i){var o,s,a=Fr;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),\"03\"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},Fr.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if(\"02\"!=n&&\"03\"!=n)return r;var i=Fr.getV(t,e);return\"02\"==n?parseInt(i,16):function o(t){try{var e=t.substr(0,2);if(\"00\"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return\"0\"==i&&(i=\"00000000\"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},Fr.getOID=function(t,e,r){null==r&&(r=null);try{return\"06\"!=t.substr(e,2)?r:function n(t){if(!Xr(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s<i.length/2;s++)o.push(parseInt(i.substr(2*s,2),16));var a=[],u=\"\";for(s=0;s<o.length;s++)128&o[s]?u+=Qr((127&o[s]).toString(2),7):(u+=Qr((127&o[s]).toString(2),7),a.push(new String(parseInt(u,2))),u=\"\");var c=e.join(\".\");return a.length>0&&(c=c+\".\"+a.join(\".\")),c}catch(t){return null}}(Fr.getV(t,e))}catch(t){return r}},Fr.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=Fr.getOID(t,e,r);if(n==r)return r;var i=Sr.asn1.x509.OID.oid2name(n);return\"\"==i?n:i}catch(t){return r}},Fr.getString=function(t,e,r){null==r&&(r=null);try{return Lr(Fr.getV(t,e))}catch(t){return r}},Fr.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join(\"0\")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a<o.length/2;a++)s.push(parseInt(o.substr(2*a,2),16));var u=[],c=\"\";for(a=0;a<s.length;a++)128&s[a]?c+=e((127&s[a]).toString(2),7):(c+=e((127&s[a]).toString(2),7),u.push(new String(parseInt(c,2))),c=\"\");var h=r.join(\".\");return u.length>0&&(h=h+\".\"+u.join(\".\")),h},Fr.dump=function(t,e,r,n){var i=Fr,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof Sr.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+\"..(total \"+e.length/2+\"bytes)..\"+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n=\"\");var h,l=e.ommit_long_octet;if(\"01\"==(h=u.substr(r,2)))return\"00\"==(f=o(u,r))?n+\"BOOLEAN FALSE\\n\":n+\"BOOLEAN TRUE\\n\";if(\"02\"==h)return n+\"INTEGER \"+c(f=o(u,r),l)+\"\\n\";if(\"03\"==h){var f=o(u,r);if(i.isASN1HEX(f.substr(2))){var g=n+\"BITSTRING, encapsulates\\n\";return g+=s(f.substr(2),e,0,n+\" \")}return n+\"BITSTRING \"+c(f,l)+\"\\n\"}if(\"04\"==h){f=o(u,r);if(i.isASN1HEX(f)){g=n+\"OCTETSTRING, encapsulates\\n\";return g+=s(f,e,0,n+\" \")}return n+\"OCTETSTRING \"+c(f,l)+\"\\n\"}if(\"05\"==h)return n+\"NULL\\n\";if(\"06\"==h){var d=o(u,r),p=Sr.asn1.ASN1Util.oidHexToInt(d),v=Sr.asn1.x509.OID.oid2name(p),y=p.replace(/\\./g,\" \");return\"\"!=v?n+\"ObjectIdentifier \"+v+\" (\"+y+\")\\n\":n+\"ObjectIdentifier (\"+y+\")\\n\"}if(\"0a\"==h)return n+\"ENUMERATED \"+parseInt(o(u,r))+\"\\n\";if(\"0c\"==h)return n+\"UTF8String '\"+Dr(o(u,r))+\"'\\n\";if(\"13\"==h)return n+\"PrintableString '\"+Dr(o(u,r))+\"'\\n\";if(\"14\"==h)return n+\"TeletexString '\"+Dr(o(u,r))+\"'\\n\";if(\"16\"==h)return n+\"IA5String '\"+Dr(o(u,r))+\"'\\n\";if(\"17\"==h)return n+\"UTCTime \"+Dr(o(u,r))+\"\\n\";if(\"18\"==h)return n+\"GeneralizedTime \"+Dr(o(u,r))+\"\\n\";if(\"1a\"==h)return n+\"VisualString '\"+Dr(o(u,r))+\"'\\n\";if(\"1e\"==h)return n+\"BMPString '\"+Yr(o(u,r))+\"'\\n\";if(\"30\"==h){if(\"3000\"==u.substr(r,4))return n+\"SEQUENCE {}\\n\";g=n+\"SEQUENCE\\n\";var m=e;if((2==(b=a(u,r)).length||3==b.length)&&\"06\"==u.substr(b[0],2)&&\"04\"==u.substr(b[b.length-1],2)){v=i.oidname(o(u,b[0]));var _=JSON.parse(JSON.stringify(e));_.x509ExtName=v,m=_}for(var S=0;S<b.length;S++)g+=s(u,m,b[S],n+\" \");return g}if(\"31\"==h){g=n+\"SET\\n\";var b=a(u,r);for(S=0;S<b.length;S++)g+=s(u,e,b[S],n+\" \");return g}if(0!=(128&(h=parseInt(h,16)))){var w=31&h;if(0!=(32&h)){for(g=n+\"[\"+w+\"]\\n\",b=a(u,r),S=0;S<b.length;S++)g+=s(u,e,b[S],n+\" \");return g}f=o(u,r);if(Fr.isASN1HEX(f)){var g=n+\"[\"+w+\"]\\n\";return g+=s(f,e,0,n+\" \")}return(\"68747470\"==f.substr(0,8)||\"subjectAltName\"===e.x509ExtName&&2==w)&&(f=Dr(f)),g=n+\"[\"+w+\"] \"+f+\"\\n\"}return n+\"UNKNOWN(\"+h+\") \"+o(u,r)+\"\\n\"},Fr.isContextTag=function(t,e){var r,n;t=t.toLowerCase();try{r=parseInt(t,16)}catch(t){return-1}if(void 0===e)return 128==(192&r);try{return null!=e.match(/^\\[[0-9]+\\]$/)&&(!((n=parseInt(e.substr(1,e.length-1),10))>31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},Fr.isASN1HEX=function(t){var e=Fr;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},Fr.checkStrictDER=function(t,e,r,n,i){var o=Fr;if(void 0===r){if(\"string\"!=typeof t)throw new Error(\"not hex string\");if(t=t.toLowerCase(),!Sr.lang.String.isHex(t))throw new Error(\"not hex string\");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error(\"L of TLV too long: idx=\"+e);var s=o.getVblen(t,e);if(s>n)throw new Error(\"value of L too long than hex: idx=\"+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error(\"V string length and L's value not the same:\"+u+\"/\"+2*s);if(0===e&&t.length!=a.length)throw new Error(\"total length and TLV length unmatch:\"+t.length+\"!=\"+a.length);var c=t.substr(e,2);if(\"02\"===c){var h=o.getVidx(t,e);if(\"00\"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error(\"not least zeros for DER INTEGER\")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d<g.length;d++){f+=o.getTLV(t,g[d]).length,o.checkStrictDER(t,g[d],r,n,i)}if(2*l!=f)throw new Error(\"sum of children's TLV length and L unmatch: \"+2*l+\"!=\"+f)}},Fr.oidname=function(t){var e=Sr.asn1;Sr.lang.String.isHex(t)&&(t=e.ASN1Util.oidHexToInt(t));var r=e.x509.OID.oid2name(t);return\"\"===r&&(r=t),r},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.lang&&Sr.lang||(Sr.lang={}),Sr.lang.String=function(){},\"function\"==typeof t?(e.utf8tob64u=br=function e(r){return Pr(t.from(r,\"utf8\").toString(\"base64\"))},e.b64utoutf8=wr=function e(r){return t.from(Cr(r),\"base64\").toString(\"utf8\")}):(e.utf8tob64u=br=function t(e){return Tr(Kr(Gr(e)))},e.b64utoutf8=wr=function t(e){return decodeURIComponent(qr(Rr(e)))}),Sr.lang.String.isInteger=function(t){return!!t.match(/^[0-9]+$/)||!!t.match(/^-[0-9]+$/)},Sr.lang.String.isHex=function(t){return Xr(t)},Sr.lang.String.isBase64=function(t){return!(!(t=t.replace(/\\s+/g,\"\")).match(/^[0-9A-Za-z+\\/]+={0,3}$/)||t.length%4!=0)},Sr.lang.String.isBase64URL=function(t){return!t.match(/[+/=]/)&&(t=Cr(t),Sr.lang.String.isBase64(t))},Sr.lang.String.isIntegerArray=function(t){return!!(t=t.replace(/\\s+/g,\"\")).match(/^\\[[0-9,]+\\]$/)},Sr.lang.String.isPrintable=function(t){return null!==t.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},Sr.lang.String.isIA5=function(t){return null!==t.match(/^[\\x20-\\x21\\x23-\\x7f]*$/)},Sr.lang.String.isMail=function(t){return null!==t.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\\.[A-Za-z0-9]{1,}$/)};var Qr=function t(e,r,n){return null==n&&(n=\"0\"),e.length>=r?e:new Array(r-e.length+1).join(n)+e};function Zr(t,e){var r=function t(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e)}void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\"},this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:v.algo.MD5,sha1:v.algo.SHA1,sha224:v.algo.SHA224,sha256:v.algo.SHA256,sha384:v.algo.SHA384,sha512:v.algo.SHA512,ripemd160:v.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw\"alg not supported in Util.DIGESTINFOHEAD: \"+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw\"key is too short for SigAlg: keylen=\"+r+\",\"+e;for(var o=\"0001\",s=\"00\"+n,a=\"\",u=i-o.length-s.length,c=0;c<u;c+=2)a+=\"ff\";return o+a+s},this.hashString=function(t,e){return new Sr.crypto.MessageDigest({alg:e}).digestString(t)},this.hashHex=function(t,e){return new Sr.crypto.MessageDigest({alg:e}).digestHex(t)},this.sha1=function(t){return this.hashString(t,\"sha1\")},this.sha256=function(t){return this.hashString(t,\"sha256\")},this.sha256Hex=function(t){return this.hashHex(t,\"sha256\")},this.sha512=function(t){return this.hashString(t,\"sha512\")},this.sha512Hex=function(t){return this.hashHex(t,\"sha512\")},this.isKey=function(t){return t instanceof Me||t instanceof Sr.crypto.DSA||t instanceof Sr.crypto.ECDSA}},Sr.crypto.Util.md5=function(t){return new Sr.crypto.MessageDigest({alg:\"md5\",prov:\"cryptojs\"}).digestString(t)},Sr.crypto.Util.ripemd160=function(t){return new Sr.crypto.MessageDigest({alg:\"ripemd160\",prov:\"cryptojs\"}).digestString(t)},Sr.crypto.Util.SECURERANDOMGEN=new Be,Sr.crypto.Util.getRandomHexOfNbytes=function(t){var e=new Array(t);return Sr.crypto.Util.SECURERANDOMGEN.nextBytes(e),Ar(e)},Sr.crypto.Util.getRandomBigIntegerOfNbytes=function(t){return new w(Sr.crypto.Util.getRandomHexOfNbytes(t),16)},Sr.crypto.Util.getRandomHexOfNbits=function(t){var e=t%8,r=new Array((t-e)/8+1);return Sr.crypto.Util.SECURERANDOMGEN.nextBytes(r),r[0]=(255<<e&255^255)&r[0],Ar(r)},Sr.crypto.Util.getRandomBigIntegerOfNbits=function(t){return new w(Sr.crypto.Util.getRandomHexOfNbits(t),16)},Sr.crypto.Util.getRandomBigIntegerZeroToMax=function(t){for(var e=t.bitLength();;){var r=Sr.crypto.Util.getRandomBigIntegerOfNbits(e);if(-1!=t.compareTo(r))return r}},Sr.crypto.Util.getRandomBigIntegerMinToMax=function(t,e){var r=t.compareTo(e);if(1==r)throw\"biMin is greater than biMax\";if(0==r)return t;var n=e.subtract(t);return Sr.crypto.Util.getRandomBigIntegerZeroToMax(n).add(t)},Sr.crypto.MessageDigest=function(t){this.setAlgAndProvider=function(t,e){if(null!==(t=Sr.crypto.MessageDigest.getCanonicalAlgName(t))&&void 0===e&&(e=Sr.crypto.Util.DEFAULTPROVIDER[t]),-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(t)&&\"cryptojs\"==e){try{this.md=Sr.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[t].create()}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+t+\"/\"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=v.enc.Hex.parse(t);this.md.update(e)},this.digest=function(){return this.md.finalize().toString(v.enc.Hex)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}if(-1!=\":sha256:\".indexOf(t)&&\"sjcl\"==e){try{this.md=new sjcl.hash.sha256}catch(e){throw\"setAlgAndProvider hash alg set fail alg=\"+t+\"/\"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=sjcl.codec.hex.toBits(t);this.md.update(e)},this.digest=function(){var t=this.md.finalize();return sjcl.codec.hex.fromBits(t)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}},this.updateString=function(t){throw\"updateString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digest=function(){throw\"digest() not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digestString=function(t){throw\"digestString(str) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},this.digestHex=function(t){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algName+\"/\"+this.provName},void 0!==t&&void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov&&(this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},Sr.crypto.MessageDigest.getCanonicalAlgName=function(t){return\"string\"==typeof t&&(t=(t=t.toLowerCase()).replace(/-/,\"\")),t},Sr.crypto.MessageDigest.getHashLength=function(t){var e=Sr.crypto.MessageDigest,r=e.getCanonicalAlgName(t);if(void 0===e.HASHLENGTH[r])throw\"not supported algorithm: \"+t;return e.HASHLENGTH[r]},Sr.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},Sr.crypto.Mac=function(t){this.setAlgAndProvider=function(t,e){if(null==(t=t.toLowerCase())&&(t=\"hmacsha1\"),\"hmac\"!=(t=t.toLowerCase()).substr(0,4))throw\"setAlgAndProvider unsupported HMAC alg: \"+t;void 0===e&&(e=Sr.crypto.Util.DEFAULTPROVIDER[t]),this.algProv=t+\"/\"+e;var r=t.substr(4);if(-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(r)&&\"cryptojs\"==e){try{var n=Sr.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];this.mac=v.algo.HMAC.create(n,this.pass)}catch(t){throw\"setAlgAndProvider hash alg set fail hashAlg=\"+r+\"/\"+t}this.updateString=function(t){this.mac.update(t)},this.updateHex=function(t){var e=v.enc.Hex.parse(t);this.mac.update(e)},this.doFinal=function(){return this.mac.finalize().toString(v.enc.Hex)},this.doFinalString=function(t){return this.updateString(t),this.doFinal()},this.doFinalHex=function(t){return this.updateHex(t),this.doFinal()}}},this.updateString=function(t){throw\"updateString(str) not supported for this alg/prov: \"+this.algProv},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg/prov: \"+this.algProv},this.doFinal=function(){throw\"digest() not supported for this alg/prov: \"+this.algProv},this.doFinalString=function(t){throw\"digestString(str) not supported for this alg/prov: \"+this.algProv},this.doFinalHex=function(t){throw\"digestHex(hex) not supported for this alg/prov: \"+this.algProv},this.setPassword=function(t){if(\"string\"==typeof t){var e=t;return t.length%2!=1&&t.match(/^[0-9A-Fa-f]+$/)||(e=Nr(t)),void(this.pass=v.enc.Hex.parse(e))}if(\"object\"!=(void 0===t?\"undefined\":g(t)))throw\"KJUR.crypto.Mac unsupported password type: \"+t;e=null;if(void 0!==t.hex){if(t.hex.length%2!=0||!t.hex.match(/^[0-9A-Fa-f]+$/))throw\"Mac: wrong hex password: \"+t.hex;e=t.hex}if(void 0!==t.utf8&&(e=Ir(t.utf8)),void 0!==t.rstr&&(e=Nr(t.rstr)),void 0!==t.b64&&(e=S(t.b64)),void 0!==t.b64u&&(e=Rr(t.b64u)),null==e)throw\"KJUR.crypto.Mac unsupported password type: \"+t;this.pass=v.enc.Hex.parse(e)},void 0!==t&&(void 0!==t.pass&&this.setPassword(t.pass),void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov&&(this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},Sr.crypto.Signature=function(t){var e=null;if(this._setAlgNames=function(){var t=this.algName.match(/^(.+)with(.+)$/);t&&(this.mdAlgName=t[1].toLowerCase(),this.pubkeyAlgName=t[2].toLowerCase(),\"rsaandmgf1\"==this.pubkeyAlgName&&\"sha\"==this.mdAlgName&&(this.mdAlgName=\"sha1\"))},this._zeroPaddingOfSignature=function(t,e){for(var r=\"\",n=e/4-t.length,i=0;i<n;i++)r+=\"0\";return r+t},this.setAlgAndProvider=function(t,e){if(this._setAlgNames(),\"cryptojs/jsrsa\"!=e)throw new Error(\"provider not supported: \"+e);if(-1!=\":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(this.mdAlgName)){try{this.md=new Sr.crypto.MessageDigest({alg:this.mdAlgName})}catch(t){throw new Error(\"setAlgAndProvider hash alg set fail alg=\"+this.mdAlgName+\"/\"+t)}this.init=function(t,e){var r=null;try{r=void 0===e?tn.getKey(t):tn.getKey(t,e)}catch(t){throw\"init failed:\"+t}if(!0===r.isPrivate)this.prvKey=r,this.state=\"SIGN\";else{if(!0!==r.isPublic)throw\"init failed.:\"+r;this.pubKey=r,this.state=\"VERIFY\"}},this.updateString=function(t){this.md.updateString(t)},this.updateHex=function(t){this.md.updateHex(t)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==Sr.crypto.ECDSA&&(this.prvKey=new Sr.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof Me&&\"rsaandmgf1\"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof Me&&\"rsa\"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof Sr.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof Sr.crypto.DSA))throw\"Signature: unsupported private key alg: \"+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(t){return this.updateString(t),this.sign()},this.signHex=function(t){return this.updateHex(t),this.sign()},this.verify=function(t){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==Sr.crypto.ECDSA&&(this.pubKey=new Sr.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof Me&&\"rsaandmgf1\"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,t,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof Me&&\"rsa\"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);if(void 0!==Sr.crypto.ECDSA&&this.pubKey instanceof Sr.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);if(void 0!==Sr.crypto.DSA&&this.pubKey instanceof Sr.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);throw\"Signature: unsupported public key alg: \"+this.pubkeyAlgName}}},this.init=function(t,e){throw\"init(key, pass) not supported for this alg:prov=\"+this.algProvName},this.updateString=function(t){throw\"updateString(str) not supported for this alg:prov=\"+this.algProvName},this.updateHex=function(t){throw\"updateHex(hex) not supported for this alg:prov=\"+this.algProvName},this.sign=function(){throw\"sign() not supported for this alg:prov=\"+this.algProvName},this.signString=function(t){throw\"digestString(str) not supported for this alg:prov=\"+this.algProvName},this.signHex=function(t){throw\"digestHex(hex) not supported for this alg:prov=\"+this.algProvName},this.verify=function(t){throw\"verify(hSigVal) not supported for this alg:prov=\"+this.algProvName},this.initParams=t,void 0!==t&&(void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov?this.provName=Sr.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=t.prov,this.algProvName=this.algName+\":\"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==t.psssaltlen&&(this.pssSaltLen=t.psssaltlen),void 0!==t.prvkeypem)){if(void 0!==t.prvkeypas)throw\"both prvkeypem and prvkeypas parameters not supported\";try{e=tn.getKey(t.prvkeypem);this.init(e)}catch(t){throw\"fatal error to load pem private key: \"+t}}},Sr.crypto.Cipher=function(t){},Sr.crypto.Cipher.encrypt=function(t,e,r){if(e instanceof Me&&e.isPublic){var n=Sr.crypto.Cipher.getAlgByKeyAndName(e,r);if(\"RSA\"===n)return e.encrypt(t);if(\"RSAOAEP\"===n)return e.encryptOAEP(t,\"sha1\");var i=n.match(/^RSAOAEP(\\d+)$/);if(null!==i)return e.encryptOAEP(t,\"sha\"+i[1]);throw\"Cipher.encrypt: unsupported algorithm for RSAKey: \"+r}throw\"Cipher.encrypt: unsupported key or algorithm\"},Sr.crypto.Cipher.decrypt=function(t,e,r){if(e instanceof Me&&e.isPrivate){var n=Sr.crypto.Cipher.getAlgByKeyAndName(e,r);if(\"RSA\"===n)return e.decrypt(t);if(\"RSAOAEP\"===n)return e.decryptOAEP(t,\"sha1\");var i=n.match(/^RSAOAEP(\\d+)$/);if(null!==i)return e.decryptOAEP(t,\"sha\"+i[1]);throw\"Cipher.decrypt: unsupported algorithm for RSAKey: \"+r}throw\"Cipher.decrypt: unsupported key or algorithm\"},Sr.crypto.Cipher.getAlgByKeyAndName=function(t,e){if(t instanceof Me){if(-1!=\":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:\".indexOf(e))return e;if(null==e)return\"RSA\";throw\"getAlgByKeyAndName: not supported algorithm name for RSAKey: \"+e}throw\"getAlgByKeyAndName: not supported algorithm name: \"+e},Sr.crypto.OID=new function(){this.oidhex2name={\"2a864886f70d010101\":\"rsaEncryption\",\"2a8648ce3d0201\":\"ecPublicKey\",\"2a8648ce380401\":\"dsa\",\"2a8648ce3d030107\":\"secp256r1\",\"2b8104001f\":\"secp192k1\",\"2b81040021\":\"secp224r1\",\"2b8104000a\":\"secp256k1\",\"2b81040023\":\"secp521r1\",\"2b81040022\":\"secp384r1\",\"2a8648ce380403\":\"SHA1withDSA\",\"608648016503040301\":\"SHA224withDSA\",\"608648016503040302\":\"SHA256withDSA\"}},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.ECDSA=function(t){var e=Error,r=w,n=Ve,i=Sr.crypto.ECDSA,o=Sr.crypto.ECParameterDB,s=i.getName,a=Fr,u=a.getVbyListEx,c=a.isASN1HEX,h=new Be;this.type=\"EC\",this.isPrivate=!1,this.isPublic=!1,this.getBigRandom=function(t){return new r(t.bitLength(),h).mod(t.subtract(r.ONE)).add(r.ONE)},this.setNamedCurve=function(t){this.ecparams=o.getByName(t),this.prvKeyHex=null,this.pubKeyHex=null,this.curveName=t},this.setPrivateKeyHex=function(t){this.isPrivate=!0,this.prvKeyHex=t},this.setPublicKeyHex=function(t){this.isPublic=!0,this.pubKeyHex=t},this.getPublicKeyXYHex=function(){var t=this.pubKeyHex;if(\"04\"!==t.substr(0,2))throw\"this method supports uncompressed format(04) only\";var e=this.ecparams.keylen/4;if(t.length!==2+2*e)throw\"malformed public key hex length\";var r={};return r.x=t.substr(2,e),r.y=t.substr(2+e),r},this.getShortNISTPCurveName=function(){var t=this.curveName;return\"secp256r1\"===t||\"NIST P-256\"===t||\"P-256\"===t||\"prime256v1\"===t?\"P-256\":\"secp384r1\"===t||\"NIST P-384\"===t||\"P-384\"===t?\"P-384\":null},this.generateKeyPairHex=function(){var t=this.ecparams.n,e=this.getBigRandom(t),r=this.ecparams.G.multiply(e),n=r.getX().toBigInteger(),i=r.getY().toBigInteger(),o=this.ecparams.keylen/4,s=(\"0000000000\"+e.toString(16)).slice(-o),a=\"04\"+(\"0000000000\"+n.toString(16)).slice(-o)+(\"0000000000\"+i.toString(16)).slice(-o);return this.setPrivateKeyHex(s),this.setPublicKeyHex(a),{ecprvhex:s,ecpubhex:a}},this.signWithMessageHash=function(t){return this.signHex(t,this.prvKeyHex)},this.signHex=function(t,e){var n=new r(e,16),o=this.ecparams.n,s=new r(t.substring(0,this.ecparams.keylen/4),16);do{var a=this.getBigRandom(o),u=this.ecparams.G.multiply(a).getX().toBigInteger().mod(o)}while(u.compareTo(r.ZERO)<=0);var c=a.modInverse(o).multiply(s.add(n.multiply(u))).mod(o);return i.biRSSigToASN1Sig(u,c)},this.sign=function(t,e){var n=e,i=this.ecparams.n,o=r.fromByteArrayUnsigned(t);do{var s=this.getBigRandom(i),a=this.ecparams.G.multiply(s).getX().toBigInteger().mod(i)}while(a.compareTo(w.ZERO)<=0);var u=s.modInverse(i).multiply(o.add(n.multiply(a))).mod(i);return this.serializeSig(a,u)},this.verifyWithMessageHash=function(t,e){return this.verifyHex(t,e,this.pubKeyHex)},this.verifyHex=function(t,e,o){try{var s,a,u=i.parseSigHex(e);s=u.r,a=u.s;var c=n.decodeFromHex(this.ecparams.curve,o),h=new r(t.substring(0,this.ecparams.keylen/4),16);return this.verifyRaw(h,s,a,c)}catch(t){return!1}},this.verify=function(t,e,i){var o,s,a;if(Bitcoin.Util.isArray(e)){var u=this.parseSig(e);o=u.r,s=u.s}else{if(\"object\"!==(void 0===e?\"undefined\":g(e))||!e.r||!e.s)throw\"Invalid value for signature\";o=e.r,s=e.s}if(i instanceof Ve)a=i;else{if(!Bitcoin.Util.isArray(i))throw\"Invalid format for pubkey value, must be byte array or ECPointFp\";a=n.decodeFrom(this.ecparams.curve,i)}var c=r.fromByteArrayUnsigned(t);return this.verifyRaw(c,o,s,a)},this.verifyRaw=function(t,e,n,i){var o=this.ecparams.n,s=this.ecparams.G;if(e.compareTo(r.ONE)<0||e.compareTo(o)>=0)return!1;if(n.compareTo(r.ONE)<0||n.compareTo(o)>=0)return!1;var a=n.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error(\"Signature not a valid DERSequence\");if(2!=t[e=2])throw new Error(\"First element in signature must be a DERInteger\");var n=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error(\"Second element in signature must be a DERInteger\");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:r.fromByteArrayUnsigned(n),s:r.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw\"Signature has the wrong length\";var e=t[0]-27;if(e<0||e>7)throw\"Invalid signature type\";var n=this.ecparams.n;return{r:r.fromByteArrayUnsigned(t.slice(1,33)).mod(n),s:r.fromByteArrayUnsigned(t.slice(33,65)).mod(n),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===c(t))throw new Error(\"not ASN.1 hex string\");var e,r,n;try{e=u(t,0,[\"[0]\",0],\"06\"),r=u(t,0,[1],\"04\");try{n=u(t,0,[\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}if(this.curveName=s(e),void 0===this.curveName)throw\"unsupported curve name\";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var r,n,i;try{u(t,0,[1,0],\"06\"),r=u(t,0,[1,1],\"06\"),n=u(t,0,[2,0,1],\"04\");try{i=u(t,0,[2,0,\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new e(\"malformed PKCS#8 plain ECC private key\")}if(this.curveName=s(r),void 0===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var r,n;try{u(t,0,[0,0],\"06\"),r=u(t,0,[0,1],\"06\"),n=u(t,0,[1],\"03\")}catch(t){throw new e(\"malformed PKCS#8 ECC public key\")}if(this.curveName=s(r),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===c(t))throw new e(\"not ASN.1 hex string\");var n,i;try{n=u(t,0,[0,5,0,1],\"06\"),i=u(t,0,[0,5,1],\"03\")}catch(t){throw new e(\"malformed X.509 certificate ECC public key\")}if(this.curveName=s(n),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName=\"secp256r1\"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},Sr.crypto.ECDSA.parseSigHex=function(t){var e=Sr.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new w(e.r,16),s:new w(e.s,16)}},Sr.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=Fr,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),\"30\"!=t.substr(0,2))throw new Error(\"signature is not a ASN.1 sequence\");var i=r(t,0);if(2!=i.length)throw new Error(\"signature shall have two elements\");var o=i[0],s=i[1];if(\"02\"!=t.substr(o,2))throw new Error(\"1st item not ASN.1 integer\");if(\"02\"!=t.substr(s,2))throw new Error(\"2nd item not ASN.1 integer\");return{r:n(t,o),s:n(t,s)}},Sr.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=Sr.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if(\"00\"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),\"00\"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r=\"00\"+r),n.length%32==30&&(n=\"00\"+n),r.length%32!=0)throw\"unknown ECDSA sig r length error\";if(n.length%32!=0)throw\"unknown ECDSA sig s length error\";return r+n},Sr.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw\"unknown ECDSA concatinated r-s sig length error\";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return Sr.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},Sr.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new w(t,16),n=new w(e,16);return Sr.crypto.ECDSA.biRSSigToASN1Sig(r,n)},Sr.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=Sr.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},Sr.crypto.ECDSA.getName=function(t){return\"2b8104001f\"===t?\"secp192k1\":\"2a8648ce3d030107\"===t?\"secp256r1\":\"2b8104000a\"===t?\"secp256k1\":\"2b81040021\"===t?\"secp224r1\":\"2b81040022\"===t?\"secp384r1\":-1!==\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t)?\"secp256r1\":-1!==\"|secp256k1|\".indexOf(t)?\"secp256k1\":-1!==\"|secp224r1|NIST P-224|P-224|\".indexOf(t)?\"secp224r1\":-1!==\"|secp384r1|NIST P-384|P-384|\".indexOf(t)?\"secp384r1\":null},void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.crypto&&Sr.crypto||(Sr.crypto={}),Sr.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new w(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw\"unregistered EC curve name: \"+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new Ke(p,v,y),b=S.decodePointHex(\"04\"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var w=0;w<f.length;w++)e[f[w]]=n}},Sr.crypto.ECParameterDB.regist(\"secp128r1\",128,\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\",\"E87579C11079F43DD824993C2CEE5ED3\",\"FFFFFFFE0000000075A30D1B9038A115\",\"1\",\"161FF7528B899B2D0C28607CA52C5B86\",\"CF5AC8395BAFEB13C02DA292DDED7A83\",[],\"\",\"secp128r1 : SECG curve over a 128 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp160k1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\",\"0\",\"7\",\"0100000000000000000001B8FA16DFAB9ACA16B6B3\",\"1\",\"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\",\"938CF935318FDCED6BC28286531733C3F03C4FEE\",[],\"\",\"secp160k1 : SECG curve over a 160 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp160r1\",160,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\",\"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\",\"0100000000000000000001F4C8F927AED3CA752257\",\"1\",\"4A96B5688EF573284664698968C38BB913CBFC82\",\"23A628553168947D59DCC912042351377AC5FB32\",[],\"\",\"secp160r1 : SECG curve over a 160 bit prime field\"),Sr.crypto.ECParameterDB.regist(\"secp192k1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\",\"0\",\"3\",\"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\",\"1\",\"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\",\"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\",[]),Sr.crypto.ECParameterDB.regist(\"secp192r1\",192,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\",\"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\",\"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\",\"1\",\"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\",\"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\",[]),Sr.crypto.ECParameterDB.regist(\"secp224r1\",224,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\",\"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\",\"1\",\"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\",\"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\",[]),Sr.crypto.ECParameterDB.regist(\"secp256k1\",256,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\",\"0\",\"7\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\",\"1\",\"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\",\"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\",[]),Sr.crypto.ECParameterDB.regist(\"secp256r1\",256,\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\",\"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\",\"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\",\"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\",\"1\",\"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\",\"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\",[\"NIST P-256\",\"P-256\",\"prime256v1\"]),Sr.crypto.ECParameterDB.regist(\"secp384r1\",384,\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC\",\"B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF\",\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973\",\"1\",\"AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7\",\"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\",[\"NIST P-384\",\"P-384\"]),Sr.crypto.ECParameterDB.regist(\"secp521r1\",521,\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\",\"051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00\",\"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409\",\"1\",\"C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66\",\"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\",[\"NIST P-521\",\"P-521\"]);var tn=function(){var t=function t(r,n,i){return e(v.AES,r,n,i)},e=function t(e,r,n,i){var o=v.enc.Hex.parse(r),s=v.enc.Hex.parse(n),a=v.enc.Hex.parse(i),u={};u.key=s,u.iv=a,u.ciphertext=o;var c=e.decrypt(u,s,{iv:a});return v.enc.Hex.stringify(c)},r=function t(e,r,i){return n(v.AES,e,r,i)},n=function t(e,r,n,i){var o=v.enc.Hex.parse(r),s=v.enc.Hex.parse(n),a=v.enc.Hex.parse(i),u=e.encrypt(o,s,{iv:a}),c=v.enc.Hex.parse(u.toString());return v.enc.Base64.stringify(c)},i={\"AES-256-CBC\":{proc:t,eproc:r,keylen:32,ivlen:16},\"AES-192-CBC\":{proc:t,eproc:r,keylen:24,ivlen:16},\"AES-128-CBC\":{proc:t,eproc:r,keylen:16,ivlen:16},\"DES-EDE3-CBC\":{proc:function t(r,n,i){return e(v.TripleDES,r,n,i)},eproc:function t(e,r,i){return n(v.TripleDES,e,r,i)},keylen:24,ivlen:8},\"DES-CBC\":{proc:function t(r,n,i){return e(v.DES,r,n,i)},eproc:function t(e,r,i){return n(v.DES,e,r,i)},keylen:8,ivlen:8}},o=function t(e){var r={},n=e.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\",\"m\"));n&&(r.cipher=n[1],r.ivsalt=n[2]);var i=e.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\"));i&&(r.type=i[1]);var o=-1,s=0;-1!=e.indexOf(\"\\r\\n\\r\\n\")&&(o=e.indexOf(\"\\r\\n\\r\\n\"),s=2),-1!=e.indexOf(\"\\n\\n\")&&(o=e.indexOf(\"\\n\\n\"),s=1);var a=e.indexOf(\"-----END\");if(-1!=o&&-1!=a){var u=e.substring(o+2*s,a-s);u=u.replace(/\\s+/g,\"\"),r.data=u}return r},s=function t(e,r,n){for(var o=n.substring(0,16),s=v.enc.Hex.parse(o),a=v.enc.Utf8.parse(r),u=i[e].keylen+i[e].ivlen,c=\"\",h=null;;){var l=v.algo.MD5.create();if(null!=h&&l.update(h),l.update(a),l.update(s),h=l.finalize(),(c+=v.enc.Hex.stringify(h)).length>=2*u)break}var f={};return f.keyhex=c.substr(0,2*i[e].keylen),f.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),f},a=function t(e,r,n,o){var s=v.enc.Base64.parse(e),a=v.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:\"1.0.0\",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,h=s(i,r,u).keyhex;return a(c,i,h,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u=\"\";if(void 0!==o&&null!=o||(o=\"AES-256-CBC\"),void 0===i[o])throw new Error(\"KEYUTIL unsupported algorithm: \"+o);void 0!==a&&null!=a||(a=function t(e){var r=v.lib.WordArray.random(e);return v.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u=\"-----BEGIN \"+e+\" PRIVATE KEY-----\\r\\n\";return u+=\"Proc-Type: 4,ENCRYPTED\\r\\n\",u+=\"DEK-Info: \"+o+\",\"+a+\"\\r\\n\",u+=\"\\r\\n\",u+=c.replace(/(.{64})/g,\"$1\\r\\n\"),u+=\"\\r\\n-----END \"+e+\" PRIVATE KEY-----\\r\\n\"},parseHexOfEncryptedPKCS8:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw new Error(\"malformed format: SEQUENCE(0).items != 2: \"+s.length);o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw new Error(\"malformed format: SEQUENCE(0.0).items != 2: \"+a.length);if(\"2a864886f70d01050d\"!=i(e,a[0]))throw new Error(\"this only supports pkcs5PBES2\");var u=n(e,a[1]);if(2!=a.length)throw new Error(\"malformed format: SEQUENCE(0.0.1).items != 2: \"+u.length);var c=n(e,u[1]);if(2!=c.length)throw new Error(\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+c.length);if(\"2a864886f70d0307\"!=i(e,c[0]))throw\"this only supports TripleDES\";o.encryptionSchemeAlg=\"TripleDES\",o.encryptionSchemeIV=i(e,c[1]);var h=n(e,u[0]);if(2!=h.length)throw new Error(\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+h.length);if(\"2a864886f70d01050c\"!=i(e,h[0]))throw new Error(\"this only supports pkcs5PBKDF2\");var l=n(e,h[1]);if(l.length<2)throw new Error(\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+l.length);o.pbkdf2Salt=i(e,l[0]);var f=i(e,l[1]);try{o.pbkdf2Iter=parseInt(f,16)}catch(t){throw new Error(\"malformed format pbkdf2Iter: \"+f)}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=v.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=v.PBKDF2(r,n,{keySize:6,iterations:i});return v.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=Mr(e,\"ENCRYPTED PRIVATE KEY\"),i=this.parseHexOfEncryptedPKCS8(n),o=tn.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=v.enc.Hex.parse(i.ciphertext);var a=v.enc.Hex.parse(o),u=v.enc.Hex.parse(i.encryptionSchemeIV),c=v.TripleDES.decrypt(s,a,{iv:u});return v.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={algparam:null};if(\"30\"!=e.substr(0,2))throw new Error(\"malformed plain PKCS8 private key(code:001)\");var s=n(e,0);if(s.length<3)throw new Error(\"malformed plain PKCS8 private key(code:002)\");if(\"30\"!=e.substr(s[1],2))throw new Error(\"malformed PKCS8 private key(code:003)\");var a=n(e,s[1]);if(2!=a.length)throw new Error(\"malformed PKCS8 private key(code:004)\");if(\"06\"!=e.substr(a[0],2))throw new Error(\"malformed PKCS8 private key(code:005)\");if(o.algoid=i(e,a[0]),\"06\"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),\"04\"!=e.substr(s[2],2))throw new Error(\"malformed PKCS8 private key(code:006)\");return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=Mr(e,\"PRIVATE KEY\");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if(\"2a864886f70d010101\"==n.algoid)r=new Me;else if(\"2a8648ce380401\"==n.algoid)r=new Sr.crypto.DSA;else{if(\"2a8648ce3d0201\"!=n.algoid)throw new Error(\"unsupported private key algorithm\");r=new Sr.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=Fr.getVbyList(e,0,[0,0],\"06\");if(\"2a864886f70d010101\"===n)r=new Me;else if(\"2a8648ce380401\"===n)r=new Sr.crypto.DSA;else{if(\"2a8648ce3d0201\"!==n)throw new Error(\"unsupported PKCS#8 public key hex\");r=new Sr.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={};if(\"30\"!=e.substr(0,2))throw new Error(\"malformed RSA key(code:001)\");var s=n(e,0);if(2!=s.length)throw new Error(\"malformed RSA key(code:002)\");if(\"02\"!=e.substr(s[0],2))throw new Error(\"malformed RSA key(code:003)\");if(o.n=i(e,s[0]),\"02\"!=e.substr(s[1],2))throw new Error(\"malformed RSA key(code:004)\");return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=Fr,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw new Error(\"outer DERSequence shall have 2 elements: \"+s.length);var a=s[0];if(\"30\"!=e.substr(a,2))throw new Error(\"malformed PKCS8 public key(code:001)\");var u=n(e,a);if(2!=u.length)throw new Error(\"malformed PKCS8 public key(code:002)\");if(\"06\"!=e.substr(u[0],2))throw new Error(\"malformed PKCS8 public key(code:003)\");if(o.algoid=i(e,u[0]),\"06\"==e.substr(u[1],2)?o.algparam=i(e,u[1]):\"30\"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],\"02\"),o.algparam.q=r.getVbyList(e,u[1],[1],\"02\"),o.algparam.g=r.getVbyList(e,u[1],[2],\"02\")),\"03\"!=e.substr(s[1],2))throw new Error(\"malformed PKCS8 public key(code:004)\");return o.key=i(e,s[1]).substr(2),o}}}();tn.getKey=function(t,e,r){var n=(v=Fr).getChildIdx,i=(v.getV,v.getVbyList),o=Sr.crypto,s=o.ECDSA,a=o.DSA,u=Me,c=Mr,h=tn;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Rr(t.n),Rr(t.e)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Rr(t.n),Rr(t.e),Rr(t.d),Rr(t.p),Rr(t.q),Rr(t.dp),Rr(t.dq),Rr(t.qi)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Rr(t.n),Rr(t.e),Rr(t.d)),P;if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Rr(t.x)).slice(-l)+(\"0000000000\"+Rr(t.y)).slice(-l);return k.setPublicKeyHex(f),k}if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Rr(t.x)).slice(-l)+(\"0000000000\"+Rr(t.y)).slice(-l);var g=(\"0000000000\"+Rr(t.d)).slice(-l);return k.setPublicKeyHex(f),k.setPrivateKeyHex(g),k}if(\"pkcs5prv\"===r){var d,p=t,v=Fr;if(9===(d=n(p,0)).length)(P=new u).readPKCS5PrvKeyHex(p);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(p);else{if(!(d.length>2&&\"04\"===p.substr(d[1],2)))throw new Error(\"unsupported PKCS#1/5 hexadecimal key\");(P=new s).readPKCS5PrvKeyHex(p)}return P}if(\"pkcs8prv\"===r)return P=h.getKeyFromPlainPrivatePKCS8Hex(t);if(\"pkcs8pub\"===r)return h._getKeyFromPublicPKCS8Hex(t);if(\"x509pub\"===r)return on.getPublicKeyFromCertHex(t);if(-1!=t.indexOf(\"-END CERTIFICATE-\",0)||-1!=t.indexOf(\"-END X509 CERTIFICATE-\",0)||-1!=t.indexOf(\"-END TRUSTED CERTIFICATE-\",0))return on.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf(\"-END PUBLIC KEY-\")){var y=Mr(t,\"PUBLIC KEY\");return h._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var m=c(t,\"RSA PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var _=i(R=c(t,\"DSA PRIVATE KEY\"),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),F=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new w(_,16),new w(S,16),new w(b,16),new w(F,16),new w(E,16)),P}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){m=c(t,\"EC PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END PRIVATE KEY-\"))return h.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var x=h.getDecryptedKeyHex(t,e),A=new Me;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var k,P=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"04\"),C=i(R,0,[2,0],\"06\"),T=i(R,0,[3,0],\"03\").substr(2);if(void 0===Sr.crypto.OID.oidhex2name[C])throw new Error(\"undefined OID(hex) in KJUR.crypto.OID: \"+C);return(k=new s({curve:Sr.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var R;_=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),F=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new w(_,16),new w(S,16),new w(b,16),new w(F,16),new w(E,16)),P}if(-1!=t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\"))return h.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error(\"not supported argument\")},tn.generateKeypair=function(t,e){if(\"RSA\"==t){var r=e;(s=new Me).generate(r,\"10001\"),s.isPrivate=!0,s.isPublic=!0;var n=new Me,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if(\"EC\"==t){var s,a,u=e,c=new Sr.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new Sr.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new Sr.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw new Error(\"unknown algorithm: \"+t)},tn.getPEM=function(t,e,r,n,i,o){var s=Sr,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=Me;function y(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a0\",!0,{oid:{name:t.curveName}}]},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||\"PKCS8PUB\"==e))return jr(F=new l(t).getEncodedHex(),\"PUBLIC KEY\");if(\"PKCS1PRV\"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return jr(F=y(t).getEncodedHex(),\"RSA PRIVATE KEY\");if(\"PKCS1PRV\"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w=\"\";return w+=jr(S,\"EC PARAMETERS\"),w+=jr(b,\"EC PRIVATE KEY\")}if(\"PKCS1PRV\"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return jr(F=_(t).getEncodedHex(),\"DSA PRIVATE KEY\");if(\"PKCS5PRV\"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=y(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new h({seq:[{seq:[{oid:{name:\"pkcs5PBES2\"}},{seq:[{seq:[{oid:{name:\"pkcs5PBKDF2\"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:\"des-EDE3-CBC\"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=v.lib.WordArray.random(8),i=v.lib.WordArray.random(8),o=v.PBKDF2(r,n,{keySize:6,iterations:100}),s=v.enc.Hex.parse(e),a=v.TripleDES.encrypt(s,o,{iv:i})+\"\",u={};return u.ciphertext=a,u.pbkdf2Salt=v.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg=\"DES-EDE3-CBC\",u.encryptionSchemeIV=v.enc.Hex.stringify(i),u};if(\"PKCS8PRV\"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=y(t).getEncodedHex();F=h({seq:[{int:0},{seq:[{oid:{name:\"rsaEncryption\"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"dsa\"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?jr(F,\"PRIVATE KEY\"):jr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}throw new Error(\"unsupported object nor format\")},tn.getKeyFromCSRPEM=function(t){var e=Mr(t,\"CERTIFICATE REQUEST\");return tn.getKeyFromCSRHex(e)},tn.getKeyFromCSRHex=function(t){var e=tn.parseCSRHex(t);return tn.getKey(e.p8pubkeyhex,null,\"pkcs8pub\")},tn.parseCSRHex=function(t){var e=Fr,r=e.getChildIdx,n=e.getTLV,i={},o=t;if(\"30\"!=o.substr(0,2))throw new Error(\"malformed CSR(code:001)\");var s=r(o,0);if(s.length<1)throw new Error(\"malformed CSR(code:002)\");if(\"30\"!=o.substr(s[0],2))throw new Error(\"malformed CSR(code:003)\");var a=r(o,s[0]);if(a.length<3)throw new Error(\"malformed CSR(code:004)\");return i.p8pubkeyhex=n(o,a[2]),i},tn.getKeyID=function(t){var e=tn,r=Fr;\"string\"==typeof t&&-1!=t.indexOf(\"BEGIN \")&&(t=e.getKey(t));var n=Mr(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return Sr.crypto.Util.hashHex(o,\"sha1\")},tn.getJWKFromKey=function(t){var e={};if(t instanceof Me&&t.isPrivate)return e.kty=\"RSA\",e.n=Tr(t.n.toString(16)),e.e=Tr(t.e.toString(16)),e.d=Tr(t.d.toString(16)),e.p=Tr(t.p.toString(16)),e.q=Tr(t.q.toString(16)),e.dp=Tr(t.dmp1.toString(16)),e.dq=Tr(t.dmq1.toString(16)),e.qi=Tr(t.coeff.toString(16)),e;if(t instanceof Me&&t.isPublic)return e.kty=\"RSA\",e.n=Tr(t.n.toString(16)),e.e=Tr(t.e.toString(16)),e;if(t instanceof Sr.crypto.ECDSA&&t.isPrivate){if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw new Error(\"unsupported curve name for JWT: \"+n);var r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Tr(r.x),e.y=Tr(r.y),e.d=Tr(t.prvKeyHex),e}if(t instanceof Sr.crypto.ECDSA&&t.isPublic){var n;if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw new Error(\"unsupported curve name for JWT: \"+n);r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Tr(r.x),e.y=Tr(r.y),e}throw new Error(\"not supported key object\")},Me.getPosArrayOfChildrenFromHex=function(t){return Fr.getChildIdx(t,0)},Me.getHexValueArrayOfChildrenFromHex=function(t){var e,r=Fr.getV,n=r(t,(e=Me.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},Me.prototype.readPrivateKeyFromPEMString=function(t){var e=Mr(t),r=Me.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},Me.prototype.readPKCS5PrvKeyHex=function(t){var e=Me.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},Me.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=Fr,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");try{e=h(t,0,[2,0,1],\"02\"),r=h(t,0,[2,0,2],\"02\"),n=h(t,0,[2,0,3],\"02\"),i=h(t,0,[2,0,4],\"02\"),o=h(t,0,[2,0,5],\"02\"),s=h(t,0,[2,0,6],\"02\"),a=h(t,0,[2,0,7],\"02\"),u=h(t,0,[2,0,8],\"02\")}catch(t){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(e,r,n,i,o,s,a,u)},Me.prototype.readPKCS5PubKeyHex=function(t){var e=Fr,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error(\"keyHex is not ASN.1 hex string\");var n=e.getChildIdx(t,0);if(2!==n.length||\"02\"!==t.substr(n[0],2)||\"02\"!==t.substr(n[1],2))throw new Error(\"wrong hex for PKCS#5 public key\");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},Me.prototype.readPKCS8PubKeyHex=function(t){var e=Fr;if(!1===e.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");if(\"06092a864886f70d010101\"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error(\"not PKCS8 RSA public key\");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},Me.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new on).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};new RegExp(\"[^0-9a-f]\",\"gi\");function en(t,e){for(var r=\"\",n=e/4-t.length,i=0;i<n;i++)r+=\"0\";return r+t}function rn(t,e,r){for(var n=\"\",i=0;n.length<e;)n+=Lr(r(Nr(t+String.fromCharCode.apply(String,[(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function nn(t){for(var e in Sr.crypto.Util.DIGESTINFOHEAD){var r=Sr.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function on(t){var e,r=Fr,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.getInt,d=r.oidname,p=r.hextooidstr,v=Mr;try{e=Sr.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",13:\"prn\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var t=u(this.hex,0,[0,0]);if(\"a0\"==t.substr(0,2)){var e=u(t,0,[0]),r=g(e,0);if(r<0||2<r)throw new Error(\"malformed version field\");return this.version=r+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],\"02\")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return d(a(t,0,[0],\"06\"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],\"30\")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],\"30\")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],\"30\")},this.getPublicKey=function(){return tn.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],\"03\",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],\"30\"),i=new Sr.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],\"30\"),o=n(a,e)}else{a=Mr(t);var u=h(a,0,[0,3,0,0],\"06\");if(\"2a864886f70d01090e\"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],\"30\"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c<o.length;c++){var l={critical:!1},g=0;3===n(a,o[c]).length&&(l.critical=!0,g=1),l.oid=r.hextooidstr(s(a,o[c],[0],\"06\"));var d=h(a,o[c],[1+g]);l.vidx=f(a,d),this.aExtInfo.push(l)}},this.getExtInfo=function(t){var e=this.aExtInfo,r=t;if(t.match(/^[0-9.]+$/)||(r=Sr.asn1.x509.OID.name2oid(t)),\"\"!==r)for(var n=0;n<e.length;n++)if(e[n].oid===r)return e[n]},this.getExtBasicConstraints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"basicConstraints\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"basicConstraints\"};if(e&&(n.critical=!0),\"3000\"===t)return n;if(\"30030101ff\"===t)return n.cA=!0,n;if(\"30060101ff02\"===t.substr(0,12)){var s=i(t,10),a=parseInt(s,16);return n.cA=!0,n.pathLen=a,n}throw new Error(\"hExtV parse error: \"+t)},this.getExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"keyUsage\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"keyUsage\"};return e&&(n.critical=!0),n.names=this.getExtKeyUsageString(t).split(\",\"),n},this.getExtKeyUsageBin=function(t){if(void 0===t){var e=this.getExtInfo(\"keyUsage\");if(void 0===e)return\"\";t=o(this.hex,e.vidx)}if(8!=t.length&&10!=t.length)throw new Error(\"malformed key usage value: \"+t);var r=\"000000000000000\"+parseInt(t.substr(6),16).toString(2);return 8==t.length&&(r=r.slice(-8)),10==t.length&&(r=r.slice(-16)),\"\"==(r=r.replace(/0+$/,\"\"))&&(r=\"0\"),r},this.getExtKeyUsageString=function(t){for(var e=this.getExtKeyUsageBin(t),r=new Array,n=0;n<e.length;n++)\"1\"==e.substr(n,1)&&r.push(on.KEYUSAGE_NAME[n]);return r.join(\",\")},this.getExtSubjectKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"subjectKeyIdentifier\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"subjectKeyIdentifier\"};e&&(n.critical=!0);var s=i(t,0);return n.kid={hex:s},n},this.getExtAuthorityKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"authorityKeyIdentifier\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:\"authorityKeyIdentifier\"};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++){var c=t.substr(a[u],2);if(\"80\"===c&&(s.kid={hex:i(t,a[u])}),\"a1\"===c){var h=o(t,a[u]),l=this.getGeneralNames(h);s.issuer=l[0].dn}\"82\"===c&&(s.sn={hex:i(t,a[u])})}return s},this.getExtExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"extKeyUsage\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:\"extKeyUsage\",array:[]};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++)s.array.push(d(i(t,a[u])));return s},this.getExtExtKeyUsageName=function(){var t=this.getExtInfo(\"extKeyUsage\");if(void 0===t)return t;var e=new Array,r=o(this.hex,t.vidx);if(\"\"===r)return e;for(var s=n(r,0),a=0;a<s.length;a++)e.push(d(i(r,s[a])));return e},this.getExtSubjectAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"subjectAltName\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"subjectAltName\",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getExtIssuerAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"issuerAltName\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:\"issuerAltName\",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getGeneralNames=function(t){for(var e=n(t,0),r=[],i=0;i<e.length;i++){var s=this.getGeneralName(o(t,e[i]));void 0!==s&&r.push(s)}return r},this.getGeneralName=function(t){var e=t.substr(0,2),r=i(t,0),n=Lr(r);return\"81\"==e?{rfc822:n}:\"82\"==e?{dns:n}:\"86\"==e?{uri:n}:\"87\"==e?{ip:zr(r)}:\"a4\"==e?{dn:this.getX500Name(r)}:void 0},this.getExtSubjectAltName2=function(){var t,e,r,s=this.getExtInfo(\"subjectAltName\");if(void 0===s)return s;for(var a=new Array,u=o(this.hex,s.vidx),c=n(u,0),h=0;h<c.length;h++)r=u.substr(c[h],2),t=i(u,c[h]),\"81\"===r&&(e=Dr(t),a.push([\"MAIL\",e])),\"82\"===r&&(e=Dr(t),a.push([\"DNS\",e])),\"84\"===r&&(e=on.hex2dn(t,0),a.push([\"DN\",e])),\"86\"===r&&(e=Dr(t),a.push([\"URI\",e])),\"87\"===r&&(e=zr(t),a.push([\"IP\",e]));return a},this.getExtCRLDistributionPoints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"cRLDistributionPoints\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"cRLDistributionPoints\",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]);i.array.push(this.getDistributionPoint(u))}return i},this.getDistributionPoint=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);\"a0\"==s&&(e.dpname=this.getDistributionPointName(a))}return e},this.getDistributionPointName=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);\"a0\"==s&&(e.full=this.getGeneralNames(a))}return e},this.getExtCRLDistributionPointsURI=function(){var t=this.getExtInfo(\"cRLDistributionPoints\");if(void 0===t)return t;for(var e=new Array,r=n(this.hex,t.vidx),i=0;i<r.length;i++)try{var o=Dr(s(this.hex,r[i],[0,0,0],\"86\"));e.push(o)}catch(t){}return e},this.getExtAIAInfo=function(){var t=this.getExtInfo(\"authorityInfoAccess\");if(void 0===t)return t;for(var e={ocsp:[],caissuer:[]},r=n(this.hex,t.vidx),i=0;i<r.length;i++){var o=s(this.hex,r[i],[0],\"06\"),a=s(this.hex,r[i],[1],\"86\");\"2b06010505073001\"===o&&e.ocsp.push(Dr(a)),\"2b06010505073002\"===o&&e.caissuer.push(Dr(a))}return e},this.getExtAuthorityInfoAccess=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"authorityInfoAccess\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"authorityInfoAccess\",array:[]};e&&(i.critical=!0);for(var u=n(t,0),c=0;c<u.length;c++){var h=a(t,u[c],[0],\"06\"),l=Dr(s(t,u[c],[1],\"86\"));if(\"2b06010505073001\"==h)i.array.push({ocsp:l});else{if(\"2b06010505073002\"!=h)throw new Error(\"unknown method: \"+h);i.array.push({caissuer:l})}}return i},this.getExtCertificatePolicies=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"certificatePolicies\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"certificatePolicies\",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]),c=this.getPolicyInformation(u);i.array.push(c)}return i},this.getPolicyInformation=function(t){var e={},r=s(t,0,[0],\"06\");e.policyoid=d(r);var i=l(t,0,[1],\"30\");if(-1!=i){e.array=[];for(var a=n(t,i),u=0;u<a.length;u++){var c=o(t,a[u]),h=this.getPolicyQualifierInfo(c);e.array.push(h)}}return e},this.getPolicyQualifierInfo=function(t){var e={},r=s(t,0,[0],\"06\");if(\"2b06010505070201\"===r){var n=a(t,0,[1],\"16\");e.cps=Lr(n)}else if(\"2b06010505070202\"===r){var i=u(t,0,[1],\"30\");e.unotice=this.getUserNotice(i)}return e},this.getUserNotice=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]);\"30\"!=s.substr(0,2)&&(e.exptext=this.getDisplayText(s))}return e},this.getDisplayText=function(t){var e={};return e.type={\"0c\":\"utf8\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"}[t.substr(0,2)],e.str=Lr(i(t,0)),e},this.getExtCRLNumber=function(t,e){var r={extname:\"cRLNumber\"};if(e&&(r.critical=!0),\"02\"==t.substr(0,2))return r.num={hex:i(t,0)},r;throw new Error(\"hExtV parse error: \"+t)},this.getExtCRLReason=function(t,e){var r={extname:\"cRLReason\"};if(e&&(r.critical=!0),\"0a\"==t.substr(0,2))return r.code=parseInt(i(t,0),16),r;throw new Error(\"hExtV parse error: \"+t)},this.getExtOcspNonce=function(t,e){var r={extname:\"ocspNonce\"};e&&(r.critical=!0);var n=i(t,0);return r.hex=n,r},this.getExtOcspNoCheck=function(t,e){var r={extname:\"ocspNoCheck\"};return e&&(r.critical=!0),r},this.getExtAdobeTimeStamp=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo(\"adobeTimeStamp\");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:\"adobeTimeStamp\"};e&&(i.critical=!0);var s=n(t,0);if(s.length>1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);\"0101ff\"==c&&(i.reqauth=!0),\"010100\"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n<t.length;n++)for(var i=t[n],o=0;o<i.length;o++)r.push(i[o]);for(n=0;n<r.length;n++){var s=r[n],a=s.ds,u=s.value,c=s.type;if(\":\"+a,\"prn\"!=a&&\"utf8\"!=a&&\"ia5\"!=a)return\"mixed\";if(\"ia5\"==a){if(\"CN\"!=c)return\"mixed\";if(Sr.lang.String.isMail(u))continue;return\"mixed\"}if(\"C\"==c){if(\"prn\"==a)continue;return\"mixed\"}if(\":\"+a,null==e)e=a;else if(e!==a)return\"mixed\"}return null==e?\"prn\":e},this.getX500Name=function(t){var e=this.getX500NameArray(t);return{array:e,str:this.dnarraytostr(e)}},this.getX500NameArray=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getRDN(o(t,r[i])));return e},this.getRDN=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getAttrTypeAndValue(o(t,r[i])));return e},this.getAttrTypeAndValue=function(t){var e={type:null,value:null,ds:null},r=n(t,0),i=s(t,r[0],[],\"06\"),o=s(t,r[1],[]),a=Sr.asn1.ASN1Util.oidHexToInt(i);return e.type=Sr.asn1.x509.OID.oid2atype(a),e.ds=this.HEX2STAG[t.substr(r[1],2)],\"bmp\"!=e.ds?e.value=Dr(o):e.value=Yr(o),e},this.readCertPEM=function(t){this.readCertHex(v(t))},this.readCertHex=function(t){this.hex=t,this.getVersion();try{h(this.hex,0,[0,7],\"a3\"),this.parseExt()}catch(t){}},this.getParam=function(){var t={};return t.version=this.getVersion(),t.serial={hex:this.getSerialNumberHex()},t.sigalg=this.getSignatureAlgorithmField(),t.issuer=this.getIssuer(),t.notbefore=this.getNotBefore(),t.notafter=this.getNotAfter(),t.subject=this.getSubject(),t.sbjpubkey=jr(this.getPublicKeyHex(),\"PUBLIC KEY\"),this.aExtInfo.length>0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=l(this.hex,0,[0,\"[3]\"])&&(t=c(this.hex,0,[0,\"[3]\",0],\"30\")));for(var e=[],r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]),a=this.getExtParam(s);null!=a&&e.push(a)}return e},this.getExtParam=function(t){var e=n(t,0).length;if(2!=e&&3!=e)throw new Error(\"wrong number elements in Extension: \"+e+\" \"+t);var r=p(s(t,0,[0],\"06\")),i=!1;3==e&&\"0101ff\"==u(t,0,[1])&&(i=!0);var o=u(t,0,[e-1,0]),a=void 0;if(\"2.5.29.14\"==r?a=this.getExtSubjectKeyIdentifier(o,i):\"2.5.29.15\"==r?a=this.getExtKeyUsage(o,i):\"2.5.29.17\"==r?a=this.getExtSubjectAltName(o,i):\"2.5.29.18\"==r?a=this.getExtIssuerAltName(o,i):\"2.5.29.19\"==r?a=this.getExtBasicConstraints(o,i):\"2.5.29.31\"==r?a=this.getExtCRLDistributionPoints(o,i):\"2.5.29.32\"==r?a=this.getExtCertificatePolicies(o,i):\"2.5.29.35\"==r?a=this.getExtAuthorityKeyIdentifier(o,i):\"2.5.29.37\"==r?a=this.getExtExtKeyUsage(o,i):\"1.3.6.1.5.5.7.1.1\"==r?a=this.getExtAuthorityInfoAccess(o,i):\"2.5.29.20\"==r?a=this.getExtCRLNumber(o,i):\"2.5.29.21\"==r?a=this.getExtCRLReason(o,i):\"1.3.6.1.5.5.7.48.1.2\"==r?a=this.getExtOcspNonce(o,i):\"1.3.6.1.5.5.7.48.1.5\"==r?a=this.getExtOcspNoCheck(o,i):\"1.2.840.113583.1.1.9.1\"==r&&(a=this.getExtAdobeTimeStamp(o,i)),null!=a)return a;var c={extname:r,extn:o};return i&&(c.critical=!0),c},this.findExt=function(t,e){for(var r=0;r<t.length;r++)if(t[r].extname==e)return t[r];return null},this.updateExtCDPFullURI=function(t,e){var r=this.findExt(t,\"cRLDistributionPoints\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)if(null!=n[i].dpname&&null!=n[i].dpname.full)for(var o=n[i].dpname.full,s=0;s<o.length;s++){var a=o[i];null!=a.uri&&(a.uri=e)}},this.updateExtAIAOCSP=function(t,e){var r=this.findExt(t,\"authorityInfoAccess\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)null!=n[i].ocsp&&(n[i].ocsp=e)},this.updateExtAIACAIssuer=function(t,e){var r=this.findExt(t,\"authorityInfoAccess\");if(null!=r&&null!=r.array)for(var n=r.array,i=0;i<n.length;i++)null!=n[i].caissuer&&(n[i].caissuer=e)},this.dnarraytostr=function(t){return\"/\"+t.map((function(t){return function e(t){return t.map((function(t){return function e(t){return t.type+\"=\"+t.value}(t).replace(/\\+/,\"\\\\+\")})).join(\"+\")}(t).replace(/\\//,\"\\\\/\")})).join(\"/\")},this.getInfo=function(){var t,e,r,n=function t(e){return JSON.stringify(e.array).replace(/[\\[\\]\\{\\}\\\"]/g,\"\")},i=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];if(r+=\" policy oid: \"+o.policyoid+\"\\n\",void 0!==o.array)for(var s=0;s<o.array.length;s++){var a=o.array[s];void 0!==a.cps&&(r+=\" cps: \"+a.cps+\"\\n\")}}return r},o=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];try{void 0!==o.dpname.full[0].uri&&(r+=\" \"+o.dpname.full[0].uri+\"\\n\")}catch(t){}try{void 0!==o.dname.full[0].dn.hex&&(r+=\" \"+on.hex2dn(o.dpname.full[0].dn.hex)+\"\\n\")}catch(t){}}return r},s=function t(e){for(var r=\"\",n=e.array,i=0;i<n.length;i++){var o=n[i];void 0!==o.caissuer&&(r+=\" caissuer: \"+o.caissuer+\"\\n\"),void 0!==o.ocsp&&(r+=\" ocsp: \"+o.ocsp+\"\\n\")}return r};if(t=\"Basic Fields\\n\",t+=\" serial number: \"+this.getSerialNumberHex()+\"\\n\",t+=\" signature algorithm: \"+this.getSignatureAlgorithmField()+\"\\n\",t+=\" issuer: \"+this.getIssuerString()+\"\\n\",t+=\" notBefore: \"+this.getNotBefore()+\"\\n\",t+=\" notAfter: \"+this.getNotAfter()+\"\\n\",t+=\" subject: \"+this.getSubjectString()+\"\\n\",t+=\" subject public key info: \\n\",t+=\" key algorithm: \"+(e=this.getPublicKey()).type+\"\\n\",\"RSA\"===e.type&&(t+=\" n=\"+$r(e.n.toString(16)).substr(0,16)+\"...\\n\",t+=\" e=\"+$r(e.e.toString(16))+\"\\n\"),null!=(r=this.aExtInfo)){t+=\"X509v3 Extensions:\\n\";for(var a=0;a<r.length;a++){var u=r[a],c=Sr.asn1.x509.OID.oid2name(u.oid);\"\"===c&&(c=u.oid);var h=\"\";if(!0===u.critical&&(h=\"CRITICAL\"),t+=\" \"+c+\" \"+h+\":\\n\",\"basicConstraints\"===c){var l=this.getExtBasicConstraints();void 0===l.cA?t+=\" {}\\n\":(t+=\" cA=true\",void 0!==l.pathLen&&(t+=\", pathLen=\"+l.pathLen),t+=\"\\n\")}else if(\"keyUsage\"===c)t+=\" \"+this.getExtKeyUsageString()+\"\\n\";else if(\"subjectKeyIdentifier\"===c)t+=\" \"+this.getExtSubjectKeyIdentifier().kid.hex+\"\\n\";else if(\"authorityKeyIdentifier\"===c){var f=this.getExtAuthorityKeyIdentifier();void 0!==f.kid&&(t+=\" kid=\"+f.kid.hex+\"\\n\")}else{if(\"extKeyUsage\"===c)t+=\" \"+this.getExtExtKeyUsage().array.join(\", \")+\"\\n\";else if(\"subjectAltName\"===c)t+=\" \"+n(this.getExtSubjectAltName())+\"\\n\";else if(\"cRLDistributionPoints\"===c)t+=o(this.getExtCRLDistributionPoints());else if(\"authorityInfoAccess\"===c)t+=s(this.getExtAuthorityInfoAccess());else\"certificatePolicies\"===c&&(t+=i(this.getExtCertificatePolicies()))}}}return t+=\"signature algorithm: \"+this.getSignatureAlgorithmName()+\"\\n\",t+=\"signature: \"+this.getSignatureValueHex().substr(0,16)+\"...\\n\"},\"string\"==typeof t&&(-1!=t.indexOf(\"-----BEGIN\")?this.readCertPEM(t):Sr.lang.String.isHex(t)&&this.readCertHex(t))}Me.prototype.sign=function(t,e){var r=function t(r){return Sr.crypto.Util.hashString(r,e)}(t);return this.signWithMessageHash(r,e)},Me.prototype.signWithMessageHash=function(t,e){var r=Oe(Sr.crypto.Util.getPaddedDigestInfoHex(t,e,this.n.bitLength()),16);return en(this.doPrivate(r).toString(16),this.n.bitLength())},Me.prototype.signPSS=function(t,e,r){var n=function t(r){return Sr.crypto.Util.hashHex(r,e)}(Nr(t));return void 0===r&&(r=-1),this.signWithMessageHashPSS(n,e,r)},Me.prototype.signWithMessageHashPSS=function(t,e,r){var n,i=Lr(t),o=i.length,s=this.n.bitLength()-1,a=Math.ceil(s/8),u=function t(r){return Sr.crypto.Util.hashHex(r,e)};if(-1===r||void 0===r)r=o;else if(-2===r)r=a-o-2;else if(r<-2)throw new Error(\"invalid salt length\");if(a<o+r+2)throw new Error(\"data too long\");var c=\"\";r>0&&(c=new Array(r),(new Be).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Lr(u(Nr(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+i+c))),l=[];for(n=0;n<a-r-o-2;n+=1)l[n]=0;var f=String.fromCharCode.apply(String,l)+\"\u0001\"+c,g=rn(h,f.length,u),d=[];for(n=0;n<f.length;n+=1)d[n]=f.charCodeAt(n)^g.charCodeAt(n);var p=65280>>8*a-s&255;for(d[0]&=~p,n=0;n<o;n++)d.push(h.charCodeAt(n));return d.push(188),en(this.doPrivate(new w(d)).toString(16),this.n.bitLength())},Me.prototype.verify=function(t,e){if(null==(e=e.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var r=Oe(e,16),n=this.n.bitLength();if(r.bitLength()>n)return!1;var i=this.doPublic(r).toString(16);if(i.length+3!=n/4)return!1;var o=nn(i.replace(/^1f+00/,\"\"));if(0==o.length)return!1;var s=o[0];return o[1]==function t(e){return Sr.crypto.Util.hashString(e,s)}(t)},Me.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=Oe(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;n[0];return n[1]==t},Me.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return Sr.crypto.Util.hashHex(e,r)}(Nr(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},Me.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new w(e,16),s=function t(e){return Sr.crypto.Util.hashHex(e,r)},a=Lr(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error(\"invalid salt length\");if(h<u+n+2)throw new Error(\"data too long\");var l=this.doPublic(o).toByteArray();for(i=0;i<l.length;i+=1)l[i]&=255;for(;l.length<h;)l.unshift(0);if(188!==l[h-1])throw new Error(\"encoded message does not end in 0xbc\");var f=(l=String.fromCharCode.apply(String,l)).substr(0,h-u-1),g=l.substr(f.length,u),d=65280>>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error(\"bits beyond keysize not zero\");var p=rn(g,f.length,s),v=[];for(i=0;i<f.length;i+=1)v[i]=f.charCodeAt(i)^p.charCodeAt(i);v[0]&=~d;var y=h-u-n-2;for(i=0;i<y;i+=1)if(0!==v[i])throw new Error(\"leftmost octets not zero\");if(1!==v[y])throw new Error(\"0x01 marker not found\");return g===Lr(s(Nr(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+a+String.fromCharCode.apply(String,v.slice(-n)))))},Me.SALT_LEN_HLEN=-1,Me.SALT_LEN_MAX=-2,Me.SALT_LEN_RECOVER=-2,on.hex2dn=function(t,e){void 0===e&&(e=0);var r=new on;Fr.getTLV(t,e);return r.getX500Name(t).str},on.hex2rdn=function(t,e){if(void 0===e&&(e=0),\"31\"!==t.substr(e,2))throw new Error(\"malformed RDN\");for(var r=new Array,n=Fr.getChildIdx(t,e),i=0;i<n.length;i++)r.push(on.hex2attrTypeValue(t,n[i]));return(r=r.map((function(t){return t.replace(\"+\",\"\\\\+\")}))).join(\"+\")},on.hex2attrTypeValue=function(t,e){var r=Fr,n=r.getV;if(void 0===e&&(e=0),\"30\"!==t.substr(e,2))throw new Error(\"malformed attribute type and value\");var i=r.getChildIdx(t,e);2!==i.length||t.substr(i[0],2);var o=n(t,i[0]),s=Sr.asn1.ASN1Util.oidHexToInt(o);return Sr.asn1.x509.OID.oid2atype(s)+\"=\"+Lr(n(t,i[1]))},on.getPublicKeyFromCertHex=function(t){var e=new on;return e.readCertHex(t),e.getPublicKey()},on.getPublicKeyFromCertPEM=function(t){var e=new on;return e.readCertPEM(t),e.getPublicKey()},on.getPublicKeyInfoPropOfCertPEM=function(t){var e,r,n=Fr.getVbyList,i={};return i.algparam=null,(e=new on).readCertPEM(t),r=e.getPublicKeyHex(),i.keyhex=n(r,0,[1],\"03\").substr(2),i.algoid=n(r,0,[0,0],\"06\"),\"2a8648ce3d0201\"===i.algoid&&(i.algparam=n(r,0,[0,1],\"06\")),i},on.KEYUSAGE_NAME=[\"digitalSignature\",\"nonRepudiation\",\"keyEncipherment\",\"dataEncipherment\",\"keyAgreement\",\"keyCertSign\",\"cRLSign\",\"encipherOnly\",\"decipherOnly\"],void 0!==Sr&&Sr||(e.KJUR=Sr={}),void 0!==Sr.jws&&Sr.jws||(Sr.jws={}),Sr.jws.JWS=function(){var t=Sr.jws.JWS.isSafeJSONString;this.parseJWS=function(e,r){if(void 0===this.parsedJWS||!r&&void 0===this.parsedJWS.sigvalH){var n=e.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/);if(null==n)throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\";var i=n[1],o=n[2],s=n[3],a=i+\".\"+o;if(this.parsedJWS={},this.parsedJWS.headB64U=i,this.parsedJWS.payloadB64U=o,this.parsedJWS.sigvalB64U=s,this.parsedJWS.si=a,!r){var u=Rr(s),c=Oe(u,16);this.parsedJWS.sigvalH=u,this.parsedJWS.sigvalBI=c}var h=wr(i),l=wr(o);if(this.parsedJWS.headS=h,this.parsedJWS.payloadS=l,!t(h,this.parsedJWS,\"headP\"))throw\"malformed JSON string for JWS Head: \"+h}}},Sr.jws.JWS.sign=function(t,e,r,n,i){var o,s,a,u=Sr,c=u.jws.JWS,h=c.readSafeJSONString,l=c.isSafeJSONString,f=u.crypto,d=(f.ECDSA,f.Mac),p=f.Signature,v=JSON;if(\"string\"!=typeof e&&\"object\"!=(void 0===e?\"undefined\":g(e)))throw\"spHeader must be JSON string or object: \"+e;if(\"object\"==(void 0===e?\"undefined\":g(e))&&(s=e,o=v.stringify(s)),\"string\"==typeof e){if(!l(o=e))throw\"JWS Head is not safe JSON string: \"+o;s=h(o)}if(a=r,\"object\"==(void 0===r?\"undefined\":g(r))&&(a=v.stringify(r)),\"\"!=t&&null!=t||void 0===s.alg||(t=s.alg),\"\"!=t&&null!=t&&void 0===s.alg&&(s.alg=t,o=v.stringify(s)),t!==s.alg)throw\"alg and sHeader.alg doesn't match: \"+t+\"!=\"+s.alg;var y=null;if(void 0===c.jwsalg2sigalg[t])throw\"unsupported alg name: \"+t;y=c.jwsalg2sigalg[t];var m=br(o)+\".\"+br(a),_=\"\";if(\"Hmac\"==y.substr(0,4)){if(void 0===n)throw\"mac key shall be specified for HS* alg\";var S=new d({alg:y,prov:\"cryptojs\",pass:n});S.updateString(m),_=S.doFinal()}else if(-1!=y.indexOf(\"withECDSA\")){(w=new p({alg:y})).init(n,i),w.updateString(m);var b=w.sign();_=Sr.crypto.ECDSA.asn1SigToConcatSig(b)}else{var w;if(\"none\"!=y)(w=new p({alg:y})).init(n,i),w.updateString(m),_=w.sign()}return m+\".\"+Tr(_)},Sr.jws.JWS.verify=function(t,e,r){var n,i=Sr,o=i.jws.JWS,s=o.readSafeJSONString,a=i.crypto,u=a.ECDSA,c=a.Mac,h=a.Signature;void 0!==g(Me)&&(n=Me);var l=t.split(\".\");if(3!==l.length)return!1;var f=l[0]+\".\"+l[1],d=Rr(l[2]),p=s(wr(l[0])),v=null,y=null;if(void 0===p.alg)throw\"algorithm not specified in header\";if((y=(v=p.alg).substr(0,2),null!=r&&\"[object Array]\"===Object.prototype.toString.call(r)&&r.length>0)&&-1==(\":\"+r.join(\":\")+\":\").indexOf(\":\"+v+\":\"))throw\"algorithm '\"+v+\"' not accepted in the list\";if(\"none\"!=v&&null===e)throw\"key shall be specified to verify.\";if(\"string\"==typeof e&&-1!=e.indexOf(\"-----BEGIN \")&&(e=tn.getKey(e)),!(\"RS\"!=y&&\"PS\"!=y||e instanceof n))throw\"key shall be a RSAKey obj for RS* and PS* algs\";if(\"ES\"==y&&!(e instanceof u))throw\"key shall be a ECDSA obj for ES* algs\";var m=null;if(void 0===o.jwsalg2sigalg[p.alg])throw\"unsupported alg name: \"+v;if(\"none\"==(m=o.jwsalg2sigalg[v]))throw\"not supported\";if(\"Hmac\"==m.substr(0,4)){if(void 0===e)throw\"hexadecimal key shall be specified for HMAC\";var _=new c({alg:m,pass:e});return _.updateString(f),d==_.doFinal()}if(-1!=m.indexOf(\"withECDSA\")){var S,b=null;try{b=u.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new h({alg:m})).init(e),S.updateString(f),S.verify(b)}return(S=new h({alg:m})).init(e),S.updateString(f),S.verify(d)},Sr.jws.JWS.parse=function(t){var e,r,n,i=t.split(\".\"),o={};if(2!=i.length&&3!=i.length)throw\"malformed sJWS: wrong number of '.' splitted elements\";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=Sr.jws.JWS.readSafeJSONString(wr(e)),o.payloadObj=Sr.jws.JWS.readSafeJSONString(wr(r)),o.headerPP=JSON.stringify(o.headerObj,null,\" \"),null==o.payloadObj?o.payloadPP=wr(r):o.payloadPP=JSON.stringify(o.payloadObj,null,\" \"),void 0!==n&&(o.sigHex=Rr(n)),o},Sr.jws.JWS.verifyJWT=function(t,e,r){var n=Sr.jws,i=n.JWS,o=i.readSafeJSONString,s=i.inArray,a=i.includedArray,u=t.split(\".\"),c=u[0],h=u[1],l=(Rr(u[2]),o(wr(c))),f=o(wr(h));if(void 0===l.alg)return!1;if(void 0===r.alg)throw\"acceptField.alg shall be specified\";if(!s(l.alg,r.alg))return!1;if(void 0!==f.iss&&\"object\"===g(r.iss)&&!s(f.iss,r.iss))return!1;if(void 0!==f.sub&&\"object\"===g(r.sub)&&!s(f.sub,r.sub))return!1;if(void 0!==f.aud&&\"object\"===g(r.aud))if(\"string\"==typeof f.aud){if(!s(f.aud,r.aud))return!1}else if(\"object\"==g(f.aud)&&!a(f.aud,r.aud))return!1;var d=n.IntDate.getNow();return void 0!==r.verifyAt&&\"number\"==typeof r.verifyAt&&(d=r.verifyAt),void 0!==r.gracePeriod&&\"number\"==typeof r.gracePeriod||(r.gracePeriod=0),!(void 0!==f.exp&&\"number\"==typeof f.exp&&f.exp+r.gracePeriod<d)&&(!(void 0!==f.nbf&&\"number\"==typeof f.nbf&&d<f.nbf-r.gracePeriod)&&(!(void 0!==f.iat&&\"number\"==typeof f.iat&&d<f.iat-r.gracePeriod)&&((void 0===f.jti||void 0===r.jti||f.jti===r.jti)&&!!i.verify(t,e,r.alg))))},Sr.jws.JWS.includedArray=function(t,e){var r=Sr.jws.JWS.inArray;if(null===t)return!1;if(\"object\"!==(void 0===t?\"undefined\":g(t)))return!1;if(\"number\"!=typeof t.length)return!1;for(var n=0;n<t.length;n++)if(!r(t[n],e))return!1;return!0},Sr.jws.JWS.inArray=function(t,e){if(null===e)return!1;if(\"object\"!==(void 0===e?\"undefined\":g(e)))return!1;if(\"number\"!=typeof e.length)return!1;for(var r=0;r<e.length;r++)if(e[r]==t)return!0;return!1},Sr.jws.JWS.jwsalg2sigalg={HS256:\"HmacSHA256\",HS384:\"HmacSHA384\",HS512:\"HmacSHA512\",RS256:\"SHA256withRSA\",RS384:\"SHA384withRSA\",RS512:\"SHA512withRSA\",ES256:\"SHA256withECDSA\",ES384:\"SHA384withECDSA\",PS256:\"SHA256withRSAandMGF1\",PS384:\"SHA384withRSAandMGF1\",PS512:\"SHA512withRSAandMGF1\",none:\"none\"},Sr.jws.JWS.isSafeJSONString=function(t,e,r){var n=null;try{return\"object\"!=(void 0===(n=_r(t))?\"undefined\":g(n))||n.constructor===Array?0:(e&&(e[r]=n),1)}catch(t){return 0}},Sr.jws.JWS.readSafeJSONString=function(t){var e=null;try{return\"object\"!=(void 0===(e=_r(t))?\"undefined\":g(e))||e.constructor===Array?null:e}catch(t){return null}},Sr.jws.JWS.getEncodedSignatureValueFromJWS=function(t){var e=t.match(/^[^.]+\\.[^.]+\\.([^.]+)$/);if(null==e)throw\"JWS signature is not a form of 'Head.Payload.SigValue'.\";return e[1]},Sr.jws.JWS.getJWKthumbprint=function(t){if(\"RSA\"!==t.kty&&\"EC\"!==t.kty&&\"oct\"!==t.kty)throw\"unsupported algorithm for JWK Thumprint\";var e=\"{\";if(\"RSA\"===t.kty){if(\"string\"!=typeof t.n||\"string\"!=typeof t.e)throw\"wrong n and e value for RSA key\";e+='\"e\":\"'+t.e+'\",',e+='\"kty\":\"'+t.kty+'\",',e+='\"n\":\"'+t.n+'\"}'}else if(\"EC\"===t.kty){if(\"string\"!=typeof t.crv||\"string\"!=typeof t.x||\"string\"!=typeof t.y)throw\"wrong crv, x and y value for EC key\";e+='\"crv\":\"'+t.crv+'\",',e+='\"kty\":\"'+t.kty+'\",',e+='\"x\":\"'+t.x+'\",',e+='\"y\":\"'+t.y+'\"}'}else if(\"oct\"===t.kty){if(\"string\"!=typeof t.k)throw\"wrong k value for oct(symmetric) key\";e+='\"kty\":\"'+t.kty+'\",',e+='\"k\":\"'+t.k+'\"}'}var r=Nr(e);return Tr(Sr.crypto.Util.hashHex(r,\"sha256\"))},Sr.jws.IntDate={},Sr.jws.IntDate.get=function(t){var e=Sr.jws.IntDate,r=e.getNow,n=e.getZulu;if(\"now\"==t)return r();if(\"now + 1hour\"==t)return r()+3600;if(\"now + 1day\"==t)return r()+86400;if(\"now + 1month\"==t)return r()+2592e3;if(\"now + 1year\"==t)return r()+31536e3;if(t.match(/Z$/))return n(t);if(t.match(/^[0-9]+$/))return parseInt(t);throw\"unsupported format: \"+t},Sr.jws.IntDate.getZulu=function(t){return Vr(t)},Sr.jws.IntDate.getNow=function(){return~~(new Date/1e3)},Sr.jws.IntDate.intDate2UTCString=function(t){return new Date(1e3*t).toUTCString()},Sr.jws.IntDate.intDate2Zulu=function(t){var e=new Date(1e3*t);return(\"0000\"+e.getUTCFullYear()).slice(-4)+(\"00\"+(e.getUTCMonth()+1)).slice(-2)+(\"00\"+e.getUTCDate()).slice(-2)+(\"00\"+e.getUTCHours()).slice(-2)+(\"00\"+e.getUTCMinutes()).slice(-2)+(\"00\"+e.getUTCSeconds()).slice(-2)+\"Z\"},e.SecureRandom=Be,e.rng_seed_time=Re,e.BigInteger=w,e.RSAKey=Me;var sn=Sr.crypto.EDSA;e.EDSA=sn;var an=Sr.crypto.DSA;e.DSA=an;var un=Sr.crypto.Signature;e.Signature=un;var cn=Sr.crypto.MessageDigest;e.MessageDigest=cn;var hn=Sr.crypto.Mac;e.Mac=hn;var ln=Sr.crypto.Cipher;e.Cipher=ln,e.KEYUTIL=tn,e.ASN1HEX=Fr,e.X509=on,e.CryptoJS=v,e.b64tohex=S,e.b64toBA=b,e.stoBA=Er,e.BAtos=xr,e.BAtohex=Ar,e.stohex=kr,e.stob64=function fn(t){return _(kr(t))},e.stob64u=function gn(t){return Pr(_(kr(t)))},e.b64utos=function dn(t){return xr(b(Cr(t)))},e.b64tob64u=Pr,e.b64utob64=Cr,e.hex2b64=_,e.hextob64u=Tr,e.b64utohex=Rr,e.utf8tob64u=br,e.b64utoutf8=wr,e.utf8tob64=function pn(t){return _(Kr(Gr(t)))},e.b64toutf8=function vn(t){return decodeURIComponent(qr(S(t)))},e.utf8tohex=Ir,e.hextoutf8=Dr,e.hextorstr=Lr,e.rstrtohex=Nr,e.hextob64=Ur,e.hextob64nl=Br,e.b64nltohex=Or,e.hextopem=jr,e.pemtohex=Mr,e.hextoArrayBuffer=function yn(t){if(t.length%2!=0)throw\"input is not even length\";if(null==t.match(/^[0-9A-Fa-f]+$/))throw\"input is not hexadecimal\";for(var e=new ArrayBuffer(t.length/2),r=new DataView(e),n=0;n<t.length/2;n++)r.setUint8(n,parseInt(t.substr(2*n,2),16));return e},e.ArrayBuffertohex=function mn(t){for(var e=\"\",r=new DataView(t),n=0;n<t.byteLength;n++)e+=(\"00\"+r.getUint8(n).toString(16)).slice(-2);return e},e.zulutomsec=Hr,e.zulutosec=Vr,e.zulutodate=function _n(t){return new Date(Hr(t))},e.datetozulu=function Sn(t,e,r){var n,i=t.getUTCFullYear();if(e){if(i<1950||2049<i)throw\"not proper year for UTCTime: \"+i;n=(\"\"+i).slice(-2)}else n=(\"000\"+i).slice(-4);if(n+=(\"0\"+(t.getUTCMonth()+1)).slice(-2),n+=(\"0\"+t.getUTCDate()).slice(-2),n+=(\"0\"+t.getUTCHours()).slice(-2),n+=(\"0\"+t.getUTCMinutes()).slice(-2),n+=(\"0\"+t.getUTCSeconds()).slice(-2),r){var o=t.getUTCMilliseconds();0!==o&&(n+=\".\"+(o=(o=(\"00\"+o).slice(-3)).replace(/0+$/g,\"\")))}return n+=\"Z\"},e.uricmptohex=Kr,e.hextouricmp=qr,e.ipv6tohex=Jr,e.hextoipv6=Wr,e.hextoip=zr,e.iptohex=function bn(t){var e=\"malformed IP address\";if(!(t=t.toLowerCase(t)).match(/^[0-9.]+$/)){if(t.match(/^[0-9a-f:]+$/)&&-1!==t.indexOf(\":\"))return Jr(t);throw e}var r=t.split(\".\");if(4!==r.length)throw e;var n=\"\";try{for(var i=0;i<4;i++){n+=(\"0\"+parseInt(r[i]).toString(16)).slice(-2)}return n}catch(t){throw e}},e.encodeURIComponentAll=Gr,e.newline_toUnix=function wn(t){return t=t.replace(/\\r\\n/gm,\"\\n\")},e.newline_toDos=function Fn(t){return t=(t=t.replace(/\\r\\n/gm,\"\\n\")).replace(/\\n/gm,\"\\r\\n\")},e.hextoposhex=$r,e.intarystrtohex=function En(t){t=(t=(t=t.replace(/^\\s*\\[\\s*/,\"\")).replace(/\\s*\\]\\s*$/,\"\")).replace(/\\s*/g,\"\");try{return t.split(/,/).map((function(t,e,r){var n=parseInt(t);if(n<0||255<n)throw\"integer not in range 0-255\";return(\"00\"+n.toString(16)).slice(-2)})).join(\"\")}catch(t){throw\"malformed integer array string: \"+t}},e.strdiffidx=function t(e,r){var n=e.length;e.length>r.length&&(n=r.length);for(var i=0;i<n;i++)if(e.charCodeAt(i)!=r.charCodeAt(i))return i;return e.length!=r.length?n:-1},e.KJUR=Sr;var xn=Sr.crypto;e.crypto=xn;var An=Sr.asn1;e.asn1=An;var kn=Sr.jws;e.jws=kn;var Pn=Sr.lang;e.lang=Pn}).call(this,r(28).Buffer)},function(t,e,r){\"use strict\";(function(t){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\nvar n=r(30),i=r(31),o=r(32);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()<e)throw new RangeError(\"Invalid typed array length\");return u.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=u.prototype:(null===t&&(t=new u(e)),t.length=e),t}function u(t,e,r){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(t,e,r);if(\"number\"==typeof t){if(\"string\"==typeof e)throw new Error(\"If encoding is specified then the first argument must be a string\");return l(this,t)}return c(this,t,e,r)}function c(t,e,r,n){if(\"number\"==typeof e)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function i(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError(\"'offset' is out of bounds\");if(e.byteLength<r+(n||0))throw new RangeError(\"'length' is out of bounds\");e=void 0===r&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,r):new Uint8Array(e,r,n);u.TYPED_ARRAY_SUPPORT?(t=e).__proto__=u.prototype:t=f(t,e);return t}(t,e,r,n):\"string\"==typeof e?function s(t,e,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!u.isEncoding(r))throw new TypeError('\"encoding\" must be a valid string encoding');var n=0|d(e,r),i=(t=a(t,n)).write(e,r);i!==n&&(t=t.slice(0,i));return t}(t,e,r):function c(t,e){if(u.isBuffer(e)){var r=0|g(e.length);return 0===(t=a(t,r)).length||e.copy(t,0,0,r),t}if(e){if(\"undefined\"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||\"length\"in e)return\"number\"!=typeof e.length||function n(t){return t!=t}(e.length)?a(t,0):f(t,e);if(\"Buffer\"===e.type&&o(e.data))return f(t,e.data)}throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}(t,e)}function h(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be a number');if(t<0)throw new RangeError('\"size\" argument must not be negative')}function l(t,e){if(h(e),t=a(t,e<0?0:0|g(e)),!u.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}function f(t,e){var r=e.length<0?0:0|g(e.length);t=a(t,r);for(var n=0;n<r;n+=1)t[n]=255&e[n];return t}function g(t){if(t>=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return K(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return q(t).length;default:if(n)return K(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return I(this,e,r);case\"utf8\":case\"utf-8\":return A(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return R(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;o<a;o++)if(c(t,o)===c(e,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===u)return h*s}else-1!==h&&(o-=o-h),h=-1}else for(r+u>a&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;f<u;f++)if(c(t,o+f)!==c(e,f)){l=!1;break}if(l)return o}return-1}function _(t,e,r,n){r=Number(r)||0;var i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s<n;++s){var a=parseInt(e.substr(2*s,2),16);if(isNaN(a))return s;t[r+s]=a}return s}function S(t,e,r,n){return J(K(e,t.length-r),t,r,n)}function b(t,e,r,n){return J(function i(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function w(t,e,r,n){return b(t,e,r,n)}function F(t,e,r,n){return J(q(e),t,r,n)}function E(t,e,r,n){return J(function i(t,e){for(var r,n,i,o=[],s=0;s<t.length&&!((e-=2)<0);++s)n=(r=t.charCodeAt(s))>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var o,s,a,u,c=t[i],h=null,l=c>239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function f(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=C));return r}(n)}e.Buffer=u,e.SlowBuffer=function k(t){+t!=t&&(t=0);return u.alloc(+t)},e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function P(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&\"function\"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=s(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,r){return c(null,t,e,r)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,r){return function n(t,e,r,i){return h(e),e<=0?a(t,e):void 0!==r?\"string\"==typeof i?a(t,e).fill(r,i):a(t,e).fill(r):a(t,e)}(null,t,e,r)},u.allocUnsafe=function(t){return l(null,t)},u.allocUnsafeSlow=function(t){return l(null,t)},u.isBuffer=function t(e){return!(null==e||!e._isBuffer)},u.compare=function t(e,r){if(!u.isBuffer(e)||!u.isBuffer(r))throw new TypeError(\"Arguments must be Buffers\");if(e===r)return 0;for(var n=e.length,i=r.length,o=0,s=Math.min(n,i);o<s;++o)if(e[o]!==r[o]){n=e[o],i=r[o];break}return n<i?-1:i<n?1:0},u.isEncoding=function t(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},u.concat=function t(e,r){if(!o(e))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===r)for(r=0,n=0;n<e.length;++n)r+=e[n].length;var i=u.allocUnsafe(r),s=0;for(n=0;n<e.length;++n){var a=e[n];if(!u.isBuffer(a))throw new TypeError('\"list\" argument must be an Array of Buffers');a.copy(i,s),s+=a.length}return i},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function t(){var e=this.length;if(e%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var r=0;r<e;r+=2)v(this,r,r+1);return this},u.prototype.swap32=function t(){var e=this.length;if(e%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var r=0;r<e;r+=4)v(this,r,r+3),v(this,r+1,r+2);return this},u.prototype.swap64=function t(){var e=this.length;if(e%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var r=0;r<e;r+=8)v(this,r,r+7),v(this,r+1,r+6),v(this,r+2,r+5),v(this,r+3,r+4);return this},u.prototype.toString=function t(){var e=0|this.length;return 0===e?\"\":0===arguments.length?A(this,0,e):p.apply(this,arguments)},u.prototype.equals=function t(e){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e||0===u.compare(this,e)},u.prototype.inspect=function t(){var r=\"\",n=e.INSPECT_MAX_BYTES;return this.length>0&&(r=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(r+=\" ... \")),\"<Buffer \"+r+\">\"},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError(\"out of range index\");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(i>>>=0),a=(n>>>=0)-(r>>>=0),c=Math.min(s,a),h=this.slice(i,o),l=e.slice(r,n),f=0;f<c;++f)if(h[f]!==l[f]){s=h[f],a=l[f];break}return s<a?-1:a<s?1:0},u.prototype.includes=function t(e,r,n){return-1!==this.indexOf(e,r,n)},u.prototype.indexOf=function t(e,r,n){return y(this,e,r,n,!0)},u.prototype.lastIndexOf=function t(e,r,n){return y(this,e,r,n,!1)},u.prototype.write=function t(e,r,n,i){if(void 0===r)i=\"utf8\",n=this.length,r=0;else if(void 0===n&&\"string\"==typeof r)i=r,n=this.length,r=0;else{if(!isFinite(r))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");r|=0,isFinite(n)?(n|=0,void 0===i&&(i=\"utf8\")):(i=n,n=void 0)}var o=this.length-r;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");i||(i=\"utf8\");for(var s=!1;;)switch(i){case\"hex\":return _(this,e,r,n);case\"utf8\":case\"utf-8\":return S(this,e,r,n);case\"ascii\":return b(this,e,r,n);case\"latin1\":case\"binary\":return w(this,e,r,n);case\"base64\":return F(this,e,r,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,e,r,n);default:if(s)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function I(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i=\"\",o=e;o<r;++o)i+=V(t[o]);return i}function D(t,e,r){for(var n=t.slice(e,r),i=\"\",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function L(t,e,r){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function N(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('\"value\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\"Index out of range\")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i<o;++i)t[r+i]=(e&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function B(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i<o;++i)t[r+i]=e>>>8*(n?i:3-i)&255}function O(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(t,e,r,n,o){return o||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function M(t,e,r,n,o){return o||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):r>i&&(r=i),r<e&&(r=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,r)).__proto__=u.prototype;else{var o=r-e;n=new u(o,void 0);for(var s=0;s<o;++s)n[s]=this[s+e]}return n},u.prototype.readUIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s<r&&(o*=256);)i+=this[e+s]*o;return i},u.prototype.readUIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e+--r],o=1;r>0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||L(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s<r&&(o*=256);)i+=this[e+s]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s<n&&(o*=256);)this[r+s]=e/o&255;return r+n},u.prototype.writeUIntBE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=n-1,s=1;for(this[r+o]=255&e;--o>=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):B(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s<n&&(a*=256);)e<0&&0===u&&0!==this[r+s-1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):B(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return M(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return M(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===e.length||0===this.length)return 0;if(r<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),e.length-r<i-n&&(i=e.length-r+n);var o,s=i-n;if(this===e&&n<r&&r<i)for(o=s-1;o>=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+r]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),r);return s},u.prototype.fill=function t(e,r,n,i){if(\"string\"==typeof e){if(\"string\"==typeof r?(i=r,r=0,n=this.length):\"string\"==typeof n&&(i=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==i&&\"string\"!=typeof i)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof i&&!u.isEncoding(i))throw new TypeError(\"Unknown encoding: \"+i)}else\"number\"==typeof e&&(e&=255);if(r<0||this.length<r||this.length<n)throw new RangeError(\"Out of range index\");if(n<=r)return this;var s;if(r>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(s=r;s<n;++s)this[s]=e;else{var a=u.isBuffer(e)?e:K(new u(e,i).toString()),c=a.length;for(s=0;s<n-r;++s)this[s+r]=a[s%c]}return this};var H=/[^+\\/0-9A-Za-z-_]/g;function V(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,o=[],s=0;s<n;++s){if((r=t.charCodeAt(s))>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(H,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function J(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";e.byteLength=function n(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){var e,r,n=f(t),i=n[0],o=n[1],s=new u(function c(t,e,r){return 3*(e+r)/4-r}(0,i,o)),h=0,l=o>0?i-4:i;for(r=0;r<l;r+=4)e=a[t.charCodeAt(r)]<<18|a[t.charCodeAt(r+1)]<<12|a[t.charCodeAt(r+2)]<<6|a[t.charCodeAt(r+3)],s[h++]=e>>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===o&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===o&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=16383,a=0,u=r-n;a<u;a+=o)i.push(g(t,a,a+o>u?u:a+o));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+\"==\")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+\"=\"));return i.join(\"\")};for(var s=[],a=[],u=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,l=c.length;h<l;++h)s[h]=c[h],a[c.charCodeAt(h)]=h;function f(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function g(t,e,r){for(var n,i,o=[],a=e;a<r;a+=3)n=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),o.push(s[(i=n)>>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<<a)-1,c=u>>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<<c)-1,l=h>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.parseJwt=function t(r){i.Log.debug(\"JoseUtil.parseJwt\");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,h,l,f){i.Log.debug(\"JoseUtil.validateJwt\");try{if(\"RSA\"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\",s),Promise.reject(new Error(\"RSA key missing key material\"));var g=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(g)}else{if(\"EC\"!==s.kty)return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\",s),Promise.reject(new Error(\"EC key missing key material\"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,h,l,f)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(\"JWT validation failed\")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"),Promise.reject(new Error(\"issuer was not provided\"));if(c.iss!==n)return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\",c.iss),Promise.reject(new Error(\"Invalid issuer in token: \"+c.iss));if(!c.aud)return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"),Promise.reject(new Error(\"aud was not provided\"));if(!(c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0))return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\",c.aud),Promise.reject(new Error(\"Invalid audience in token: \"+c.aud));if(c.azp&&c.azp!==o)return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\",c.azp),Promise.reject(new Error(\"Invalid azp in token: \"+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"),Promise.reject(new Error(\"iat was not provided\"));if(h<c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat is in the future\",c.iat),Promise.reject(new Error(\"iat is in the future: \"+c.iat));if(c.nbf&&h<c.nbf)return i.Log.error(\"JoseUtil._validateJwt: nbf is in the future\",c.nbf),Promise.reject(new Error(\"nbf is in the future: \"+c.nbf));if(!c.exp)return i.Log.error(\"JoseUtil._validateJwt: exp was not provided\"),Promise.reject(new Error(\"exp was not provided\"));if(c.exp<l)return i.Log.error(\"JoseUtil._validateJwt: exp is in the past\",c.exp),Promise.reject(new Error(\"exp is in the past:\"+c.exp))}return Promise.resolve(c)},t._validateJwt=function r(n,o,s,a,c,h,l){return t.validateJwtAttributes(n,s,a,c,h,l).then((function(t){try{return e.JWS.verify(n,o,u)?t:(i.Log.error(\"JoseUtil._validateJwt: signature validation failed\"),Promise.reject(new Error(\"signature validation failed\")))}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(new Error(\"signature validation failed\"))}}))},t.hashString=function t(e,r){try{return o.Util.hashString(e,r)}catch(t){i.Log.error(t)}},t.hexToBase64Url=function t(e){try{return s(e)}catch(t){i.Log.error(t)}},t}()};var i=r(0);t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninResponse=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(3);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.SigninResponse=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\";o(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}},{key:\"isOpenIdConnect\",get:function t(){return this.scopes.indexOf(\"openid\")>=0||!!this.id_token}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SignoutRequest.ctor: No url passed\"),new Error(\"url\");for(var f in s&&(r=i.UrlUtility.addQueryParam(r,\"id_token_hint\",s)),a&&(r=i.UrlUtility.addQueryParam(r,\"post_logout_redirect_uri\",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,f,c[f]);this.url=r}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,\"?\");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.InMemoryWebStorage=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._data={}}return t.prototype.getItem=function t(e){return i.Log.debug(\"InMemoryWebStorage.getItem\",e),this._data[e]},t.prototype.setItem=function t(e,r){i.Log.debug(\"InMemoryWebStorage.setItem\",e),this._data[e]=r},t.prototype.removeItem=function t(e){i.Log.debug(\"InMemoryWebStorage.removeItem\",e),delete this._data[e]},t.prototype.key=function t(e){return Object.getOwnPropertyNames(this._data)[e]},n(t,[{key:\"length\",get:function t(){return Object.getOwnPropertyNames(this._data).length}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManager=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(10),s=r(39),a=r(15),u=r(45),c=r(47),h=r(18),l=r(8),f=r(20),g=r(11),d=r(4);function p(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function v(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.UserManager=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,y=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;p(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var m=v(this,t.call(this,r));return m._events=new u.UserManagerEvents(r),m._silentRenewService=new n(m),m.settings.automaticSilentRenew&&(i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"),m.startSilentRenew()),m.settings.monitorSession&&(i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"),m._sessionMonitor=new o(m)),m._tokenRevocationClient=new a(m._settings),m._tokenClient=new l(m._settings),m._joseUtil=y,m}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then((function(t){return t?(i.Log.info(\"UserManager.getUser: user loaded\"),e._events.load(t,!1),t):(i.Log.info(\"UserManager.getUser: user not found in storage\"),null)}))},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then((function(){i.Log.info(\"UserManager.removeUser: user removed from storage\"),e._events.unload()}))},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:r\";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then((function(){i.Log.info(\"UserManager.signinRedirect: successful\")}))},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinRedirectCallback: no sub\"),t}))},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:p\";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display=\"popup\",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopup: no sub\")),t}))):(i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"),Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopupCallback: no sub\")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=Object.assign({},r),this._loadUser().then((function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.request_type=\"si:s\",r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))}))},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then((function(t){return t?t.access_token?e._loadUser().then((function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then((function(){return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"),r.id_token=t.id_token||r.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then((function(){return e._events.load(r),r}))}))}return null})):(i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"),Promise.reject(\"No access token returned from token endpoint\")):(i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"),Promise.reject(\"No response returned from token endpoint\"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){return n.settings.getEpochTime().then((function(o){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew,o).then((function(t){return t?t.sub!==e.sub?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"),Promise.reject(new Error(\"sub in id_token does not match current sub\"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"),Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))):t.azp&&t.azp!==e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"),Promise.reject(new Error(\"azp in id_token does not match original azp\"))):!t.azp&&e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"),Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))):void 0:(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"),Promise.reject(new Error(\"Failed to validate id_token\")))}))}))}))},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||\"none\",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilent: no sub\")),t}))):(i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilentCallback: no sub\")),t}))},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then((function(t){var n=t.state;t.response;return\"si:r\"===n.request_type?r.signinRedirectCallback(e):\"si:p\"===n.request_type?r.signinPopupCallback(e):\"si:s\"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error(\"invalid response_type in state\"))}))},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then((function(t){var i=t.state,o=t.response;return i?\"so:r\"===i.request_type?n.signoutRedirectCallback(e):\"so:p\"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error(\"invalid response_type in state\")):o}))},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type=\"si:s\";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt=\"none\",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||\"openid\",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return e.processSigninResponse(t.url).then((function(t){if(i.Log.debug(\"UserManager.querySessionStatus: got signin response\"),t.session_state&&t.profile.sub)return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info(\"querySessionStatus successful, user not authenticated\")})).catch((function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&(\"login_required\"==t.message||\"consent_required\"==t.message||\"interaction_required\"==t.message||\"account_selection_required\"==t.message))return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"),{session_state:t.session_state};throw t}))}))):(i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then((function(t){return n._signinEnd(t.url,e)}))},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"),n.createSigninRequest(e).then((function(e){return i.Log.debug(\"UserManager._signinStart: got signin request\"),o.url=e.url,o.id=e.state.id,t.navigate(o)})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then((function(t){i.Log.debug(\"UserManager._signinEnd: got signin response\");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \",e.profile.sub),Promise.reject(new Error(\"login_required\"));i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\")}return r.storeUser(e).then((function(){return i.Log.debug(\"UserManager._signinEnd: user stored\"),r._events.load(e),e}))}))},e.prototype._signinCallback=function t(e,r){i.Log.debug(\"UserManager._signinCallback\");var n=\"query\"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?\"?\":\"#\";return r.callback(e,void 0,n)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:r\";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then((function(){i.Log.info(\"UserManager.signoutRedirect: successful\")}))},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then((function(t){return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"),t}))},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:p\";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display=\"popup\",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info(\"UserManager.signoutPopup: successful\")}))},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&\"boolean\"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,\"?\").then((function(){i.Log.info(\"UserManager.signoutPopupCallback: successful\")}))},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then((function(t){return n._signoutEnd(t.url)}))},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"),r._loadUser().then((function(n){return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then((function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"),e.id_token_hint=s),r.removeUser().then((function(){return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"),r.createSignoutRequest(e).then((function(e){return i.Log.debug(\"UserManager._signoutStart: got signout request\"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)}))}))}))})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then((function(t){return i.Log.debug(\"UserManager._signoutEnd: got signout response\"),t}))},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then((function(t){return e._revokeInternal(t,!0).then((function(r){if(r)return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then((function(){i.Log.debug(\"UserManager.revokeAccessToken: user stored\"),e._events.load(t)}))}))})).then((function(){i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\")}))},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then((function(t){return n._revokeRefreshTokenInternal(s,r).then((function(e){return t||e||i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(\".\")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,\"refresh_token\").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug(\"UserManager._loadUser: user storageString loaded\"),a.User.fromStorageString(t)):(i.Log.debug(\"UserManager._loadUser: no user storageString\"),null)}))},e.prototype.storeUser=function t(e){if(e){i.Log.debug(\"UserManager.storeUser: storing user\");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug(\"storeUser.storeUser: removing user\"),this._userStore.remove(this._userStoreKey)},n(e,[{key:\"_redirectNavigator\",get:function t(){return this.settings.redirectNavigator}},{key:\"_popupNavigator\",get:function t(){return this.settings.popupNavigator}},{key:\"_iframeNavigator\",get:function t(){return this.settings.iframeNavigator}},{key:\"_userStore\",get:function t(){return this.settings.userStore}},{key:\"events\",get:function t(){return this._events}},{key:\"_userStoreKey\",get:function t(){return\"user:\"+this.settings.authority+\":\"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=(r(0),r(5)),o=r(40),s=r(41),a=r(43),u=r(6),c=r(1),h=r(8);function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function f(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.UserManagerSettings=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,g=r.popupWindowFeatures,d=r.popupWindowTarget,p=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?2e3:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,D=void 0!==I&&I,L=r.accessTokenExpiringNotificationTime,N=void 0===L?60:L,U=r.redirectNavigator,B=void 0===U?new o.RedirectNavigator:U,O=r.popupNavigator,j=void 0===O?new s.PopupNavigator:O,M=r.iframeNavigator,H=void 0===M?new a.IFrameNavigator:M,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;l(this,e);var q=f(this,t.call(this,arguments[0]));return q._popup_redirect_uri=n,q._popup_post_logout_redirect_uri=i,q._popupWindowFeatures=g,q._popupWindowTarget=d,q._silent_redirect_uri=p,q._silentRequestTimeout=v,q._automaticSilentRenew=m,q._validateSubOnSilentRenew=S,q._includeIdTokenInSilentRenew=w,q._accessTokenExpiringNotificationTime=N,q._monitorSession=E,q._monitorAnonymousSession=A,q._checkSessionInterval=P,q._stopCheckSessionOnError=T,R?q._query_status_response_type=R:arguments[0]&&arguments[0].response_type?q._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?\"id_token\":\"code\":q._query_status_response_type=\"id_token\",q._revokeAccessTokenOnSignout=D,q._redirectNavigator=B,q._popupNavigator=j,q._iframeNavigator=H,q._userStore=K,q}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:\"popup_redirect_uri\",get:function t(){return this._popup_redirect_uri}},{key:\"popup_post_logout_redirect_uri\",get:function t(){return this._popup_post_logout_redirect_uri}},{key:\"popupWindowFeatures\",get:function t(){return this._popupWindowFeatures}},{key:\"popupWindowTarget\",get:function t(){return this._popupWindowTarget}},{key:\"silent_redirect_uri\",get:function t(){return this._silent_redirect_uri}},{key:\"silentRequestTimeout\",get:function t(){return this._silentRequestTimeout}},{key:\"automaticSilentRenew\",get:function t(){return this._automaticSilentRenew}},{key:\"validateSubOnSilentRenew\",get:function t(){return this._validateSubOnSilentRenew}},{key:\"includeIdTokenInSilentRenew\",get:function t(){return this._includeIdTokenInSilentRenew}},{key:\"accessTokenExpiringNotificationTime\",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:\"monitorSession\",get:function t(){return this._monitorSession}},{key:\"monitorAnonymousSession\",get:function t(){return this._monitorAnonymousSession}},{key:\"checkSessionInterval\",get:function t(){return this._checkSessionInterval}},{key:\"stopCheckSessionOnError\",get:function t(){return this._stopCheckSessionOnError}},{key:\"query_status_response_type\",get:function t(){return this._query_status_response_type}},{key:\"revokeAccessTokenOnSignout\",get:function t(){return this._revokeAccessTokenOnSignout}},{key:\"redirectNavigator\",get:function t(){return this._redirectNavigator}},{key:\"popupNavigator\",get:function t(){return this._popupNavigator}},{key:\"iframeNavigator\",get:function t(){return this._iframeNavigator}},{key:\"userStore\",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.RedirectNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(){return Promise.resolve(this)},t.prototype.navigate=function t(e){return e&&e.url?(e.useReplaceToNavigate?window.location.replace(e.url):window.location=e.url,Promise.resolve()):(i.Log.error(\"RedirectNavigator.navigate: No url provided\"),Promise.reject(new Error(\"No url provided\")))},n(t,[{key:\"url\",get:function t(){return window.location.href}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.PopupNavigator=void 0;var n=r(0),i=r(42);e.PopupNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new i.PopupWindow(e);return Promise.resolve(r)},t.prototype.callback=function t(e,r,o){n.Log.debug(\"PopupNavigator.callback\");try{return i.PopupWindow.notifyOpener(e,r,o),Promise.resolve()}catch(t){return Promise.reject(t)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.PopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(3);e.PopupWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e}));var o=e.popupWindowTarget||\"_blank\",s=e.popupWindowFeatures||\"location=no,toolbar=no,width=500,height=500,left=100,top=100;\";this._popup=window.open(\"\",o,s),this._popup&&(i.Log.debug(\"PopupWindow.ctor: popup successfully created\"),this._checkForPopupClosedTimer=window.setInterval(this._checkForPopupClosed.bind(this),500))}return t.prototype.navigate=function t(e){return this._popup?e&&e.url?(i.Log.debug(\"PopupWindow.navigate: Setting URL in popup\"),this._id=e.id,this._id&&(window[\"popupCallback_\"+e.id]=this._callback.bind(this)),this._popup.focus(),this._popup.window.location=e.url):(this._error(\"PopupWindow.navigate: no url provided\"),this._error(\"No url provided\")):this._error(\"PopupWindow.navigate: Error opening popup window\"),this.promise},t.prototype._success=function t(e){i.Log.debug(\"PopupWindow.callback: Successful response from popup window\"),this._cleanup(),this._resolve(e)},t.prototype._error=function t(e){i.Log.error(\"PopupWindow.error: \",e),this._cleanup(),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup(!1)},t.prototype._cleanup=function t(e){i.Log.debug(\"PopupWindow.cleanup\"),window.clearInterval(this._checkForPopupClosedTimer),this._checkForPopupClosedTimer=null,delete window[\"popupCallback_\"+this._id],this._popup&&!e&&this._popup.close(),this._popup=null},t.prototype._checkForPopupClosed=function t(){this._popup&&!this._popup.closed||this._error(\"Popup window closed\")},t.prototype._callback=function t(e,r){this._cleanup(r),e?(i.Log.debug(\"PopupWindow.callback success\"),this._success({url:e})):(i.Log.debug(\"PopupWindow.callback: Invalid response from popup\"),this._error(\"Invalid response from popup\"))},t.notifyOpener=function t(e,r,n){if(window.opener){if(e=e||window.location.href){var s=o.UrlUtility.parseUrlFragment(e,n);if(s.state){var a=\"popupCallback_\"+s.state,u=window.opener[a];u?(i.Log.debug(\"PopupWindow.notifyOpener: passing url message to opener\"),u(e,r)):i.Log.warn(\"PopupWindow.notifyOpener: no matching callback found on opener\")}else i.Log.warn(\"PopupWindow.notifyOpener: no state found in response url\")}}else i.Log.warn(\"PopupWindow.notifyOpener: no window.opener. Can't complete notification.\")},n(t,[{key:\"promise\",get:function t(){return this._promise}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.IFrameNavigator=void 0;var n=r(0),i=r(44);e.IFrameNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new i.IFrameWindow(e);return Promise.resolve(r)},t.prototype.callback=function t(e){n.Log.debug(\"IFrameNavigator.callback\");try{return i.IFrameWindow.notifyParent(e),Promise.resolve()}catch(t){return Promise.reject(t)}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.IFrameWindow=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0);e.IFrameWindow=function(){function t(e){var r=this;!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._promise=new Promise((function(t,e){r._resolve=t,r._reject=e})),this._boundMessageEvent=this._message.bind(this),window.addEventListener(\"message\",this._boundMessageEvent,!1),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.width=0,this._frame.height=0,window.document.body.appendChild(this._frame)}return t.prototype.navigate=function t(e){if(e&&e.url){var r=e.silentRequestTimeout||1e4;i.Log.debug(\"IFrameWindow.navigate: Using timeout of:\",r),this._timer=window.setTimeout(this._timeout.bind(this),r),this._frame.src=e.url}else this._error(\"No url provided\");return this.promise},t.prototype._success=function t(e){this._cleanup(),i.Log.debug(\"IFrameWindow: Successful response from frame window\"),this._resolve(e)},t.prototype._error=function t(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},t.prototype.close=function t(){this._cleanup()},t.prototype._cleanup=function t(){this._frame&&(i.Log.debug(\"IFrameWindow: cleanup\"),window.removeEventListener(\"message\",this._boundMessageEvent,!1),window.clearTimeout(this._timer),window.document.body.removeChild(this._frame),this._timer=null,this._frame=null,this._boundMessageEvent=null)},t.prototype._timeout=function t(){i.Log.debug(\"IFrameWindow.timeout\"),this._error(\"Frame window timed out\")},t.prototype._message=function t(e){if(i.Log.debug(\"IFrameWindow.message\"),this._timer&&e.origin===this._origin&&e.source===this._frame.contentWindow&&\"string\"==typeof e.data&&(e.data.startsWith(\"http://\")||e.data.startsWith(\"https://\"))){var r=e.data;r?this._success({url:r}):this._error(\"Invalid response from frame\")}},t.notifyParent=function t(e){i.Log.debug(\"IFrameWindow.notifyParent\"),(e=e||window.location.href)&&(i.Log.debug(\"IFrameWindow.notifyParent: posting url message to parent\"),window.parent.postMessage(e,location.protocol+\"//\"+location.host))},n(t,[{key:\"promise\",get:function t(){return this._promise}},{key:\"_origin\",get:function t(){return location.protocol+\"//\"+location.host}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerEvents=void 0;var n=r(0),i=r(16),o=r(17);e.UserManagerEvents=function(t){function e(r){!function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e);var i=function s(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}(this,t.call(this,r));return i._userLoaded=new o.Event(\"User loaded\"),i._userUnloaded=new o.Event(\"User unloaded\"),i._silentRenewError=new o.Event(\"Silent renew error\"),i._userSignedIn=new o.Event(\"User signed in\"),i._userSignedOut=new o.Event(\"User signed out\"),i._userSessionChanged=new o.Event(\"User session changed\"),i}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.load=function e(r){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];n.Log.debug(\"UserManagerEvents.load\"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug(\"UserManagerEvents.unload\"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),i=r(0),o=r(1),s=r(17);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function u(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.Timer=function(t){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;a(this,e);var s=u(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug(\"Timer.init timer \"+this._name+\" skipping initialization since already initialized for expiration:\",this.expiration);else{this.cancel(),i.Log.debug(\"Timer.init timer \"+this._name+\" for duration:\",e),this._expiration=r;var n=5;e<n&&(n=e),this._timerHandle=this._timer.setInterval(this._callback.bind(this),1e3*n)}},e.prototype.cancel=function t(){this._timerHandle&&(i.Log.debug(\"Timer.cancel: \",this._name),this._timer.clearInterval(this._timerHandle),this._timerHandle=null)},e.prototype._callback=function e(){var r=this._expiration-this.now;i.Log.debug(\"Timer.callback; \"+this._name+\" timer expires in:\",r),this._expiration<=this.now&&(this.cancel(),t.prototype.raise.call(this))},n(e,[{key:\"now\",get:function t(){return parseInt(this._nowFunc())}},{key:\"expiration\",get:function t(){return this._expiration}}]),e}(s.Event)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SilentRenewService=void 0;var n=r(0);e.SilentRenewService=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._userManager=e}return t.prototype.start=function t(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then((function(t){})).catch((function(t){n.Log.error(\"SilentRenewService.start: Error from getUser:\",t.message)})))},t.prototype.stop=function t(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},t.prototype._tokenExpiring=function t(){var e=this;this._userManager.signinSilent().then((function(t){n.Log.debug(\"SilentRenewService._tokenExpiring: Silent token renewal successful\")}),(function(t){n.Log.error(\"SilentRenewService._tokenExpiring: Error from signinSilent:\",t.message),e._userManager.events._raiseSilentRenewError(t)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupNavigator=void 0;var n=r(21);e.CordovaPopupNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){var r=new n.CordovaPopupWindow(e);return Promise.resolve(r)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaIFrameNavigator=void 0;var n=r(21);e.CordovaIFrameNavigator=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.prototype.prepare=function t(e){e.popupWindowFeatures=\"hidden=yes\";var r=new n.CordovaPopupWindow(e);return Promise.resolve(r)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.Version=\"1.11.6\"}])}));","import { OidcClient, WebStorageStateStore } from '@inrupt/oidc-client';\nexport { CordovaIFrameNavigator, CordovaPopupNavigator, InMemoryWebStorage, Log, OidcClient, SessionMonitor, User, UserManager, Version, WebStorageStateStore } from '@inrupt/oidc-client';\nimport { determineSigningAlg, PREFERRED_SIGNING_ALG, getWebidFromTokenPayload, OidcProviderError, InvalidResponseError, generateDpopKeyPair, createDpopHeader, DEFAULT_SCOPES } from '@inrupt/solid-client-authn-core';\nimport { fetch as fetch$1 } from '@inrupt/universal-fetch';\n\nfunction processErrorResponse(responseBody, options) {\n var _a, _b, _c, _d;\n if (responseBody.error === \"invalid_redirect_uri\") {\n throw new Error(`Dynamic client registration failed: the provided redirect uri [${(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()}] is invalid - ${(_b = responseBody.error_description) !== null && _b !== void 0 ? _b : \"\"}`);\n }\n if (responseBody.error === \"invalid_client_metadata\") {\n throw new Error(`Dynamic client registration failed: the provided client metadata ${JSON.stringify(options)} is invalid - ${(_c = responseBody.error_description) !== null && _c !== void 0 ? _c : \"\"}`);\n }\n throw new Error(`Dynamic client registration failed: ${responseBody.error} - ${(_d = responseBody.error_description) !== null && _d !== void 0 ? _d : \"\"}`);\n}\nfunction validateRegistrationResponse(responseBody, options) {\n if (responseBody.client_id === undefined) {\n throw new Error(`Dynamic client registration failed: no client_id has been found on ${JSON.stringify(responseBody)}`);\n }\n if (options.redirectUrl &&\n (responseBody.redirect_uris === undefined ||\n responseBody.redirect_uris[0] !== options.redirectUrl.toString())) {\n throw new Error(`Dynamic client registration failed: the returned redirect URIs ${JSON.stringify(responseBody.redirect_uris)} don't match the provided ${JSON.stringify([\n options.redirectUrl.toString(),\n ])}`);\n }\n}\nasync function registerClient(options, issuerConfig) {\n var _a;\n if (!issuerConfig.registrationEndpoint) {\n throw new Error(\"Dynamic Registration could not be completed because the issuer has no registration endpoint.\");\n }\n if (!Array.isArray(issuerConfig.idTokenSigningAlgValuesSupported)) {\n throw new Error(\"The OIDC issuer discovery profile is missing the 'id_token_signing_alg_values_supported' value, which is mandatory.\");\n }\n const signingAlg = determineSigningAlg(issuerConfig.idTokenSigningAlgValuesSupported, PREFERRED_SIGNING_ALG);\n const config = {\n client_name: options.clientName,\n application_type: \"web\",\n redirect_uris: [(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()],\n subject_type: \"public\",\n token_endpoint_auth_method: \"client_secret_basic\",\n id_token_signed_response_alg: signingAlg,\n grant_types: [\"authorization_code\", \"refresh_token\"],\n };\n const headers = {\n \"Content-Type\": \"application/json\",\n };\n const registerResponse = await fetch(issuerConfig.registrationEndpoint.toString(), {\n method: \"POST\",\n headers,\n body: JSON.stringify(config),\n });\n if (registerResponse.ok) {\n const responseBody = await registerResponse.json();\n validateRegistrationResponse(responseBody, options);\n return {\n clientId: responseBody.client_id,\n clientSecret: responseBody.client_secret,\n idTokenSignedResponseAlg: responseBody.id_token_signed_response_alg,\n clientType: \"dynamic\",\n };\n }\n if (registerResponse.status === 400) {\n processErrorResponse(await registerResponse.json(), options);\n }\n throw new Error(`Dynamic client registration failed: the server returned ${registerResponse.status} ${registerResponse.statusText} - ${await registerResponse.text()}`);\n}\n\nfunction hasError(value) {\n return value.error !== undefined && typeof value.error === \"string\";\n}\nfunction hasErrorDescription(value) {\n return (value.error_description !== undefined &&\n typeof value.error_description === \"string\");\n}\nfunction hasErrorUri(value) {\n return value.error_uri !== undefined && typeof value.error_uri === \"string\";\n}\nfunction hasAccessToken(value) {\n return (value.access_token !== undefined && typeof value.access_token === \"string\");\n}\nfunction hasIdToken(value) {\n return value.id_token !== undefined && typeof value.id_token === \"string\";\n}\nfunction hasRefreshToken(value) {\n return (value.refresh_token !== undefined && typeof value.refresh_token === \"string\");\n}\nfunction hasTokenType(value) {\n return value.token_type !== undefined && typeof value.token_type === \"string\";\n}\nfunction hasExpiresIn(value) {\n return value.expires_in === undefined || typeof value.expires_in === \"number\";\n}\nfunction validatePreconditions(issuer, data) {\n if (data.grantType &&\n (!issuer.grantTypesSupported ||\n !issuer.grantTypesSupported.includes(data.grantType))) {\n throw new Error(`The issuer [${issuer.issuer}] does not support the [${data.grantType}] grant`);\n }\n if (!issuer.tokenEndpoint) {\n throw new Error(`This issuer [${issuer.issuer}] does not have a token endpoint`);\n }\n}\nfunction validateTokenEndpointResponse(tokenResponse, dpop) {\n if (hasError(tokenResponse)) {\n throw new OidcProviderError(`Token endpoint returned error [${tokenResponse.error}]${hasErrorDescription(tokenResponse)\n ? `: ${tokenResponse.error_description}`\n : \"\"}${hasErrorUri(tokenResponse) ? ` (see ${tokenResponse.error_uri})` : \"\"}`, tokenResponse.error, hasErrorDescription(tokenResponse)\n ? tokenResponse.error_description\n : undefined);\n }\n if (!hasAccessToken(tokenResponse)) {\n throw new InvalidResponseError([\"access_token\"]);\n }\n if (!hasIdToken(tokenResponse)) {\n throw new InvalidResponseError([\"id_token\"]);\n }\n if (!hasTokenType(tokenResponse)) {\n throw new InvalidResponseError([\"token_type\"]);\n }\n if (!hasExpiresIn(tokenResponse)) {\n throw new InvalidResponseError([\"expires_in\"]);\n }\n if (!dpop && tokenResponse.token_type.toLowerCase() !== \"bearer\") {\n throw new Error(`Invalid token endpoint response: requested a [Bearer] token, but got a 'token_type' value of [${tokenResponse.token_type}].`);\n }\n return tokenResponse;\n}\nasync function getTokens(issuer, client, data, dpop) {\n validatePreconditions(issuer, data);\n const headers = {\n \"content-type\": \"application/x-www-form-urlencoded\",\n };\n let dpopKey;\n if (dpop) {\n dpopKey = await generateDpopKeyPair();\n headers.DPoP = await createDpopHeader(issuer.tokenEndpoint, \"POST\", dpopKey);\n }\n if (client.clientSecret) {\n headers.Authorization = `Basic ${btoa(`${client.clientId}:${client.clientSecret}`)}`;\n }\n const requestBody = {\n grant_type: data.grantType,\n redirect_uri: data.redirectUrl,\n code: data.code,\n code_verifier: data.codeVerifier,\n client_id: client.clientId,\n };\n const tokenRequestInit = {\n method: \"POST\",\n headers,\n body: new URLSearchParams(requestBody).toString(),\n };\n const rawTokenResponse = await fetch$1(issuer.tokenEndpoint, tokenRequestInit);\n const jsonTokenResponse = (await rawTokenResponse.json());\n const tokenResponse = validateTokenEndpointResponse(jsonTokenResponse, dpop);\n const webId = await getWebidFromTokenPayload(tokenResponse.id_token, issuer.jwksUri, issuer.issuer, client.clientId);\n return {\n accessToken: tokenResponse.access_token,\n idToken: tokenResponse.id_token,\n refreshToken: hasRefreshToken(tokenResponse)\n ? tokenResponse.refresh_token\n : undefined,\n webId,\n dpopKey,\n expiresIn: tokenResponse.expires_in,\n };\n}\nasync function getBearerToken(redirectUrl) {\n let signinResponse;\n try {\n const client = new OidcClient({\n response_mode: \"query\",\n loadUserInfo: false,\n });\n signinResponse = await client.processSigninResponse(redirectUrl);\n if (client.settings.metadata === undefined) {\n throw new Error(\"Cannot retrieve issuer metadata from client information in storage.\");\n }\n if (client.settings.metadata.jwks_uri === undefined) {\n throw new Error(\"Missing some issuer metadata from client information in storage: 'jwks_uri' is undefined\");\n }\n if (client.settings.metadata.issuer === undefined) {\n throw new Error(\"Missing some issuer metadata from client information in storage: 'issuer' is undefined\");\n }\n if (client.settings.client_id === undefined) {\n throw new Error(\"Missing some client information in storage: 'client_id' is undefined\");\n }\n const webId = await getWebidFromTokenPayload(signinResponse.id_token, client.settings.metadata.jwks_uri, client.settings.metadata.issuer, client.settings.client_id);\n return {\n accessToken: signinResponse.access_token,\n idToken: signinResponse.id_token,\n webId,\n refreshToken: signinResponse.refresh_token,\n };\n }\n catch (err) {\n throw new Error(`Problem handling Auth Code Grant (Flow) redirect - URL [${redirectUrl}]: ${err}`);\n }\n}\nasync function getDpopToken(issuer, client, data) {\n return getTokens(issuer, client, data, true);\n}\n\nconst isValidUrl = (url) => {\n try {\n new URL(url);\n return true;\n }\n catch (_a) {\n return false;\n }\n};\nasync function refresh(refreshToken, issuer, client, dpopKey) {\n if (client.clientId === undefined) {\n throw new Error(\"No client ID available when trying to refresh the access token.\");\n }\n const requestBody = {\n grant_type: \"refresh_token\",\n refresh_token: refreshToken,\n scope: DEFAULT_SCOPES,\n };\n let dpopHeader = {};\n if (dpopKey !== undefined) {\n dpopHeader = {\n DPoP: await createDpopHeader(issuer.tokenEndpoint, \"POST\", dpopKey),\n };\n }\n let authHeader = {};\n if (client.clientSecret !== undefined) {\n authHeader = {\n Authorization: `Basic ${btoa(`${client.clientId}:${client.clientSecret}`)}`,\n };\n }\n else if (isValidUrl(client.clientId)) {\n requestBody.client_id = client.clientId;\n }\n const rawResponse = await fetch$1(issuer.tokenEndpoint, {\n method: \"POST\",\n body: new URLSearchParams(requestBody).toString(),\n headers: {\n ...dpopHeader,\n ...authHeader,\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n });\n let response;\n try {\n response = await rawResponse.json();\n }\n catch (e) {\n throw new Error(`The token endpoint of issuer ${issuer.issuer} returned a malformed response.`);\n }\n const validatedResponse = validateTokenEndpointResponse(response, dpopKey !== undefined);\n const webId = await getWebidFromTokenPayload(validatedResponse.id_token, issuer.jwksUri, issuer.issuer, client.clientId);\n return {\n accessToken: validatedResponse.access_token,\n idToken: validatedResponse.id_token,\n refreshToken: typeof validatedResponse.refresh_token === \"string\"\n ? validatedResponse.refresh_token\n : undefined,\n webId,\n dpopKey,\n expiresIn: validatedResponse.expires_in,\n };\n}\n\nfunction removeOidcQueryParam(redirectUrl) {\n const cleanedUrl = new URL(redirectUrl);\n cleanedUrl.searchParams.delete(\"code\");\n cleanedUrl.searchParams.delete(\"state\");\n cleanedUrl.hash = \"\";\n if (redirectUrl.includes(`${cleanedUrl.origin}/`)) {\n return cleanedUrl.href;\n }\n return `${cleanedUrl.origin}${cleanedUrl.href.substring(cleanedUrl.origin.length + 1)}`;\n}\nasync function clearOidcPersistentStorage() {\n const client = new OidcClient({\n response_mode: \"query\",\n });\n await client.clearStaleState(new WebStorageStateStore({}));\n const myStorage = window.localStorage;\n const itemsToRemove = [];\n for (let i = 0; i <= myStorage.length; i += 1) {\n const key = myStorage.key(i);\n if (key &&\n (key.match(/^oidc\\..+$/) ||\n key.match(/^solidClientAuthenticationUser:.+$/))) {\n itemsToRemove.push(key);\n }\n }\n itemsToRemove.forEach((key) => myStorage.removeItem(key));\n}\n\nexport { clearOidcPersistentStorage, getBearerToken, getDpopToken, refresh, registerClient, removeOidcQueryParam };\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n ISessionInfo,\n ISessionInternalInfo,\n ILoginOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n EVENTS,\n isValidRedirectUrl,\n ClientAuthentication as ClientAuthenticationBase,\n} from \"@inrupt/solid-client-authn-core\";\nimport { removeOidcQueryParam } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\n/**\n * @hidden\n */\nexport default class ClientAuthentication extends ClientAuthenticationBase {\n // Define these functions as properties so that they don't get accidentally re-bound.\n // Isn't Javascript fun?\n login = async (\n options: ILoginOptions,\n eventEmitter: EventEmitter,\n ): Promise<void> => {\n // In order to get a clean start, make sure that the session is logged out\n // on login.\n // But we may want to preserve our client application info, particularly if\n // we used Dynamic Client Registration to register (since we don't\n // necessarily want the user to have to register this app each time they\n // login).\n await this.sessionInfoManager.clear(options.sessionId);\n\n // In the case of the user hitting the 'back' button in their browser, they\n // could return to a previous redirect URL that contains OIDC params that\n // are now longer valid. To be safe, strip relevant params now.\n // If the user is providing a redirect IRI, it should not be modified, so\n // normalization only applies if we default to the current location (which is\n // a bad practice and should be discouraged).\n const redirectUrl =\n options.redirectUrl ?? removeOidcQueryParam(window.location.href);\n if (!isValidRedirectUrl(redirectUrl)) {\n throw new Error(\n `${redirectUrl} is not a valid redirect URL, it is either a malformed IRI, includes a hash fragment, or reserved query parameters ('code' or 'state').`,\n );\n }\n await this.loginHandler.handle({\n ...options,\n redirectUrl,\n // If no clientName is provided, the clientId may be used instead.\n clientName: options.clientName ?? options.clientId,\n eventEmitter,\n });\n };\n\n // Collects session information from storage, and returns them. Returns null\n // if the expected information cannot be found.\n // Note that the ID token is not stored, which means the session information\n // cannot be validated at this point.\n validateCurrentSession = async (\n currentSessionId: string,\n ): Promise<(ISessionInfo & ISessionInternalInfo) | null> => {\n const sessionInfo = await this.sessionInfoManager.get(currentSessionId);\n if (\n sessionInfo === undefined ||\n sessionInfo.clientAppId === undefined ||\n sessionInfo.issuer === undefined\n ) {\n return null;\n }\n return sessionInfo;\n };\n\n handleIncomingRedirect = async (\n url: string,\n eventEmitter: EventEmitter,\n ): Promise<ISessionInfo | undefined> => {\n try {\n const redirectInfo = await this.redirectHandler.handle(url, eventEmitter);\n // The `FallbackRedirectHandler` directly returns the global `fetch` for\n // his value, so we should ensure it's bound to `window` rather than to\n // ClientAuthentication, to avoid the following error:\n // > 'fetch' called on an object that does not implement interface Window.\n this.fetch = redirectInfo.fetch.bind(window);\n this.boundLogout = redirectInfo.getLogoutUrl;\n\n // Strip the oauth params:\n this.cleanUrlAfterRedirect(url);\n\n return {\n isLoggedIn: redirectInfo.isLoggedIn,\n webId: redirectInfo.webId,\n sessionId: redirectInfo.sessionId,\n expirationDate: redirectInfo.expirationDate,\n };\n } catch (err) {\n // Strip the oauth params:\n this.cleanUrlAfterRedirect(url);\n\n // FIXME: EVENTS.ERROR should be errorCode, errorDescription\n //\n // I'm not sure if \"redirect\" is a good error code, and in theory `err`\n // maybe an Error object and not a string; Maybe we want to just hardcode\n // a description instead?\n eventEmitter.emit(EVENTS.ERROR, \"redirect\", err);\n\n return undefined;\n }\n };\n\n private cleanUrlAfterRedirect(url: string): void {\n const cleanedUpUrl = new URL(url);\n cleanedUpUrl.searchParams.delete(\"state\");\n // For auth code flow\n cleanedUpUrl.searchParams.delete(\"code\");\n // For implicit flow\n cleanedUpUrl.searchParams.delete(\"id_token\");\n cleanedUpUrl.searchParams.delete(\"access_token\");\n // For login error\n cleanedUpUrl.searchParams.delete(\"error\");\n cleanedUpUrl.searchParams.delete(\"error_description\");\n cleanedUpUrl.searchParams.delete(\"iss\");\n\n // Remove OAuth-specific query params (since the login flow finishes with\n // the browser being redirected back with OAuth2 query params (e.g. for\n // 'code' and 'state'), and so if the user simply refreshes this page our\n // authentication library will be called again with what are now invalid\n // query parameters!).\n window.history.replaceState(null, \"\", cleanedUpUrl.toString());\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Handles Common Oidc login functions (Like fetching the configuration)\n */\n\nimport type {\n IClientRegistrar,\n IIssuerConfig,\n IIssuerConfigFetcher,\n ILoginOptions,\n ILoginHandler,\n IOidcHandler,\n IOidcOptions,\n IStorageUtility,\n LoginResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n ConfigurationError,\n handleRegistration,\n} from \"@inrupt/solid-client-authn-core\";\n\nfunction hasIssuer(\n options: ILoginOptions,\n): options is ILoginOptions & { oidcIssuer: string } {\n return typeof options.oidcIssuer === \"string\";\n}\n\nfunction hasRedirectUrl(\n options: ILoginOptions,\n): options is ILoginOptions & { redirectUrl: string } {\n return typeof options.redirectUrl === \"string\";\n}\n\n/**\n * @hidden\n */\nexport default class OidcLoginHandler implements ILoginHandler {\n constructor(\n private storageUtility: IStorageUtility,\n private oidcHandler: IOidcHandler,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar,\n ) {\n this.storageUtility = storageUtility;\n this.oidcHandler = oidcHandler;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.clientRegistrar = clientRegistrar;\n }\n\n async canHandle(options: ILoginOptions): Promise<boolean> {\n return hasIssuer(options) && hasRedirectUrl(options);\n }\n\n async handle(options: ILoginOptions): Promise<LoginResult> {\n if (!hasIssuer(options)) {\n throw new ConfigurationError(\n `OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(\n options,\n )}`,\n );\n }\n if (!hasRedirectUrl(options)) {\n throw new ConfigurationError(\n `OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(\n options,\n )}`,\n );\n }\n\n // Fetch issuer config.\n const issuerConfig: IIssuerConfig =\n await this.issuerConfigFetcher.fetchConfig(options.oidcIssuer);\n\n const clientRegistration = await handleRegistration(\n options,\n issuerConfig,\n this.storageUtility,\n this.clientRegistrar,\n );\n\n // Construct OIDC Options\n const OidcOptions: IOidcOptions = {\n // Note that here, the issuer is not the one from the received options, but\n // from the issuer's config. This enforces the canonical URL is used and stored,\n // which is also the one present in the ID token, so storing a technically\n // valid, but different issuer URL (e.g. using a trailing slash or not) now\n // could prevent from validating the ID token later.\n issuer: issuerConfig.issuer,\n // TODO: differentiate if DPoP should be true\n dpop: options.tokenType.toLowerCase() === \"dpop\",\n ...options,\n issuerConfiguration: issuerConfig,\n client: clientRegistration,\n };\n\n // Call proper OIDC Handler\n return this.oidcHandler.handle(OidcOptions);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Handler for the Authorization Code with PKCE Flow\n */\nimport type {\n IOidcHandler,\n IOidcOptions,\n LoginResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n DEFAULT_SCOPES,\n AuthorizationCodeWithPkceOidcHandlerBase,\n} from \"@inrupt/solid-client-authn-core\";\nimport { OidcClient } from \"@inrupt/oidc-client-ext\";\n\n/**\n * @hidden\n * Authorization code flow spec: https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth\n * PKCE: https://tools.ietf.org/html/rfc7636\n */\nexport default class AuthorizationCodeWithPkceOidcHandler\n extends AuthorizationCodeWithPkceOidcHandlerBase\n implements IOidcHandler\n{\n async handle(oidcLoginOptions: IOidcOptions): Promise<LoginResult> {\n /* eslint-disable camelcase */\n const oidcOptions = {\n authority: oidcLoginOptions.issuer.toString(),\n client_id: oidcLoginOptions.client.clientId,\n client_secret: oidcLoginOptions.client.clientSecret,\n redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n post_logout_redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n response_type: \"code\",\n scope: DEFAULT_SCOPES,\n filterProtocolClaims: true,\n // The userinfo endpoint on NSS fails, so disable this for now\n // Note that in Solid, information should be retrieved from the\n // profile referenced by the WebId.\n loadUserInfo: false,\n code_verifier: true,\n prompt: oidcLoginOptions.prompt ?? \"consent\",\n };\n /* eslint-enable camelcase */\n\n const oidcClientLibrary = new OidcClient(oidcOptions);\n\n try {\n const signingRequest = await oidcClientLibrary.createSigninRequest();\n // Make sure to await the promise before returning so that the error is caught.\n return await this.handleRedirect({\n oidcLoginOptions,\n // eslint-disable-next-line no-underscore-dangle\n state: signingRequest.state._id,\n // eslint-disable-next-line no-underscore-dangle\n codeVerifier: signingRequest.state._code_verifier,\n targetUrl: signingRequest.url.toString(),\n });\n } catch (err: unknown) {\n // eslint-disable-next-line no-console\n console.error(err);\n }\n\n // The login is only completed AFTER redirect, so nothing to return here.\n return undefined;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Responsible for fetching an IDP configuration\n */\nimport type {\n IIssuerConfig,\n IIssuerConfigFetcher,\n IStorageUtility,\n} from \"@inrupt/solid-client-authn-core\";\nimport { ConfigurationError } from \"@inrupt/solid-client-authn-core\";\nimport { fetch as uniFetch } from \"@inrupt/universal-fetch\";\n\nexport const WELL_KNOWN_OPENID_CONFIG = \".well-known/openid-configuration\";\n\n/* eslint-disable camelcase */\nconst issuerConfigKeyMap: Record<\n string,\n { toKey: string; convertToUrl?: boolean }\n> = {\n issuer: {\n toKey: \"issuer\",\n convertToUrl: true,\n },\n authorization_endpoint: {\n toKey: \"authorizationEndpoint\",\n convertToUrl: true,\n },\n token_endpoint: {\n toKey: \"tokenEndpoint\",\n convertToUrl: true,\n },\n userinfo_endpoint: {\n toKey: \"userinfoEndpoint\",\n convertToUrl: true,\n },\n jwks_uri: {\n toKey: \"jwksUri\",\n convertToUrl: true,\n },\n registration_endpoint: {\n toKey: \"registrationEndpoint\",\n convertToUrl: true,\n },\n end_session_endpoint: {\n toKey: \"endSessionEndpoint\",\n convertToUrl: true,\n },\n scopes_supported: { toKey: \"scopesSupported\" },\n response_types_supported: { toKey: \"responseTypesSupported\" },\n response_modes_supported: { toKey: \"responseModesSupported\" },\n grant_types_supported: { toKey: \"grantTypesSupported\" },\n acr_values_supported: { toKey: \"acrValuesSupported\" },\n subject_types_supported: { toKey: \"subjectTypesSupported\" },\n id_token_signing_alg_values_supported: {\n toKey: \"idTokenSigningAlgValuesSupported\",\n },\n id_token_encryption_alg_values_supported: {\n toKey: \"idTokenEncryptionAlgValuesSupported\",\n },\n id_token_encryption_enc_values_supported: {\n toKey: \"idTokenEncryptionEncValuesSupported\",\n },\n userinfo_signing_alg_values_supported: {\n toKey: \"userinfoSigningAlgValuesSupported\",\n },\n userinfo_encryption_alg_values_supported: {\n toKey: \"userinfoEncryptionAlgValuesSupported\",\n },\n userinfo_encryption_enc_values_supported: {\n toKey: \"userinfoEncryptionEncValuesSupported\",\n },\n request_object_signing_alg_values_supported: {\n toKey: \"requestObjectSigningAlgValuesSupported\",\n },\n request_object_encryption_alg_values_supported: {\n toKey: \"requestObjectEncryptionAlgValuesSupported\",\n },\n request_object_encryption_enc_values_supported: {\n toKey: \"requestObjectEncryptionEncValuesSupported\",\n },\n token_endpoint_auth_methods_supported: {\n toKey: \"tokenEndpointAuthMethodsSupported\",\n },\n token_endpoint_auth_signing_alg_values_supported: {\n toKey: \"tokenEndpointAuthSigningAlgValuesSupported\",\n },\n display_values_supported: { toKey: \"displayValuesSupported\" },\n claim_types_supported: { toKey: \"claimTypesSupported\" },\n claims_supported: { toKey: \"claimsSupported\" },\n service_documentation: { toKey: \"serviceDocumentation\" },\n claims_locales_supported: { toKey: \"claimsLocalesSupported\" },\n ui_locales_supported: { toKey: \"uiLocalesSupported\" },\n claims_parameter_supported: { toKey: \"claimsParameterSupported\" },\n request_parameter_supported: { toKey: \"requestParameterSupported\" },\n request_uri_parameter_supported: { toKey: \"requestUriParameterSupported\" },\n require_request_uri_registration: { toKey: \"requireRequestUriRegistration\" },\n op_policy_uri: {\n toKey: \"opPolicyUri\",\n convertToUrl: true,\n },\n op_tos_uri: {\n toKey: \"opTosUri\",\n convertToUrl: true,\n },\n};\n/* eslint-enable camelcase */\n\nfunction processConfig(\n config: Record<string, string | string[]>,\n): IIssuerConfig {\n const parsedConfig: Record<string, string | string[]> = {};\n Object.keys(config).forEach((key) => {\n if (issuerConfigKeyMap[key]) {\n // TODO: PMcB55: Validate URL if \"issuerConfigKeyMap[key].convertToUrl\"\n // if (issuerConfigKeyMap[key].convertToUrl) {\n // validateUrl(config[key]);\n // }\n parsedConfig[issuerConfigKeyMap[key].toKey] = config[key];\n }\n });\n if (!Array.isArray(parsedConfig.scopesSupported)) {\n parsedConfig.scopesSupported = [\"openid\"];\n }\n return parsedConfig as unknown as IIssuerConfig;\n}\n\n/**\n * @hidden\n */\nexport default class IssuerConfigFetcher implements IIssuerConfigFetcher {\n constructor(private storageUtility: IStorageUtility) {\n this.storageUtility = storageUtility;\n }\n\n // This method needs no state (so can be static), and can be exposed to allow\n // callers to know where this implementation puts state it needs.\n public static getLocalStorageKey(issuer: string): string {\n return `issuerConfig:${issuer}`;\n }\n\n async fetchConfig(issuer: string): Promise<IIssuerConfig> {\n let issuerConfig: IIssuerConfig;\n\n const openIdConfigUrl = new URL(\n WELL_KNOWN_OPENID_CONFIG,\n // Make sure to append a slash at issuer URL, so that the .well-known URL\n // includes the full issuer path. See https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig.\n issuer.endsWith(\"/\") ? issuer : `${issuer}/`,\n ).href;\n const issuerConfigRequestBody = await uniFetch.call(\n globalThis,\n openIdConfigUrl,\n );\n // Check the validity of the fetched config\n try {\n issuerConfig = processConfig(await issuerConfigRequestBody.json());\n } catch (err) {\n throw new ConfigurationError(\n `[${issuer.toString()}] has an invalid configuration: ${\n (err as { message: string }).message\n }`,\n );\n }\n\n // Update store with fetched config\n await this.storageUtility.set(\n IssuerConfigFetcher.getLocalStorageKey(issuer),\n JSON.stringify(issuerConfig),\n );\n\n return issuerConfig;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n ISessionInfo,\n ISessionInfoManager,\n ISessionInternalInfo,\n IStorageUtility,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n isSupportedTokenType,\n clear as clearBase,\n SessionInfoManagerBase,\n isValidRedirectUrl,\n} from \"@inrupt/solid-client-authn-core\";\nimport { clearOidcPersistentStorage } from \"@inrupt/oidc-client-ext\";\n\nexport { getUnauthenticatedSession } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @param sessionId\n * @param storage\n * @hidden\n */\nexport async function clear(\n sessionId: string,\n storage: IStorageUtility,\n): Promise<void> {\n await clearBase(sessionId, storage);\n await clearOidcPersistentStorage();\n}\n\n/**\n * @hidden\n */\nexport class SessionInfoManager\n extends SessionInfoManagerBase\n implements ISessionInfoManager\n{\n async get(\n sessionId: string,\n ): Promise<(ISessionInfo & ISessionInternalInfo) | undefined> {\n const [\n isLoggedIn,\n webId,\n clientId,\n clientSecret,\n redirectUrl,\n refreshToken,\n issuer,\n tokenType,\n ] = await Promise.all([\n this.storageUtility.getForUser(sessionId, \"isLoggedIn\", {\n secure: true,\n }),\n this.storageUtility.getForUser(sessionId, \"webId\", {\n secure: true,\n }),\n this.storageUtility.getForUser(sessionId, \"clientId\", {\n secure: false,\n }),\n this.storageUtility.getForUser(sessionId, \"clientSecret\", {\n secure: false,\n }),\n this.storageUtility.getForUser(sessionId, \"redirectUrl\", {\n secure: false,\n }),\n this.storageUtility.getForUser(sessionId, \"refreshToken\", {\n secure: true,\n }),\n this.storageUtility.getForUser(sessionId, \"issuer\", {\n secure: false,\n }),\n this.storageUtility.getForUser(sessionId, \"tokenType\", {\n secure: false,\n }),\n ]);\n\n if (typeof redirectUrl === \"string\" && !isValidRedirectUrl(redirectUrl)) {\n // This resolves the issue for people experiencing https://github.com/inrupt/solid-client-authn-js/issues/2891.\n // An invalid redirect URL is present in the storage, and the session should\n // be cleared to get a fresh start. This will require the user to log back in.\n await Promise.all([\n this.storageUtility.deleteAllUserData(sessionId, { secure: false }),\n this.storageUtility.deleteAllUserData(sessionId, { secure: true }),\n ]);\n return undefined;\n }\n\n if (tokenType !== undefined && !isSupportedTokenType(tokenType)) {\n throw new Error(`Tokens of type [${tokenType}] are not supported.`);\n }\n\n if (\n clientId === undefined &&\n isLoggedIn === undefined &&\n webId === undefined &&\n refreshToken === undefined\n ) {\n return undefined;\n }\n\n return {\n sessionId,\n webId,\n isLoggedIn: isLoggedIn === \"true\",\n redirectUrl,\n refreshToken,\n issuer,\n clientAppId: clientId,\n clientAppSecret: clientSecret,\n // Default the token type to DPoP if unspecified.\n tokenType: tokenType ?? \"DPoP\",\n };\n }\n\n /**\n * This function removes all session-related information from storage.\n * @param sessionId the session identifier\n * @param storage the storage where session info is stored\n * @hidden\n */\n async clear(sessionId: string): Promise<void> {\n return clear(sessionId, this.storageUtility);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IIncomingRedirectHandler,\n ISessionInfo,\n} from \"@inrupt/solid-client-authn-core\";\n\nimport { getUnauthenticatedSession } from \"../../../sessionInfo/SessionInfoManager\";\n\n/**\n * This class handles redirect IRIs without any query params, and returns an unauthenticated\n * session. It serves as a fallback so that consuming libraries don't have to test\n * for the query params themselves, and can always try to use them as a redirect IRI.\n * @hidden\n */\nexport class FallbackRedirectHandler implements IIncomingRedirectHandler {\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n // The next URL object is built for validating it.\n // eslint-disable-next-line no-new\n new URL(redirectUrl);\n return true;\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`,\n );\n }\n }\n\n async handle(\n // The argument is ignored, but must be present to implement the interface\n _redirectUrl: string,\n ): Promise<ISessionInfo & { fetch: typeof fetch }> {\n return getUnauthenticatedSession();\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n// FIXME: The following doesn't work in the browser, it results in all the fetches\n// being unauthenticated. This should be looked into when migrating to universal-fetch.\n// import { fetch } from \"cross-fetch\";\n\nimport { fetch as uniFetch } from \"@inrupt/universal-fetch\";\n\nimport type {\n IClient,\n IClientRegistrar,\n IIssuerConfigFetcher,\n IIncomingRedirectHandler,\n ISessionInfoManager,\n IStorageUtility,\n ITokenRefresher,\n RefreshOptions,\n IncomingRedirectResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n buildAuthenticatedFetch,\n loadOidcContextFromStorage,\n maybeBuildRpInitiatedLogout,\n} from \"@inrupt/solid-client-authn-core\";\nimport type { CodeExchangeResult } from \"@inrupt/oidc-client-ext\";\nimport { getDpopToken, getBearerToken } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\nconst globalFetch: typeof uniFetch = (...args) =>\n uniFetch.call(globalThis, ...args);\n\n/**\n * @hidden\n */\nexport class AuthCodeRedirectHandler implements IIncomingRedirectHandler {\n constructor(\n private storageUtility: IStorageUtility,\n private sessionInfoManager: ISessionInfoManager,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar,\n private tokerRefresher: ITokenRefresher,\n ) {\n this.storageUtility = storageUtility;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.clientRegistrar = clientRegistrar;\n this.tokerRefresher = tokerRefresher;\n }\n\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n const myUrl = new URL(redirectUrl);\n return (\n myUrl.searchParams.get(\"code\") !== null &&\n myUrl.searchParams.get(\"state\") !== null\n );\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`,\n );\n }\n }\n\n async handle(\n redirectUrl: string,\n eventEmitter?: EventEmitter,\n ): Promise<IncomingRedirectResult> {\n if (!(await this.canHandle(redirectUrl))) {\n throw new Error(\n `AuthCodeRedirectHandler cannot handle [${redirectUrl}]: it is missing one of [code, state].`,\n );\n }\n\n const url = new URL(redirectUrl);\n const oauthState = url.searchParams.get(\"state\") as string;\n\n const storedSessionId = (await this.storageUtility.getForUser(\n oauthState,\n \"sessionId\",\n {\n errorIfNull: true,\n },\n )) as string;\n\n const {\n issuerConfig,\n codeVerifier,\n redirectUrl: storedRedirectIri,\n dpop: isDpop,\n } = await loadOidcContextFromStorage(\n storedSessionId,\n this.storageUtility,\n this.issuerConfigFetcher,\n );\n\n const iss = url.searchParams.get(\"iss\");\n\n if (typeof iss === \"string\" && iss !== issuerConfig.issuer) {\n throw new Error(\n `The value of the iss parameter (${iss}) does not match the issuer identifier of the authorization server (${issuerConfig.issuer}). See [rfc9207](https://www.rfc-editor.org/rfc/rfc9207.html#section-2.3-3.1.1)`,\n );\n }\n\n if (codeVerifier === undefined) {\n throw new Error(\n `The code verifier for session ${storedSessionId} is missing from storage.`,\n );\n }\n\n if (storedRedirectIri === undefined) {\n throw new Error(\n `The redirect URL for session ${storedSessionId} is missing from storage.`,\n );\n }\n\n const client: IClient = await this.clientRegistrar.getClient(\n { sessionId: storedSessionId },\n issuerConfig,\n );\n\n let tokens: CodeExchangeResult;\n const tokenCreatedAt = Date.now();\n\n if (isDpop) {\n tokens = await getDpopToken(issuerConfig, client, {\n grantType: \"authorization_code\",\n // We rely on our 'canHandle' function checking that the OAuth 'code'\n // parameter is present in our query string.\n code: url.searchParams.get(\"code\") as string,\n codeVerifier,\n redirectUrl: storedRedirectIri,\n });\n\n // Delete oidc-client-specific session information from storage. This is\n // done automatically when retrieving a bearer token, but since the DPoP\n // binding uses our custom code, this needs to be done manually.\n window.localStorage.removeItem(`oidc.${oauthState}`);\n } else {\n tokens = await getBearerToken(url.toString());\n }\n\n let refreshOptions: RefreshOptions | undefined;\n if (tokens.refreshToken !== undefined) {\n refreshOptions = {\n sessionId: storedSessionId,\n refreshToken: tokens.refreshToken,\n tokenRefresher: this.tokerRefresher,\n };\n }\n\n const authFetch = await buildAuthenticatedFetch(\n globalFetch,\n tokens.accessToken,\n {\n dpopKey: tokens.dpopKey,\n refreshOptions,\n eventEmitter,\n expiresIn: tokens.expiresIn,\n },\n );\n\n await this.storageUtility.setForUser(\n storedSessionId,\n {\n webId: tokens.webId,\n isLoggedIn: \"true\",\n },\n { secure: true },\n );\n\n const sessionInfo = await this.sessionInfoManager.get(storedSessionId);\n if (!sessionInfo) {\n throw new Error(`Could not retrieve session: [${storedSessionId}].`);\n }\n\n return Object.assign(sessionInfo, {\n fetch: authFetch,\n getLogoutUrl: maybeBuildRpInitiatedLogout({\n idTokenHint: tokens.idToken,\n endSessionEndpoint: issuerConfig.endSessionEndpoint,\n }),\n expirationDate:\n typeof tokens.expiresIn === \"number\"\n ? tokenCreatedAt + tokens.expiresIn * 1000\n : undefined,\n } as IncomingRedirectResult);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Responsible for selecting the correct OidcHandler to handle the provided OIDC Options\n */\nimport type {\n IIncomingRedirectHandler,\n IncomingRedirectInput,\n IncomingRedirectResult,\n} from \"@inrupt/solid-client-authn-core\";\nimport { AggregateHandler } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class AggregateRedirectHandler\n extends AggregateHandler<IncomingRedirectInput, IncomingRedirectResult>\n implements IIncomingRedirectHandler\n{\n constructor(redirectHandlers: IIncomingRedirectHandler[]) {\n super(redirectHandlers);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class BrowserStorage implements IStorage {\n get storage(): typeof window.localStorage {\n return window.localStorage;\n }\n\n async get(key: string): Promise<string | undefined> {\n return this.storage.getItem(key) || undefined;\n }\n\n async set(key: string, value: string): Promise<void> {\n this.storage.setItem(key, value);\n }\n\n async delete(key: string): Promise<void> {\n this.storage.removeItem(key);\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IRedirector,\n IRedirectorOptions,\n} from \"@inrupt/solid-client-authn-core\";\n\n/**\n * @hidden\n */\nexport default class Redirector implements IRedirector {\n redirect(redirectUrl: string, options?: IRedirectorOptions): void {\n if (options && options.handleRedirect) {\n options.handleRedirect(redirectUrl);\n } else if (options && options.redirectByReplacingState) {\n window.history.replaceState({}, \"\", redirectUrl);\n } else {\n window.location.href = redirectUrl;\n }\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IStorageUtility,\n IClientRegistrar,\n IIssuerConfig,\n IClient,\n IClientRegistrarOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport { registerClient } from \"@inrupt/oidc-client-ext\";\n\n/**\n * @hidden\n */\nexport default class ClientRegistrar implements IClientRegistrar {\n constructor(private storageUtility: IStorageUtility) {\n this.storageUtility = storageUtility;\n }\n\n async getClient(\n options: IClientRegistrarOptions,\n issuerConfig: IIssuerConfig,\n ): Promise<IClient> {\n // If client secret and/or client id are stored in storage, use those.\n const [\n storedClientId,\n storedClientSecret,\n // storedClientName,\n ] = await Promise.all([\n this.storageUtility.getForUser(options.sessionId, \"clientId\", {\n secure: false,\n }),\n this.storageUtility.getForUser(options.sessionId, \"clientSecret\", {\n secure: false,\n }),\n // this.storageUtility.getForUser(options.sessionId, \"clientName\", {\n // // FIXME: figure out how to persist secure storage at reload\n // secure: false,\n // }),\n ]);\n if (storedClientId) {\n return {\n clientId: storedClientId,\n clientSecret: storedClientSecret,\n clientType: \"dynamic\",\n };\n }\n\n try {\n const registeredClient = await registerClient(options, issuerConfig);\n // Save info\n const infoToSave: Record<string, string> = {\n clientId: registeredClient.clientId,\n };\n if (registeredClient.clientSecret) {\n infoToSave.clientSecret = registeredClient.clientSecret;\n }\n if (registeredClient.idTokenSignedResponseAlg) {\n infoToSave.idTokenSignedResponseAlg =\n registeredClient.idTokenSignedResponseAlg;\n }\n await this.storageUtility.setForUser(options.sessionId, infoToSave, {\n // FIXME: figure out how to persist secure storage at reload\n // Otherwise, the client info cannot be retrieved from storage, and\n // the lib tries to re-register the client on each fetch\n secure: false,\n });\n return registeredClient;\n } catch (error) {\n throw new Error(`Client registration failed: [${error}]`);\n }\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IIncomingRedirectHandler,\n ISessionInfo,\n} from \"@inrupt/solid-client-authn-core\";\nimport { EVENTS } from \"@inrupt/solid-client-authn-core\";\nimport type { EventEmitter } from \"events\";\n\nimport { getUnauthenticatedSession } from \"../../../sessionInfo/SessionInfoManager\";\n\n/**\n * This class handles redirect IRIs without any query params, and returns an unauthenticated\n * session. It serves as a fallback so that consuming libraries don't have to test\n * for the query params themselves, and can always try to use them as a redirect IRI.\n * @hidden\n */\nexport class ErrorOidcHandler implements IIncomingRedirectHandler {\n async canHandle(redirectUrl: string): Promise<boolean> {\n try {\n // eslint-disable-next-line no-new\n return new URL(redirectUrl).searchParams.has(\"error\");\n } catch (e) {\n throw new Error(\n `[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e}`,\n );\n }\n }\n\n async handle(\n redirectUrl: string,\n eventEmitter?: EventEmitter,\n ): Promise<ISessionInfo & { fetch: typeof fetch }> {\n if (eventEmitter !== undefined) {\n const url = new URL(redirectUrl);\n const errorUrl = url.searchParams.get(\"error\");\n const errorDescriptionUrl = url.searchParams.get(\"error_description\");\n eventEmitter.emit(EVENTS.ERROR, errorUrl, errorDescriptionUrl);\n }\n return getUnauthenticatedSession();\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\nimport type {\n IClient,\n IClientRegistrar,\n IIssuerConfigFetcher,\n IStorageUtility,\n KeyPair,\n ITokenRefresher,\n TokenEndpointResponse,\n} from \"@inrupt/solid-client-authn-core\";\nimport {\n loadOidcContextFromStorage,\n EVENTS,\n} from \"@inrupt/solid-client-authn-core\";\nimport { refresh } from \"@inrupt/oidc-client-ext\";\nimport type { EventEmitter } from \"events\";\n\n// Some identifiers are not in camelcase on purpose, as they are named using the\n// official names from the OIDC/OAuth2 specifications.\n/* eslint-disable camelcase */\n\n/**\n * @hidden\n */\nexport default class TokenRefresher implements ITokenRefresher {\n constructor(\n private storageUtility: IStorageUtility,\n private issuerConfigFetcher: IIssuerConfigFetcher,\n private clientRegistrar: IClientRegistrar,\n ) {\n this.storageUtility = storageUtility;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.clientRegistrar = clientRegistrar;\n }\n\n async refresh(\n sessionId: string,\n refreshToken?: string,\n dpopKey?: KeyPair,\n eventEmitter?: EventEmitter,\n ): Promise<TokenEndpointResponse> {\n const oidcContext = await loadOidcContextFromStorage(\n sessionId,\n this.storageUtility,\n this.issuerConfigFetcher,\n );\n // This should also retrieve the client from storage\n const clientInfo: IClient = await this.clientRegistrar.getClient(\n { sessionId },\n oidcContext.issuerConfig,\n );\n\n if (refreshToken === undefined) {\n // TODO: in a next PR, look up storage for a refresh token\n throw new Error(\n `Session [${sessionId}] has no refresh token to allow it to refresh its access token.`,\n );\n }\n\n if (oidcContext.dpop && dpopKey === undefined) {\n throw new Error(\n `For session [${sessionId}], the key bound to the DPoP access token must be provided to refresh said access token.`,\n );\n }\n\n const tokenSet = await refresh(\n refreshToken,\n oidcContext.issuerConfig,\n clientInfo,\n dpopKey,\n );\n\n if (tokenSet.refreshToken !== undefined) {\n eventEmitter?.emit(EVENTS.NEW_REFRESH_TOKEN, tokenSet.refreshToken);\n await this.storageUtility.setForUser(sessionId, {\n refreshToken: tokenSet.refreshToken,\n });\n }\n return tokenSet;\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n * @packageDocumentation\n */\n\n/**\n * Top Level core document. Responsible for setting up the dependency graph\n */\nimport type { IStorage } from \"@inrupt/solid-client-authn-core\";\nimport {\n InMemoryStorage,\n IWaterfallLogoutHandler,\n} from \"@inrupt/solid-client-authn-core\";\nimport StorageUtilityBrowser from \"./storage/StorageUtility\";\nimport ClientAuthentication from \"./ClientAuthentication\";\nimport OidcLoginHandler from \"./login/oidc/OidcLoginHandler\";\nimport AuthorizationCodeWithPkceOidcHandler from \"./login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler\";\nimport IssuerConfigFetcher from \"./login/oidc/IssuerConfigFetcher\";\nimport { FallbackRedirectHandler } from \"./login/oidc/incomingRedirectHandler/FallbackRedirectHandler\";\nimport { SessionInfoManager } from \"./sessionInfo/SessionInfoManager\";\nimport { AuthCodeRedirectHandler } from \"./login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler\";\nimport AggregateRedirectHandler from \"./login/oidc/AggregateRedirectHandler\";\nimport BrowserStorage from \"./storage/BrowserStorage\";\nimport Redirector from \"./login/oidc/Redirector\";\nimport ClientRegistrar from \"./login/oidc/ClientRegistrar\";\nimport { ErrorOidcHandler } from \"./login/oidc/incomingRedirectHandler/ErrorOidcHandler\";\nimport TokenRefresher from \"./login/oidc/refresh/TokenRefresher\";\n\n/**\n *\n * @param dependencies\n * @deprecated This function will be removed from the external API in an upcoming release.\n */\nexport function getClientAuthenticationWithDependencies(dependencies: {\n secureStorage?: IStorage;\n insecureStorage?: IStorage;\n}): ClientAuthentication {\n const inMemoryStorage = new InMemoryStorage();\n const secureStorage = dependencies.secureStorage || inMemoryStorage;\n const insecureStorage = dependencies.insecureStorage || new BrowserStorage();\n\n const storageUtility = new StorageUtilityBrowser(\n secureStorage,\n insecureStorage,\n );\n\n const issuerConfigFetcher = new IssuerConfigFetcher(storageUtility);\n const clientRegistrar = new ClientRegistrar(storageUtility);\n\n const sessionInfoManager = new SessionInfoManager(storageUtility);\n\n const tokenRefresher = new TokenRefresher(\n storageUtility,\n issuerConfigFetcher,\n clientRegistrar,\n );\n\n const redirector = new Redirector();\n\n // make new handler for redirect and login\n const loginHandler = new OidcLoginHandler(\n storageUtility,\n new AuthorizationCodeWithPkceOidcHandler(storageUtility, redirector),\n issuerConfigFetcher,\n clientRegistrar,\n );\n\n const redirectHandler = new AggregateRedirectHandler([\n new ErrorOidcHandler(),\n new AuthCodeRedirectHandler(\n storageUtility,\n sessionInfoManager,\n issuerConfigFetcher,\n clientRegistrar,\n tokenRefresher,\n ),\n // This catch-all class will always be able to handle the\n // redirect IRI, so it must be registered last.\n new FallbackRedirectHandler(),\n ]);\n\n return new ClientAuthentication(\n loginHandler,\n redirectHandler,\n new IWaterfallLogoutHandler(sessionInfoManager, redirector),\n sessionInfoManager,\n issuerConfigFetcher,\n );\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\nimport { SOLID_CLIENT_AUTHN_KEY_PREFIX } from \"@inrupt/solid-client-authn-core\";\n\nexport const KEY_CURRENT_SESSION = `${SOLID_CLIENT_AUTHN_KEY_PREFIX}currentSession`;\n\nexport const KEY_CURRENT_URL = `${SOLID_CLIENT_AUTHN_KEY_PREFIX}currentUrl`;\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\n/**\n * @hidden\n */\nimport type {\n ILoginInputOptions,\n ISessionInfo,\n IStorage,\n IHasSessionEventListener,\n ISessionEventListener,\n ILogoutOptions,\n} from \"@inrupt/solid-client-authn-core\";\nimport { EVENTS, buildProxyHandler } from \"@inrupt/solid-client-authn-core\";\nimport type { fetch } from \"@inrupt/universal-fetch\";\nimport { v4 } from \"uuid\";\nimport EventEmitter from \"events\";\nimport type ClientAuthentication from \"./ClientAuthentication\";\nimport { getClientAuthenticationWithDependencies } from \"./dependencies\";\nimport { KEY_CURRENT_SESSION, KEY_CURRENT_URL } from \"./constant\";\n\nexport interface ISessionOptions {\n /**\n * A private storage, unreachable to other scripts on the page. Typically in-memory.\n */\n secureStorage: IStorage;\n /**\n * A storage where non-sensitive information may be stored, potentially longer-lived than the secure storage.\n */\n insecureStorage: IStorage;\n /**\n * Details about the current session\n */\n sessionInfo: ISessionInfo;\n /**\n * An instance of the library core. Typically obtained using `getClientAuthenticationWithDependencies`.\n */\n clientAuthentication: ClientAuthentication;\n}\n\nexport interface IHandleIncomingRedirectOptions {\n /**\n * If the user has signed in before, setting this to `true` will automatically\n * redirect them to their Solid Identity Provider, which will then attempt to\n * re-activate the session and send the user back to your app without\n * requiring user interaction.\n * If your app's access has not expired yet and re-activation completed\n * successfully, a `sessionRestore` event will be fired with the URL the user\n * was at before they were redirected to their Solid Identity Provider.\n * {@see onSessionRestore}\n */\n restorePreviousSession?: boolean;\n\n /**\n * Inrupt's Enterprise Solid Server can set a cookie to allow the browser to\n * access private resources on a Pod. In order to mitigate the logout-on-refresh\n * issue on the short term, the server also implemented a session endpoint\n * enabling the client app to know whether the cookie is set. When a user\n * logs in to a server that has that capability enabled, applications that set\n * this option to `true` will be able to make use of it.\n *\n * If your app supports the newest session restore approach, and `restorePreviousSession`\n * is set to true, this option is automatically set to false, but your app will\n * not be logged out when reloaded.\n *\n * `useEssSession` defaults to false and will be removed in the future; to\n * preserve sessions across page reloads, use of `restorePreviousSession` is\n * recommended.\n *\n * @deprecated unreleased\n */\n useEssSession?: boolean;\n /**\n * The URL of the page handling the redirect, including the query\n * parameters — these contain the information to process the login.\n * Note: as a convenience, if no URL value is specified here, we default to\n * using the browser's current location.\n */\n url?: string;\n}\n\nexport async function silentlyAuthenticate(\n sessionId: string,\n clientAuthn: ClientAuthentication,\n session: Session,\n): Promise<boolean> {\n const storedSessionInfo = await clientAuthn.validateCurrentSession(sessionId);\n if (storedSessionInfo !== null) {\n // It can be really useful to save the user's current browser location,\n // so that we can restore it after completing the silent authentication\n // on incoming redirect. This way, the user is eventually redirected back\n // to the page they were on and not to the app's redirect page.\n window.localStorage.setItem(KEY_CURRENT_URL, window.location.href);\n await clientAuthn.login(\n {\n sessionId,\n prompt: \"none\",\n oidcIssuer: storedSessionInfo.issuer,\n redirectUrl: storedSessionInfo.redirectUrl,\n clientId: storedSessionInfo.clientAppId,\n clientSecret: storedSessionInfo.clientAppSecret,\n tokenType: storedSessionInfo.tokenType ?? \"DPoP\",\n },\n session.events,\n );\n return true;\n }\n return false;\n}\n\nfunction isLoggedIn(\n sessionInfo?: ISessionInfo,\n): sessionInfo is ISessionInfo & { isLoggedIn: true } {\n return !!sessionInfo?.isLoggedIn;\n}\n\n/**\n * A {@link Session} object represents a user's session on an application. The session holds state, as it stores information enabling acces to private resources after login for instance.\n */\nexport class Session extends EventEmitter implements IHasSessionEventListener {\n /**\n * Information regarding the current session.\n */\n public readonly info: ISessionInfo;\n\n /**\n * Session attribute exposing the EventEmitter interface, to listen on session\n * events such as login, logout, etc.\n * @since 1.15.0\n */\n public readonly events: ISessionEventListener;\n\n private clientAuthentication: ClientAuthentication;\n\n private tokenRequestInProgress = false;\n\n /**\n * Session object constructor. Typically called as follows:\n *\n * ```typescript\n * const session = new Session();\n * ```\n *\n * See also [getDefaultSession](https://docs.inrupt.com/developer-tools/api/javascript/solid-client-authn-browser/functions.html#getdefaultsession).\n *\n * @param sessionOptions The options enabling the correct instantiation of\n * the session. Either both storages or clientAuthentication are required. For\n * more information, see {@link ISessionOptions}.\n * @param sessionId A string uniquely identifying the session.\n *\n */\n constructor(\n sessionOptions: Partial<ISessionOptions> = {},\n sessionId: string | undefined = undefined,\n ) {\n super();\n // Until Session no longer implements EventEmitter, this.events is just a proxy\n // to this (with some interface filtering). When we make the breaking change,\n // this.events will be a regular EventEmitter (implementing ISessionEventEmitter):\n // this.events = new EventEmitter();\n this.events = new Proxy(\n this,\n buildProxyHandler(\n Session.prototype,\n \"events only implements ISessionEventListener\",\n ),\n );\n if (sessionOptions.clientAuthentication) {\n this.clientAuthentication = sessionOptions.clientAuthentication;\n } else if (sessionOptions.secureStorage && sessionOptions.insecureStorage) {\n this.clientAuthentication = getClientAuthenticationWithDependencies({\n secureStorage: sessionOptions.secureStorage,\n insecureStorage: sessionOptions.insecureStorage,\n });\n } else {\n this.clientAuthentication = getClientAuthenticationWithDependencies({});\n }\n\n if (sessionOptions.sessionInfo) {\n this.info = {\n sessionId: sessionOptions.sessionInfo.sessionId,\n isLoggedIn: false,\n webId: sessionOptions.sessionInfo.webId,\n };\n } else {\n this.info = {\n sessionId: sessionId ?? v4(),\n isLoggedIn: false,\n };\n }\n\n // When a session is logged in, we want to track its ID in local storage to\n // enable silent refresh. The current session ID specifically stored in 'localStorage'\n // (as opposed to using our storage abstraction layer) because it is only\n // used in a browser-specific mechanism.\n this.events.on(EVENTS.LOGIN, () =>\n window.localStorage.setItem(KEY_CURRENT_SESSION, this.info.sessionId),\n );\n\n this.events.on(EVENTS.SESSION_EXPIRED, () => this.internalLogout(false));\n\n this.events.on(EVENTS.ERROR, () => this.internalLogout(false));\n }\n\n /**\n * Triggers the login process. Note that this method will redirect the user away from your app.\n *\n * @param options Parameter to customize the login behaviour. In particular, two options are mandatory: `options.oidcIssuer`, the user's identity provider, and `options.redirectUrl`, the URL to which the user will be redirected after logging in their identity provider.\n * @returns This method should redirect the user away from the app: it does not return anything. The login process is completed by {@linkcode handleIncomingRedirect}.\n */\n // Define these functions as properties so that they don't get accidentally re-bound.\n // Isn't Javascript fun?\n login = async (options: ILoginInputOptions): Promise<void> => {\n await this.clientAuthentication.login(\n {\n sessionId: this.info.sessionId,\n ...options,\n // Defaults the token type to DPoP\n tokenType: options.tokenType ?? \"DPoP\",\n },\n this.events,\n );\n // `login` redirects the user away from the app,\n // so unless it throws an error, there is no code that should run afterwards\n // (since there is no \"after\" in the lifetime of the script).\n // Hence, this Promise never resolves:\n return new Promise(() => {});\n };\n\n /**\n * Fetches data using available login information. If the user is not logged in, this will behave as a regular `fetch`. The signature of this method is identical to the [canonical `fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * @param url The URL from which data should be fetched.\n * @param init Optional parameters customizing the request, by specifying an HTTP method, headers, a body, etc. Follows the [WHATWG Fetch Standard](https://fetch.spec.whatwg.org/).\n */\n fetch: typeof fetch = (url, init) =>\n this.clientAuthentication.fetch(url, init);\n\n /**\n * An internal logout function, to control whether or not the logout signal\n * should be sent, i.e. if the logout was user-initiated or is the result of\n * an external event.\n *\n * @hidden\n */\n private internalLogout = async (\n emitSignal: boolean,\n options?: ILogoutOptions,\n ): Promise<void> => {\n // Clearing this value means that silent refresh will no longer be attempted.\n // In particular, in the case of a silent authentication error it prevents\n // from getting stuck in an authentication retries loop.\n window.localStorage.removeItem(KEY_CURRENT_SESSION);\n await this.clientAuthentication.logout(this.info.sessionId, options);\n this.info.isLoggedIn = false;\n if (emitSignal) {\n (this.events as EventEmitter).emit(EVENTS.LOGOUT);\n }\n };\n\n /**\n * Logs the user out of the application.\n *\n * There are 2 types of logout supported by this library,\n * `app` logout and `idp` logout.\n *\n * App logout will log the user out within the application\n * by clearing any session data from the browser. It does\n * not log the user out of their Solid identity provider,\n * and should not redirect the user away.\n * App logout can be performed as follows:\n * ```typescript\n * await session.logout({ logoutType: 'app' });\n * ```\n *\n * IDP logout will log the user out of their Solid identity provider,\n * and will redirect the user away from the application to do so. In order\n * for users to be redirected back to `postLogoutUrl` you MUST include the\n * `postLogoutUrl` value in the `post_logout_redirect_uris` field in the\n * [Client ID Document](https://docs.inrupt.com/ess/latest/security/authentication/#client-identifier-client-id).\n * IDP logout can be performed as follows:\n * ```typescript\n * await session.logout({\n * logoutType: 'idp',\n * // An optional URL to redirect to after logout has completed;\n * // this MUST match a logout URL listed in the Client ID Document\n * // of the application that is logged in.\n * // If the application is logged in with a Client ID that is not\n * // a URI dereferencing to a Client ID Document then users will\n * // not be redirected back to the `postLogoutUrl` after logout.\n * postLogoutUrl: 'https://example.com/logout',\n * // An optional value to be included in the query parameters\n * // when the IDP provider redirects the user to the postLogoutRedirectUrl.\n * state: \"my-state\"\n * });\n * ```\n */\n logout = async (options?: ILogoutOptions): Promise<void> =>\n this.internalLogout(true, options);\n\n /**\n * Completes the login process by processing the information provided by the\n * Solid identity provider through redirect.\n *\n * @param options See {@see IHandleIncomingRedirectOptions}.\n */\n handleIncomingRedirect = async (\n inputOptions: string | IHandleIncomingRedirectOptions = {},\n ): Promise<ISessionInfo | undefined> => {\n if (this.info.isLoggedIn) {\n return this.info;\n }\n\n if (this.tokenRequestInProgress) {\n return undefined;\n }\n const options =\n typeof inputOptions === \"string\" ? { url: inputOptions } : inputOptions;\n const url = options.url ?? window.location.href;\n\n this.tokenRequestInProgress = true;\n const sessionInfo = await this.clientAuthentication.handleIncomingRedirect(\n url,\n this.events,\n );\n if (isLoggedIn(sessionInfo)) {\n this.setSessionInfo(sessionInfo);\n const currentUrl = window.localStorage.getItem(KEY_CURRENT_URL);\n if (currentUrl === null) {\n // The login event can only be triggered **after** the user has been\n // redirected from the IdP with access and ID tokens.\n (this.events as EventEmitter).emit(EVENTS.LOGIN);\n } else {\n // If an URL is stored in local storage, we are being logged in after a\n // silent authentication, so remove our currently stored URL location\n // to clean up our state now that we are completing the re-login process.\n window.localStorage.removeItem(KEY_CURRENT_URL);\n (this.events as EventEmitter).emit(EVENTS.SESSION_RESTORED, currentUrl);\n }\n } else if (options.restorePreviousSession === true) {\n // Silent authentication happens after a refresh, which means there are no\n // OAuth params in the current location IRI. It can only succeed if a session\n // was previously logged in, in which case its ID will be present with a known\n // identifier in local storage.\n // Check if we have a locally stored session ID...\n const storedSessionId = window.localStorage.getItem(KEY_CURRENT_SESSION);\n // ...if not, then there is no ID token, and so silent authentication cannot happen, but\n // if we do have a stored session ID, attempt to re-authenticate now silently.\n if (storedSessionId !== null) {\n const attemptedSilentAuthentication = await silentlyAuthenticate(\n storedSessionId,\n this.clientAuthentication,\n this,\n );\n // At this point, we know that the main window will imminently be redirected.\n // However, this redirect is asynchronous and there is no way to halt execution\n // until it happens precisely. That's why the current Promise simply does not\n // resolve.\n if (attemptedSilentAuthentication) {\n return new Promise(() => {});\n }\n }\n }\n this.tokenRequestInProgress = false;\n return sessionInfo;\n };\n\n /**\n * Register a callback function to be called when a user completes login.\n *\n * The callback is called when {@link handleIncomingRedirect} completes successfully.\n *\n * @param callback The function called when a user completes login.\n * @deprecated Prefer session.events.on(EVENTS.LOGIN, callback)\n */\n onLogin(callback: () => unknown): void {\n this.events.on(EVENTS.LOGIN, callback);\n }\n\n /**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when a user completes logout.\n * @deprecated Prefer session.events.on(EVENTS.LOGOUT, callback)\n */\n onLogout(callback: () => unknown): void {\n this.events.on(EVENTS.LOGOUT, callback);\n }\n\n /**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when an error occurs.\n * @since 1.11.0\n * @deprecated Prefer session.events.on(EVENTS.ERROR, callback)\n */\n onError(\n callback: (\n error: string | null,\n errorDescription?: string | null,\n ) => unknown,\n ): void {\n this.events.on(EVENTS.ERROR, callback);\n }\n\n /**\n * Register a callback function to be called when a session is restored.\n *\n * Note: the callback will be called with the saved value of the 'current URL'\n * at the time the session was restored.\n *\n * @param callback The function called when a user's already logged-in session is restored, e.g., after a silent authentication is completed after a page refresh.\n * @deprecated Prefer session.events.on(EVENTS.SESSION_RESTORED, callback)\n */\n onSessionRestore(callback: (currentUrl: string) => unknown): void {\n this.events.on(EVENTS.SESSION_RESTORED, callback);\n }\n\n /**\n * Register a callback that runs when the session expires and can no longer\n * make authenticated requests, but following a user logout.\n * @param callback The function that runs on session expiration.\n * @since 1.11.0\n * @deprecated Prefer session.events.on(EVENTS.SESSION_EXPIRED, callback)\n */\n onSessionExpiration(callback: () => unknown): void {\n this.events.on(EVENTS.SESSION_EXPIRED, callback);\n }\n\n private setSessionInfo(\n sessionInfo: ISessionInfo & { isLoggedIn: true },\n ): void {\n this.info.isLoggedIn = sessionInfo.isLoggedIn;\n this.info.webId = sessionInfo.webId;\n this.info.sessionId = sessionInfo.sessionId;\n this.info.expirationDate = sessionInfo.expirationDate;\n this.events.on(EVENTS.SESSION_EXTENDED, (expiresIn: number) => {\n this.info.expirationDate = Date.now() + expiresIn * 1000;\n });\n }\n}\n","//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n\nimport { Session } from \"./Session\";\n\nlet defaultSession: Session | undefined;\n\n/**\n * Obtain the {@link Session} used when not explicitly instantiating one yourself.\n *\n * When using the top-level exports {@link fetch}, {@link login}, {@link logout},\n * {@link handleIncomingRedirect}, {@link onLogin} and {@link onLogout}, these apply to an\n * implicitly-instantiated {@link Session}.\n * This function returns a reference to that Session in order to obtain e.g. the current user's\n * WebID.\n * @since 1.3.0\n */\nexport function getDefaultSession(): Session {\n if (typeof defaultSession === \"undefined\") {\n defaultSession = new Session();\n }\n return defaultSession;\n}\n\n/**\n * This function's signature is equal to `window.fetch`, but if the current user is authenticated\n * (see [[login]] and [[handleIncomingRedirect]]), requests made using it will include that user's\n * credentials. If not, this will behave just like the regular `window.fetch`.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch}\n * @since 1.3.0\n */\n/* eslint-disable-next-line no-shadow */\nexport const fetch: Session[\"fetch\"] = (...args) => {\n const session = getDefaultSession();\n return session.fetch(...args);\n};\n\n/**\n * Triggers the login process. Note that this method will redirect the user away from your app.\n *\n * @param options Parameter to customize the login behaviour. In particular, two options are mandatory: `options.oidcIssuer`, the user's identity provider, and `options.redirectUrl`, the URL to which the user will be redirected after logging in their identity provider.\n * @returns This method should redirect the user away from the app: it does not return anything. The login process is completed by [[handleIncomingRedirect]].\n * @since 1.3.0\n */\nexport const login: Session[\"login\"] = (...args) => {\n const session = getDefaultSession();\n return session.login(...args);\n};\n\n/**\n * Logs the user out of the application.\n *\n * By default this does not log the user out of their Solid identity provider.\n * In order to do so, you must set the logoutType to `idp`. For usage details\n * see {@link Session.logout}.\n *\n * @since 1.3.0\n */\nexport const logout: Session[\"logout\"] = (...args) => {\n const session = getDefaultSession();\n return session.logout(...args);\n};\n\n/**\n * Completes the login process by processing the information provided by the Solid identity provider through redirect.\n *\n * @param url The URL of the page handling the redirect, including the query parameters — these contain the information to process the login.\n * @since 1.3.0\n */\nexport const handleIncomingRedirect: Session[\"handleIncomingRedirect\"] = (\n ...args\n) => {\n const session = getDefaultSession();\n return session.handleIncomingRedirect(...args);\n};\n\n/**\n * Register a callback function to be called when a user completes login.\n *\n * The callback is called when {@link handleIncomingRedirect} completes successfully.\n * @since 1.3.0\n *\n * @param callback The function called when a user completes login.\n * @deprecated Prefer events.on(EVENTS.LOGIN, callback)\n\n */\nexport const onLogin: Session[\"onLogin\"] = (...args) => {\n const session = getDefaultSession();\n return session.onLogin(...args);\n};\n\n/**\n * Register a callback function to be called when a user logs out:\n *\n * @param callback The function called when a user completes logout.\n * @since 1.3.0\n * @deprecated Prefer events.on(EVENTS.LOGOUT, callback)\n *\n */\nexport const onLogout: Session[\"onLogout\"] = (...args) => {\n const session = getDefaultSession();\n return session.onLogout(...args);\n};\n\n/**\n * Register a callback function to be called when a session is restored:\n *\n * @param callback The function called when a session is restored.\n * @since 1.3.0\n * @deprecated Prefer events.on(EVENTS.SESSION_RESTORED, callback)\n */\nexport const onSessionRestore: Session[\"onSessionRestore\"] = (...args) => {\n const session = getDefaultSession();\n return session.onSessionRestore(...args);\n};\n\n/**\n * {@link SessionEventEmitter} instance to subscribe to events by the default session.\n *\n * @since 1.14.0\n */\nexport const events = (): Session[\"events\"] => {\n return getDefaultSession().events;\n};\n"],"names":["ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","EventEmitter","init","this","eventsModule","exports","once","emitter","name","Promise","resolve","reject","errorListener","err","removeListener","resolver","slice","arguments","eventTargetAgnosticAddListener","handler","flags","on","addErrorHandlerIfEventEmitter","_events","undefined","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","type","prepend","m","events","existing","warning","create","newListener","emit","unshift","push","length","warned","w","Error","String","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","Array","i","unwrapListeners","arrayClone","listenerCount","n","copy","addEventListener","wrapListener","arg","removeEventListener","defineProperty","enumerable","get","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","fetch","Response","Request","Headers","globalThis","crypto$1","crypto","isCryptoKey","CryptoKey","encoder","TextEncoder","decoder","TextDecoder","buffers","size","reduce","acc","buf","Uint8Array","forEach","buffer","encode","input","unencoded","fromCharCode","subarray","btoa","join","encodeBase64","replace","decode","encoded","binary","atob","bytes","charCodeAt","decodeBase64","_a","JOSEError","code","constructor","super","captureStackTrace","JWTClaimValidationFailed","claim","reason","JWTExpired","JOSEAlgNotAllowed","JOSENotSupported","JWSInvalid","JWTInvalid","JWSSignatureVerificationFailed","unusable","prop","isAlgorithm","algorithm","getHashLength","hash","parseInt","checkSigCryptoKey","alg","usages","expected","getNamedCurve","namedCurve","some","includes","msg","last","checkUsage","actual","types","getRandomValues","invalidKeyInput","withAlg","isKeyLike","isDisjoint","headers","sources","filter","Boolean","header","parameters","parameter","has","add","Set","isObject","toString","proto","checkKeyLength","startsWith","modulusLength","asKeyObject","async","jwk","_b","keyUsages","kty","d","crv","subtleMapping","rest","ext","key_ops","subtle","importKey","base64url","k","keyData","use","checkKeyType","usage","test","symmetricTypeCheck","asymmetricTypeCheck","validateCrit","Err","recognizedDefault","recognizedOption","protectedHeader","joseHeader","crit","isArray","recognized","Map","entries","validateAlgorithms","option","algorithms","s","keyToJWK$1","extractable","exportKey","exportJWK","keyToJWK","subtleDsa","saltLength","getCryptoKey","verify","signature","data","cryptoKey","getVerifyKey","subtleAlgorithm","compactVerify","jws","options","payload","split","verified","protected","parsedProt","JSON","parse","b64","resolvedKey","_c","_d","result","unprotectedHeader","flattenedVerify","epoch","date","Math","floor","getTime","day","hour","REGEX","secs","str","matched","exec","parseFloat","toLowerCase","round","minute","normalizeTyp","jwtPayload","encodedPayload","typ","requiredClaims","issuer","subject","audience","maxTokenAge","reverse","iss","sub","audPayload","aud","audOption","tolerance","clockTolerance","currentDate","now","Date","iat","nbf","exp","age","FlattenedSign","_payload","setProtectedHeader","_protectedHeader","setUnprotectedHeader","_unprotectedHeader","sign","stringify","getSignKey","CompactSign","_flattened","ProduceJWT","setIssuer","setSubject","setAudience","setJti","jwtId","jti","setNotBefore","setExpirationTime","setIssuedAt","SignJWT","sig","getModulusLengthOption","generateKeyPair","publicExponent","generateKey","generate","rnds8","rng","byteToHex","native","randomUUID","v4","offset","rnds","random","unsafeStringify","SOLID_CLIENT_AUTHN_KEY_PREFIX","PREFERRED_SIGNING_ALG","EVENTS","ERROR","LOGIN","LOGOUT","NEW_REFRESH_TOKEN","SESSION_EXPIRED","SESSION_EXTENDED","SESSION_RESTORED","TIMEOUT_SET","DEFAULT_SCOPES","AggregateHandler","handleables","getProperHandler","params","canHandleList","all","map","handleable","canHandle","handle","param","getWebidFromTokenPayload","idToken","jwksIri","issuerIri","clientId","jwksResponse","status","statusText","json","e","fetchJwks","verifiedPayload","jwt","jwtVerify","octAsKeyObject","decodeBase64URL","oth","importJWK","stack","webid","URL","isValidRedirectUrl","redirectUrl","urlObject","noReservedQuery","searchParams","noHash","AuthorizationCodeWithPkceOidcHandlerBase","storageUtility","redirector","oidcLoginOptions","issuerConfiguration","grantTypesSupported","indexOf","handleRedirect","codeVerifier","targetUrl","setForUser","sessionId","dpop","redirect","GeneralLogoutHandler","sessionInfoManager","userId","clear","IRpLogoutHandler","logoutType","toLogoutUrl","IWaterfallLogoutHandler","handlers","getUnauthenticatedSession","isLoggedIn","storage","deleteAllUserData","secure","SessionInfoManagerBase","update","_sessionId","_options","_","getAll","register","getRegisteredSessionIdAll","clearAll","maybeBuildRpInitiatedLogout","endSessionEndpoint","idTokenHint","postLogoutUrl","postLogoutRedirectUri","url","append","getEndSessionUrl","isValidUrl","handleRegistration","issuerConfig","clientRegistrar","clientType","scopesSupported","determineClientType","getClient","clientName","clientSecret","globalFetch","request","ClientAuthentication$1","loginHandler","redirectHandler","logoutHandler","issuerConfigFetcher","logout","boundLogout","getSessionInfo","getAllSessionInfo","loadOidcContextFromStorage","configFetcher","storedRedirectIri","getForUser","errorIfNull","deleteForUser","fetchConfig","StorageUtility","secureStorage","insecureStorage","getKey","getUserData","stored","setUserData","delete","userData","values","InMemoryStorage","ConfigurationError","NotImplementedError","methodName","InvalidResponseError","missingFields","OidcProviderError","errorDescription","normalizeHTU","audienceUrl","pathname","origin","createDpopHeader","method","dpopKey","htu","htm","toUpperCase","publicKey","privateKey","DEFAULT_EXPIRATION_TIME_SECONDS","buildAuthenticatedHeaders","authToken","defaultOptions","buildDpopFetchOptions","makeAuthenticatedRequest","unauthFetch","accessToken","defaultRequestInit","computeRefreshDelay","expiresIn","buildAuthenticatedFetch","latestTimeout","currentAccessToken","currentRefreshOptions","refreshOptions","proactivelyRefreshToken","refreshedAccessToken","refreshToken","eventEmitter","tokenSet","tokenRefresher","refresh","refreshAccessToken","clearTimeout","setTimeout","expirationTimeout","requestInit","response","failedButNotExpectedAuthError","ok","statusCode","StorageUtilityBrowser","r","t","l","c","o","Symbol","toStringTag","__esModule","default","hasOwnProperty","p","configurable","writable","debug","info","Log","reset","from","setInterval","clearInterval","Global","_testing","setXMLHttpRequest","location","window","localStorage","sessionStorage","XMLHttpRequest","MetadataService","a","JsonService","_settings","_jsonService","resetSigningKeys","signingKeys","getMetadata","metadata","metadataUrl","getJson","then","metadataSeed","assign","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","_metadataUrl","authority","UrlUtility","addQueryParam","encodeURIComponent","parseUrlFragment","href","lastIndexOf","substr","u","h","decodeURIComponent","JoseUtil","KeyUtil","X509","hextob64u","b64tohex","AllowedSigningAlgs","OidcClientSettings","iterator","v","client_id","y","client_secret","response_type","S","scope","b","redirect_uri","F","post_logout_redirect_uri","E","client_authentication","x","A","prompt","display","P","max_age","C","ui_locales","T","acr_values","resource","I","response_mode","D","filterProtocolClaims","L","N","loadUserInfo","U","B","staleStateAge","O","j","clockSkew","M","H","clockService","V","ClockService","K","userInfoJwtIssuer","q","J","mergeClaims","W","z","stateStore","Y","WebStorageStateStore","G","ResponseValidatorCtor","X","ResponseValidator","$","MetadataServiceCtor","Q","Z","extraQueryParams","tt","et","extraTokenParams","rt","_authority","_metadata","_metadataSeed","_signingKeys","_client_id","_client_secret","_response_type","_scope","_redirect_uri","_post_logout_redirect_uri","_client_authentication","_prompt","_display","_max_age","_ui_locales","_acr_values","_resource","_response_mode","_filterProtocolClaims","_loadUserInfo","_staleStateAge","_clockSkew","_clockService","_userInfoJwtIssuer","_mergeClaims","_stateStore","_validator","_metadataService","_extraQueryParams","_extraTokenParams","getEpochTime","prefix","store","_store","_prefix","setItem","getItem","remove","removeItem","getAllKeys","_contentTypes","_XMLHttpRequest","_jwtHandler","open","onload","getResponseHeader","find","responseText","onerror","setRequestHeader","send","postForm","SigninRequest","f","g","id_token_hint","login_hint","request_uri","request_type","skipUserInfo","isOidc","isCode","SigninState","nonce","code_verifier","id","code_challenge","isOAuth","State","created","_id","_data","_created","_request_type","toStorageString","fromStorageString","clearStaleState","OidcClient","createSigninRequest","readSigninResponseState","SigninResponse","processSigninResponse","validateSigninResponse","createSignoutRequest","SignoutRequest","readSignoutResponseState","SignoutResponse","ErrorResponse","processSignoutResponse","validateSignoutResponse","settings","validator","metadataService","TokenClient","exchangeCode","grant_type","exchangeRefreshToken","refresh_token","error_description","error_uri","session_state","ReferenceError","setPrototypeOf","__proto__","_nonce","_code_verifier","hashString","_code_challenge","hexToBase64Url","_skipUserInfo","msCrypto","User","id_token","access_token","token_type","profile","expires_at","expires_in","AccessTokenEvents","accessTokenExpiringNotificationTime","accessTokenExpiringTimer","Timer","accessTokenExpiredTimer","_accessTokenExpiringNotificationTime","_accessTokenExpiring","_accessTokenExpired","load","cancel","unload","addAccessTokenExpiring","addHandler","removeAccessTokenExpiring","removeHandler","addAccessTokenExpired","removeAccessTokenExpired","Event","_name","_callbacks","findIndex","splice","raise","SessionMonitor","CheckSessionIFrame","timer","_userManager","_CheckSessionIFrameCtor","_timer","addUserLoaded","_start","addUserUnloaded","_stop","getUser","monitorAnonymousSession","querySessionStatus","sid","catch","_sub","_sid","_checkSessionIFrame","start","_checkSessionInterval","_stopCheckSessionOnError","_callback","stop","_raiseUserSessionChanged","_raiseUserSignedOut","_raiseUserSignedIn","checkSessionInterval","stopCheckSessionOnError","_url","_interval","_stopOnError","_frame_origin","_frame","document","createElement","style","visibility","width","height","src","body","appendChild","_boundMessageEvent","_message","source","contentWindow","_session_state","postMessage","TokenRevocationClient","_XMLHttpRequestCtor","revoke","_revoke","CordovaPopupWindow","_promise","_resolve","_reject","features","popupWindowFeatures","popupWindowTarget","startUrl","_isInAppBrowserInstalled","navigate","cordova","_error","require","_popup","InAppBrowser","_exitCallbackEvent","_exitCallback","_loadStartCallbackEvent","_loadStartCallback","promise","_success","_cleanup","close","Version","InMemoryWebStorage","UserManager","CordovaPopupNavigator","CordovaIFrameNavigator","UserInfoService","_userInfoService","_joseUtil","_tokenClient","_processSigninParams","_validateTokens","_processClaims","isOpenIdConnect","getClaims","_processCode","_validateIdTokenAndAccessToken","_validateIdToken","_validateIdTokenAttributes","validateJwtAttributes","_validateAccessToken","_getSigningKeyForJwt","kid","_filterByAlg","_getSigningKeyForJwtWithSingleRetry","parseJwt","validateJwt","at_hash","_getClaimsFromJwt","KEYUTIL","userAgent","lib","Base","extend","mixIn","$super","clone","WordArray","words","sigBytes","clamp","ceil","enc","Hex","Latin1","Utf8","escape","unescape","BufferedBlockAlgorithm","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","high","low","toX32","Base64","_map","charAt","sqrt","pow","SHA256","_hash","HmacSHA256","SHA512","nt","HmacSHA512","SHA384","HmacSHA384","substring","fromNumber","fromString","appName","am","DB","DM","DV","FV","F1","F2","fromInt","mp","invDigit","mpl","mph","um","mt2","r2","q3","ONE","dlShiftTo","mu","divide","convert","compareTo","mod","revert","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","ZERO","subTo","copyTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","negate","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","Pe","Ce","Te","Tt","Rt","It","Re","chunkSize","LN2","log","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","subtract","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","toByteArray","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","multiply","remainder","divideAndRemainder","modInverse","gcd","square","next","Ie","De","Le","appVersion","Ne","Ue","Be","Oe","je","Me","dmp1","dmq1","coeff","He","Ve","curve","zinv","Ke","fromBigInteger","infinity","doPublic","setPublic","isPublic","isPrivate","encrypt","encryptOAEP","Sr","MessageDigest","Util","getCanonicalAlgName","Lr","hashHex","Nr","toBigInteger","getX","getY","isInfinity","twice","getInfinity","multiplyTwo","getQ","getA","getB","decodePointHex","getByteLength","getEncoded","toByteArrayUnsigned","decodeFrom","decodeFromHex","add2D","twice2D","valueOf","multiply2D","isOnCurve","validate","_r","RegExp","match","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","getPEMStringFromHex","jr","newObject","ASN1Object","DERBoolean","DERInteger","DERBitString","DEROctetString","DERNull","DERObjectIdentifier","DEREnumerated","DERUTF8String","DERNumericString","DERPrintableString","DERTeletexString","DERIA5String","DERUTCTime","DERGeneralizedTime","DERVisibleString","DERBMPString","DERSequence","DERSet","DERTaggedObject","array","tag","explicit","obj","jsonToASN1HEX","getEncodedHex","oidHexToInt","oidIntToHex","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","setByParam","tlv","DERAbstractString","superclass","getString","setString","Ir","setStringHex","hex","Zr","DERAbstractTime","localDateToUTC","getTimezoneOffset","formatDate","zeroPadding","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","kr","setByDateValue","UTC","setByDate","DERAbstractStructured","setByASN1ObjectArray","asn1Array","appendASN1Object","setByBigInteger","setByInteger","setValueHex","bigint","int","setHexValueIncludingUnusedBits","setUnusedBitsAndHexValue","setByBinaryString","setByBooleanArray","newFalseArray","bin","setValueOidString","setValueName","x509","OID","name2oid","setValueNameOrOid","oid","withMillis","millis","sortFlag","sort","sortflag","isExplicit","asn1Object","setASN1Object","tage","tagi","br","wr","Fr","Er","xr","Ar","Pr","Cr","Tr","Rr","Kr","Gr","Dr","qr","Ur","Br","Or","Mr","Hr","Vr","Jr","repeat","Wr","zr","Yr","Xr","$r","getLblen","getL","getVblen","getVidx","getV","getTLV","getTLVblen","getNextSiblingIdx","getChildIdx","getNthChildIdx","getIdxbyList","getIdxbyListEx","isContextTag","getTLVbyList","getTLVbyListEx","getVbyList","getVbyListEx","getInt","getOID","Qr","getOIDName","oid2name","hextooidstr","dump","ommit_long_octet","isASN1HEX","oidname","x509ExtName","checkStrictDER","lang","isHex","utf8tob64u","b64utoutf8","isInteger","isBase64","isBase64URL","isIntegerArray","isPrintable","isIA5","isMail","DIGESTINFOHEAD","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","DEFAULTPROVIDER","hmacmd5","hmacsha1","hmacsha224","hmacsha256","hmacsha384","hmacsha512","hmacripemd160","MD5withRSA","SHA1withRSA","SHA224withRSA","SHA256withRSA","SHA384withRSA","SHA512withRSA","RIPEMD160withRSA","MD5withECDSA","SHA1withECDSA","SHA224withECDSA","SHA256withECDSA","SHA384withECDSA","SHA512withECDSA","RIPEMD160withECDSA","SHA1withDSA","SHA224withDSA","SHA256withDSA","MD5withRSAandMGF1","SHAwithRSAandMGF1","SHA1withRSAandMGF1","SHA224withRSAandMGF1","SHA256withRSAandMGF1","SHA384withRSAandMGF1","SHA512withRSAandMGF1","RIPEMD160withRSAandMGF1","CRYPTOJSMESSAGEDIGESTNAME","MD5","SHA1","SHA224","RIPEMD160","getDigestInfoHex","getPaddedDigestInfoHex","digestString","digestHex","sha256Hex","sha512Hex","isKey","DSA","ECDSA","prov","SECURERANDOMGEN","getRandomHexOfNbytes","getRandomBigIntegerOfNbytes","getRandomHexOfNbits","getRandomBigIntegerOfNbits","getRandomBigIntegerZeroToMax","getRandomBigIntegerMinToMax","setAlgAndProvider","md","updateString","updateHex","digest","sjcl","codec","toBits","fromBits","algName","provName","HASHLENGTH","Mac","algProv","mac","pass","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64u","Signature","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","tn","prvKey","pubKey","sHashHex","ecprvhex","eccurvename","prv","hSign","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","signString","signHex","ecpubhex","pub","verifyWithMessageHashPSS","verifyWithMessageHash","algProvName","initParams","psssaltlen","prvkeypem","prvkeypas","Cipher","getAlgByKeyAndName","decrypt","decryptOAEP","oidhex2name","ECParameterDB","getName","getBigRandom","setNamedCurve","ecparams","getByName","prvKeyHex","pubKeyHex","curveName","setPrivateKeyHex","setPublicKeyHex","getPublicKeyXYHex","keylen","getShortNISTPCurveName","generateKeyPairHex","biRSSigToASN1Sig","fromByteArrayUnsigned","serializeSig","verifyHex","parseSigHex","verifyRaw","Bitcoin","parseSig","toByteArraySigned","parseSigCompact","readPKCS5PrvKeyHex","readPKCS8PrvKeyHex","readPKCS8PubKeyHex","readCertPubKeyHex","parseSigHexInHexRS","asn1SigToConcatSig","concatSigToASN1Sig","hexRSSigToASN1Sig","regist","AES","iv","ciphertext","proc","eproc","ivlen","TripleDES","DES","cipher","ivsalt","keyhex","ivhex","version","parsePKCS5PEM","getKeyAndUnusedIvByPasscodeAndIvsalt","decryptKeyB64","getDecryptedKeyHex","getEncryptedPKCS5PEMFromPrvKeyHex","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","PBKDF2","keySize","iterations","_getPlainPKCS8HexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algparam","algoid","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","en","rn","nn","AlgorithmIdentifier","PSSNAME2ASN1TLV","HEX2STAG","foffset","aExtInfo","getVersion","getSerialNumberHex","getSignatureAlgorithmField","getAlgorithmIdentifierName","getX500Name","getIssuerHex","getIssuerString","getSubject","getSubjectHex","getSubjectString","getNotBefore","getNotAfter","getPublicKeyHex","getPublicKeyIdx","getPublicKeyContentIdx","getPublicKey","getSignatureAlgorithmName","getSignatureValueHex","verifySignature","parseExt","critical","vidx","getExtInfo","getExtBasicConstraints","extname","cA","pathLen","getExtKeyUsage","names","getExtKeyUsageString","getExtKeyUsageBin","KEYUSAGE_NAME","getExtSubjectKeyIdentifier","getExtAuthorityKeyIdentifier","getGeneralNames","dn","sn","getExtExtKeyUsage","getExtExtKeyUsageName","getExtSubjectAltName","getExtIssuerAltName","getGeneralName","rfc822","dns","uri","ip","getExtSubjectAltName2","hex2dn","getExtCRLDistributionPoints","getDistributionPoint","dpname","getDistributionPointName","full","getExtCRLDistributionPointsURI","getExtAIAInfo","ocsp","caissuer","getExtAuthorityInfoAccess","getExtCertificatePolicies","getPolicyInformation","policyoid","getPolicyQualifierInfo","cps","unotice","getUserNotice","exptext","getDisplayText","getExtCRLNumber","num","getExtCRLReason","getExtOcspNonce","getExtOcspNoCheck","getExtAdobeTimeStamp","reqauth","getX500NameRule","ds","getX500NameArray","dnarraytostr","getRDN","getAttrTypeAndValue","oid2atype","readCertPEM","readCertHex","getParam","serial","sigalg","notbefore","notafter","sbjpubkey","getExtParamArray","sighex","getExtParam","extn","findExt","updateExtCDPFullURI","updateExtAIAOCSP","updateExtAIACAIssuer","getInfo","dname","xy","dp","dq","co","qi","setPrivateEx","setPrivate","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","prvKeyObj","pubKeyObj","getPEM","SubjectPublicKeyInfo","seq","octstr","bitstr","null","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getKeyID","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","doPrivate","signPSS","verifyPSS","SALT_LEN_HLEN","SALT_LEN_MAX","SALT_LEN_RECOVER","hex2rdn","hex2attrTypeValue","getPublicKeyInfoPropOfCertPEM","JWS","isSafeJSONString","parseJWS","parsedJWS","sigvalH","headB64U","payloadB64U","sigvalB64U","si","sigvalBI","headS","payloadS","readSafeJSONString","jwsalg2sigalg","headerObj","payloadObj","headerPP","payloadPP","sigHex","verifyJWT","inArray","includedArray","IntDate","getNow","verifyAt","gracePeriod","HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","PS256","PS384","PS512","none","getEncodedSignatureValueFromJWS","getJWKthumbprint","getZulu","intDate2UTCString","toUTCString","intDate2Zulu","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","SecureRandom","rng_seed_time","BigInteger","RSAKey","EDSA","an","un","cn","hn","ln","ASN1HEX","CryptoJS","b64toBA","stoBA","BAtos","BAtohex","stohex","stob64","stob64u","b64utos","b64tob64u","b64utob64","hex2b64","b64utohex","utf8tob64","b64toutf8","utf8tohex","hextoutf8","hextorstr","rstrtohex","hextob64","hextob64nl","b64nltohex","hextopem","pemtohex","hextoArrayBuffer","ArrayBuffer","DataView","setUint8","ArrayBuffertohex","byteLength","getUint8","zulutomsec","zulutosec","zulutodate","datetozulu","getUTCMilliseconds","uricmptohex","hextouricmp","ipv6tohex","hextoipv6","hextoip","iptohex","encodeURIComponentAll","newline_toUnix","newline_toDos","hextoposhex","intarystrtohex","strdiffidx","xn","An","kn","Pn","Buffer","TYPED_ARRAY_SUPPORT","isEncoding","write","isBuffer","isView","readUInt16BE","fromByteArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","kMaxLength","poolSize","_augment","species","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","isFinite","toJSON","_arr","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","trim","NaN","x5c","_validateJwt","azp","scopes","SilentRenewService","UserManagerSettings","UserManagerEvents","_silentRenewService","automaticSilentRenew","startSilentRenew","monitorSession","_sessionMonitor","_tokenRevocationClient","_loadUser","removeUser","storeUser","signinRedirect","useReplaceToNavigate","_signinStart","_redirectNavigator","signinRedirectCallback","_signinEnd","signinPopup","popup_redirect_uri","_signin","_popupNavigator","signinPopupCallback","_signinCallback","signinSilent","_useRefreshToken","includeIdTokenInSilentRenew","validateSubOnSilentRenew","current_sub","_signinSilentIframe","_validateIdTokenFromTokenRefreshToken","auth_time","silent_redirect_uri","_iframeNavigator","silentRequestTimeout","signinSilentCallback","signinCallback","signoutCallback","signoutRedirectCallback","signoutPopupCallback","query_status_response_type","prepare","callback","signoutRedirect","_signoutStart","_signoutEnd","signoutPopup","popup_post_logout_redirect_uri","_signout","revokeAccessTokenOnSignout","_revokeInternal","revokeAccessToken","_revokeAccessTokenInternal","_revokeRefreshTokenInternal","stopSilentRenew","_userStore","_userStoreKey","redirectNavigator","popupNavigator","iframeNavigator","userStore","RedirectNavigator","PopupNavigator","IFrameNavigator","_popup_redirect_uri","_popup_post_logout_redirect_uri","_popupWindowFeatures","_popupWindowTarget","_silent_redirect_uri","_silentRequestTimeout","_automaticSilentRenew","_validateSubOnSilentRenew","_includeIdTokenInSilentRenew","_monitorSession","_monitorAnonymousSession","_query_status_response_type","_revokeAccessTokenOnSignout","PopupWindow","notifyOpener","_checkForPopupClosedTimer","_checkForPopupClosed","focus","closed","opener","IFrameWindow","notifyParent","_timeout","removeChild","_origin","parent","protocol","host","_userLoaded","_userUnloaded","_silentRenewError","_userSignedIn","_userSignedOut","_userSessionChanged","removeUserLoaded","removeUserUnloaded","addSilentRenewError","removeSilentRenewError","_raiseSilentRenewError","addUserSignedIn","removeUserSignedIn","addUserSignedOut","removeUserSignedOut","addUserSessionChanged","removeUserSessionChanged","_nowFunc","expiration","_timerHandle","_expiration","_tokenExpiring","registerClient","registrationEndpoint","idTokenSigningAlgValuesSupported","signingAlg","supported","preferred","determineSigningAlg","config","client_name","application_type","redirect_uris","subject_type","token_endpoint_auth_method","id_token_signed_response_alg","grant_types","registerResponse","responseBody","validateRegistrationResponse","idTokenSignedResponseAlg","processErrorResponse","text","hasErrorDescription","validateTokenEndpointResponse","tokenResponse","hasErrorUri","hasAccessToken","hasIdToken","hasTokenType","hasExpiresIn","getTokens","client","grantType","tokenEndpoint","validatePreconditions","dpopKeyPair","generateDpopKeyPair","DPoP","Authorization","requestBody","tokenRequestInit","URLSearchParams","rawTokenResponse","fetch$1","webId","jwksUri","dpopHeader","authHeader","rawResponse","validatedResponse","ClientAuthentication","ClientAuthenticationBase","login","cleanedUrl","removeOidcQueryParam","validateCurrentSession","currentSessionId","sessionInfo","clientAppId","handleIncomingRedirect","redirectInfo","getLogoutUrl","cleanUrlAfterRedirect","expirationDate","cleanedUpUrl","history","replaceState","hasIssuer","oidcIssuer","hasRedirectUrl","OidcLoginHandler","oidcHandler","clientRegistration","OidcOptions","tokenType","AuthorizationCodeWithPkceOidcHandler","oidcOptions","oidcClientLibrary","signingRequest","issuerConfigKeyMap","toKey","convertToUrl","authorization_endpoint","token_endpoint","userinfo_endpoint","jwks_uri","registration_endpoint","end_session_endpoint","scopes_supported","response_types_supported","response_modes_supported","grant_types_supported","acr_values_supported","subject_types_supported","id_token_signing_alg_values_supported","id_token_encryption_alg_values_supported","id_token_encryption_enc_values_supported","userinfo_signing_alg_values_supported","userinfo_encryption_alg_values_supported","userinfo_encryption_enc_values_supported","request_object_signing_alg_values_supported","request_object_encryption_alg_values_supported","request_object_encryption_enc_values_supported","token_endpoint_auth_methods_supported","token_endpoint_auth_signing_alg_values_supported","display_values_supported","claim_types_supported","claims_supported","service_documentation","claims_locales_supported","ui_locales_supported","claims_parameter_supported","request_parameter_supported","request_uri_parameter_supported","require_request_uri_registration","op_policy_uri","op_tos_uri","IssuerConfigFetcher","getLocalStorageKey","openIdConfigUrl","endsWith","issuerConfigRequestBody","uniFetch","parsedConfig","processConfig","clearBase","myStorage","itemsToRemove","clearOidcPersistentStorage","SessionInfoManager","token","clientAppSecret","FallbackRedirectHandler","_redirectUrl","AuthCodeRedirectHandler","tokerRefresher","myUrl","oauthState","storedSessionId","isDpop","tokens","tokenCreatedAt","getDpopToken","signinResponse","getBearerToken","authFetch","AggregateRedirectHandler","redirectHandlers","BrowserStorage","Redirector","redirectByReplacingState","ClientRegistrar","storedClientId","storedClientSecret","registeredClient","infoToSave","ErrorOidcHandler","errorUrl","errorDescriptionUrl","TokenRefresher","oidcContext","clientInfo","getClientAuthenticationWithDependencies","dependencies","inMemoryStorage","KEY_CURRENT_SESSION","KEY_CURRENT_URL","Session","sessionOptions","toExclude","errorMessage","tokenRequestInProgress","clientAuthentication","internalLogout","emitSignal","inputOptions","setSessionInfo","currentUrl","restorePreviousSession","attemptedSilentAuthentication","clientAuthn","session","storedSessionInfo","silentlyAuthenticate","Proxy","onLogin","onLogout","onError","onSessionRestore","onSessionExpiration","defaultSession","getDefaultSession"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,43]}