{"version":3,"file":"coreweb/mntv-vend-oidc.a680140e.js","mappings":"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","sources":["/app/apps/coreweb/node_modules/oidc-client/lib/oidc-client.min.js"],"sourcesContent":["!function t(e, r) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = r();else if (\"function\" == typeof define && define.amd) define([], r);else {\n var n = r();\n\n for (var i in n) (\"object\" == typeof exports ? exports : e)[i] = n[i];\n }\n}(this, function () {\n return function (t) {\n var e = {};\n\n function r(n) {\n if (e[n]) return e[n].exports;\n var i = e[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return t[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n\n return r.m = t, r.c = e, r.d = function (t, e, n) {\n r.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, r.t = function (t, e) {\n if (1 & e && (t = r(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var i in t) r.d(n, i, function (e) {\n return t[e];\n }.bind(null, i));\n return n;\n }, r.n = function (t) {\n var e = t && t.__esModule ? function e() {\n return t.default;\n } : function e() {\n return t;\n };\n return r.d(e, \"a\", e), e;\n }, r.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, r.p = \"\", r(r.s = 22);\n }([function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }();\n\n var i = {\n debug: function t() {},\n info: function t() {},\n warn: function t() {},\n error: function t() {}\n },\n o = void 0,\n s = void 0;\n (e.Log = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.reset = function t() {\n s = 3, o = i;\n }, t.debug = function t() {\n if (s >= 4) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) r[n] = arguments[n];\n\n o.debug.apply(o, Array.from(r));\n }\n }, t.info = function t() {\n if (s >= 3) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) r[n] = arguments[n];\n\n o.info.apply(o, Array.from(r));\n }\n }, t.warn = function t() {\n if (s >= 2) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) r[n] = arguments[n];\n\n o.warn.apply(o, Array.from(r));\n }\n }, t.error = function t() {\n if (s >= 1) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) r[n] = arguments[n];\n\n o.error.apply(o, Array.from(r));\n }\n }, n(t, null, [{\n key: \"NONE\",\n get: function t() {\n return 0;\n }\n }, {\n key: \"ERROR\",\n get: function t() {\n return 1;\n }\n }, {\n key: \"WARN\",\n get: function t() {\n return 2;\n }\n }, {\n key: \"INFO\",\n get: function t() {\n return 3;\n }\n }, {\n key: \"DEBUG\",\n get: function t() {\n return 4;\n }\n }, {\n key: \"level\",\n get: function t() {\n return s;\n },\n set: function t(e) {\n if (!(0 <= e && e <= 4)) throw new Error(\"Invalid log level\");\n s = e;\n }\n }, {\n key: \"logger\",\n get: function t() {\n return o;\n },\n set: function t(e) {\n if (!e.debug && e.info && (e.debug = e.info), !(e.debug && e.info && e.warn && e.error)) throw new Error(\"Invalid logger\");\n o = e;\n }\n }]), t;\n }()).reset();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }();\n\n var i = {\n setInterval: function (t) {\n function e(e, r) {\n return t.apply(this, arguments);\n }\n\n return e.toString = function () {\n return t.toString();\n }, e;\n }(function (t, e) {\n return setInterval(t, e);\n }),\n clearInterval: function (t) {\n function e(e) {\n return t.apply(this, arguments);\n }\n\n return e.toString = function () {\n return t.toString();\n }, e;\n }(function (t) {\n return clearInterval(t);\n })\n },\n o = !1,\n s = null;\n\n e.Global = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t._testing = function t() {\n o = !0;\n }, t.setXMLHttpRequest = function t(e) {\n s = e;\n }, n(t, null, [{\n key: \"location\",\n get: function t() {\n if (!o) return location;\n }\n }, {\n key: \"localStorage\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return localStorage;\n }\n }, {\n key: \"sessionStorage\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return sessionStorage;\n }\n }, {\n key: \"XMLHttpRequest\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return s || XMLHttpRequest;\n }\n }, {\n key: \"timer\",\n get: function t() {\n if (!o) return i;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.MetadataService = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(7);\n\n function s(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var a = \".well-known/openid-configuration\";\n\n e.MetadataService = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.JsonService;\n if (s(this, t), !e) throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r([\"application/jwk-set+json\"]);\n }\n\n return t.prototype.resetSigningKeys = function t() {\n this._settings = this._settings || {}, this._settings.signingKeys = void 0;\n }, t.prototype.getMetadata = function t() {\n var e = this;\n 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) {\n i.Log.debug(\"MetadataService.getMetadata: json received\");\n var r = e._settings.metadataSeed || {};\n return e._settings.metadata = Object.assign({}, r, t), e._settings.metadata;\n })) : (i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"), Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")));\n }, t.prototype.getIssuer = function t() {\n return this._getMetadataProperty(\"issuer\");\n }, t.prototype.getAuthorizationEndpoint = function t() {\n return this._getMetadataProperty(\"authorization_endpoint\");\n }, t.prototype.getUserInfoEndpoint = function t() {\n return this._getMetadataProperty(\"userinfo_endpoint\");\n }, t.prototype.getTokenEndpoint = function t() {\n var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n return this._getMetadataProperty(\"token_endpoint\", e);\n }, t.prototype.getCheckSessionIframe = function t() {\n return this._getMetadataProperty(\"check_session_iframe\", !0);\n }, t.prototype.getEndSessionEndpoint = function t() {\n return this._getMetadataProperty(\"end_session_endpoint\", !0);\n }, t.prototype.getRevocationEndpoint = function t() {\n return this._getMetadataProperty(\"revocation_endpoint\", !0);\n }, t.prototype.getKeysEndpoint = function t() {\n return this._getMetadataProperty(\"jwks_uri\", !0);\n }, t.prototype._getMetadataProperty = function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];\n return i.Log.debug(\"MetadataService.getMetadataProperty for: \" + e), this.getMetadata().then(function (t) {\n if (i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"), void 0 === t[e]) {\n if (!0 === r) return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \" + e);\n throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \" + e), new Error(\"Metadata does not contain property \" + e);\n }\n\n return t[e];\n });\n }, t.prototype.getSigningKeys = function t() {\n var e = this;\n 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) {\n return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\", t), e._jsonService.getJson(t).then(function (t) {\n 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\");\n return e._settings.signingKeys = t.keys, e._settings.signingKeys;\n });\n });\n }, n(t, [{\n key: \"metadataUrl\",\n get: function t() {\n 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;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UrlUtility = void 0;\n var n = r(0),\n i = r(1);\n\n e.UrlUtility = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.addQueryParam = function t(e, r, n) {\n return e.indexOf(\"?\") < 0 && (e += \"?\"), \"?\" !== e[e.length - 1] && (e += \"&\"), e += encodeURIComponent(r), e += \"=\", e += encodeURIComponent(n);\n }, t.parseUrlFragment = function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"#\",\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.Global;\n \"string\" != typeof e && (e = o.location.href);\n var s = e.lastIndexOf(r);\n s >= 0 && (e = e.substr(s + 1)), \"?\" === r && (s = e.indexOf(\"#\")) >= 0 && (e = e.substr(0, s));\n\n 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), {\n error: \"Response exceeded expected number of parameters\"\n };\n\n for (var l in u) return u;\n\n return {};\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JoseUtil = void 0;\n\n var n = r(26),\n i = function o(t) {\n return t && t.__esModule ? t : {\n default: t\n };\n }(r(33));\n\n e.JoseUtil = (0, i.default)({\n jws: n.jws,\n KeyUtil: n.KeyUtil,\n X509: n.X509,\n crypto: n.crypto,\n hextob64u: n.hextob64u,\n b64tohex: n.b64tohex,\n AllowedSigningAlgs: n.AllowedSigningAlgs\n });\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.OidcClientSettings = void 0;\n\n var n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n i = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n o = r(0),\n s = r(23),\n a = r(6),\n u = r(24),\n c = r(2);\n\n function h(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var l = \".well-known/openid-configuration\",\n f = \"id_token\",\n g = \"openid\",\n d = \"client_secret_post\";\n\n e.OidcClientSettings = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.authority,\n i = e.metadataUrl,\n o = e.metadata,\n l = e.signingKeys,\n p = e.metadataSeed,\n v = e.client_id,\n y = e.client_secret,\n m = e.response_type,\n _ = void 0 === m ? f : m,\n S = e.scope,\n b = void 0 === S ? g : S,\n w = e.redirect_uri,\n F = e.post_logout_redirect_uri,\n E = e.client_authentication,\n x = void 0 === E ? d : E,\n A = e.prompt,\n k = e.display,\n P = e.max_age,\n C = e.ui_locales,\n T = e.acr_values,\n R = e.resource,\n I = e.response_mode,\n D = e.filterProtocolClaims,\n L = void 0 === D || D,\n N = e.loadUserInfo,\n U = void 0 === N || N,\n B = e.staleStateAge,\n O = void 0 === B ? 900 : B,\n j = e.clockSkew,\n M = void 0 === j ? 300 : j,\n H = e.clockService,\n V = void 0 === H ? new s.ClockService() : H,\n K = e.userInfoJwtIssuer,\n q = void 0 === K ? \"OP\" : K,\n J = e.mergeClaims,\n W = void 0 !== J && J,\n z = e.stateStore,\n Y = void 0 === z ? new a.WebStorageStateStore() : z,\n G = e.ResponseValidatorCtor,\n X = void 0 === G ? u.ResponseValidator : G,\n $ = e.MetadataServiceCtor,\n Q = void 0 === $ ? c.MetadataService : $,\n Z = e.extraQueryParams,\n tt = void 0 === Z ? {} : Z,\n et = e.extraTokenParams,\n rt = void 0 === et ? {} : et;\n\n 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 : {};\n }\n\n return t.prototype.getEpochTime = function t() {\n return this._clockService.getEpochTime();\n }, i(t, [{\n key: \"client_id\",\n get: function t() {\n return this._client_id;\n },\n set: function t(e) {\n 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.\");\n this._client_id = e;\n }\n }, {\n key: \"client_secret\",\n get: function t() {\n return this._client_secret;\n }\n }, {\n key: \"response_type\",\n get: function t() {\n return this._response_type;\n }\n }, {\n key: \"scope\",\n get: function t() {\n return this._scope;\n }\n }, {\n key: \"redirect_uri\",\n get: function t() {\n return this._redirect_uri;\n }\n }, {\n key: \"post_logout_redirect_uri\",\n get: function t() {\n return this._post_logout_redirect_uri;\n }\n }, {\n key: \"client_authentication\",\n get: function t() {\n return this._client_authentication;\n }\n }, {\n key: \"prompt\",\n get: function t() {\n return this._prompt;\n }\n }, {\n key: \"display\",\n get: function t() {\n return this._display;\n }\n }, {\n key: \"max_age\",\n get: function t() {\n return this._max_age;\n }\n }, {\n key: \"ui_locales\",\n get: function t() {\n return this._ui_locales;\n }\n }, {\n key: \"acr_values\",\n get: function t() {\n return this._acr_values;\n }\n }, {\n key: \"resource\",\n get: function t() {\n return this._resource;\n }\n }, {\n key: \"response_mode\",\n get: function t() {\n return this._response_mode;\n }\n }, {\n key: \"authority\",\n get: function t() {\n return this._authority;\n },\n set: function t(e) {\n if (this._authority) throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"), new Error(\"authority has already been assigned.\");\n this._authority = e;\n }\n }, {\n key: \"metadataUrl\",\n get: function t() {\n 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;\n }\n }, {\n key: \"metadata\",\n get: function t() {\n return this._metadata;\n },\n set: function t(e) {\n this._metadata = e;\n }\n }, {\n key: \"metadataSeed\",\n get: function t() {\n return this._metadataSeed;\n },\n set: function t(e) {\n this._metadataSeed = e;\n }\n }, {\n key: \"signingKeys\",\n get: function t() {\n return this._signingKeys;\n },\n set: function t(e) {\n this._signingKeys = e;\n }\n }, {\n key: \"filterProtocolClaims\",\n get: function t() {\n return this._filterProtocolClaims;\n }\n }, {\n key: \"loadUserInfo\",\n get: function t() {\n return this._loadUserInfo;\n }\n }, {\n key: \"staleStateAge\",\n get: function t() {\n return this._staleStateAge;\n }\n }, {\n key: \"clockSkew\",\n get: function t() {\n return this._clockSkew;\n }\n }, {\n key: \"userInfoJwtIssuer\",\n get: function t() {\n return this._userInfoJwtIssuer;\n }\n }, {\n key: \"mergeClaims\",\n get: function t() {\n return this._mergeClaims;\n }\n }, {\n key: \"stateStore\",\n get: function t() {\n return this._stateStore;\n }\n }, {\n key: \"validator\",\n get: function t() {\n return this._validator;\n }\n }, {\n key: \"metadataService\",\n get: function t() {\n return this._metadataService;\n }\n }, {\n key: \"extraQueryParams\",\n get: function t() {\n return this._extraQueryParams;\n },\n set: function t(e) {\n \"object\" === (void 0 === e ? \"undefined\" : n(e)) ? this._extraQueryParams = e : this._extraQueryParams = {};\n }\n }, {\n key: \"extraTokenParams\",\n get: function t() {\n return this._extraTokenParams;\n },\n set: function t(e) {\n \"object\" === (void 0 === e ? \"undefined\" : n(e)) ? this._extraTokenParams = e : this._extraTokenParams = {};\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WebStorageStateStore = void 0;\n var n = r(0),\n i = r(1);\n\n function o(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.WebStorageStateStore = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.prefix,\n n = void 0 === r ? \"oidc.\" : r,\n s = e.store,\n a = void 0 === s ? i.Global.localStorage : s;\n o(this, t), this._store = a, this._prefix = n;\n }\n\n return t.prototype.set = function t(e, r) {\n return n.Log.debug(\"WebStorageStateStore.set\", e), e = this._prefix + e, this._store.setItem(e, r), Promise.resolve();\n }, t.prototype.get = function t(e) {\n n.Log.debug(\"WebStorageStateStore.get\", e), e = this._prefix + e;\n\n var r = this._store.getItem(e);\n\n return Promise.resolve(r);\n }, t.prototype.remove = function t(e) {\n n.Log.debug(\"WebStorageStateStore.remove\", e), e = this._prefix + e;\n\n var r = this._store.getItem(e);\n\n return this._store.removeItem(e), Promise.resolve(r);\n }, t.prototype.getAllKeys = function t() {\n n.Log.debug(\"WebStorageStateStore.getAllKeys\");\n\n for (var e = [], r = 0; r < this._store.length; r++) {\n var i = this._store.key(r);\n\n 0 === i.indexOf(this._prefix) && e.push(i.substr(this._prefix.length));\n }\n\n return Promise.resolve(e);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JsonService = void 0;\n var n = r(0),\n i = r(1);\n\n function o(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.JsonService = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : i.Global.XMLHttpRequest,\n n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;\n 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;\n }\n\n return t.prototype.getJson = function t(e, r) {\n var i = this;\n if (!e) throw n.Log.error(\"JsonService.getJson: No url passed\"), new Error(\"url\");\n return n.Log.debug(\"JsonService.getJson, url: \", e), new Promise(function (t, o) {\n var s = new i._XMLHttpRequest();\n s.open(\"GET\", e);\n var a = i._contentTypes,\n u = i._jwtHandler;\n s.onload = function () {\n if (n.Log.debug(\"JsonService.getJson: HTTP response received, status\", s.status), 200 === s.status) {\n var r = s.getResponseHeader(\"Content-Type\");\n\n if (r) {\n var i = a.find(function (t) {\n if (r.startsWith(t)) return !0;\n });\n if (\"application/jwt\" == i) return void u(s).then(t, o);\n if (i) try {\n return void t(JSON.parse(s.responseText));\n } catch (t) {\n return n.Log.error(\"JsonService.getJson: Error parsing JSON response\", t.message), void o(t);\n }\n }\n\n o(Error(\"Invalid response Content-Type: \" + r + \", from URL: \" + e));\n } else o(Error(s.statusText + \" (\" + s.status + \")\"));\n }, s.onerror = function () {\n n.Log.error(\"JsonService.getJson: network error\"), o(Error(\"Network Error\"));\n }, r && (n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"), s.setRequestHeader(\"Authorization\", \"Bearer \" + r)), s.send();\n });\n }, t.prototype.postForm = function t(e, r, i) {\n var o = this;\n if (!e) throw n.Log.error(\"JsonService.postForm: No url passed\"), new Error(\"url\");\n return n.Log.debug(\"JsonService.postForm, url: \", e), new Promise(function (t, s) {\n var a = new o._XMLHttpRequest();\n a.open(\"POST\", e);\n var u = o._contentTypes;\n a.onload = function () {\n if (n.Log.debug(\"JsonService.postForm: HTTP response received, status\", a.status), 200 !== a.status) {\n if (400 === a.status) if (i = a.getResponseHeader(\"Content-Type\")) if (u.find(function (t) {\n if (i.startsWith(t)) return !0;\n })) try {\n var r = JSON.parse(a.responseText);\n if (r && r.error) return n.Log.error(\"JsonService.postForm: Error from server: \", r.error), void s(new Error(r.error));\n } catch (t) {\n return n.Log.error(\"JsonService.postForm: Error parsing JSON response\", t.message), void s(t);\n }\n s(Error(a.statusText + \" (\" + a.status + \")\"));\n } else {\n var i;\n if ((i = a.getResponseHeader(\"Content-Type\")) && u.find(function (t) {\n if (i.startsWith(t)) return !0;\n })) try {\n return void t(JSON.parse(a.responseText));\n } catch (t) {\n return n.Log.error(\"JsonService.postForm: Error parsing JSON response\", t.message), void s(t);\n }\n s(Error(\"Invalid response Content-Type: \" + i + \", from URL: \" + e));\n }\n }, a.onerror = function () {\n n.Log.error(\"JsonService.postForm: network error\"), s(Error(\"Network Error\"));\n };\n var c = \"\";\n\n for (var h in r) {\n var l = r[h];\n l && (c.length > 0 && (c += \"&\"), c += encodeURIComponent(h), c += \"=\", c += encodeURIComponent(l));\n }\n\n a.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"), void 0 !== i && a.setRequestHeader(\"Authorization\", \"Basic \" + btoa(i)), a.send(c);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninRequest = void 0;\n var n = r(0),\n i = r(3),\n o = r(13);\n\n e.SigninRequest = function () {\n function t(e) {\n var r = e.url,\n s = e.client_id,\n a = e.redirect_uri,\n u = e.response_type,\n c = e.scope,\n h = e.authority,\n l = e.data,\n f = e.prompt,\n g = e.display,\n d = e.max_age,\n p = e.ui_locales,\n v = e.id_token_hint,\n y = e.login_hint,\n m = e.acr_values,\n _ = e.resource,\n S = e.response_mode,\n b = e.request,\n w = e.request_uri,\n F = e.extraQueryParams,\n E = e.request_type,\n x = e.client_secret,\n A = e.extraTokenParams,\n k = e.skipUserInfo;\n if (function P(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !r) throw n.Log.error(\"SigninRequest.ctor: No url passed\"), new Error(\"url\");\n if (!s) throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"), new Error(\"client_id\");\n if (!a) throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"), new Error(\"redirect_uri\");\n if (!u) throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"), new Error(\"response_type\");\n if (!c) throw n.Log.error(\"SigninRequest.ctor: No scope passed\"), new Error(\"scope\");\n if (!h) throw n.Log.error(\"SigninRequest.ctor: No authority passed\"), new Error(\"authority\");\n var C = t.isOidc(u),\n T = t.isCode(u);\n S || (S = t.isCode(u) ? \"query\" : null), this.state = new o.SigninState({\n nonce: C,\n data: l,\n client_id: s,\n authority: h,\n redirect_uri: a,\n code_verifier: T,\n request_type: E,\n response_mode: S,\n client_secret: x,\n scope: c,\n extraTokenParams: A,\n skipUserInfo: k\n }), 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\"));\n var R = {\n prompt: f,\n display: g,\n max_age: d,\n ui_locales: p,\n id_token_hint: v,\n login_hint: y,\n acr_values: m,\n resource: _,\n request: b,\n request_uri: w,\n response_mode: S\n };\n\n for (var I in R) R[I] && (r = i.UrlUtility.addQueryParam(r, I, R[I]));\n\n for (var D in F) r = i.UrlUtility.addQueryParam(r, D, F[D]);\n\n this.url = r;\n }\n\n return t.isOidc = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"id_token\" === t;\n })[0];\n }, t.isOAuth = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"token\" === t;\n })[0];\n }, t.isCode = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"code\" === t;\n })[0];\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.State = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = function s(t) {\n return t && t.__esModule ? t : {\n default: t\n };\n }(r(14));\n\n function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.State = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.id,\n n = e.data,\n i = e.created,\n s = e.request_type;\n 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;\n }\n\n return t.prototype.toStorageString = function t() {\n return i.Log.debug(\"State.toStorageString\"), JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type\n });\n }, t.fromStorageString = function e(r) {\n return i.Log.debug(\"State.fromStorageString\"), new t(JSON.parse(r));\n }, t.clearStaleState = function e(r, n) {\n var o = Date.now() / 1e3 - n;\n return r.getAllKeys().then(function (e) {\n i.Log.debug(\"State.clearStaleState: got keys\", e);\n\n for (var n = [], s = function s(a) {\n var c = e[a];\n u = r.get(c).then(function (e) {\n var n = !1;\n if (e) try {\n var s = t.fromStorageString(e);\n i.Log.debug(\"State.clearStaleState: got item from key: \", c, s.created), s.created <= o && (n = !0);\n } catch (t) {\n i.Log.error(\"State.clearStaleState: Error parsing state for key\", c, t.message), n = !0;\n } else i.Log.debug(\"State.clearStaleState: no item in storage for key: \", c), n = !0;\n if (n) return i.Log.debug(\"State.clearStaleState: removed item for key: \", c), r.remove(c);\n }), n.push(u);\n }, a = 0; a < e.length; a++) {\n var u;\n s(a);\n }\n\n return i.Log.debug(\"State.clearStaleState: waiting on promise count:\", n.length), Promise.all(n);\n });\n }, n(t, [{\n key: \"id\",\n get: function t() {\n return this._id;\n }\n }, {\n key: \"data\",\n get: function t() {\n return this._data;\n }\n }, {\n key: \"created\",\n get: function t() {\n return this._created;\n }\n }, {\n key: \"request_type\",\n get: function t() {\n return this._request_type;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.OidcClient = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(5),\n s = r(12),\n a = r(8),\n u = r(34),\n c = r(35),\n h = r(36),\n l = r(13),\n f = r(9);\n\n function g(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.OidcClient = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n g(this, t), e instanceof o.OidcClientSettings ? this._settings = e : this._settings = new o.OidcClientSettings(e);\n }\n\n return t.prototype.createSigninRequest = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.response_type,\n o = r.scope,\n s = r.redirect_uri,\n u = r.data,\n c = r.state,\n h = r.prompt,\n l = r.display,\n f = r.max_age,\n g = r.ui_locales,\n d = r.id_token_hint,\n p = r.login_hint,\n v = r.acr_values,\n y = r.resource,\n m = r.request,\n _ = r.request_uri,\n S = r.response_mode,\n b = r.extraQueryParams,\n w = r.extraTokenParams,\n F = r.request_type,\n E = r.skipUserInfo,\n x = arguments[1];\n i.Log.debug(\"OidcClient.createSigninRequest\");\n var A = this._settings.client_id;\n 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;\n var k = this._settings.authority;\n return a.SigninRequest.isCode(n) && \"code\" !== n ? Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")) : this._metadataService.getAuthorizationEndpoint().then(function (t) {\n i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\", t);\n var r = new a.SigninRequest({\n url: t,\n client_id: A,\n redirect_uri: s,\n response_type: n,\n scope: o,\n data: u || c,\n authority: k,\n prompt: h,\n display: l,\n max_age: f,\n ui_locales: g,\n id_token_hint: d,\n login_hint: p,\n acr_values: v,\n resource: y,\n request: m,\n request_uri: _,\n extraQueryParams: b,\n extraTokenParams: w,\n request_type: F,\n response_mode: S,\n client_secret: e._settings.client_secret,\n skipUserInfo: E\n }),\n P = r.state;\n return (x = x || e._stateStore).set(P.id, P.toStorageString()).then(function () {\n return r;\n });\n });\n }, t.prototype.readSigninResponseState = function t(e, r) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];\n i.Log.debug(\"OidcClient.readSigninResponseState\");\n var o = \"query\" === this._settings.response_mode || !this._settings.response_mode && a.SigninRequest.isCode(this._settings.response_type),\n s = o ? \"?\" : \"#\",\n c = new u.SigninResponse(e, s);\n if (!c.state) return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"), Promise.reject(new Error(\"No state in response\"));\n r = r || this._stateStore;\n var h = n ? r.remove.bind(r) : r.get.bind(r);\n return h(c.state).then(function (t) {\n if (!t) throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"), new Error(\"No matching state found in storage\");\n return {\n state: l.SigninState.fromStorageString(t),\n response: c\n };\n });\n }, t.prototype.processSigninResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"OidcClient.processSigninResponse\"), this.readSigninResponseState(e, r, !0).then(function (t) {\n var e = t.state,\n r = t.response;\n return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"), n._validator.validateSigninResponse(e, r);\n });\n }, t.prototype.createSignoutRequest = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.id_token_hint,\n o = r.data,\n s = r.state,\n a = r.post_logout_redirect_uri,\n u = r.extraQueryParams,\n h = r.request_type,\n l = arguments[1];\n 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) {\n if (!t) throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"), new Error(\"no end session endpoint\");\n i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\", t);\n var r = new c.SignoutRequest({\n url: t,\n id_token_hint: n,\n post_logout_redirect_uri: a,\n data: o || s,\n extraQueryParams: u,\n request_type: h\n }),\n f = r.state;\n return f && (i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"), (l = l || e._stateStore).set(f.id, f.toStorageString())), r;\n });\n }, t.prototype.readSignoutResponseState = function t(e, r) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];\n i.Log.debug(\"OidcClient.readSignoutResponseState\");\n var o = new h.SignoutResponse(e);\n 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({\n state: void 0,\n response: o\n });\n var a = o.state;\n r = r || this._stateStore;\n var u = n ? r.remove.bind(r) : r.get.bind(r);\n return u(a).then(function (t) {\n if (!t) throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"), new Error(\"No matching state found in storage\");\n return {\n state: f.State.fromStorageString(t),\n response: o\n };\n });\n }, t.prototype.processSignoutResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"OidcClient.processSignoutResponse\"), this.readSignoutResponseState(e, r, !0).then(function (t) {\n var e = t.state,\n r = t.response;\n 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);\n });\n }, t.prototype.clearStaleState = function t(e) {\n return i.Log.debug(\"OidcClient.clearStaleState\"), e = e || this._stateStore, f.State.clearStaleState(e, this.settings.staleStateAge);\n }, n(t, [{\n key: \"_stateStore\",\n get: function t() {\n return this.settings.stateStore;\n }\n }, {\n key: \"_validator\",\n get: function t() {\n return this.settings.validator;\n }\n }, {\n key: \"_metadataService\",\n get: function t() {\n return this.settings.metadataService;\n }\n }, {\n key: \"settings\",\n get: function t() {\n return this._settings;\n }\n }, {\n key: \"metadataService\",\n get: function t() {\n return this._metadataService;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.TokenClient = void 0;\n var n = r(7),\n i = r(2),\n o = r(0);\n\n function s(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.TokenClient = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.JsonService,\n a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService;\n if (s(this, t), !e) throw o.Log.error(\"TokenClient.ctor: No settings passed\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r(), this._metadataService = new a(this._settings);\n }\n\n return t.prototype.exchangeCode = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (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;\n var n = void 0,\n i = r._client_authentication || this._settings._client_authentication;\n 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) {\n return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"), e._jsonService.postForm(t, r, n).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeCode: response received\"), t;\n });\n })) : (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\")));\n }, t.prototype.exchangeRefreshToken = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (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;\n var n = void 0,\n i = r._client_authentication || this._settings._client_authentication;\n 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) {\n return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"), e._jsonService.postForm(t, r, n).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"), t;\n });\n })) : (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\")));\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ErrorResponse = void 0;\n var n = r(0);\n\n function i(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function o(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }\n\n e.ErrorResponse = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n s = r.error,\n a = r.error_description,\n u = r.error_uri,\n c = r.state,\n h = r.session_state;\n if (i(this, e), !s) throw n.Log.error(\"No error passed to ErrorResponse\"), new Error(\"error\");\n var l = o(this, t.call(this, a || s));\n return l.name = \"ErrorResponse\", l.error = s, l.error_description = a, l.error_uri = u, l.state = c, l.session_state = h, l;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e;\n }(Error);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninState = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(9),\n s = r(4),\n a = function u(t) {\n return t && t.__esModule ? t : {\n default: t\n };\n }(r(14));\n\n function c(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function h(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }\n\n e.SigninState = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.nonce,\n i = r.authority,\n o = r.client_id,\n u = r.redirect_uri,\n l = r.code_verifier,\n f = r.response_mode,\n g = r.client_secret,\n d = r.scope,\n p = r.extraTokenParams,\n v = r.skipUserInfo;\n c(this, e);\n var y = h(this, t.call(this, arguments[0]));\n\n 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) {\n var m = s.JoseUtil.hashString(y.code_verifier, \"SHA256\");\n y._code_challenge = s.JoseUtil.hexToBase64Url(m);\n }\n\n 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;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.toStorageString = function t() {\n return i.Log.debug(\"SigninState.toStorageString\"), JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n nonce: this.nonce,\n code_verifier: this.code_verifier,\n redirect_uri: this.redirect_uri,\n authority: this.authority,\n client_id: this.client_id,\n response_mode: this.response_mode,\n client_secret: this.client_secret,\n scope: this.scope,\n extraTokenParams: this.extraTokenParams,\n skipUserInfo: this.skipUserInfo\n });\n }, e.fromStorageString = function t(r) {\n return i.Log.debug(\"SigninState.fromStorageString\"), new e(JSON.parse(r));\n }, n(e, [{\n key: \"nonce\",\n get: function t() {\n return this._nonce;\n }\n }, {\n key: \"authority\",\n get: function t() {\n return this._authority;\n }\n }, {\n key: \"client_id\",\n get: function t() {\n return this._client_id;\n }\n }, {\n key: \"redirect_uri\",\n get: function t() {\n return this._redirect_uri;\n }\n }, {\n key: \"code_verifier\",\n get: function t() {\n return this._code_verifier;\n }\n }, {\n key: \"code_challenge\",\n get: function t() {\n return this._code_challenge;\n }\n }, {\n key: \"response_mode\",\n get: function t() {\n return this._response_mode;\n }\n }, {\n key: \"client_secret\",\n get: function t() {\n return this._client_secret;\n }\n }, {\n key: \"scope\",\n get: function t() {\n return this._scope;\n }\n }, {\n key: \"extraTokenParams\",\n get: function t() {\n return this._extraTokenParams;\n }\n }, {\n key: \"skipUserInfo\",\n get: function t() {\n return this._skipUserInfo;\n }\n }]), e;\n }(o.State);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = function n() {\n return (\"undefined\" != i && null !== i && void 0 !== i.getRandomValues ? o : s)().replace(/-/g, \"\");\n };\n var i = \"undefined\" != typeof window ? window.crypto || window.msCrypto : null;\n\n function o() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (t) {\n return (t ^ i.getRandomValues(new Uint8Array(1))[0] & 15 >> t / 4).toString(16);\n });\n }\n\n function s() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (t) {\n return (t ^ 16 * Math.random() >> t / 4).toString(16);\n });\n }\n\n t.exports = e.default;\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.User = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.User = function () {\n function t(e) {\n var r = e.id_token,\n n = e.session_state,\n i = e.access_token,\n o = e.refresh_token,\n s = e.token_type,\n a = e.scope,\n u = e.profile,\n c = e.expires_at,\n h = e.state;\n !function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(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;\n }\n\n return t.prototype.toStorageString = function t() {\n return i.Log.debug(\"User.toStorageString\"), JSON.stringify({\n id_token: this.id_token,\n session_state: this.session_state,\n access_token: this.access_token,\n refresh_token: this.refresh_token,\n token_type: this.token_type,\n scope: this.scope,\n profile: this.profile,\n expires_at: this.expires_at\n });\n }, t.fromStorageString = function e(r) {\n return i.Log.debug(\"User.fromStorageString\"), new t(JSON.parse(r));\n }, n(t, [{\n key: \"expires_in\",\n get: function t() {\n if (this.expires_at) {\n var e = parseInt(Date.now() / 1e3);\n return this.expires_at - e;\n }\n },\n set: function t(e) {\n var r = parseInt(e);\n\n if (\"number\" == typeof r && r > 0) {\n var n = parseInt(Date.now() / 1e3);\n this.expires_at = n + r;\n }\n }\n }, {\n key: \"expired\",\n get: function t() {\n var e = this.expires_in;\n if (void 0 !== e) return e <= 0;\n }\n }, {\n key: \"scopes\",\n get: function t() {\n return (this.scope || \"\").split(\" \");\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.AccessTokenEvents = void 0;\n var n = r(0),\n i = r(46);\n\n function o(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.AccessTokenEvents = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.accessTokenExpiringNotificationTime,\n n = void 0 === r ? 60 : r,\n s = e.accessTokenExpiringTimer,\n a = void 0 === s ? new i.Timer(\"Access token expiring\") : s,\n u = e.accessTokenExpiredTimer,\n c = void 0 === u ? new i.Timer(\"Access token expired\") : u;\n o(this, t), this._accessTokenExpiringNotificationTime = n, this._accessTokenExpiring = a, this._accessTokenExpired = c;\n }\n\n return t.prototype.load = function t(e) {\n if (e.access_token && void 0 !== e.expires_in) {\n var r = e.expires_in;\n\n if (n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\", r), r > 0) {\n var i = r - this._accessTokenExpiringNotificationTime;\n i <= 0 && (i = 1), n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\", i), this._accessTokenExpiring.init(i);\n } else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"), this._accessTokenExpiring.cancel();\n\n var o = r + 1;\n n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\", o), this._accessTokenExpired.init(o);\n } else this._accessTokenExpiring.cancel(), this._accessTokenExpired.cancel();\n }, t.prototype.unload = function t() {\n n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"), this._accessTokenExpiring.cancel(), this._accessTokenExpired.cancel();\n }, t.prototype.addAccessTokenExpiring = function t(e) {\n this._accessTokenExpiring.addHandler(e);\n }, t.prototype.removeAccessTokenExpiring = function t(e) {\n this._accessTokenExpiring.removeHandler(e);\n }, t.prototype.addAccessTokenExpired = function t(e) {\n this._accessTokenExpired.addHandler(e);\n }, t.prototype.removeAccessTokenExpired = function t(e) {\n this._accessTokenExpired.removeHandler(e);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Event = void 0;\n var n = r(0);\n\n e.Event = function () {\n function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._name = e, this._callbacks = [];\n }\n\n return t.prototype.addHandler = function t(e) {\n this._callbacks.push(e);\n }, t.prototype.removeHandler = function t(e) {\n var r = this._callbacks.findIndex(function (t) {\n return t === e;\n });\n\n r >= 0 && this._callbacks.splice(r, 1);\n }, t.prototype.raise = function t() {\n n.Log.debug(\"Event: Raising event: \" + this._name);\n\n for (var e = 0; e < this._callbacks.length; e++) {\n var r;\n\n (r = this._callbacks)[e].apply(r, arguments);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SessionMonitor = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(19),\n s = r(1);\n\n function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.SessionMonitor = function () {\n function t(e) {\n var r = this,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.CheckSessionIFrame,\n u = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : s.Global.timer;\n if (a(this, t), !e) throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"), new Error(\"userManager\");\n 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) {\n t ? r._start(t) : r._settings.monitorAnonymousSession && r._userManager.querySessionStatus().then(function (t) {\n var e = {\n session_state: t.session_state\n };\n t.sub && t.sid && (e.profile = {\n sub: t.sub,\n sid: t.sid\n }), r._start(e);\n }).catch(function (t) {\n i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\", t.message);\n });\n }).catch(function (t) {\n i.Log.error(\"SessionMonitor ctor: error from getUser:\", t.message);\n }));\n }\n\n return t.prototype._start = function t(e) {\n var r = this,\n n = e.session_state;\n 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) {\n if (t) {\n i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");\n var e = r._client_id,\n o = r._checkSessionInterval,\n s = r._stopCheckSessionOnError;\n r._checkSessionIFrame = new r._CheckSessionIFrameCtor(r._callback.bind(r), e, t, o, s), r._checkSessionIFrame.load().then(function () {\n r._checkSessionIFrame.start(n);\n });\n } else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\");\n }).catch(function (t) {\n i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\", t.message);\n }));\n }, t.prototype._stop = function t() {\n var e = this;\n 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 () {\n e._timer.clearInterval(r), e._userManager.querySessionStatus().then(function (t) {\n var r = {\n session_state: t.session_state\n };\n t.sub && t.sid && (r.profile = {\n sub: t.sub,\n sid: t.sid\n }), e._start(r);\n }).catch(function (t) {\n i.Log.error(\"SessionMonitor: error from querySessionStatus:\", t.message);\n });\n }, 1e3);\n }, t.prototype._callback = function t() {\n var e = this;\n\n this._userManager.querySessionStatus().then(function (t) {\n var r = !0;\n 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()));\n }).catch(function (t) {\n e._sub && (i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\", t.message), e._userManager.events._raiseUserSignedOut());\n });\n }, n(t, [{\n key: \"_settings\",\n get: function t() {\n return this._userManager.settings;\n }\n }, {\n key: \"_metadataService\",\n get: function t() {\n return this._userManager.metadataService;\n }\n }, {\n key: \"_client_id\",\n get: function t() {\n return this._settings.client_id;\n }\n }, {\n key: \"_checkSessionInterval\",\n get: function t() {\n return this._settings.checkSessionInterval;\n }\n }, {\n key: \"_stopCheckSessionOnError\",\n get: function t() {\n return this._settings.stopCheckSessionOnError;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CheckSessionIFrame = void 0;\n var n = r(0);\n\n function i(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.CheckSessionIFrame = function () {\n function t(e, r, n, o) {\n var s = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4];\n i(this, t), this._callback = e, this._client_id = r, this._url = n, this._interval = o || 2e3, this._stopOnError = s;\n var a = n.indexOf(\"/\", n.indexOf(\"//\") + 2);\n 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;\n }\n\n return t.prototype.load = function t() {\n var e = this;\n return new Promise(function (t) {\n e._frame.onload = function () {\n t();\n }, window.document.body.appendChild(e._frame), e._boundMessageEvent = e._message.bind(e), window.addEventListener(\"message\", e._boundMessageEvent, !1);\n });\n }, t.prototype._message = function t(e) {\n 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\"));\n }, t.prototype.start = function t(e) {\n var r = this;\n\n if (this._session_state !== e) {\n n.Log.debug(\"CheckSessionIFrame.start\"), this.stop(), this._session_state = e;\n\n var i = function t() {\n r._frame.contentWindow.postMessage(r._client_id + \" \" + r._session_state, r._frame_origin);\n };\n\n i(), this._timer = window.setInterval(i, this._interval);\n }\n }, t.prototype.stop = function t() {\n this._session_state = null, this._timer && (n.Log.debug(\"CheckSessionIFrame.stop\"), window.clearInterval(this._timer), this._timer = null);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.TokenRevocationClient = void 0;\n var n = r(0),\n i = r(2),\n o = r(1);\n\n function s(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var a = \"access_token\",\n u = \"refresh_token\";\n\n e.TokenRevocationClient = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.Global.XMLHttpRequest,\n a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService;\n if (s(this, t), !e) throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"), new Error(\"No settings provided.\");\n this._settings = e, this._XMLHttpRequestCtor = r, this._metadataService = new a(this._settings);\n }\n\n return t.prototype.revoke = function t(e, r) {\n var i = this,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"access_token\";\n if (!e) throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"), new Error(\"No token provided.\");\n if (o !== a && o != u) throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"), new Error(\"Invalid token type.\");\n return this._metadataService.getRevocationEndpoint().then(function (t) {\n if (t) {\n n.Log.debug(\"TokenRevocationClient.revoke: Revoking \" + o);\n var s = i._settings.client_id,\n a = i._settings.client_secret;\n return i._revoke(t, s, a, e, o);\n }\n\n if (r) throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"), new Error(\"Revocation not supported\");\n });\n }, t.prototype._revoke = function t(e, r, i, o, s) {\n var a = this;\n return new Promise(function (t, u) {\n var c = new a._XMLHttpRequestCtor();\n c.open(\"POST\", e), c.onload = function () {\n n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\", c.status), 200 === c.status ? t() : u(Error(c.statusText + \" (\" + c.status + \")\"));\n }, c.onerror = function () {\n n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"), u(\"Network Error\");\n };\n var h = \"client_id=\" + encodeURIComponent(r);\n 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);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaPopupWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.CordovaPopupWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n }), 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);\n }\n\n return t.prototype._isInAppBrowserInstalled = function t(e) {\n return [\"cordova-plugin-inappbrowser\", \"cordova-plugin-inappbrowser.inappbrowser\", \"org.apache.cordova.inappbrowser\"].some(function (t) {\n return e.hasOwnProperty(t);\n });\n }, t.prototype.navigate = function t(e) {\n if (e && e.url) {\n if (!window.cordova) return this._error(\"cordova is undefined\");\n\n var r = window.cordova.require(\"cordova/plugin_list\").metadata;\n\n if (!1 === this._isInAppBrowserInstalled(r)) return this._error(\"InAppBrowser plugin not found\");\n 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\");\n } else this._error(\"No url provided\");\n\n return this.promise;\n }, t.prototype._loadStartCallback = function t(e) {\n 0 === e.url.indexOf(this.redirect_uri) && this._success({\n url: e.url\n });\n }, t.prototype._exitCallback = function t(e) {\n this._error(e);\n }, t.prototype._success = function t(e) {\n this._cleanup(), i.Log.debug(\"CordovaPopupWindow: Successful response from cordova popup window\"), this._resolve(e);\n }, t.prototype._error = function t(e) {\n this._cleanup(), i.Log.error(e), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup();\n }, t.prototype._cleanup = function t() {\n 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 }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var n = r(0),\n i = r(10),\n o = r(5),\n s = r(6),\n a = r(37),\n u = r(38),\n c = r(16),\n h = r(2),\n l = r(48),\n f = r(49),\n g = r(19),\n d = r(20),\n p = r(18),\n v = r(1),\n y = r(15),\n m = r(50);\n e.default = {\n Version: m.Version,\n Log: n.Log,\n OidcClient: i.OidcClient,\n OidcClientSettings: o.OidcClientSettings,\n WebStorageStateStore: s.WebStorageStateStore,\n InMemoryWebStorage: a.InMemoryWebStorage,\n UserManager: u.UserManager,\n AccessTokenEvents: c.AccessTokenEvents,\n MetadataService: h.MetadataService,\n CordovaPopupNavigator: l.CordovaPopupNavigator,\n CordovaIFrameNavigator: f.CordovaIFrameNavigator,\n CheckSessionIFrame: g.CheckSessionIFrame,\n TokenRevocationClient: d.TokenRevocationClient,\n SessionMonitor: p.SessionMonitor,\n Global: v.Global,\n User: y.User\n }, t.exports = e.default;\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n e.ClockService = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.getEpochTime = function t() {\n return Promise.resolve(Date.now() / 1e3 | 0);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ResponseValidator = void 0;\n var n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n i = r(0),\n o = r(2),\n s = r(25),\n a = r(11),\n u = r(12),\n c = r(4);\n\n function h(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var l = [\"nonce\", \"at_hash\", \"iat\", \"nbf\", \"exp\", \"aud\", \"iss\", \"c_hash\"];\n\n e.ResponseValidator = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.MetadataService,\n n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : s.UserInfoService,\n u = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : c.JoseUtil,\n l = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : a.TokenClient;\n if (h(this, t), !e) throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"), new Error(\"settings\");\n this._settings = e, this._metadataService = new r(this._settings), this._userInfoService = new n(this._settings), this._joseUtil = u, this._tokenClient = new l(this._settings);\n }\n\n return t.prototype.validateSigninResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"ResponseValidator.validateSigninResponse\"), this._processSigninParams(e, r).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"), n._validateTokens(e, t).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"), n._processClaims(e, t).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"), t;\n });\n });\n });\n }, t.prototype.validateSignoutResponse = function t(e, r) {\n 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));\n }, t.prototype._processSigninParams = function t(e, r) {\n if (e.id !== r.state) return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"), Promise.reject(new Error(\"State does not match\"));\n if (!e.client_id) return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"), Promise.reject(new Error(\"No client_id on state\"));\n if (!e.authority) return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"), Promise.reject(new Error(\"No authority on state\"));\n\n if (this._settings.authority) {\n 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\"));\n } else this._settings.authority = e.authority;\n\n if (this._settings.client_id) {\n 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\"));\n } else this._settings.client_id = e.client_id;\n\n 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));\n }, t.prototype._processClaims = function t(e, r) {\n var n = this;\n\n if (r.isOpenIdConnect) {\n 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) {\n 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);\n });\n i.Log.debug(\"ResponseValidator._processClaims: not loading user info\");\n } else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");\n\n return Promise.resolve(r);\n }, t.prototype._mergeClaims = function t(e, r) {\n var i = Object.assign({}, e);\n\n for (var o in r) {\n var s = r[o];\n Array.isArray(s) || (s = [s]);\n\n for (var a = 0; a < s.length; a++) {\n var u = s[a];\n 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;\n }\n }\n\n return i;\n }, t.prototype._filterProtocolClaims = function t(e) {\n i.Log.debug(\"ResponseValidator._filterProtocolClaims, incoming claims:\", e);\n var r = Object.assign({}, e);\n return this._settings._filterProtocolClaims ? (l.forEach(function (t) {\n delete r[t];\n }), i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims filtered\", r)) : i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims not filtered\"), r;\n }, t.prototype._validateTokens = function t(e, r) {\n 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));\n }, t.prototype._processCode = function t(e, r) {\n var o = this,\n s = {\n client_id: e.client_id,\n client_secret: e.client_secret,\n code: r.code,\n redirect_uri: e.redirect_uri,\n code_verifier: e.code_verifier\n };\n return e.extraTokenParams && \"object\" === n(e.extraTokenParams) && Object.assign(s, e.extraTokenParams), this._tokenClient.exchangeCode(s).then(function (t) {\n for (var n in t) r[n] = t[n];\n\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);\n });\n }, t.prototype._validateIdTokenAttributes = function t(e, r) {\n var n = this;\n return this._metadataService.getIssuer().then(function (t) {\n var o = e.client_id,\n s = n._settings.clockSkew;\n return i.Log.debug(\"ResponseValidator._validateIdTokenAttributes: Validaing JWT attributes; using clock skew (in seconds) of: \", s), n._settings.getEpochTime().then(function (a) {\n return n._joseUtil.validateJwtAttributes(r.id_token, t, o, s, a).then(function (t) {\n 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\")));\n });\n });\n });\n }, t.prototype._validateIdTokenAndAccessToken = function t(e, r) {\n var n = this;\n return this._validateIdToken(e, r).then(function (t) {\n return n._validateAccessToken(t);\n });\n }, t.prototype._getSigningKeyForJwt = function t(e) {\n var r = this;\n return this._metadataService.getSigningKeys().then(function (t) {\n var n = e.header.kid;\n if (!t) return i.Log.error(\"ResponseValidator._validateIdToken: No signing keys from metadata\"), Promise.reject(new Error(\"No signing keys from metadata\"));\n i.Log.debug(\"ResponseValidator._validateIdToken: Received signing keys\");\n var o = void 0;\n if (n) o = t.filter(function (t) {\n return t.kid === n;\n })[0];else {\n 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\"));\n o = t[0];\n }\n return Promise.resolve(o);\n });\n }, t.prototype._getSigningKeyForJwtWithSingleRetry = function t(e) {\n var r = this;\n return this._getSigningKeyForJwt(e).then(function (t) {\n return t ? Promise.resolve(t) : (r._metadataService.resetSigningKeys(), r._getSigningKeyForJwt(e));\n });\n }, t.prototype._validateIdToken = function t(e, r) {\n var n = this;\n if (!e.nonce) return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"), Promise.reject(new Error(\"No nonce on state\"));\n\n var o = this._joseUtil.parseJwt(r.id_token);\n\n 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) {\n return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"), n._getSigningKeyForJwtWithSingleRetry(o).then(function (s) {\n 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\"));\n var a = e.client_id,\n u = n._settings.clockSkew;\n 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 () {\n 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\")));\n });\n });\n }) : (i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\", o), Promise.reject(new Error(\"Failed to parse id_token\")));\n }, t.prototype._filterByAlg = function t(e, r) {\n var n = null;\n if (r.startsWith(\"RS\")) n = \"RSA\";else if (r.startsWith(\"PS\")) n = \"PS\";else {\n if (!r.startsWith(\"ES\")) return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \", r), [];\n n = \"EC\";\n }\n return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \", n), e = e.filter(function (t) {\n return t.kty === n;\n }), i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \", n, e.length), e;\n }, t.prototype._validateAccessToken = function t(e) {\n 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\"));\n 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\"));\n if (!e.id_token) return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"), Promise.reject(new Error(\"No id_token\"));\n\n var r = this._joseUtil.parseJwt(e.id_token);\n\n 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\"));\n var n = r.header.alg;\n if (!n || 5 !== n.length) return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\", n), Promise.reject(new Error(\"Unsupported alg: \" + n));\n var o = n.substr(2, 3);\n if (!o) return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\", n, o), Promise.reject(new Error(\"Unsupported alg: \" + n));\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));\n\n var s = \"sha\" + o,\n a = this._joseUtil.hashString(e.access_token, s);\n\n if (!a) return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\", s), Promise.reject(new Error(\"Failed to validate at_hash\"));\n\n var u = a.substr(0, a.length / 2),\n c = this._joseUtil.hexToBase64Url(u);\n\n 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));\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserInfoService = void 0;\n var n = r(7),\n i = r(2),\n o = r(0),\n s = r(4);\n\n function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.UserInfoService = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.JsonService,\n u = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService,\n c = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : s.JoseUtil;\n if (a(this, t), !e) throw o.Log.error(\"UserInfoService.ctor: No settings passed\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r(void 0, void 0, this._getClaimsFromJwt.bind(this)), this._metadataService = new u(this._settings), this._joseUtil = c;\n }\n\n return t.prototype.getClaims = function t(e) {\n var r = this;\n return e ? this._metadataService.getUserInfoEndpoint().then(function (t) {\n return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\", t), r._jsonService.getJson(t, e).then(function (t) {\n return o.Log.debug(\"UserInfoService.getClaims: claims received\", t), t;\n });\n }) : (o.Log.error(\"UserInfoService.getClaims: No token passed\"), Promise.reject(new Error(\"A token is required\")));\n }, t.prototype._getClaimsFromJwt = function t(e) {\n var r = this;\n\n try {\n var n = this._joseUtil.parseJwt(e.responseText);\n\n 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\"));\n var i = n.header.kid,\n s = void 0;\n\n switch (this._settings.userInfoJwtIssuer) {\n case \"OP\":\n s = this._metadataService.getIssuer();\n break;\n\n case \"ANY\":\n s = Promise.resolve(n.payload.iss);\n break;\n\n default:\n s = Promise.resolve(this._settings.userInfoJwtIssuer);\n }\n\n return s.then(function (t) {\n return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\" + t), r._metadataService.getSigningKeys().then(function (s) {\n if (!s) return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"), Promise.reject(new Error(\"No signing keys from metadata\"));\n o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");\n var a = void 0;\n if (i) a = s.filter(function (t) {\n return t.kid === i;\n })[0];else {\n 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\"));\n a = s[0];\n }\n 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\"));\n var u = r._settings.client_id,\n c = r._settings.clockSkew;\n 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 () {\n return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"), n.payload;\n });\n });\n });\n } catch (t) {\n return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\", t.message), void reject(t);\n }\n }, t.prototype._filterByAlg = function t(e, r) {\n var n = null;\n if (r.startsWith(\"RS\")) n = \"RSA\";else if (r.startsWith(\"PS\")) n = \"PS\";else {\n if (!r.startsWith(\"ES\")) return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \", r), [];\n n = \"EC\";\n }\n return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \", n), e = e.filter(function (t) {\n return t.kty === n;\n }), o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \", n, e.length), e;\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.AllowedSigningAlgs = e.b64tohex = e.hextob64u = e.crypto = e.X509 = e.KeyUtil = e.jws = void 0;\n var n = r(27);\n 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\"];\n }, function (t, e, r) {\n \"use strict\";\n\n (function (t) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var r = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n n = {\n userAgent: !1\n },\n i = {};\n /*!\n Copyright (c) 2011, Yahoo! Inc. All rights reserved.\n Code licensed under the BSD License:\n http://developer.yahoo.com/yui/license.html\n version: 2.9.0\n */\n\n if (void 0 === o) var o = {};\n o.lang = {\n extend: function t(e, r, i) {\n if (!r || !e) throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\");\n\n var o = function t() {};\n\n if (o.prototype = r.prototype, e.prototype = new o(), e.prototype.constructor = e, e.superclass = r.prototype, r.prototype.constructor == Object.prototype.constructor && (r.prototype.constructor = r), i) {\n var s;\n\n for (s in i) e.prototype[s] = i[s];\n\n var a = function t() {},\n u = [\"toString\", \"valueOf\"];\n\n try {\n /MSIE/.test(n.userAgent) && (a = function t(e, r) {\n for (s = 0; s < u.length; s += 1) {\n var n = u[s],\n i = r[n];\n \"function\" == typeof i && i != Object.prototype[n] && (e[n] = i);\n }\n });\n } catch (t) {}\n\n a(e.prototype, i);\n }\n }\n };\n /*! CryptoJS v3.1.2 core-fix.js\n * code.google.com/p/crypto-js\n * (c) 2009-2013 by Jeff Mott. All rights reserved.\n * code.google.com/p/crypto-js/wiki/License\n * THIS IS FIX of 'core.js' to fix Hmac issue.\n * https://code.google.com/p/crypto-js/issues/detail?id=84\n * https://crypto-js.googlecode.com/svn-history/r667/branches/3.x/src/core.js\n */\n\n var s,\n a,\n u,\n c,\n h,\n l,\n f,\n g,\n d,\n p,\n v,\n y = y || (s = Math, u = (a = {}).lib = {}, c = u.Base = function () {\n function t() {}\n\n return {\n extend: function e(r) {\n t.prototype = this;\n var n = new t();\n return r && n.mixIn(r), n.hasOwnProperty(\"init\") || (n.init = function () {\n n.$super.init.apply(this, arguments);\n }), n.init.prototype = n, n.$super = this, n;\n },\n create: function t() {\n var e = this.extend();\n return e.init.apply(e, arguments), e;\n },\n init: function t() {},\n mixIn: function t(e) {\n for (var r in e) e.hasOwnProperty(r) && (this[r] = e[r]);\n\n e.hasOwnProperty(\"toString\") && (this.toString = e.toString);\n },\n clone: function t() {\n return this.init.prototype.extend(this);\n }\n };\n }(), h = u.WordArray = c.extend({\n init: function t(e, r) {\n e = this.words = e || [], this.sigBytes = null != r ? r : 4 * e.length;\n },\n toString: function t(e) {\n return (e || f).stringify(this);\n },\n concat: function t(e) {\n var r = this.words,\n n = e.words,\n i = this.sigBytes,\n o = e.sigBytes;\n if (this.clamp(), i % 4) for (var s = 0; s < o; s++) {\n var a = n[s >>> 2] >>> 24 - s % 4 * 8 & 255;\n r[i + s >>> 2] |= a << 24 - (i + s) % 4 * 8;\n } else for (s = 0; s < o; s += 4) r[i + s >>> 2] = n[s >>> 2];\n return this.sigBytes += o, this;\n },\n clamp: function t() {\n var e = this.words,\n r = this.sigBytes;\n e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = s.ceil(r / 4);\n },\n clone: function t() {\n var e = c.clone.call(this);\n return e.words = this.words.slice(0), e;\n },\n random: function t(e) {\n for (var r = [], n = 0; n < e; n += 4) r.push(4294967296 * s.random() | 0);\n\n return new h.init(r, e);\n }\n }), l = a.enc = {}, f = l.Hex = {\n stringify: function t(e) {\n for (var r = e.words, n = e.sigBytes, i = [], o = 0; o < n; o++) {\n var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;\n i.push((s >>> 4).toString(16)), i.push((15 & s).toString(16));\n }\n\n return i.join(\"\");\n },\n parse: function t(e) {\n 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;\n\n return new h.init(n, r / 2);\n }\n }, g = l.Latin1 = {\n stringify: function t(e) {\n for (var r = e.words, n = e.sigBytes, i = [], o = 0; o < n; o++) {\n var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;\n i.push(String.fromCharCode(s));\n }\n\n return i.join(\"\");\n },\n parse: function t(e) {\n for (var r = e.length, n = [], i = 0; i < r; i++) n[i >>> 2] |= (255 & e.charCodeAt(i)) << 24 - i % 4 * 8;\n\n return new h.init(n, r);\n }\n }, d = l.Utf8 = {\n stringify: function t(e) {\n try {\n return decodeURIComponent(escape(g.stringify(e)));\n } catch (t) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function t(e) {\n return g.parse(unescape(encodeURIComponent(e)));\n }\n }, p = u.BufferedBlockAlgorithm = c.extend({\n reset: function t() {\n this._data = new h.init(), this._nDataBytes = 0;\n },\n _append: function t(e) {\n \"string\" == typeof e && (e = d.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;\n },\n _process: function t(e) {\n var r = this._data,\n n = r.words,\n i = r.sigBytes,\n o = this.blockSize,\n a = i / (4 * o),\n u = (a = e ? s.ceil(a) : s.max((0 | a) - this._minBufferSize, 0)) * o,\n c = s.min(4 * u, i);\n\n if (u) {\n for (var l = 0; l < u; l += o) this._doProcessBlock(n, l);\n\n var f = n.splice(0, u);\n r.sigBytes -= c;\n }\n\n return new h.init(f, c);\n },\n clone: function t() {\n var e = c.clone.call(this);\n return e._data = this._data.clone(), e;\n },\n _minBufferSize: 0\n }), u.Hasher = p.extend({\n cfg: c.extend(),\n init: function t(e) {\n this.cfg = this.cfg.extend(e), this.reset();\n },\n reset: function t() {\n p.reset.call(this), this._doReset();\n },\n update: function t(e) {\n return this._append(e), this._process(), this;\n },\n finalize: function t(e) {\n return e && this._append(e), this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function t(e) {\n return function (t, r) {\n return new e.init(r).finalize(t);\n };\n },\n _createHmacHelper: function t(e) {\n return function (t, r) {\n return new v.HMAC.init(e, r).finalize(t);\n };\n }\n }), v = a.algo = {}, a);\n !function (t) {\n var e,\n r = (e = y).lib,\n n = r.Base,\n i = r.WordArray;\n (e = e.x64 = {}).Word = n.extend({\n init: function t(e, r) {\n this.high = e, this.low = r;\n }\n }), e.WordArray = n.extend({\n init: function t(e, r) {\n e = this.words = e || [], this.sigBytes = null != r ? r : 8 * e.length;\n },\n toX32: function t() {\n for (var e = this.words, r = e.length, n = [], o = 0; o < r; o++) {\n var s = e[o];\n n.push(s.high), n.push(s.low);\n }\n\n return i.create(n, this.sigBytes);\n },\n clone: function t() {\n 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();\n\n return e;\n }\n });\n }(), function () {\n var t = y,\n e = t.lib.WordArray;\n t.enc.Base64 = {\n stringify: function t(e) {\n var r = e.words,\n n = e.sigBytes,\n i = this._map;\n e.clamp(), e = [];\n\n 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));\n\n if (r = i.charAt(64)) for (; e.length % 4;) e.push(r);\n return e.join(\"\");\n },\n parse: function t(r) {\n var n = r.length,\n i = this._map;\n (o = i.charAt(64)) && -1 != (o = r.indexOf(o)) && (n = o);\n\n for (var o = [], s = 0, a = 0; a < n; a++) if (a % 4) {\n var u = i.indexOf(r.charAt(a - 1)) << a % 4 * 2,\n c = i.indexOf(r.charAt(a)) >>> 6 - a % 4 * 2;\n o[s >>> 2] |= (u | c) << 24 - s % 4 * 8, s++;\n }\n\n return e.create(o, s);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n };\n }(), function (t) {\n for (var e = y, r = (i = e.lib).WordArray, n = i.Hasher, i = e.algo, o = [], s = [], a = function t(e) {\n return 4294967296 * (e - (0 | e)) | 0;\n }, u = 2, c = 0; 64 > c;) {\n var h;\n\n t: {\n h = u;\n\n for (var l = t.sqrt(h), f = 2; f <= l; f++) if (!(h % f)) {\n h = !1;\n break t;\n }\n\n h = !0;\n }\n\n h && (8 > c && (o[c] = a(t.pow(u, .5))), s[c] = a(t.pow(u, 1 / 3)), c++), u++;\n }\n\n var g = [];\n i = i.SHA256 = n.extend({\n _doReset: function t() {\n this._hash = new r.init(o.slice(0));\n },\n _doProcessBlock: function t(e, r) {\n 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++) {\n if (16 > d) g[d] = 0 | e[r + d];else {\n var p = g[d - 15],\n v = g[d - 2];\n 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];\n }\n 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 }\n\n 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;\n },\n _doFinalize: function e() {\n var r = this._data,\n n = r.words,\n i = 8 * this._nDataBytes,\n o = 8 * r.sigBytes;\n 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;\n },\n clone: function t() {\n var e = n.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n e.SHA256 = n._createHelper(i), e.HmacSHA256 = n._createHmacHelper(i);\n }(Math), function () {\n function t() {\n return n.create.apply(n, arguments);\n }\n\n for (var e = y, 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();\n\n o = o.SHA512 = r.extend({\n _doReset: function t() {\n 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)]);\n },\n _doProcessBlock: function t(e, r) {\n 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++) {\n var W = a[J];\n if (16 > J) var z = W.high = 0 | e[r + 2 * J],\n Y = W.low = 0 | e[r + 2 * J + 1];else {\n z = ((Y = (z = a[J - 15]).high) >>> 1 | (G = z.low) << 31) ^ (Y >>> 8 | G << 24) ^ Y >>> 7;\n var G = (G >>> 1 | Y << 31) ^ (G >>> 8 | Y << 24) ^ (G >>> 7 | Y << 25),\n X = ((Y = (X = a[J - 2]).high) >>> 19 | ($ = X.low) << 13) ^ (Y << 3 | $ >>> 29) ^ Y >>> 6,\n $ = ($ >>> 19 | Y << 13) ^ ($ << 3 | Y >>> 29) ^ ($ >>> 6 | Y << 26),\n Q = (Y = a[J - 7]).high,\n Z = (tt = a[J - 16]).high,\n tt = tt.low;\n 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);\n W.high = z, W.low = Y;\n }\n Q = B & j ^ ~B & H, tt = O & M ^ ~O & V, W = C & R ^ C & D ^ R & D;\n var et = T & I ^ T & L ^ I & L,\n 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),\n nt = $.low;\n 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;\n }\n\n 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);\n },\n _doFinalize: function t() {\n var e = this._data,\n r = e.words,\n n = 8 * this._nDataBytes,\n i = 8 * e.sigBytes;\n 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();\n },\n clone: function t() {\n var e = r.clone.call(this);\n return e._hash = this._hash.clone(), e;\n },\n blockSize: 32\n }), e.SHA512 = r._createHelper(o), e.HmacSHA512 = r._createHmacHelper(o);\n }(), function () {\n var t = y,\n e = (i = t.x64).Word,\n r = i.WordArray,\n n = (i = t.algo).SHA512,\n i = i.SHA384 = n.extend({\n _doReset: function t() {\n 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)]);\n },\n _doFinalize: function t() {\n var e = n._doFinalize.call(this);\n\n return e.sigBytes -= 16, e;\n }\n });\n t.SHA384 = n._createHelper(i), t.HmacSHA384 = n._createHmacHelper(i);\n }();\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n var m,\n _ = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n function S(t) {\n var e,\n r,\n n = \"\";\n\n for (e = 0; e + 3 <= t.length; e += 3) r = parseInt(t.substring(e, e + 3), 16), n += _.charAt(r >> 6) + _.charAt(63 & r);\n\n for (e + 1 == t.length ? (r = parseInt(t.substring(e, e + 1), 16), n += _.charAt(r << 2)) : e + 2 == t.length && (r = parseInt(t.substring(e, e + 2), 16), n += _.charAt(r >> 2) + _.charAt((3 & r) << 4)), \"=\"; (3 & n.length) > 0;) n += \"=\";\n\n return n;\n }\n\n function b(t) {\n var e,\n r,\n n,\n i = \"\",\n o = 0;\n\n for (e = 0; e < t.length && \"=\" != t.charAt(e); ++e) (n = _.indexOf(t.charAt(e))) < 0 || (0 == o ? (i += R(n >> 2), r = 3 & n, o = 1) : 1 == o ? (i += R(r << 2 | n >> 4), r = 15 & n, o = 2) : 2 == o ? (i += R(r), i += R(n >> 2), r = 3 & n, o = 3) : (i += R(r << 2 | n >> 4), i += R(15 & n), o = 0));\n\n return 1 == o && (i += R(r << 2)), i;\n }\n\n function w(t) {\n var e,\n r = b(t),\n n = new Array();\n\n for (e = 0; 2 * e < r.length; ++e) n[e] = parseInt(r.substring(2 * e, 2 * e + 2), 16);\n\n return n;\n }\n\n function F(t, e, r) {\n null != t && (\"number\" == typeof t ? this.fromNumber(t, e, r) : null == e && \"string\" != typeof t ? this.fromString(t, 256) : this.fromString(t, e));\n }\n\n function E() {\n return new F(null);\n }\n\n \"Microsoft Internet Explorer\" == n.appName ? (F.prototype.am = function x(t, e, r, n, i, o) {\n for (var s = 32767 & e, a = e >> 15; --o >= 0;) {\n var u = 32767 & this[t],\n c = this[t++] >> 15,\n h = a * u + c * s;\n i = ((u = s * u + ((32767 & h) << 15) + r[n] + (1073741823 & i)) >>> 30) + (h >>> 15) + a * c + (i >>> 30), r[n++] = 1073741823 & u;\n }\n\n return i;\n }, m = 30) : \"Netscape\" != n.appName ? (F.prototype.am = function A(t, e, r, n, i, o) {\n for (; --o >= 0;) {\n var s = e * this[t++] + r[n] + i;\n i = Math.floor(s / 67108864), r[n++] = 67108863 & s;\n }\n\n return i;\n }, m = 26) : (F.prototype.am = function k(t, e, r, n, i, o) {\n for (var s = 16383 & e, a = e >> 14; --o >= 0;) {\n var u = 16383 & this[t],\n c = this[t++] >> 14,\n h = a * u + c * s;\n i = ((u = s * u + ((16383 & h) << 14) + r[n] + i) >> 28) + (h >> 14) + a * c, r[n++] = 268435455 & u;\n }\n\n return i;\n }, m = 28), F.prototype.DB = m, F.prototype.DM = (1 << m) - 1, F.prototype.DV = 1 << m;\n F.prototype.FV = Math.pow(2, 52), F.prototype.F1 = 52 - m, F.prototype.F2 = 2 * m - 52;\n var P,\n C,\n T = new Array();\n\n for (P = \"0\".charCodeAt(0), C = 0; C <= 9; ++C) T[P++] = C;\n\n for (P = \"a\".charCodeAt(0), C = 10; C < 36; ++C) T[P++] = C;\n\n for (P = \"A\".charCodeAt(0), C = 10; C < 36; ++C) T[P++] = C;\n\n function R(t) {\n return \"0123456789abcdefghijklmnopqrstuvwxyz\".charAt(t);\n }\n\n function I(t, e) {\n var r = T[t.charCodeAt(e)];\n return null == r ? -1 : r;\n }\n\n function D(t) {\n var e = E();\n return e.fromInt(t), e;\n }\n\n function L(t) {\n var e,\n r = 1;\n 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;\n }\n\n function N(t) {\n this.m = t;\n }\n\n function U(t) {\n 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;\n }\n\n function B(t, e) {\n return t & e;\n }\n\n function O(t, e) {\n return t | e;\n }\n\n function j(t, e) {\n return t ^ e;\n }\n\n function M(t, e) {\n return t & ~e;\n }\n\n function H(t) {\n if (0 == t) return -1;\n var e = 0;\n 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;\n }\n\n function V(t) {\n for (var e = 0; 0 != t;) t &= t - 1, ++e;\n\n return e;\n }\n\n function K() {}\n\n function q(t) {\n return t;\n }\n\n function J(t) {\n this.r2 = E(), this.q3 = E(), F.ONE.dlShiftTo(2 * t.t, this.r2), this.mu = this.r2.divide(t), this.m = t;\n }\n\n N.prototype.convert = function W(t) {\n return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t;\n }, N.prototype.revert = function z(t) {\n return t;\n }, N.prototype.reduce = function Y(t) {\n t.divRemTo(this.m, null, t);\n }, N.prototype.mulTo = function G(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, N.prototype.sqrTo = function X(t, e) {\n t.squareTo(e), this.reduce(e);\n }, U.prototype.convert = function $(t) {\n var e = E();\n return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && e.compareTo(F.ZERO) > 0 && this.m.subTo(e, e), e;\n }, U.prototype.revert = function Q(t) {\n var e = E();\n return t.copyTo(e), this.reduce(e), e;\n }, U.prototype.reduce = function Z(t) {\n for (; t.t <= this.mt2;) t[t.t++] = 0;\n\n for (var e = 0; e < this.m.t; ++e) {\n var r = 32767 & t[e],\n n = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;\n\n 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]++;\n }\n\n t.clamp(), t.drShiftTo(this.m.t, t), t.compareTo(this.m) >= 0 && t.subTo(this.m, t);\n }, U.prototype.mulTo = function tt(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, U.prototype.sqrTo = function et(t, e) {\n t.squareTo(e), this.reduce(e);\n }, F.prototype.copyTo = function rt(t) {\n for (var e = this.t - 1; e >= 0; --e) t[e] = this[e];\n\n t.t = this.t, t.s = this.s;\n }, F.prototype.fromInt = function nt(t) {\n this.t = 1, this.s = t < 0 ? -1 : 0, t > 0 ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0;\n }, F.prototype.fromString = function it(t, e) {\n var r;\n 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 {\n if (4 != e) return void this.fromRadix(t, e);\n r = 2;\n }\n this.t = 0, this.s = 0;\n\n for (var n = t.length, i = !1, o = 0; --n >= 0;) {\n var s = 8 == r ? 255 & t[n] : I(t, n);\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));\n }\n\n 8 == r && 0 != (128 & t[0]) && (this.s = -1, o > 0 && (this[this.t - 1] |= (1 << this.DB - o) - 1 << o)), this.clamp(), i && F.ZERO.subTo(this, this);\n }, F.prototype.clamp = function ot() {\n for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t;) --this.t;\n }, F.prototype.dlShiftTo = function st(t, e) {\n var r;\n\n for (r = this.t - 1; r >= 0; --r) e[r + t] = this[r];\n\n for (r = t - 1; r >= 0; --r) e[r] = 0;\n\n e.t = this.t + t, e.s = this.s;\n }, F.prototype.drShiftTo = function at(t, e) {\n for (var r = t; r < this.t; ++r) e[r - t] = this[r];\n\n e.t = Math.max(this.t - t, 0), e.s = this.s;\n }, F.prototype.lShiftTo = function ut(t, e) {\n var r,\n n = t % this.DB,\n i = this.DB - n,\n o = (1 << i) - 1,\n s = Math.floor(t / this.DB),\n a = this.s << n & this.DM;\n\n for (r = this.t - 1; r >= 0; --r) e[r + s + 1] = this[r] >> i | a, a = (this[r] & o) << n;\n\n for (r = s - 1; r >= 0; --r) e[r] = 0;\n\n e[s] = a, e.t = this.t + s + 1, e.s = this.s, e.clamp();\n }, F.prototype.rShiftTo = function ct(t, e) {\n e.s = this.s;\n var r = Math.floor(t / this.DB);\n if (r >= this.t) e.t = 0;else {\n var n = t % this.DB,\n i = this.DB - n,\n o = (1 << n) - 1;\n e[0] = this[r] >> n;\n\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\n n > 0 && (e[this.t - r - 1] |= (this.s & o) << i), e.t = this.t - r, e.clamp();\n }\n }, F.prototype.subTo = function ht(t, e) {\n 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;\n\n if (t.t < this.t) {\n for (n -= t.s; r < this.t;) n += this[r], e[r++] = n & this.DM, n >>= this.DB;\n\n n += this.s;\n } else {\n for (n += this.s; r < t.t;) n -= t[r], e[r++] = n & this.DM, n >>= this.DB;\n\n n -= t.s;\n }\n\n e.s = n < 0 ? -1 : 0, n < -1 ? e[r++] = this.DV + n : n > 0 && (e[r++] = n), e.t = r, e.clamp();\n }, F.prototype.multiplyTo = function lt(t, e) {\n var r = this.abs(),\n n = t.abs(),\n i = r.t;\n\n for (e.t = i + n.t; --i >= 0;) e[i] = 0;\n\n for (i = 0; i < n.t; ++i) e[i + r.t] = r.am(0, n[i], e, i, 0, r.t);\n\n e.s = 0, e.clamp(), this.s != t.s && F.ZERO.subTo(e, e);\n }, F.prototype.squareTo = function ft(t) {\n for (var e = this.abs(), r = t.t = 2 * e.t; --r >= 0;) t[r] = 0;\n\n for (r = 0; r < e.t - 1; ++r) {\n var n = e.am(r, e[r], t, 2 * r, 0, 1);\n (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);\n }\n\n t.t > 0 && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();\n }, F.prototype.divRemTo = function gt(t, e, r) {\n var n = t.abs();\n\n if (!(n.t <= 0)) {\n var i = this.abs();\n if (i.t < n.t) return null != e && e.fromInt(0), void (null != r && this.copyTo(r));\n null == r && (r = E());\n var o = E(),\n s = this.s,\n a = t.s,\n u = this.DB - L(n[n.t - 1]);\n u > 0 ? (n.lShiftTo(u, o), i.lShiftTo(u, r)) : (n.copyTo(o), i.copyTo(r));\n var c = o.t,\n h = o[c - 1];\n\n if (0 != h) {\n var l = h * (1 << this.F1) + (c > 1 ? o[c - 2] >> this.F2 : 0),\n f = this.FV / l,\n g = (1 << this.F1) / l,\n d = 1 << this.F2,\n p = r.t,\n v = p - c,\n y = null == e ? E() : e;\n\n for (o.dlShiftTo(v, y), r.compareTo(y) >= 0 && (r[r.t++] = 1, r.subTo(y, r)), F.ONE.dlShiftTo(c, y), y.subTo(o, o); o.t < c;) o[o.t++] = 0;\n\n for (; --v >= 0;) {\n var m = r[--p] == h ? this.DM : Math.floor(r[p] * f + (r[p - 1] + d) * g);\n 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);\n }\n\n null != e && (r.drShiftTo(c, e), s != a && F.ZERO.subTo(e, e)), r.t = c, r.clamp(), u > 0 && r.rShiftTo(u, r), s < 0 && F.ZERO.subTo(r, r);\n }\n }\n }, F.prototype.invDigit = function dt() {\n if (this.t < 1) return 0;\n var t = this[0];\n if (0 == (1 & t)) return 0;\n var e = 3 & t;\n 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;\n }, F.prototype.isEven = function pt() {\n return 0 == (this.t > 0 ? 1 & this[0] : this.s);\n }, F.prototype.exp = function vt(t, e) {\n if (t > 4294967295 || t < 1) return F.ONE;\n var r = E(),\n n = E(),\n i = e.convert(this),\n o = L(t) - 1;\n\n for (i.copyTo(r); --o >= 0;) if (e.sqrTo(r, n), (t & 1 << o) > 0) e.mulTo(n, i, r);else {\n var s = r;\n r = n, n = s;\n }\n\n return e.revert(r);\n }, F.prototype.toString = function yt(t) {\n if (this.s < 0) return \"-\" + this.negate().toString(t);\n var e;\n if (16 == t) e = 4;else if (8 == t) e = 3;else if (2 == t) e = 1;else if (32 == t) e = 5;else {\n if (4 != t) return this.toRadix(t);\n e = 2;\n }\n var r,\n n = (1 << e) - 1,\n i = !1,\n o = \"\",\n s = this.t,\n a = this.DB - s * this.DB % e;\n if (s-- > 0) for (a < this.DB && (r = this[s] >> a) > 0 && (i = !0, o = R(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 += R(r));\n return i ? o : \"0\";\n }, F.prototype.negate = function mt() {\n var t = E();\n return F.ZERO.subTo(this, t), t;\n }, F.prototype.abs = function _t() {\n return this.s < 0 ? this.negate() : this;\n }, F.prototype.compareTo = function St(t) {\n var e = this.s - t.s;\n if (0 != e) return e;\n var r = this.t;\n if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;\n\n for (; --r >= 0;) if (0 != (e = this[r] - t[r])) return e;\n\n return 0;\n }, F.prototype.bitLength = function bt() {\n return this.t <= 0 ? 0 : this.DB * (this.t - 1) + L(this[this.t - 1] ^ this.s & this.DM);\n }, F.prototype.mod = function wt(t) {\n var e = E();\n return this.abs().divRemTo(t, null, e), this.s < 0 && e.compareTo(F.ZERO) > 0 && t.subTo(e, e), e;\n }, F.prototype.modPowInt = function Ft(t, e) {\n var r;\n return r = t < 256 || e.isEven() ? new N(e) : new U(e), this.exp(t, r);\n }, F.ZERO = D(0), F.ONE = D(1), K.prototype.convert = q, K.prototype.revert = q, K.prototype.mulTo = function Et(t, e, r) {\n t.multiplyTo(e, r);\n }, K.prototype.sqrTo = function xt(t, e) {\n t.squareTo(e);\n }, J.prototype.convert = function At(t) {\n if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m);\n if (t.compareTo(this.m) < 0) return t;\n var e = E();\n return t.copyTo(e), this.reduce(e), e;\n }, J.prototype.revert = function kt(t) {\n return t;\n }, J.prototype.reduce = function Pt(t) {\n 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);\n\n for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0;) t.subTo(this.m, t);\n }, J.prototype.mulTo = function Ct(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, J.prototype.sqrTo = function Tt(t, e) {\n t.squareTo(e), this.reduce(e);\n };\n var Rt = [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],\n It = (1 << 26) / Rt[Rt.length - 1];\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n function Dt() {\n this.i = 0, this.j = 0, this.S = new Array();\n }\n\n F.prototype.chunkSize = function Lt(t) {\n return Math.floor(Math.LN2 * this.DB / Math.log(t));\n }, F.prototype.toRadix = function Nt(t) {\n if (null == t && (t = 10), 0 == this.signum() || t < 2 || t > 36) return \"0\";\n var e = this.chunkSize(t),\n r = Math.pow(t, e),\n n = D(r),\n i = E(),\n o = E(),\n s = \"\";\n\n for (this.divRemTo(n, i, o); i.signum() > 0;) s = (r + o.intValue()).toString(t).substr(1) + s, i.divRemTo(n, i, o);\n\n return o.intValue().toString(t) + s;\n }, F.prototype.fromRadix = function Ut(t, e) {\n this.fromInt(0), null == e && (e = 10);\n\n for (var r = this.chunkSize(e), n = Math.pow(e, r), i = !1, o = 0, s = 0, a = 0; a < t.length; ++a) {\n var u = I(t, a);\n 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));\n }\n\n o > 0 && (this.dMultiply(Math.pow(e, o)), this.dAddOffset(s, 0)), i && F.ZERO.subTo(this, this);\n }, F.prototype.fromNumber = function Bt(t, e, r) {\n if (\"number\" == typeof e) {\n if (t < 2) this.fromInt(1);else for (this.fromNumber(t, r), this.testBit(t - 1) || this.bitwiseTo(F.ONE.shiftLeft(t - 1), O, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(e);) this.dAddOffset(2, 0), this.bitLength() > t && this.subTo(F.ONE.shiftLeft(t - 1), this);\n } else {\n var n = new Array(),\n i = 7 & t;\n n.length = 1 + (t >> 3), e.nextBytes(n), i > 0 ? n[0] &= (1 << i) - 1 : n[0] = 0, this.fromString(n, 256);\n }\n }, F.prototype.bitwiseTo = function Ot(t, e, r) {\n var n,\n i,\n o = Math.min(t.t, this.t);\n\n for (n = 0; n < o; ++n) r[n] = e(this[n], t[n]);\n\n if (t.t < this.t) {\n for (i = t.s & this.DM, n = o; n < this.t; ++n) r[n] = e(this[n], i);\n\n r.t = this.t;\n } else {\n for (i = this.s & this.DM, n = o; n < t.t; ++n) r[n] = e(i, t[n]);\n\n r.t = t.t;\n }\n\n r.s = e(this.s, t.s), r.clamp();\n }, F.prototype.changeBit = function jt(t, e) {\n var r = F.ONE.shiftLeft(t);\n return this.bitwiseTo(r, e, r), r;\n }, F.prototype.addTo = function Mt(t, e) {\n 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;\n\n if (t.t < this.t) {\n for (n += t.s; r < this.t;) n += this[r], e[r++] = n & this.DM, n >>= this.DB;\n\n n += this.s;\n } else {\n for (n += this.s; r < t.t;) n += t[r], e[r++] = n & this.DM, n >>= this.DB;\n\n n += t.s;\n }\n\n e.s = n < 0 ? -1 : 0, n > 0 ? e[r++] = n : n < -1 && (e[r++] = this.DV + n), e.t = r, e.clamp();\n }, F.prototype.dMultiply = function Ht(t) {\n this[this.t] = this.am(0, t - 1, this, 0, 0, this.t), ++this.t, this.clamp();\n }, F.prototype.dAddOffset = function Vt(t, e) {\n if (0 != t) {\n for (; this.t <= e;) this[this.t++] = 0;\n\n for (this[e] += t; this[e] >= this.DV;) this[e] -= this.DV, ++e >= this.t && (this[this.t++] = 0), ++this[e];\n }\n }, F.prototype.multiplyLowerTo = function Kt(t, e, r) {\n var n,\n i = Math.min(this.t + t.t, e);\n\n for (r.s = 0, r.t = i; i > 0;) r[--i] = 0;\n\n for (n = r.t - this.t; i < n; ++i) r[i + this.t] = this.am(0, t[i], r, i, 0, this.t);\n\n for (n = Math.min(t.t, e); i < n; ++i) this.am(0, t[i], r, i, 0, e - i);\n\n r.clamp();\n }, F.prototype.multiplyUpperTo = function qt(t, e, r) {\n --e;\n var n = r.t = this.t + t.t - e;\n\n for (r.s = 0; --n >= 0;) r[n] = 0;\n\n 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);\n\n r.clamp(), r.drShiftTo(1, r);\n }, F.prototype.modInt = function Jt(t) {\n if (t <= 0) return 0;\n var e = this.DV % t,\n r = this.s < 0 ? t - 1 : 0;\n 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;\n return r;\n }, F.prototype.millerRabin = function Wt(t) {\n var e = this.subtract(F.ONE),\n r = e.getLowestSetBit();\n if (r <= 0) return !1;\n var n = e.shiftRight(r);\n (t = t + 1 >> 1) > Rt.length && (t = Rt.length);\n\n for (var i = E(), o = 0; o < t; ++o) {\n i.fromInt(Rt[Math.floor(Math.random() * Rt.length)]);\n var s = i.modPow(n, this);\n\n if (0 != s.compareTo(F.ONE) && 0 != s.compareTo(e)) {\n for (var a = 1; a++ < r && 0 != s.compareTo(e);) if (0 == (s = s.modPowInt(2, this)).compareTo(F.ONE)) return !1;\n\n if (0 != s.compareTo(e)) return !1;\n }\n }\n\n return !0;\n }, F.prototype.clone =\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n function zt() {\n var t = E();\n return this.copyTo(t), t;\n }, F.prototype.intValue = function Yt() {\n if (this.s < 0) {\n if (1 == this.t) return this[0] - this.DV;\n if (0 == this.t) return -1;\n } else {\n if (1 == this.t) return this[0];\n if (0 == this.t) return 0;\n }\n\n return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0];\n }, F.prototype.byteValue = function Gt() {\n return 0 == this.t ? this.s : this[0] << 24 >> 24;\n }, F.prototype.shortValue = function Xt() {\n return 0 == this.t ? this.s : this[0] << 16 >> 16;\n }, F.prototype.signum = function $t() {\n return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1;\n }, F.prototype.toByteArray = function Qt() {\n var t = this.t,\n e = new Array();\n e[0] = this.s;\n var r,\n n = this.DB - t * this.DB % 8,\n i = 0;\n 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);\n return e;\n }, F.prototype.equals = function Zt(t) {\n return 0 == this.compareTo(t);\n }, F.prototype.min = function te(t) {\n return this.compareTo(t) < 0 ? this : t;\n }, F.prototype.max = function ee(t) {\n return this.compareTo(t) > 0 ? this : t;\n }, F.prototype.and = function re(t) {\n var e = E();\n return this.bitwiseTo(t, B, e), e;\n }, F.prototype.or = function ne(t) {\n var e = E();\n return this.bitwiseTo(t, O, e), e;\n }, F.prototype.xor = function ie(t) {\n var e = E();\n return this.bitwiseTo(t, j, e), e;\n }, F.prototype.andNot = function oe(t) {\n var e = E();\n return this.bitwiseTo(t, M, e), e;\n }, F.prototype.not = function se() {\n for (var t = E(), e = 0; e < this.t; ++e) t[e] = this.DM & ~this[e];\n\n return t.t = this.t, t.s = ~this.s, t;\n }, F.prototype.shiftLeft = function ae(t) {\n var e = E();\n return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e;\n }, F.prototype.shiftRight = function ue(t) {\n var e = E();\n return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e;\n }, F.prototype.getLowestSetBit = function ce() {\n for (var t = 0; t < this.t; ++t) if (0 != this[t]) return t * this.DB + H(this[t]);\n\n return this.s < 0 ? this.t * this.DB : -1;\n }, F.prototype.bitCount = function he() {\n for (var t = 0, e = this.s & this.DM, r = 0; r < this.t; ++r) t += V(this[r] ^ e);\n\n return t;\n }, F.prototype.testBit = function le(t) {\n var e = Math.floor(t / this.DB);\n return e >= this.t ? 0 != this.s : 0 != (this[e] & 1 << t % this.DB);\n }, F.prototype.setBit = function fe(t) {\n return this.changeBit(t, O);\n }, F.prototype.clearBit = function ge(t) {\n return this.changeBit(t, M);\n }, F.prototype.flipBit = function de(t) {\n return this.changeBit(t, j);\n }, F.prototype.add = function pe(t) {\n var e = E();\n return this.addTo(t, e), e;\n }, F.prototype.subtract = function ve(t) {\n var e = E();\n return this.subTo(t, e), e;\n }, F.prototype.multiply = function ye(t) {\n var e = E();\n return this.multiplyTo(t, e), e;\n }, F.prototype.divide = function me(t) {\n var e = E();\n return this.divRemTo(t, e, null), e;\n }, F.prototype.remainder = function _e(t) {\n var e = E();\n return this.divRemTo(t, null, e), e;\n }, F.prototype.divideAndRemainder = function Se(t) {\n var e = E(),\n r = E();\n return this.divRemTo(t, e, r), new Array(e, r);\n }, F.prototype.modPow = function be(t, e) {\n var r,\n n,\n i = t.bitLength(),\n o = D(1);\n if (i <= 0) return o;\n r = i < 18 ? 1 : i < 48 ? 3 : i < 144 ? 4 : i < 768 ? 5 : 6, n = i < 8 ? new N(e) : e.isEven() ? new J(e) : new U(e);\n var s = new Array(),\n a = 3,\n u = r - 1,\n c = (1 << r) - 1;\n\n if (s[1] = n.convert(this), r > 1) {\n var h = E();\n\n for (n.sqrTo(s[1], h); a <= c;) s[a] = E(), n.mulTo(h, s[a - 2], s[a]), a += 2;\n }\n\n var l,\n f,\n g = t.t - 1,\n d = !0,\n p = E();\n\n for (i = L(t[g]) - 1; g >= 0;) {\n 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;\n\n if ((i -= a) < 0 && (i += this.DB, --g), d) s[l].copyTo(o), d = !1;else {\n for (; a > 1;) n.sqrTo(o, p), n.sqrTo(p, o), a -= 2;\n\n a > 0 ? n.sqrTo(o, p) : (f = o, o = p, p = f), n.mulTo(p, s[l], o);\n }\n\n 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);\n }\n\n return n.revert(o);\n }, F.prototype.modInverse = function we(t) {\n var e = t.isEven();\n if (this.isEven() && e || 0 == t.signum()) return F.ZERO;\n\n for (var r = t.clone(), n = this.clone(), i = D(1), o = D(0), s = D(0), a = D(1); 0 != r.signum();) {\n 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);\n\n 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);\n\n 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));\n }\n\n return 0 != n.compareTo(F.ONE) ? F.ZERO : a.compareTo(t) >= 0 ? a.subtract(t) : a.signum() < 0 ? (a.addTo(t, a), a.signum() < 0 ? a.add(t) : a) : a;\n }, F.prototype.pow = function Fe(t) {\n return this.exp(t, new K());\n }, F.prototype.gcd = function Ee(t) {\n var e = this.s < 0 ? this.negate() : this.clone(),\n r = t.s < 0 ? t.negate() : t.clone();\n\n if (e.compareTo(r) < 0) {\n var n = e;\n e = r, r = n;\n }\n\n var i = e.getLowestSetBit(),\n o = r.getLowestSetBit();\n if (o < 0) return e;\n\n 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));\n\n return o > 0 && r.lShiftTo(o, r), r;\n }, F.prototype.isProbablePrime = function xe(t) {\n var e,\n r = this.abs();\n\n if (1 == r.t && r[0] <= Rt[Rt.length - 1]) {\n for (e = 0; e < Rt.length; ++e) if (r[0] == Rt[e]) return !0;\n\n return !1;\n }\n\n if (r.isEven()) return !1;\n\n for (e = 1; e < Rt.length;) {\n for (var n = Rt[e], i = e + 1; i < Rt.length && n < It;) n *= Rt[i++];\n\n for (n = r.modInt(n); e < i;) if (n % Rt[e++] == 0) return !1;\n }\n\n return r.millerRabin(t);\n }, F.prototype.square = function Ae() {\n var t = E();\n return this.squareTo(t), t;\n }, Dt.prototype.init = function ke(t) {\n var e, r, n;\n\n for (e = 0; e < 256; ++e) this.S[e] = e;\n\n 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;\n\n this.i = 0, this.j = 0;\n }, Dt.prototype.next = function Pe() {\n var t;\n 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];\n };\n var Ce, Te, Re;\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n function Ie() {\n !function t(e) {\n Te[Re++] ^= 255 & e, Te[Re++] ^= e >> 8 & 255, Te[Re++] ^= e >> 16 & 255, Te[Re++] ^= e >> 24 & 255, Re >= 256 && (Re -= 256);\n }(new Date().getTime());\n }\n\n if (null == Te) {\n var De;\n\n if (Te = new Array(), Re = 0, void 0 !== i && (void 0 !== i.crypto || void 0 !== i.msCrypto)) {\n var Le = i.crypto || i.msCrypto;\n\n if (Le.getRandomValues) {\n var Ne = new Uint8Array(32);\n\n for (Le.getRandomValues(Ne), De = 0; De < 32; ++De) Te[Re++] = Ne[De];\n } else if (\"Netscape\" == n.appName && n.appVersion < \"5\") {\n var Ue = i.crypto.random(32);\n\n for (De = 0; De < Ue.length; ++De) Te[Re++] = 255 & Ue.charCodeAt(De);\n }\n }\n\n for (; Re < 256;) De = Math.floor(65536 * Math.random()), Te[Re++] = De >>> 8, Te[Re++] = 255 & De;\n\n Re = 0, Ie();\n }\n\n function Be() {\n if (null == Ce) {\n for (Ie(), (Ce = function t() {\n return new Dt();\n }()).init(Te), Re = 0; Re < Te.length; ++Re) Te[Re] = 0;\n\n Re = 0;\n }\n\n return Ce.next();\n }\n\n function Oe() {}\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n\n function je(t, e) {\n return new F(t, e);\n }\n\n function Me(t, e, r) {\n 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;\n\n return n;\n }\n\n function He() {\n 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 }\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n\n function Ve(t, e) {\n this.x = e, this.q = t;\n }\n\n function Ke(t, e, r, n) {\n this.curve = t, this.x = e, this.y = r, this.z = null == n ? F.ONE : n, this.zinv = null;\n }\n\n function qe(t, e, r) {\n this.q = t, this.a = this.fromBigInteger(e), this.b = this.fromBigInteger(r), this.infinity = new Ke(this, null, null);\n }\n\n Oe.prototype.nextBytes = function Je(t) {\n var e;\n\n for (e = 0; e < t.length; ++e) t[e] = Be();\n }, He.prototype.doPublic = function We(t) {\n return t.modPowInt(this.e, this.n);\n }, He.prototype.setPublic = function ze(t, e) {\n if (this.isPublic = !0, this.isPrivate = !1, \"string\" != typeof t) this.n = t, this.e = e;else {\n if (!(null != t && null != e && t.length > 0 && e.length > 0)) throw \"Invalid RSA public key\";\n this.n = je(t, 16), this.e = parseInt(e, 16);\n }\n }, He.prototype.encrypt = function Ye(t) {\n var e = function r(t, e) {\n if (e < t.length + 11) throw \"Message too long for RSA\";\n\n for (var r = new Array(), n = t.length - 1; n >= 0 && e > 0;) {\n var i = t.charCodeAt(n--);\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);\n }\n\n r[--e] = 0;\n\n for (var o = new Oe(), s = new Array(); e > 2;) {\n for (s[0] = 0; 0 == s[0];) o.nextBytes(s);\n\n r[--e] = s[0];\n }\n\n return r[--e] = 2, r[--e] = 0, new F(r);\n }(t, this.n.bitLength() + 7 >> 3);\n\n if (null == e) return null;\n var n = this.doPublic(e);\n if (null == n) return null;\n var i = n.toString(16);\n return 0 == (1 & i.length) ? i : \"0\" + i;\n }, He.prototype.encryptOAEP = function Ge(t, e, r) {\n var n = function i(t, e, r, n) {\n var i = br.crypto.MessageDigest,\n o = br.crypto.Util,\n s = null;\n if (r || (r = \"sha1\"), \"string\" == typeof r && (s = i.getCanonicalAlgName(r), n = i.getHashLength(s), r = function t(e) {\n return Nr(o.hashHex(Ur(e), s));\n }), t.length + 2 * n + 2 > e) throw \"Message too long for RSA\";\n var a,\n u = \"\";\n\n for (a = 0; a < e - t.length - 2 * n - 2; a += 1) u += \"\\0\";\n\n var c = r(\"\") + u + \"\u0001\" + t,\n h = new Array(n);\n new Oe().nextBytes(h);\n var l = Me(h, c.length, r),\n f = [];\n\n for (a = 0; a < c.length; a += 1) f[a] = c.charCodeAt(a) ^ l.charCodeAt(a);\n\n var g = Me(f, h.length, r),\n d = [0];\n\n for (a = 0; a < h.length; a += 1) d[a + 1] = h[a] ^ g.charCodeAt(a);\n\n return new F(d.concat(f));\n }(t, this.n.bitLength() + 7 >> 3, e, r);\n\n if (null == n) return null;\n var o = this.doPublic(n);\n if (null == o) return null;\n var s = o.toString(16);\n return 0 == (1 & s.length) ? s : \"0\" + s;\n }, He.prototype.type = \"RSA\", Ve.prototype.equals = function Xe(t) {\n return t == this || this.q.equals(t.q) && this.x.equals(t.x);\n }, Ve.prototype.toBigInteger = function $e() {\n return this.x;\n }, Ve.prototype.negate = function Qe() {\n return new Ve(this.q, this.x.negate().mod(this.q));\n }, Ve.prototype.add = function Ze(t) {\n return new Ve(this.q, this.x.add(t.toBigInteger()).mod(this.q));\n }, Ve.prototype.subtract = function tr(t) {\n return new Ve(this.q, this.x.subtract(t.toBigInteger()).mod(this.q));\n }, Ve.prototype.multiply = function er(t) {\n return new Ve(this.q, this.x.multiply(t.toBigInteger()).mod(this.q));\n }, Ve.prototype.square = function rr() {\n return new Ve(this.q, this.x.square().mod(this.q));\n }, Ve.prototype.divide = function nr(t) {\n return new Ve(this.q, this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q));\n }, Ke.prototype.getX = function ir() {\n 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));\n }, Ke.prototype.getY = function or() {\n 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));\n }, Ke.prototype.equals = function sr(t) {\n 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(F.ZERO) && t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO));\n }, Ke.prototype.isInfinity = function ar() {\n return null == this.x && null == this.y || this.z.equals(F.ZERO) && !this.y.toBigInteger().equals(F.ZERO);\n }, Ke.prototype.negate = function ur() {\n return new Ke(this.curve, this.x, this.y.negate(), this.z);\n }, Ke.prototype.add = function cr(t) {\n if (this.isInfinity()) return t;\n if (t.isInfinity()) return this;\n var e = t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),\n r = t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);\n if (F.ZERO.equals(r)) return F.ZERO.equals(e) ? this.twice() : this.curve.getInfinity();\n var n = new F(\"3\"),\n i = this.x.toBigInteger(),\n o = this.y.toBigInteger(),\n s = (t.x.toBigInteger(), t.y.toBigInteger(), r.square()),\n a = s.multiply(r),\n u = i.multiply(s),\n c = e.square().multiply(this.z),\n h = c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),\n 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),\n f = a.multiply(this.z).multiply(t.z).mod(this.curve.q);\n return new Ke(this.curve, this.curve.fromBigInteger(h), this.curve.fromBigInteger(l), f);\n }, Ke.prototype.twice = function hr() {\n if (this.isInfinity()) return this;\n if (0 == this.y.toBigInteger().signum()) return this.curve.getInfinity();\n var t = new F(\"3\"),\n e = this.x.toBigInteger(),\n r = this.y.toBigInteger(),\n n = r.multiply(this.z),\n i = n.multiply(r).mod(this.curve.q),\n o = this.curve.a.toBigInteger(),\n s = e.square().multiply(t);\n F.ZERO.equals(o) || (s = s.add(this.z.square().multiply(o)));\n var a = (s = s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),\n u = s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),\n c = n.square().multiply(n).shiftLeft(3).mod(this.curve.q);\n return new Ke(this.curve, this.curve.fromBigInteger(a), this.curve.fromBigInteger(u), c);\n }, Ke.prototype.multiply = function lr(t) {\n if (this.isInfinity()) return this;\n if (0 == t.signum()) return this.curve.getInfinity();\n var e,\n r = t,\n n = r.multiply(new F(\"3\")),\n i = this.negate(),\n o = this,\n s = this.curve.q.subtract(t),\n a = s.multiply(new F(\"3\")),\n u = new Ke(this.curve, this.x, this.y),\n c = u.negate();\n\n for (e = n.bitLength() - 2; e > 0; --e) {\n o = o.twice();\n var h = n.testBit(e);\n h != r.testBit(e) && (o = o.add(h ? this : i));\n }\n\n for (e = a.bitLength() - 2; e > 0; --e) {\n u = u.twice();\n var l = a.testBit(e);\n l != s.testBit(e) && (u = u.add(l ? u : c));\n }\n\n return o;\n }, Ke.prototype.multiplyTwo = function fr(t, e, r) {\n var n;\n n = t.bitLength() > r.bitLength() ? t.bitLength() - 1 : r.bitLength() - 1;\n\n 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;\n\n return i;\n }, qe.prototype.getQ = function gr() {\n return this.q;\n }, qe.prototype.getA = function dr() {\n return this.a;\n }, qe.prototype.getB = function pr() {\n return this.b;\n }, qe.prototype.equals = function vr(t) {\n return t == this || this.q.equals(t.q) && this.a.equals(t.a) && this.b.equals(t.b);\n }, qe.prototype.getInfinity = function yr() {\n return this.infinity;\n }, qe.prototype.fromBigInteger = function mr(t) {\n return new Ve(this.q, t);\n }, qe.prototype.decodePointHex = function _r(t) {\n switch (parseInt(t.substr(0, 2), 16)) {\n case 0:\n return this.infinity;\n\n case 2:\n case 3:\n return null;\n\n case 4:\n case 6:\n case 7:\n var e = (t.length - 2) / 2,\n r = t.substr(2, e),\n n = t.substr(e + 2, e);\n return new Ke(this, this.fromBigInteger(new F(r, 16)), this.fromBigInteger(new F(n, 16)));\n\n default:\n return null;\n }\n },\n /*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\n Ve.prototype.getByteLength = function () {\n return Math.floor((this.toBigInteger().bitLength() + 7) / 8);\n }, Ke.prototype.getEncoded = function (t) {\n var e = function t(e, r) {\n var n = e.toByteArrayUnsigned();\n if (r < n.length) n = n.slice(n.length - r);else for (; r > n.length;) n.unshift(0);\n return n;\n },\n r = this.getX().toBigInteger(),\n n = this.getY().toBigInteger(),\n i = e(r, 32);\n\n return t ? n.isEven() ? i.unshift(2) : i.unshift(3) : (i.unshift(4), i = i.concat(e(n, 32))), i;\n }, Ke.decodeFrom = function (t, e) {\n e[0];\n var r = e.length - 1,\n n = e.slice(1, 1 + r / 2),\n i = e.slice(1 + r / 2, 1 + r);\n n.unshift(0), i.unshift(0);\n var o = new F(n),\n s = new F(i);\n return new Ke(t, t.fromBigInteger(o), t.fromBigInteger(s));\n }, Ke.decodeFromHex = function (t, e) {\n e.substr(0, 2);\n var r = e.length - 2,\n n = e.substr(2, r / 2),\n i = e.substr(2 + r / 2, r / 2),\n o = new F(n, 16),\n s = new F(i, 16);\n return new Ke(t, t.fromBigInteger(o), t.fromBigInteger(s));\n }, Ke.prototype.add2D = function (t) {\n if (this.isInfinity()) return t;\n if (t.isInfinity()) return this;\n if (this.x.equals(t.x)) return this.y.equals(t.y) ? this.twice() : this.curve.getInfinity();\n var e = t.x.subtract(this.x),\n r = t.y.subtract(this.y).divide(e),\n n = r.square().subtract(this.x).subtract(t.x),\n i = r.multiply(this.x.subtract(n)).subtract(this.y);\n return new Ke(this.curve, n, i);\n }, Ke.prototype.twice2D = function () {\n if (this.isInfinity()) return this;\n if (0 == this.y.toBigInteger().signum()) return this.curve.getInfinity();\n var t = this.curve.fromBigInteger(F.valueOf(2)),\n e = this.curve.fromBigInteger(F.valueOf(3)),\n r = this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),\n n = r.square().subtract(this.x.multiply(t)),\n i = r.multiply(this.x.subtract(n)).subtract(this.y);\n return new Ke(this.curve, n, i);\n }, Ke.prototype.multiply2D = function (t) {\n if (this.isInfinity()) return this;\n if (0 == t.signum()) return this.curve.getInfinity();\n var e,\n r = t,\n n = r.multiply(new F(\"3\")),\n i = this.negate(),\n o = this;\n\n for (e = n.bitLength() - 2; e > 0; --e) {\n o = o.twice();\n var s = n.testBit(e);\n s != r.testBit(e) && (o = o.add2D(s ? this : i));\n }\n\n return o;\n }, Ke.prototype.isOnCurve = function () {\n var t = this.getX().toBigInteger(),\n e = this.getY().toBigInteger(),\n r = this.curve.getA().toBigInteger(),\n n = this.curve.getB().toBigInteger(),\n i = this.curve.getQ(),\n o = e.multiply(e).mod(i),\n s = t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);\n return o.equals(s);\n }, Ke.prototype.toString = function () {\n return \"(\" + this.getX().toBigInteger().toString() + \",\" + this.getY().toBigInteger().toString() + \")\";\n }, Ke.prototype.validate = function () {\n var t = this.curve.getQ();\n if (this.isInfinity()) throw new Error(\"Point is at infinity.\");\n var e = this.getX().toBigInteger(),\n r = this.getY().toBigInteger();\n if (e.compareTo(F.ONE) < 0 || e.compareTo(t.subtract(F.ONE)) > 0) throw new Error(\"x coordinate out of bounds\");\n if (r.compareTo(F.ONE) < 0 || r.compareTo(t.subtract(F.ONE)) > 0) throw new Error(\"y coordinate out of bounds\");\n if (!this.isOnCurve()) throw new Error(\"Point is not on the curve.\");\n if (this.multiply(t).isInfinity()) throw new Error(\"Point is not a scalar multiple of G.\");\n return !0;\n };\n /*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\n\n var Sr = function () {\n 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\"),\n e = new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\", \"g\"),\n n = {\n '\"': '\"',\n \"/\": \"/\",\n \"\\\\\": \"\\\\\",\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\\t\"\n };\n\n function i(t, e, r) {\n return e ? n[e] : String.fromCharCode(parseInt(r, 16));\n }\n\n var o = new String(\"\"),\n s = Object.hasOwnProperty;\n return function (n, a) {\n var u,\n c,\n h = n.match(t),\n l = h[0],\n f = !1;\n \"{\" === l ? u = {} : \"[\" === l ? u = [] : (u = [], f = !0);\n\n for (var g = [u], d = 1 - f, p = h.length; d < p; ++d) {\n var v;\n\n switch ((l = h[d]).charCodeAt(0)) {\n default:\n (v = g[0])[c || v.length] = +l, c = void 0;\n break;\n\n case 34:\n if (-1 !== (l = l.substring(1, l.length - 1)).indexOf(\"\\\\\") && (l = l.replace(e, i)), v = g[0], !c) {\n if (!(v instanceof Array)) {\n c = l || o;\n break;\n }\n\n c = v.length;\n }\n\n v[c] = l, c = void 0;\n break;\n\n case 91:\n v = g[0], g.unshift(v[c || v.length] = []), c = void 0;\n break;\n\n case 93:\n g.shift();\n break;\n\n case 102:\n (v = g[0])[c || v.length] = !1, c = void 0;\n break;\n\n case 110:\n (v = g[0])[c || v.length] = null, c = void 0;\n break;\n\n case 116:\n (v = g[0])[c || v.length] = !0, c = void 0;\n break;\n\n case 123:\n v = g[0], g.unshift(v[c || v.length] = {}), c = void 0;\n break;\n\n case 125:\n g.shift();\n }\n }\n\n if (f) {\n if (1 !== g.length) throw new Error();\n u = u[0];\n } else if (g.length) throw new Error();\n\n if (a) {\n u = function t(e, n) {\n var i = e[n];\n\n if (i && \"object\" === (void 0 === i ? \"undefined\" : r(i))) {\n var o = null;\n\n for (var u in i) if (s.call(i, u) && i !== e) {\n var c = t(i, u);\n void 0 !== c ? i[u] = c : (o || (o = []), o.push(u));\n }\n\n if (o) for (var h = o.length; --h >= 0;) delete i[o[h]];\n }\n\n return a.call(e, n, i);\n }({\n \"\": u\n }, \"\");\n }\n\n return u;\n };\n }();\n\n void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.asn1 && br.asn1 || (br.asn1 = {}), br.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (t) {\n var e = t.toString(16);\n return e.length % 2 == 1 && (e = \"0\" + e), e;\n }, this.bigIntToMinTwosComplementsHex = function (t) {\n var e = t.toString(16);\n if (\"-\" != e.substr(0, 1)) e.length % 2 == 1 ? e = \"0\" + e : e.match(/^[0-7]/) || (e = \"00\" + e);else {\n var r = e.substr(1).length;\n r % 2 == 1 ? r += 1 : e.match(/^[0-7]/) || (r += 2);\n\n for (var n = \"\", i = 0; i < r; i++) n += \"f\";\n\n e = new F(n, 16).xor(t).add(F.ONE).toString(16).replace(/^-/, \"\");\n }\n return e;\n }, this.getPEMStringFromHex = function (t, e) {\n return Mr(t, e);\n }, this.newObject = function (t) {\n var e = br.asn1,\n r = e.ASN1Object,\n n = e.DERBoolean,\n i = e.DERInteger,\n o = e.DERBitString,\n s = e.DEROctetString,\n a = e.DERNull,\n u = e.DERObjectIdentifier,\n c = e.DEREnumerated,\n h = e.DERUTF8String,\n l = e.DERNumericString,\n f = e.DERPrintableString,\n g = e.DERTeletexString,\n d = e.DERIA5String,\n p = e.DERUTCTime,\n v = e.DERGeneralizedTime,\n y = e.DERVisibleString,\n m = e.DERBMPString,\n _ = e.DERSequence,\n S = e.DERSet,\n b = e.DERTaggedObject,\n w = e.ASN1Util.newObject;\n if (t instanceof e.ASN1Object) return t;\n var F = Object.keys(t);\n if (1 != F.length) throw new Error(\"key of param shall be only one.\");\n var E = F[0];\n 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);\n if (\"bool\" == E) return new n(t[E]);\n if (\"int\" == E) return new i(t[E]);\n if (\"bitstr\" == E) return new o(t[E]);\n if (\"octstr\" == E) return new s(t[E]);\n if (\"null\" == E) return new a(t[E]);\n if (\"oid\" == E) return new u(t[E]);\n if (\"enum\" == E) return new c(t[E]);\n if (\"utf8str\" == E) return new h(t[E]);\n if (\"numstr\" == E) return new l(t[E]);\n if (\"prnstr\" == E) return new f(t[E]);\n if (\"telstr\" == E) return new g(t[E]);\n if (\"ia5str\" == E) return new d(t[E]);\n if (\"utctime\" == E) return new p(t[E]);\n if (\"gentime\" == E) return new v(t[E]);\n if (\"visstr\" == E) return new y(t[E]);\n if (\"bmpstr\" == E) return new m(t[E]);\n if (\"asn1\" == E) return new r(t[E]);\n\n if (\"seq\" == E) {\n for (var x = t[E], A = [], k = 0; k < x.length; k++) {\n var P = w(x[k]);\n A.push(P);\n }\n\n return new _({\n array: A\n });\n }\n\n if (\"set\" == E) {\n for (x = t[E], A = [], k = 0; k < x.length; k++) {\n P = w(x[k]);\n A.push(P);\n }\n\n return new S({\n array: A\n });\n }\n\n if (\"tag\" == E) {\n var C = t[E];\n\n if (\"[object Array]\" === Object.prototype.toString.call(C) && 3 == C.length) {\n var T = w(C[2]);\n return new b({\n tag: C[0],\n explicit: C[1],\n obj: T\n });\n }\n\n return new b(C);\n }\n }, this.jsonToASN1HEX = function (t) {\n return this.newObject(t).getEncodedHex();\n };\n }(), br.asn1.ASN1Util.oidHexToInt = function (t) {\n 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) {\n var o = (\"00000000\" + parseInt(t.substr(i, 2), 16).toString(2)).slice(-8);\n if (n += o.substr(1, 7), \"0\" == o.substr(0, 1)) e = e + \".\" + new F(n, 2).toString(10), n = \"\";\n }\n\n return e;\n }, br.asn1.ASN1Util.oidIntToHex = function (t) {\n var e = function t(e) {\n var r = e.toString(16);\n return 1 == r.length && (r = \"0\" + r), r;\n },\n r = function t(r) {\n var n = \"\",\n i = new F(r, 10).toString(2),\n o = 7 - i.length % 7;\n 7 == o && (o = 0);\n\n for (var s = \"\", a = 0; a < o; a++) s += \"0\";\n\n i = s + i;\n\n for (a = 0; a < i.length - 1; a += 7) {\n var u = i.substr(a, 7);\n a != i.length - 7 && (u = \"1\" + u), n += e(parseInt(u, 2));\n }\n\n return n;\n };\n\n if (!t.match(/^[0-9.]+$/)) throw \"malformed oid string: \" + t;\n var n = \"\",\n i = t.split(\".\"),\n o = 40 * parseInt(i[0]) + parseInt(i[1]);\n n += e(o), i.splice(0, 2);\n\n for (var s = 0; s < i.length; s++) n += r(i[s]);\n\n return n;\n }, br.asn1.ASN1Object = function (t) {\n this.params = null, this.getLengthHexFromValue = function () {\n if (void 0 === this.hV || null == this.hV) throw new Error(\"this.hV is null or undefined\");\n if (this.hV.length % 2 == 1) throw new Error(\"value hex must be even length: n=\" + \"\".length + \",v=\" + this.hV);\n var t = this.hV.length / 2,\n e = t.toString(16);\n if (e.length % 2 == 1 && (e = \"0\" + e), t < 128) return e;\n var r = e.length / 2;\n if (r > 15) throw \"ASN.1 length too long to represent by 8x: n = \" + t.toString(16);\n return (128 + r).toString(16) + e;\n }, this.getEncodedHex = function () {\n 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;\n }, this.getValueHex = function () {\n return this.getEncodedHex(), this.hV;\n }, this.getFreshValueHex = function () {\n return \"\";\n }, this.setByParam = function (t) {\n this.params = t;\n }, null != t && null != t.tlv && (this.hTLV = t.tlv, this.isModified = !1);\n }, br.asn1.DERAbstractString = function (t) {\n br.asn1.DERAbstractString.superclass.constructor.call(this);\n this.getString = function () {\n return this.s;\n }, this.setString = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = t, this.hV = Dr(this.s).toLowerCase();\n }, this.setStringHex = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DERAbstractString, br.asn1.ASN1Object), br.asn1.DERAbstractTime = function (t) {\n br.asn1.DERAbstractTime.superclass.constructor.call(this);\n this.localDateToUTC = function (t) {\n var e = t.getTime() + 6e4 * t.getTimezoneOffset();\n return new Date(e);\n }, this.formatDate = function (t, e, r) {\n var n = this.zeroPadding,\n i = this.localDateToUTC(t),\n o = String(i.getFullYear());\n \"utc\" == e && (o = o.substr(2, 2));\n 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);\n\n if (!0 === r) {\n var a = i.getMilliseconds();\n\n if (0 != a) {\n var u = n(String(a), 3);\n s = s + \".\" + (u = u.replace(/[0]+$/, \"\"));\n }\n }\n\n return s + \"Z\";\n }, this.zeroPadding = function (t, e) {\n return t.length >= e ? t : new Array(e - t.length + 1).join(\"0\") + t;\n }, this.getString = function () {\n return this.s;\n }, this.setString = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = t, this.hV = Pr(t);\n }, this.setByDateValue = function (t, e, r, n, i, o) {\n var s = new Date(Date.UTC(t, e - 1, r, n, i, o, 0));\n this.setByDate(s);\n }, this.getFreshValueHex = function () {\n return this.hV;\n };\n }, o.lang.extend(br.asn1.DERAbstractTime, br.asn1.ASN1Object), br.asn1.DERAbstractStructured = function (t) {\n br.asn1.DERAbstractString.superclass.constructor.call(this);\n this.setByASN1ObjectArray = function (t) {\n this.hTLV = null, this.isModified = !0, this.asn1Array = t;\n }, this.appendASN1Object = function (t) {\n this.hTLV = null, this.isModified = !0, this.asn1Array.push(t);\n }, this.asn1Array = new Array(), void 0 !== t && void 0 !== t.array && (this.asn1Array = t.array);\n }, o.lang.extend(br.asn1.DERAbstractStructured, br.asn1.ASN1Object), br.asn1.DERBoolean = function (t) {\n br.asn1.DERBoolean.superclass.constructor.call(this), this.hT = \"01\", this.hTLV = 0 == t ? \"010100\" : \"0101ff\";\n }, o.lang.extend(br.asn1.DERBoolean, br.asn1.ASN1Object), br.asn1.DERInteger = function (t) {\n br.asn1.DERInteger.superclass.constructor.call(this), this.hT = \"02\", this.setByBigInteger = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = br.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t);\n }, this.setByInteger = function (t) {\n var e = new F(String(t), 10);\n this.setByBigInteger(e);\n }, this.setValueHex = function (t) {\n this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DERInteger, br.asn1.ASN1Object), br.asn1.DERBitString = function (t) {\n if (void 0 !== t && void 0 !== t.obj) {\n var e = br.asn1.ASN1Util.newObject(t.obj);\n t.hex = \"00\" + e.getEncodedHex();\n }\n\n br.asn1.DERBitString.superclass.constructor.call(this), this.hT = \"03\", this.setHexValueIncludingUnusedBits = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = t;\n }, this.setUnusedBitsAndHexValue = function (t, e) {\n if (t < 0 || 7 < t) throw \"unused bits shall be from 0 to 7: u = \" + t;\n var r = \"0\" + t;\n this.hTLV = null, this.isModified = !0, this.hV = r + e;\n }, this.setByBinaryString = function (t) {\n var e = 8 - (t = t.replace(/0+$/, \"\")).length % 8;\n 8 == e && (e = 0);\n\n for (var r = 0; r <= e; r++) t += \"0\";\n\n var n = \"\";\n\n for (r = 0; r < t.length - 1; r += 8) {\n var i = t.substr(r, 8),\n o = parseInt(i, 2).toString(16);\n 1 == o.length && (o = \"0\" + o), n += o;\n }\n\n this.hTLV = null, this.isModified = !0, this.hV = \"0\" + e + n;\n }, this.setByBooleanArray = function (t) {\n for (var e = \"\", r = 0; r < t.length; r++) 1 == t[r] ? e += \"1\" : e += \"0\";\n\n this.setByBinaryString(e);\n }, this.newFalseArray = function (t) {\n for (var e = new Array(t), r = 0; r < t; r++) e[r] = !1;\n\n return e;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DERBitString, br.asn1.ASN1Object), br.asn1.DEROctetString = function (t) {\n if (void 0 !== t && void 0 !== t.obj) {\n var e = br.asn1.ASN1Util.newObject(t.obj);\n t.hex = e.getEncodedHex();\n }\n\n br.asn1.DEROctetString.superclass.constructor.call(this, t), this.hT = \"04\";\n }, o.lang.extend(br.asn1.DEROctetString, br.asn1.DERAbstractString), br.asn1.DERNull = function () {\n br.asn1.DERNull.superclass.constructor.call(this), this.hT = \"05\", this.hTLV = \"0500\";\n }, o.lang.extend(br.asn1.DERNull, br.asn1.ASN1Object), br.asn1.DERObjectIdentifier = function (t) {\n br.asn1.DERObjectIdentifier.superclass.constructor.call(this), this.hT = \"06\", this.setValueHex = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t;\n }, this.setValueOidString = function (t) {\n var e = function r(t) {\n var e = function t(e) {\n var r = e.toString(16);\n return 1 == r.length && (r = \"0\" + r), r;\n },\n r = function t(r) {\n var n = \"\",\n i = parseInt(r, 10).toString(2),\n o = 7 - i.length % 7;\n 7 == o && (o = 0);\n\n for (var s = \"\", a = 0; a < o; a++) s += \"0\";\n\n i = s + i;\n\n for (a = 0; a < i.length - 1; a += 7) {\n var u = i.substr(a, 7);\n a != i.length - 7 && (u = \"1\" + u), n += e(parseInt(u, 2));\n }\n\n return n;\n };\n\n try {\n if (!t.match(/^[0-9.]+$/)) return null;\n var n = \"\",\n i = t.split(\".\"),\n o = 40 * parseInt(i[0], 10) + parseInt(i[1], 10);\n n += e(o), i.splice(0, 2);\n\n for (var s = 0; s < i.length; s++) n += r(i[s]);\n\n return n;\n } catch (t) {\n return null;\n }\n }(t);\n\n if (null == e) throw new Error(\"malformed oid string: \" + t);\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = e;\n }, this.setValueName = function (t) {\n var e = br.asn1.x509.OID.name2oid(t);\n if (\"\" === e) throw new Error(\"DERObjectIdentifier oidName undefined: \" + t);\n this.setValueOidString(e);\n }, this.setValueNameOrOid = function (t) {\n t.match(/^[0-2].[0-9.]+$/) ? this.setValueOidString(t) : this.setValueName(t);\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, this.setByParam = function (t) {\n \"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);\n }, void 0 !== t && this.setByParam(t);\n }, o.lang.extend(br.asn1.DERObjectIdentifier, br.asn1.ASN1Object), br.asn1.DEREnumerated = function (t) {\n br.asn1.DEREnumerated.superclass.constructor.call(this), this.hT = \"0a\", this.setByBigInteger = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = br.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t);\n }, this.setByInteger = function (t) {\n var e = new F(String(t), 10);\n this.setByBigInteger(e);\n }, this.setValueHex = function (t) {\n this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DEREnumerated, br.asn1.ASN1Object), br.asn1.DERUTF8String = function (t) {\n br.asn1.DERUTF8String.superclass.constructor.call(this, t), this.hT = \"0c\";\n }, o.lang.extend(br.asn1.DERUTF8String, br.asn1.DERAbstractString), br.asn1.DERNumericString = function (t) {\n br.asn1.DERNumericString.superclass.constructor.call(this, t), this.hT = \"12\";\n }, o.lang.extend(br.asn1.DERNumericString, br.asn1.DERAbstractString), br.asn1.DERPrintableString = function (t) {\n br.asn1.DERPrintableString.superclass.constructor.call(this, t), this.hT = \"13\";\n }, o.lang.extend(br.asn1.DERPrintableString, br.asn1.DERAbstractString), br.asn1.DERTeletexString = function (t) {\n br.asn1.DERTeletexString.superclass.constructor.call(this, t), this.hT = \"14\";\n }, o.lang.extend(br.asn1.DERTeletexString, br.asn1.DERAbstractString), br.asn1.DERIA5String = function (t) {\n br.asn1.DERIA5String.superclass.constructor.call(this, t), this.hT = \"16\";\n }, o.lang.extend(br.asn1.DERIA5String, br.asn1.DERAbstractString), br.asn1.DERVisibleString = function (t) {\n br.asn1.DERIA5String.superclass.constructor.call(this, t), this.hT = \"1a\";\n }, o.lang.extend(br.asn1.DERVisibleString, br.asn1.DERAbstractString), br.asn1.DERBMPString = function (t) {\n br.asn1.DERBMPString.superclass.constructor.call(this, t), this.hT = \"1e\";\n }, o.lang.extend(br.asn1.DERBMPString, br.asn1.DERAbstractString), br.asn1.DERUTCTime = function (t) {\n br.asn1.DERUTCTime.superclass.constructor.call(this, t), this.hT = \"17\", this.setByDate = function (t) {\n this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, \"utc\"), this.hV = Pr(this.s);\n }, this.getFreshValueHex = function () {\n return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, \"utc\"), this.hV = Pr(this.s)), this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DERUTCTime, br.asn1.DERAbstractTime), br.asn1.DERGeneralizedTime = function (t) {\n br.asn1.DERGeneralizedTime.superclass.constructor.call(this, t), this.hT = \"18\", this.withMillis = !1, this.setByDate = function (t) {\n this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, \"gen\", this.withMillis), this.hV = Pr(this.s);\n }, this.getFreshValueHex = function () {\n return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, \"gen\", this.withMillis), this.hV = Pr(this.s)), this.hV;\n }, 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));\n }, o.lang.extend(br.asn1.DERGeneralizedTime, br.asn1.DERAbstractTime), br.asn1.DERSequence = function (t) {\n br.asn1.DERSequence.superclass.constructor.call(this, t), this.hT = \"30\", this.getFreshValueHex = function () {\n for (var t = \"\", e = 0; e < this.asn1Array.length; e++) {\n t += this.asn1Array[e].getEncodedHex();\n }\n\n return this.hV = t, this.hV;\n };\n }, o.lang.extend(br.asn1.DERSequence, br.asn1.DERAbstractStructured), br.asn1.DERSet = function (t) {\n br.asn1.DERSet.superclass.constructor.call(this, t), this.hT = \"31\", this.sortFlag = !0, this.getFreshValueHex = function () {\n for (var t = new Array(), e = 0; e < this.asn1Array.length; e++) {\n var r = this.asn1Array[e];\n t.push(r.getEncodedHex());\n }\n\n return 1 == this.sortFlag && t.sort(), this.hV = t.join(\"\"), this.hV;\n }, void 0 !== t && void 0 !== t.sortflag && 0 == t.sortflag && (this.sortFlag = !1);\n }, o.lang.extend(br.asn1.DERSet, br.asn1.DERAbstractStructured), br.asn1.DERTaggedObject = function (t) {\n br.asn1.DERTaggedObject.superclass.constructor.call(this);\n var e = br.asn1;\n this.hT = \"a0\", this.hV = \"\", this.isExplicit = !0, this.asn1Object = null, this.setASN1Object = function (t, e, r) {\n 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);\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, this.setByParam = function (t) {\n 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\" == r(t.obj) && (this.asn1Object = e.ASN1Util.newObject(t.obj), this.setASN1Object(this.isExplicit, this.hT, this.asn1Object)));\n }, null != t && this.setByParam(t);\n }, o.lang.extend(br.asn1.DERTaggedObject, br.asn1.ASN1Object);\n var br,\n wr,\n Fr,\n Er = new function () {}();\n\n function xr(t) {\n for (var e = new Array(), r = 0; r < t.length; r++) e[r] = t.charCodeAt(r);\n\n return e;\n }\n\n function Ar(t) {\n for (var e = \"\", r = 0; r < t.length; r++) e += String.fromCharCode(t[r]);\n\n return e;\n }\n\n function kr(t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n var n = t[r].toString(16);\n 1 == n.length && (n = \"0\" + n), e += n;\n }\n\n return e;\n }\n\n function Pr(t) {\n return kr(xr(t));\n }\n\n function Cr(t) {\n return t = (t = (t = t.replace(/\\=/g, \"\")).replace(/\\+/g, \"-\")).replace(/\\//g, \"_\");\n }\n\n function Tr(t) {\n return t.length % 4 == 2 ? t += \"==\" : t.length % 4 == 3 && (t += \"=\"), t = (t = t.replace(/-/g, \"+\")).replace(/_/g, \"/\");\n }\n\n function Rr(t) {\n return t.length % 2 == 1 && (t = \"0\" + t), Cr(S(t));\n }\n\n function Ir(t) {\n return b(Tr(t));\n }\n\n function Dr(t) {\n return qr(Gr(t));\n }\n\n function Lr(t) {\n return decodeURIComponent(Jr(t));\n }\n\n function Nr(t) {\n for (var e = \"\", r = 0; r < t.length - 1; r += 2) e += String.fromCharCode(parseInt(t.substr(r, 2), 16));\n\n return e;\n }\n\n function Ur(t) {\n for (var e = \"\", r = 0; r < t.length; r++) e += (\"0\" + t.charCodeAt(r).toString(16)).slice(-2);\n\n return e;\n }\n\n function Br(t) {\n return S(t);\n }\n\n function Or(t) {\n var e = Br(t).replace(/(.{64})/g, \"$1\\r\\n\");\n return e = e.replace(/\\r\\n$/, \"\");\n }\n\n function jr(t) {\n return b(t.replace(/[^0-9A-Za-z\\/+=]*/g, \"\"));\n }\n\n function Mr(t, e) {\n return \"-----BEGIN \" + e + \"-----\\r\\n\" + Or(t) + \"\\r\\n-----END \" + e + \"-----\\r\\n\";\n }\n\n function Hr(t, e) {\n if (-1 == t.indexOf(\"-----BEGIN \")) throw \"can't find PEM header: \" + e;\n return jr(t = void 0 !== e ? (t = t.replace(new RegExp(\"^[^]*-----BEGIN \" + e + \"-----\"), \"\")).replace(new RegExp(\"-----END \" + e + \"-----[^]*$\"), \"\") : (t = t.replace(/^[^]*-----BEGIN [^-]+-----/, \"\")).replace(/-----END [^-]+-----[^]*$/, \"\"));\n }\n\n function Vr(t) {\n var e, r, n, i, o, s, a, u, c, h, l;\n 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);\n throw \"unsupported zulu format: \" + t;\n }\n\n function Kr(t) {\n return ~~(Vr(t) / 1e3);\n }\n\n function qr(t) {\n return t.replace(/%/g, \"\");\n }\n\n function Jr(t) {\n return t.replace(/(..)/g, \"%$1\");\n }\n\n function Wr(t) {\n var e = \"malformed IPv6 address\";\n if (!t.match(/^[0-9A-Fa-f:]+$/)) throw e;\n var r = (t = t.toLowerCase()).split(\":\").length - 1;\n if (r < 2) throw e;\n var n = \":\".repeat(7 - r + 2),\n i = (t = t.replace(\"::\", n)).split(\":\");\n if (8 != i.length) throw e;\n\n for (var o = 0; o < 8; o++) i[o] = (\"0000\" + i[o]).slice(-4);\n\n return i.join(\"\");\n }\n\n function zr(t) {\n if (!t.match(/^[0-9A-Fa-f]{32}$/)) throw \"malformed IPv6 address octet\";\n\n 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\");\n\n var n = (t = \":\" + e.join(\":\") + \":\").match(/:(0:){2,}/g);\n if (null === n) return t.slice(1, -1);\n var i = \"\";\n\n for (r = 0; r < n.length; r++) n[r].length > i.length && (i = n[r]);\n\n return (t = t.replace(i, \"::\")).slice(1, -1);\n }\n\n function Yr(t) {\n var e = \"malformed hex value\";\n if (!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/)) throw e;\n if (8 != t.length) return 32 == t.length ? zr(t) : t;\n\n try {\n 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);\n } catch (t) {\n throw e;\n }\n }\n\n function Gr(t) {\n for (var e = encodeURIComponent(t), r = \"\", n = 0; n < e.length; n++) \"%\" == e[n] ? (r += e.substr(n, 3), n += 2) : r = r + \"%\" + Pr(e[n]);\n\n return r;\n }\n\n function Xr(t) {\n return !(t.length % 2 != 0 || !t.match(/^[0-9a-f]+$/) && !t.match(/^[0-9A-F]+$/));\n }\n\n function $r(t) {\n return t.length % 2 == 1 ? \"0\" + t : t.substr(0, 1) > \"7\" ? \"00\" + t : t;\n }\n\n Er.getLblen = function (t, e) {\n if (\"8\" != t.substr(e + 2, 1)) return 1;\n var r = parseInt(t.substr(e + 3, 1));\n return 0 == r ? -1 : 0 < r && r < 10 ? r + 1 : -2;\n }, Er.getL = function (t, e) {\n var r = Er.getLblen(t, e);\n return r < 1 ? \"\" : t.substr(e + 2, 2 * r);\n }, Er.getVblen = function (t, e) {\n var r;\n return \"\" == (r = Er.getL(t, e)) ? -1 : (\"8\" === r.substr(0, 1) ? new F(r.substr(2), 16) : new F(r, 16)).intValue();\n }, Er.getVidx = function (t, e) {\n var r = Er.getLblen(t, e);\n return r < 0 ? r : e + 2 * (r + 1);\n }, Er.getV = function (t, e) {\n var r = Er.getVidx(t, e),\n n = Er.getVblen(t, e);\n return t.substr(r, 2 * n);\n }, Er.getTLV = function (t, e) {\n return t.substr(e, 2) + Er.getL(t, e) + Er.getV(t, e);\n }, Er.getTLVblen = function (t, e) {\n return 2 + 2 * Er.getLblen(t, e) + 2 * Er.getVblen(t, e);\n }, Er.getNextSiblingIdx = function (t, e) {\n return Er.getVidx(t, e) + 2 * Er.getVblen(t, e);\n }, Er.getChildIdx = function (t, e) {\n var r,\n n,\n i,\n o = Er,\n s = [];\n r = o.getVidx(t, e), n = 2 * o.getVblen(t, e), \"03\" == t.substr(e, 2) && (r += 2, n -= 2), i = 0;\n\n for (var a = r; i <= n;) {\n var u = o.getTLVblen(t, a);\n if ((i += u) <= n && s.push(a), a += u, i >= n) break;\n }\n\n return s;\n }, Er.getNthChildIdx = function (t, e, r) {\n return Er.getChildIdx(t, e)[r];\n }, Er.getIdxbyList = function (t, e, r, n) {\n var i,\n o,\n s = Er;\n 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);\n }, Er.getIdxbyListEx = function (t, e, r, n) {\n var i,\n o,\n s = Er;\n if (0 == r.length) return void 0 !== n && t.substr(e, 2) !== n ? -1 : e;\n i = r.shift(), o = s.getChildIdx(t, e);\n\n for (var a = 0, u = 0; u < o.length; u++) {\n var c = t.substr(o[u], 2);\n if (\"number\" == typeof i && !s.isContextTag(c) && a == i || \"string\" == typeof i && s.isContextTag(c, i)) return s.getIdxbyListEx(t, o[u], r, n);\n s.isContextTag(c) || a++;\n }\n\n return -1;\n }, Er.getTLVbyList = function (t, e, r, n) {\n var i = Er,\n o = i.getIdxbyList(t, e, r, n);\n return -1 == o || o >= t.length ? null : i.getTLV(t, o);\n }, Er.getTLVbyListEx = function (t, e, r, n) {\n var i = Er,\n o = i.getIdxbyListEx(t, e, r, n);\n return -1 == o ? null : i.getTLV(t, o);\n }, Er.getVbyList = function (t, e, r, n, i) {\n var o,\n s,\n a = Er;\n 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);\n }, Er.getVbyListEx = function (t, e, r, n, i) {\n var o,\n s,\n a = Er;\n 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);\n }, Er.getInt = function (t, e, r) {\n null == r && (r = -1);\n\n try {\n var n = t.substr(e, 2);\n if (\"02\" != n && \"03\" != n) return r;\n var i = Er.getV(t, e);\n return \"02\" == n ? parseInt(i, 16) : function o(t) {\n try {\n var e = t.substr(0, 2);\n if (\"00\" == e) return parseInt(t.substr(2), 16);\n var r = parseInt(e, 16),\n n = t.substr(2),\n i = parseInt(n, 16).toString(2);\n return \"0\" == i && (i = \"00000000\"), i = i.slice(0, 0 - r), parseInt(i, 2);\n } catch (t) {\n return -1;\n }\n }(i);\n } catch (t) {\n return r;\n }\n }, Er.getOID = function (t, e, r) {\n null == r && (r = null);\n\n try {\n return \"06\" != t.substr(e, 2) ? r : function n(t) {\n if (!Xr(t)) return null;\n\n try {\n var e = [],\n r = t.substr(0, 2),\n n = parseInt(r, 16);\n e[0] = new String(Math.floor(n / 40)), e[1] = new String(n % 40);\n\n for (var i = t.substr(2), o = [], s = 0; s < i.length / 2; s++) o.push(parseInt(i.substr(2 * s, 2), 16));\n\n var a = [],\n u = \"\";\n\n 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 = \"\");\n\n var c = e.join(\".\");\n return a.length > 0 && (c = c + \".\" + a.join(\".\")), c;\n } catch (t) {\n return null;\n }\n }(Er.getV(t, e));\n } catch (t) {\n return r;\n }\n }, Er.getOIDName = function (t, e, r) {\n null == r && (r = null);\n\n try {\n var n = Er.getOID(t, e, r);\n if (n == r) return r;\n var i = br.asn1.x509.OID.oid2name(n);\n return \"\" == i ? n : i;\n } catch (t) {\n return r;\n }\n }, Er.getString = function (t, e, r) {\n null == r && (r = null);\n\n try {\n return Nr(Er.getV(t, e));\n } catch (t) {\n return r;\n }\n }, Er.hextooidstr = function (t) {\n var e = function t(e, r) {\n return e.length >= r ? e : new Array(r - e.length + 1).join(\"0\") + e;\n },\n r = [],\n n = t.substr(0, 2),\n i = parseInt(n, 16);\n\n r[0] = new String(Math.floor(i / 40)), r[1] = new String(i % 40);\n\n for (var o = t.substr(2), s = [], a = 0; a < o.length / 2; a++) s.push(parseInt(o.substr(2 * a, 2), 16));\n\n var u = [],\n c = \"\";\n\n 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 = \"\");\n\n var h = r.join(\".\");\n return u.length > 0 && (h = h + \".\" + u.join(\".\")), h;\n }, Er.dump = function (t, e, r, n) {\n var i = Er,\n o = i.getV,\n s = i.dump,\n a = i.getChildIdx,\n u = t;\n t instanceof br.asn1.ASN1Object && (u = t.getEncodedHex());\n\n var c = function t(e, r) {\n return e.length <= 2 * r ? e : e.substr(0, r) + \"..(total \" + e.length / 2 + \"bytes)..\" + e.substr(e.length - r, r);\n };\n\n void 0 === e && (e = {\n ommit_long_octet: 32\n }), void 0 === r && (r = 0), void 0 === n && (n = \"\");\n var h,\n l = e.ommit_long_octet;\n if (\"01\" == (h = u.substr(r, 2))) return \"00\" == (f = o(u, r)) ? n + \"BOOLEAN FALSE\\n\" : n + \"BOOLEAN TRUE\\n\";\n if (\"02\" == h) return n + \"INTEGER \" + c(f = o(u, r), l) + \"\\n\";\n\n if (\"03\" == h) {\n var f = o(u, r);\n\n if (i.isASN1HEX(f.substr(2))) {\n var g = n + \"BITSTRING, encapsulates\\n\";\n return g += s(f.substr(2), e, 0, n + \" \");\n }\n\n return n + \"BITSTRING \" + c(f, l) + \"\\n\";\n }\n\n if (\"04\" == h) {\n f = o(u, r);\n\n if (i.isASN1HEX(f)) {\n g = n + \"OCTETSTRING, encapsulates\\n\";\n return g += s(f, e, 0, n + \" \");\n }\n\n return n + \"OCTETSTRING \" + c(f, l) + \"\\n\";\n }\n\n if (\"05\" == h) return n + \"NULL\\n\";\n\n if (\"06\" == h) {\n var d = o(u, r),\n p = br.asn1.ASN1Util.oidHexToInt(d),\n v = br.asn1.x509.OID.oid2name(p),\n y = p.replace(/\\./g, \" \");\n return \"\" != v ? n + \"ObjectIdentifier \" + v + \" (\" + y + \")\\n\" : n + \"ObjectIdentifier (\" + y + \")\\n\";\n }\n\n if (\"0a\" == h) return n + \"ENUMERATED \" + parseInt(o(u, r)) + \"\\n\";\n if (\"0c\" == h) return n + \"UTF8String '\" + Lr(o(u, r)) + \"'\\n\";\n if (\"13\" == h) return n + \"PrintableString '\" + Lr(o(u, r)) + \"'\\n\";\n if (\"14\" == h) return n + \"TeletexString '\" + Lr(o(u, r)) + \"'\\n\";\n if (\"16\" == h) return n + \"IA5String '\" + Lr(o(u, r)) + \"'\\n\";\n if (\"17\" == h) return n + \"UTCTime \" + Lr(o(u, r)) + \"\\n\";\n if (\"18\" == h) return n + \"GeneralizedTime \" + Lr(o(u, r)) + \"\\n\";\n if (\"1a\" == h) return n + \"VisualString '\" + Lr(o(u, r)) + \"'\\n\";\n if (\"1e\" == h) return n + \"BMPString '\" + Lr(o(u, r)) + \"'\\n\";\n\n if (\"30\" == h) {\n if (\"3000\" == u.substr(r, 4)) return n + \"SEQUENCE {}\\n\";\n g = n + \"SEQUENCE\\n\";\n var m = e;\n\n if ((2 == (b = a(u, r)).length || 3 == b.length) && \"06\" == u.substr(b[0], 2) && \"04\" == u.substr(b[b.length - 1], 2)) {\n v = i.oidname(o(u, b[0]));\n\n var _ = JSON.parse(JSON.stringify(e));\n\n _.x509ExtName = v, m = _;\n }\n\n for (var S = 0; S < b.length; S++) g += s(u, m, b[S], n + \" \");\n\n return g;\n }\n\n if (\"31\" == h) {\n g = n + \"SET\\n\";\n var b = a(u, r);\n\n for (S = 0; S < b.length; S++) g += s(u, e, b[S], n + \" \");\n\n return g;\n }\n\n if (0 != (128 & (h = parseInt(h, 16)))) {\n var w = 31 & h;\n\n if (0 != (32 & h)) {\n for (g = n + \"[\" + w + \"]\\n\", b = a(u, r), S = 0; S < b.length; S++) g += s(u, e, b[S], n + \" \");\n\n return g;\n }\n\n f = o(u, r);\n\n if (Er.isASN1HEX(f)) {\n var g = n + \"[\" + w + \"]\\n\";\n return g += s(f, e, 0, n + \" \");\n }\n\n return (\"68747470\" == f.substr(0, 8) || \"subjectAltName\" === e.x509ExtName && 2 == w) && (f = Lr(f)), g = n + \"[\" + w + \"] \" + f + \"\\n\";\n }\n\n return n + \"UNKNOWN(\" + h + \") \" + o(u, r) + \"\\n\";\n }, Er.isContextTag = function (t, e) {\n var r, n;\n t = t.toLowerCase();\n\n try {\n r = parseInt(t, 16);\n } catch (t) {\n return -1;\n }\n\n if (void 0 === e) return 128 == (192 & r);\n\n try {\n return null != e.match(/^\\[[0-9]+\\]$/) && !((n = parseInt(e.substr(1, e.length - 1), 10)) > 31) && 128 == (192 & r) && (31 & r) == n;\n } catch (t) {\n return !1;\n }\n }, Er.isASN1HEX = function (t) {\n var e = Er;\n if (t.length % 2 == 1) return !1;\n var r = e.getVblen(t, 0),\n n = t.substr(0, 2),\n i = e.getL(t, 0);\n return t.length - n.length - i.length == 2 * r;\n }, Er.checkStrictDER = function (t, e, r, n, i) {\n var o = Er;\n\n if (void 0 === r) {\n if (\"string\" != typeof t) throw new Error(\"not hex string\");\n if (t = t.toLowerCase(), !br.lang.String.isHex(t)) throw new Error(\"not hex string\");\n r = t.length, i = (n = t.length / 2) < 128 ? 1 : Math.ceil(n.toString(16)) + 1;\n }\n\n if (o.getL(t, e).length > 2 * i) throw new Error(\"L of TLV too long: idx=\" + e);\n var s = o.getVblen(t, e);\n if (s > n) throw new Error(\"value of L too long than hex: idx=\" + e);\n var a = o.getTLV(t, e),\n u = a.length - 2 - o.getL(t, e).length;\n if (u !== 2 * s) throw new Error(\"V string length and L's value not the same:\" + u + \"/\" + 2 * s);\n if (0 === e && t.length != a.length) throw new Error(\"total length and TLV length unmatch:\" + t.length + \"!=\" + a.length);\n var c = t.substr(e, 2);\n\n if (\"02\" === c) {\n var h = o.getVidx(t, e);\n if (\"00\" == t.substr(h, 2) && t.charCodeAt(h + 2) < 56) throw new Error(\"not least zeros for DER INTEGER\");\n }\n\n if (32 & parseInt(c, 16)) {\n for (var l = o.getVblen(t, e), f = 0, g = o.getChildIdx(t, e), d = 0; d < g.length; d++) {\n f += o.getTLV(t, g[d]).length, o.checkStrictDER(t, g[d], r, n, i);\n }\n\n if (2 * l != f) throw new Error(\"sum of children's TLV length and L unmatch: \" + 2 * l + \"!=\" + f);\n }\n }, Er.oidname = function (t) {\n var e = br.asn1;\n br.lang.String.isHex(t) && (t = e.ASN1Util.oidHexToInt(t));\n var r = e.x509.OID.oid2name(t);\n return \"\" === r && (r = t), r;\n }, void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.lang && br.lang || (br.lang = {}), br.lang.String = function () {}, \"function\" == typeof t ? (e.utf8tob64u = wr = function e(r) {\n return Cr(t.from(r, \"utf8\").toString(\"base64\"));\n }, e.b64utoutf8 = Fr = function e(r) {\n return t.from(Tr(r), \"base64\").toString(\"utf8\");\n }) : (e.utf8tob64u = wr = function t(e) {\n return Rr(qr(Gr(e)));\n }, e.b64utoutf8 = Fr = function t(e) {\n return decodeURIComponent(Jr(Ir(e)));\n }), br.lang.String.isInteger = function (t) {\n return !!t.match(/^[0-9]+$/) || !!t.match(/^-[0-9]+$/);\n }, br.lang.String.isHex = function (t) {\n return Xr(t);\n }, br.lang.String.isBase64 = function (t) {\n return !(!(t = t.replace(/\\s+/g, \"\")).match(/^[0-9A-Za-z+\\/]+={0,3}$/) || t.length % 4 != 0);\n }, br.lang.String.isBase64URL = function (t) {\n return !t.match(/[+/=]/) && (t = Tr(t), br.lang.String.isBase64(t));\n }, br.lang.String.isIntegerArray = function (t) {\n return !!(t = t.replace(/\\s+/g, \"\")).match(/^\\[[0-9,]+\\]$/);\n }, br.lang.String.isPrintable = function (t) {\n return null !== t.match(/^[0-9A-Za-z '()+,-./:=?]*$/);\n }, br.lang.String.isIA5 = function (t) {\n return null !== t.match(/^[\\x20-\\x21\\x23-\\x7f]*$/);\n }, br.lang.String.isMail = function (t) {\n return null !== t.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\\.[A-Za-z0-9]{1,}$/);\n };\n\n var Qr = function t(e, r, n) {\n return null == n && (n = \"0\"), e.length >= r ? e : new Array(r - e.length + 1).join(n) + e;\n };\n\n void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.crypto && br.crypto || (br.crypto = {}), br.crypto.Util = new function () {\n this.DIGESTINFOHEAD = {\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n ripemd160: \"3021300906052b2403020105000414\"\n }, this.DEFAULTPROVIDER = {\n md5: \"cryptojs\",\n sha1: \"cryptojs\",\n sha224: \"cryptojs\",\n sha256: \"cryptojs\",\n sha384: \"cryptojs\",\n sha512: \"cryptojs\",\n ripemd160: \"cryptojs\",\n hmacmd5: \"cryptojs\",\n hmacsha1: \"cryptojs\",\n hmacsha224: \"cryptojs\",\n hmacsha256: \"cryptojs\",\n hmacsha384: \"cryptojs\",\n hmacsha512: \"cryptojs\",\n hmacripemd160: \"cryptojs\",\n MD5withRSA: \"cryptojs/jsrsa\",\n SHA1withRSA: \"cryptojs/jsrsa\",\n SHA224withRSA: \"cryptojs/jsrsa\",\n SHA256withRSA: \"cryptojs/jsrsa\",\n SHA384withRSA: \"cryptojs/jsrsa\",\n SHA512withRSA: \"cryptojs/jsrsa\",\n RIPEMD160withRSA: \"cryptojs/jsrsa\",\n MD5withECDSA: \"cryptojs/jsrsa\",\n SHA1withECDSA: \"cryptojs/jsrsa\",\n SHA224withECDSA: \"cryptojs/jsrsa\",\n SHA256withECDSA: \"cryptojs/jsrsa\",\n SHA384withECDSA: \"cryptojs/jsrsa\",\n SHA512withECDSA: \"cryptojs/jsrsa\",\n RIPEMD160withECDSA: \"cryptojs/jsrsa\",\n SHA1withDSA: \"cryptojs/jsrsa\",\n SHA224withDSA: \"cryptojs/jsrsa\",\n SHA256withDSA: \"cryptojs/jsrsa\",\n MD5withRSAandMGF1: \"cryptojs/jsrsa\",\n SHAwithRSAandMGF1: \"cryptojs/jsrsa\",\n SHA1withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA224withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA256withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA384withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA512withRSAandMGF1: \"cryptojs/jsrsa\",\n RIPEMD160withRSAandMGF1: \"cryptojs/jsrsa\"\n }, this.CRYPTOJSMESSAGEDIGESTNAME = {\n md5: y.algo.MD5,\n sha1: y.algo.SHA1,\n sha224: y.algo.SHA224,\n sha256: y.algo.SHA256,\n sha384: y.algo.SHA384,\n sha512: y.algo.SHA512,\n ripemd160: y.algo.RIPEMD160\n }, this.getDigestInfoHex = function (t, e) {\n if (void 0 === this.DIGESTINFOHEAD[e]) throw \"alg not supported in Util.DIGESTINFOHEAD: \" + e;\n return this.DIGESTINFOHEAD[e] + t;\n }, this.getPaddedDigestInfoHex = function (t, e, r) {\n var n = this.getDigestInfoHex(t, e),\n i = r / 4;\n if (n.length + 22 > i) throw \"key is too short for SigAlg: keylen=\" + r + \",\" + e;\n\n for (var o = \"0001\", s = \"00\" + n, a = \"\", u = i - o.length - s.length, c = 0; c < u; c += 2) a += \"ff\";\n\n return o + a + s;\n }, this.hashString = function (t, e) {\n return new br.crypto.MessageDigest({\n alg: e\n }).digestString(t);\n }, this.hashHex = function (t, e) {\n return new br.crypto.MessageDigest({\n alg: e\n }).digestHex(t);\n }, this.sha1 = function (t) {\n return this.hashString(t, \"sha1\");\n }, this.sha256 = function (t) {\n return this.hashString(t, \"sha256\");\n }, this.sha256Hex = function (t) {\n return this.hashHex(t, \"sha256\");\n }, this.sha512 = function (t) {\n return this.hashString(t, \"sha512\");\n }, this.sha512Hex = function (t) {\n return this.hashHex(t, \"sha512\");\n }, this.isKey = function (t) {\n return t instanceof He || t instanceof br.crypto.DSA || t instanceof br.crypto.ECDSA;\n };\n }(), br.crypto.Util.md5 = function (t) {\n return new br.crypto.MessageDigest({\n alg: \"md5\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, br.crypto.Util.ripemd160 = function (t) {\n return new br.crypto.MessageDigest({\n alg: \"ripemd160\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, br.crypto.Util.SECURERANDOMGEN = new Oe(), br.crypto.Util.getRandomHexOfNbytes = function (t) {\n var e = new Array(t);\n return br.crypto.Util.SECURERANDOMGEN.nextBytes(e), kr(e);\n }, br.crypto.Util.getRandomBigIntegerOfNbytes = function (t) {\n return new F(br.crypto.Util.getRandomHexOfNbytes(t), 16);\n }, br.crypto.Util.getRandomHexOfNbits = function (t) {\n var e = t % 8,\n r = new Array((t - e) / 8 + 1);\n return br.crypto.Util.SECURERANDOMGEN.nextBytes(r), r[0] = (255 << e & 255 ^ 255) & r[0], kr(r);\n }, br.crypto.Util.getRandomBigIntegerOfNbits = function (t) {\n return new F(br.crypto.Util.getRandomHexOfNbits(t), 16);\n }, br.crypto.Util.getRandomBigIntegerZeroToMax = function (t) {\n for (var e = t.bitLength();;) {\n var r = br.crypto.Util.getRandomBigIntegerOfNbits(e);\n if (-1 != t.compareTo(r)) return r;\n }\n }, br.crypto.Util.getRandomBigIntegerMinToMax = function (t, e) {\n var r = t.compareTo(e);\n if (1 == r) throw \"biMin is greater than biMax\";\n if (0 == r) return t;\n var n = e.subtract(t);\n return br.crypto.Util.getRandomBigIntegerZeroToMax(n).add(t);\n }, br.crypto.MessageDigest = function (t) {\n this.setAlgAndProvider = function (t, e) {\n if (null !== (t = br.crypto.MessageDigest.getCanonicalAlgName(t)) && void 0 === e && (e = br.crypto.Util.DEFAULTPROVIDER[t]), -1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(t) && \"cryptojs\" == e) {\n try {\n this.md = br.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[t].create();\n } catch (e) {\n throw \"setAlgAndProvider hash alg set fail alg=\" + t + \"/\" + e;\n }\n\n this.updateString = function (t) {\n this.md.update(t);\n }, this.updateHex = function (t) {\n var e = y.enc.Hex.parse(t);\n this.md.update(e);\n }, this.digest = function () {\n return this.md.finalize().toString(y.enc.Hex);\n }, this.digestString = function (t) {\n return this.updateString(t), this.digest();\n }, this.digestHex = function (t) {\n return this.updateHex(t), this.digest();\n };\n }\n\n if (-1 != \":sha256:\".indexOf(t) && \"sjcl\" == e) {\n try {\n this.md = new sjcl.hash.sha256();\n } catch (e) {\n throw \"setAlgAndProvider hash alg set fail alg=\" + t + \"/\" + e;\n }\n\n this.updateString = function (t) {\n this.md.update(t);\n }, this.updateHex = function (t) {\n var e = sjcl.codec.hex.toBits(t);\n this.md.update(e);\n }, this.digest = function () {\n var t = this.md.finalize();\n return sjcl.codec.hex.fromBits(t);\n }, this.digestString = function (t) {\n return this.updateString(t), this.digest();\n }, this.digestHex = function (t) {\n return this.updateHex(t), this.digest();\n };\n }\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digest = function () {\n throw \"digest() not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digestString = function (t) {\n throw \"digestString(str) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digestHex = function (t) {\n throw \"digestHex(hex) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, void 0 !== t && void 0 !== t.alg && (this.algName = t.alg, void 0 === t.prov && (this.provName = br.crypto.Util.DEFAULTPROVIDER[this.algName]), this.setAlgAndProvider(this.algName, this.provName));\n }, br.crypto.MessageDigest.getCanonicalAlgName = function (t) {\n return \"string\" == typeof t && (t = (t = t.toLowerCase()).replace(/-/, \"\")), t;\n }, br.crypto.MessageDigest.getHashLength = function (t) {\n var e = br.crypto.MessageDigest,\n r = e.getCanonicalAlgName(t);\n if (void 0 === e.HASHLENGTH[r]) throw \"not supported algorithm: \" + t;\n return e.HASHLENGTH[r];\n }, br.crypto.MessageDigest.HASHLENGTH = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n ripemd160: 20\n }, br.crypto.Mac = function (t) {\n this.setAlgAndProvider = function (t, e) {\n if (null == (t = t.toLowerCase()) && (t = \"hmacsha1\"), \"hmac\" != (t = t.toLowerCase()).substr(0, 4)) throw \"setAlgAndProvider unsupported HMAC alg: \" + t;\n void 0 === e && (e = br.crypto.Util.DEFAULTPROVIDER[t]), this.algProv = t + \"/\" + e;\n var r = t.substr(4);\n\n if (-1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(r) && \"cryptojs\" == e) {\n try {\n var n = br.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];\n this.mac = y.algo.HMAC.create(n, this.pass);\n } catch (t) {\n throw \"setAlgAndProvider hash alg set fail hashAlg=\" + r + \"/\" + t;\n }\n\n this.updateString = function (t) {\n this.mac.update(t);\n }, this.updateHex = function (t) {\n var e = y.enc.Hex.parse(t);\n this.mac.update(e);\n }, this.doFinal = function () {\n return this.mac.finalize().toString(y.enc.Hex);\n }, this.doFinalString = function (t) {\n return this.updateString(t), this.doFinal();\n }, this.doFinalHex = function (t) {\n return this.updateHex(t), this.doFinal();\n };\n }\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg/prov: \" + this.algProv;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg/prov: \" + this.algProv;\n }, this.doFinal = function () {\n throw \"digest() not supported for this alg/prov: \" + this.algProv;\n }, this.doFinalString = function (t) {\n throw \"digestString(str) not supported for this alg/prov: \" + this.algProv;\n }, this.doFinalHex = function (t) {\n throw \"digestHex(hex) not supported for this alg/prov: \" + this.algProv;\n }, this.setPassword = function (t) {\n if (\"string\" == typeof t) {\n var e = t;\n return t.length % 2 != 1 && t.match(/^[0-9A-Fa-f]+$/) || (e = Ur(t)), void (this.pass = y.enc.Hex.parse(e));\n }\n\n if (\"object\" != (void 0 === t ? \"undefined\" : r(t))) throw \"KJUR.crypto.Mac unsupported password type: \" + t;\n e = null;\n\n if (void 0 !== t.hex) {\n if (t.hex.length % 2 != 0 || !t.hex.match(/^[0-9A-Fa-f]+$/)) throw \"Mac: wrong hex password: \" + t.hex;\n e = t.hex;\n }\n\n if (void 0 !== t.utf8 && (e = Dr(t.utf8)), void 0 !== t.rstr && (e = Ur(t.rstr)), void 0 !== t.b64 && (e = b(t.b64)), void 0 !== t.b64u && (e = Ir(t.b64u)), null == e) throw \"KJUR.crypto.Mac unsupported password type: \" + t;\n this.pass = y.enc.Hex.parse(e);\n }, 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 = br.crypto.Util.DEFAULTPROVIDER[this.algName]), this.setAlgAndProvider(this.algName, this.provName)));\n }, br.crypto.Signature = function (t) {\n var e = null;\n\n if (this._setAlgNames = function () {\n var t = this.algName.match(/^(.+)with(.+)$/);\n t && (this.mdAlgName = t[1].toLowerCase(), this.pubkeyAlgName = t[2].toLowerCase(), \"rsaandmgf1\" == this.pubkeyAlgName && \"sha\" == this.mdAlgName && (this.mdAlgName = \"sha1\"));\n }, this._zeroPaddingOfSignature = function (t, e) {\n for (var r = \"\", n = e / 4 - t.length, i = 0; i < n; i++) r += \"0\";\n\n return r + t;\n }, this.setAlgAndProvider = function (t, e) {\n if (this._setAlgNames(), \"cryptojs/jsrsa\" != e) throw new Error(\"provider not supported: \" + e);\n\n if (-1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(this.mdAlgName)) {\n try {\n this.md = new br.crypto.MessageDigest({\n alg: this.mdAlgName\n });\n } catch (t) {\n throw new Error(\"setAlgAndProvider hash alg set fail alg=\" + this.mdAlgName + \"/\" + t);\n }\n\n this.init = function (t, e) {\n var r = null;\n\n try {\n r = void 0 === e ? Zr.getKey(t) : Zr.getKey(t, e);\n } catch (t) {\n throw \"init failed:\" + t;\n }\n\n if (!0 === r.isPrivate) this.prvKey = r, this.state = \"SIGN\";else {\n if (!0 !== r.isPublic) throw \"init failed.:\" + r;\n this.pubKey = r, this.state = \"VERIFY\";\n }\n }, this.updateString = function (t) {\n this.md.updateString(t);\n }, this.updateHex = function (t) {\n this.md.updateHex(t);\n }, this.sign = function () {\n if (this.sHashHex = this.md.digest(), void 0 === this.prvKey && void 0 !== this.ecprvhex && void 0 !== this.eccurvename && void 0 !== br.crypto.ECDSA && (this.prvKey = new br.crypto.ECDSA({\n curve: this.eccurvename,\n prv: this.ecprvhex\n })), this.prvKey instanceof He && \"rsaandmgf1\" === this.pubkeyAlgName) this.hSign = this.prvKey.signWithMessageHashPSS(this.sHashHex, this.mdAlgName, this.pssSaltLen);else if (this.prvKey instanceof He && \"rsa\" === this.pubkeyAlgName) this.hSign = this.prvKey.signWithMessageHash(this.sHashHex, this.mdAlgName);else if (this.prvKey instanceof br.crypto.ECDSA) this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);else {\n if (!(this.prvKey instanceof br.crypto.DSA)) throw \"Signature: unsupported private key alg: \" + this.pubkeyAlgName;\n this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);\n }\n return this.hSign;\n }, this.signString = function (t) {\n return this.updateString(t), this.sign();\n }, this.signHex = function (t) {\n return this.updateHex(t), this.sign();\n }, this.verify = function (t) {\n if (this.sHashHex = this.md.digest(), void 0 === this.pubKey && void 0 !== this.ecpubhex && void 0 !== this.eccurvename && void 0 !== br.crypto.ECDSA && (this.pubKey = new br.crypto.ECDSA({\n curve: this.eccurvename,\n pub: this.ecpubhex\n })), this.pubKey instanceof He && \"rsaandmgf1\" === this.pubkeyAlgName) return this.pubKey.verifyWithMessageHashPSS(this.sHashHex, t, this.mdAlgName, this.pssSaltLen);\n if (this.pubKey instanceof He && \"rsa\" === this.pubkeyAlgName) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n if (void 0 !== br.crypto.ECDSA && this.pubKey instanceof br.crypto.ECDSA) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n if (void 0 !== br.crypto.DSA && this.pubKey instanceof br.crypto.DSA) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n throw \"Signature: unsupported public key alg: \" + this.pubkeyAlgName;\n };\n }\n }, this.init = function (t, e) {\n throw \"init(key, pass) not supported for this alg:prov=\" + this.algProvName;\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg:prov=\" + this.algProvName;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg:prov=\" + this.algProvName;\n }, this.sign = function () {\n throw \"sign() not supported for this alg:prov=\" + this.algProvName;\n }, this.signString = function (t) {\n throw \"digestString(str) not supported for this alg:prov=\" + this.algProvName;\n }, this.signHex = function (t) {\n throw \"digestHex(hex) not supported for this alg:prov=\" + this.algProvName;\n }, this.verify = function (t) {\n throw \"verify(hSigVal) not supported for this alg:prov=\" + this.algProvName;\n }, this.initParams = t, void 0 !== t && (void 0 !== t.alg && (this.algName = t.alg, void 0 === t.prov ? this.provName = br.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)) {\n if (void 0 !== t.prvkeypas) throw \"both prvkeypem and prvkeypas parameters not supported\";\n\n try {\n e = Zr.getKey(t.prvkeypem);\n this.init(e);\n } catch (t) {\n throw \"fatal error to load pem private key: \" + t;\n }\n }\n }, br.crypto.Cipher = function (t) {}, br.crypto.Cipher.encrypt = function (t, e, r) {\n if (e instanceof He && e.isPublic) {\n var n = br.crypto.Cipher.getAlgByKeyAndName(e, r);\n if (\"RSA\" === n) return e.encrypt(t);\n if (\"RSAOAEP\" === n) return e.encryptOAEP(t, \"sha1\");\n var i = n.match(/^RSAOAEP(\\d+)$/);\n if (null !== i) return e.encryptOAEP(t, \"sha\" + i[1]);\n throw \"Cipher.encrypt: unsupported algorithm for RSAKey: \" + r;\n }\n\n throw \"Cipher.encrypt: unsupported key or algorithm\";\n }, br.crypto.Cipher.decrypt = function (t, e, r) {\n if (e instanceof He && e.isPrivate) {\n var n = br.crypto.Cipher.getAlgByKeyAndName(e, r);\n if (\"RSA\" === n) return e.decrypt(t);\n if (\"RSAOAEP\" === n) return e.decryptOAEP(t, \"sha1\");\n var i = n.match(/^RSAOAEP(\\d+)$/);\n if (null !== i) return e.decryptOAEP(t, \"sha\" + i[1]);\n throw \"Cipher.decrypt: unsupported algorithm for RSAKey: \" + r;\n }\n\n throw \"Cipher.decrypt: unsupported key or algorithm\";\n }, br.crypto.Cipher.getAlgByKeyAndName = function (t, e) {\n if (t instanceof He) {\n if (-1 != \":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:\".indexOf(e)) return e;\n if (null == e) return \"RSA\";\n throw \"getAlgByKeyAndName: not supported algorithm name for RSAKey: \" + e;\n }\n\n throw \"getAlgByKeyAndName: not supported algorithm name: \" + e;\n }, br.crypto.OID = new function () {\n this.oidhex2name = {\n \"2a864886f70d010101\": \"rsaEncryption\",\n \"2a8648ce3d0201\": \"ecPublicKey\",\n \"2a8648ce380401\": \"dsa\",\n \"2a8648ce3d030107\": \"secp256r1\",\n \"2b8104001f\": \"secp192k1\",\n \"2b81040021\": \"secp224r1\",\n \"2b8104000a\": \"secp256k1\",\n \"2b81040023\": \"secp521r1\",\n \"2b81040022\": \"secp384r1\",\n \"2a8648ce380403\": \"SHA1withDSA\",\n \"608648016503040301\": \"SHA224withDSA\",\n \"608648016503040302\": \"SHA256withDSA\"\n };\n }(), void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.crypto && br.crypto || (br.crypto = {}), br.crypto.ECDSA = function (t) {\n var e = Error,\n n = F,\n i = Ke,\n o = br.crypto.ECDSA,\n s = br.crypto.ECParameterDB,\n a = o.getName,\n u = Er,\n c = u.getVbyListEx,\n h = u.isASN1HEX,\n l = new Oe();\n this.type = \"EC\", this.isPrivate = !1, this.isPublic = !1, this.getBigRandom = function (t) {\n return new n(t.bitLength(), l).mod(t.subtract(n.ONE)).add(n.ONE);\n }, this.setNamedCurve = function (t) {\n this.ecparams = s.getByName(t), this.prvKeyHex = null, this.pubKeyHex = null, this.curveName = t;\n }, this.setPrivateKeyHex = function (t) {\n this.isPrivate = !0, this.prvKeyHex = t;\n }, this.setPublicKeyHex = function (t) {\n this.isPublic = !0, this.pubKeyHex = t;\n }, this.getPublicKeyXYHex = function () {\n var t = this.pubKeyHex;\n if (\"04\" !== t.substr(0, 2)) throw \"this method supports uncompressed format(04) only\";\n var e = this.ecparams.keylen / 4;\n if (t.length !== 2 + 2 * e) throw \"malformed public key hex length\";\n var r = {};\n return r.x = t.substr(2, e), r.y = t.substr(2 + e), r;\n }, this.getShortNISTPCurveName = function () {\n var t = this.curveName;\n 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;\n }, this.generateKeyPairHex = function () {\n var t = this.ecparams.n,\n e = this.getBigRandom(t),\n r = this.ecparams.G.multiply(e),\n n = r.getX().toBigInteger(),\n i = r.getY().toBigInteger(),\n o = this.ecparams.keylen / 4,\n s = (\"0000000000\" + e.toString(16)).slice(-o),\n a = \"04\" + (\"0000000000\" + n.toString(16)).slice(-o) + (\"0000000000\" + i.toString(16)).slice(-o);\n return this.setPrivateKeyHex(s), this.setPublicKeyHex(a), {\n ecprvhex: s,\n ecpubhex: a\n };\n }, this.signWithMessageHash = function (t) {\n return this.signHex(t, this.prvKeyHex);\n }, this.signHex = function (t, e) {\n var r = new n(e, 16),\n i = this.ecparams.n,\n s = new n(t.substring(0, this.ecparams.keylen / 4), 16);\n\n do {\n var a = this.getBigRandom(i),\n u = this.ecparams.G.multiply(a).getX().toBigInteger().mod(i);\n } while (u.compareTo(n.ZERO) <= 0);\n\n var c = a.modInverse(i).multiply(s.add(r.multiply(u))).mod(i);\n return o.biRSSigToASN1Sig(u, c);\n }, this.sign = function (t, e) {\n var r = e,\n i = this.ecparams.n,\n o = n.fromByteArrayUnsigned(t);\n\n do {\n var s = this.getBigRandom(i),\n a = this.ecparams.G.multiply(s).getX().toBigInteger().mod(i);\n } while (a.compareTo(F.ZERO) <= 0);\n\n var u = s.modInverse(i).multiply(o.add(r.multiply(a))).mod(i);\n return this.serializeSig(a, u);\n }, this.verifyWithMessageHash = function (t, e) {\n return this.verifyHex(t, e, this.pubKeyHex);\n }, this.verifyHex = function (t, e, r) {\n try {\n var s,\n a,\n u = o.parseSigHex(e);\n s = u.r, a = u.s;\n var c = i.decodeFromHex(this.ecparams.curve, r),\n h = new n(t.substring(0, this.ecparams.keylen / 4), 16);\n return this.verifyRaw(h, s, a, c);\n } catch (t) {\n return !1;\n }\n }, this.verify = function (t, e, o) {\n var s, a, u;\n\n if (Bitcoin.Util.isArray(e)) {\n var c = this.parseSig(e);\n s = c.r, a = c.s;\n } else {\n if (\"object\" !== (void 0 === e ? \"undefined\" : r(e)) || !e.r || !e.s) throw \"Invalid value for signature\";\n s = e.r, a = e.s;\n }\n\n if (o instanceof Ke) u = o;else {\n if (!Bitcoin.Util.isArray(o)) throw \"Invalid format for pubkey value, must be byte array or ECPointFp\";\n u = i.decodeFrom(this.ecparams.curve, o);\n }\n var h = n.fromByteArrayUnsigned(t);\n return this.verifyRaw(h, s, a, u);\n }, this.verifyRaw = function (t, e, r, i) {\n var o = this.ecparams.n,\n s = this.ecparams.G;\n if (e.compareTo(n.ONE) < 0 || e.compareTo(o) >= 0) return !1;\n if (r.compareTo(n.ONE) < 0 || r.compareTo(o) >= 0) return !1;\n var a = r.modInverse(o),\n u = t.multiply(a).mod(o),\n c = e.multiply(a).mod(o);\n return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e);\n }, this.serializeSig = function (t, e) {\n var r = t.toByteArraySigned(),\n n = e.toByteArraySigned(),\n i = [];\n 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;\n }, this.parseSig = function (t) {\n var e;\n if (48 != t[0]) throw new Error(\"Signature not a valid DERSequence\");\n if (2 != t[e = 2]) throw new Error(\"First element in signature must be a DERInteger\");\n var r = t.slice(e + 2, e + 2 + t[e + 1]);\n if (2 != t[e += 2 + t[e + 1]]) throw new Error(\"Second element in signature must be a DERInteger\");\n var i = t.slice(e + 2, e + 2 + t[e + 1]);\n return e += 2 + t[e + 1], {\n r: n.fromByteArrayUnsigned(r),\n s: n.fromByteArrayUnsigned(i)\n };\n }, this.parseSigCompact = function (t) {\n if (65 !== t.length) throw \"Signature has the wrong length\";\n var e = t[0] - 27;\n if (e < 0 || e > 7) throw \"Invalid signature type\";\n var r = this.ecparams.n;\n return {\n r: n.fromByteArrayUnsigned(t.slice(1, 33)).mod(r),\n s: n.fromByteArrayUnsigned(t.slice(33, 65)).mod(r),\n i: e\n };\n }, this.readPKCS5PrvKeyHex = function (t) {\n if (!1 === h(t)) throw new Error(\"not ASN.1 hex string\");\n var e, r, n;\n\n try {\n e = c(t, 0, [\"[0]\", 0], \"06\"), r = c(t, 0, [1], \"04\");\n\n try {\n n = c(t, 0, [\"[1]\", 0], \"03\");\n } catch (t) {}\n } catch (t) {\n throw new Error(\"malformed PKCS#1/5 plain ECC private key\");\n }\n\n if (this.curveName = a(e), void 0 === this.curveName) throw \"unsupported curve name\";\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(n), this.setPrivateKeyHex(r), this.isPublic = !1;\n }, this.readPKCS8PrvKeyHex = function (t) {\n if (!1 === h(t)) throw new e(\"not ASN.1 hex string\");\n var r, n, i;\n\n try {\n c(t, 0, [1, 0], \"06\"), r = c(t, 0, [1, 1], \"06\"), n = c(t, 0, [2, 0, 1], \"04\");\n\n try {\n i = c(t, 0, [2, 0, \"[1]\", 0], \"03\");\n } catch (t) {}\n } catch (t) {\n throw new e(\"malformed PKCS#8 plain ECC private key\");\n }\n\n if (this.curveName = a(r), void 0 === this.curveName) throw new e(\"unsupported curve name\");\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(i), this.setPrivateKeyHex(n), this.isPublic = !1;\n }, this.readPKCS8PubKeyHex = function (t) {\n if (!1 === h(t)) throw new e(\"not ASN.1 hex string\");\n var r, n;\n\n try {\n c(t, 0, [0, 0], \"06\"), r = c(t, 0, [0, 1], \"06\"), n = c(t, 0, [1], \"03\");\n } catch (t) {\n throw new e(\"malformed PKCS#8 ECC public key\");\n }\n\n if (this.curveName = a(r), null === this.curveName) throw new e(\"unsupported curve name\");\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(n);\n }, this.readCertPubKeyHex = function (t, r) {\n if (!1 === h(t)) throw new e(\"not ASN.1 hex string\");\n var n, i;\n\n try {\n n = c(t, 0, [0, 5, 0, 1], \"06\"), i = c(t, 0, [0, 5, 1], \"03\");\n } catch (t) {\n throw new e(\"malformed X.509 certificate ECC public key\");\n }\n\n if (this.curveName = a(n), null === this.curveName) throw new e(\"unsupported curve name\");\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(i);\n }, 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));\n }, br.crypto.ECDSA.parseSigHex = function (t) {\n var e = br.crypto.ECDSA.parseSigHexInHexRS(t);\n return {\n r: new F(e.r, 16),\n s: new F(e.s, 16)\n };\n }, br.crypto.ECDSA.parseSigHexInHexRS = function (t) {\n var e = Er,\n r = e.getChildIdx,\n n = e.getV;\n if (e.checkStrictDER(t, 0), \"30\" != t.substr(0, 2)) throw new Error(\"signature is not a ASN.1 sequence\");\n var i = r(t, 0);\n if (2 != i.length) throw new Error(\"signature shall have two elements\");\n var o = i[0],\n s = i[1];\n if (\"02\" != t.substr(o, 2)) throw new Error(\"1st item not ASN.1 integer\");\n if (\"02\" != t.substr(s, 2)) throw new Error(\"2nd item not ASN.1 integer\");\n return {\n r: n(t, o),\n s: n(t, s)\n };\n }, br.crypto.ECDSA.asn1SigToConcatSig = function (t) {\n var e = br.crypto.ECDSA.parseSigHexInHexRS(t),\n r = e.r,\n n = e.s;\n 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\";\n if (n.length % 32 != 0) throw \"unknown ECDSA sig s length error\";\n return r + n;\n }, br.crypto.ECDSA.concatSigToASN1Sig = function (t) {\n if (t.length / 2 * 8 % 128 != 0) throw \"unknown ECDSA concatinated r-s sig length error\";\n var e = t.substr(0, t.length / 2),\n r = t.substr(t.length / 2);\n return br.crypto.ECDSA.hexRSSigToASN1Sig(e, r);\n }, br.crypto.ECDSA.hexRSSigToASN1Sig = function (t, e) {\n var r = new F(t, 16),\n n = new F(e, 16);\n return br.crypto.ECDSA.biRSSigToASN1Sig(r, n);\n }, br.crypto.ECDSA.biRSSigToASN1Sig = function (t, e) {\n var r = br.asn1,\n n = new r.DERInteger({\n bigint: t\n }),\n i = new r.DERInteger({\n bigint: e\n });\n return new r.DERSequence({\n array: [n, i]\n }).getEncodedHex();\n }, br.crypto.ECDSA.getName = function (t) {\n 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;\n }, void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.crypto && br.crypto || (br.crypto = {}), br.crypto.ECParameterDB = new function () {\n var t = {},\n e = {};\n\n function r(t) {\n return new F(t, 16);\n }\n\n this.getByName = function (r) {\n var n = r;\n if (void 0 !== e[n] && (n = e[r]), void 0 !== t[n]) return t[n];\n throw \"unregistered EC curve name: \" + n;\n }, this.regist = function (n, i, o, s, a, u, c, h, l, f, g, d) {\n t[n] = {};\n\n var p = r(o),\n v = r(s),\n y = r(a),\n m = r(u),\n _ = r(c),\n S = new qe(p, v, y),\n b = S.decodePointHex(\"04\" + h + l);\n\n 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;\n\n for (var w = 0; w < f.length; w++) e[f[w]] = n;\n };\n }(), br.crypto.ECParameterDB.regist(\"secp128r1\", 128, \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\", \"E87579C11079F43DD824993C2CEE5ED3\", \"FFFFFFFE0000000075A30D1B9038A115\", \"1\", \"161FF7528B899B2D0C28607CA52C5B86\", \"CF5AC8395BAFEB13C02DA292DDED7A83\", [], \"\", \"secp128r1 : SECG curve over a 128 bit prime field\"), br.crypto.ECParameterDB.regist(\"secp160k1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\", \"0\", \"7\", \"0100000000000000000001B8FA16DFAB9ACA16B6B3\", \"1\", \"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\", \"938CF935318FDCED6BC28286531733C3F03C4FEE\", [], \"\", \"secp160k1 : SECG curve over a 160 bit prime field\"), br.crypto.ECParameterDB.regist(\"secp160r1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\", \"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\", \"0100000000000000000001F4C8F927AED3CA752257\", \"1\", \"4A96B5688EF573284664698968C38BB913CBFC82\", \"23A628553168947D59DCC912042351377AC5FB32\", [], \"\", \"secp160r1 : SECG curve over a 160 bit prime field\"), br.crypto.ECParameterDB.regist(\"secp192k1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\", \"0\", \"3\", \"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\", \"1\", \"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\", \"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\", []), br.crypto.ECParameterDB.regist(\"secp192r1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\", \"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\", \"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\", \"1\", \"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\", \"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\", []), br.crypto.ECParameterDB.regist(\"secp224r1\", 224, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\", \"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\", \"1\", \"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\", \"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\", []), br.crypto.ECParameterDB.regist(\"secp256k1\", 256, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\", \"0\", \"7\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", \"1\", \"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\", \"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\", []), br.crypto.ECParameterDB.regist(\"secp256r1\", 256, \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\", \"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\", \"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\", \"1\", \"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\", \"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\", [\"NIST P-256\", \"P-256\", \"prime256v1\"]), br.crypto.ECParameterDB.regist(\"secp384r1\", 384, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC\", \"B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973\", \"1\", \"AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7\", \"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\", [\"NIST P-384\", \"P-384\"]), br.crypto.ECParameterDB.regist(\"secp521r1\", 521, \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\", \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\", \"051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00\", \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409\", \"1\", \"C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66\", \"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\", [\"NIST P-521\", \"P-521\"]);\n\n var Zr = function () {\n var t = function t(r, n, i) {\n return e(y.AES, r, n, i);\n },\n e = function t(e, r, n, i) {\n var o = y.enc.Hex.parse(r),\n s = y.enc.Hex.parse(n),\n a = y.enc.Hex.parse(i),\n u = {};\n u.key = s, u.iv = a, u.ciphertext = o;\n var c = e.decrypt(u, s, {\n iv: a\n });\n return y.enc.Hex.stringify(c);\n },\n r = function t(e, r, i) {\n return n(y.AES, e, r, i);\n },\n n = function t(e, r, n, i) {\n var o = y.enc.Hex.parse(r),\n s = y.enc.Hex.parse(n),\n a = y.enc.Hex.parse(i),\n u = e.encrypt(o, s, {\n iv: a\n }),\n c = y.enc.Hex.parse(u.toString());\n return y.enc.Base64.stringify(c);\n },\n i = {\n \"AES-256-CBC\": {\n proc: t,\n eproc: r,\n keylen: 32,\n ivlen: 16\n },\n \"AES-192-CBC\": {\n proc: t,\n eproc: r,\n keylen: 24,\n ivlen: 16\n },\n \"AES-128-CBC\": {\n proc: t,\n eproc: r,\n keylen: 16,\n ivlen: 16\n },\n \"DES-EDE3-CBC\": {\n proc: function t(r, n, i) {\n return e(y.TripleDES, r, n, i);\n },\n eproc: function t(e, r, i) {\n return n(y.TripleDES, e, r, i);\n },\n keylen: 24,\n ivlen: 8\n },\n \"DES-CBC\": {\n proc: function t(r, n, i) {\n return e(y.DES, r, n, i);\n },\n eproc: function t(e, r, i) {\n return n(y.DES, e, r, i);\n },\n keylen: 8,\n ivlen: 8\n }\n },\n o = function t(e) {\n var r = {},\n n = e.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\", \"m\"));\n n && (r.cipher = n[1], r.ivsalt = n[2]);\n var i = e.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\"));\n i && (r.type = i[1]);\n var o = -1,\n s = 0;\n -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);\n var a = e.indexOf(\"-----END\");\n\n if (-1 != o && -1 != a) {\n var u = e.substring(o + 2 * s, a - s);\n u = u.replace(/\\s+/g, \"\"), r.data = u;\n }\n\n return r;\n },\n s = function t(e, r, n) {\n for (var o = n.substring(0, 16), s = y.enc.Hex.parse(o), a = y.enc.Utf8.parse(r), u = i[e].keylen + i[e].ivlen, c = \"\", h = null;;) {\n var l = y.algo.MD5.create();\n if (null != h && l.update(h), l.update(a), l.update(s), h = l.finalize(), (c += y.enc.Hex.stringify(h)).length >= 2 * u) break;\n }\n\n var f = {};\n return f.keyhex = c.substr(0, 2 * i[e].keylen), f.ivhex = c.substr(2 * i[e].keylen, 2 * i[e].ivlen), f;\n },\n a = function t(e, r, n, o) {\n var s = y.enc.Base64.parse(e),\n a = y.enc.Hex.stringify(s);\n return (0, i[r].proc)(a, n, o);\n };\n\n return {\n version: \"1.0.0\",\n parsePKCS5PEM: function t(e) {\n return o(e);\n },\n getKeyAndUnusedIvByPasscodeAndIvsalt: function t(e, r, n) {\n return s(e, r, n);\n },\n decryptKeyB64: function t(e, r, n, i) {\n return a(e, r, n, i);\n },\n getDecryptedKeyHex: function t(e, r) {\n var n = o(e),\n i = (n.type, n.cipher),\n u = n.ivsalt,\n c = n.data,\n h = s(i, r, u).keyhex;\n return a(c, i, h, u);\n },\n getEncryptedPKCS5PEMFromPrvKeyHex: function t(e, r, n, o, a) {\n var u = \"\";\n if (void 0 !== o && null != o || (o = \"AES-256-CBC\"), void 0 === i[o]) throw \"KEYUTIL unsupported algorithm: \" + o;\n void 0 !== a && null != a || (a = function t(e) {\n var r = y.lib.WordArray.random(e);\n return y.enc.Hex.stringify(r);\n }(i[o].ivlen).toUpperCase());\n\n var c = function t(e, r, n, o) {\n return (0, i[r].eproc)(e, n, o);\n }(r, o, s(o, n, a).keyhex, a);\n\n u = \"-----BEGIN \" + e + \" PRIVATE KEY-----\\r\\n\";\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\";\n },\n parseHexOfEncryptedPKCS8: function t(e) {\n var r = Er,\n n = r.getChildIdx,\n i = r.getV,\n o = {},\n s = n(e, 0);\n if (2 != s.length) throw \"malformed format: SEQUENCE(0).items != 2: \" + s.length;\n o.ciphertext = i(e, s[1]);\n var a = n(e, s[0]);\n if (2 != a.length) throw \"malformed format: SEQUENCE(0.0).items != 2: \" + a.length;\n if (\"2a864886f70d01050d\" != i(e, a[0])) throw \"this only supports pkcs5PBES2\";\n var u = n(e, a[1]);\n if (2 != a.length) throw \"malformed format: SEQUENCE(0.0.1).items != 2: \" + u.length;\n var c = n(e, u[1]);\n if (2 != c.length) throw \"malformed format: SEQUENCE(0.0.1.1).items != 2: \" + c.length;\n if (\"2a864886f70d0307\" != i(e, c[0])) throw \"this only supports TripleDES\";\n o.encryptionSchemeAlg = \"TripleDES\", o.encryptionSchemeIV = i(e, c[1]);\n var h = n(e, u[0]);\n if (2 != h.length) throw \"malformed format: SEQUENCE(0.0.1.0).items != 2: \" + h.length;\n if (\"2a864886f70d01050c\" != i(e, h[0])) throw \"this only supports pkcs5PBKDF2\";\n var l = n(e, h[1]);\n if (l.length < 2) throw \"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \" + l.length;\n o.pbkdf2Salt = i(e, l[0]);\n var f = i(e, l[1]);\n\n try {\n o.pbkdf2Iter = parseInt(f, 16);\n } catch (t) {\n throw \"malformed format pbkdf2Iter: \" + f;\n }\n\n return o;\n },\n getPBKDF2KeyHexFromParam: function t(e, r) {\n var n = y.enc.Hex.parse(e.pbkdf2Salt),\n i = e.pbkdf2Iter,\n o = y.PBKDF2(r, n, {\n keySize: 6,\n iterations: i\n });\n return y.enc.Hex.stringify(o);\n },\n _getPlainPKCS8HexFromEncryptedPKCS8PEM: function t(e, r) {\n var n = Hr(e, \"ENCRYPTED PRIVATE KEY\"),\n i = this.parseHexOfEncryptedPKCS8(n),\n o = Zr.getPBKDF2KeyHexFromParam(i, r),\n s = {};\n s.ciphertext = y.enc.Hex.parse(i.ciphertext);\n var a = y.enc.Hex.parse(o),\n u = y.enc.Hex.parse(i.encryptionSchemeIV),\n c = y.TripleDES.decrypt(s, a, {\n iv: u\n });\n return y.enc.Hex.stringify(c);\n },\n getKeyFromEncryptedPKCS8PEM: function t(e, r) {\n var n = this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e, r);\n\n return this.getKeyFromPlainPrivatePKCS8Hex(n);\n },\n parsePlainPrivatePKCS8Hex: function t(e) {\n var r = Er,\n n = r.getChildIdx,\n i = r.getV,\n o = {\n algparam: null\n };\n if (\"30\" != e.substr(0, 2)) throw \"malformed plain PKCS8 private key(code:001)\";\n var s = n(e, 0);\n if (3 != s.length) throw \"malformed plain PKCS8 private key(code:002)\";\n if (\"30\" != e.substr(s[1], 2)) throw \"malformed PKCS8 private key(code:003)\";\n var a = n(e, s[1]);\n if (2 != a.length) throw \"malformed PKCS8 private key(code:004)\";\n if (\"06\" != e.substr(a[0], 2)) throw \"malformed PKCS8 private key(code:005)\";\n 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 \"malformed PKCS8 private key(code:006)\";\n return o.keyidx = r.getVidx(e, s[2]), o;\n },\n getKeyFromPlainPrivatePKCS8PEM: function t(e) {\n var r = Hr(e, \"PRIVATE KEY\");\n return this.getKeyFromPlainPrivatePKCS8Hex(r);\n },\n getKeyFromPlainPrivatePKCS8Hex: function t(e) {\n var r,\n n = this.parsePlainPrivatePKCS8Hex(e);\n if (\"2a864886f70d010101\" == n.algoid) r = new He();else if (\"2a8648ce380401\" == n.algoid) r = new br.crypto.DSA();else {\n if (\"2a8648ce3d0201\" != n.algoid) throw \"unsupported private key algorithm\";\n r = new br.crypto.ECDSA();\n }\n return r.readPKCS8PrvKeyHex(e), r;\n },\n _getKeyFromPublicPKCS8Hex: function t(e) {\n var r,\n n = Er.getVbyList(e, 0, [0, 0], \"06\");\n if (\"2a864886f70d010101\" === n) r = new He();else if (\"2a8648ce380401\" === n) r = new br.crypto.DSA();else {\n if (\"2a8648ce3d0201\" !== n) throw \"unsupported PKCS#8 public key hex\";\n r = new br.crypto.ECDSA();\n }\n return r.readPKCS8PubKeyHex(e), r;\n },\n parsePublicRawRSAKeyHex: function t(e) {\n var r = Er,\n n = r.getChildIdx,\n i = r.getV,\n o = {};\n if (\"30\" != e.substr(0, 2)) throw \"malformed RSA key(code:001)\";\n var s = n(e, 0);\n if (2 != s.length) throw \"malformed RSA key(code:002)\";\n if (\"02\" != e.substr(s[0], 2)) throw \"malformed RSA key(code:003)\";\n if (o.n = i(e, s[0]), \"02\" != e.substr(s[1], 2)) throw \"malformed RSA key(code:004)\";\n return o.e = i(e, s[1]), o;\n },\n parsePublicPKCS8Hex: function t(e) {\n var r = Er,\n n = r.getChildIdx,\n i = r.getV,\n o = {\n algparam: null\n },\n s = n(e, 0);\n if (2 != s.length) throw \"outer DERSequence shall have 2 elements: \" + s.length;\n var a = s[0];\n if (\"30\" != e.substr(a, 2)) throw \"malformed PKCS8 public key(code:001)\";\n var u = n(e, a);\n if (2 != u.length) throw \"malformed PKCS8 public key(code:002)\";\n if (\"06\" != e.substr(u[0], 2)) throw \"malformed PKCS8 public key(code:003)\";\n 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 \"malformed PKCS8 public key(code:004)\";\n return o.key = i(e, s[1]).substr(2), o;\n }\n };\n }();\n\n Zr.getKey = function (t, e, r) {\n var n = (v = Er).getChildIdx,\n i = (v.getV, v.getVbyList),\n o = br.crypto,\n s = o.ECDSA,\n a = o.DSA,\n u = He,\n c = Hr,\n h = Zr;\n if (void 0 !== u && t instanceof u) return t;\n if (void 0 !== s && t instanceof s) return t;\n if (void 0 !== a && t instanceof a) return t;\n if (void 0 !== t.curve && void 0 !== t.xy && void 0 === t.d) return new s({\n pub: t.xy,\n curve: t.curve\n });\n if (void 0 !== t.curve && void 0 !== t.d) return new s({\n prv: t.d,\n curve: t.curve\n });\n 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;\n 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;\n 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;\n 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;\n 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;\n if (\"RSA\" === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 === t.d) return (P = new u()).setPublic(Ir(t.n), Ir(t.e)), P;\n 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(Ir(t.n), Ir(t.e), Ir(t.d), Ir(t.p), Ir(t.q), Ir(t.dp), Ir(t.dq), Ir(t.qi)), P;\n if (\"RSA\" === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 !== t.d) return (P = new u()).setPrivate(Ir(t.n), Ir(t.e), Ir(t.d)), P;\n\n if (\"EC\" === t.kty && void 0 !== t.crv && void 0 !== t.x && void 0 !== t.y && void 0 === t.d) {\n var l = (k = new s({\n curve: t.crv\n })).ecparams.keylen / 4,\n f = \"04\" + (\"0000000000\" + Ir(t.x)).slice(-l) + (\"0000000000\" + Ir(t.y)).slice(-l);\n return k.setPublicKeyHex(f), k;\n }\n\n if (\"EC\" === t.kty && void 0 !== t.crv && void 0 !== t.x && void 0 !== t.y && void 0 !== t.d) {\n l = (k = new s({\n curve: t.crv\n })).ecparams.keylen / 4, f = \"04\" + (\"0000000000\" + Ir(t.x)).slice(-l) + (\"0000000000\" + Ir(t.y)).slice(-l);\n var g = (\"0000000000\" + Ir(t.d)).slice(-l);\n return k.setPublicKeyHex(f), k.setPrivateKeyHex(g), k;\n }\n\n if (\"pkcs5prv\" === r) {\n var d,\n p = t,\n v = Er;\n if (9 === (d = n(p, 0)).length) (P = new u()).readPKCS5PrvKeyHex(p);else if (6 === d.length) (P = new a()).readPKCS5PrvKeyHex(p);else {\n if (!(d.length > 2 && \"04\" === p.substr(d[1], 2))) throw \"unsupported PKCS#1/5 hexadecimal key\";\n (P = new s()).readPKCS5PrvKeyHex(p);\n }\n return P;\n }\n\n if (\"pkcs8prv\" === r) return P = h.getKeyFromPlainPrivatePKCS8Hex(t);\n if (\"pkcs8pub\" === r) return h._getKeyFromPublicPKCS8Hex(t);\n if (\"x509pub\" === r) return on.getPublicKeyFromCertHex(t);\n 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);\n\n if (-1 != t.indexOf(\"-END PUBLIC KEY-\")) {\n var y = Hr(t, \"PUBLIC KEY\");\n return h._getKeyFromPublicPKCS8Hex(y);\n }\n\n if (-1 != t.indexOf(\"-END RSA PRIVATE KEY-\") && -1 == t.indexOf(\"4,ENCRYPTED\")) {\n var m = c(t, \"RSA PRIVATE KEY\");\n return h.getKey(m, null, \"pkcs5prv\");\n }\n\n if (-1 != t.indexOf(\"-END DSA PRIVATE KEY-\") && -1 == t.indexOf(\"4,ENCRYPTED\")) {\n var _ = i(R = c(t, \"DSA PRIVATE KEY\"), 0, [1], \"02\"),\n S = i(R, 0, [2], \"02\"),\n b = i(R, 0, [3], \"02\"),\n w = i(R, 0, [4], \"02\"),\n E = i(R, 0, [5], \"02\");\n\n return (P = new a()).setPrivate(new F(_, 16), new F(S, 16), new F(b, 16), new F(w, 16), new F(E, 16)), P;\n }\n\n if (-1 != t.indexOf(\"-END EC PRIVATE KEY-\") && -1 == t.indexOf(\"4,ENCRYPTED\")) {\n m = c(t, \"EC PRIVATE KEY\");\n return h.getKey(m, null, \"pkcs5prv\");\n }\n\n if (-1 != t.indexOf(\"-END PRIVATE KEY-\")) return h.getKeyFromPlainPrivatePKCS8PEM(t);\n\n if (-1 != t.indexOf(\"-END RSA PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var x = h.getDecryptedKeyHex(t, e),\n A = new He();\n return A.readPKCS5PrvKeyHex(x), A;\n }\n\n if (-1 != t.indexOf(\"-END EC PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var k,\n P = i(R = h.getDecryptedKeyHex(t, e), 0, [1], \"04\"),\n C = i(R, 0, [2, 0], \"06\"),\n T = i(R, 0, [3, 0], \"03\").substr(2);\n if (void 0 === br.crypto.OID.oidhex2name[C]) throw \"undefined OID(hex) in KJUR.crypto.OID: \" + C;\n return (k = new s({\n curve: br.crypto.OID.oidhex2name[C]\n })).setPublicKeyHex(T), k.setPrivateKeyHex(P), k.isPublic = !1, k;\n }\n\n if (-1 != t.indexOf(\"-END DSA PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var R;\n _ = i(R = h.getDecryptedKeyHex(t, e), 0, [1], \"02\"), S = i(R, 0, [2], \"02\"), b = i(R, 0, [3], \"02\"), w = i(R, 0, [4], \"02\"), E = i(R, 0, [5], \"02\");\n return (P = new a()).setPrivate(new F(_, 16), new F(S, 16), new F(b, 16), new F(w, 16), new F(E, 16)), P;\n }\n\n if (-1 != t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\")) return h.getKeyFromEncryptedPKCS8PEM(t, e);\n throw new Error(\"not supported argument\");\n }, Zr.generateKeypair = function (t, e) {\n if (\"RSA\" == t) {\n var r = e;\n (s = new He()).generate(r, \"10001\"), s.isPrivate = !0, s.isPublic = !0;\n var n = new He(),\n i = s.n.toString(16),\n o = s.e.toString(16);\n return n.setPublic(i, o), n.isPrivate = !1, n.isPublic = !0, (a = {}).prvKeyObj = s, a.pubKeyObj = n, a;\n }\n\n if (\"EC\" == t) {\n var s,\n a,\n u = e,\n c = new br.crypto.ECDSA({\n curve: u\n }).generateKeyPairHex();\n return (s = new br.crypto.ECDSA({\n curve: u\n })).setPublicKeyHex(c.ecpubhex), s.setPrivateKeyHex(c.ecprvhex), s.isPrivate = !0, s.isPublic = !1, (n = new br.crypto.ECDSA({\n curve: u\n })).setPublicKeyHex(c.ecpubhex), n.isPrivate = !1, n.isPublic = !0, (a = {}).prvKeyObj = s, a.pubKeyObj = n, a;\n }\n\n throw \"unknown algorithm: \" + t;\n }, Zr.getPEM = function (t, e, r, n, i, o) {\n var s = br,\n a = s.asn1,\n u = a.DERObjectIdentifier,\n c = a.DERInteger,\n h = a.ASN1Util.newObject,\n l = a.x509.SubjectPublicKeyInfo,\n f = s.crypto,\n g = f.DSA,\n d = f.ECDSA,\n p = He;\n\n function v(t) {\n return h({\n seq: [{\n int: 0\n }, {\n int: {\n bigint: t.n\n }\n }, {\n int: t.e\n }, {\n int: {\n bigint: t.d\n }\n }, {\n int: {\n bigint: t.p\n }\n }, {\n int: {\n bigint: t.q\n }\n }, {\n int: {\n bigint: t.dmp1\n }\n }, {\n int: {\n bigint: t.dmq1\n }\n }, {\n int: {\n bigint: t.coeff\n }\n }]\n });\n }\n\n function m(t) {\n return h({\n seq: [{\n int: 1\n }, {\n octstr: {\n hex: t.prvKeyHex\n }\n }, {\n tag: [\"a0\", !0, {\n oid: {\n name: t.curveName\n }\n }]\n }, {\n tag: [\"a1\", !0, {\n bitstr: {\n hex: \"00\" + t.pubKeyHex\n }\n }]\n }]\n });\n }\n\n function _(t) {\n return h({\n seq: [{\n int: 0\n }, {\n int: {\n bigint: t.p\n }\n }, {\n int: {\n bigint: t.q\n }\n }, {\n int: {\n bigint: t.g\n }\n }, {\n int: {\n bigint: t.y\n }\n }, {\n int: {\n bigint: t.x\n }\n }]\n });\n }\n\n 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 Mr(F = new l(t).getEncodedHex(), \"PUBLIC KEY\");\n if (\"PKCS1PRV\" == e && void 0 !== p && t instanceof p && (void 0 === r || null == r) && 1 == t.isPrivate) return Mr(F = v(t).getEncodedHex(), \"RSA PRIVATE KEY\");\n\n if (\"PKCS1PRV\" == e && void 0 !== d && t instanceof d && (void 0 === r || null == r) && 1 == t.isPrivate) {\n var S = new u({\n name: t.curveName\n }).getEncodedHex(),\n b = m(t).getEncodedHex(),\n w = \"\";\n return w += Mr(S, \"EC PARAMETERS\"), w += Mr(b, \"EC PRIVATE KEY\");\n }\n\n if (\"PKCS1PRV\" == e && void 0 !== g && t instanceof g && (void 0 === r || null == r) && 1 == t.isPrivate) return Mr(F = _(t).getEncodedHex(), \"DSA PRIVATE KEY\");\n\n if (\"PKCS5PRV\" == e && void 0 !== p && t instanceof p && void 0 !== r && null != r && 1 == t.isPrivate) {\n var F = v(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\", F, r, n, o);\n }\n\n if (\"PKCS5PRV\" == e && void 0 !== d && t instanceof d && void 0 !== r && null != r && 1 == t.isPrivate) {\n F = m(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\", F, r, n, o);\n }\n\n if (\"PKCS5PRV\" == e && void 0 !== g && t instanceof g && void 0 !== r && null != r && 1 == t.isPrivate) {\n F = _(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\", F, r, n, o);\n }\n\n var E = function t(e, r) {\n var n = x(e, r);\n return new h({\n seq: [{\n seq: [{\n oid: {\n name: \"pkcs5PBES2\"\n }\n }, {\n seq: [{\n seq: [{\n oid: {\n name: \"pkcs5PBKDF2\"\n }\n }, {\n seq: [{\n octstr: {\n hex: n.pbkdf2Salt\n }\n }, {\n int: n.pbkdf2Iter\n }]\n }]\n }, {\n seq: [{\n oid: {\n name: \"des-EDE3-CBC\"\n }\n }, {\n octstr: {\n hex: n.encryptionSchemeIV\n }\n }]\n }]\n }]\n }, {\n octstr: {\n hex: n.ciphertext\n }\n }]\n }).getEncodedHex();\n },\n x = function t(e, r) {\n var n = y.lib.WordArray.random(8),\n i = y.lib.WordArray.random(8),\n o = y.PBKDF2(r, n, {\n keySize: 6,\n iterations: 100\n }),\n s = y.enc.Hex.parse(e),\n a = y.TripleDES.encrypt(s, o, {\n iv: i\n }) + \"\",\n u = {};\n return u.ciphertext = a, u.pbkdf2Salt = y.enc.Hex.stringify(n), u.pbkdf2Iter = 100, u.encryptionSchemeAlg = \"DES-EDE3-CBC\", u.encryptionSchemeIV = y.enc.Hex.stringify(i), u;\n };\n\n if (\"PKCS8PRV\" == e && null != p && t instanceof p && 1 == t.isPrivate) {\n var A = v(t).getEncodedHex();\n F = h({\n seq: [{\n int: 0\n }, {\n seq: [{\n oid: {\n name: \"rsaEncryption\"\n }\n }, {\n null: !0\n }]\n }, {\n octstr: {\n hex: A\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Mr(F, \"PRIVATE KEY\") : Mr(b = E(F, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n if (\"PKCS8PRV\" == e && void 0 !== d && t instanceof d && 1 == t.isPrivate) {\n A = new h({\n seq: [{\n int: 1\n }, {\n octstr: {\n hex: t.prvKeyHex\n }\n }, {\n tag: [\"a1\", !0, {\n bitstr: {\n hex: \"00\" + t.pubKeyHex\n }\n }]\n }]\n }).getEncodedHex(), F = h({\n seq: [{\n int: 0\n }, {\n seq: [{\n oid: {\n name: \"ecPublicKey\"\n }\n }, {\n oid: {\n name: t.curveName\n }\n }]\n }, {\n octstr: {\n hex: A\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Mr(F, \"PRIVATE KEY\") : Mr(b = E(F, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n if (\"PKCS8PRV\" == e && void 0 !== g && t instanceof g && 1 == t.isPrivate) {\n A = new c({\n bigint: t.x\n }).getEncodedHex(), F = h({\n seq: [{\n int: 0\n }, {\n seq: [{\n oid: {\n name: \"dsa\"\n }\n }, {\n seq: [{\n int: {\n bigint: t.p\n }\n }, {\n int: {\n bigint: t.q\n }\n }, {\n int: {\n bigint: t.g\n }\n }]\n }]\n }, {\n octstr: {\n hex: A\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Mr(F, \"PRIVATE KEY\") : Mr(b = E(F, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n throw new Error(\"unsupported object nor format\");\n }, Zr.getKeyFromCSRPEM = function (t) {\n var e = Hr(t, \"CERTIFICATE REQUEST\");\n return Zr.getKeyFromCSRHex(e);\n }, Zr.getKeyFromCSRHex = function (t) {\n var e = Zr.parseCSRHex(t);\n return Zr.getKey(e.p8pubkeyhex, null, \"pkcs8pub\");\n }, Zr.parseCSRHex = function (t) {\n var e = Er,\n r = e.getChildIdx,\n n = e.getTLV,\n i = {},\n o = t;\n if (\"30\" != o.substr(0, 2)) throw \"malformed CSR(code:001)\";\n var s = r(o, 0);\n if (s.length < 1) throw \"malformed CSR(code:002)\";\n if (\"30\" != o.substr(s[0], 2)) throw \"malformed CSR(code:003)\";\n var a = r(o, s[0]);\n if (a.length < 3) throw \"malformed CSR(code:004)\";\n return i.p8pubkeyhex = n(o, a[2]), i;\n }, Zr.getKeyID = function (t) {\n var e = Zr,\n r = Er;\n \"string\" == typeof t && -1 != t.indexOf(\"BEGIN \") && (t = e.getKey(t));\n var n = Hr(e.getPEM(t)),\n i = r.getIdxbyList(n, 0, [1]),\n o = r.getV(n, i).substring(2);\n return br.crypto.Util.hashHex(o, \"sha1\");\n }, Zr.getJWKFromKey = function (t) {\n var e = {};\n if (t instanceof He && t.isPrivate) return e.kty = \"RSA\", e.n = Rr(t.n.toString(16)), e.e = Rr(t.e.toString(16)), e.d = Rr(t.d.toString(16)), e.p = Rr(t.p.toString(16)), e.q = Rr(t.q.toString(16)), e.dp = Rr(t.dmp1.toString(16)), e.dq = Rr(t.dmq1.toString(16)), e.qi = Rr(t.coeff.toString(16)), e;\n if (t instanceof He && t.isPublic) return e.kty = \"RSA\", e.n = Rr(t.n.toString(16)), e.e = Rr(t.e.toString(16)), e;\n\n if (t instanceof br.crypto.ECDSA && t.isPrivate) {\n if (\"P-256\" !== (n = t.getShortNISTPCurveName()) && \"P-384\" !== n) throw \"unsupported curve name for JWT: \" + n;\n var r = t.getPublicKeyXYHex();\n return e.kty = \"EC\", e.crv = n, e.x = Rr(r.x), e.y = Rr(r.y), e.d = Rr(t.prvKeyHex), e;\n }\n\n if (t instanceof br.crypto.ECDSA && t.isPublic) {\n var n;\n if (\"P-256\" !== (n = t.getShortNISTPCurveName()) && \"P-384\" !== n) throw \"unsupported curve name for JWT: \" + n;\n r = t.getPublicKeyXYHex();\n return e.kty = \"EC\", e.crv = n, e.x = Rr(r.x), e.y = Rr(r.y), e;\n }\n\n throw \"not supported key object\";\n }, He.getPosArrayOfChildrenFromHex = function (t) {\n return Er.getChildIdx(t, 0);\n }, He.getHexValueArrayOfChildrenFromHex = function (t) {\n var e,\n r = Er.getV,\n n = r(t, (e = He.getPosArrayOfChildrenFromHex(t))[0]),\n i = r(t, e[1]),\n o = r(t, e[2]),\n s = r(t, e[3]),\n a = r(t, e[4]),\n u = r(t, e[5]),\n c = r(t, e[6]),\n h = r(t, e[7]),\n l = r(t, e[8]);\n return (e = new Array()).push(n, i, o, s, a, u, c, h, l), e;\n }, He.prototype.readPrivateKeyFromPEMString = function (t) {\n var e = Hr(t),\n r = He.getHexValueArrayOfChildrenFromHex(e);\n this.setPrivateEx(r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);\n }, He.prototype.readPKCS5PrvKeyHex = function (t) {\n var e = He.getHexValueArrayOfChildrenFromHex(t);\n this.setPrivateEx(e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);\n }, He.prototype.readPKCS8PrvKeyHex = function (t) {\n var e,\n r,\n n,\n i,\n o,\n s,\n a,\n u,\n c = Er,\n h = c.getVbyListEx;\n if (!1 === c.isASN1HEX(t)) throw new Error(\"not ASN.1 hex string\");\n\n try {\n 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\");\n } catch (t) {\n throw new Error(\"malformed PKCS#8 plain RSA private key\");\n }\n\n this.setPrivateEx(e, r, n, i, o, s, a, u);\n }, He.prototype.readPKCS5PubKeyHex = function (t) {\n var e = Er,\n r = e.getV;\n if (!1 === e.isASN1HEX(t)) throw new Error(\"keyHex is not ASN.1 hex string\");\n var n = e.getChildIdx(t, 0);\n 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\");\n var i = r(t, n[0]),\n o = r(t, n[1]);\n this.setPublic(i, o);\n }, He.prototype.readPKCS8PubKeyHex = function (t) {\n var e = Er;\n if (!1 === e.isASN1HEX(t)) throw new Error(\"not ASN.1 hex string\");\n if (\"06092a864886f70d010101\" !== e.getTLVbyListEx(t, 0, [0, 0])) throw new Error(\"not PKCS8 RSA public key\");\n var r = e.getTLVbyListEx(t, 0, [1, 0]);\n this.readPKCS5PubKeyHex(r);\n }, He.prototype.readCertPubKeyHex = function (t, e) {\n var r, n;\n (r = new on()).readCertHex(t), n = r.getPublicKeyHex(), this.readPKCS8PubKeyHex(n);\n };\n var tn = new RegExp(\"[^0-9a-f]\", \"gi\");\n\n function en(t, e) {\n for (var r = \"\", n = e / 4 - t.length, i = 0; i < n; i++) r += \"0\";\n\n return r + t;\n }\n\n function rn(t, e, r) {\n for (var n = \"\", i = 0; n.length < e;) n += Nr(r(Ur(t + String.fromCharCode.apply(String, [(4278190080 & i) >> 24, (16711680 & i) >> 16, (65280 & i) >> 8, 255 & i])))), i += 1;\n\n return n;\n }\n\n function nn(t) {\n for (var e in br.crypto.Util.DIGESTINFOHEAD) {\n var r = br.crypto.Util.DIGESTINFOHEAD[e],\n n = r.length;\n if (t.substring(0, n) == r) return [e, t.substring(n)];\n }\n\n return [];\n }\n\n function on(t) {\n var e,\n r = Er,\n n = r.getChildIdx,\n i = r.getV,\n o = r.getTLV,\n s = r.getVbyList,\n a = r.getVbyListEx,\n u = r.getTLVbyList,\n c = r.getTLVbyListEx,\n h = r.getIdxbyList,\n l = r.getIdxbyListEx,\n f = r.getVidx,\n g = r.oidname,\n d = r.hextooidstr,\n p = on,\n v = Hr;\n\n try {\n e = br.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;\n } catch (t) {}\n\n this.HEX2STAG = {\n \"0c\": \"utf8\",\n 13: \"prn\",\n 16: \"ia5\",\n \"1a\": \"vis\",\n \"1e\": \"bmp\"\n }, this.hex = null, this.version = 0, this.foffset = 0, this.aExtInfo = null, this.getVersion = function () {\n return null === this.hex || 0 !== this.version ? this.version : \"a003020102\" !== u(this.hex, 0, [0, 0]) ? (this.version = 1, this.foffset = -1, 1) : (this.version = 3, 3);\n }, this.getSerialNumberHex = function () {\n return a(this.hex, 0, [0, 0], \"02\");\n }, this.getSignatureAlgorithmField = function () {\n var t = c(this.hex, 0, [0, 1]);\n return this.getAlgorithmIdentifierName(t);\n }, this.getAlgorithmIdentifierName = function (t) {\n for (var r in e) if (t === e[r]) return r;\n\n return g(a(t, 0, [0], \"06\"));\n }, this.getIssuer = function () {\n return this.getX500Name(this.getIssuerHex());\n }, this.getIssuerHex = function () {\n return u(this.hex, 0, [0, 3 + this.foffset], \"30\");\n }, this.getIssuerString = function () {\n return p.hex2dn(this.getIssuerHex());\n }, this.getSubject = function () {\n return this.getX500Name(this.getSubjectHex());\n }, this.getSubjectHex = function () {\n return u(this.hex, 0, [0, 5 + this.foffset], \"30\");\n }, this.getSubjectString = function () {\n return p.hex2dn(this.getSubjectHex());\n }, this.getNotBefore = function () {\n var t = s(this.hex, 0, [0, 4 + this.foffset, 0]);\n return t = t.replace(/(..)/g, \"%$1\"), t = decodeURIComponent(t);\n }, this.getNotAfter = function () {\n var t = s(this.hex, 0, [0, 4 + this.foffset, 1]);\n return t = t.replace(/(..)/g, \"%$1\"), t = decodeURIComponent(t);\n }, this.getPublicKeyHex = function () {\n return r.getTLVbyList(this.hex, 0, [0, 6 + this.foffset], \"30\");\n }, this.getPublicKeyIdx = function () {\n return h(this.hex, 0, [0, 6 + this.foffset], \"30\");\n }, this.getPublicKeyContentIdx = function () {\n var t = this.getPublicKeyIdx();\n return h(this.hex, t, [1, 0], \"30\");\n }, this.getPublicKey = function () {\n return Zr.getKey(this.getPublicKeyHex(), null, \"pkcs8pub\");\n }, this.getSignatureAlgorithmName = function () {\n var t = u(this.hex, 0, [1], \"30\");\n return this.getAlgorithmIdentifierName(t);\n }, this.getSignatureValueHex = function () {\n return s(this.hex, 0, [2], \"03\", !0);\n }, this.verifySignature = function (t) {\n var e = this.getSignatureAlgorithmField(),\n r = this.getSignatureValueHex(),\n n = u(this.hex, 0, [0], \"30\"),\n i = new br.crypto.Signature({\n alg: e\n });\n return i.init(t), i.updateHex(n), i.verify(r);\n }, this.parseExt = function (t) {\n var e, o, a;\n\n if (void 0 === t) {\n if (a = this.hex, 3 !== this.version) return -1;\n e = h(a, 0, [0, 7, 0], \"30\"), o = n(a, e);\n } else {\n a = Hr(t);\n var u = h(a, 0, [0, 3, 0, 0], \"06\");\n if (\"2a864886f70d01090e\" != i(a, u)) return void (this.aExtInfo = new Array());\n e = h(a, 0, [0, 3, 0, 1, 0], \"30\"), o = n(a, e), this.hex = a;\n }\n\n this.aExtInfo = new Array();\n\n for (var c = 0; c < o.length; c++) {\n var l = {\n critical: !1\n },\n g = 0;\n 3 === n(a, o[c]).length && (l.critical = !0, g = 1), l.oid = r.hextooidstr(s(a, o[c], [0], \"06\"));\n var d = h(a, o[c], [1 + g]);\n l.vidx = f(a, d), this.aExtInfo.push(l);\n }\n }, this.getExtInfo = function (t) {\n var e = this.aExtInfo,\n r = t;\n if (t.match(/^[0-9.]+$/) || (r = br.asn1.x509.OID.name2oid(t)), \"\" !== r) for (var n = 0; n < e.length; n++) if (e[n].oid === r) return e[n];\n }, this.getExtBasicConstraints = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"basicConstraints\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var n = {\n extname: \"basicConstraints\"\n };\n if (e && (n.critical = !0), \"3000\" === t) return n;\n if (\"30030101ff\" === t) return n.cA = !0, n;\n\n if (\"30060101ff02\" === t.substr(0, 12)) {\n var s = i(t, 10),\n a = parseInt(s, 16);\n return n.cA = !0, n.pathLen = a, n;\n }\n\n throw new Error(\"hExtV parse error: \" + t);\n }, this.getExtKeyUsage = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"keyUsage\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var n = {\n extname: \"keyUsage\"\n };\n return e && (n.critical = !0), n.names = this.getExtKeyUsageString(t).split(\",\"), n;\n }, this.getExtKeyUsageBin = function (t) {\n if (void 0 === t) {\n var e = this.getExtInfo(\"keyUsage\");\n if (void 0 === e) return \"\";\n t = o(this.hex, e.vidx);\n }\n\n if (8 != t.length && 10 != t.length) throw new Error(\"malformed key usage value: \" + t);\n var r = \"000000000000000\" + parseInt(t.substr(6), 16).toString(2);\n return 8 == t.length && (r = r.slice(-8)), 10 == t.length && (r = r.slice(-16)), \"\" == (r = r.replace(/0+$/, \"\")) && (r = \"0\"), r;\n }, this.getExtKeyUsageString = function (t) {\n 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]);\n\n return r.join(\",\");\n }, this.getExtSubjectKeyIdentifier = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"subjectKeyIdentifier\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var n = {\n extname: \"subjectKeyIdentifier\"\n };\n e && (n.critical = !0);\n var s = i(t, 0);\n return n.kid = {\n hex: s\n }, n;\n }, this.getExtAuthorityKeyIdentifier = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"authorityKeyIdentifier\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var s = {\n extname: \"authorityKeyIdentifier\"\n };\n e && (s.critical = !0);\n\n for (var a = n(t, 0), u = 0; u < a.length; u++) {\n var c = t.substr(a[u], 2);\n\n if (\"80\" === c && (s.kid = {\n hex: i(t, a[u])\n }), \"a1\" === c) {\n var h = o(t, a[u]),\n l = this.getGeneralNames(h);\n s.issuer = l[0].dn;\n }\n\n \"82\" === c && (s.sn = {\n hex: i(t, a[u])\n });\n }\n\n return s;\n }, this.getExtExtKeyUsage = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"extKeyUsage\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var s = {\n extname: \"extKeyUsage\",\n array: []\n };\n e && (s.critical = !0);\n\n for (var a = n(t, 0), u = 0; u < a.length; u++) s.array.push(g(i(t, a[u])));\n\n return s;\n }, this.getExtExtKeyUsageName = function () {\n var t = this.getExtInfo(\"extKeyUsage\");\n if (void 0 === t) return t;\n var e = new Array(),\n r = o(this.hex, t.vidx);\n if (\"\" === r) return e;\n\n for (var s = n(r, 0), a = 0; a < s.length; a++) e.push(g(i(r, s[a])));\n\n return e;\n }, this.getExtSubjectAltName = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"subjectAltName\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var n = {\n extname: \"subjectAltName\",\n array: []\n };\n return e && (n.critical = !0), n.array = this.getGeneralNames(t), n;\n }, this.getExtIssuerAltName = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"issuerAltName\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var n = {\n extname: \"issuerAltName\",\n array: []\n };\n return e && (n.critical = !0), n.array = this.getGeneralNames(t), n;\n }, this.getGeneralNames = function (t) {\n for (var e = n(t, 0), r = [], i = 0; i < e.length; i++) {\n var s = this.getGeneralName(o(t, e[i]));\n void 0 !== s && r.push(s);\n }\n\n return r;\n }, this.getGeneralName = function (t) {\n var e = t.substr(0, 2),\n r = i(t, 0),\n n = Nr(r);\n return \"81\" == e ? {\n rfc822: n\n } : \"82\" == e ? {\n dns: n\n } : \"86\" == e ? {\n uri: n\n } : \"87\" == e ? {\n ip: Yr(r)\n } : \"a4\" == e ? {\n dn: this.getX500Name(r)\n } : void 0;\n }, this.getExtSubjectAltName2 = function () {\n var t,\n e,\n r,\n s = this.getExtInfo(\"subjectAltName\");\n if (void 0 === s) return s;\n\n 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 = Lr(t), a.push([\"MAIL\", e])), \"82\" === r && (e = Lr(t), a.push([\"DNS\", e])), \"84\" === r && (e = on.hex2dn(t, 0), a.push([\"DN\", e])), \"86\" === r && (e = Lr(t), a.push([\"URI\", e])), \"87\" === r && (e = Yr(t), a.push([\"IP\", e]));\n\n return a;\n }, this.getExtCRLDistributionPoints = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"cRLDistributionPoints\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var i = {\n extname: \"cRLDistributionPoints\",\n array: []\n };\n e && (i.critical = !0);\n\n for (var s = n(t, 0), a = 0; a < s.length; a++) {\n var u = o(t, s[a]);\n i.array.push(this.getDistributionPoint(u));\n }\n\n return i;\n }, this.getDistributionPoint = function (t) {\n for (var e = {}, r = n(t, 0), i = 0; i < r.length; i++) {\n var s = t.substr(r[i], 2),\n a = o(t, r[i]);\n \"a0\" == s && (e.dpname = this.getDistributionPointName(a));\n }\n\n return e;\n }, this.getDistributionPointName = function (t) {\n for (var e = {}, r = n(t, 0), i = 0; i < r.length; i++) {\n var s = t.substr(r[i], 2),\n a = o(t, r[i]);\n \"a0\" == s && (e.full = this.getGeneralNames(a));\n }\n\n return e;\n }, this.getExtCRLDistributionPointsURI = function () {\n var t = this.getExtInfo(\"cRLDistributionPoints\");\n if (void 0 === t) return t;\n\n for (var e = new Array(), r = n(this.hex, t.vidx), i = 0; i < r.length; i++) try {\n var o = Lr(s(this.hex, r[i], [0, 0, 0], \"86\"));\n e.push(o);\n } catch (t) {}\n\n return e;\n }, this.getExtAIAInfo = function () {\n var t = this.getExtInfo(\"authorityInfoAccess\");\n if (void 0 === t) return t;\n\n for (var e = {\n ocsp: [],\n caissuer: []\n }, r = n(this.hex, t.vidx), i = 0; i < r.length; i++) {\n var o = s(this.hex, r[i], [0], \"06\"),\n a = s(this.hex, r[i], [1], \"86\");\n \"2b06010505073001\" === o && e.ocsp.push(Lr(a)), \"2b06010505073002\" === o && e.caissuer.push(Lr(a));\n }\n\n return e;\n }, this.getExtAuthorityInfoAccess = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"authorityInfoAccess\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var i = {\n extname: \"authorityInfoAccess\",\n array: []\n };\n e && (i.critical = !0);\n\n for (var u = n(t, 0), c = 0; c < u.length; c++) {\n var h = a(t, u[c], [0], \"06\"),\n l = Lr(s(t, u[c], [1], \"86\"));\n if (\"2b06010505073001\" == h) i.array.push({\n ocsp: l\n });else {\n if (\"2b06010505073002\" != h) throw new Error(\"unknown method: \" + h);\n i.array.push({\n caissuer: l\n });\n }\n }\n\n return i;\n }, this.getExtCertificatePolicies = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"certificatePolicies\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var i = {\n extname: \"certificatePolicies\",\n array: []\n };\n e && (i.critical = !0);\n\n for (var s = n(t, 0), a = 0; a < s.length; a++) {\n var u = o(t, s[a]),\n c = this.getPolicyInformation(u);\n i.array.push(c);\n }\n\n return i;\n }, this.getPolicyInformation = function (t) {\n var e = {},\n r = s(t, 0, [0], \"06\");\n e.policyoid = g(r);\n var i = l(t, 0, [1], \"30\");\n\n if (-1 != i) {\n e.array = [];\n\n for (var a = n(t, i), u = 0; u < a.length; u++) {\n var c = o(t, a[u]),\n h = this.getPolicyQualifierInfo(c);\n e.array.push(h);\n }\n }\n\n return e;\n }, this.getPolicyQualifierInfo = function (t) {\n var e = {},\n r = s(t, 0, [0], \"06\");\n\n if (\"2b06010505070201\" === r) {\n var n = a(t, 0, [1], \"16\");\n e.cps = Nr(n);\n } else if (\"2b06010505070202\" === r) {\n var i = u(t, 0, [1], \"30\");\n e.unotice = this.getUserNotice(i);\n }\n\n return e;\n }, this.getUserNotice = function (t) {\n for (var e = {}, r = n(t, 0), i = 0; i < r.length; i++) {\n var s = o(t, r[i]);\n \"30\" != s.substr(0, 2) && (e.exptext = this.getDisplayText(s));\n }\n\n return e;\n }, this.getDisplayText = function (t) {\n var e = {};\n return e.type = {\n \"0c\": \"utf8\",\n 16: \"ia5\",\n \"1a\": \"vis\",\n \"1e\": \"bmp\"\n }[t.substr(0, 2)], e.str = Nr(i(t, 0)), e;\n }, this.getExtCRLNumber = function (t, e) {\n var r = {\n extname: \"cRLNumber\"\n };\n if (e && (r.critical = !0), \"02\" == t.substr(0, 2)) return r.num = {\n hex: i(t, 0)\n }, r;\n throw new Error(\"hExtV parse error: \" + t);\n }, this.getExtCRLReason = function (t, e) {\n var r = {\n extname: \"cRLReason\"\n };\n if (e && (r.critical = !0), \"0a\" == t.substr(0, 2)) return r.code = parseInt(i(t, 0), 16), r;\n throw new Error(\"hExtV parse error: \" + t);\n }, this.getExtOcspNonce = function (t, e) {\n var r = {\n extname: \"ocspNonce\"\n };\n e && (r.critical = !0);\n var n = i(t, 0);\n return r.hex = n, r;\n }, this.getExtOcspNoCheck = function (t, e) {\n var r = {\n extname: \"ocspNoCheck\"\n };\n return e && (r.critical = !0), r;\n }, this.getExtAdobeTimeStamp = function (t, e) {\n if (void 0 === t && void 0 === e) {\n var r = this.getExtInfo(\"adobeTimeStamp\");\n if (void 0 === r) return;\n t = o(this.hex, r.vidx), e = r.critical;\n }\n\n var i = {\n extname: \"adobeTimeStamp\"\n };\n e && (i.critical = !0);\n var s = n(t, 0);\n\n if (s.length > 1) {\n var a = o(t, s[1]),\n u = this.getGeneralName(a);\n null != u.uri && (i.uri = u.uri);\n }\n\n if (s.length > 2) {\n var c = o(t, s[2]);\n \"0101ff\" == c && (i.reqauth = !0), \"010100\" == c && (i.reqauth = !1);\n }\n\n return i;\n }, this.getX500NameRule = function (t) {\n 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]);\n\n for (n = 0; n < r.length; n++) {\n var s = r[n],\n a = s.ds,\n u = s.value,\n c = s.type;\n if (\":\" + a, \"prn\" != a && \"utf8\" != a && \"ia5\" != a) return \"mixed\";\n\n if (\"ia5\" == a) {\n if (\"CN\" != c) return \"mixed\";\n if (br.lang.String.isMail(u)) continue;\n return \"mixed\";\n }\n\n if (\"C\" == c) {\n if (\"prn\" == a) continue;\n return \"mixed\";\n }\n\n if (\":\" + a, null == e) e = a;else if (e !== a) return \"mixed\";\n }\n\n return null == e ? \"prn\" : e;\n }, this.getX500Name = function (t) {\n var e = this.getX500NameArray(t);\n return {\n array: e,\n str: this.dnarraytostr(e)\n };\n }, this.getX500NameArray = function (t) {\n for (var e = [], r = n(t, 0), i = 0; i < r.length; i++) e.push(this.getRDN(o(t, r[i])));\n\n return e;\n }, this.getRDN = function (t) {\n for (var e = [], r = n(t, 0), i = 0; i < r.length; i++) e.push(this.getAttrTypeAndValue(o(t, r[i])));\n\n return e;\n }, this.getAttrTypeAndValue = function (t) {\n var e = {\n type: null,\n value: null,\n ds: null\n },\n r = n(t, 0),\n i = s(t, r[0], [], \"06\"),\n o = s(t, r[1], []),\n a = br.asn1.ASN1Util.oidHexToInt(i);\n return e.type = br.asn1.x509.OID.oid2atype(a), e.value = Nr(o), e.ds = this.HEX2STAG[t.substr(r[1], 2)], e;\n }, this.readCertPEM = function (t) {\n this.readCertHex(v(t));\n }, this.readCertHex = function (t) {\n this.hex = t, this.getVersion();\n\n try {\n h(this.hex, 0, [0, 7], \"a3\"), this.parseExt();\n } catch (t) {}\n }, this.getParam = function () {\n var t = {};\n return t.version = this.getVersion(), t.serial = {\n hex: this.getSerialNumberHex()\n }, t.sigalg = this.getSignatureAlgorithmField(), t.issuer = this.getIssuer(), t.notbefore = this.getNotBefore(), t.notafter = this.getNotAfter(), t.subject = this.getSubject(), t.sbjpubkey = Mr(this.getPublicKeyHex(), \"PUBLIC KEY\"), this.aExtInfo.length > 0 && (t.ext = this.getExtParamArray()), t.sighex = this.getSignatureValueHex(), t;\n }, this.getExtParamArray = function (t) {\n null == t && -1 != l(this.hex, 0, [0, \"[3]\"]) && (t = c(this.hex, 0, [0, \"[3]\", 0], \"30\"));\n\n for (var e = [], r = n(t, 0), i = 0; i < r.length; i++) {\n var s = o(t, r[i]),\n a = this.getExtParam(s);\n null != a && e.push(a);\n }\n\n return e;\n }, this.getExtParam = function (t) {\n var e = n(t, 0).length;\n if (2 != e && 3 != e) throw new Error(\"wrong number elements in Extension: \" + e + \" \" + t);\n var r = d(s(t, 0, [0], \"06\")),\n i = !1;\n 3 == e && \"0101ff\" == u(t, 0, [1]) && (i = !0);\n var o = u(t, 0, [e - 1, 0]),\n a = void 0;\n 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;\n var c = {\n extname: r,\n extn: o\n };\n return i && (c.critical = !0), c;\n }, this.findExt = function (t, e) {\n for (var r = 0; r < t.length; r++) if (t[r].extname == e) return t[r];\n\n return null;\n }, this.updateExtCDPFullURI = function (t, e) {\n var r = this.findExt(t, \"cRLDistributionPoints\");\n 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++) {\n var a = o[i];\n null != a.uri && (a.uri = e);\n }\n }, this.updateExtAIAOCSP = function (t, e) {\n var r = this.findExt(t, \"authorityInfoAccess\");\n 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);\n }, this.updateExtAIACAIssuer = function (t, e) {\n var r = this.findExt(t, \"authorityInfoAccess\");\n 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);\n }, this.dnarraytostr = function (t) {\n return \"/\" + t.map(function (t) {\n return function e(t) {\n return t.map(function (t) {\n return function e(t) {\n return t.type + \"=\" + t.value;\n }(t);\n }).join(\"+\");\n }(t);\n }).join(\"/\");\n }, this.getInfo = function () {\n var t,\n e,\n r,\n n = function t(e) {\n return JSON.stringify(e.array).replace(/[\\[\\]\\{\\}\\\"]/g, \"\");\n },\n i = function t(e) {\n for (var r = \"\", n = e.array, i = 0; i < n.length; i++) {\n var o = n[i];\n if (r += \" policy oid: \" + o.policyoid + \"\\n\", void 0 !== o.array) for (var s = 0; s < o.array.length; s++) {\n var a = o.array[s];\n void 0 !== a.cps && (r += \" cps: \" + a.cps + \"\\n\");\n }\n }\n\n return r;\n },\n o = function t(e) {\n for (var r = \"\", n = e.array, i = 0; i < n.length; i++) {\n var o = n[i];\n\n try {\n void 0 !== o.dpname.full[0].uri && (r += \" \" + o.dpname.full[0].uri + \"\\n\");\n } catch (t) {}\n\n try {\n void 0 !== o.dname.full[0].dn.hex && (r += \" \" + on.hex2dn(o.dpname.full[0].dn.hex) + \"\\n\");\n } catch (t) {}\n }\n\n return r;\n },\n s = function t(e) {\n for (var r = \"\", n = e.array, i = 0; i < n.length; i++) {\n var o = n[i];\n void 0 !== o.caissuer && (r += \" caissuer: \" + o.caissuer + \"\\n\"), void 0 !== o.ocsp && (r += \" ocsp: \" + o.ocsp + \"\\n\");\n }\n\n return r;\n };\n\n 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)) {\n t += \"X509v3 Extensions:\\n\";\n\n for (var a = 0; a < r.length; a++) {\n var u = r[a],\n c = br.asn1.x509.OID.oid2name(u.oid);\n \"\" === c && (c = u.oid);\n var h = \"\";\n\n if (!0 === u.critical && (h = \"CRITICAL\"), t += \" \" + c + \" \" + h + \":\\n\", \"basicConstraints\" === c) {\n var l = this.getExtBasicConstraints();\n void 0 === l.cA ? t += \" {}\\n\" : (t += \" cA=true\", void 0 !== l.pathLen && (t += \", pathLen=\" + l.pathLen), t += \"\\n\");\n } else if (\"keyUsage\" === c) t += \" \" + this.getExtKeyUsageString() + \"\\n\";else if (\"subjectKeyIdentifier\" === c) t += \" \" + this.getExtSubjectKeyIdentifier().kid.hex + \"\\n\";else if (\"authorityKeyIdentifier\" === c) {\n var f = this.getExtAuthorityKeyIdentifier();\n void 0 !== f.kid && (t += \" kid=\" + f.kid.hex + \"\\n\");\n } else {\n 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()));\n }\n }\n }\n\n return t += \"signature algorithm: \" + this.getSignatureAlgorithmName() + \"\\n\", t += \"signature: \" + this.getSignatureValueHex().substr(0, 16) + \"...\\n\";\n }, \"string\" == typeof t && (-1 != t.indexOf(\"-----BEGIN\") ? this.readCertPEM(t) : br.lang.String.isHex(t) && this.readCertHex(t));\n }\n\n He.prototype.sign = function (t, e) {\n var r = function t(r) {\n return br.crypto.Util.hashString(r, e);\n }(t);\n\n return this.signWithMessageHash(r, e);\n }, He.prototype.signWithMessageHash = function (t, e) {\n var r = je(br.crypto.Util.getPaddedDigestInfoHex(t, e, this.n.bitLength()), 16);\n return en(this.doPrivate(r).toString(16), this.n.bitLength());\n }, He.prototype.signPSS = function (t, e, r) {\n var n = function t(r) {\n return br.crypto.Util.hashHex(r, e);\n }(Ur(t));\n\n return void 0 === r && (r = -1), this.signWithMessageHashPSS(n, e, r);\n }, He.prototype.signWithMessageHashPSS = function (t, e, r) {\n var n,\n i = Nr(t),\n o = i.length,\n s = this.n.bitLength() - 1,\n a = Math.ceil(s / 8),\n u = function t(r) {\n return br.crypto.Util.hashHex(r, e);\n };\n\n 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\");\n if (a < o + r + 2) throw new Error(\"data too long\");\n var c = \"\";\n r > 0 && (c = new Array(r), new Oe().nextBytes(c), c = String.fromCharCode.apply(String, c));\n var h = Nr(u(Ur(\"\\0\\0\\0\\0\\0\\0\\0\\0\" + i + c))),\n l = [];\n\n for (n = 0; n < a - r - o - 2; n += 1) l[n] = 0;\n\n var f = String.fromCharCode.apply(String, l) + \"\u0001\" + c,\n g = rn(h, f.length, u),\n d = [];\n\n for (n = 0; n < f.length; n += 1) d[n] = f.charCodeAt(n) ^ g.charCodeAt(n);\n\n var p = 65280 >> 8 * a - s & 255;\n\n for (d[0] &= ~p, n = 0; n < o; n++) d.push(h.charCodeAt(n));\n\n return d.push(188), en(this.doPrivate(new F(d)).toString(16), this.n.bitLength());\n }, He.prototype.verify = function (t, e) {\n var r = je(e = (e = e.replace(tn, \"\")).replace(/[ \\n]+/g, \"\"), 16);\n if (r.bitLength() > this.n.bitLength()) return 0;\n var n = nn(this.doPublic(r).toString(16).replace(/^1f+00/, \"\"));\n if (0 == n.length) return !1;\n var i = n[0];\n return n[1] == function t(e) {\n return br.crypto.Util.hashString(e, i);\n }(t);\n }, He.prototype.verifyWithMessageHash = function (t, e) {\n if (e.length != Math.ceil(this.n.bitLength() / 4)) return !1;\n var r = je(e, 16);\n if (r.bitLength() > this.n.bitLength()) return 0;\n var n = nn(this.doPublic(r).toString(16).replace(/^1f+00/, \"\"));\n if (0 == n.length) return !1;\n n[0];\n return n[1] == t;\n }, He.prototype.verifyPSS = function (t, e, r, n) {\n var i = function t(e) {\n return br.crypto.Util.hashHex(e, r);\n }(Ur(t));\n\n return void 0 === n && (n = -1), this.verifyWithMessageHashPSS(i, e, r, n);\n }, He.prototype.verifyWithMessageHashPSS = function (t, e, r, n) {\n if (e.length != Math.ceil(this.n.bitLength() / 4)) return !1;\n\n var i,\n o = new F(e, 16),\n s = function t(e) {\n return br.crypto.Util.hashHex(e, r);\n },\n a = Nr(t),\n u = a.length,\n c = this.n.bitLength() - 1,\n h = Math.ceil(c / 8);\n\n 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\");\n if (h < u + n + 2) throw new Error(\"data too long\");\n var l = this.doPublic(o).toByteArray();\n\n for (i = 0; i < l.length; i += 1) l[i] &= 255;\n\n for (; l.length < h;) l.unshift(0);\n\n if (188 !== l[h - 1]) throw new Error(\"encoded message does not end in 0xbc\");\n var f = (l = String.fromCharCode.apply(String, l)).substr(0, h - u - 1),\n g = l.substr(f.length, u),\n d = 65280 >> 8 * h - c & 255;\n if (0 != (f.charCodeAt(0) & d)) throw new Error(\"bits beyond keysize not zero\");\n var p = rn(g, f.length, s),\n v = [];\n\n for (i = 0; i < f.length; i += 1) v[i] = f.charCodeAt(i) ^ p.charCodeAt(i);\n\n v[0] &= ~d;\n var y = h - u - n - 2;\n\n for (i = 0; i < y; i += 1) if (0 !== v[i]) throw new Error(\"leftmost octets not zero\");\n\n if (1 !== v[y]) throw new Error(\"0x01 marker not found\");\n return g === Nr(s(Ur(\"\\0\\0\\0\\0\\0\\0\\0\\0\" + a + String.fromCharCode.apply(String, v.slice(-n)))));\n }, He.SALT_LEN_HLEN = -1, He.SALT_LEN_MAX = -2, He.SALT_LEN_RECOVER = -2, on.hex2dn = function (t, e) {\n if (void 0 === e && (e = 0), \"30\" !== t.substr(e, 2)) throw new Error(\"malformed DN\");\n\n for (var r = new Array(), n = Er.getChildIdx(t, e), i = 0; i < n.length; i++) r.push(on.hex2rdn(t, n[i]));\n\n return \"/\" + (r = r.map(function (t) {\n return t.replace(\"/\", \"\\\\/\");\n })).join(\"/\");\n }, on.hex2rdn = function (t, e) {\n if (void 0 === e && (e = 0), \"31\" !== t.substr(e, 2)) throw new Error(\"malformed RDN\");\n\n for (var r = new Array(), n = Er.getChildIdx(t, e), i = 0; i < n.length; i++) r.push(on.hex2attrTypeValue(t, n[i]));\n\n return (r = r.map(function (t) {\n return t.replace(\"+\", \"\\\\+\");\n })).join(\"+\");\n }, on.hex2attrTypeValue = function (t, e) {\n var r = Er,\n n = r.getV;\n if (void 0 === e && (e = 0), \"30\" !== t.substr(e, 2)) throw new Error(\"malformed attribute type and value\");\n var i = r.getChildIdx(t, e);\n 2 !== i.length || t.substr(i[0], 2);\n var o = n(t, i[0]),\n s = br.asn1.ASN1Util.oidHexToInt(o);\n return br.asn1.x509.OID.oid2atype(s) + \"=\" + Nr(n(t, i[1]));\n }, on.getPublicKeyFromCertHex = function (t) {\n var e = new on();\n return e.readCertHex(t), e.getPublicKey();\n }, on.getPublicKeyFromCertPEM = function (t) {\n var e = new on();\n return e.readCertPEM(t), e.getPublicKey();\n }, on.getPublicKeyInfoPropOfCertPEM = function (t) {\n var e,\n r,\n n = Er.getVbyList,\n i = {};\n 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;\n }, on.KEYUSAGE_NAME = [\"digitalSignature\", \"nonRepudiation\", \"keyEncipherment\", \"dataEncipherment\", \"keyAgreement\", \"keyCertSign\", \"cRLSign\", \"encipherOnly\", \"decipherOnly\"], void 0 !== br && br || (e.KJUR = br = {}), void 0 !== br.jws && br.jws || (br.jws = {}), br.jws.JWS = function () {\n var t = br.jws.JWS.isSafeJSONString;\n\n this.parseJWS = function (e, r) {\n if (void 0 === this.parsedJWS || !r && void 0 === this.parsedJWS.sigvalH) {\n var n = e.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/);\n if (null == n) throw \"JWS signature is not a form of 'Head.Payload.SigValue'.\";\n var i = n[1],\n o = n[2],\n s = n[3],\n a = i + \".\" + o;\n\n if (this.parsedJWS = {}, this.parsedJWS.headB64U = i, this.parsedJWS.payloadB64U = o, this.parsedJWS.sigvalB64U = s, this.parsedJWS.si = a, !r) {\n var u = Ir(s),\n c = je(u, 16);\n this.parsedJWS.sigvalH = u, this.parsedJWS.sigvalBI = c;\n }\n\n var h = Fr(i),\n l = Fr(o);\n if (this.parsedJWS.headS = h, this.parsedJWS.payloadS = l, !t(h, this.parsedJWS, \"headP\")) throw \"malformed JSON string for JWS Head: \" + h;\n }\n };\n }, br.jws.JWS.sign = function (t, e, n, i, o) {\n var s,\n a,\n u,\n c = br,\n h = c.jws.JWS,\n l = h.readSafeJSONString,\n f = h.isSafeJSONString,\n g = c.crypto,\n d = (g.ECDSA, g.Mac),\n p = g.Signature,\n v = JSON;\n if (\"string\" != typeof e && \"object\" != (void 0 === e ? \"undefined\" : r(e))) throw \"spHeader must be JSON string or object: \" + e;\n\n if (\"object\" == (void 0 === e ? \"undefined\" : r(e)) && (a = e, s = v.stringify(a)), \"string\" == typeof e) {\n if (!f(s = e)) throw \"JWS Head is not safe JSON string: \" + s;\n a = l(s);\n }\n\n if (u = n, \"object\" == (void 0 === n ? \"undefined\" : r(n)) && (u = v.stringify(n)), \"\" != t && null != t || void 0 === a.alg || (t = a.alg), \"\" != t && null != t && void 0 === a.alg && (a.alg = t, s = v.stringify(a)), t !== a.alg) throw \"alg and sHeader.alg doesn't match: \" + t + \"!=\" + a.alg;\n var y = null;\n if (void 0 === h.jwsalg2sigalg[t]) throw \"unsupported alg name: \" + t;\n y = h.jwsalg2sigalg[t];\n var m = wr(s) + \".\" + wr(u),\n _ = \"\";\n\n if (\"Hmac\" == y.substr(0, 4)) {\n if (void 0 === i) throw \"mac key shall be specified for HS* alg\";\n var S = new d({\n alg: y,\n prov: \"cryptojs\",\n pass: i\n });\n S.updateString(m), _ = S.doFinal();\n } else if (-1 != y.indexOf(\"withECDSA\")) {\n (w = new p({\n alg: y\n })).init(i, o), w.updateString(m);\n var b = w.sign();\n _ = br.crypto.ECDSA.asn1SigToConcatSig(b);\n } else {\n var w;\n if (\"none\" != y) (w = new p({\n alg: y\n })).init(i, o), w.updateString(m), _ = w.sign();\n }\n\n return m + \".\" + Rr(_);\n }, br.jws.JWS.verify = function (t, e, n) {\n var i,\n o = br,\n s = o.jws.JWS,\n a = s.readSafeJSONString,\n u = o.crypto,\n c = u.ECDSA,\n h = u.Mac,\n l = u.Signature;\n void 0 !== r(He) && (i = He);\n var f = t.split(\".\");\n if (3 !== f.length) return !1;\n var g = f[0] + \".\" + f[1],\n d = Ir(f[2]),\n p = a(Fr(f[0])),\n v = null,\n y = null;\n if (void 0 === p.alg) throw \"algorithm not specified in header\";\n if ((y = (v = p.alg).substr(0, 2), null != n && \"[object Array]\" === Object.prototype.toString.call(n) && n.length > 0) && -1 == (\":\" + n.join(\":\") + \":\").indexOf(\":\" + v + \":\")) throw \"algorithm '\" + v + \"' not accepted in the list\";\n if (\"none\" != v && null === e) throw \"key shall be specified to verify.\";\n if (\"string\" == typeof e && -1 != e.indexOf(\"-----BEGIN \") && (e = Zr.getKey(e)), !(\"RS\" != y && \"PS\" != y || e instanceof i)) throw \"key shall be a RSAKey obj for RS* and PS* algs\";\n if (\"ES\" == y && !(e instanceof c)) throw \"key shall be a ECDSA obj for ES* algs\";\n var m = null;\n if (void 0 === s.jwsalg2sigalg[p.alg]) throw \"unsupported alg name: \" + v;\n if (\"none\" == (m = s.jwsalg2sigalg[v])) throw \"not supported\";\n\n if (\"Hmac\" == m.substr(0, 4)) {\n if (void 0 === e) throw \"hexadecimal key shall be specified for HMAC\";\n\n var _ = new h({\n alg: m,\n pass: e\n });\n\n return _.updateString(g), d == _.doFinal();\n }\n\n if (-1 != m.indexOf(\"withECDSA\")) {\n var S,\n b = null;\n\n try {\n b = c.concatSigToASN1Sig(d);\n } catch (t) {\n return !1;\n }\n\n return (S = new l({\n alg: m\n })).init(e), S.updateString(g), S.verify(b);\n }\n\n return (S = new l({\n alg: m\n })).init(e), S.updateString(g), S.verify(d);\n }, br.jws.JWS.parse = function (t) {\n var e,\n r,\n n,\n i = t.split(\".\"),\n o = {};\n if (2 != i.length && 3 != i.length) throw \"malformed sJWS: wrong number of '.' splitted elements\";\n return e = i[0], r = i[1], 3 == i.length && (n = i[2]), o.headerObj = br.jws.JWS.readSafeJSONString(Fr(e)), o.payloadObj = br.jws.JWS.readSafeJSONString(Fr(r)), o.headerPP = JSON.stringify(o.headerObj, null, \" \"), null == o.payloadObj ? o.payloadPP = Fr(r) : o.payloadPP = JSON.stringify(o.payloadObj, null, \" \"), void 0 !== n && (o.sigHex = Ir(n)), o;\n }, br.jws.JWS.verifyJWT = function (t, e, n) {\n var i = br.jws,\n o = i.JWS,\n s = o.readSafeJSONString,\n a = o.inArray,\n u = o.includedArray,\n c = t.split(\".\"),\n h = c[0],\n l = c[1],\n f = (Ir(c[2]), s(Fr(h))),\n g = s(Fr(l));\n if (void 0 === f.alg) return !1;\n if (void 0 === n.alg) throw \"acceptField.alg shall be specified\";\n if (!a(f.alg, n.alg)) return !1;\n if (void 0 !== g.iss && \"object\" === r(n.iss) && !a(g.iss, n.iss)) return !1;\n if (void 0 !== g.sub && \"object\" === r(n.sub) && !a(g.sub, n.sub)) return !1;\n if (void 0 !== g.aud && \"object\" === r(n.aud)) if (\"string\" == typeof g.aud) {\n if (!a(g.aud, n.aud)) return !1;\n } else if (\"object\" == r(g.aud) && !u(g.aud, n.aud)) return !1;\n var d = i.IntDate.getNow();\n return void 0 !== n.verifyAt && \"number\" == typeof n.verifyAt && (d = n.verifyAt), void 0 !== n.gracePeriod && \"number\" == typeof n.gracePeriod || (n.gracePeriod = 0), !(void 0 !== g.exp && \"number\" == typeof g.exp && g.exp + n.gracePeriod < d) && !(void 0 !== g.nbf && \"number\" == typeof g.nbf && d < g.nbf - n.gracePeriod) && !(void 0 !== g.iat && \"number\" == typeof g.iat && d < g.iat - n.gracePeriod) && (void 0 === g.jti || void 0 === n.jti || g.jti === n.jti) && !!o.verify(t, e, n.alg);\n }, br.jws.JWS.includedArray = function (t, e) {\n var n = br.jws.JWS.inArray;\n if (null === t) return !1;\n if (\"object\" !== (void 0 === t ? \"undefined\" : r(t))) return !1;\n if (\"number\" != typeof t.length) return !1;\n\n for (var i = 0; i < t.length; i++) if (!n(t[i], e)) return !1;\n\n return !0;\n }, br.jws.JWS.inArray = function (t, e) {\n if (null === e) return !1;\n if (\"object\" !== (void 0 === e ? \"undefined\" : r(e))) return !1;\n if (\"number\" != typeof e.length) return !1;\n\n for (var n = 0; n < e.length; n++) if (e[n] == t) return !0;\n\n return !1;\n }, br.jws.JWS.jwsalg2sigalg = {\n HS256: \"HmacSHA256\",\n HS384: \"HmacSHA384\",\n HS512: \"HmacSHA512\",\n RS256: \"SHA256withRSA\",\n RS384: \"SHA384withRSA\",\n RS512: \"SHA512withRSA\",\n ES256: \"SHA256withECDSA\",\n ES384: \"SHA384withECDSA\",\n PS256: \"SHA256withRSAandMGF1\",\n PS384: \"SHA384withRSAandMGF1\",\n PS512: \"SHA512withRSAandMGF1\",\n none: \"none\"\n }, br.jws.JWS.isSafeJSONString = function (t, e, n) {\n var i = null;\n\n try {\n return \"object\" != (void 0 === (i = Sr(t)) ? \"undefined\" : r(i)) || i.constructor === Array ? 0 : (e && (e[n] = i), 1);\n } catch (t) {\n return 0;\n }\n }, br.jws.JWS.readSafeJSONString = function (t) {\n var e = null;\n\n try {\n return \"object\" != (void 0 === (e = Sr(t)) ? \"undefined\" : r(e)) || e.constructor === Array ? null : e;\n } catch (t) {\n return null;\n }\n }, br.jws.JWS.getEncodedSignatureValueFromJWS = function (t) {\n var e = t.match(/^[^.]+\\.[^.]+\\.([^.]+)$/);\n if (null == e) throw \"JWS signature is not a form of 'Head.Payload.SigValue'.\";\n return e[1];\n }, br.jws.JWS.getJWKthumbprint = function (t) {\n if (\"RSA\" !== t.kty && \"EC\" !== t.kty && \"oct\" !== t.kty) throw \"unsupported algorithm for JWK Thumprint\";\n var e = \"{\";\n\n if (\"RSA\" === t.kty) {\n if (\"string\" != typeof t.n || \"string\" != typeof t.e) throw \"wrong n and e value for RSA key\";\n e += '\"e\":\"' + t.e + '\",', e += '\"kty\":\"' + t.kty + '\",', e += '\"n\":\"' + t.n + '\"}';\n } else if (\"EC\" === t.kty) {\n if (\"string\" != typeof t.crv || \"string\" != typeof t.x || \"string\" != typeof t.y) throw \"wrong crv, x and y value for EC key\";\n e += '\"crv\":\"' + t.crv + '\",', e += '\"kty\":\"' + t.kty + '\",', e += '\"x\":\"' + t.x + '\",', e += '\"y\":\"' + t.y + '\"}';\n } else if (\"oct\" === t.kty) {\n if (\"string\" != typeof t.k) throw \"wrong k value for oct(symmetric) key\";\n e += '\"kty\":\"' + t.kty + '\",', e += '\"k\":\"' + t.k + '\"}';\n }\n\n var r = Ur(e);\n return Rr(br.crypto.Util.hashHex(r, \"sha256\"));\n }, br.jws.IntDate = {}, br.jws.IntDate.get = function (t) {\n var e = br.jws.IntDate,\n r = e.getNow,\n n = e.getZulu;\n if (\"now\" == t) return r();\n if (\"now + 1hour\" == t) return r() + 3600;\n if (\"now + 1day\" == t) return r() + 86400;\n if (\"now + 1month\" == t) return r() + 2592e3;\n if (\"now + 1year\" == t) return r() + 31536e3;\n if (t.match(/Z$/)) return n(t);\n if (t.match(/^[0-9]+$/)) return parseInt(t);\n throw \"unsupported format: \" + t;\n }, br.jws.IntDate.getZulu = function (t) {\n return Kr(t);\n }, br.jws.IntDate.getNow = function () {\n return ~~(new Date() / 1e3);\n }, br.jws.IntDate.intDate2UTCString = function (t) {\n return new Date(1e3 * t).toUTCString();\n }, br.jws.IntDate.intDate2Zulu = function (t) {\n var e = new Date(1e3 * t);\n 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\";\n }, e.SecureRandom = Oe, e.rng_seed_time = Ie, e.BigInteger = F, e.RSAKey = He;\n var sn = br.crypto.EDSA;\n e.EDSA = sn;\n var an = br.crypto.DSA;\n e.DSA = an;\n var un = br.crypto.Signature;\n e.Signature = un;\n var cn = br.crypto.MessageDigest;\n e.MessageDigest = cn;\n var hn = br.crypto.Mac;\n e.Mac = hn;\n var ln = br.crypto.Cipher;\n e.Cipher = ln, e.KEYUTIL = Zr, e.ASN1HEX = Er, e.X509 = on, e.CryptoJS = y, e.b64tohex = b, e.b64toBA = w, e.stoBA = xr, e.BAtos = Ar, e.BAtohex = kr, e.stohex = Pr, e.stob64 = function fn(t) {\n return S(Pr(t));\n }, e.stob64u = function gn(t) {\n return Cr(S(Pr(t)));\n }, e.b64utos = function dn(t) {\n return Ar(w(Tr(t)));\n }, e.b64tob64u = Cr, e.b64utob64 = Tr, e.hex2b64 = S, e.hextob64u = Rr, e.b64utohex = Ir, e.utf8tob64u = wr, e.b64utoutf8 = Fr, e.utf8tob64 = function pn(t) {\n return S(qr(Gr(t)));\n }, e.b64toutf8 = function vn(t) {\n return decodeURIComponent(Jr(b(t)));\n }, e.utf8tohex = Dr, e.hextoutf8 = Lr, e.hextorstr = Nr, e.rstrtohex = Ur, e.hextob64 = Br, e.hextob64nl = Or, e.b64nltohex = jr, e.hextopem = Mr, e.pemtohex = Hr, e.hextoArrayBuffer = function yn(t) {\n if (t.length % 2 != 0) throw \"input is not even length\";\n if (null == t.match(/^[0-9A-Fa-f]+$/)) throw \"input is not hexadecimal\";\n\n 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));\n\n return e;\n }, e.ArrayBuffertohex = function mn(t) {\n for (var e = \"\", r = new DataView(t), n = 0; n < t.byteLength; n++) e += (\"00\" + r.getUint8(n).toString(16)).slice(-2);\n\n return e;\n }, e.zulutomsec = Vr, e.zulutosec = Kr, e.zulutodate = function _n(t) {\n return new Date(Vr(t));\n }, e.datetozulu = function Sn(t, e, r) {\n var n,\n i = t.getUTCFullYear();\n\n if (e) {\n if (i < 1950 || 2049 < i) throw \"not proper year for UTCTime: \" + i;\n n = (\"\" + i).slice(-2);\n } else n = (\"000\" + i).slice(-4);\n\n 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) {\n var o = t.getUTCMilliseconds();\n 0 !== o && (n += \".\" + (o = (o = (\"00\" + o).slice(-3)).replace(/0+$/g, \"\")));\n }\n\n return n += \"Z\";\n }, e.uricmptohex = qr, e.hextouricmp = Jr, e.ipv6tohex = Wr, e.hextoipv6 = zr, e.hextoip = Yr, e.iptohex = function bn(t) {\n var e = \"malformed IP address\";\n\n if (!(t = t.toLowerCase(t)).match(/^[0-9.]+$/)) {\n if (t.match(/^[0-9a-f:]+$/) && -1 !== t.indexOf(\":\")) return Wr(t);\n throw e;\n }\n\n var r = t.split(\".\");\n if (4 !== r.length) throw e;\n var n = \"\";\n\n try {\n for (var i = 0; i < 4; i++) {\n n += (\"0\" + parseInt(r[i]).toString(16)).slice(-2);\n }\n\n return n;\n } catch (t) {\n throw e;\n }\n }, e.encodeURIComponentAll = Gr, e.newline_toUnix = function wn(t) {\n return t = t.replace(/\\r\\n/gm, \"\\n\");\n }, e.newline_toDos = function Fn(t) {\n return t = (t = t.replace(/\\r\\n/gm, \"\\n\")).replace(/\\n/gm, \"\\r\\n\");\n }, e.hextoposhex = $r, e.intarystrtohex = function En(t) {\n t = (t = (t = t.replace(/^\\s*\\[\\s*/, \"\")).replace(/\\s*\\]\\s*$/, \"\")).replace(/\\s*/g, \"\");\n\n try {\n return t.split(/,/).map(function (t, e, r) {\n var n = parseInt(t);\n if (n < 0 || 255 < n) throw \"integer not in range 0-255\";\n return (\"00\" + n.toString(16)).slice(-2);\n }).join(\"\");\n } catch (t) {\n throw \"malformed integer array string: \" + t;\n }\n }, e.strdiffidx = function t(e, r) {\n var n = e.length;\n e.length > r.length && (n = r.length);\n\n for (var i = 0; i < n; i++) if (e.charCodeAt(i) != r.charCodeAt(i)) return i;\n\n return e.length != r.length ? n : -1;\n }, e.KJUR = br;\n var xn = br.crypto;\n e.crypto = xn;\n var An = br.asn1;\n e.asn1 = An;\n var kn = br.jws;\n e.jws = kn;\n var Pn = br.lang;\n e.lang = Pn;\n }).call(this, r(28).Buffer);\n }, function (t, e, r) {\n \"use strict\";\n\n (function (t) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n var n = r(30),\n i = r(31),\n o = r(32);\n\n function s() {\n return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;\n }\n\n function a(t, e) {\n if (s() < e) throw new RangeError(\"Invalid typed array length\");\n return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t;\n }\n\n function u(t, e, r) {\n if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);\n\n if (\"number\" == typeof t) {\n if (\"string\" == typeof e) throw new Error(\"If encoding is specified then the first argument must be a string\");\n return l(this, t);\n }\n\n return c(this, t, e, r);\n }\n\n function c(t, e, r, n) {\n if (\"number\" == typeof e) throw new TypeError('\"value\" argument must not be a number');\n return \"undefined\" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function i(t, e, r, n) {\n if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError(\"'offset' is out of bounds\");\n if (e.byteLength < r + (n || 0)) throw new RangeError(\"'length' is out of bounds\");\n e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n);\n u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = f(t, e);\n return t;\n }(t, e, r, n) : \"string\" == typeof e ? function s(t, e, r) {\n \"string\" == typeof r && \"\" !== r || (r = \"utf8\");\n if (!u.isEncoding(r)) throw new TypeError('\"encoding\" must be a valid string encoding');\n var n = 0 | d(e, r),\n i = (t = a(t, n)).write(e, r);\n i !== n && (t = t.slice(0, i));\n return t;\n }(t, e, r) : function c(t, e) {\n if (u.isBuffer(e)) {\n var r = 0 | g(e.length);\n return 0 === (t = a(t, r)).length || e.copy(t, 0, 0, r), t;\n }\n\n if (e) {\n if (\"undefined\" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || \"length\" in e) return \"number\" != typeof e.length || function n(t) {\n return t != t;\n }(e.length) ? a(t, 0) : f(t, e);\n if (\"Buffer\" === e.type && o(e.data)) return f(t, e.data);\n }\n\n throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\");\n }(t, e);\n }\n\n function h(t) {\n if (\"number\" != typeof t) throw new TypeError('\"size\" argument must be a number');\n if (t < 0) throw new RangeError('\"size\" argument must not be negative');\n }\n\n function l(t, e) {\n 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;\n return t;\n }\n\n function f(t, e) {\n var r = e.length < 0 ? 0 : 0 | g(e.length);\n t = a(t, r);\n\n for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];\n\n return t;\n }\n\n function g(t) {\n if (t >= s()) throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + s().toString(16) + \" bytes\");\n return 0 | t;\n }\n\n function d(t, e) {\n if (u.isBuffer(t)) return t.length;\n if (\"undefined\" != typeof ArrayBuffer && \"function\" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;\n \"string\" != typeof t && (t = \"\" + t);\n var r = t.length;\n if (0 === r) return 0;\n\n for (var n = !1;;) switch (e) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return r;\n\n case \"utf8\":\n case \"utf-8\":\n case void 0:\n return K(t).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return 2 * r;\n\n case \"hex\":\n return r >>> 1;\n\n case \"base64\":\n return q(t).length;\n\n default:\n if (n) return K(t).length;\n e = (\"\" + e).toLowerCase(), n = !0;\n }\n }\n\n function p(t, e, r) {\n var n = !1;\n if ((void 0 === e || e < 0) && (e = 0), e > this.length) return \"\";\n if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return \"\";\n if ((r >>>= 0) <= (e >>>= 0)) return \"\";\n\n for (t || (t = \"utf8\");;) switch (t) {\n case \"hex\":\n return I(this, e, r);\n\n case \"utf8\":\n case \"utf-8\":\n return A(this, e, r);\n\n case \"ascii\":\n return T(this, e, r);\n\n case \"latin1\":\n case \"binary\":\n return R(this, e, r);\n\n case \"base64\":\n return x(this, e, r);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return D(this, e, r);\n\n default:\n if (n) throw new TypeError(\"Unknown encoding: \" + t);\n t = (t + \"\").toLowerCase(), n = !0;\n }\n }\n\n function v(t, e, r) {\n var n = t[e];\n t[e] = t[r], t[r] = n;\n }\n\n function y(t, e, r, n, i) {\n if (0 === t.length) return -1;\n\n 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) {\n if (i) return -1;\n r = t.length - 1;\n } else if (r < 0) {\n if (!i) return -1;\n r = 0;\n }\n\n if (\"string\" == typeof e && (e = u.from(e, n)), u.isBuffer(e)) return 0 === e.length ? -1 : m(t, e, r, n, i);\n 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);\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function m(t, e, r, n, i) {\n var o,\n s = 1,\n a = t.length,\n u = e.length;\n\n if (void 0 !== n && (\"ucs2\" === (n = String(n).toLowerCase()) || \"ucs-2\" === n || \"utf16le\" === n || \"utf-16le\" === n)) {\n if (t.length < 2 || e.length < 2) return -1;\n s = 2, a /= 2, u /= 2, r /= 2;\n }\n\n function c(t, e) {\n return 1 === s ? t[e] : t.readUInt16BE(e * s);\n }\n\n if (i) {\n var h = -1;\n\n for (o = r; o < a; o++) if (c(t, o) === c(e, -1 === h ? 0 : o - h)) {\n if (-1 === h && (h = o), o - h + 1 === u) return h * s;\n } else -1 !== h && (o -= o - h), h = -1;\n } else for (r + u > a && (r = a - u), o = r; o >= 0; o--) {\n for (var l = !0, f = 0; f < u; f++) if (c(t, o + f) !== c(e, f)) {\n l = !1;\n break;\n }\n\n if (l) return o;\n }\n\n return -1;\n }\n\n function _(t, e, r, n) {\n r = Number(r) || 0;\n var i = t.length - r;\n n ? (n = Number(n)) > i && (n = i) : n = i;\n var o = e.length;\n if (o % 2 != 0) throw new TypeError(\"Invalid hex string\");\n n > o / 2 && (n = o / 2);\n\n for (var s = 0; s < n; ++s) {\n var a = parseInt(e.substr(2 * s, 2), 16);\n if (isNaN(a)) return s;\n t[r + s] = a;\n }\n\n return s;\n }\n\n function S(t, e, r, n) {\n return J(K(e, t.length - r), t, r, n);\n }\n\n function b(t, e, r, n) {\n return J(function i(t) {\n for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t.charCodeAt(r));\n\n return e;\n }(e), t, r, n);\n }\n\n function w(t, e, r, n) {\n return b(t, e, r, n);\n }\n\n function F(t, e, r, n) {\n return J(q(e), t, r, n);\n }\n\n function E(t, e, r, n) {\n return J(function i(t, e) {\n 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);\n\n return o;\n }(e, t.length - r), t, r, n);\n }\n\n function x(t, e, r) {\n return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));\n }\n\n function A(t, e, r) {\n r = Math.min(t.length, r);\n\n for (var n = [], i = e; i < r;) {\n var o,\n s,\n a,\n u,\n c = t[i],\n h = null,\n l = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;\n if (i + l <= r) switch (l) {\n case 1:\n c < 128 && (h = c);\n break;\n\n case 2:\n 128 == (192 & (o = t[i + 1])) && (u = (31 & c) << 6 | 63 & o) > 127 && (h = u);\n break;\n\n case 3:\n 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);\n break;\n\n case 4:\n 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);\n }\n 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;\n }\n\n return function f(t) {\n var e = t.length;\n if (e <= C) return String.fromCharCode.apply(String, t);\n var r = \"\",\n n = 0;\n\n for (; n < e;) r += String.fromCharCode.apply(String, t.slice(n, n += C));\n\n return r;\n }(n);\n }\n\n e.Buffer = u, e.SlowBuffer = function k(t) {\n +t != t && (t = 0);\n return u.alloc(+t);\n }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function P() {\n try {\n var t = new Uint8Array(1);\n return t.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function () {\n return 42;\n }\n }, 42 === t.foo() && \"function\" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;\n } catch (t) {\n return !1;\n }\n }(), e.kMaxLength = s(), u.poolSize = 8192, u._augment = function (t) {\n return t.__proto__ = u.prototype, t;\n }, u.from = function (t, e, r) {\n return c(null, t, e, r);\n }, 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, {\n value: null,\n configurable: !0\n })), u.alloc = function (t, e, r) {\n return function n(t, e, r, i) {\n 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);\n }(null, t, e, r);\n }, u.allocUnsafe = function (t) {\n return l(null, t);\n }, u.allocUnsafeSlow = function (t) {\n return l(null, t);\n }, u.isBuffer = function t(e) {\n return !(null == e || !e._isBuffer);\n }, u.compare = function t(e, r) {\n if (!u.isBuffer(e) || !u.isBuffer(r)) throw new TypeError(\"Arguments must be Buffers\");\n if (e === r) return 0;\n\n for (var n = e.length, i = r.length, o = 0, s = Math.min(n, i); o < s; ++o) if (e[o] !== r[o]) {\n n = e[o], i = r[o];\n break;\n }\n\n return n < i ? -1 : i < n ? 1 : 0;\n }, u.isEncoding = function t(e) {\n switch (String(e).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return !0;\n\n default:\n return !1;\n }\n }, u.concat = function t(e, r) {\n if (!o(e)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n if (0 === e.length) return u.alloc(0);\n var n;\n if (void 0 === r) for (r = 0, n = 0; n < e.length; ++n) r += e[n].length;\n var i = u.allocUnsafe(r),\n s = 0;\n\n for (n = 0; n < e.length; ++n) {\n var a = e[n];\n if (!u.isBuffer(a)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n a.copy(i, s), s += a.length;\n }\n\n return i;\n }, u.byteLength = d, u.prototype._isBuffer = !0, u.prototype.swap16 = function t() {\n var e = this.length;\n if (e % 2 != 0) throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n\n for (var r = 0; r < e; r += 2) v(this, r, r + 1);\n\n return this;\n }, u.prototype.swap32 = function t() {\n var e = this.length;\n if (e % 4 != 0) throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n\n for (var r = 0; r < e; r += 4) v(this, r, r + 3), v(this, r + 1, r + 2);\n\n return this;\n }, u.prototype.swap64 = function t() {\n var e = this.length;\n if (e % 8 != 0) throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n\n 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);\n\n return this;\n }, u.prototype.toString = function t() {\n var e = 0 | this.length;\n return 0 === e ? \"\" : 0 === arguments.length ? A(this, 0, e) : p.apply(this, arguments);\n }, u.prototype.equals = function t(e) {\n if (!u.isBuffer(e)) throw new TypeError(\"Argument must be a Buffer\");\n return this === e || 0 === u.compare(this, e);\n }, u.prototype.inspect = function t() {\n var r = \"\",\n n = e.INSPECT_MAX_BYTES;\n return this.length > 0 && (r = this.toString(\"hex\", 0, n).match(/.{2}/g).join(\" \"), this.length > n && (r += \" ... \")), \"\";\n }, u.prototype.compare = function t(e, r, n, i, o) {\n if (!u.isBuffer(e)) throw new TypeError(\"Argument must be a Buffer\");\n 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\");\n if (i >= o && r >= n) return 0;\n if (i >= o) return -1;\n if (r >= n) return 1;\n if (this === e) return 0;\n\n 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]) {\n s = h[f], a = l[f];\n break;\n }\n\n return s < a ? -1 : a < s ? 1 : 0;\n }, u.prototype.includes = function t(e, r, n) {\n return -1 !== this.indexOf(e, r, n);\n }, u.prototype.indexOf = function t(e, r, n) {\n return y(this, e, r, n, !0);\n }, u.prototype.lastIndexOf = function t(e, r, n) {\n return y(this, e, r, n, !1);\n }, u.prototype.write = function t(e, r, n, i) {\n 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 {\n if (!isFinite(r)) throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n r |= 0, isFinite(n) ? (n |= 0, void 0 === i && (i = \"utf8\")) : (i = n, n = void 0);\n }\n var o = this.length - r;\n 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\");\n i || (i = \"utf8\");\n\n for (var s = !1;;) switch (i) {\n case \"hex\":\n return _(this, e, r, n);\n\n case \"utf8\":\n case \"utf-8\":\n return S(this, e, r, n);\n\n case \"ascii\":\n return b(this, e, r, n);\n\n case \"latin1\":\n case \"binary\":\n return w(this, e, r, n);\n\n case \"base64\":\n return F(this, e, r, n);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return E(this, e, r, n);\n\n default:\n if (s) throw new TypeError(\"Unknown encoding: \" + i);\n i = (\"\" + i).toLowerCase(), s = !0;\n }\n }, u.prototype.toJSON = function t() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n var C = 4096;\n\n function T(t, e, r) {\n var n = \"\";\n r = Math.min(t.length, r);\n\n for (var i = e; i < r; ++i) n += String.fromCharCode(127 & t[i]);\n\n return n;\n }\n\n function R(t, e, r) {\n var n = \"\";\n r = Math.min(t.length, r);\n\n for (var i = e; i < r; ++i) n += String.fromCharCode(t[i]);\n\n return n;\n }\n\n function I(t, e, r) {\n var n = t.length;\n (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);\n\n for (var i = \"\", o = e; o < r; ++o) i += V(t[o]);\n\n return i;\n }\n\n function D(t, e, r) {\n for (var n = t.slice(e, r), i = \"\", o = 0; o < n.length; o += 2) i += String.fromCharCode(n[o] + 256 * n[o + 1]);\n\n return i;\n }\n\n function L(t, e, r) {\n if (t % 1 != 0 || t < 0) throw new RangeError(\"offset is not uint\");\n if (t + e > r) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n function N(t, e, r, n, i, o) {\n if (!u.isBuffer(t)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (e > i || e < o) throw new RangeError('\"value\" argument is out of bounds');\n if (r + n > t.length) throw new RangeError(\"Index out of range\");\n }\n\n function U(t, e, r, n) {\n e < 0 && (e = 65535 + e + 1);\n\n 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);\n }\n\n function B(t, e, r, n) {\n e < 0 && (e = 4294967295 + e + 1);\n\n for (var i = 0, o = Math.min(t.length - r, 4); i < o; ++i) t[r + i] = e >>> 8 * (n ? i : 3 - i) & 255;\n }\n\n function O(t, e, r, n, i, o) {\n if (r + n > t.length) throw new RangeError(\"Index out of range\");\n if (r < 0) throw new RangeError(\"Index out of range\");\n }\n\n function j(t, e, r, n, o) {\n return o || O(t, 0, r, 4), i.write(t, e, r, n, 23, 4), r + 4;\n }\n\n function M(t, e, r, n, o) {\n return o || O(t, 0, r, 8), i.write(t, e, r, n, 52, 8), r + 8;\n }\n\n u.prototype.slice = function t(e, r) {\n var n,\n i = this.length;\n 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 {\n var o = r - e;\n n = new u(o, void 0);\n\n for (var s = 0; s < o; ++s) n[s] = this[s + e];\n }\n return n;\n }, u.prototype.readUIntLE = function t(e, r, n) {\n e |= 0, r |= 0, n || L(e, r, this.length);\n\n for (var i = this[e], o = 1, s = 0; ++s < r && (o *= 256);) i += this[e + s] * o;\n\n return i;\n }, u.prototype.readUIntBE = function t(e, r, n) {\n e |= 0, r |= 0, n || L(e, r, this.length);\n\n for (var i = this[e + --r], o = 1; r > 0 && (o *= 256);) i += this[e + --r] * o;\n\n return i;\n }, u.prototype.readUInt8 = function t(e, r) {\n return r || L(e, 1, this.length), this[e];\n }, u.prototype.readUInt16LE = function t(e, r) {\n return r || L(e, 2, this.length), this[e] | this[e + 1] << 8;\n }, u.prototype.readUInt16BE = function t(e, r) {\n return r || L(e, 2, this.length), this[e] << 8 | this[e + 1];\n }, u.prototype.readUInt32LE = function t(e, r) {\n return r || L(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3];\n }, u.prototype.readUInt32BE = function t(e, r) {\n return r || L(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]);\n }, u.prototype.readIntLE = function t(e, r, n) {\n e |= 0, r |= 0, n || L(e, r, this.length);\n\n for (var i = this[e], o = 1, s = 0; ++s < r && (o *= 256);) i += this[e + s] * o;\n\n return i >= (o *= 128) && (i -= Math.pow(2, 8 * r)), i;\n }, u.prototype.readIntBE = function t(e, r, n) {\n e |= 0, r |= 0, n || L(e, r, this.length);\n\n for (var i = r, o = 1, s = this[e + --i]; i > 0 && (o *= 256);) s += this[e + --i] * o;\n\n return s >= (o *= 128) && (s -= Math.pow(2, 8 * r)), s;\n }, u.prototype.readInt8 = function t(e, r) {\n return r || L(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e];\n }, u.prototype.readInt16LE = function t(e, r) {\n r || L(e, 2, this.length);\n var n = this[e] | this[e + 1] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt16BE = function t(e, r) {\n r || L(e, 2, this.length);\n var n = this[e + 1] | this[e] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt32LE = function t(e, r) {\n return r || L(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24;\n }, u.prototype.readInt32BE = function t(e, r) {\n return r || L(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3];\n }, u.prototype.readFloatLE = function t(e, r) {\n return r || L(e, 4, this.length), i.read(this, e, !0, 23, 4);\n }, u.prototype.readFloatBE = function t(e, r) {\n return r || L(e, 4, this.length), i.read(this, e, !1, 23, 4);\n }, u.prototype.readDoubleLE = function t(e, r) {\n return r || L(e, 8, this.length), i.read(this, e, !0, 52, 8);\n }, u.prototype.readDoubleBE = function t(e, r) {\n return r || L(e, 8, this.length), i.read(this, e, !1, 52, 8);\n }, u.prototype.writeUIntLE = function t(e, r, n, i) {\n (e = +e, r |= 0, n |= 0, i) || N(this, e, r, n, Math.pow(2, 8 * n) - 1, 0);\n var o = 1,\n s = 0;\n\n for (this[r] = 255 & e; ++s < n && (o *= 256);) this[r + s] = e / o & 255;\n\n return r + n;\n }, u.prototype.writeUIntBE = function t(e, r, n, i) {\n (e = +e, r |= 0, n |= 0, i) || N(this, e, r, n, Math.pow(2, 8 * n) - 1, 0);\n var o = n - 1,\n s = 1;\n\n for (this[r + o] = 255 & e; --o >= 0 && (s *= 256);) this[r + o] = e / s & 255;\n\n return r + n;\n }, u.prototype.writeUInt8 = function t(e, r, n) {\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;\n }, u.prototype.writeUInt16LE = function t(e, r, n) {\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;\n }, u.prototype.writeUInt16BE = function t(e, r, n) {\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;\n }, u.prototype.writeUInt32LE = function t(e, r, n) {\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;\n }, u.prototype.writeUInt32BE = function t(e, r, n) {\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;\n }, u.prototype.writeIntLE = function t(e, r, n, i) {\n if (e = +e, r |= 0, !i) {\n var o = Math.pow(2, 8 * n - 1);\n N(this, e, r, n, o - 1, -o);\n }\n\n var s = 0,\n a = 1,\n u = 0;\n\n 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;\n\n return r + n;\n }, u.prototype.writeIntBE = function t(e, r, n, i) {\n if (e = +e, r |= 0, !i) {\n var o = Math.pow(2, 8 * n - 1);\n N(this, e, r, n, o - 1, -o);\n }\n\n var s = n - 1,\n a = 1,\n u = 0;\n\n 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;\n\n return r + n;\n }, u.prototype.writeInt8 = function t(e, r, n) {\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;\n }, u.prototype.writeInt16LE = function t(e, r, n) {\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;\n }, u.prototype.writeInt16BE = function t(e, r, n) {\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;\n }, u.prototype.writeInt32LE = function t(e, r, n) {\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;\n }, u.prototype.writeInt32BE = function t(e, r, n) {\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;\n }, u.prototype.writeFloatLE = function t(e, r, n) {\n return j(this, e, r, !0, n);\n }, u.prototype.writeFloatBE = function t(e, r, n) {\n return j(this, e, r, !1, n);\n }, u.prototype.writeDoubleLE = function t(e, r, n) {\n return M(this, e, r, !0, n);\n }, u.prototype.writeDoubleBE = function t(e, r, n) {\n return M(this, e, r, !1, n);\n }, u.prototype.copy = function t(e, r, n, i) {\n 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;\n if (0 === e.length || 0 === this.length) return 0;\n if (r < 0) throw new RangeError(\"targetStart out of bounds\");\n if (n < 0 || n >= this.length) throw new RangeError(\"sourceStart out of bounds\");\n if (i < 0) throw new RangeError(\"sourceEnd out of bounds\");\n i > this.length && (i = this.length), e.length - r < i - n && (i = e.length - r + n);\n var o,\n s = i - n;\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);\n return s;\n }, u.prototype.fill = function t(e, r, n, i) {\n if (\"string\" == typeof e) {\n if (\"string\" == typeof r ? (i = r, r = 0, n = this.length) : \"string\" == typeof n && (i = n, n = this.length), 1 === e.length) {\n var o = e.charCodeAt(0);\n o < 256 && (e = o);\n }\n\n if (void 0 !== i && \"string\" != typeof i) throw new TypeError(\"encoding must be a string\");\n if (\"string\" == typeof i && !u.isEncoding(i)) throw new TypeError(\"Unknown encoding: \" + i);\n } else \"number\" == typeof e && (e &= 255);\n\n if (r < 0 || this.length < r || this.length < n) throw new RangeError(\"Out of range index\");\n if (n <= r) return this;\n var s;\n 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 {\n var a = u.isBuffer(e) ? e : K(new u(e, i).toString()),\n c = a.length;\n\n for (s = 0; s < n - r; ++s) this[s + r] = a[s % c];\n }\n return this;\n };\n var H = /[^+\\/0-9A-Za-z-_]/g;\n\n function V(t) {\n return t < 16 ? \"0\" + t.toString(16) : t.toString(16);\n }\n\n function K(t, e) {\n var r;\n e = e || 1 / 0;\n\n for (var n = t.length, i = null, o = [], s = 0; s < n; ++s) {\n if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {\n if (!i) {\n if (r > 56319) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n if (s + 1 === n) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n i = r;\n continue;\n }\n\n if (r < 56320) {\n (e -= 3) > -1 && o.push(239, 191, 189), i = r;\n continue;\n }\n\n r = 65536 + (i - 55296 << 10 | r - 56320);\n } else i && (e -= 3) > -1 && o.push(239, 191, 189);\n\n if (i = null, r < 128) {\n if ((e -= 1) < 0) break;\n o.push(r);\n } else if (r < 2048) {\n if ((e -= 2) < 0) break;\n o.push(r >> 6 | 192, 63 & r | 128);\n } else if (r < 65536) {\n if ((e -= 3) < 0) break;\n o.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128);\n } else {\n if (!(r < 1114112)) throw new Error(\"Invalid code point\");\n if ((e -= 4) < 0) break;\n o.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128);\n }\n }\n\n return o;\n }\n\n function q(t) {\n return n.toByteArray(function e(t) {\n if ((t = function e(t) {\n return t.trim ? t.trim() : t.replace(/^\\s+|\\s+$/g, \"\");\n }(t).replace(H, \"\")).length < 2) return \"\";\n\n for (; t.length % 4 != 0;) t += \"=\";\n\n return t;\n }(t));\n }\n\n function J(t, e, r, n) {\n for (var i = 0; i < n && !(i + r >= e.length || i >= t.length); ++i) e[i + r] = t[i];\n\n return i;\n }\n }).call(this, r(29));\n }, function (t, e) {\n var r;\n\n r = function () {\n return this;\n }();\n\n try {\n r = r || new Function(\"return this\")();\n } catch (t) {\n \"object\" == typeof window && (r = window);\n }\n\n t.exports = r;\n }, function (t, e, r) {\n \"use strict\";\n\n e.byteLength = function n(t) {\n var e = f(t),\n r = e[0],\n n = e[1];\n return 3 * (r + n) / 4 - n;\n }, e.toByteArray = function i(t) {\n var e,\n r,\n n = f(t),\n i = n[0],\n o = n[1],\n s = new u(function c(t, e, r) {\n return 3 * (e + r) / 4 - r;\n }(0, i, o)),\n h = 0,\n l = o > 0 ? i - 4 : i;\n\n 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;\n\n 2 === o && (e = a[t.charCodeAt(r)] << 2 | a[t.charCodeAt(r + 1)] >> 4, s[h++] = 255 & e);\n 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);\n return s;\n }, e.fromByteArray = function o(t) {\n 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));\n\n 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] + \"=\"));\n return i.join(\"\");\n };\n\n 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;\n\n function f(t) {\n var e = t.length;\n if (e % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var r = t.indexOf(\"=\");\n return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4];\n }\n\n function g(t, e, r) {\n 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]);\n\n return o.join(\"\");\n }\n\n a[\"-\".charCodeAt(0)] = 62, a[\"_\".charCodeAt(0)] = 63;\n }, function (t, e) {\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n e.read = function (t, e, r, n, i) {\n var o,\n s,\n a = 8 * i - n - 1,\n u = (1 << a) - 1,\n c = u >> 1,\n h = -7,\n l = r ? i - 1 : 0,\n f = r ? -1 : 1,\n g = t[e + l];\n\n for (l += f, o = g & (1 << -h) - 1, g >>= -h, h += a; h > 0; o = 256 * o + t[e + l], l += f, h -= 8);\n\n for (s = o & (1 << -h) - 1, o >>= -h, h += n; h > 0; s = 256 * s + t[e + l], l += f, h -= 8);\n\n if (0 === o) o = 1 - c;else {\n if (o === u) return s ? NaN : 1 / 0 * (g ? -1 : 1);\n s += Math.pow(2, n), o -= c;\n }\n return (g ? -1 : 1) * s * Math.pow(2, o - n);\n }, e.write = function (t, e, r, n, i, o) {\n var s,\n a,\n u,\n c = 8 * o - i - 1,\n h = (1 << c) - 1,\n l = h >> 1,\n f = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0,\n g = n ? 0 : o - 1,\n d = n ? 1 : -1,\n p = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;\n\n 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);\n\n for (s = s << i | a, c += i; c > 0; t[r + g] = 255 & s, g += d, s /= 256, c -= 8);\n\n t[r + g - d] |= 128 * p;\n };\n }, function (t, e) {\n var r = {}.toString;\n\n t.exports = Array.isArray || function (t) {\n return \"[object Array]\" == r.call(t);\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = function n(t) {\n var e = t.jws,\n r = t.KeyUtil,\n n = t.X509,\n o = t.crypto,\n s = t.hextob64u,\n a = t.b64tohex,\n u = t.AllowedSigningAlgs;\n return function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.parseJwt = function t(r) {\n i.Log.debug(\"JoseUtil.parseJwt\");\n\n try {\n var n = e.JWS.parse(r);\n return {\n header: n.headerObj,\n payload: n.payloadObj\n };\n } catch (t) {\n i.Log.error(t);\n }\n }, t.validateJwt = function e(o, s, u, c, h, l, f) {\n i.Log.debug(\"JoseUtil.validateJwt\");\n\n try {\n if (\"RSA\" === s.kty) {\n if (s.e && s.n) s = r.getKey(s);else {\n 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\"));\n var g = a(s.x5c[0]);\n s = n.getPublicKeyFromCertHex(g);\n }\n } else {\n if (\"EC\" !== s.kty) return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\", s && s.kty), Promise.reject(new Error(s.kty));\n 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\"));\n s = r.getKey(s);\n }\n return t._validateJwt(o, s, u, c, h, l, f);\n } catch (t) {\n return i.Log.error(t && t.message || t), Promise.reject(\"JWT validation failed\");\n }\n }, t.validateJwtAttributes = function e(r, n, o, s, a, u) {\n s || (s = 0), a || (a = parseInt(Date.now() / 1e3));\n var c = t.parseJwt(r).payload;\n if (!c.iss) return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"), Promise.reject(new Error(\"issuer was not provided\"));\n 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));\n if (!c.aud) return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"), Promise.reject(new Error(\"aud was not provided\"));\n 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));\n 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));\n\n if (!u) {\n var h = a + s,\n l = a - s;\n if (!c.iat) return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"), Promise.reject(new Error(\"iat was not provided\"));\n 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));\n 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));\n if (!c.exp) return i.Log.error(\"JoseUtil._validateJwt: exp was not provided\"), Promise.reject(new Error(\"exp was not provided\"));\n 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));\n }\n\n return Promise.resolve(c);\n }, t._validateJwt = function r(n, o, s, a, c, h, l) {\n return t.validateJwtAttributes(n, s, a, c, h, l).then(function (t) {\n try {\n return e.JWS.verify(n, o, u) ? t : (i.Log.error(\"JoseUtil._validateJwt: signature validation failed\"), Promise.reject(new Error(\"signature validation failed\")));\n } catch (t) {\n return i.Log.error(t && t.message || t), Promise.reject(new Error(\"signature validation failed\"));\n }\n });\n }, t.hashString = function t(e, r) {\n try {\n return o.Util.hashString(e, r);\n } catch (t) {\n i.Log.error(t);\n }\n }, t.hexToBase64Url = function t(e) {\n try {\n return s(e);\n } catch (t) {\n i.Log.error(t);\n }\n }, t;\n }();\n };\n var i = r(0);\n t.exports = e.default;\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninResponse = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(3);\n\n function o(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n e.SigninResponse = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"#\";\n o(this, t);\n var n = i.UrlUtility.parseUrlFragment(e, r);\n 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;\n }\n\n return n(t, [{\n key: \"expires_in\",\n get: function t() {\n if (this.expires_at) {\n var e = parseInt(Date.now() / 1e3);\n return this.expires_at - e;\n }\n },\n set: function t(e) {\n var r = parseInt(e);\n\n if (\"number\" == typeof r && r > 0) {\n var n = parseInt(Date.now() / 1e3);\n this.expires_at = n + r;\n }\n }\n }, {\n key: \"expired\",\n get: function t() {\n var e = this.expires_in;\n if (void 0 !== e) return e <= 0;\n }\n }, {\n key: \"scopes\",\n get: function t() {\n return (this.scope || \"\").split(\" \");\n }\n }, {\n key: \"isOpenIdConnect\",\n get: function t() {\n return this.scopes.indexOf(\"openid\") >= 0 || !!this.id_token;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SignoutRequest = void 0;\n var n = r(0),\n i = r(3),\n o = r(9);\n\n e.SignoutRequest = function t(e) {\n var r = e.url,\n s = e.id_token_hint,\n a = e.post_logout_redirect_uri,\n u = e.data,\n c = e.extraQueryParams,\n h = e.request_type;\n if (function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !r) throw n.Log.error(\"SignoutRequest.ctor: No url passed\"), new Error(\"url\");\n\n 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({\n data: u,\n request_type: h\n }), r = i.UrlUtility.addQueryParam(r, \"state\", this.state.id))), c) r = i.UrlUtility.addQueryParam(r, f, c[f]);\n\n this.url = r;\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SignoutResponse = void 0;\n var n = r(3);\n\n e.SignoutResponse = function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n var i = n.UrlUtility.parseUrlFragment(e, \"?\");\n this.error = i.error, this.error_description = i.error_description, this.error_uri = i.error_uri, this.state = i.state;\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.InMemoryWebStorage = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.InMemoryWebStorage = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._data = {};\n }\n\n return t.prototype.getItem = function t(e) {\n return i.Log.debug(\"InMemoryWebStorage.getItem\", e), this._data[e];\n }, t.prototype.setItem = function t(e, r) {\n i.Log.debug(\"InMemoryWebStorage.setItem\", e), this._data[e] = r;\n }, t.prototype.removeItem = function t(e) {\n i.Log.debug(\"InMemoryWebStorage.removeItem\", e), delete this._data[e];\n }, t.prototype.key = function t(e) {\n return Object.getOwnPropertyNames(this._data)[e];\n }, n(t, [{\n key: \"length\",\n get: function t() {\n return Object.getOwnPropertyNames(this._data).length;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManager = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(10),\n s = r(39),\n a = r(15),\n u = r(45),\n c = r(47),\n h = r(18),\n l = r(8),\n f = r(20),\n g = r(11),\n d = r(4);\n\n function p(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function v(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }\n\n e.UserManager = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c.SilentRenewService,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : h.SessionMonitor,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : f.TokenRevocationClient,\n l = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : g.TokenClient,\n y = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : d.JoseUtil;\n p(this, e), r instanceof s.UserManagerSettings || (r = new s.UserManagerSettings(r));\n var m = v(this, t.call(this, r));\n 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;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.getUser = function t() {\n var e = this;\n return this._loadUser().then(function (t) {\n 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);\n });\n }, e.prototype.removeUser = function t() {\n var e = this;\n return this.storeUser(null).then(function () {\n i.Log.info(\"UserManager.removeUser: user removed from storage\"), e._events.unload();\n });\n }, e.prototype.signinRedirect = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"si:r\";\n var r = {\n useReplaceToNavigate: e.useReplaceToNavigate\n };\n return this._signinStart(e, this._redirectNavigator, r).then(function () {\n i.Log.info(\"UserManager.signinRedirect: successful\");\n });\n }, e.prototype.signinRedirectCallback = function t(e) {\n return this._signinEnd(e || this._redirectNavigator.url).then(function (t) {\n 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;\n });\n }, e.prototype.signinPopup = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"si:p\";\n var r = e.redirect_uri || this.settings.popup_redirect_uri || this.settings.redirect_uri;\n return r ? (e.redirect_uri = r, e.display = \"popup\", this._signin(e, this._popupNavigator, {\n startUrl: r,\n popupWindowFeatures: e.popupWindowFeatures || this.settings.popupWindowFeatures,\n popupWindowTarget: e.popupWindowTarget || this.settings.popupWindowTarget\n }).then(function (t) {\n 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;\n })) : (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\")));\n }, e.prototype.signinPopupCallback = function t(e) {\n return this._signinCallback(e, this._popupNavigator).then(function (t) {\n 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;\n }).catch(function (t) {\n i.Log.error(t.message);\n });\n }, e.prototype.signinSilent = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return r = Object.assign({}, r), this._loadUser().then(function (t) {\n 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));\n });\n }, e.prototype._useRefreshToken = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return this._tokenClient.exchangeRefreshToken(r).then(function (t) {\n return t ? t.access_token ? e._loadUser().then(function (r) {\n if (r) {\n var n = Promise.resolve();\n return t.id_token && (n = e._validateIdTokenFromTokenRefreshToken(r.profile, t.id_token)), n.then(function () {\n 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 () {\n return e._events.load(r), r;\n });\n });\n }\n\n return null;\n }) : (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\"));\n });\n }, e.prototype._validateIdTokenFromTokenRefreshToken = function t(e, r) {\n var n = this;\n return this._metadataService.getIssuer().then(function (t) {\n return n.settings.getEpochTime().then(function (o) {\n return n._joseUtil.validateJwtAttributes(r, t, n._settings.client_id, n._settings.clockSkew, o).then(function (t) {\n 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\")));\n });\n });\n });\n }, e.prototype._signinSilentIframe = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.redirect_uri || this.settings.silent_redirect_uri || this.settings.redirect_uri;\n return r ? (e.redirect_uri = r, e.prompt = e.prompt || \"none\", this._signin(e, this._iframeNavigator, {\n startUrl: r,\n silentRequestTimeout: e.silentRequestTimeout || this.settings.silentRequestTimeout\n }).then(function (t) {\n 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;\n })) : (i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"), Promise.reject(new Error(\"No silent_redirect_uri configured\")));\n }, e.prototype.signinSilentCallback = function t(e) {\n return this._signinCallback(e, this._iframeNavigator).then(function (t) {\n 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;\n });\n }, e.prototype.signinCallback = function t(e) {\n var r = this;\n return this.readSigninResponseState(e).then(function (t) {\n var n = t.state;\n t.response;\n 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\"));\n });\n }, e.prototype.signoutCallback = function t(e, r) {\n var n = this;\n return this.readSignoutResponseState(e).then(function (t) {\n var i = t.state,\n o = t.response;\n 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;\n });\n }, e.prototype.querySessionStatus = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (r = Object.assign({}, r)).request_type = \"si:s\";\n var n = r.redirect_uri || this.settings.silent_redirect_uri || this.settings.redirect_uri;\n 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, {\n startUrl: n,\n silentRequestTimeout: r.silentRequestTimeout || this.settings.silentRequestTimeout\n }).then(function (t) {\n return e.processSigninResponse(t.url).then(function (t) {\n 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), {\n session_state: t.session_state,\n sub: t.profile.sub,\n sid: t.profile.sid\n };\n i.Log.info(\"querySessionStatus successful, user not authenticated\");\n }).catch(function (t) {\n 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\"), {\n session_state: t.session_state\n };\n throw t;\n });\n })) : (i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"), Promise.reject(new Error(\"No silent_redirect_uri configured\")));\n }, e.prototype._signin = function t(e, r) {\n var n = this,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return this._signinStart(e, r, i).then(function (t) {\n return n._signinEnd(t.url, e);\n });\n }, e.prototype._signinStart = function t(e, r) {\n var n = this,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return r.prepare(o).then(function (t) {\n return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"), n.createSigninRequest(e).then(function (e) {\n return i.Log.debug(\"UserManager._signinStart: got signin request\"), o.url = e.url, o.id = e.state.id, t.navigate(o);\n }).catch(function (e) {\n throw t.close && (i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"), t.close()), e;\n });\n });\n }, e.prototype._signinEnd = function t(e) {\n var r = this,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return this.processSigninResponse(e).then(function (t) {\n i.Log.debug(\"UserManager._signinEnd: got signin response\");\n var e = new a.User(t);\n\n if (n.current_sub) {\n 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\"));\n i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\");\n }\n\n return r.storeUser(e).then(function () {\n return i.Log.debug(\"UserManager._signinEnd: user stored\"), r._events.load(e), e;\n });\n });\n }, e.prototype._signinCallback = function t(e, r) {\n i.Log.debug(\"UserManager._signinCallback\");\n var n = \"query\" === this._settings.response_mode || !this._settings.response_mode && l.SigninRequest.isCode(this._settings.response_type) ? \"?\" : \"#\";\n return r.callback(e, void 0, n);\n }, e.prototype.signoutRedirect = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"so:r\";\n var r = e.post_logout_redirect_uri || this.settings.post_logout_redirect_uri;\n r && (e.post_logout_redirect_uri = r);\n var n = {\n useReplaceToNavigate: e.useReplaceToNavigate\n };\n return this._signoutStart(e, this._redirectNavigator, n).then(function () {\n i.Log.info(\"UserManager.signoutRedirect: successful\");\n });\n }, e.prototype.signoutRedirectCallback = function t(e) {\n return this._signoutEnd(e || this._redirectNavigator.url).then(function (t) {\n return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"), t;\n });\n }, e.prototype.signoutPopup = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"so:p\";\n var r = e.post_logout_redirect_uri || this.settings.popup_post_logout_redirect_uri || this.settings.post_logout_redirect_uri;\n return e.post_logout_redirect_uri = r, e.display = \"popup\", e.post_logout_redirect_uri && (e.state = e.state || {}), this._signout(e, this._popupNavigator, {\n startUrl: r,\n popupWindowFeatures: e.popupWindowFeatures || this.settings.popupWindowFeatures,\n popupWindowTarget: e.popupWindowTarget || this.settings.popupWindowTarget\n }).then(function () {\n i.Log.info(\"UserManager.signoutPopup: successful\");\n });\n }, e.prototype.signoutPopupCallback = function t(e, r) {\n void 0 === r && \"boolean\" == typeof e && (r = e, e = null);\n return this._popupNavigator.callback(e, r, \"?\").then(function () {\n i.Log.info(\"UserManager.signoutPopupCallback: successful\");\n });\n }, e.prototype._signout = function t(e, r) {\n var n = this,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return this._signoutStart(e, r, i).then(function (t) {\n return n._signoutEnd(t.url);\n });\n }, e.prototype._signoutStart = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = this,\n n = arguments[1],\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return n.prepare(o).then(function (t) {\n return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"), r._loadUser().then(function (n) {\n return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"), (r._settings.revokeAccessTokenOnSignout ? r._revokeInternal(n) : Promise.resolve()).then(function () {\n var s = e.id_token_hint || n && n.id_token;\n return s && (i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"), e.id_token_hint = s), r.removeUser().then(function () {\n return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"), r.createSignoutRequest(e).then(function (e) {\n return i.Log.debug(\"UserManager._signoutStart: got signout request\"), o.url = e.url, e.state && (o.id = e.state.id), t.navigate(o);\n });\n });\n });\n }).catch(function (e) {\n throw t.close && (i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"), t.close()), e;\n });\n });\n }, e.prototype._signoutEnd = function t(e) {\n return this.processSignoutResponse(e).then(function (t) {\n return i.Log.debug(\"UserManager._signoutEnd: got signout response\"), t;\n });\n }, e.prototype.revokeAccessToken = function t() {\n var e = this;\n return this._loadUser().then(function (t) {\n return e._revokeInternal(t, !0).then(function (r) {\n 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 () {\n i.Log.debug(\"UserManager.revokeAccessToken: user stored\"), e._events.load(t);\n });\n });\n }).then(function () {\n i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\");\n });\n }, e.prototype._revokeInternal = function t(e, r) {\n var n = this;\n\n if (e) {\n var o = e.access_token,\n s = e.refresh_token;\n return this._revokeAccessTokenInternal(o, r).then(function (t) {\n return n._revokeRefreshTokenInternal(s, r).then(function (e) {\n return t || e || i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"), t || e;\n });\n });\n }\n\n return Promise.resolve(!1);\n }, e.prototype._revokeAccessTokenInternal = function t(e, r) {\n return !e || e.indexOf(\".\") >= 0 ? Promise.resolve(!1) : this._tokenRevocationClient.revoke(e, r).then(function () {\n return !0;\n });\n }, e.prototype._revokeRefreshTokenInternal = function t(e, r) {\n return e ? this._tokenRevocationClient.revoke(e, r, \"refresh_token\").then(function () {\n return !0;\n }) : Promise.resolve(!1);\n }, e.prototype.startSilentRenew = function t() {\n this._silentRenewService.start();\n }, e.prototype.stopSilentRenew = function t() {\n this._silentRenewService.stop();\n }, e.prototype._loadUser = function t() {\n return this._userStore.get(this._userStoreKey).then(function (t) {\n return t ? (i.Log.debug(\"UserManager._loadUser: user storageString loaded\"), a.User.fromStorageString(t)) : (i.Log.debug(\"UserManager._loadUser: no user storageString\"), null);\n });\n }, e.prototype.storeUser = function t(e) {\n if (e) {\n i.Log.debug(\"UserManager.storeUser: storing user\");\n var r = e.toStorageString();\n return this._userStore.set(this._userStoreKey, r);\n }\n\n return i.Log.debug(\"storeUser.storeUser: removing user\"), this._userStore.remove(this._userStoreKey);\n }, n(e, [{\n key: \"_redirectNavigator\",\n get: function t() {\n return this.settings.redirectNavigator;\n }\n }, {\n key: \"_popupNavigator\",\n get: function t() {\n return this.settings.popupNavigator;\n }\n }, {\n key: \"_iframeNavigator\",\n get: function t() {\n return this.settings.iframeNavigator;\n }\n }, {\n key: \"_userStore\",\n get: function t() {\n return this.settings.userStore;\n }\n }, {\n key: \"events\",\n get: function t() {\n return this._events;\n }\n }, {\n key: \"_userStoreKey\",\n get: function t() {\n return \"user:\" + this.settings.authority + \":\" + this.settings.client_id;\n }\n }]), e;\n }(o.OidcClient);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManagerSettings = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = (r(0), r(5)),\n o = r(40),\n s = r(41),\n a = r(43),\n u = r(6),\n c = r(1),\n h = r(8);\n\n function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function f(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }\n\n e.UserManagerSettings = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.popup_redirect_uri,\n i = r.popup_post_logout_redirect_uri,\n g = r.popupWindowFeatures,\n d = r.popupWindowTarget,\n p = r.silent_redirect_uri,\n v = r.silentRequestTimeout,\n y = r.automaticSilentRenew,\n m = void 0 !== y && y,\n _ = r.validateSubOnSilentRenew,\n S = void 0 !== _ && _,\n b = r.includeIdTokenInSilentRenew,\n w = void 0 === b || b,\n F = r.monitorSession,\n E = void 0 === F || F,\n x = r.monitorAnonymousSession,\n A = void 0 !== x && x,\n k = r.checkSessionInterval,\n P = void 0 === k ? 2e3 : k,\n C = r.stopCheckSessionOnError,\n T = void 0 === C || C,\n R = r.query_status_response_type,\n I = r.revokeAccessTokenOnSignout,\n D = void 0 !== I && I,\n L = r.accessTokenExpiringNotificationTime,\n N = void 0 === L ? 60 : L,\n U = r.redirectNavigator,\n B = void 0 === U ? new o.RedirectNavigator() : U,\n O = r.popupNavigator,\n j = void 0 === O ? new s.PopupNavigator() : O,\n M = r.iframeNavigator,\n H = void 0 === M ? new a.IFrameNavigator() : M,\n V = r.userStore,\n K = void 0 === V ? new u.WebStorageStateStore({\n store: c.Global.sessionStorage\n }) : V;\n l(this, e);\n var q = f(this, t.call(this, arguments[0]));\n 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;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), n(e, [{\n key: \"popup_redirect_uri\",\n get: function t() {\n return this._popup_redirect_uri;\n }\n }, {\n key: \"popup_post_logout_redirect_uri\",\n get: function t() {\n return this._popup_post_logout_redirect_uri;\n }\n }, {\n key: \"popupWindowFeatures\",\n get: function t() {\n return this._popupWindowFeatures;\n }\n }, {\n key: \"popupWindowTarget\",\n get: function t() {\n return this._popupWindowTarget;\n }\n }, {\n key: \"silent_redirect_uri\",\n get: function t() {\n return this._silent_redirect_uri;\n }\n }, {\n key: \"silentRequestTimeout\",\n get: function t() {\n return this._silentRequestTimeout;\n }\n }, {\n key: \"automaticSilentRenew\",\n get: function t() {\n return this._automaticSilentRenew;\n }\n }, {\n key: \"validateSubOnSilentRenew\",\n get: function t() {\n return this._validateSubOnSilentRenew;\n }\n }, {\n key: \"includeIdTokenInSilentRenew\",\n get: function t() {\n return this._includeIdTokenInSilentRenew;\n }\n }, {\n key: \"accessTokenExpiringNotificationTime\",\n get: function t() {\n return this._accessTokenExpiringNotificationTime;\n }\n }, {\n key: \"monitorSession\",\n get: function t() {\n return this._monitorSession;\n }\n }, {\n key: \"monitorAnonymousSession\",\n get: function t() {\n return this._monitorAnonymousSession;\n }\n }, {\n key: \"checkSessionInterval\",\n get: function t() {\n return this._checkSessionInterval;\n }\n }, {\n key: \"stopCheckSessionOnError\",\n get: function t() {\n return this._stopCheckSessionOnError;\n }\n }, {\n key: \"query_status_response_type\",\n get: function t() {\n return this._query_status_response_type;\n }\n }, {\n key: \"revokeAccessTokenOnSignout\",\n get: function t() {\n return this._revokeAccessTokenOnSignout;\n }\n }, {\n key: \"redirectNavigator\",\n get: function t() {\n return this._redirectNavigator;\n }\n }, {\n key: \"popupNavigator\",\n get: function t() {\n return this._popupNavigator;\n }\n }, {\n key: \"iframeNavigator\",\n get: function t() {\n return this._iframeNavigator;\n }\n }, {\n key: \"userStore\",\n get: function t() {\n return this._userStore;\n }\n }]), e;\n }(i.OidcClientSettings);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.RedirectNavigator = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.RedirectNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t() {\n return Promise.resolve(this);\n }, t.prototype.navigate = function t(e) {\n 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 }, n(t, [{\n key: \"url\",\n get: function t() {\n return window.location.href;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.PopupNavigator = void 0;\n var n = r(0),\n i = r(42);\n\n e.PopupNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new i.PopupWindow(e);\n return Promise.resolve(r);\n }, t.prototype.callback = function t(e, r, o) {\n n.Log.debug(\"PopupNavigator.callback\");\n\n try {\n return i.PopupWindow.notifyOpener(e, r, o), Promise.resolve();\n } catch (t) {\n return Promise.reject(t);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.PopupWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(3);\n\n e.PopupWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n });\n var o = e.popupWindowTarget || \"_blank\",\n s = e.popupWindowFeatures || \"location=no,toolbar=no,width=500,height=500,left=100,top=100;\";\n 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));\n }\n\n return t.prototype.navigate = function t(e) {\n 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;\n }, t.prototype._success = function t(e) {\n i.Log.debug(\"PopupWindow.callback: Successful response from popup window\"), this._cleanup(), this._resolve(e);\n }, t.prototype._error = function t(e) {\n i.Log.error(\"PopupWindow.error: \", e), this._cleanup(), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup(!1);\n }, t.prototype._cleanup = function t(e) {\n 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;\n }, t.prototype._checkForPopupClosed = function t() {\n this._popup && !this._popup.closed || this._error(\"Popup window closed\");\n }, t.prototype._callback = function t(e, r) {\n this._cleanup(r), e ? (i.Log.debug(\"PopupWindow.callback success\"), this._success({\n url: e\n })) : (i.Log.debug(\"PopupWindow.callback: Invalid response from popup\"), this._error(\"Invalid response from popup\"));\n }, t.notifyOpener = function t(e, r, n) {\n if (window.opener) {\n if (e = e || window.location.href) {\n var s = o.UrlUtility.parseUrlFragment(e, n);\n\n if (s.state) {\n var a = \"popupCallback_\" + s.state,\n u = window.opener[a];\n 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\");\n } else i.Log.warn(\"PopupWindow.notifyOpener: no state found in response url\");\n }\n } else i.Log.warn(\"PopupWindow.notifyOpener: no window.opener. Can't complete notification.\");\n }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.IFrameNavigator = void 0;\n var n = r(0),\n i = r(44);\n\n e.IFrameNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new i.IFrameWindow(e);\n return Promise.resolve(r);\n }, t.prototype.callback = function t(e) {\n n.Log.debug(\"IFrameNavigator.callback\");\n\n try {\n return i.IFrameWindow.notifyParent(e), Promise.resolve();\n } catch (t) {\n return Promise.reject(t);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.IFrameWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.IFrameWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n }), 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);\n }\n\n return t.prototype.navigate = function t(e) {\n if (e && e.url) {\n var r = e.silentRequestTimeout || 1e4;\n i.Log.debug(\"IFrameWindow.navigate: Using timeout of:\", r), this._timer = window.setTimeout(this._timeout.bind(this), r), this._frame.src = e.url;\n } else this._error(\"No url provided\");\n\n return this.promise;\n }, t.prototype._success = function t(e) {\n this._cleanup(), i.Log.debug(\"IFrameWindow: Successful response from frame window\"), this._resolve(e);\n }, t.prototype._error = function t(e) {\n this._cleanup(), i.Log.error(e), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup();\n }, t.prototype._cleanup = function t() {\n 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);\n }, t.prototype._timeout = function t() {\n i.Log.debug(\"IFrameWindow.timeout\"), this._error(\"Frame window timed out\");\n }, t.prototype._message = function t(e) {\n 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://\"))) {\n var r = e.data;\n r ? this._success({\n url: r\n }) : this._error(\"Invalid response from frame\");\n }\n }, t.notifyParent = function t(e) {\n 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 }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }, {\n key: \"_origin\",\n get: function t() {\n return location.protocol + \"//\" + location.host;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManagerEvents = void 0;\n var n = r(0),\n i = r(16),\n o = r(17);\n\n e.UserManagerEvents = function (t) {\n function e(r) {\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n\n var i = function s(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, r));\n\n 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;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.load = function e(r) {\n var i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n n.Log.debug(\"UserManagerEvents.load\"), t.prototype.load.call(this, r), i && this._userLoaded.raise(r);\n }, e.prototype.unload = function e() {\n n.Log.debug(\"UserManagerEvents.unload\"), t.prototype.unload.call(this), this._userUnloaded.raise();\n }, e.prototype.addUserLoaded = function t(e) {\n this._userLoaded.addHandler(e);\n }, e.prototype.removeUserLoaded = function t(e) {\n this._userLoaded.removeHandler(e);\n }, e.prototype.addUserUnloaded = function t(e) {\n this._userUnloaded.addHandler(e);\n }, e.prototype.removeUserUnloaded = function t(e) {\n this._userUnloaded.removeHandler(e);\n }, e.prototype.addSilentRenewError = function t(e) {\n this._silentRenewError.addHandler(e);\n }, e.prototype.removeSilentRenewError = function t(e) {\n this._silentRenewError.removeHandler(e);\n }, e.prototype._raiseSilentRenewError = function t(e) {\n n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\", e.message), this._silentRenewError.raise(e);\n }, e.prototype.addUserSignedIn = function t(e) {\n this._userSignedIn.addHandler(e);\n }, e.prototype.removeUserSignedIn = function t(e) {\n this._userSignedIn.removeHandler(e);\n }, e.prototype._raiseUserSignedIn = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"), this._userSignedIn.raise();\n }, e.prototype.addUserSignedOut = function t(e) {\n this._userSignedOut.addHandler(e);\n }, e.prototype.removeUserSignedOut = function t(e) {\n this._userSignedOut.removeHandler(e);\n }, e.prototype._raiseUserSignedOut = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"), this._userSignedOut.raise();\n }, e.prototype.addUserSessionChanged = function t(e) {\n this._userSessionChanged.addHandler(e);\n }, e.prototype.removeUserSessionChanged = function t(e) {\n this._userSessionChanged.removeHandler(e);\n }, e.prototype._raiseUserSessionChanged = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"), this._userSessionChanged.raise();\n }, e;\n }(i.AccessTokenEvents);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Timer = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(1),\n s = r(17);\n\n function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function u(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }\n\n e.Timer = function (t) {\n function e(r) {\n var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.Global.timer,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\n a(this, e);\n var s = u(this, t.call(this, r));\n return s._timer = n, s._nowFunc = i || function () {\n return Date.now() / 1e3;\n }, s;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.init = function t(e) {\n e <= 0 && (e = 1), e = parseInt(e);\n var r = this.now + e;\n if (this.expiration === r && this._timerHandle) i.Log.debug(\"Timer.init timer \" + this._name + \" skipping initialization since already initialized for expiration:\", this.expiration);else {\n this.cancel(), i.Log.debug(\"Timer.init timer \" + this._name + \" for duration:\", e), this._expiration = r;\n var n = 5;\n e < n && (n = e), this._timerHandle = this._timer.setInterval(this._callback.bind(this), 1e3 * n);\n }\n }, e.prototype.cancel = function t() {\n this._timerHandle && (i.Log.debug(\"Timer.cancel: \", this._name), this._timer.clearInterval(this._timerHandle), this._timerHandle = null);\n }, e.prototype._callback = function e() {\n var r = this._expiration - this.now;\n i.Log.debug(\"Timer.callback; \" + this._name + \" timer expires in:\", r), this._expiration <= this.now && (this.cancel(), t.prototype.raise.call(this));\n }, n(e, [{\n key: \"now\",\n get: function t() {\n return parseInt(this._nowFunc());\n }\n }, {\n key: \"expiration\",\n get: function t() {\n return this._expiration;\n }\n }]), e;\n }(s.Event);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SilentRenewService = void 0;\n var n = r(0);\n\n e.SilentRenewService = function () {\n function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._userManager = e;\n }\n\n return t.prototype.start = function t() {\n this._callback || (this._callback = this._tokenExpiring.bind(this), this._userManager.events.addAccessTokenExpiring(this._callback), this._userManager.getUser().then(function (t) {}).catch(function (t) {\n n.Log.error(\"SilentRenewService.start: Error from getUser:\", t.message);\n }));\n }, t.prototype.stop = function t() {\n this._callback && (this._userManager.events.removeAccessTokenExpiring(this._callback), delete this._callback);\n }, t.prototype._tokenExpiring = function t() {\n var e = this;\n\n this._userManager.signinSilent().then(function (t) {\n n.Log.debug(\"SilentRenewService._tokenExpiring: Silent token renewal successful\");\n }, function (t) {\n n.Log.error(\"SilentRenewService._tokenExpiring: Error from signinSilent:\", t.message), e._userManager.events._raiseSilentRenewError(t);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaPopupNavigator = void 0;\n var n = r(21);\n\n e.CordovaPopupNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new n.CordovaPopupWindow(e);\n return Promise.resolve(r);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaIFrameNavigator = void 0;\n var n = r(21);\n\n e.CordovaIFrameNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n e.popupWindowFeatures = \"hidden=yes\";\n var r = new n.CordovaPopupWindow(e);\n return Promise.resolve(r);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n e.Version = \"1.11.5\";\n }]);\n});"],"names":["t","e","r","module","exports","this","n","i","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","length","configurable","writable","key","debug","info","warn","error","Log","TypeError","reset","arguments","Array","apply","from","set","Error","setInterval","toString","clearInterval","Global","_testing","setXMLHttpRequest","location","window","localStorage","sessionStorage","XMLHttpRequest","MetadataService","a","JsonService","_settings","_jsonService","resetSigningKeys","signingKeys","getMetadata","metadata","Promise","resolve","metadataUrl","getJson","then","metadataSeed","assign","reject","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","keys","_metadataUrl","authority","indexOf","UrlUtility","addQueryParam","encodeURIComponent","parseUrlFragment","href","lastIndexOf","substr","u","h","exec","decodeURIComponent","replace","JoseUtil","jws","KeyUtil","X509","crypto","hextob64u","b64tohex","AllowedSigningAlgs","OidcClientSettings","iterator","constructor","f","g","v","client_id","y","client_secret","response_type","_","S","scope","b","w","redirect_uri","F","post_logout_redirect_uri","E","client_authentication","x","A","prompt","k","display","P","max_age","C","ui_locales","T","acr_values","R","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","push","isArray","_contentTypes","slice","_XMLHttpRequest","_jwtHandler","open","onload","status","getResponseHeader","find","startsWith","JSON","parse","responseText","message","statusText","onerror","setRequestHeader","send","postForm","btoa","SigninRequest","url","data","id_token_hint","login_hint","request","request_uri","request_type","skipUserInfo","isOidc","isCode","state","SigninState","nonce","code_verifier","id","code_challenge","split","filter","isOAuth","State","created","_id","_data","_created","parseInt","Date","now","_request_type","toStorageString","stringify","fromStorageString","clearStaleState","all","OidcClient","createSigninRequest","readSigninResponseState","SigninResponse","response","processSigninResponse","validateSigninResponse","createSignoutRequest","SignoutRequest","readSignoutResponseState","SignoutResponse","ErrorResponse","processSignoutResponse","validateSignoutResponse","settings","validator","metadataService","TokenClient","exchangeCode","grant_type","code","exchangeRefreshToken","refresh_token","ReferenceError","error_description","error_uri","session_state","name","setPrototypeOf","__proto__","_nonce","_code_verifier","hashString","_code_challenge","hexToBase64Url","_skipUserInfo","getRandomValues","msCrypto","Uint8Array","Math","random","User","id_token","access_token","token_type","profile","expires_at","expires_in","AccessTokenEvents","accessTokenExpiringNotificationTime","accessTokenExpiringTimer","Timer","accessTokenExpiredTimer","_accessTokenExpiringNotificationTime","_accessTokenExpiring","_accessTokenExpired","load","init","cancel","unload","addAccessTokenExpiring","addHandler","removeAccessTokenExpiring","removeHandler","addAccessTokenExpired","removeAccessTokenExpired","Event","_name","_callbacks","findIndex","splice","raise","SessionMonitor","CheckSessionIFrame","timer","_userManager","_CheckSessionIFrameCtor","_timer","events","addUserLoaded","_start","addUserUnloaded","_stop","getUser","monitorAnonymousSession","querySessionStatus","sub","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","position","width","height","src","body","appendChild","_boundMessageEvent","_message","addEventListener","origin","source","contentWindow","_session_state","postMessage","TokenRevocationClient","_XMLHttpRequestCtor","revoke","_revoke","CordovaPopupWindow","_promise","_resolve","_reject","features","popupWindowFeatures","target","popupWindowTarget","startUrl","_isInAppBrowserInstalled","some","navigate","cordova","_error","require","_popup","InAppBrowser","_exitCallbackEvent","_exitCallback","_loadStartCallbackEvent","_loadStartCallback","promise","_success","_cleanup","close","removeEventListener","Version","InMemoryWebStorage","UserManager","CordovaPopupNavigator","CordovaIFrameNavigator","UserInfoService","_userInfoService","_joseUtil","_tokenClient","_processSigninParams","_validateTokens","_processClaims","isOpenIdConnect","getClaims","forEach","_processCode","_validateIdTokenAndAccessToken","_validateIdToken","_validateIdTokenAttributes","validateJwtAttributes","_validateAccessToken","_getSigningKeyForJwt","header","kid","_filterByAlg","alg","_getSigningKeyForJwtWithSingleRetry","parseJwt","payload","validateJwt","kty","at_hash","_getClaimsFromJwt","iss","KEYUTIL","userAgent","lang","extend","superclass","test","lib","Base","mixIn","$super","clone","WordArray","words","sigBytes","concat","clamp","ceil","enc","Hex","join","Latin1","String","fromCharCode","charCodeAt","Utf8","escape","unescape","BufferedBlockAlgorithm","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","high","low","toX32","Base64","_map","charAt","sqrt","pow","SHA256","_hash","floor","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","reduce","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","ZERO","subTo","copyTo","drShiftTo","it","fromRadix","ot","st","at","lShiftTo","ut","rShiftTo","ct","ht","lt","ft","gt","dt","isEven","pt","exp","vt","yt","negate","toRadix","mt","_t","St","bitLength","bt","wt","modPowInt","Ft","Et","xt","At","kt","Pt","multiplyUpperTo","multiplyLowerTo","dAddOffset","Ct","Tt","Ce","Te","Re","Rt","It","Dt","Ie","getTime","chunkSize","Lt","LN2","log","Nt","signum","intValue","Ut","dMultiply","Bt","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","Ot","changeBit","jt","addTo","Mt","Ht","Vt","Kt","qt","modInt","Jt","millerRabin","Wt","subtract","getLowestSetBit","shiftRight","modPow","zt","Yt","byteValue","Gt","shortValue","Xt","$t","toByteArray","Qt","equals","Zt","te","ee","and","re","or","ne","xor","ie","andNot","oe","not","se","ae","ue","ce","bitCount","he","le","setBit","fe","clearBit","ge","flipBit","de","add","pe","ve","multiply","ye","me","remainder","_e","divideAndRemainder","Se","be","modInverse","we","Fe","gcd","Ee","xe","square","Ae","ke","next","Pe","De","Le","Ne","appVersion","Ue","Be","Oe","je","Me","He","dmp1","dmq1","coeff","Ve","Ke","curve","zinv","qe","fromBigInteger","infinity","Je","doPublic","We","setPublic","ze","isPublic","isPrivate","encrypt","Ye","encryptOAEP","Ge","br","MessageDigest","Util","getCanonicalAlgName","getHashLength","Nr","hashHex","Ur","type","Xe","toBigInteger","$e","Qe","Ze","tr","er","rr","nr","getX","ir","getY","sr","isInfinity","ar","ur","cr","twice","getInfinity","hr","lr","multiplyTwo","fr","getQ","gr","getA","dr","getB","pr","vr","yr","mr","decodePointHex","_r","getByteLength","getEncoded","toByteArrayUnsigned","unshift","decodeFrom","decodeFromHex","add2D","twice2D","valueOf","multiply2D","isOnCurve","validate","Sr","RegExp","match","shift","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","getPEMStringFromHex","Mr","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","params","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","setByParam","tlv","DERAbstractString","getString","setString","Dr","toLowerCase","setStringHex","str","hex","DERAbstractTime","localDateToUTC","getTimezoneOffset","formatDate","zeroPadding","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Pr","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","date","withMillis","millis","sortFlag","sort","sortflag","isExplicit","asn1Object","setASN1Object","tage","tagi","wr","Fr","Er","xr","Ar","kr","Cr","Tr","Rr","Ir","qr","Gr","Lr","Jr","Br","Or","jr","Hr","Vr","Kr","Wr","repeat","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","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","hash","codec","toBits","fromBits","algName","provName","HASHLENGTH","Mac","algProv","mac","pass","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64","b64u","Signature","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","Zr","getKey","prvKey","pubKey","sign","sHashHex","ecprvhex","eccurvename","prv","hSign","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","signString","signHex","verify","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","toUpperCase","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","PBKDF2","keySize","iterations","_getPlainPKCS8HexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algparam","algoid","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","xy","dp","dq","co","qi","setPrivateEx","setPrivate","crv","on","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","generate","prvKeyObj","pubKeyObj","getPEM","SubjectPublicKeyInfo","seq","octstr","bitstr","null","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getKeyID","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","readCertHex","getPublicKeyHex","tn","en","rn","nn","AlgorithmIdentifier","PSSNAME2ASN1TLV","HEX2STAG","foffset","aExtInfo","getVersion","getSerialNumberHex","getSignatureAlgorithmField","getAlgorithmIdentifierName","getX500Name","getIssuerHex","getIssuerString","hex2dn","getSubject","getSubjectHex","getSubjectString","getNotBefore","getNotAfter","getPublicKeyIdx","getPublicKeyContentIdx","getPublicKey","getSignatureAlgorithmName","getSignatureValueHex","verifySignature","parseExt","critical","vidx","getExtInfo","getExtBasicConstraints","extname","cA","pathLen","getExtKeyUsage","names","getExtKeyUsageString","getExtKeyUsageBin","KEYUSAGE_NAME","getExtSubjectKeyIdentifier","getExtAuthorityKeyIdentifier","getGeneralNames","issuer","dn","sn","getExtExtKeyUsage","getExtExtKeyUsageName","getExtSubjectAltName","getExtIssuerAltName","getGeneralName","rfc822","dns","uri","ip","getExtSubjectAltName2","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","getParam","serial","sigalg","notbefore","notafter","subject","sbjpubkey","ext","getExtParamArray","sighex","getExtParam","extn","findExt","updateExtCDPFullURI","updateExtAIAOCSP","updateExtAIACAIssuer","map","getInfo","dname","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","aud","IntDate","getNow","verifyAt","gracePeriod","nbf","iat","jti","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","fn","stob64u","gn","b64utos","b64tob64u","b64utob64","hex2b64","b64utohex","utf8tob64","pn","b64toutf8","vn","utf8tohex","hextoutf8","hextorstr","rstrtohex","hextob64","hextob64nl","b64nltohex","hextopem","pemtohex","hextoArrayBuffer","yn","ArrayBuffer","DataView","setUint8","ArrayBuffertohex","mn","byteLength","getUint8","zulutomsec","zulutosec","zulutodate","_n","datetozulu","Sn","getUTCMilliseconds","uricmptohex","hextouricmp","ipv6tohex","hextoipv6","hextoip","iptohex","bn","encodeURIComponentAll","newline_toUnix","wn","newline_toDos","Fn","hextoposhex","intarystrtohex","En","strdiffidx","xn","An","kn","Pn","Buffer","TYPED_ARRAY_SUPPORT","RangeError","isEncoding","write","isBuffer","copy","buffer","isView","isNaN","readUInt16BE","Number","fromByteArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","kMaxLength","poolSize","_augment","species","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","includes","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","Function","NaN","x5c","_validateJwt","azp","scopes","getOwnPropertyNames","SilentRenewService","UserManagerSettings","_events","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","setTimeout","_timeout","clearTimeout","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"],"sourceRoot":""}