{"version":3,"file":"sidekick-redirect.js","sources":["../node_modules/crypto-js/core.js","../src/util/polyfill.js","../src/cmpt/sidekick-session-timeout/session-timeout.js","../src/cmpt/sidekick-nav-item/nav-item.js","../src/util/object-helpers.js","../src/util/asset-loader.js","../src/util/string-helpers.js","../src/util/easy-dom.js","../src/util/deprecated.js","../src/util/type-checkers.js","../src/util/event-bus.js","../src/util/store.js","../src/util/translations.js","../src/util/env.js","../src/util/persistence.js","../src/util/ajax.js","../src/util/idm-helpers.js","../src/cmpt/sidekick-nav/nav-platform.js","../src/util/key-press-helpers.js","../src/util/cmpt-common-features.js","../src/cmpt/sidekick-help/help.js","../src/cmpt/sidekick-search/search.js","../src/cmpt/sidekick-loader/loader.js","../node_modules/debounce/index.js","../src/cmpt/sidekick-app-switcher/app-switcher.js","../src/cmpt/sidekick-tooltip/tooltip.js","../src/cmpt/sidekick-impersonated-user/impersonated-user.js","../node_modules/detect-browser/index.js","../src/util/audioeye-helpers.js","../src/cmpt/index.js","../src/util/dom-scanner.js","../src/util/passport-helpers.js","../src/util/feature-flags-cc.js","../src/util/view-permissions.js","../node_modules/es6-promise/auto.js","../src/ambient/ambient.js","../src/ambient/ambient-height.js","../src/ambient/ambient-width.js","../src/ambient/ambient-config-states.js","../.💩/sidekick-templates.js","../src/util/store-validate.js","../src/util/vendorSSO-helpers.js","../src/cmpt/sidekick-nav/nav.js","../src/util/route-helpers.js","../src/cmpt/sidekick-unsupported-browser-alert/unsupported-browser-alert.js","../src/cmpt/sidekick-header/header.js","../src/cmpt/sidekick-notifications/notifications.js","../src/cmpt/sidekick-nav-item-submenu/nav-item-submenu.js","../src/cmpt/sidekick-user-info/user-info.js","../src/cmpt/sidekick-org-switcher/org-switcher.js","../src/cmpt/sidekick-footer/footer.js","../src/cmpt/sidekick-contact-org/contact-org.js","../src/cmpt/sidekick-pick-org-app/pick-org-app.js","../src/cmpt/sidekick-pick-org/pick-org.js","../src/cmpt/sidekick-pick-app/pick-app.js","../src/cmpt/sidekick-activity-indicator/activity-indicator.js","../src/cmpt/sidekick-nav-item-mega-menu/nav-item-mega-menu.js","../src/cmpt/sidekick-site-errors/site-errors.js","../src/cmpt/sidekick-skip-nav/skip-nav.js","../src/cmpt/sidekick-audioeye/audioeye.js","../src/util/idm.js","../src/util/passport.js","../node_modules/crypto-js/x64-core.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/enc-base64url.js","../node_modules/crypto-js/md5.js","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha512.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/hmac.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/evpkdf.js","../node_modules/crypto-js/cipher-core.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/crypto-js/blowfish.js","../node_modules/crypto-js/index.js","../src/index.js","../src/init.js","../src/audioeye.js","../src/redirect.js"],"sourcesContent":[";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","'use strict';\r\nimport 'es6-promise/auto';\r\n\r\n// Object.assign\r\nfunction objectAssign(target, varArgs) { // .length of function is 2\r\n\t'use strict';\r\n\tif (target == null) { // TypeError if undefined or null\r\n\t\tthrow new TypeError('Cannot convert undefined or null to object');\r\n\t}\r\n\r\n\tvar to = Object(target);\r\n\r\n\tfor (var index = 1; index < arguments.length; index++) {\r\n\t\tvar nextSource = arguments[index];\r\n\r\n\t\tif (nextSource != null) { // Skip over if undefined or null\r\n\t\t\tfor (var nextKey in nextSource) {\r\n\t\t\t\t// Avoid bugs when hasOwnProperty is shadowed\r\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n\t\t\t\t\tto[nextKey] = nextSource[nextKey];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn to;\r\n}\r\n\r\n// Array.includes\r\nfunction arrayIncludes(searchElement /*, fromIndex*/ ) {\r\n\tvar O = Object(this);\r\n\tvar len = parseInt(O.length, 10) || 0;\r\n\tif (len === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tvar n = parseInt(arguments[1], 10) || 0;\r\n\tvar k;\r\n\tif (n >= 0) {\r\n\t\tk = n;\r\n\t} else {\r\n\t\tk = len + n;\r\n\t\tif (k < 0) {k = 0;}\r\n\t}\r\n\tvar currentElement;\r\n\twhile (k < len) {\r\n\t\tcurrentElement = O[k];\r\n\t\tif (searchElement === currentElement ||\r\n\t\t\t(searchElement !== searchElement && currentElement !== currentElement)) { // NaN !== NaN\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\tk++;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n// String.endsWidth\r\nfunction stringEndsWith(searchString, position) {\r\n\tvar subjectString = this.toString();\r\n\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\r\n\t\tposition = subjectString.length;\r\n\t}\r\n\tposition -= searchString.length;\r\n\tvar lastIndex = subjectString.indexOf(searchString, position);\r\n\treturn lastIndex !== -1 && lastIndex === position;\r\n}\r\n\r\n// String.startsWith\r\nfunction stringStartsWith(searchString, position){\r\n\tposition = position || 0;\r\n\treturn this.substr(position, searchString.length) === searchString;\r\n}\r\n\r\n\r\nfunction arrayFind(predicate) {\r\n\tif (this == null) {\r\n\t\tthrow new TypeError('Array.prototype.find called on null or undefined');\r\n\t}\r\n\tif (typeof predicate !== 'function') {\r\n\t\tthrow new TypeError('predicate must be a function');\r\n\t}\r\n\tvar list = Object(this);\r\n\tvar len = list.length >>> 0; // eslint-disable-line no-bitwise\r\n\tvar thisArg = arguments[1];\r\n\tvar value;\r\n\r\n\tfor (var i = 0; i < len; i++) {\r\n\t\tvalue = list[i];\r\n\t\tif (predicate.call(thisArg, value, i, list)) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\t}\r\n\treturn undefined;\r\n}\r\n\r\nfunction arrayFindIndex(predicate) {\r\n\tif (this == null) {\r\n\t\tthrow new TypeError('Array.prototype.findIndex called on null or undefined');\r\n\t}\r\n\tif (typeof predicate !== 'function') {\r\n\t\tthrow new TypeError('predicate must be a function');\r\n\t}\r\n\tvar list = Object(this);\r\n\tvar len = list.length >>> 0; // eslint-disable-line no-bitwise\r\n\tvar thisArg = arguments[1];\r\n\tvar value;\r\n\r\n\tfor (var i = 0; i < len; i++) {\r\n\t\tvalue = list[i];\r\n\t\tif (predicate.call(thisArg, value, i, list)) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n// Production steps of ECMA-262, Edition 6, 22.1.2.1\r\nfunction arrayFrom() {\r\n\tvar toStr = Object.prototype.toString;\r\n\tvar isCallable = function (fn) {\r\n\t\treturn typeof fn === 'function' || toStr.call(fn) === '[object Function]';\r\n\t};\r\n\tvar toInteger = function (value) {\r\n\t\tvar number = Number(value);\r\n\t\tif (isNaN(number)) { return 0; }\r\n\t\tif (number === 0 || !isFinite(number)) { return number; }\r\n\t\treturn (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\r\n\t};\r\n\tvar maxSafeInteger = Math.pow(2, 53) - 1;\r\n\tvar toLength = function (value) {\r\n\t\tvar len = toInteger(value);\r\n\t\treturn Math.min(Math.max(len, 0), maxSafeInteger);\r\n\t};\r\n\r\n\t// The length property of the from method is 1.\r\n\treturn function from(arrayLike/*, mapFn, thisArg */) {\r\n\t\t// 1. Let C be the this value.\r\n\t\tvar C = this;\r\n\r\n\t\t// 2. Let items be ToObject(arrayLike).\r\n\t\tvar items = Object(arrayLike);\r\n\r\n\t\t// 3. ReturnIfAbrupt(items).\r\n\t\tif (arrayLike == null) {\r\n\t\t\tthrow new TypeError('Array.from requires an array-like object - not null or undefined');\r\n\t\t}\r\n\r\n\t\t// 4. If mapfn is undefined, then let mapping be false.\r\n\t\tvar mapFn = arguments.length > 1 ? arguments[1] : void undefined;\r\n\t\tvar T;\r\n\t\tif (typeof mapFn !== 'undefined') {\r\n\t\t\t// 5. else\r\n\t\t\t// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\r\n\t\t\tif (!isCallable(mapFn)) {\r\n\t\t\t\tthrow new TypeError('Array.from: when provided, the second argument must be a function');\r\n\t\t\t}\r\n\r\n\t\t\t// 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n\t\t\tif (arguments.length > 2) {\r\n\t\t\t\tT = arguments[2];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 10. Let lenValue be Get(items, \"length\").\r\n\t\t// 11. Let len be ToLength(lenValue).\r\n\t\tvar len = toLength(items.length);\r\n\r\n\t\t// 13. If IsConstructor(C) is true, then\r\n\t\t// 13. a. Let A be the result of calling the [[Construct]] internal method\r\n\t\t// of C with an argument list containing the single item len.\r\n\t\t// 14. a. Else, Let A be ArrayCreate(len).\r\n\t\tvar A = isCallable(C) ? Object(new C(len)) : new Array(len);\r\n\r\n\t\t// 16. Let k be 0.\r\n\t\tvar k = 0;\r\n\t\t// 17. Repeat, while k < len… (also steps a - h)\r\n\t\tvar kValue;\r\n\t\twhile (k < len) {\r\n\t\t\tkValue = items[k];\r\n\t\t\tif (mapFn) {\r\n\t\t\t\tA[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\r\n\t\t\t} else {\r\n\t\t\t\tA[k] = kValue;\r\n\t\t\t}\r\n\t\t\tk += 1;\r\n\t\t}\r\n\t\t// 18. Let putStatus be Put(A, \"length\", len, true).\r\n\t\tA.length = len;\r\n\t\t// 20. Return A.\r\n\t\treturn A;\r\n\t};\r\n}\r\n\r\n// Number.isInteger polyfill\r\nfunction numberIsInteger(value) {\r\n\treturn typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n}\r\n\r\n/////\r\n// Run the polyfills\r\n//\r\nif (typeof Object.assign !== 'function') {\r\n\tObject.defineProperty(Object, 'assign', {\r\n\t\tconfigurable: true,\r\n\t\twritable: true,\r\n\t\tvalue: objectAssign\r\n\t});\r\n}\r\nif (!Array.prototype.includes) { Array.prototype.includes = arrayIncludes; }\r\nif (!String.prototype.endsWith) { String.prototype.endsWith = stringEndsWith; }\r\nif (!String.prototype.startsWith) { String.prototype.startsWith = stringStartsWith; }\r\nif (!Array.prototype.find) { Array.prototype.find = arrayFind; }\r\nif (!Array.prototype.findIndex) { Array.prototype.findIndex = arrayFindIndex; }\r\nif (!Number.isInteger) { Number.isInteger = numberIsInteger; }\r\nif (!Array.from) { Array.from = arrayFrom(); }\r\n","import * as store from '../../util/store';\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Launches a modal window with a countdown until sessions times out.\r\n * @class Sidekick.SessionTimeout\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n * @emits session.logout - Thrown when the logout button is clicked\r\n * @emits session.extend - Thrown when the stay signed in button is clicked\r\n * @listens session-timeout.clear - Clears the countdown and hides the modal\r\n * @example\r\n * timer: seconds to countdown\r\n * {\r\n\t'timer': 180\r\n}\r\n */\r\n\r\n\r\nclass Countdown {\r\n\tconstructor() {\r\n this.duration = 0;\r\n this.elapsed = 0;\r\n this.isActive = false;\r\n this.lastFrameTime = Date.now();\r\n this.onTick = () => {};\r\n this.onCompleted = () => {};\r\n\r\n this.tick();\r\n }\r\n\r\n getTimeLeft() {\r\n const t = this.duration - this.elapsed;\r\n\r\n return Math.max(0, t);\r\n }\r\n\r\n pause() {\r\n\tthis.isActive = false;\r\n return this;\r\n }\r\n\r\n reset() {\r\n\tthis.isActive = false;\r\n this.elapsed = 0;\r\n }\r\n\r\n setDuration(seconds) {\r\n this.lastFrameTime = Date.now();\r\n this.duration = seconds;\r\n\r\n return this;\r\n }\r\n\r\n start() {\r\n\tthis.isActive = true;\r\n\r\n return this;\r\n }\r\n\r\n tick() {\r\n\tconst currentFrameTime = Date.now();\r\n const deltaTime = currentFrameTime - this.lastFrameTime;\r\n this.lastFrameTime = currentFrameTime;\r\n\r\n if (this.isActive) {\r\n this.elapsed += deltaTime / 1000;\r\n this.onTick(this.getTimeLeft());\r\n\r\n if(this.getTimeLeft() <= 0) {\r\n this.pause();\r\n this.onCompleted();\r\n }\r\n }\r\n\r\n window.requestAnimationFrame(this.tick.bind(this));\r\n }\r\n}\r\n\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\r\n\tlet timerInterval;\r\n\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst domLogout = elem.find('.sk--logout')[0];\r\n\tconst domExtendBtn = elem.find('.sk--extend')[0];\r\n\tconst domTimer = elem.find('.sk--timer')[0];\r\n\tconst domSignedOut = elem.find('.sk--signed-out')[0];\r\n\tconst domSignInLink = elem.find('.sk--sign-in-link')[0];\r\n\r\n\t/////\r\n\t// handle initial state and data changes\r\n\t//\r\n\tstore.onValue('session-timeout', load);\r\n\tevents.on('session-timeout.clear', clear);\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tdomSignInLink.on('click', evt => {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\r\n\t\t// reload the page on the current url so we come back to what we were doing.\r\n\t\twindow.location.reload();\r\n\t});\r\n\r\n\tdomLogout.on('click', evt => {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\r\n\t\tclearInterval(timerInterval);\r\n\r\n\t\tevents.emit('session.logout');\r\n\t\tevents.emit('sk-menu-close', elem);\r\n\t});\r\n\r\n\tdomExtendBtn.on('click', evt => {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\r\n\t\tclear();\r\n\r\n\t\tevents.emit('session.extend');\r\n\t\tevents.emit('sk-menu-close', elem);\r\n\t});\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\r\n\t// timer defaults to 3 minutes\r\n\tlet countdown;\r\n\tfunction load({timer = 180} = {}) {\r\n\t\tcountdown = new Countdown().setDuration(timer);\r\n\r\n\t\t// show the main component (which starts out hidden)\r\n\t\telem.addClass('show');\r\n\r\n\t\tif (timer <= 0) {\r\n\t\t\tevents.emit('session-timeout.timer-end');\r\n\t\t\tshowSignedOutScreen();\r\n\t\t\treturn; // they are already signed out... we be done\r\n\t\t}\r\n\r\n\t\t// fill the countdown timer and show it\r\n\r\n\t\tcountdown.onTick = (time) => {\r\n\t\t\tdomTimer._.innerHTML = format(Math.round(time));\r\n\t\t};\r\n\t\tcountdown.start();\r\n\t}\r\n\r\n\tcountdown.onCompleted = () => {\r\n\t\tevents.emit('session-timeout.timer-end');\r\n\t\tshowSignedOutScreen();\r\n\t};\r\n\r\n\tfunction showSignedOutScreen() {\r\n\t\tdomSignedOut.addClass('show');\r\n\t\tevents.emit('sk-menu-close', elem);\r\n\t}\r\n\r\n\tfunction format(val) {\r\n\t\tvar seconds = val;\r\n\t\tvar minutes = Math.floor(seconds / 60);\r\n\t\tseconds -= minutes * 60;\r\n\r\n\t\tif (seconds < 10) {\r\n\t\t\tseconds = '0' + seconds;\r\n\t\t}\r\n\t\treturn minutes + ':' + seconds;\r\n\t}\r\n\r\n\tfunction clear() {\r\n\t\tcountdown.reset();\r\n\t\tdomTimer._.innerHTML = Math.ceil(countdown.getTimeLeft());\r\n\t\tdomSignedOut.removeClass('show');\r\n\t\telem.removeClass('show');\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport {pathMatchesRoute} from '../../util/route-helpers';\r\nimport {isArray} from '../../util/type-checkers';\r\n\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\r\n\t// backward compatability with item.route value\r\n\tctx.url = ctx.url || ctx.route || null;\r\n\tif (ctx.isPlatformMenu) { elem.addClass('sk--platform-menu'); }\r\n\r\n\tlet subMenu = null;\r\n\tif (ctx.children && ctx.children.length) {\r\n\t\tconst subMenuType = (shouldWeMega(ctx.children) ? 'mega-menu' : 'submenu');\r\n\t\tsubMenu = dom.parse(`
`);\r\n\t\tsubMenu._.context = ctx.children;\r\n\t\telem.append(subMenu);\r\n\t\telem.addClass('sk--has-children');\r\n\t} else {\r\n\t\tvar a = elem.find('.sk--main-menu-item-container')[0];\r\n\t\tif (ctx.target) {\r\n\t\t\ta.attr('target', ctx.target);\r\n\t\t}\r\n\t\telem.addClass('sk--menu-action');\r\n\t\tconst menuType = (ctx.isPlatformMenu ? 'plat-menu-item' : 'menu-item');\r\n\t\telem.on('click', evt => events.emit(`nav.${menuType}-clicked`, ctx, evt));\r\n\t}\r\n\r\n\tif (ctx.badgeEvent != null) {\r\n\t\tconst domBadge = elem.find('.sk--badge')[0];\r\n\r\n\t\tevents.on(ctx.badgeEvent, data => {\r\n\t\t\tdomBadge.css('display', 'none');\r\n\t\t\tdomBadge.removeClass('sk--max');\r\n\r\n\t\t\tif (data === true) {\r\n\t\t\t\tdomBadge.css('display', 'block');\r\n\t\t\t\tdomBadge.addClass('sk--empty');\r\n\t\t\t} else if (Number.isInteger(data)) {\r\n\t\t\t\tif (data < 1) { return; }\r\n\r\n\t\t\t\tdomBadge.css('display', 'block');\r\n\r\n\t\t\t\tdomBadge.css('display', 'block');\r\n\t\t\t\tdomBadge._.innerHTML = Math.min(data, 99);\r\n\r\n\t\t\t\tif (data > 99) {\r\n\t\t\t\t\tdomBadge.addClass('sk--max');\r\n\t\t\t\t\tdomBadge._.innerHTML += '+';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, true);\r\n\t}\r\n\r\n\tevents.on('_location.path-change', highlightRoute);\r\n\r\n\tfunction highlightRoute(path) {\r\n\t\tconst highlighted = pathMatchesRoute(path, ctx.url, ctx.routeMatcher, ctx.baseUrl);\r\n\t\telem.toggleClass('highlight', highlighted);\r\n\t}\r\n\r\n\tfunction shouldWeMega(children) {\r\n\t\tconst noOrphanNodes = children.every(n => isArray(n.children));\r\n\t\tconst totalNodes = countNodes(children);\r\n\t\treturn noOrphanNodes && totalNodes <= 30;\r\n\t}\r\n\r\n\tfunction countNodes(children) {\r\n\t\t// children must be an array\r\n\t\tif (!isArray(children)) { return 0; }\r\n\t\treturn children.reduce(function (total, child) {\r\n\t\t\t++total;\r\n\t\t\tif (isArray(child.children)) { total += child.children.length; }\r\n\t\t\treturn total;\r\n\t\t}, 0);\r\n\t}\r\n};\r\n","export function glean(source, accessor, defaultValue = null) {\r\n try {\r\n const val = accessor(source);\r\n if (typeof val === 'undefined') { return defaultValue; }\r\n return val;\r\n } catch (err) {\r\n return defaultValue;\r\n }\r\n}\r\n","import { glean } from './object-helpers';\r\n\r\n/**\r\n * @module Sidekick.AssetLoader\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Returns the base path, respecting Storm's overridden value if it is set\r\n * @function baseAssetPath\r\n * @instance\r\n */\r\nexport function getBaseAssetPath() {\r\n\tconst currentSidekickSrc = document.currentScript && document.currentScript.src ? document.currentScript.src : 'https://sidekick.uitools.frontlineeducation.com';\r\n\tconst sidekickUrl = new URL(currentSidekickSrc);\r\n\tconst defaultUrl = sidekickUrl.origin;\r\n\treturn glean(window, (w) => w.ss.env.tools.sidekick, defaultUrl);\r\n}\r\n\r\nconst baseAssetPath = getBaseAssetPath();\r\n\r\nexport function isUrlUiModule(url) {\r\n\tconst urlPattern = /^https:\\/\\/(supersuitaws(.*?)\\.flqa\\.net|(app|zeit)\\.frontlineeducation\\.com)\\//;\r\n\treturn urlPattern.test(url);\r\n}\r\n\r\n/**\r\n * Loads a script\r\n * @function script\r\n * @instance\r\n * @param {String} fileName\r\n */\r\nexport const script = loadScript;\r\n\r\n/**\r\n * Loads a style sheet\r\n * @function stylesheet\r\n * @instance\r\n * @param {String} fileName\r\n * @param {Function} success\r\n * @param {Function} failure\r\n */\r\nexport const stylesheet = loadStylesheet;\r\n\r\n/**\r\n * Loads the sidekick print styles (hides sidekick for print)\r\n * @function printStyles\r\n * @instance\r\n */\r\nexport const printStyles = function() {\r\n\tconst el = document.createElement('style');\r\n\tel.setAttribute('type', 'text/css');\r\n\tel.setAttribute('media', 'print');\r\n\tel.innerHTML = '.sidekick { display: none !important; } .sidekick-wrapped-application {\tmargin: 0 !important } ';\r\n\tdocument.head.appendChild(el);\r\n};\r\n\r\n\r\n/**\r\n * Loads a font\r\n * @function fontFace\r\n * @instance\r\n * @param {String} fontName\r\n */\r\nexport const fontFace = loadFont;\r\n\r\n/////\r\n// helper functions\r\n//\r\n\r\nfunction loadStylesheet(fileName, success, basePath = baseAssetPath) {\r\n\tconst fileLoc = `${basePath}/${fileName}`;\r\n\tconst linkAttrs = {\r\n\t\t'rel': 'stylesheet',\r\n\t\t'media': 'screen',\r\n\t\t'charset': 'utf-8',\r\n\t\t'href': fileLoc,\r\n\t};\r\n\tconst styleTestAttrs = {\r\n\t\tstyle: 'display: none;',\r\n\t\t'class': 'sidekick-stylesheet-test',\r\n\t};\r\n\r\n\tconst linkEl = injectTag('link', linkAttrs, document.head);\r\n\t// watch hidden element for style update from sidekick.css\r\n\tconst styleTestEl = injectTag('div', styleTestAttrs, document.body);\r\n\r\n\tconst checkStyles = setInterval( function() {\r\n\t\ttry {\r\n\t\t\tif (window.getComputedStyle(styleTestEl).visibility === 'hidden') {\r\n\t\t\t\tclearInterval(checkStyles);\r\n\t\t\t\tsuccess(linkEl);\r\n\t\t\t\tdocument.body.removeChild(styleTestEl);\r\n\t\t\t}\r\n\t\t} catch(e) {}\r\n\t}, 50);\r\n}\r\n\r\nfunction loadScript(fileName, basePath = baseAssetPath) {\r\n\tconst fileLoc = `${basePath}/${fileName}`;\r\n\tconst attrs = {'type':'text/javascript', 'charset':'utf-8', 'src':fileLoc};\r\n\treturn injectTag('script', attrs, document.body);\r\n}\r\n\r\nfunction injectTag(tagName, attrs, target) {\r\n\tconst el = document.createElement(tagName);\r\n\tObject.keys(attrs).sort().forEach(attr => el.setAttribute(attr, attrs[attr]));\r\n\ttarget.appendChild(el);\r\n\treturn el;\r\n}\r\n\r\nconst fontCode = {\r\n\t'fl-icons': fontFaceCss('FL-Icons', 'FL-Icons', 'FL-Icons', 'normal', 'normal'),\r\n\t'open-sans': (\r\n\t\t// Open Sans: regular\r\n\t\tfontFaceCss('Open Sans', 'opensans-regular-webfont', 'open_sansregular', 400, 'normal') +\r\n\t\t// Open Sans: semi-bold\r\n\t\tfontFaceCss('Open Sans', 'opensans-semibold-webfont', 'open_sanssemibold', 600, 'normal') +\r\n\t\t// Open Sans: bold\r\n\t\tfontFaceCss('Open Sans', 'opensans-bold-webfont', 'open_sansbold', 700, 'normal')\r\n\t)\r\n};\r\nfunction loadFont(fontName) {\r\n\tconst el = document.createElement('style');\r\n\tel.setAttribute('type', 'text/css');\r\n\tel.innerHTML = fontCode[fontName.toLowerCase()];\r\n\tdocument.head.appendChild(el);\r\n}\r\n\r\nfunction fontFaceCss(fontName, fileName, svgType, fontWeight, fontStyle) {\r\n\treturn (`\r\n\t\t@font-face {\r\n\t\t\tfont-family: '${fontName}';\r\n\t\t\tsrc: url('${baseAssetPath}/font/${fileName}.eot?#iefix') format('embedded-opentype'),\r\n\t\t\t\turl('${baseAssetPath}/font/${fileName}.woff') format('woff'),\r\n\t\t\t\turl('${baseAssetPath}/font/${fileName}.ttf') format('truetype'),\r\n\t\t\t\turl('${baseAssetPath}/font/${fileName}.svg#${svgType}') format('svg');\r\n\t\t\tfont-weight: ${fontWeight};\r\n\t\t\tfont-style: ${fontStyle};\r\n\t\t}\r\n\t`).replace(/[\\t\\n]+/g, ' ').replace(/^\\s+|\\s+$/g, '');\r\n}\r\n","\r\n/**\r\n * Common string helper functions\r\n * @module Sidekick.StringHelpers\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Turns a space delimited string to dash delimited.\r\n * @function toDashCase\r\n * @instance\r\n * @param {String} txt - String to transform\r\n */\r\nexport function toDashCase(txt) {\r\n\treturn splitWords(txt).join('-');\r\n}\r\n\r\n/**\r\n * Turns a space delimited string to camel case.\r\n * @function toDashCase\r\n * @instance\r\n * @param {String} txt - String to transform\r\n */\r\nexport function toCamelCase(txt) {\r\n\treturn splitWords(txt)\r\n\t\t.map(function (v,i) {\r\n\t\t\tif (i === 0) { return v; }\r\n\t\t\treturn v.charAt(0).toUpperCase() + v.substr(1);\r\n\t\t})\r\n\t\t.join('');\r\n}\r\n\r\nfunction splitWords(txt) {\r\n\treturn txt.toString()\r\n\t\t.replace(/[\\s_-]/g, '{!}')\r\n\t\t.replace(/([A-Z])/g, '{!}$1')\r\n\t\t.toLowerCase()\r\n\t\t.split('{!}')\r\n\t\t.filter(function (v) { return !!v.length; });\r\n}\r\n","import {toDashCase, toCamelCase} from './string-helpers';\r\n\r\n/**\r\n * @module Sidekick.EasyDom\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Creates a new {@link EasyDom} element from the Element.\r\n * @function element\r\n * @instance\r\n * @param {Element} el - Element from which to wrap in {@link EasyDom}\r\n * @return {EasyDom} the new {@link EasyDom} element\r\n */\r\nexport const element = el => new EasyDom(el);\r\n\r\n/**\r\n * Finds an {@link EasyDom} element based on the selector.\r\n * @function find\r\n * @instance\r\n * @param {String} selector - Selector to look for elements from\r\n * @param {EasyDom} [parent=false] - Parent element to start the search in\r\n * @return {Array}\r\n */\r\nexport const find = elSelector;\r\n\r\n/**\r\n * Parses an HTML string, creates an Element, then returns it as an {@link EasyDom} element.\r\n * @function parse\r\n * @instance\r\n * @param {Element} el - Element from which to wrap in {@link EasyDom}\r\n * @return {EasyDom} the new {@link EasyDom} element\r\n */\r\nexport const parse = function (html) {\r\n\tconst el = document.createElement('span');\r\n\tel.innerHTML = html;\r\n\tif (el.children.length === 1) { return element(el.children[0]); }\r\n\treturn element(el);\r\n};\r\n\r\n/**\r\n * Runs a function on a timer (requestAnimationFrame)\r\n * @function rAF\r\n * @instance\r\n * @param {Function} callback - Callback when the timer runs\r\n */\r\nexport const rAF = (\r\n\t(window.requestAnimationFrame && window.requestAnimationFrame.bind(window)) ||\r\n\t(window.webkitRequestAnimationFrame && window.webkitRequestAnimationFrame.bind(window)) ||\r\n\t(window.mozRequestAnimationFrame && window.mozRequestAnimationFrame.bind(window)) ||\r\n\t(window.oRequestAnimationFrame && window.oRequestAnimationFrame.bind(window)) ||\r\n\t(window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window)) ||\r\n\tfunction (callback) { window.setTimeout( callback, 1000 / 60 ); }\r\n);\r\n\r\nconst domCache = [];\r\n\r\n/**\r\n * EasyDom wrapper around HTML elements.\r\n * @class\r\n */\r\nclass EasyDom {\r\n\t/**\r\n\t * @param {Element} domNode\r\n\t */\r\n\tconstructor(domNode) {\r\n\t\t// if we have already built an EasyDom object for this domNode, pull it from cache\r\n\t\tif (domNode._easyDomID != null) { return domCache[domNode._easyDomID]; }\r\n\t\tthis._ = domNode;\r\n\t\tdomNode._easyDomID = domCache.length;\r\n\t\tdomCache.push(this);\r\n\t}\r\n\r\n\t/**\r\n\t * @inner\r\n\t * @param {String} selector - Selector for finding an element\r\n\t * @return {EasyDom}\r\n\t */\r\n\tfind(selector) { return elSelector(selector, this._); }\r\n\r\n\t/**\r\n\t * @param {String} cls - Classname to add\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\taddClass(cls) {\r\n\t\tconst prefix = (this._.className.length ? ' ' : '');\r\n\t\tif (!this.hasClass(cls)) { this._.className += `${prefix}${cls}`; }\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * @param {String} cls - Classname to remove\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tremoveClass(cls) {\r\n\t\tthis._.className = this._.className\r\n\t\t\t.split(' ')\r\n\t\t\t.filter(c => c !== cls && c.length > 0)\r\n\t\t\t.join(' ');\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * @param {String} cls - Classname to test if this element has.\r\n\t * @return {Boolean} Whether or not this element has the classname specified.\r\n\t */\r\n\thasClass(cls) { return this._.className.split(' ').includes(cls); }\r\n\r\n\t/**\r\n\t * @param {String} cls - Classname to toggle\r\n\t * @param {String} [state] - current state\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\ttoggleClass(cls, state) {\r\n\t\tif (state == null) { state = !this._.className.split(' ').includes(cls); }\r\n\t\treturn this[`${state ? 'add' : 'remove'}Class`](cls);\r\n\t}\r\n\r\n\t/**\r\n\t * @param {EasyDom|EasyDom[]} elem - Element to append to this element's children\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tappend(elem) {\r\n\t\tif (elem == null) { return; }\r\n\t\tconst elCount = elem.length;\r\n\t\tif (elCount == null) {\r\n\t\t\tthis._.appendChild(elem instanceof EasyDom ? elem._ : elem);\r\n\t\t} else {\r\n\t\t\t// we have an array of elements, recurse over the elements\r\n\t\t\tfor (let i = 0; i < elCount; i++) { this.append(elem[i]); }\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * @param {String} name - Attribute name to get/set value for\r\n\t * @param {*} [value] - Value to set the attribute to\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tattr(name, value) {\r\n\t\tif (value === undefined) { return this._.getAttribute(name); }\r\n\t\tif (value === null) { this._.removeAttribute(name); return this; }\r\n\r\n\t\tthis._.setAttribute(toDashCase(name), value);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * @param {String} name - Data attribute name to get/set value for\r\n\t * @param {*} [value] - Value to set the attribute to\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tdata(name, value) {\r\n\t\treturn this.attr(`data-${toDashCase(name)}`, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Empties this element of any children\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tempty() {\r\n\t\twhile (this._.firstChild) {\r\n\t\t\tthis._.removeChild(this._.firstChild);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the children to be the content being passed in.\r\n\t * @param {EasyDom|EasyDom[]} content\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tchildren(content) {\r\n\t\treturn this.empty().append(content);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the {@link EasyDom} parent for this element\r\n\t * @return {EasyDom}\r\n\t */\r\n\tparent() {\r\n\t\treturn new EasyDom(this._.parentNode);\r\n\t}\r\n\r\n\t/**\r\n\t * Registers an event handler to an event.\r\n\t * @param {String} evt - Event to react to\r\n\t * @param {Function} handler - Function to handle the event\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\ton(evt, handler) {\r\n\t\tthis._listeners = this._listeners || [];\r\n\t\tthis._listeners.push({evt, handler});\r\n\t\tthis._.addEventListener(evt, handler);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Deregisters an event handler to an event.\r\n\t * @param {String} evt - Event to react to\r\n\t * @param {Function} handler - Function to handle the event\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\toff(evt, handler) {\r\n\t\tvar toRemove = [];\r\n\t\tif (evt == null && handler == null) {\r\n\t\t\t// remove all listeners\r\n\t\t\ttoRemove = this._listeners || [];\r\n\t\t} else if (handler == null) {\r\n\t\t\t// remove all listeners of this type\r\n\t\t\ttoRemove = this._listeners.filter(h => h.evt === evt);\r\n\t\t} else {\r\n\t\t\t// remove just one specific listener\r\n\t\t\ttoRemove = [this._listeners.find(h => h.evt === evt && h.handler === handler)].filter(Boolean);\r\n\t\t}\r\n\t\t// if we couldn't find the listener, bail out\r\n\t\tif (toRemove.length === 0) { return this; }\r\n\t\t// remove the dom listeners\r\n\t\ttoRemove.forEach(h => this._.removeEventListener(h.evt, h.handler));\r\n\t\t// clean out the listeners log\r\n\t\tthis._listeners = this._listeners.filter(l => !toRemove.includes(l));\r\n\t\treturn this; // for chaining\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the css property(ies) to the values\r\n\t * @param {Object|String} target\r\n\t * @param {String|Number} [value] - Only used if the target is a String\r\n\t * @return {EasyDom} Reference to the current {@link EasyDom} element.\r\n\t */\r\n\tcss(target, value) {\r\n\t\tif (target instanceof Array) { return; }\r\n\t\tif (target instanceof Object) {\r\n\t\t\tconst keys = Object.keys(target);\r\n\t\t\tfor (let i=keys.length; i-- ;) {\r\n\t\t\t\tconst k = keys[i];\r\n\t\t\t\tthis.css(k, target[k]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (typeof target === 'string') {\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\treturn window.getComputedStyle(this._)[target];\r\n\t\t\t}\r\n\t\t\tthis._.style[toCamelCase(target)] = value;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if this element currently has focus\r\n\t * @returns {Boolean}\r\n\t */\r\n\thasFocus() {\r\n\t\treturn window.document.activeElement === this._;\r\n\t}\r\n}\r\n\r\nfunction elSelector(selector, parent = false) {\r\n\tconst context = parent || document;\r\n\tconst isComplex = /^..*[\\.\\# ]+.+$/;\r\n\tconst useQSA = isComplex.test(selector);\r\n\tconst qsa = 'querySelectorAll';\r\n\tvar method = {\r\n\t\t'#': 'ById',\r\n\t\t'.': 'sByClassName',\r\n\t\t'@': 'sByName',\r\n\t\t'=': 'sByTagName'\r\n\t}[selector[0]];\r\n\r\n\tmethod = (method == null || useQSA ? qsa : `getElement${method}`);\r\n\tif (method !== qsa) { selector = selector.slice(1); }\r\n\treturn map(context[method](selector), el => new EasyDom(el));\r\n}\r\n\r\nfunction map(collection, func) {\r\n\treturn Array.prototype.map.call(collection, func);\r\n}\r\n","export function deprecatedMsg(\r\n\toldInterface, newInterface,\r\n\ttmpl = `DEPRECATED => ${oldInterface} is being removed! Use ${newInterface} instead.`\r\n) {\r\n\tconsole && console.error && console.error(tmpl); // eslint-disable-line\r\n};\r\n\r\nexport function removedMsg(\r\n\toldInterface,\r\n\ttmpl = `REMOVED => ${oldInterface} is being removed! Do not use it!`\r\n) {\r\n\tconsole && console.error && console.error(tmpl); // eslint-disable-line\r\n};\r\n\r\nexport function deprecatedAttr({obj, attr, objLoc = '', newLoc = null} = {}, getterOrDefault) {\r\n\tconst getterFunc = (\r\n\t\ttypeof getterOrDefault === 'function'\r\n\t\t\t? getterOrDefault\r\n\t\t\t: () => getterOrDefault\r\n\t);\r\n\r\n\t// clear out the attr if it was previously defined\r\n\tif (obj.hasOwnProperty(attr)) { delete obj[attr]; }\r\n\r\n\t// define the getter function\r\n\tObject.defineProperty(obj, attr, {get() {\r\n\t\tconst dot = (objLoc ? '.' : '');\r\n\t\tconst oldLoc = `${objLoc}${dot}${attr}`;\r\n\r\n\t\tif (newLoc == null) {\r\n\t\t\tremovedMsg(oldLoc);\r\n\t\t} else {\r\n\t\t\tdeprecatedMsg(oldLoc, newLoc);\r\n\t\t}\r\n\t\treturn getterFunc();\r\n\t}});\r\n};\r\n","export const isArray = (input) => isOfType(input, 'array');\r\nexport const isNumber = (input) => isOfType(input, 'number');\r\nexport const isObject = (input) => isOfType(input, 'object');\r\nexport const isString = (input) => isOfType(input, 'string');\r\nexport const isDate = (input) => isOfType(input, 'date');\r\nexport const isNull = (input) => isOfType(input, 'null');\r\nexport const isUndefined = (input) => isOfType(input, 'undefined');\r\nexport const isBoolean = (input) => isOfType(input, 'boolean');\r\n\r\nexport function isOfType(input, type) {\r\n\treturn Object.prototype.toString\r\n\t\t.call(input) // => \"[object Type]\"\r\n\t\t.split(' ')[1] // => \"Type]\"\r\n\t\t.slice(0, -1) // => \"Type\"\r\n\t\t.toLowerCase() === type.toLowerCase(); // => \"type === type\"\r\n}\r\n","import {deprecatedMsg} from './deprecated';\r\nimport {isObject, isBoolean} from './type-checkers';\r\n\r\nconst handlerMap = {}; // map of all handlers for all events\r\nconst terminalEvents = []; // events that are handled by terminal handlers (only 1 allowed)\r\nconst lastEventCache = {}; // map of last data emitted for each event (for greedy event handlers)\r\nconst backwardCompatEvents = {\r\n\t'session.logout': 'header.user-info.logout'\r\n};\r\nconst deprecatedEvents = Object.keys(backwardCompatEvents).reduce(function (acc, key) {\r\n\tacc[backwardCompatEvents[key]] = key;\r\n\treturn acc;\r\n}, {});\r\nexport const logErr = msg => console && console.error && console.error(`SIDEKICK => ${msg}`); // eslint-disable-line\r\n\r\n/**\r\n * Event Bus Module\r\n * @module Sidekick.EventBus\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Registers an event listener.\r\n * @function on\r\n * @instance\r\n * @param {String} evt - Event to respond to\r\n * @param {Function} handler - function to handle the event\r\n * @param {Object} [config] - the event handler config\r\n * @param {Boolean} [config.greedy=false] - execute immediately with last emitted data if possible\r\n * @param {Boolean} [config.once=false] - Run once?\r\n * @param {Boolean} [config.terminal=false] - Do not allow other handlers to listen to this event?\r\n * @return {Function} - Deregister function\r\n */\r\nexport const on = function(evt, handler, configOrGreedy = false, once = false) {\r\n\tlet terminal = false;\r\n\tlet greedy = false;\r\n\tif (isObject(configOrGreedy)) {\r\n\t\tconst cfg = configOrGreedy;\r\n\t\tif (cfg.greedy != null) { greedy = cfg.greedy; }\r\n\t\tif (cfg.once != null) { once = cfg.once; }\r\n\t\tif (cfg.terminal != null) { terminal = cfg.terminal; }\r\n\t} else if (isBoolean(configOrGreedy)) {\r\n\t\tgreedy = configOrGreedy;\r\n\t}\r\n\r\n\tconst handlerList = handlerMap[evt] = (handlerMap[evt] || []);\r\n\tif (terminalEvents.includes(evt)) {\r\n\t\tlogErr(`the event \"${evt}\" is already handled by a terminal event. No additional handlers can be registered.`);\r\n\t\treturn;\r\n\t}\r\n\tif (terminal === true) {\r\n\t\t// clear other handlers if this one is terminal\r\n\t\tconst hCount = handlerList.length;\r\n\t\tif (hCount > 0) {\r\n\t\t\thandlerList.length = 0;\r\n\t\t\tlogErr(`${hCount} \"${evt}\" event handler(s) have been removed due to a terminal handler registration.`);\r\n\t\t}\r\n\t\t// add it to the terminal events listen\r\n\t\tterminalEvents.push(evt);\r\n\t}\r\n\r\n\t// check if this handler is already registered with this event\r\n\tif (handlerList.includes(handler)) {\r\n\t\tlogErr(`the event \"${evt}\" is already handled by ${handler}`);\r\n\t\treturn;\r\n\t}\r\n\r\n\thandler.$once = once;\r\n\thandlerList.push(handler);\r\n\r\n\tif (greedy && lastEventCache[evt]) {\r\n\t\thandler.apply(null, lastEventCache[evt]);\r\n\t}\r\n\r\n\t// return a teardown function\r\n\treturn () => off(evt, handler);\r\n};\r\n\r\n\r\n/**\r\n * Registers an event listener to run once.\r\n * @function once\r\n * @instance\r\n * @param {String} evt - Event to respond to\r\n * @param {Function} handler - function to handle the event\r\n * @param {Boolean} [greedy=false] -\r\n * @return {Function}\r\n */\r\nexport const once = function(evt, handler, greedy = false) {\r\n\treturn on(evt, handler, {greedy, once: true});\r\n};\r\n\r\n\r\n/**\r\n * Deregisters an event listener.\r\n * @function off\r\n * @instance\r\n * @param {String} evt - Event to respond to\r\n * @param {Function} handler - function to handle the event\r\n */\r\nexport const off = function(evt, handler) {\r\n\t// we have no handlers for this event, get out\r\n\tif (handlerMap[evt] == null) { return; }\r\n\t// we are not removing a specific handler, remove all\r\n\tif (handler == null) { handlerMap[evt].length = 0; }\r\n\r\n\t// remove just the one handler\r\n\tconst handlerList = handlerMap[evt];\r\n\tconst idx = handlerList.lastIndexOf(handler);\r\n\tif (idx === -1) { return; }\r\n\thandlerList.splice(idx, 1);\r\n};\r\n\r\n\r\n/**\r\n * Emits an event.\r\n * @function emit\r\n * @instance\r\n * @param {String} evt - Event to respond to\r\n * @param {...*} args - Parameters to pass to the handler function for this event\r\n */\r\nexport const emit = function(evt, ...args) {\r\n\t// fire deprecated events for backward compatibility\r\n\tif (backwardCompatEvents.hasOwnProperty(evt)) {\r\n\t\temit.apply(null, [backwardCompatEvents[evt], ...args]); // re-emit\r\n\t}\r\n\r\n\tlastEventCache[evt] = args;\r\n\tif (!handlerMap[evt]) { return; }\r\n\tconst handlerList = handlerMap[evt];\r\n\tfor (let i = handlerList.length; i-- ;) {\r\n\t\thandlerList[i].apply(null, args);\r\n\t\tif (handlerList[i].$once === true) {\r\n\t\t\toff(evt, handlerList[i]);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/**\r\n * Deregisters all event listeners.\r\n * @function clear\r\n * @instance\r\n */\r\nexport const clear = function() {\r\n\tterminalEvents.length = 0;\r\n\tObject.keys(handlerMap).forEach(k => delete handlerMap[k]);\r\n\tObject.keys(lastEventCache).forEach(k => delete lastEventCache[k]);\r\n};\r\n\r\n/**\r\n * The object that exposes the events public api and logs warnings when internal\r\n * events are emitted or listened to\r\n */\r\nexport const publicApi = {\r\n\ton: warnForInternalEvents(on),\r\n\tonce: warnForInternalEvents(once),\r\n\temit: warnForInternalEvents(emit),\r\n\tclear\r\n};\r\n\r\nfunction warnForInternalEvents(func) {\r\n\treturn function (...args) {\r\n\t\tconst evt = args[0];\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (evt.startsWith('_') && console && console.error) {\r\n\t\t\tlogErr(`the event \"${evt}\" is internal and not to be used`);\r\n\t\t}\r\n\r\n\t\t// warn about deprecated events\r\n\t\tif (deprecatedEvents.hasOwnProperty(evt)) {\r\n\t\t\tdeprecatedMsg(`The \"${evt}\" event`, `\"${deprecatedEvents[evt]}\"`);\r\n\t\t}\r\n\r\n\t\tfunc.apply(null, args);\r\n\t};\r\n}\r\n","import * as events from './event-bus';\r\nimport { isStoreSet } from './store-validate';\r\n\r\nconst store = {};\r\nconst eventPrefix = '_store.set';\r\nconst publicReadOnly = [\r\n\t'idm-data',\r\n\t'sk-config',\r\n\t'fl-internal-product-ids'\r\n];\r\nconst mutuallyExclusiveKeys = {\r\n 'idm': 'passport',\r\n 'passport': 'idm'\r\n};\r\n\r\n/**\r\n * @module Sidekick.Store\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Sets a value to the store.\r\n * @function set\r\n * @instance\r\n * @param {String} key - Key for the value\r\n * @param {Function} value - value stored under the key\r\n * @emits ${eventPrefix}-$key\r\n */\r\nexport const set = (key, value) => {\r\n\tconst flag = isStoreSet(store, key, mutuallyExclusiveKeys);\r\n\tif(flag) {\r\n\t\tthrow new Error(`SIDEKICK.STORE: Please clear '${mutuallyExclusiveKeys[key]}' before setting '${key}'`);\r\n\t}\r\n\tstore[key] = value;\r\n\tevents.emit(`${eventPrefix}-${key}`, value);\r\n};\r\n\r\n\r\n/**\r\n * Returns the value stored at the key or null.\r\n * @function get\r\n * @instance\r\n * @param {String} key\r\n * @return {*} value - Value (or null) found (or not) at the key.\r\n */\r\nexport const get = (key) => store[key] || null;\r\n\r\n\r\n/**\r\n * Creates a listener for this key.\r\n * @function onValue\r\n * @instance\r\n * @param {String} key - key for the handler\r\n * @param {Function} handler - function to handle the event\r\n */\r\nexport const onValue = (key, handler) => events.on(`${eventPrefix}-${key}`, handler, true);\r\n\r\n\r\n/**\r\n * Creates a listener for this key that runs once.\r\n * @function onValueOnce\r\n * @instance\r\n * @param {String} key - key for the handler\r\n * @param {Function} handler - function to handle the event\r\n */\r\nexport const onValueOnce = (key, handler) => events.once(`${eventPrefix}-${key}`, handler, true);\r\n\r\n\r\n/**\r\n * Returns the value stored at the key or null.\r\n * @function clear\r\n * @instance\r\n */\r\nexport const clear = () => Object.keys(store).forEach(k => delete store[k]);\r\n\r\n/**\r\n * The object that exposes the events public api and logs warnings when internal\r\n * events are emitted or listened to\r\n */\r\nexport const publicApi = {\r\n\tset: warnForInternalStore(publicSet),\r\n\tget: warnForInternalStore(get),\r\n\tonValue: warnForInternalStore(onValue),\r\n\tonValueOnce: warnForInternalStore(onValueOnce),\r\n\tclear\r\n};\r\n\r\nfunction publicSet(...args) {\r\n\tconst key = args[0];\r\n\tif (key == null) {\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (console && console.error) {\r\n\t\t\tconsole.error('SIDEKICK.STORE: the first parameter %ckey%c is required.', 'color:blue;font-weight:bold;', '');\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t\treturn;\r\n\t}\r\n\tif ((publicReadOnly.includes(key) || key.startsWith('_'))) {\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (console && console.error) {\r\n\t\t\tconsole.error(`SIDEKICK.STORE: \"${key}\" is a read only value`);\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t\treturn;\r\n\t}\r\n\treturn set.apply(null, args);\r\n}\r\n\r\nfunction warnForInternalStore(func) {\r\n\treturn function (...args) {\r\n\t\tconst key = args[0];\r\n\t\tif (key == null) {\r\n\t\t\t/* eslint-disable no-console */\r\n\t\t\tif (console && console.error) {\r\n\t\t\t\tconsole.error('SIDEKICK.STORE: the first parameter %ckey%c is required.', 'color:blue;font-weight:bold;', '');\r\n\t\t\t}\r\n\t\t\t/* eslint-enable no-console */\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (key.startsWith('_') && console && console.error) {\r\n\t\t\tconsole.error(`SIDEKICK.STORE: \"${key}\" is internal and not to be used`);\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t\treturn func.apply(null, args);\r\n\t};\r\n}\r\n","/**\r\n * Internationalization (i18n) for Sidekick\r\n * @module Sidekick.Translations\r\n * @memberOf Sidekick\r\n */\r\n\r\nvar language = 'en';\r\nvar current = {};\r\nvar langTokens = [];\r\n\r\nconst langs = {\r\n\t'fr': {\r\n\t\t'You have been signed out.': 'Vous avez été déconnecté.',\r\n\t\t'For your security and protection of your data, you have been signed out due to inactivity.': 'Pour votre sécurité et protection de vos données, vous avez été déconnecté en raison de l\\'inactivité.',\r\n\t\t'Sign In Again to Continue': 'Se connecter pour continuer',\r\n\t\t'Account Settings': 'Paramètres du compte',\r\n\t\t'All rights reserved': 'Tous les droits sont réservés',\r\n\t\t'clear input': 'entrée libre',\r\n\t\t'close panel': 'fermer le panneau',\r\n\t\t'Contact Your Organization': 'Contactez votre organisme',\r\n\t\t'Due to inactivity, your session will end and you will be signed out. Do you want to stay signed in?': 'En raison de l\\'inactivité, votre session prendra fin et vous serez déconnecté. Voulez-vous rester connecté?',\r\n\t\t'Fax': 'Fax',\r\n\t\t'Help Resources': 'Ressources d\\'aide',\r\n\t\t'Navigation': 'La navigation',\r\n\t\t'No, Sign Me Out': 'Non, Signez-moi',\r\n\t\t'No Results Found': 'Aucun résultat trouvé',\r\n\t\t'Notifications': 'Notifications',\r\n\t\t'notifications': 'notifications',\r\n\t\t'Phone': 'Téléphone',\r\n\t\t'Recent Notifications': 'Notifications récentes',\r\n\t\t'Search': 'Chercher',\r\n\t\t'Search Organizations': 'Organismes de recherche',\r\n\t\t'Search Results': 'Résultats de la recherche',\r\n\t\t'Select an Application': 'Sélectionnez une application',\r\n\t\t'Select an Organization': 'Sélectionnez une organisation',\r\n\t\t'Sign Out': 'Se déconnecter',\r\n\t\t'Skip to Main Content': 'Passer au contenu principal',\r\n\t\t'Switch Apps': 'Applications de commutation',\r\n\t\t'Switch Organizations': 'Organisations Switch',\r\n\t\t'System Activity': 'Activité du système',\r\n\t\t'Yes, Stay Signed In': 'Oui, Restez connecté',\r\n\t\t'You have no notifications': 'Vous avez aucune notification',\r\n\t\t'You will be signed out soon.': 'Vous serez bientôt déconnecté',\r\n\t\t'Your Frontline Account': 'Votre compte Frontline',\r\n\t\t'Your Solutions': 'Vos Solutions',\r\n\t\t'viewing as': 'Voir Comme',\r\n\t\t'Minimize Navigation': 'Minimiser Navigation',\r\n\t\t'Expand Navigation': 'Développer Navigation',\r\n\t\t'Toggle Navigation': 'Navigation Bascule',\r\n\t\t'System Configuration': 'Configuration du système',\r\n\t\t'Manage User Access': 'Gérer l\\'accès des utilisateurs',\r\n\t\t'Additional Resources': 'Ressources additionnelles',\r\n\t\t'Resource Library': 'Bibliothèque de ressources',\r\n\t\t'Data Exporter': 'Exportateur de données',\r\n\t\t'User Configuration': 'Paramétrage utilisateur',\r\n\t\t'Frontline User Permissions':\r\n\t\t\t'Autorisations des utilisateurs de première ligne',\r\n\t\t'Browse Library': 'Parcourir la bibliothèque',\r\n\t\t'My Resource History': 'Mon historique des ressources',\r\n\t\t'My Groups': 'Mes groupes',\r\n\t\t'Library': 'Bibliothèque',\r\n\t\t'Administration': 'Administration',\r\n\t\t'My Organization Resources': 'Ressources de mon organisation',\r\n\t\t'Global Directory': 'Annuaire Global',\r\n\t\t'Learning Designer Admin' : 'Administrateur du concepteur d\\'apprentissage',\r\n\t\t'Reports' : 'Rapports',\r\n\t\t'Manage Content Curator': 'Gérer le conservateur de contenu',\r\n\t\t'Micro-Credential Assessor Tool': 'Outil d\\'évaluation des micro-informations d\\'identification',\r\n\t\t'Employee Directory': 'Annuaire des Employés',\r\n\t\t'My Profile': 'Mon profil',\r\n\t\t'My Resources': 'Mes ressources',\r\n\t\t'Staff Directory': 'Répertoire personnel',\r\n\t\t'My Frontline': 'My Frontline',\r\n\t\t'Stop Impersonation': 'Stop Impersonation',\r\n\t\t'Collaborative Video Rubrics': 'Rubriques vidéo collaboratives',\r\n\t\t'Your Roles': 'Vos rôles',\r\n\t\t'Help': 'Aide',\r\n\t\t'Organizations': 'Organisations',\r\n\t},\r\n\t'it': {\r\n\t\t'You have been signed out.': 'Sei stato lasciato fuori conto.',\r\n\t\t'For your security and protection of your data, you have been signed out due to inactivity.': 'Per la tua sicurezza e la protezione dei tuoi dati, sei uscito per l\\'inattività.',\r\n\t\t'Sign In Again to Continue': 'Accedi nuovamente per continuare',\r\n\t\t'Account Settings': 'Impostazioni dell \\'account',\r\n\t\t'All rights reserved': 'Tutti i diritti riservati',\r\n\t\t'clear input': 'ingresso libero',\r\n\t\t'close panel': 'Chiudi pannello',\r\n\t\t'Contact Your Organization': 'Contattare la propria organizzazione',\r\n\t\t'Due to inactivity, your session will end and you will be signed out. Do you want to stay signed in?': 'A causa di inattività, la sessione si concluderà e si saranno firmati fuori. Vuoi rimanere firmato a?',\r\n\t\t'Fax': 'Fax',\r\n\t\t'Help Resources': 'Risorse di assistenza',\r\n\t\t'Navigation': 'Navigazione',\r\n\t\t'No, Sign Me Out': 'No, Mi Esci',\r\n\t\t'No Results Found': 'Nessun risultato trovato',\r\n\t\t'Notifications': 'notifiche',\r\n\t\t'notifications': 'notifiche',\r\n\t\t'Phone': 'Telefono',\r\n\t\t'Recent Notifications': 'Notifiche recenti',\r\n\t\t'Search': 'Ricerca',\r\n\t\t'Search Organizations': 'Le organizzazioni di ricerca',\r\n\t\t'Search Results': 'risultati di ricerca',\r\n\t\t'Select an Application': 'Selezionare un\\'applicazione',\r\n\t\t'Select an Organization': 'Seleziona una Organizzazione',\r\n\t\t'Sign Out': 'Disconnessione',\r\n\t\t'Skip to Main Content': 'Vai al contenuto principale',\r\n\t\t'Switch Apps': 'applicazioni Interruttore',\r\n\t\t'Switch Organizations': 'Organizzazioni di commutazione',\r\n\t\t'System Activity': 'Attività del sistema',\r\n\t\t'Yes, Stay Signed In': 'Sì, Resta connesso',\r\n\t\t'You have no notifications': 'Non ci sono notifiche',\r\n\t\t'You will be signed out soon.': 'Verrà firmato presto',\r\n\t\t'Your Frontline Account': 'Il tuo account Frontline',\r\n\t\t'Your Solutions': 'Le nostre soluzioni',\r\n\t\t'viewing as': 'visualizzazione come',\r\n\t\t'Minimize Navigation': 'Ridurre Navigazione',\r\n\t\t'Expand Navigation': 'Espandere Navigazione',\r\n\t\t'Toggle Navigation': 'Attiva Navigazione',\r\n\t\t'System Configuration': 'Configurazione di sistema',\r\n\t\t'Manage User Access': 'Gestisci l\\'accesso degli utenti',\r\n\t\t'Additional Resources': 'Risorse addizionali',\r\n\t\t'Resource Library': 'Libreria delle risorse',\r\n\t\t'Data Exporter': 'Esportatore di dati',\r\n\t\t'User Configuration': 'Configurazione utente',\r\n\t\t'Frontline User Permissions': 'Autorizzazioni utente in prima linea',\r\n\t\t'Browse Library': 'Sfoglia la biblioteca',\r\n\t\t'My Resource History': 'La mia storia delle risorse',\r\n\t\t'My Groups': 'I miei gruppi',\r\n\t\t'Library': 'Biblioteca',\r\n\t\t'Administration': 'Amministrazione',\r\n\t\t'My Organization Resources': 'Risorse della mia organizzazione',\r\n\t\t'Global Directory': 'Directory Globale',\r\n\t\t'Learning Designer Admin' : 'Amministratore di Learning Designer',\r\n\t\t'Reports' : 'Rapporti',\r\n\t\t'Manage Content Curator': 'Gestisci curatore dei contenuti',\r\n\t\t'Micro-Credential Assessor Tool': 'Strumento di valutazione delle micro credenziali',\r\n\t\t'Employee Directory': 'Directory dei Dipendenti',\r\n\t\t'My Profile': 'Il Mio Profilo',\r\n\t\t'My Resources': 'Le mie risorse',\r\n\t\t'Staff Directory': 'Directory del Personale',\r\n\t\t'My Frontline': 'My Frontline',\r\n\t\t'Stop Impersonation': 'Stop Impersonation',\r\n\t\t'Collaborative Video Rubrics': 'Rubriche video collaborative',\r\n\t\t'Your Roles': 'I tuoi ruoli',\r\n\t\t'Help': 'Aiuto',\r\n\t\t'Organizations': 'Organizzazioni',\r\n\t},\r\n\t'es': {\r\n\t\t'You have been signed out.': 'Se ha cerrado la sesión.',\r\n\t\t'For your security and protection of your data, you have been signed out due to inactivity.': 'Para su seguridad y protección de sus datos, se ha cerrado la sesión debido a la inactividad.',\r\n\t\t'Sign In Again to Continue': 'Iniciar sesión de nuevo para continuar',\r\n\t\t'Account Settings': 'Configuraciones de la cuenta',\r\n\t\t'All rights reserved': 'Todos los derechos reservados',\r\n\t\t'clear input': 'entrada de borrado',\r\n\t\t'close panel': 'panel de cierre',\r\n\t\t'Contact Your Organization': 'Póngase en contacto con su organización',\r\n\t\t'Due to inactivity, your session will end and you will be signed out. Do you want to stay signed in?': 'Debido a la inactividad, su sesión finalizará y se cerrará sesión. ¿Quiere permanecer conectado?',\r\n\t\t'Fax': 'Fax',\r\n\t\t'Help Resources': 'Recursos de ayuda',\r\n\t\t'Navigation': 'Navegación',\r\n\t\t'No, Sign Me Out': 'No, firmeme',\r\n\t\t'No Results Found': 'No se han encontrado resultados',\r\n\t\t'Notifications': 'Notificaciones',\r\n\t\t'notifications': 'notificaciones',\r\n\t\t'Phone': 'Teléfono',\r\n\t\t'Recent Notifications': 'Notificaciones recientes',\r\n\t\t'Search': 'Buscar',\r\n\t\t'Search Organizations': 'Organizaciones de la búsqueda',\r\n\t\t'Search Results': 'Resultados de la búsqueda',\r\n\t\t'Select an Application': 'Seleccione una aplicación',\r\n\t\t'Select an Organization': 'Seleccione una Organización',\r\n\t\t'Sign Out': 'Desconectar',\r\n\t\t'Skip to Main Content': 'Saltar al contenido principal',\r\n\t\t'Switch Apps': 'Aplicaciones del interruptor',\r\n\t\t'Switch Organizations': 'Organizaciones de conmutación',\r\n\t\t'System Activity': 'Actividad del sistema',\r\n\t\t'Yes, Stay Signed In': 'Sí, permanece firmado',\r\n\t\t'You have no notifications': 'No tiene notificaciones',\r\n\t\t'You will be signed out soon.': 'Saldrá pronto',\r\n\t\t'Your Frontline Account': 'Su cuenta en primera línea',\r\n\t\t'Your Solutions': 'sus Soluciones',\r\n\t\t'viewing as': 'viendo como',\r\n\t\t'Minimize Navigation': 'Minimizar Navegación',\r\n\t\t'Expand Navigation': 'Expandir Navegación',\r\n\t\t'Toggle Navigation': 'Alternar Navegación',\r\n\t\t'System Configuration': 'Configuración del sistema',\r\n\t\t'Manage User Access': 'Administrar acceso de usuario',\r\n\t\t'Additional Resources': 'Recursos adicionales',\r\n\t\t'Resource Library': 'Biblioteca de recursos',\r\n\t\t'Data Exporter': 'Exportador de datos',\r\n\t\t'User Configuration': 'Configuración de usuario',\r\n\t\t'Frontline User Permissions': 'Permisos de usuario de primera línea',\r\n\t\t'Browse Library': 'Navegar por la biblioteca',\r\n\t\t'My Resource History': 'Mi historial de recursos',\r\n\t\t'My Groups': 'Mis grupos',\r\n\t\t'Library': 'Biblioteca',\r\n\t\t'Administration': 'Administración',\r\n\t\t'My Organization Resources': 'Mis recursos de organización',\r\n\t\t'Global Directory': 'Directorio Global',\r\n\t\t'Learning Designer Admin' : 'Administrador del diseñador de aprendizaje',\r\n\t\t'Reports' : 'Informes',\r\n\t\t'Manage Content Curator': 'Gestionar curador de contenido',\r\n\t\t'Micro-Credential Assessor Tool': 'Herramienta de evaluación de micro credenciales',\r\n\t\t'Employee Directory': 'Directorio de Empleados',\r\n\t\t'My Profile': 'Mi Perfil',\r\n\t\t'My Resources': 'Mis Recursos',\r\n\t\t'Staff Directory': 'Directorio de Personal',\r\n\t\t'My Frontline': 'My Frontline',\r\n\t\t'Stop Impersonation': 'Stop Impersonation',\r\n\t\t'Collaborative Video Rubrics': 'Rúbricas de videos colaborativos',\r\n\t\t'Your Roles': 'Tus roles',\r\n\t\t'Help': 'Ayuda',\r\n\t\t'Organizations': 'organizaciones',\r\n\t},\r\n};\r\n\r\n/**\r\n * Sets the language to use.\r\n * @function init\r\n * @instance\r\n * @param {String} newLang=en - Language to set. Defaults to English.\r\n */\r\nexport function init(newLang) {\r\n\tmakeLangTokens();\r\n\tnewLang = newLang.toLowerCase();\r\n\tif (langs[newLang] == null) {\r\n\t\tif (newLang.indexOf('-') >= 0) {\r\n\t\t\tnewLang = newLang.split('-')[0];\r\n\t\t\tif (langs[newLang] == null) {\r\n\t\t\t\tnewLang = 'en';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tlanguage = newLang;\r\n\tif (language === 'en') {\r\n\t\tcurrent = {};\r\n\t\treturn;\r\n\t}\r\n\tcurrent = langs[language];\r\n}\r\n\r\n/**\r\n * Takes an English string and will look up the translation based on the current language.\r\n * @function i18n\r\n * @instance\r\n * @param {String} str - String to transform\r\n * @return {String} Returns the translation if exists. Otherwise returns the str passed in.\r\n */\r\nexport function i18n(str) {\r\n\t/* eslint-disable no-console */\r\n\tif (!langTokens.includes(str) && console && console.error) {\r\n\t\tconsole.error(`SIDEKICK: \"${str}\" is not a valid language token`);\r\n\t}\r\n\t/* eslint-enable no-console */\r\n\treturn language === 'en' ? str : (current[str] != null ? current[str] : str);\r\n}\r\n\r\nfunction makeLangTokens() {\r\n\tconst langKeys = Object.keys(langs);\r\n\tlangTokens = Object.keys(langs[langKeys[0]]).sort();\r\n\tconst baseSignature = langTokens.join('#');\r\n\tlangKeys.forEach(function (k) {\r\n\t\tconst langSignature = Object.keys(langs[k]).sort().join('#');\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (langSignature !== baseSignature && console && console.error) {\r\n\t\t\tconsole.error(`SIDEKICK: Internationalization language signatures are inconsistent (${k})`);\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t});\r\n}\r\n","import nonProdProductIdMap from './env-prodProductIdMap.json';\r\n// the product usertype map is only used for 1 deprecated attr on the sidekick\r\nimport nonProdProductUserTypeMap from './env-productsToUserTypes.json';\r\n\r\nexport const dev = {\r\n\tssBaseUrl: 'https://supersuit.flqa.net',\r\n\tecSand: 'https://ecsandproxyawsdev.flqa.net',\r\n\tproductUserTypeMap: nonProdProductUserTypeMap,\r\n\tproductIdMap: nonProdProductIdMap,\r\n\tdataExporterBaseUrl: 'https://pde-dev.ss.frontlineeducation.com',\r\n\tpassportAuthDomain: 'login.dev-k12.ss.frontlineeducation.com',\r\n\tpassportDomain: 'dev-k12.ss.frontlineeducation.com',\r\n\tvendorSSOApiUrl: 'https://vendorsso-dev-api.ss.frontlineeducation.com',\r\n\tvendorSSOBaseUrl: 'https://vendorsso-ui-dev.ss.frontlineeducation.com',\r\n\tpermissionServiceBaseUrl:\r\n\t\t'https://platform-permission-dev.ss.frontlineeducation.com',\r\n\tuserExclusiveDomains: ['a05e88e5-4d7f-48f3-91bf-3c48f9547f82'],\r\n};\r\n\r\nexport const qa = {\r\n\tssBaseUrl: 'https://supersuit.flqa.net',\r\n\tecSand: 'https://ecsandproxyawsqa.flqa.net',\r\n\tproductUserTypeMap: nonProdProductUserTypeMap,\r\n\tproductIdMap: nonProdProductIdMap,\r\n\tdataExporterBaseUrl: 'https://pde-dev.ss.frontlineeducation.com',\r\n\tvendorSSOApiUrl: 'https://vendorsso-dev-api.ss.frontlineeducation.com',\r\n\tvendorSSOBaseUrl: 'https://vendorsso-ui-dev.ss.frontlineeducation.com',\r\n\trubricDesignerUrl: 'https://app-rubricdesigner.pg-dev.int.frontlineeducation.com',\r\n\tpermissionServiceBaseUrl:\r\n\t\t'https://platform-permission-stage.ss.frontlineeducation.com',\r\n\tuserExclusiveDomains: ['a05e88e5-4d7f-48f3-91bf-3c48f9547f82'],\r\n};\r\n\r\nexport const stage = {\r\n\tssBaseUrl: 'https://supersuit.flqa.net',\r\n\tecSand: 'https://ecsandproxyawsstage.flqa.net',\r\n\tproductUserTypeMap: nonProdProductUserTypeMap,\r\n\tproductIdMap: nonProdProductIdMap,\r\n\tdataExporterBaseUrl: 'https://exporter.ss.frontlineeducation.com',\r\n\tpassportAuthDomain: 'login.stage-k12.ss.frontlineeducation.com',\r\n\tpassportDomain: 'stage-k12.ss.frontlineeducation.com',\r\n\tvendorSSOApiUrl: 'https://vendorsso-stage-api.ss.frontlineeducation.com',\r\n\tvendorSSOBaseUrl: 'https://vendorsso-ui-stage.ss.frontlineeducation.com',\r\n\trubricDesignerUrl: 'https://app-rubricdesigner.pg-stage.int.frontlineeducation.com',\r\n\tpermissionServiceBaseUrl:\r\n\t\t'https://platform-permission-stage.ss.frontlineeducation.com',\r\n\tuserExclusiveDomains: ['a05e88e5-4d7f-48f3-91bf-3c48f9547f82'],\r\n};\r\n\r\nexport const prod = {\r\n\tssBaseUrl: 'https://app.frontlineeducation.com',\r\n\tecSand: 'https://api2.frontlineeducation.com',\r\n\tproductUserTypeMap: {\r\n\t\t'EC': 'employee',\r\n\t\t'IepLegacyBeta': 'ss_tri_state_user_beta',\r\n\t\t'504LegacyBeta': 'ss_tri_state_user_beta',\r\n\t\t'RtiLegacyBeta': 'ss_tri_state_user_beta',\r\n\t\t'EsaLegacyBeta': 'ss_tri_state_user_beta',\r\n\t\t'MedicaidLegacyBeta': 'ss_tri_state_user_beta',\r\n\t\t'IepLegacy': 'ss_tri_state_user',\r\n\t\t'504Legacy': 'ss_tri_state_user',\r\n\t\t'RtiLegacy': 'ss_tri_state_user',\r\n\t\t'EsaLegacy': 'ss_tri_state_user',\r\n\t\t'MedicaidLegacy': 'ss_tri_state_user',\r\n\t\t'ta': 'abs_time_user',\r\n\t\t'AbsMgmt': 'abs_time_user',\r\n\t\t'pd': 'pd_user',\r\n\t\t'recruit': 'recruit_user',\r\n\t\t'IepEnrich': 'ss_enrich_user',\r\n\t\t'cc': 'cc_user',\r\n\t\t'platformTools': 'fl-employee',\r\n\t},\r\n\tproductIdMap: {},\r\n\tdataExporterBaseUrl: 'https://exporter.frontlineeducation.com',\r\n\tpassportAuthDomain: 'login.k12.frontlineeducation.com',\r\n\tpassportDomain: 'k12.frontlineeducation.com',\r\n\tvendorSSOApiUrl: 'https://vendorsso-api.frontlineeducation.com',\r\n\tvendorSSOBaseUrl: 'https://vendorsso-ui.use1.frontlineeducation.com',\r\n\trubricDesignerUrl: 'https://app-rubricdesigner.pg-prod.frontlineeducation.com',\r\n\tuserExclusiveDomains: ['a05e88e5-4d7f-48f3-91bf-3c48f9547f82'],\r\n};\r\n\r\nexport function productIdFromMap(productId, productIdMap) {\r\n\tconst pIdLower = productId.toLowerCase();\r\n\treturn productIdMap[pIdLower] || pIdLower;\r\n}\r\n\r\nexport function environmentFromIdmGatewayUrl(idmGatewayUrl) {\r\n\tconst isAws = /\\/\\/idgatewayaws(.*?)\\.flqa\\.net/gi;\r\n\tconst awsMatch = isAws.exec(idmGatewayUrl);\r\n\tif (awsMatch !== null) {\r\n\t\treturn awsMatch[1];\r\n\t} else {\r\n\t\treturn 'prod';\r\n\t}\r\n}\r\n\r\nexport function environmentFromPassportDomain(domain) {\r\n\tif (prod['passportDomain'] === domain) {\r\n\t\treturn 'prod';\r\n\t}\r\n\t// Added the condition to handle new subdomain url\r\n\tif (stage['passportDomain'] === domain || domain.includes(stage['passportDomain'])) {\r\n\t\treturn 'stage';\r\n\t}\r\n\treturn 'dev';\r\n}\r\n","import * as store from './store';\r\n\r\nconst defaults = {\r\n\ttype: 'session',\r\n\texpires: 30 // in minutes\r\n};\r\nconst inverseType = {session: 'local', local: 'session'};\r\nconst sStore = window.sessionStorage;\r\nconst lStore = window.localStorage;\r\nconst ns = 'SK_';\r\n\r\nexport const set = function (key, data, config) {\r\n\tconst cfg = Object.assign({}, defaults, config, {data});\r\n\tclearUnusedKeys(`${cfg.type}Storage`, key);\r\n\tif (typeof cfg.expires === 'number' && isFinite(cfg.expires)) {\r\n\t\tconst minToMs = 60 * 1000;\r\n\t\tcfg.expires = Date.now() + (cfg.expires * minToMs);\r\n\t} else {\r\n\t\tcfg.expires = null;\r\n\t}\r\n\ttry {\r\n\t\twindow[`${cfg.type}Storage`].setItem(`${ns}${key}`, JSON.stringify(cfg));\r\n\t\twindow[`${inverseType[cfg.type]}Storage`].removeItem(`${ns}${key}`);\r\n\t} catch(e) {\r\n\t\t/* eslint-disable no-console */\r\n\t\tconsole.error('Sidekick error: ', e);\r\n\t}\r\n};\r\n\r\nexport const get = function (key) {\r\n\tconst raw = sStore.getItem(`${ns}${key}`) || lStore.getItem(`${ns}${key}`) || null;\r\n\tif (raw == null) { return null; }\r\n\tconst json = JSON.parse(raw);\r\n\r\n\t// if the data has expired, return null\r\n\tif (json.expires != null && json.expires < Date.now()) { return null; }\r\n\treturn json.data;\r\n};\r\n\r\n// cleanup the expired persistence values when we first load\r\nstore.onValueOnce('sk-config', function (cfg) {\r\n\tconst {cleanCache} = cfg;\r\n\r\n\t// clean out anything that is expired\r\n\t[lStore, sStore].forEach(function (storage) {\r\n\t\t// spin all the items in local/session storage\r\n\t\tvar i = storage.length;\r\n\t\tfor (; i-- ;) {\r\n\t\t\t// get the key to inspect\r\n\t\t\tconst key = storage.key(i);\r\n\t\t\t// if it's not a SideKick value, don't mess with it\r\n\t\t\tif (!key.startsWith(ns)) { continue; }\r\n\t\t\t// can we get data for this key?\r\n\t\t\tconst data = get(key.slice(ns.length));\r\n\t\t\t// if the data is null or we are in a clearing cache state, remove it\r\n\t\t\tif (data == null || cleanCache) { storage.removeItem(key); }\r\n\t\t}\r\n\t});\r\n});\r\n\r\n/**\r\n * This method clears all the unused Sidekick data, that starts with {@link ns} @param {String} key[0] in the storage.\r\n * @param {String} storageType type of storage, ex: localStorage, sessionStorage\r\n * @param {String} key the current key which is to be set. It contains the flId and sessionId at index [1] & [2] when split by '-'\r\n */\r\nfunction clearUnusedKeys(storageType, key) {\r\n\tconst keyData = key.split('-');\r\n\tif(keyData.length > 2) {\r\n\t\tconst existingKeys = Object.keys(window[storageType]).filter(item => item.startsWith(`${ns}${keyData[0]}`));\r\n\t\tconst unusedKeys = existingKeys.filter(item => !item.endsWith(`-${keyData[1]}-${keyData[2]}`));\r\n\t\tif(unusedKeys.length > 0) {\r\n\t\t\tfor(const unusedKey of unusedKeys) {\r\n\t\t\t\twindow[storageType].removeItem(unusedKey);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","/**\r\n * Ajax Calls\r\n * @module Sidekick.Ajax\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Makes a call\r\n * @function do\r\n * @instance\r\n * @param {String} method\r\n * @param {String} url\r\n * @param {Object} post\r\n * @param {Function} callback\r\n * @param {Array} headers\r\n * @param {Number} timeout\r\n * @param {Boolean} withCredentials\r\n * @param {Object} responseType\r\n * @param {Array} eventHandlers\r\n * @param {Array} uploadEventHandlers\r\n */\r\nexport function doCall(method, url, post, callback, headers, timeout, withCredentials, responseType, eventHandlers, uploadEventHandlers) {\r\n\tvar h, i, xhr = new window.XMLHttpRequest();\r\n\r\n\txhr.open(method, url, true);\r\n\r\n\tfor (i = 0; i < headers.length; i++) {\r\n\t\tvar header = headers[i];\r\n\t\tif (header.value != null) {\r\n\t\t\txhr.setRequestHeader(header.key, header.value);\r\n\t\t}\r\n\t}\r\n\r\n\txhr.onload = function requestLoaded() {\r\n\t\tvar statusText = xhr.statusText || '';\r\n\r\n\t\t// responseText is the old-school way of retrieving response (supported by IE9)\r\n\t\t// response/responseType properties were introduced in XHR Level2 spec (supported by IE10)\r\n\t\tvar response = ('response' in xhr) ? xhr.response : xhr.responseText;\r\n\r\n\t\t// normalize IE9 bug (http://bugs.jquery.com/ticket/1450)\r\n\t\tvar status = xhr.status === 1223 ? 204 : xhr.status;\r\n\r\n\t\t// fix status code when it is 0 (0 status is undocumented).\r\n\t\t// Occurs when accessing file resources or on Android 4.1 stock browser\r\n\t\t// while retrieving files from application cache.\r\n\t\t// if (status === 0) {\r\n\t\t// \tstatus = response ? 200 : urlResolve(url).protocol == 'file' ? 404 : 0;\r\n\t\t// }\r\n\r\n\t\tcompleteRequest(callback,\r\n\t\t\tstatus,\r\n\t\t\tresponse,\r\n\t\t\txhr.getAllResponseHeaders(),\r\n\t\t\tstatusText);\r\n\t};\r\n\r\n\tvar requestError = function() {\r\n\t\t// The response is always empty\r\n\t\t// See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error\r\n\t\tcompleteRequest(callback, -1, null, null, '');\r\n\t};\r\n\r\n\txhr.onerror = requestError;\r\n\txhr.onabort = requestError;\r\n\r\n\tif (eventHandlers != null) {\r\n\t\tfor (i = 0; i < eventHandlers.length; i++) {\r\n\t\t\th = eventHandlers[i];\r\n\t\t\txhr.addEventListener(h.key, h.value);\r\n\t\t}\r\n\t}\r\n\r\n\tif (uploadEventHandlers != null) {\r\n\t\tfor (i = 0; i < uploadEventHandlers.length; i++) {\r\n\t\t\th = uploadEventHandlers[i];\r\n\t\t\txhr.upload.addEventListener(h.key, h.value);\r\n\t\t}\r\n\t}\r\n\r\n\tif (withCredentials) {\r\n\t\txhr.withCredentials = true;\r\n\t}\r\n\r\n\tif (responseType) {\r\n\t\ttry {\r\n\t\t\txhr.responseType = responseType;\r\n\t\t} catch (e) {\r\n\t\t\t// WebKit added support for the json responseType value on 09/03/2013\r\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=73648. Versions of Safari prior to 7 are\r\n\t\t\t// known to throw when setting the value \"json\" as the response type. Other older\r\n\t\t\t// browsers implementing the responseType\r\n\t\t\t//\r\n\t\t\t// The json response type can be ignored if not supported, because JSON payloads are\r\n\t\t\t// parsed on the client-side regardless.\r\n\t\t\tif (responseType !== 'json') {\r\n\t\t\t\tthrow e;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\txhr.send(post == null ? null : post);\r\n}\r\n\r\nfunction completeRequest(callback, status, response, headersString, statusText) {\r\n\tcallback(status, response, headersString, statusText);\r\n}\r\n","import {doCall} from './ajax';\r\nimport * as store from './store';\r\nimport * as events from './event-bus';\r\nimport * as dom from './easy-dom';\r\nimport * as env from './env';\r\nimport {deprecatedAttr} from './deprecated';\r\n\r\nconst idmDataKeys = ['productId', 'access', 'user', 'session', 'roles'];\r\n\r\n// shorthand for these long attributes that are used often\r\nconst _oid = 'OrganizationId';\r\nconst _pid = 'ProductId';\r\n\r\nexport const processIdmData = function (idmData, {users, targetOrgId} = {}) {\r\n\t// ensure our orgId is always a string so that we can correctly do comparisons\r\n\tif (typeof targetOrgId === 'number') {\r\n\t\ttargetOrgId = targetOrgId.toString();\r\n\t}\r\n\r\n\tconst dataKeys = Object.keys(idmData);\r\n\tconst missingIdmMeta = users == null;\r\n\tconst missingIdmData = idmDataKeys.reduce(function (prev, key) {\r\n\t\treturn prev || !dataKeys.includes(key);\r\n\t}, false);\r\n\r\n\t// if we are waiting on data, don't process yet\r\n\tif (missingIdmData || missingIdmMeta) { return; }\r\n\r\n\tconst flInternalProducts = store.get('fl-internal-product-ids') || [];\r\n\tconst isInternalProduct = flInternalProducts.includes(idmData.productId.toLowerCase());\r\n\tconst productIdUpper = idmData.productId.toUpperCase();\r\n\tconst filteredAccessRecords = idmData.access\r\n\t\t.filter(filterDupProductAndOrgRecords)\r\n\t\t.filter(a => a[_pid].toUpperCase() === productIdUpper)\r\n\t\t.filter(a => !flInternalProducts.includes(a[_pid].toLowerCase()));\r\n\r\n\tconst state = idmData.session && idmData.session.State || {};\r\n\r\n\t// ensure our orgId is always a string so that we can correctly do comparisons\r\n\tif (typeof state.currentOrg === 'number') {\r\n\t\tstate.currentOrg = state.currentOrg.toString();\r\n\t}\r\n\r\n\tconst currentOrg = (targetOrgId || state.currentOrg || null);\r\n\tconst isIdmAdmin = idmData.roles.map(r => r.toLowerCase()).includes('idmadministrator');\r\n\r\n\t// if the user is NOT an IDM Administrator and they are trying to access an internal screen\r\n\t// redirect them to the /select screen so they can pick something they are allowed to see\r\n\tif (!isIdmAdmin && isInternalProduct) {\r\n\t\tconst {idGatewayUrl} = store.get('idm');\r\n\t\tconst envName = env.environmentFromIdmGatewayUrl(idGatewayUrl);\r\n\t\twindow.location.href = `${env[envName].ssBaseUrl}/select/`;\r\n\t}\r\n\r\n\t// if the user is an IdmAdministrator and they are accessing an org they don't\r\n\t// have access to, or an internal product, create a fake access record for them\r\n\tif (isIdmAdmin && productIdUpper && (currentOrg != null || isInternalProduct)) {\r\n\t\tconst targetProductAccessRecord = (\r\n\t\t\tisInternalProduct\r\n\t\t\t\t? null\r\n\t\t\t\t: filteredAccessRecords.find(a => currentOrg === a[_oid])\r\n\t\t);\r\n\r\n\t\tif (targetProductAccessRecord == null) {\r\n\r\n\t\t\tconst DefaultSignInUrl = idmData.product && idmData.product.DefaultSignInUrl || '';\r\n\t\t\tconst OrgNavigationUrlTemplate = idmData.product && idmData.product.OrgNavigationUrlTemplate || '';\r\n\t\t\tconst Url = DefaultSignInUrl;\r\n\t\t\tconst ProductName = idmData.product && idmData.product.Name || '';\r\n\t\t\tconst ProductLegacyName = idmData.product && idmData.product.LegacyName || null;\r\n\r\n\t\t\tconst fakeProductAccess = {\r\n\t\t\t\tFlId: users.Id.toString(),\r\n\t\t\t\tDisabled: false,\r\n\t\t\t\tOrganizationId: (isInternalProduct ? null : currentOrg),\r\n\t\t\t\tOrganizationName: (isInternalProduct ? '' : `IDM ADMIN: ${currentOrg}`),\r\n\t\t\t\tProductId: idmData.productId,\r\n\t\t\t\tProductName, ProductLegacyName,\r\n\t\t\t\tDefaultSignInUrl, OrgNavigationUrlTemplate, Url,\r\n\t\t\t\tUserKey: null,\r\n\t\t\t\tFake: true,\r\n\t\t\t\tInternal: isInternalProduct\r\n\t\t\t};\r\n\r\n\t\t\tfilteredAccessRecords.push(fakeProductAccess);\r\n\t\t\tidmData.access.push(fakeProductAccess);\r\n\t\t}\r\n\t}\r\n\r\n\t// this account has no access at all\r\n\tif (idmData.access.length === 0) {\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (console && console.log) {\r\n\t\t\tconsole.log('NO ACCESS RECORDS');\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t\tevents.emit('idm.no-access', idmData.user);\r\n\t\treturn;\r\n\r\n\t// couldn't find an access record for the current product\r\n\t} else if (filteredAccessRecords.length === 0) {\r\n\t\treturn startAppOrgPicker(idmData);\r\n\r\n\t\t// if we have just one product access record that matches this app\r\n\t} else if (filteredAccessRecords.length === 1) {\r\n\t\tidmData.userContext = Object.assign({}, filteredAccessRecords[0]);\r\n\r\n\t\t// if we have more than one product access records that match this app\r\n\t} else if (filteredAccessRecords.length > 1) {\r\n\r\n\t\t// we are targeting a specific org\r\n\t\tif (currentOrg != null) {\r\n\t\t\t// try to find a legit product access record for the requested org\r\n\t\t\tconst currentOrgProductAccess = filteredAccessRecords\r\n\t\t\t\t.find(a => currentOrg.toString() === a[_oid]);\r\n\r\n\t\t\t// if we couldn't find a real access record and we are not an idmAdmin\r\n\t\t\tif (currentOrgProductAccess == null) {\r\n\t\t\t\t// we have access to this app, but not for the org we are targeting\r\n\t\t\t\t// we are also not an idmAdmin\r\n\t\t\t\treturn startAppOrgPicker(idmData);\r\n\t\t\t} else {\r\n\t\t\t\tidmData.userContext = Object.assign({}, currentOrgProductAccess);\r\n\t\t\t}\r\n\r\n\t\t// we are not targeting a specific org\r\n\t\t} else {\r\n\t\t\t// have the user pick the org they want to access\r\n\t\t\treturn startAppOrgPicker(idmData);\r\n\t\t}\r\n\t}\r\n\r\n\t// if we have a user context and OrganizationUsers, aggregate the identities\r\n\t// that are within this organization context\r\n\tif (idmData.userContext != null && users.OrganizationUsers != null) {\r\n\t\tconst {OrganizationId} = idmData.userContext;\r\n\t\tidmData.identities = users.OrganizationUsers.reduce(function (acc, ou) {\r\n\t\t\tif (ou.OrganizationId === OrganizationId) {\r\n\t\t\t\tacc = acc.concat(ou.Identities);\r\n\t\t\t}\r\n\t\t\treturn acc;\r\n\t\t}, [].concat(users.Identities || []));\r\n\t\t// aggregate identities of consortium users as well\r\n\t\tif(users.ConsortiumUsers != null){\r\n\t\t\tidmData.identities = users.ConsortiumUsers.reduce(function (acc, cu) {\r\n\t\t\t\tcu.CrossOrgAppUserAssociations.forEach(xOrgAppAssoc => {\r\n\t\t\t\t\tif (xOrgAppAssoc.OrganizationId === OrganizationId) {\r\n\t\t\t\t\t\txOrgAppAssoc.Access.forEach(access => {\r\n\t\t\t\t\t\t\tacc = acc.concat({Type: access.Type, Id: access.Id});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn acc;\r\n\t\t\t}, [].concat(idmData.identities || []));\r\n\t\t}\r\n\t}\r\n\r\n\tif (idmData.userContext != null) {\r\n\t\t// common deprecation attrs\r\n\t\tconst obj = idmData.userContext;\r\n\t\tconst objLoc = 'STORE(idm-data).userContext';\r\n\r\n\t\tdeprecatedAttr({\r\n\t\t\tattr: 'FlId',\r\n\t\t\tnewLoc: 'STORE(idm-data).user.profileId',\r\n\t\t\tobj, objLoc\r\n\t\t}, idmData.user.profileId.toString());\r\n\r\n\t\tdeprecatedAttr({ attr: 'Description', obj, objLoc }, null);\r\n\r\n\t\tdeprecatedAttr({ attr: 'UserKey', obj, objLoc }, function () {\r\n\t\t\tconst idTypes = idmData.product.AssociatedRoles.map(x => x.Type);\r\n\t\t\tconst identities = idmData.identities.filter(id => idTypes.includes(id.Type));\r\n\t\t\treturn (identities[0] && identities[0].Id || null);\r\n\t\t});\r\n\r\n\t\tconst deprecatedAccessAttrs = {\r\n\t\t\t'LegacyName': 'ProductLegacyName',\r\n\t\t\t'DefaultSignInUrl': 'Url',\r\n\t\t\t'OrgNavigationUrlTemplate': 'Url'\r\n\t\t};\r\n\t\tObject.keys(deprecatedAccessAttrs).forEach(function (attr) {\r\n\t\t\tconst newAttr = deprecatedAccessAttrs[attr];\r\n\t\t\tdeprecatedAttr({\r\n\t\t\t\tattr, obj, objLoc,\r\n\t\t\t\tnewLoc: `STORE(idm-data).userContext.${newAttr}`\r\n\t\t\t}, () => idmData.userContext[newAttr]);\r\n\t\t});\r\n\t}\r\n\r\n\tstore.set('idm-data', idmData);\r\n\r\n\tconst domWin = dom.element(window);\r\n\tconst idmAdminOverrideOfOrg = currentOrg !== state.currentOrg;\r\n\tconst currentOrgIsNotTheOrgSelected = currentOrg !== idmData.userContext[_oid];\r\n\r\n\tif (idmAdminOverrideOfOrg || currentOrgIsNotTheOrgSelected) {\r\n\t\tupdateCurrentOrgInSharedState();\r\n\t}\r\n\tdomWin.on('focus', updateCurrentOrgInSharedState);\r\n\r\n\tevents.on('_nav.expand-arrow', prefLeftNavExpanded => {\r\n\t\tsetPrefLeftNavExpanded(prefLeftNavExpanded);\r\n\t});\r\n};\r\n\r\nfunction startAppOrgPicker(idmData, appOrgOverrides = {}) {\r\n\tstore.set('pick-org-app-data', Object.assign({}, idmData, appOrgOverrides));\r\n\tstore.set('idm-data', Object.assign(idmData, {userContext: {}}));\r\n}\r\n\r\nexport const fillUiFromIdmData = function (idmData) {\r\n\tconst productIdUpper = idmData.productId.toUpperCase();\r\n\t// idmData\r\n\tstore.set('org-switcher-data', buildOrgSwitcherData(idmData));\r\n\tstore.set('app-switcher-data', buildAppSwitcherData(idmData));\r\n\tstore.set('user-data', idmData.user);\r\n\r\n\tevents.on('header.org-switcher.change', function (org) {\r\n\t\tconst orgId = org.id;\r\n\t\tconst accessRecord = idmData.access\r\n\t\t\t.find(a => a[_pid].toUpperCase() === productIdUpper && a[_oid] === orgId);\r\n\r\n\t\tsetCurrentOrgInSharedState(orgId, function () {\r\n\t\t\tif (accessRecord == null) {\r\n\t\t\t\treturn startAppOrgPicker(idmData, {orgId});\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.href = accessRecord.Url;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n};\r\n\r\n// shorthand get\r\nexport const get = function (url, cb, headers = []) {\r\n\t// if the user's session has expired, bail out!\r\n\tif (sessionHasExpired()) { return; }\r\n\tdoCall('GET', url, null, createResponseHandler(cb), [{\r\n\t\tkey: 'Authorization',\r\n\t\tvalue: `Bearer ${getBearerToken()}`\r\n\t}, {\r\n\t\tkey: 'Accept',\r\n\t\tvalue: '*/*'\r\n\t}].concat(headers));\r\n};\r\n\r\n// shorthand post\r\nexport const post = function (url, data, cb = function () {}, headers = []) {\r\n\t// if the user's session has expired, bail out!\r\n\tif (sessionHasExpired()) { return; }\r\n\tdoCall('POST', url, JSON.stringify(data), createResponseHandler(cb), [{\r\n\t\tkey: 'Authorization',\r\n\t\tvalue: `Bearer ${getBearerToken()}`\r\n\t}, {\r\n\t\tkey: 'Content-Type',\r\n\t\tvalue: 'application/json'\r\n\t}].concat(headers));\r\n};\r\n\r\n// shorthand put\r\nexport const put = function (url, data, cb, headers = []) {\r\n\t// if the user's session has expired, bail out!\r\n\tif (sessionHasExpired()) { return; }\r\n\tdoCall('PUT', url, JSON.stringify(data), createResponseHandler(cb), [{\r\n\t\tkey: 'Authorization',\r\n\t\tvalue: `Bearer ${getBearerToken()}`\r\n\t}, {\r\n\t\tkey: 'Accept',\r\n\t\tvalue: '*/*'\r\n\t}].concat(headers));\r\n};\r\n\r\n// shorthand patch\r\nexport const patch = function (url, data, cb, headers = []) {\r\n\t// if the user's session has expired, bail out!\r\n\tif (sessionHasExpired()) { return; }\r\n\tdoCall('PATCH', url, JSON.stringify(data), createResponseHandler(cb), [{\r\n\t\tkey: 'Authorization',\r\n\t\tvalue: `Bearer ${getBearerToken()}`\r\n\t}, {\r\n\t\tkey: 'Accept',\r\n\t\tvalue: '*/*'\r\n\t}].concat(headers));\r\n};\r\n\r\n// shorthand delete\r\nexport const del = function (url, cb = function () {}, headers = []) {\r\n\t// if the user's session has expired, bail out!\r\n\tif (sessionHasExpired()) { return; }\r\n\r\n\tdoCall('DELETE', url, null, createResponseHandler(cb), [{\r\n\t\tkey: 'Authorization',\r\n\t\tvalue: `Bearer ${getBearerToken()}`\r\n\t}, {\r\n\t\tkey: 'Content-Type',\r\n\t\tvalue: 'application/json'\r\n\t}].concat(headers));\r\n};\r\n\r\nexport const getAccessToken = getBearerToken;\r\n\r\nexport const setCurrentOrgInSharedState = function (currentOrg, cb) {\r\n\tconst {idGatewayUrl} = store.get('idm');\r\n\tpost(`${idGatewayUrl}/sessions/state`, {currentOrg}, cb);\r\n};\r\n\r\nfunction createResponseHandler(cb = () => {}) {\r\n\treturn function (statusCode, responseText, headersStr, statusText) {\r\n\t\t// handle error state\r\n\t\tif (400 <= statusCode && statusCode <= 500) {\r\n\t\t\tcb(null);\r\n\t\t\tthrow Error(statusText);\r\n\t\t}\r\n\t\tif (responseText && responseText.length) {\r\n\t\t\tcb(JSON.parse(responseText));\r\n\t\t} else {\r\n\t\t\tcb();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction sessionHasExpired() {\r\n\t// if we could not get the token, assume the user's session has expired\r\n\tif (getBearerToken() == null) {\r\n\t\t// side effect!!!!!\r\n\t\tstore.set('session-timeout', {timer: 0});\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\n// remove extra access records that share the same OrgId and ProductId\r\n// these are found in users that have multiple \"roles\" for a product\r\nfunction filterDupProductAndOrgRecords (val, idx, arr) {\r\n\treturn arr.findIndex(a => a[_oid] === val[_oid] && a[_pid] === val[_pid]) === idx;\r\n}\r\n\r\nfunction buildOrgSwitcherData(idmData) {\r\n\tconst {userContext} = idmData;\r\n\r\n\tif (userContext[_oid] == null || userContext.Internal === true) {\r\n\t\treturn { currentOrg: '', orgs: [] };\r\n\t}\r\n\r\n\treturn {\r\n\t\tcurrentOrg: idmData.userContext[_oid].toString(),\r\n\t\torgs: idmData.access\r\n\t\t\t.filter(a => !a.Disabled) // remove disabled\r\n\t\t\t.map(a => a[_oid]) // make an array of primitives\r\n\t\t\t.filter((v, i, a) => a.indexOf(v) === i) // so we can remove dupes\r\n\t\t\t.map(oId => { // then rebuild with id and name\r\n\t\t\t\tconst {\r\n\t\t\t\t\tOrganizationId,\r\n\t\t\t\t\tOrganizationName\r\n\t\t\t\t} = idmData.access.find(a => a[_oid] === oId);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: OrganizationId.toString(),\r\n\t\t\t\t\tname: OrganizationName\r\n\t\t\t\t};\r\n\t\t\t})\r\n\t};\r\n}\r\n\r\nfunction buildAppSwitcherData(idmData) {\r\n\tconst {userContext} = idmData;\r\n\r\n\t// if this is an internal app, setup the app switcher\r\n\tif (userContext.Internal === true) {\r\n\t\treturn {\r\n\t\t\tcurrentApp: userContext.ProductId,\r\n\t\t\tapps: [{\r\n\t\t\t\tid: userContext.ProductId,\r\n\t\t\t\tname: userContext.ProductName\r\n\t\t\t}]\r\n\t\t};\r\n\t}\r\n\r\n\tif (userContext[_oid] == null) {\r\n\t\treturn { currentApp: '', apps: [] };\r\n\t}\r\n\r\n\tconst currentOrgId = idmData.userContext[_oid].toString();\r\n\treturn {\r\n\t\tcurrentApp: idmData.userContext[_pid].toUpperCase(),\r\n\t\tapps: idmData.access\r\n\t\t\t.filter(a => !a.Disabled) // remove disabled\r\n\t\t\t.filter(a => a[_oid].toString() === currentOrgId)\r\n\t\t\t.filter(function(a, idx, arr) {\r\n\t\t\t\treturn arr.findIndex(a2 => a2[_pid].toUpperCase() === a[_pid].toUpperCase()) === idx;\r\n\t\t\t})\r\n\t\t\t.map(a => { // then rebuild with id and name\r\n\t\t\t\tconst { ProductId, ProductName } = a;\r\n\t\t\t\tvar url = a.Url;\r\n\t\t\t\treturn { id: ProductId.toUpperCase(), name: ProductName, url, legacyName: a.ProductLegacyName };\r\n\t\t\t})\r\n\t};\r\n}\r\n\r\nfunction updateCurrentOrgInSharedState() {\r\n\tconst idmData = store.get('idm-data');\r\n\tsetCurrentOrgInSharedState(idmData.userContext[_oid]);\r\n}\r\n\r\nfunction getBearerToken() {\r\n\tconst idmCfg = store.get('idm');\r\n\t// handle old accessToken prop and provide deprecation message\r\n\tif (idmCfg.accessToken == null && typeof idmCfg.getAccessToken === 'function') {\r\n\t\treturn idmCfg.getAccessToken();\r\n\t} else {\r\n\t\t/* eslint-disable no-console */\r\n\t\tif (console && console.error) {\r\n\t\t\tconsole.error('DEPRECATED! sidekick.store: idm.accessToken is deprecated, please provide a getAccessToken function that returns the current, valid, idm access token');\r\n\t\t}\r\n\t\t/* eslint-enable no-console */\r\n\t\treturn idmCfg.accessToken;\r\n\t}\r\n}\r\n\r\nfunction setPrefLeftNavExpanded(prefLeftNavExpanded, cb) {\r\n\tconst {idGatewayUrl} = store.get('idm');\r\n\tpost(`${idGatewayUrl}/sessions/state`, {prefLeftNavExpanded}, cb);\r\n}\r\n","import * as events from '../../util/event-bus';\r\nimport * as store from '../../util/store';\r\nimport * as env from '../../util/env';\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as persist from '../../util/persistence';\r\nimport { toCamelCase } from '../../util/string-helpers';\r\nimport { glean } from '../../util/object-helpers';\r\nimport { isUrlUiModule } from '../../util/asset-loader';\r\nimport { handleVendorNavItemClick } from '../../util/vendorSSO-helpers';\r\nimport { getAccessToken } from '../../util/idm-helpers';\r\n\r\nlet httpGet = null;\r\nlet idmData = null;\r\nlet featureFlagsCC = null;\r\nlet i18n = null;\r\nlet elem = null;\r\nlet canViewOthers = null;\r\n//Product ids of the apps for which `WageStream` access is provided\r\nconst WHITELISTED_WAGESTREAM_PRODUCTS = ['ABSMGMTSTAGE', 'ABSMGMT'];\r\n\r\n// get the token and idmData from the sidekick, store in local vars\r\nevents.once('token-ready', ({ get }) => { httpGet = get; makePlatformNav(); }, { greedy: true });\r\nevents.once('view-others-permissions-checked', viewOthers => { canViewOthers = viewOthers; makePlatformNav(); }, { greedy: true });\r\nevents.once('feature-flags-ready-cc', flagsSvc => { featureFlagsCC = flagsSvc; makePlatformNav(); }, { greedy: true });\r\nstore.onValueOnce('idm-data', _idmData_ => { idmData = _idmData_; makePlatformNav(); });\r\n// wait for nav component to send us the translations service instance\r\nexport default (_elem, _i18n) => { i18n = _i18n; elem = _elem; makePlatformNav(); };\r\n\r\n// called multiple times but doesn't truly execute until all data is available (like Promise.all())\r\nfunction makePlatformNav() {\r\n\t// if we don't have all the data we need yet, wait till we do\r\n\tif (httpGet == null) { return; }\r\n\tif (canViewOthers == null) { return; }\r\n\tif (featureFlagsCC == null) { return; }\r\n\tif (idmData == null) { return; }\r\n\tif (i18n == null) { return; }\r\n\r\n\tconst automationNoPlatformNav = sessionStorage.getItem('automation-no-platform-nav') === 'true';\r\n\tif (automationNoPlatformNav) { return; }\r\n\r\n\tevents.on('_location.path-change', () => dom.rAF(() => {\r\n\t\tconst platformHasHighlight = elem.find('.sk--platform-menu.highlight').length > 0;\r\n\t\telem.toggleClass('sk--platform-has-highlight', platformHasHighlight);\r\n\t}));\r\n\r\n\t// locate environment specific urls\r\n\tconst flInternalProducts = store.get('fl-internal-product-ids') || [];\r\n\tconst idm = store.get('idm');\r\n\tlet envName = env.environmentFromIdmGatewayUrl(idm.idGatewayUrl);\r\n\tif (idm.product === 'FCQA') { envName = 'qa'; }\r\n\tconst envValues = env[envName];\r\n\tconst { ecSand, ssBaseUrl, dataExporterBaseUrl, vendorSSOApiUrl, rubricDesignerUrl, permissionServiceBaseUrl } = envValues;\r\n\r\n\tconst { productId } = idmData;\r\n\tconst pId = env.productIdFromMap(productId, envValues.productIdMap);\r\n\r\n\t// bailout if this is an internal product\r\n\tif (flInternalProducts.includes(pId)) { return; }\r\n\r\n\tconst urlIsUiModule = isUrlUiModule(window.location.href);\r\n\tconst orgId = glean(idmData, x => x.userContext.OrganizationId, '');\r\n\r\n\tconst idmAdministrator = idmData.roles.includes('IdmAdministrator');\r\n\tconst platPermissionToExclude = [\r\n\t\t'viewDownloadsMenuItem',\r\n\t\t'viewUserDownloads',\r\n\t];\r\n\r\n\t// the full extended nav (pre-permissions)\r\n\tconst platformNavAll = [\r\n\t\t{\r\n\t\t\ttitle: i18n('System Configuration'),\r\n\t\t\ticon: 'fa-li-settings-sliders',\r\n\t\t\trouteMatcher: [`^/${pId}-useraccess`],\r\n\t\t\tchildren: [\r\n\t\t\t\t// {\r\n\t\t\t\t// title: i18n('Manage User Access'),\r\n\t\t\t\t// url: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-useraccess/`,\r\n\t\t\t\t// visible: hasPermittedAction('users', 'view')\r\n\t\t\t\t// }\r\n\t\t\t]\r\n\t\t}, {\r\n\t\t\ttitle: i18n('Data Exporter'),\r\n\t\t\ticon: 'fa-nav-cloud-download',\r\n\t\t\turl: `${dataExporterBaseUrl}/${pId}/list/`,\r\n\t\t\trouteMatcher: [`${dataExporterBaseUrl}/${pId}/.*$`],\r\n\t\t\tvisible: ({ flagsCC, permittedActions }) => {\r\n\t\t\t\treturn flagsCC.checkState('plat_data_exporter').then((status) => {\r\n\t\t\t\t\tif (status) {\r\n\t\t\t\t\t\tconst dataImportActions = permittedActions['dataImports'];\r\n\t\t\t\t\t\treturn (dataImportActions && dataImportActions.includes('platformDataExport')) || idmAdministrator;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\ttitle: i18n('Resource Library'),\r\n\t\t\ticon: 'fa-li-hand-papers',\r\n\t\t\trouteMatcher: [`^/${pId}-resource-library`],\r\n\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('sk_resource_library_sidenav_update'),\r\n\t\t\t// EXAMPLE VISIBLE FUNCTIONS\r\n\t\t\t// visible: ({permittedActions}) => permittedActions['groupName'].includes('itemName'),\r\n\t\t\tchildren: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: i18n('Library'),\r\n\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Browse Library'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/library`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/library`,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('My Groups'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/groups`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/groups`,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('My Resource History'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/history`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/history`,\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: i18n('Administration'),\r\n\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('My Organization Resources'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/my-org-resources`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/my-org-resources`,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('My Resources'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/my-resources`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/my-resources`,\r\n\t\t\t\t\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('pg_rl_user_upload'),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Collaborative Video Rubrics'),\r\n\t\t\t\t\t\t\trouteMatcher: [`${rubricDesignerUrl}/?productId=${pId}`],\r\n\t\t\t\t\t\t\turl: `${rubricDesignerUrl}/?productId=${pId}`\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Learning Designer Admin'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/admin/learning-designer`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/admin/learning-designer`,\r\n\t\t\t\t\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('pg_rl_learning_designer'),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Reports'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/admin/reports`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/admin/reports`,\r\n\t\t\t\t\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('pg_rl_reports'),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Manage Content Curator'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/manage-privileges`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/manage-privileges`,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Micro-Credential Assessor Tool'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-resource-library/mc-assessor`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-resource-library/mc-assessor`,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t},\r\n\t\t{\r\n\t\t\ttitle: i18n('User Configuration'),\r\n\t\t\ticon: 'fa-li-users',\r\n\t\t\trouteMatcher: [`${permissionServiceBaseUrl}`],\r\n\t\t\tvisible: ({ permittedActions }) => {\r\n\t\t\t\tif (envName !== 'prod') {\r\n\t\t\t\t\tconst allIncludedAction = permittedActions[\r\n\t\t\t\t\t\t'dataImports'\r\n\t\t\t\t\t].filter((key) => !platPermissionToExclude.includes(key));\r\n\t\t\t\t\tlet authorized = allIncludedAction.length > 0;\r\n\t\t\t\t\treturn idmAdministrator || authorized;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tchildren: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: i18n('Frontline User Permissions'),\r\n\t\t\t\t\trouteMatcher: [`${permissionServiceBaseUrl}/${pId}/.*$`],\r\n\t\t\t\t\turl: `${permissionServiceBaseUrl}/${pId}/userGroups`,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t}, {\r\n\r\n\t\t\ttitle: i18n('Core Configuration'),\r\n\t\t\ticon: 'fa-nav-cog',\r\n\t\t\trouteMatcher: [`^/${pId}-settings/permissions/profiles/all`, `^/${pId}-settings/hcm-core-config/*`],\r\n\t\t\tvisible: ({ flagsCC }) => {\r\n\t\t\t\treturn flagsCC.checkState('hcm_core_configuration').then(coreConfigFlagStatus => coreConfigFlagStatus);\r\n\t\t\t},\r\n\t\t\tchildren: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: i18n('Organization & Access'),\r\n\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('HCM Permissions'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-settings/permissions/.*$`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-settings/permissions/profiles/all`,\r\n\t\t\t\t\t\t\tvisible: ({ permittedActions }) => {\r\n\t\t\t\t\t\t\t\tconst permissionProfilesActionList = 'permissionProfiles';\r\n\t\t\t\t\t\t\t\tconst validPermissionProfileActions = ['create', 'edit', 'delete'];\r\n\t\t\t\t\t\t\t\treturn validPermissionProfileActions.some(action => permittedActions[permissionProfilesActionList].includes(action));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t}, {\r\n\t\t\t\t\ttitle: i18n('HCM Core Configuration'),\r\n\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttitle: i18n('Sites/Locations'),\r\n\t\t\t\t\t\t\trouteMatcher: [`^/${pId}-settings/hcm-core-config/sites$`],\r\n\t\t\t\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-settings/hcm-core-config/sites`,\r\n\t\t\t\t\t\t\tvisible: ({ permittedActions }) => {\r\n\t\t\t\t\t\t\t\tconst permissionProfilesActionList = 'locations';\r\n\t\t\t\t\t\t\t\tconst validPermissionProfileActions = ['create', 'edit', 'delete'];\r\n\t\t\t\t\t\t\t\treturn validPermissionProfileActions.some(action => permittedActions[permissionProfilesActionList].includes(action));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t];\r\n\r\n\tlet employee;\r\n\tif (idmData.identities) {\r\n\t\temployee = idmData.identities.find(x => x.Type === 'employee' || x.Type === 'EmployeeQA');\r\n\t}\r\n\r\n\tif (employee || idmAdministrator) {\r\n\r\n\t\tif (idmAdministrator || canViewOthers) {\r\n\t\t\tplatformNavAll.unshift({\r\n\t\t\t\ttitle: i18n('Staff Directory'),\r\n\t\t\t\ticon: 'fa-nav-users',\r\n\t\t\t\trouteMatcher: [`^\\/${pId}-employee\\/(?!(?:reports)).*$`],\r\n\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-employee/`,\r\n\t\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('global_fc_shared_employee')\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tplatformNavAll.unshift({\r\n\t\t\t\ttitle: i18n('My Staff Profile'),\r\n\t\t\t\ticon: 'fa-nav-user-circle',\r\n\t\t\t\trouteMatcher: [`^/${pId}-employee/record/.*$`],\r\n\t\t\t\turl: `${urlIsUiModule ? '' : ssBaseUrl}/${pId}-employee/record/${employee.Id}/personal`,\r\n\t\t\t\tvisible: ({ flagsCC }) => flagsCC.checkState('global_fc_shared_employee')\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function determines whether user has access to the `WageStream` menu item.\r\n\t * It fetches the role types(CSV) from configcat using feature key `idm_role_types_for_partners`\r\n\t * and matches with `identities` and `roles` from Sidekick store of `idm-data` and `roles`.\r\n\t * It also matches the whitelisted apps for which the `WageStream` access is provided using\r\n\t * `WHITELISTED_WAGESTREAM_PRODUCTS` defined above\r\n\t */\r\n\tstore.onValue('roles', (rolesData) => {\r\n\t\tfeatureFlagsCC.getValue('idm_role_types_for_partners').then((roleTypes) => {\r\n\t\t\tconst isVendorAccessible = roleTypes.split(',')\r\n\t\t\t\t.some((roleType) => idmData.identities\r\n\t\t\t\t\t&& idmData.identities.find((identity) => identity.Type === roleType\r\n\t\t\t\t\t\t&& rolesData.roles.some((role) => role.id === identity.Id)));\r\n\t\t\tif (isVendorAccessible && WHITELISTED_WAGESTREAM_PRODUCTS.includes(idmData.productId)) {\r\n\t\t\t\tplatformNavAll.push({\r\n\t\t\t\t\ttitle: 'Wagestream',\r\n\t\t\t\t\ticon: 'fa-nav-wagestream',\r\n\t\t\t\t\tonClick: () => handleVendorNavItemClick('wagestream', orgId, idm),\r\n\t\t\t\t\tvisible: ({ flagsCC }) => {\r\n\t\t\t\t\t\treturn flagsCC.checkState('idm_show_ui_partners').then((status) => {\r\n\t\t\t\t\t\t\tif (status) {\r\n\t\t\t\t\t\t\t\tconst storedHasAccess = persist.get('wagestream-access');\r\n\t\t\t\t\t\t\t\tconst currentAccessToken = getAccessToken();\r\n\t\t\t\t\t\t\t\tif (!storedHasAccess || currentAccessToken !== storedHasAccess.token) {\r\n\t\t\t\t\t\t\t\t\treturn new Promise((resolve) => {\r\n\t\t\t\t\t\t\t\t\t\thttpGet(`${vendorSSOApiUrl}/api/v1/partners/wagestream/userAccess?orgId=${orgId}`, function (res) {\r\n\t\t\t\t\t\t\t\t\t\t\tpersist.set('wagestream-access', { token: currentAccessToken, hasAccess: !!(res && res.hasAccess) }, { type: 'local', expires: 1440 });\r\n\t\t\t\t\t\t\t\t\t\t\tresolve(!!(res && res.hasAccess));\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn storedHasAccess.hasAccess;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t// get this users permitted actions so that we can personalize the extended nav\r\n\thttpGet(`${ecSand}/PermissionAPI/api/ActionPermissions?organizationId=${orgId}`, function (res) {\r\n\t\tconst permittedActions = glean(res, x => x.data.attributes.objects, [])\r\n\t\t\t.reduce((acc, o) => Object.assign(acc, { [o.type]: o.permittedActions.map(act => toCamelCase(act)) }), {});\r\n\r\n\t\t// An array to hold the results of checkState promise along with the menu item associated with it\r\n\t\tconst visiblePromises = [];\r\n\r\n\t\t// Resolves the checkState functions by calling item.visible recursively and storing each promise\r\n\t\t// with the item in an object into the visiblePromises array above\r\n\t\tconst resolveMenuAccess = menu => {\r\n\t\t\tmenu.forEach((item, idx) => {\r\n\t\t\t\tif (item.visible) {\r\n\t\t\t\t\tconst visiblePromise = item.visible({\r\n\t\t\t\t\t\tpermittedActions,\r\n\t\t\t\t\t\tflagsCC: featureFlagsCC\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvisiblePromises.push({\r\n\t\t\t\t\t\titem,\r\n\t\t\t\t\t\tvisiblePromise\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (item.children) {\r\n\t\t\t\t\tresolveMenuAccess(item.children);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t// remove everything this user doesn't have access to, using the hasVisibility that was set\r\n\t\t// to the resolved value of the checkState promise\r\n\t\tconst sanitizeMenu = menu => {\r\n\t\t\tmenu.forEach((item, idx) => {\r\n\t\t\t\t// if this item has a permission function that returns false (no-access) we\r\n\t\t\t\t// should remove the item, otherwise, leave it alone\r\n\t\t\t\tconst hasAccessToItem = glean(item, i => (i.visible == null || i.hasVisibility === true), false);\r\n\r\n\t\t\t\tif (!hasAccessToItem) {\r\n\t\t\t\t\tdelete menu[idx];\r\n\t\t\t\t} else if (item.children) {\r\n\t\t\t\t\t// if this item has children, sanitize the submenu\r\n\t\t\t\t\titem.children = sanitizeMenu(item.children);\r\n\r\n\t\t\t\t\t// if all the children have been removed, there's no need to keep the parent\r\n\t\t\t\t\tif (item.children.length === 0) {\r\n\t\t\t\t\t\tdelete menu[idx];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// return the menu with deleted items removed\r\n\t\t\treturn menu.filter(item => item !== undefined);\r\n\t\t};\r\n\r\n\t\t// Gather all of the promises\r\n\t\tresolveMenuAccess(platformNavAll);\r\n\r\n\t\t// Wait until all checkState promises have resolved\r\n\t\tPromise.all(visiblePromises.map(vp => vp.visiblePromise)).then((visibleSettings) => {\r\n\t\t\t// For each item that had a promise, set hasVisibility to the resolved value of the checkState promise\r\n\t\t\tvisiblePromises.forEach((vp, idx) => {\r\n\t\t\t\tvp.item.hasVisibility = visibleSettings[idx];\r\n\t\t\t});\r\n\t\t}).then(() => {\r\n\t\t\t// Finally sanitize the menu and set it to the store\r\n\t\t\tconst personalizedNav = sanitizeMenu(platformNavAll);\r\n\t\t\tstore.set('_platform-nav-items', personalizedNav);\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// function hasPermittedAction(group, item) {\r\n// return ({permittedActions}) => permittedActions[group].includes(item);\r\n// }\r\n","/**\r\n* @module Sidekick.KeyPressHelper\r\n* @memberOf Sidekick\r\n*/\r\n\r\nconst keys = {\r\n\t' ': 32, // space\r\n\t'arrowdown': 40,\r\n\t'arrowleft': 37,\r\n\t'arrowright': 39,\r\n\t'arrowup': 38,\r\n\t'enter': 13,\r\n\t'escape': 27,\r\n\t'tab': 9,\r\n};\r\n\r\n/**\r\n * Determines if the specified key was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if the specified key was pressed. False otherwise\r\n */\r\nexport function isKey(evt, keyName, which) {\r\n\tif (evt == null) { return false; }\r\n\r\n\tconst keyPressed = evt.key && evt.key.toLowerCase() === keyName;\r\n\tconst whichPressed = evt.which === which;\r\n\r\n\treturn keyPressed || whichPressed;\r\n}\r\n\r\n/**\r\n * Utility function that maps a key name to a keyCode value before passing the event to isKey\r\n *\r\n * @param {Object} evt\r\n * @param {String} keyName\r\n *\r\n * @return {Boolean}\r\n */\r\nfunction checkKey(evt, keyName) {\r\n\treturn isKey(evt, keyName, keys[keyName]);\r\n}\r\n\r\n/**\r\n * Determines if ENTER was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if ENTER was pressed. False otherwise\r\n */\r\nexport function isEnter(evt) {\r\n\treturn checkKey(evt, 'enter');\r\n}\r\n\r\n/**\r\n * Determines if ESCAPE was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if ESCAPE was pressed. False otherwise\r\n */\r\nexport function isEscape(evt) {\r\n\treturn checkKey(evt, 'escape');\r\n}\r\n\r\n/**\r\n * Determines if TAB was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if TAB was pressed. False otherwise\r\n */\r\nexport function isTab(evt) {\r\n\treturn checkKey(evt, 'tab');\r\n}\r\n\r\n/**\r\n * Determines if LEFT was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if LEFT was pressed. False otherwise\r\n */\r\nexport function isLeft(evt) {\r\n\treturn checkKey(evt, 'arrowleft');\r\n}\r\n\r\n/**\r\n * Determines if UP was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if UP was pressed. False otherwise\r\n */\r\nexport function isUp(evt) {\r\n\treturn checkKey(evt, 'arrowup');\r\n}\r\n\r\n/**\r\n * Determines if RIGHT was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if RIGHT was pressed. False otherwise\r\n */\r\nexport function isRight(evt) {\r\n\treturn checkKey(evt, 'arrowright');\r\n}\r\n\r\n/**\r\n * Determines if DOWN was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if DOWN was pressed. False otherwise\r\n */\r\nexport function isDown(evt) {\r\n\treturn checkKey(evt, 'arrowdown');\r\n}\r\n\r\n/**\r\n * Determines if SPACE was pressed\r\n *\r\n * @param {Object} evt\r\n *\r\n * @return {Boolean} Returns true if SPACE was pressed. False otherwise\r\n */\r\nexport function isSpace(evt) {\r\n\treturn checkKey(evt, ' ');\r\n}\r\n","import * as dom from './easy-dom';\r\nimport * as events from './event-bus';\r\nimport * as store from './store';\r\nimport * as keyPress from './key-press-helpers';\r\n\r\n/**\r\n * @module Sidekick.ComponentCommon\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Sets up common on handlers for a menu item\r\n * @function cmptMenuItem\r\n * @instance\r\n * @param {Element} domCmpt\r\n * @param {Element} domHandle\r\n * @param {Element} mItem\r\n */\r\nexport function cmptMenuItem(domCmpt, domHandle, domMenuList, domMenuItem) {\r\n\tdomMenuItem.find('[role=menuitem]').forEach(domMenuItemLink => {\r\n\t\tdomMenuItemLink.on('focus', evt => {\r\n\t\t\tdomMenuItemLink.attr('aria-selected', true);\r\n\t\t});\r\n\r\n\t\tdomMenuItemLink.on('blur', evt => {\r\n\t\t\tdomMenuItemLink.attr('aria-selected', false);\r\n\t\t});\r\n\t});\r\n\r\n\tdomMenuItem.on('keydown', evt => {\r\n\t\tlet prevDef = false;\r\n\r\n\t\tswitch(true) {\r\n\t\t\tcase keyPress.isTab(evt):\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyPress.isLeft(evt):\r\n\t\t\tcase keyPress.isRight(evt):\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyPress.isUp(evt):\r\n\t\t\tcase keyPress.isDown(evt):\r\n\t\t\t\tconst menuItemElems = Array.prototype.slice.call(domMenuList._.children);\r\n\t\t\t\tconst menuItemIdx = menuItemElems.indexOf(domMenuItem._);\r\n\t\t\t\tif (menuItemIdx === (keyPress.isUp(evt) ? 0 : menuItemElems.length - 1)) {\r\n\t\t\t\t\tprevDef = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tconst nextIdx = menuItemIdx + (keyPress.isUp(evt) ? -1 : 1);\r\n\t\t\t\tconst nextElem = menuItemElems[nextIdx].querySelector('[role=menuitem]');\r\n\t\t\t\tnextElem.focus();\r\n\t\t\t\tevt.stopPropagation(); // override up/down handling at the menu level\r\n\t\t\t\tprevDef = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (prevDef) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Sets up common on handlers for a menu\r\n * @function cmptMenu\r\n * @instance\r\n * @param {Element} domCmpt\r\n * @param {Element} domHandle\r\n * @param {Element} domMenu\r\n */\r\nexport function cmptMenu(domCmpt, domHandle, domMenu) {\r\n\tfunction onClick(evt) {\r\n\t\tconst isOpen = domHandle.hasClass('ss-menu-open');\r\n\t\tevents.emit(`sk-menu-${isOpen ? 'close' : 'open'}`, domCmpt, evt);\r\n\t}\r\n\r\n\tdomCmpt.on('click', function (evt) {\r\n\t\tif (!domCmpt.hasClass('sk-no-click')) { evt.stopPropagation(); }\r\n\t});\r\n\tdomHandle.on('click', onClick);\r\n\tdomHandle.on('keydown', (evt) => {\r\n\t\tlet prevDef = false;\r\n\t\tswitch (true) {\r\n\t\t\tcase keyPress.isEnter(evt):\r\n\t\t\tcase keyPress.isSpace(evt):\r\n\t\t\tcase keyPress.isDown(evt):\r\n\t\t\tcase keyPress.isUp(evt):\r\n\t\t\t\tonClick(evt);\r\n\t\t\t\tprevDef = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (prevDef) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t});\r\n\tdomMenu.attr('tabindex', '-1');\r\n\tdomMenu.on('keydown', (evt) => {\r\n\t\tlet prevDef = false;\r\n\t\tswitch (true) {\r\n\t\t\tcase keyPress.isDown(evt):\r\n\t\t\tcase keyPress.isUp(evt):\r\n\t\t\t\tdomMenu\r\n\t\t\t\t\t.find('[role=menuitem]')\r\n\t\t\t\t\t.forEach((mItem, idx, menuItems) => {\r\n\t\t\t\t\t\tconst focusIdx = keyPress.isUp(evt) ? menuItems.length - 1 : 0;\r\n\t\t\t\t\t\tconst focusOrBlur = idx === focusIdx ? 'focus' : 'blur';\r\n\t\t\t\t\t\tmItem._[focusOrBlur]();\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyPress.isEscape(evt):\r\n\t\t\t\tevents.emit('sk-menu-close', domCmpt);\r\n\t\t\t\tdomHandle._.focus();\r\n\t\t\t\tprevDef = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (prevDef) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t});\r\n\tdom.element(window).on('blur', function () {\r\n\t\tif (document.activeElement != null && document.activeElement.tagName === 'IFRAME') {\r\n\t\t\tevents.emit('sk-menu-close', domCmpt);\r\n\t\t}\r\n\t});\r\n\tdom.element(document).on('click', () => events.emit('sk-menu-close', domCmpt));\r\n\r\n\t// handle open events\r\n\tevents.on('sk-menu-open', function (cmpt, evt) {\r\n\t\tif (cmpt !== domCmpt) {\r\n\t\t\t// if this was an open event for another menu, close me\r\n\t\t\tevents.emit('sk-menu-close', domCmpt);\r\n\t\t} else {\r\n\t\t\t// this was an open event for me, open me\r\n\t\t\tdomHandle.addClass('ss-menu-open');\r\n\t\t\tdomHandle.attr('aria-pressed', 'true');\r\n\t\t\tdomMenu.addClass('ss-menu-open');\r\n\t\t\tdomMenu.attr('aria-hidden', 'false');\r\n\r\n\t\t\tif (keyPress.isDown(evt) || keyPress.isUp(evt)) {\r\n\t\t\t\t// focus the appropriate menu item (the first item by default, or the\r\n\t\t\t\t// last item if the 'up' keyCode was emitted)\r\n\t\t\t\tdomMenu\r\n\t\t\t\t\t.find('[role=menuitem]')\r\n\t\t\t\t\t.forEach((mItem, idx, menuItems) => {\r\n\t\t\t\t\t\tconst focusIdx = keyPress.isUp(evt) ? menuItems.length - 1 : 0;\r\n\t\t\t\t\t\tconst willFocus = idx === focusIdx;\r\n\t\t\t\t\t\tmItem._[willFocus ? 'focus' : 'blur']();\r\n\t\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdomMenu._.focus();\r\n\t\t}\r\n\t});\r\n\r\n\t// handle close events\r\n\tevents.on('sk-menu-close', function (cmpt, external = true) {\r\n\t\t// if this close event was for another menu, ignore\r\n\t\tif (cmpt !== domCmpt) { return; }\r\n\t\t// close the menu\r\n\t\tdomHandle.removeClass('ss-menu-open');\r\n\t\tdomHandle.attr('aria-pressed', 'false');\r\n\t\tdomMenu.removeClass('ss-menu-open');\r\n\t\tdomMenu.attr('aria-hidden', 'true');\r\n\r\n\t\tconst menuItems = domMenu.find('[role=menuitem]');\r\n\t\tmenuItems.map(mItem => mItem.attr('aria-selected', false));\r\n\t});\r\n}\r\n\r\n/**\r\n * handle the clear button functionality for an sk-input element\r\n * @function cmptInputClear\r\n * @instance\r\n * @param {Element} domInput\r\n * @param {Element} domClearBtn\r\n * @param {Boolean} clearOnEscape - Adds an event handler to run when you press escape\r\n */\r\nexport function cmptInputClear(domInput, domClearBtn, clearOnEscape) {\r\n\t// toggle sk-hidden based on the content\r\n\tconst toggleClear = () => {\r\n\t\tdomClearBtn.toggleClass('sk-hidden', !domInput._.value.length);\r\n\t};\r\n\r\n\tdomInput.on('input', toggleClear);\r\n\tdomClearBtn.on('click', clear);\r\n\tif (clearOnEscape) {\r\n\t\tdomInput.on('keydown', clearOnEscapeCall);\r\n\t}\r\n\r\n\ttoggleClear();\r\n\r\n\tfunction clear() {\r\n\t\tdomInput._.value = '';\r\n\t\tdomInput._.focus();\r\n\t\ttoggleClear();\r\n\t}\r\n\r\n\tfunction clearOnEscapeCall(evt) {\r\n\t\t// bail out if this was not the ESCAPE key\r\n\t\tif (!keyPress.isEscape(evt)) { return; }\r\n\r\n\t\tclear();\r\n\t}\r\n}\r\n\r\nexport const queryStringObject = function () {\r\n\tconst raw = window.location.search;\r\n\tif (raw.length === 0) { return {}; }\r\n\tconst rawArr = raw.slice(1).split('&');\r\n\treturn rawArr.reduce(function (o, qs) {\r\n\t\tconst [key, value] = qs.split('=');\r\n\t\to[decodeURIComponent(key)] = decodeURIComponent(value);\r\n\t\treturn o;\r\n\t}, {});\r\n};\r\n\r\n///////\r\n// calculating and distribute the top bar extra width\r\n// to dynamic width elements\r\n//\r\nvar activityIndicatorWidth = 0;\r\nvar impersonationMode = false;\r\nconst staticElems = {};\r\nconst dynamicElems = {};\r\nconst staticWidthElemNames = ['app-switcher', 'search', 'help', 'notifications'];\r\nconst impStaticWidthElemNames = ['app-switcher', 'search'];\r\nconst dynamicWidthElemNames = ['user-info', 'org-switcher'];\r\nconst impDynamicWidthElemNames = ['impersonated-user', 'org-switcher'];\r\n\r\n/**\r\n * cmptDynamicWidth - registers a header component that should be dynamic\r\n * width and occupy as much space (max-width) as possible\r\n *\r\n * @param {EasyDomElement} elem - the element that should be dynamic\r\n * @param {String} text - the dynamic text content to use for measurements\r\n * @param {Number} adjustment - the px amount to add to measurement to compensate for padding\r\n */\r\nexport const cmptDynamicWidth = function (name, elem, text, adjustment = 0, font = 'normal 15px') {\r\n\tconst firstRegistration = dynamicElems[name] == null;\r\n\tdynamicElems[name] = {elem, text, adjustment, font};\r\n\r\n\t// if this elem is the user-info component and this is the first\r\n\t// time we see it being registered. start watching for role data\r\n\tif (name === 'user-info' && firstRegistration) { watchForRoles(); }\r\n\r\n\t// update our size calculations\r\n\tadjustDynamicWidthElements();\r\n};\r\n\r\n// re-calculate the measurements because adjustments have been made\r\nfunction adjustDynamicWidthElements() {\r\n\t// decide what elements could be on the screen based on if we are impersonating\r\n\tconst _staticWidthElemNames = (impersonationMode ? impStaticWidthElemNames : staticWidthElemNames);\r\n\tconst _dynamicWidthElemNames = (impersonationMode ? impDynamicWidthElemNames : dynamicWidthElemNames);\r\n\r\n\t// calculate the total width of all static elements on the screen\r\n\t// give the header an extra 43 pixels for impersonation mode to accommodate the X\r\n\tconst _totalStaticWidth = _staticWidthElemNames.reduce(function (total, elName) {\r\n\t\tconst elWidth = staticElems[elName] && parseFloat(staticElems[elName].css('width'));\r\n\t\treturn total + (elWidth || 0);\r\n\t}, (impersonationMode ? 48 : 5));\r\n\r\n\t// figure out what dyamic elements are on screen currently\r\n\tconst _dynamicWidthElems = _dynamicWidthElemNames\r\n\t\t.filter(elName => dynamicElems[elName] != null)\r\n\t\t.map(elName => dynamicElems[elName])\r\n\t\t.map(e => Object.assign({}, e, {width: measureText(e.text, e.font)}));\r\n\r\n\t// calculate the total width of all dymanic elements based on their text width\r\n\tconst _totalDynamicWidth = _dynamicWidthElems.reduce((t, e) => t + (e.width + e.adjustment), 0);\r\n\r\n\t// apply the corrent percent width calculation for each dynamic element\r\n\t_dynamicWidthElems.forEach(function (e) {\r\n\t\tconst _staticWidth = _totalStaticWidth + activityIndicatorWidth;\r\n\t\tconst widthPercent = Math.floor(((e.width + e.adjustment)/_totalDynamicWidth) * 100);\r\n\t\tconst itemPxReductionAmt = _staticWidth * (widthPercent / 100);\r\n\t\te.elem.css('max-width', `calc(${widthPercent}% - ${itemPxReductionAmt}px)`);\r\n\t});\r\n}\r\n\r\nconst drawCtx = document.createElement('canvas').getContext('2d');\r\n// measure how many px this text will take up\r\nfunction measureText(text, font = 'normal 15px') {\r\n\tconst fontFamily = `'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif`;\r\n\tdrawCtx.font = `${font} ${fontFamily}`;\r\n\treturn drawCtx.measureText(text).width;\r\n}\r\n\r\n// if we switch to or from impersonation mode, we should recalculate header space\r\nevents.on('_header.impersonation', function (impMode) {\r\n\timpersonationMode = impMode;\r\n\tadjustDynamicWidthElements();\r\n});\r\n\r\n// the activity-indicator doesn't initially take up space, but it requires\r\n// space when it is shown. hook into the visible events and re-adjust if\r\n// if shows up on the scene.\r\nevents.on(`_activity-indicator-initialized`, function (elem) {\r\n\tevents.on(`activity-indicator.visible`, function (visible) {\r\n\t\tif (visible) {\r\n\t\t\tactivityIndicatorWidth = parseFloat(elem.css('width')) + parseFloat(elem.css('margin-right'));\r\n\t\t} else {\r\n\t\t\tactivityIndicatorWidth = 0;\r\n\t\t}\r\n\t\tadjustDynamicWidthElements();\r\n\t}, true);\r\n}, true);\r\n\r\n// if roles are filled, we need to make sure the role name is not longer\r\n// than the user's name, if it is, we need to use it for calculations instead\r\nfunction watchForRoles() {\r\n\tstore.onValue('roles', function (data) {\r\n\t\tconst roleName = data.roles.find(r => r.id === data.currentRole).name;\r\n\t\tconst userInfo = dynamicElems['user-info'];\r\n\t\tconst userNameWidth = measureText(userInfo.text, userInfo.font);\r\n\t\tconst roleFont = '600 13px';\r\n\t\tconst roleWidth = measureText(roleName, roleFont);\r\n\r\n\t\tif (roleWidth > userNameWidth) {\r\n\t\t\tuserInfo.text = roleName;\r\n\t\t\tuserInfo.font = roleFont;\r\n\t\t}\r\n\r\n\t\tadjustDynamicWidthElements();\r\n\t});\r\n}\r\n\r\n// listen to other header elements and readjust when they show up\r\nstaticWidthElemNames.forEach(function (name) {\r\n\tevents.on(`_${name}-initialized`, elem => addStaticWidthElem(name, elem), true);\r\n});\r\n\r\nfunction addStaticWidthElem(name, elem) {\r\n\tstaticElems[name] = elem;\r\n\tadjustDynamicWidthElements();\r\n}\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as store from '../../util/store';\r\nimport { cmptMenu, cmptMenuItem } from '../../util/cmpt-common-features';\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Displays articles, and helper blocks\r\n * @class Sidekick.Help\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n * @emits header.help.article.click - Thrown when an article is clicked that doesn't have a url\r\n * @emits header.help.block.click - Thrown when an block is clicked that doesn't have a url\r\n * @example\r\n * articles: List of articles pertaining to the app\r\n * blocks: List of other links to different sections of the app.\r\n * title: Text to show the user\r\n * icon: Icon to show the user\r\n * url: Optional. If passed article/block will open a new window to that url. If omitted then\r\n * \theader.help.article.click/header.help.block.click will be thrown and the item will be the article/block. Extra\r\n * \tparams can optionally be added to the item when building the nav menu and they will be included back to you when the\r\n * \tnav item is clicked.\r\n * {\r\n\t'articles': [{\r\n\t\t'title': 'Getting Started with Frontline Central',\r\n\t\t'url': '/getting_started',\r\n\t\t'icon': 'file-text'\r\n\t}],\r\n\t'blocks': [{\r\n\t\t'title': 'Learn more about Frontline Central',\r\n\t\t'url': 'http://help1.frontlinek12.com/?b_id=13067',\r\n\t\t'icon': 'learning_center_logo'\r\n\t}]\r\n}\r\n */\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\tconst { responsiveTopNav } = store.get('sk-config');\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst [domButton] = elem.find('.control');\r\n\tconst [domMenu] = elem.find('.menu');\r\n\tconst [domBlocks] = elem.find('.blocks');\r\n\tconst [domArticles] = elem.find('.articles');\r\n\tconst domButtonElements = document.querySelectorAll('.control');\r\n\tconst [domNavButton] = elem.find('.control-responsive');\r\n\tconst [domMenuMobile] = elem.find('.menu-mobile');\r\n\tconst [domBlocksMobile] = elem.find('.blocks-mobile');\r\n\tconst [domArticlesMobile] = elem.find('.articles-mobile');\r\n\r\n\tif (responsiveTopNav) {\r\n\t\tdomButtonElements.forEach((domButtonElement) => {\r\n\t\t\tdomButtonElement.classList.add('sk-help-responsive');\r\n\t\t});\r\n\r\n\t\tif (attrs.role === 'navitem') {\r\n\t\t\tdomNavButton.css('display', 'block');\r\n\t\t\tdomNavButton.on('click', (evt) => {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tif (domMenuMobile.css('display') === 'none') {\r\n\t\t\t\t\tdomMenuMobile.css('display', 'block');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdomMenuMobile.css('display', 'none');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t// initialize with default values\r\n\tlet urlTemplateVars = getUrlTemplateVars();\r\n\r\n\t/////\r\n\t// handle initial state and data changes\r\n\t//\r\n\tupdateHelpData(ctx);\r\n\tstore.onValue('help', updateHelpData);\r\n\r\n\tstore.onValue('idm-data', (idmData) => {\r\n\t\turlTemplateVars = getUrlTemplateVars(idmData);\r\n\t\tupdateHelpData(ctx);\r\n\t});\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tcmptMenu(elem, domButton, domMenu);\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\t/**\r\n\t * Updates the display with the new data being passed in.\r\n\t * @param {Object} newCtx - New context object with the new data.\r\n\t */\r\n\tfunction updateHelpData(newCtx) {\r\n\t\t// update our context object\r\n\t\tif (ctx !== newCtx) {\r\n\t\t\tctx = newCtx;\r\n\t\t}\r\n\r\n\t\t// articles\r\n\t\tvar articles = ctx.articles;\r\n\t\tif (articles == null || articles.length === 0) {\r\n\t\t\t// no articles to display\r\n\t\t\tdomArticles.css('display', 'none');\r\n\t\t\tdomArticlesMobile.css('display', 'none');\r\n\t\t} else {\r\n\t\t\tdomArticles.css('display', 'block');\r\n\t\t\tdomArticlesMobile.css('display', 'block');\r\n\t\t\t// process the list of articles to display\r\n\t\t\t// max 3 articles\r\n\t\t\tconst articlesToDisplay = articles.slice(0, 3);\r\n\r\n\t\t\tdomArticles.children(\r\n\t\t\t\tarticlesToDisplay.map((article) =>\r\n\t\t\t\t\tcreateArticleElement(\r\n\t\t\t\t\t\tarticle,\r\n\t\t\t\t\t\turlTemplateVars,\r\n\t\t\t\t\t\telem,\r\n\t\t\t\t\t\tdomButton,\r\n\t\t\t\t\t\tdomArticles\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t\tdomArticlesMobile.children(\r\n\t\t\t\tarticlesToDisplay.map((article) =>\r\n\t\t\t\t\tcreateArticleElement(\r\n\t\t\t\t\t\tarticle,\r\n\t\t\t\t\t\turlTemplateVars,\r\n\t\t\t\t\t\telem,\r\n\t\t\t\t\t\tdomNavButton,\r\n\t\t\t\t\t\tdomArticles\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// blocks\r\n\t\tvar blocks = ctx.blocks;\r\n\t\tif (blocks == null || blocks.length === 0) {\r\n\t\t\tdomBlocks.css('display', 'none');\r\n\t\t\tdomBlocksMobile.css('display', 'none');\r\n\t\t} else {\r\n\t\t\tdomBlocks.css('display', 'block');\r\n\t\t\tdomBlocksMobile.css('display', 'block');\r\n\t\t\t// process the list of blocks to display\r\n\t\t\tdomBlocks.children(\r\n\t\t\t\tblocks.map((block) =>\r\n\t\t\t\t\tcreateMenuItem(block, elem, domButton, domBlocks)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t\tdomBlocksMobile.children(\r\n\t\t\t\tblocks.map((block) =>\r\n\t\t\t\t\tcreateMenuItem(block, elem, domNavButton, domBlocks)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extract values for URL 'template' string from IDM data. Use default values if the data is not provided.\r\n\t * @param {Object} [idmData] - IDM data object\r\n\t * @param {Object} {idmData.userContext} IDM user context object\r\n\t * @param {Object} {idmData.product} IDM product object\r\n\t */\r\n\tfunction getUrlTemplateVars({ identities, userContext, product } = {}) {\r\n\t\t// these names must match the placeholders values in the URL, which we control\r\n\t\tconst idTypes =\r\n\t\t\t(product && product.AssociatedRoles.map((x) => x.Type)) || [];\r\n\t\tconst idRecord =\r\n\t\t\tArray.isArray(identities) &&\r\n\t\t\tidentities.find((id) => idTypes.includes(id.Type));\r\n\t\tconst userKey = (idRecord && idRecord.Id) || '';\r\n\t\tconst orgId = (userContext && userContext.OrganizationId) || '';\r\n\r\n\t\treturn { userKey, orgId };\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an article element and appends it to the DOM.\r\n\t * @param {Object} article - The article object containing details like title, url, and icon.\r\n\t * @param {Object} urlTemplateVars - An object containing variables to be interpolated into the article URL.\r\n\t * @param {HTMLElement} elem - The DOM element to which the article element will be appended.\r\n\t * @param {HTMLElement} domButton - The DOM button element associated with the article.\r\n\t * @param {HTMLElement} domArticles - The DOM element containing the list of articles.\r\n\t * @returns {HTMLElement} The created article element.\r\n\t */\r\n\tfunction createArticleElement(\r\n\t\tarticle,\r\n\t\turlTemplateVars,\r\n\t\telem,\r\n\t\tdomButton,\r\n\t\tdomArticles\r\n\t) {\r\n\t\tlet el;\r\n\t\tif (article.url == null || article.url.length === 0) {\r\n\t\t\tel = dom.parse(\r\n\t\t\t\t`
  • ${article.title}
  • `\r\n\t\t\t);\r\n\t\t\tel.on('click', (evt) => {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('header.help.article.click', article);\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst interpolatedUrl = Object.keys(urlTemplateVars).reduce(\r\n\t\t\t\t(url, key) => url.replace(`{${key}}`, urlTemplateVars[key]),\r\n\t\t\t\tarticle.url\r\n\t\t\t);\r\n\r\n\t\t\tel = dom.parse(\r\n\t\t\t\t`
  • ${article.title}
  • `\r\n\t\t\t);\r\n\t\t}\r\n\t\tcmptMenuItem(elem, domButton, domArticles, el);\r\n\t\treturn el;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a menu item element and appends it to the DOM.\r\n\t * @param {Object} block - The block object containing details like title, url, and icon.\r\n\t * @param {HTMLElement} elem - The DOM element to which the menu item will be appended.\r\n\t * @param {HTMLElement} domButton - The DOM button element associated with the menu item.\r\n\t * @param {HTMLElement} domBlocks - The DOM element containing the list of blocks.\r\n\t * @returns {HTMLElement} The created menu item element.\r\n\t */\r\n\tfunction createMenuItem(block, elem, domButton, domBlocks) {\r\n\t\tlet el;\r\n\t\tif (block.url == null || block.url.length === 0) {\r\n\t\t\tel = dom.parse(\r\n\t\t\t\t`
  • ${block.title}
  • `\r\n\t\t\t);\r\n\t\t\tel.on('click', (evt) => {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('header.help.block.click', block);\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tel = dom.parse(\r\n\t\t\t\t`
  • ${block.title}
  • `\r\n\t\t\t);\r\n\t\t}\r\n\t\tcmptMenuItem(elem, domButton, domBlocks, el);\r\n\t\treturn el;\r\n\t}\r\n}\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport {cmptInputClear} from '../../util/cmpt-common-features';\r\nimport * as keyPress from '../../util/key-press-helpers';\r\nimport * as store from '../../util/store';\r\n\r\n/**\r\n * Performs a search. Listens for results.\r\n * @class Sidekick.Search\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Number} [ctx.limit=20] - Count of items to show before view all appears\r\n * @param {String[]} [ctx.searchTypes=type-ahead] - An array of options of how to search. Defaults to type-ahead.\r\n * 'type-ahead' Type ahead search\r\n * 'search-on-enter' Search when pressing enter\r\n * @param {String} [ctx.placeHolderText=Search] - Default text put in the search box\r\n * @param {Function} i18n - translation function\r\n * @emits header.search - Fired when a search is done. Passes the search value\r\n * @emits header.search.item-clicked - Fired when a search result is clicked\r\n * @listens header.search.results - Array of HTML to display in the result list.\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\tconst listEmpty = dom.parse(`\r\n\t\t\r\n\t`);\r\n\tconst limit = ctx.limit || 20;\r\n\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst [domSearchText] = elem.find('.search');\r\n\tconst [domResponsiveSearchText] = elem.find('.sk-search-box .search');\r\n\tconst [domClearBtn] = elem.find('.ss-ctrl-clear');\r\n\tconst [domMenu] = elem.find('.sk--menu');\r\n\tconst [domResultsContainer] = elem.find('.sk--search-content');\r\n\tconst [domLoader] = elem.find('.sk--loader');\r\n\tconst [domSearchBox]=elem.find('.sk-search-box');\r\n\tconst { responsiveTopNav } = store.get('sk-config');\r\n\r\n\t/////\r\n\t// handle iniital state and data changes\r\n\t//\r\n\tdomSearchText.attr('placeholder', ctx.placeHolderText || i18n('Search'));\r\n\tdomSearchText.attr('aria-label', ctx.placeHolderText || i18n('Search'));\r\n\tevents.on('header.search.results', updateResults);\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\telem.on('click', evt => evt.stopPropagation());\r\n\tif(responsiveTopNav){\r\n\t\tconst domSearchContainer = document.getElementsByClassName('sk-search')[0];\r\n\t\tconst domSearchResponsiveIcon=dom.parse(``);\r\n\t\tdomSearchContainer.classList.add('sk-header-container-responsive');\r\n\t\tdomSearchContainer.insertBefore(domSearchResponsiveIcon._, domSearchBox._);\r\n\t\tdomSearchResponsiveIcon.on('click', function() {\r\n\t\t\tdomSearchBox.toggleClass('sk-search-box-open');\r\n\t\t});\r\n\t}\r\n\tdom.element(document).on('click', reset);\r\n\tevents.on('header.search.reset', reset);\r\n\tevents.on('sk-menu-open', menuEl => {\r\n\t\tif (menuEl !== elem) { reset(); }\r\n\t});\r\n\tdom.element(window).on('blur', function () {\r\n\t\tif (document.activeElement != null && document.activeElement.tagName === 'IFRAME') { reset(); }\r\n\t});\r\n\r\n\tcmptInputClear(domSearchText, domClearBtn, true);\r\n\tdomClearBtn.on('click', reset);\r\n\tdomSearchText.on('keydown', closeOnEscape);\r\n\tdomSearchText.on('focus', selectInputText);\r\n\r\n\t// hook up searching options\r\n\tif (typeof ctx.searchTypes === 'string') {\r\n\t\tctx.searchTypes = [ctx.searchTypes];\r\n\t} else if (ctx.searchTypes == null || ctx.searchTypes.length === 0) {\r\n\t\tctx.searchTypes = ['type-ahead'];\r\n\t}\r\n\tif (ctx.searchTypes.includes('search-on-enter')) {\r\n\t\tdomSearchText.on('keydown', searchOnEnter);\r\n\t}\r\n\tif (ctx.searchTypes.includes('type-ahead')) {\r\n\t\t// if they are doing search-on-enter as well, let that take priority\r\n\t\tif (!ctx.searchTypes.includes('search-on-enter')) {\r\n\t\t\tdomSearchText.on('keydown', typeAheadOnEnter);\r\n\t\t}\r\n\t\tdomSearchText.attr('aria-expanded', 'false');\r\n\t\tdomSearchText.attr('aria-autocomplete', 'list');\r\n\t\tdomSearchText.attr('aria-owns', 'sk-search-results');\r\n\t\tdomSearchText.on('input', search);\r\n\t\tdomSearchText.on('click', () => {\r\n\t\t\tevents.emit('sk-menu-open', elem);\r\n\t\t\tsearch();\r\n\t\t});\r\n\t\telem.on('keydown', focusInputOnEscape);\r\n\t\telem.on('keydown', selectResultOnArrow);\r\n\t}\r\n\r\n\t/////\r\n\t// update function for when help list changes\r\n\t//\r\n\r\n\t/**\r\n\t * Resets button and menu state.\r\n\t */\r\n\tfunction reset() { dom.rAF(search); }\r\n\r\n\t/**\r\n\t * Restore focus to search box, selecting the value if populated\r\n\t */\r\n\tfunction selectInputText({target}) {\r\n\t\tif (target.value === '') { return; }\r\n\t\ttarget.setSelectionRange(0, target.value.length);\r\n\t}\r\n\r\n\t/**\r\n\t * Restore focus to search box, selecting the value if populated\r\n\t */\r\n\tfunction focusInputOnEscape(evt) {\r\n\t\t// bail out if this was not the ESCAPE key\r\n\t\tif (!keyPress.isEscape(evt)) { return; }\r\n\t\tif (document.activeElement === domSearchText._) { return; }\r\n\t\tdomSearchText._.focus();\r\n\t}\r\n\r\n\t/**\r\n\t * Closes the menu when escape is pressed\r\n\t */\r\n\tfunction closeOnEscape(evt) {\r\n\t\t// bail out if this was not the ESCAPE key\r\n\t\tif (!keyPress.isEscape(evt)) { return; }\r\n\t\treset();\r\n\t}\r\n\r\n\t/**\r\n\t * Submit the search value to request type-ahead results\r\n\t */\r\n\tfunction typeAheadOnEnter(evt) {\r\n\t\t// bail out if this was not the ENTER key\r\n\t\tif (!keyPress.isEnter(evt)) { return; }\r\n\t\tevents.emit('header.search.enter-pressed', domSearchText._.value);\r\n\t}\r\n\r\n\t/**\r\n\t * Changes focus to a typeahead search result\r\n\t */\r\n\tfunction selectResultOnArrow(evt) {\r\n\t\t// bail out if this was not the UP or DOWN key\r\n\t\tif (!keyPress.isUp(evt) && !keyPress.isDown(evt)) { return; }\r\n\r\n\t\tconst optionElems = domResultsContainer\r\n\t\t\t.find('[role=option]')\r\n\t\t\t.map(o => o._);\r\n\t\tif (optionElems.length === 0) { return; }\r\n\r\n\t\tevt.preventDefault();\r\n\r\n\t\tif (domSearchText.hasFocus()) {\r\n\t\t\t// select the first (down) or last (up) result\r\n\t\t\tconst idx = keyPress.isUp(evt) ? optionElems.length - 1 : 0;\r\n\t\t\toptionElems[idx].focus();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst focusedOptionIdx = optionElems.indexOf(document.activeElement);\r\n\r\n\t\t// bail out if the currently focused element is not a search result\r\n\t\tif (focusedOptionIdx === -1) { return; }\r\n\r\n\t\t// restore focus to search box when moving beyond first or last result\r\n\t\tif (focusedOptionIdx === 0 && keyPress.isUp(evt)) { return domSearchText._.focus(); }\r\n\t\tif (focusedOptionIdx === optionElems.length - 1 && keyPress.isDown(evt)) { return domSearchText._.focus(); }\r\n\r\n\t\tconst nextIdx = keyPress.isUp(evt) ? focusedOptionIdx - 1 : focusedOptionIdx + 1;\r\n\t\toptionElems[nextIdx].focus();\r\n\t}\r\n\r\n\t/**\r\n\t * Makes a search only when enter is pressed.\r\n\t */\r\n\tfunction searchOnEnter(evt) {\r\n\t\t// bail out if this was not the ENTER key\r\n\t\tif (!keyPress.isEnter(evt)) { return; }\r\n\r\n\t\tdomResultsContainer.empty();\r\n\r\n\t\tconst searchLength = domSearchText._.value.length;\r\n\t\tdomClearBtn.css('display', searchLength > 0 ? 'block' : 'none');\r\n\t\tif (searchLength > 0) {\r\n\t\t\tevents.emit('header.search', domSearchText._.value);\r\n\t\t\tdomSearchText._.value = '';\r\n\t\t\tdomClearBtn.addClass('sk-hidden');\r\n\t\t}\r\n\r\n\t\t// unfocus the search box, also fixes IE10 weirdness\r\n\t\tif (document.activeElement) { document.activeElement.blur(); }\r\n\t}\r\n\r\n\t/**\r\n\t * Makes a search.\r\n\t * @emits header.search - Passes the search value\r\n\t */\r\n\tfunction search() {\r\n\t\tdomResultsContainer.empty();\r\n\t\tif (!domSearchText.hasFocus()) {\r\n\t\t\tdomMenu.removeClass('ss-menu-open');\r\n\t\t\tdomSearchText.attr('aria-expanded', 'false');\r\n\t\t\tif(responsiveTopNav){\r\n\t\t\t\tdomSearchBox.removeClass('sk-search-box-open');\r\n\t\t\t\tdomResponsiveSearchText._.value = '';\r\n\t\t\t\tdomClearBtn.addClass('sk-hidden');\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar searchLength = domSearchText._.value.length;\r\n\t\tif (searchLength > 0) {\r\n\t\t\tdomMenu.addClass('ss-menu-open');\r\n\t\t\tdomSearchText.attr('aria-expanded', 'true');\r\n\t\t\tdomLoader.css('display', 'block');\r\n\t\t\tevents.emit('header.search', domSearchText._.value);\r\n\t\t} else {\r\n\t\t\tdomMenu.removeClass('ss-menu-open');\r\n\t\t\tdomSearchText.attr('aria-expanded', 'false');\r\n\t\t\tevents.emit('header.search.no-query');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the result list.\r\n\t * @param {Array} results - Accepts an array of HTML to display in the result list.\r\n\t * @listens header.search.results - Array of HTML to display in the result list.\r\n\t */\r\n\tfunction updateResults(results) {\r\n\t\tdomLoader.css('display', 'none');\r\n\t\tif (!domSearchText.hasFocus()) { return; }\r\n\r\n\t\tconst resultsIsArray = results instanceof Array;\r\n\r\n\t\tif (results == null || (resultsIsArray && results.length === 0)) {\r\n\t\t\tdomResultsContainer.children(listEmpty);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (typeof results === 'string') {\r\n\t\t\telem.addClass('sk--hide-instruction');\r\n\t\t\tdomResultsContainer.children(dom.parse(results));\r\n\t\t\tdomMenu.addClass('ss-menu-open');\r\n\t\t} else {\r\n\t\t\t// process the list of blocks to display\r\n\t\t\tconst resultsList = dom.parse(``);\r\n\t\t\tresultsList.children(results.slice(0, limit).map(function (res, idx, lst) {\r\n\t\t\t\tconst domRes = dom.parse(res);\r\n\t\t\t\tdomRes.attr('role', 'option');\r\n\t\t\t\tdomRes.attr('tabindex', '0');\r\n\r\n\t\t\t\tconst searchResult = dom.parse(`
  • `);\r\n\t\t\t\tsearchResult.append(domRes);\r\n\r\n\t\t\t\tsearchResult.on('click', function (evt) {\r\n\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tdomMenu.removeClass('ss-menu-open');\r\n\t\t\t\t\tevents.emit('header.search.item-clicked', idx);\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn searchResult;\r\n\t\t\t}));\r\n\r\n\t\t\tdomResultsContainer.children(resultsList);\r\n\t\t}\r\n\t}\r\n};\r\n","/**\r\n * SuperSuit Loader\r\n * @class Sidekick.Loader\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {String} attrs.statusText - text to show above the finger loader\r\n * @param {Null} attrs.fill - undefined if not in \"fill\" mode, not undefined if in fill mode\r\n * @param {Null} ctx - not used\r\n * @param {Function} i18n - translation function\r\n * @listens loader.show - show/hide the loader\r\n */\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\t/////\r\n\t// handle iniital state and data changes\r\n\t//\r\n\tif (attrs.fill !== undefined) { elem.addClass('sk-fill-container'); }\r\n};\r\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import * as dom from '../../util/easy-dom';\r\nimport {cmptMenu, cmptMenuItem} from '../../util/cmpt-common-features';\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Displays allowed organizations\r\n * @class Sidekick.ApplicationSwitcher\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx - app switcher data object\r\n * @param {Function} i18n - translation function\r\n * @emits header.app-switcher.change - Passes selected product id\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst [domBtn] = elem.find('.app-title');\r\n\tconst [domBtnContent] = domBtn.find('.sk--content');\r\n\tconst [domAppCont] = elem.find('.sk--menu');\r\n\tconst [domAppList] = elem.find('.sk--menulist');\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tcmptMenu(elem, domBtn, domAppCont);\r\n\r\n\t/**\r\n\t * Processes the access data to populate the list\r\n\t * @param {Object} app\r\n\t */\r\n\tconst {currentApp, apps} = ctx;\r\n\tconst currApp = apps.find(a => a.id === currentApp);\r\n\tconst appName = currApp == null ? '' : currApp.name;\r\n\r\n\tdomBtn.attr('aria-label', `${appName} - ${i18n('Switch Apps')}`);\r\n\tdomBtnContent.attr('title', appName);\r\n\tdomBtnContent._.innerHTML = appName;\r\n\r\n\t// Disable skip link when impersonating\r\n\tevents.on('_header.impersonation', isImpersonating => {\r\n\t\tconst [domSkipLink] = elem.find('.sk--skip-nav-link');\r\n\t\tif (domSkipLink == null) { return; }\r\n\t\tdomSkipLink.css('display', (isImpersonating ? 'none' : null));\r\n\t}, { greedy: true });\r\n\r\n\t// hide menu on only 1 app\r\n\tif (apps.length < 2) {\r\n\t\telem.addClass('sk-no-click');\r\n\t\tdomBtn.attr('tabindex', '-1');\r\n\t\tdomBtn.attr('disabled', 'disabled');\r\n\t\tdomBtn.attr('aria-disabled', 'true');\r\n\t\tdomBtnContent.removeClass('fa-angle-down-after');\r\n\t} else {\r\n\t\telem.removeClass('sk-no-click');\r\n\t\tdomBtn.attr('tabindex', '0');\r\n\t\tdomBtn.attr('disabled', null);\r\n\t\tdomBtn.attr('aria-disabled', 'false');\r\n\t\tdomBtnContent.addClass('fa-angle-down-after');\r\n\r\n\t\t// Sort by name\r\n\t\tapps.sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n\t\tdomAppList.children(apps.map(app => {\r\n\t\t\tconst isActive = app.id === currentApp;\r\n\t\t\tconst hasLegacyName = app.legacyName != null && app.legacyName.length;\r\n\r\n\t\t\tconst ariaCurrent = isActive.toString();\r\n\t\t\tconst liClassName = isActive ? 'active' : '';\r\n\t\t\tconst nameClassName = isActive ? 'fa-li-checkmark-after' : '';\r\n\r\n\t\t\tconst href = app.url || '#';\r\n\t\t\tconst target = app.url && app.target ? ` target=\"${app.target}\"` : '';\r\n\r\n\t\t\tconst el = dom.parse(`\r\n\t\t\t\t
  • \r\n\t\t\t\t\t${app.name}\r\n\t\t\t\t
  • \r\n\t\t\t`);\r\n\r\n\t\t\tif (isActive) { el.addClass('active'); }\r\n\t\t\tif (hasLegacyName) { el.addClass('sk--has-legacy'); }\r\n\r\n\t\t\tel.on('click', evt => {\r\n\t\t\t\tif (!app.url) {\r\n\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t\t// Making Event Emit in all the conditions as a part of MORPH-6346\r\n\t\t\t\tevents.emit('header.app-switcher.change', app);\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\r\n\t\t\t// bind common keydown handlers to menu item\r\n\t\t\tcmptMenuItem(elem, domBtn, domAppList, el);\r\n\r\n\t\t\treturn el;\r\n\t\t}));\r\n\t}\r\n\r\n};\r\n","import * as dom from '../../util/easy-dom'; // eslint-disable-line no-unused-vars\r\n\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\t// position: bottom, top, left, right\r\n\tconst position = attrs.position || 'bottom';\r\n\tconst flipSide = {left: 'right', right: 'left', top: 'bottom', bottom: 'top'};\r\n\tconst distance = defaultToPx(attrs.distance) || '-3px';\r\n\tlet hoverTimeout = null;\r\n\r\n\tshiftTheArrow(attrs.arrowShift);\r\n\toffsetTheTip(attrs.tipShift);\r\n\r\n\telem.addClass(`sk-tip-pos-${position}`);\r\n\telem.css({\r\n\t\t[`margin-${flipSide[position]}`]: distance\r\n\t});\r\n\r\n\telem.parent().addClass('sk-tooltip-container');\r\n\r\n\t// add a 1 second delay before the tooltip shows up\r\n\telem.parent().on('mouseenter', (event) => {\r\n\t\thoverTimeout = setTimeout(() => {\r\n\t\t\telem.parent().addClass('sk--hover');\r\n\t\t}, 1000);\r\n\t});\r\n\telem.parent().on('mouseleave', (event) => {\r\n\t\tclearTimeout(hoverTimeout);\r\n\t\thoverTimeout = null;\r\n\t\telem.parent().removeClass('sk--hover');\r\n\t});\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\tfunction shiftTheArrow(arrowShift) {\r\n\t\tif (arrowShift == null) { return; }\r\n\t\tconst arrowEl = elem.find('.sk-tip-chevron')[0];\r\n\t\tarrowShift = defaultToPx(arrowShift);\r\n\t\tconst direction = (['left', 'right'].includes(position) ? 'Y' : 'X');\r\n\r\n\t\tarrowEl.css({\r\n\t\t\ttransform: `translate${direction}(${arrowShift}) rotate(45deg)`\r\n\t\t});\r\n\t}\r\n\r\n\tfunction offsetTheTip(tipShift) {\r\n\t\tconst bounds = elem.parent()._.getBoundingClientRect();\r\n\t\tconst direction = (['left', 'right'].includes(position) ? 'Y' : 'X');\r\n\t\tconst defaultShift = (direction === 'Y' ? '50%' : '5px');\r\n\t\tconst leftOrRight = (window.innerWidth - bounds.right < bounds.left ? 'right' : 'left');\r\n\t\tconst propShift = (direction === 'Y' ? 'top' : leftOrRight);\r\n\r\n\t\ttipShift = defaultToPx(tipShift) || defaultShift;\r\n\t\telem.css({\r\n\t\t\t[propShift]: tipShift\r\n\t\t});\r\n\t\tif (direction === 'X') {\r\n\t\t\telem.find('.sk-tip-chevron')[0].css({\r\n\t\t\t\t[propShift]: '18px'\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfunction defaultToPx(val) {\r\n\t\tif (typeof val !== 'string' && typeof val !== 'number') { return; }\r\n\t\tif (parseInt(val, 10).toString().length === val.toString().length) {\r\n\t\t\tval += 'px';\r\n\t\t}\r\n\t\treturn val;\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom'; // eslint-disable-line no-unused-vars\r\nimport {cmptDynamicWidth} from '../../util/cmpt-common-features';\r\n\r\nexport default function (elem, attrs, ctx) {\r\n\tconst domUserName = elem.find('.sk--user-name')[0];\r\n\tcmptDynamicWidth('impersonated-user', elem, domUserName._.innerText, 30, 'bold 18px');\r\n};\r\n","function detect() {\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n\n return getNodeVersion();\n}\n\nfunction detectOS(userAgentString) {\n var rules = getOperatingSystemRules();\n var detected = rules.filter(function (os) {\n return os.rule && os.rule.test(userAgentString);\n })[0];\n\n return detected ? detected.name : null;\n}\n\nfunction getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode && {\n name: 'node',\n version: process.version.slice(1),\n os: process.platform\n };\n}\n\nfunction parseUserAgent(userAgentString) {\n var browsers = getBrowserRules();\n if (!userAgentString) {\n return null;\n }\n\n var detected = browsers.map(function(browser) {\n var match = browser.rule.exec(userAgentString);\n var version = match && match[1].split(/[._]/).slice(0,3);\n\n if (version && version.length < 3) {\n version = version.concat(version.length == 1 ? [0, 0] : [0]);\n }\n\n return match && {\n name: browser.name,\n version: version.join('.')\n };\n }).filter(Boolean)[0] || null;\n\n if (detected) {\n detected.os = detectOS(userAgentString);\n }\n\n if (/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/i.test(userAgentString)) {\n detected = detected || {};\n detected.bot = true;\n }\n\n return detected;\n}\n\nfunction getBrowserRules() {\n return buildRules([\n [ 'aol', /AOLShield\\/([0-9\\._]+)/ ],\n [ 'edge', /Edge\\/([0-9\\._]+)/ ],\n [ 'yandexbrowser', /YaBrowser\\/([0-9\\._]+)/ ],\n [ 'vivaldi', /Vivaldi\\/([0-9\\.]+)/ ],\n [ 'kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/ ],\n [ 'samsung', /SamsungBrowser\\/([0-9\\.]+)/ ],\n [ 'chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/ ],\n [ 'firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/ ],\n [ 'fxios', /FxiOS\\/([0-9\\.]+)/ ],\n [ 'opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/ ],\n [ 'opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/ ],\n [ 'ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/ ],\n [ 'ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/ ],\n [ 'ie', /MSIE\\s(7\\.0)/ ],\n [ 'bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/ ],\n [ 'android', /Android\\s([0-9\\.]+)/ ],\n [ 'ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/ ],\n [ 'safari', /Version\\/([0-9\\._]+).*Safari/ ],\n [ 'facebook', /FBAV\\/([0-9\\.]+)/],\n [ 'instagram', /Instagram\\s([0-9\\.]+)/],\n [ 'ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/]\n ]);\n}\n\nfunction getOperatingSystemRules() {\n return buildRules([\n [ 'iOS', /iP(hone|od|ad)/ ],\n [ 'Android OS', /Android/ ],\n [ 'BlackBerry OS', /BlackBerry|BB10/ ],\n [ 'Windows Mobile', /IEMobile/ ],\n [ 'Amazon OS', /Kindle/ ],\n [ 'Windows 3.11', /Win16/ ],\n [ 'Windows 95', /(Windows 95)|(Win95)|(Windows_95)/ ],\n [ 'Windows 98', /(Windows 98)|(Win98)/ ],\n [ 'Windows 2000', /(Windows NT 5.0)|(Windows 2000)/ ],\n [ 'Windows XP', /(Windows NT 5.1)|(Windows XP)/ ],\n [ 'Windows Server 2003', /(Windows NT 5.2)/ ],\n [ 'Windows Vista', /(Windows NT 6.0)/ ],\n [ 'Windows 7', /(Windows NT 6.1)/ ],\n [ 'Windows 8', /(Windows NT 6.2)/ ],\n [ 'Windows 8.1', /(Windows NT 6.3)/ ],\n [ 'Windows 10', /(Windows NT 10.0)/ ],\n [ 'Windows ME', /Windows ME/ ],\n [ 'Open BSD', /OpenBSD/ ],\n [ 'Sun OS', /SunOS/ ],\n [ 'Linux', /(Linux)|(X11)/ ],\n [ 'Mac OS', /(Mac_PowerPC)|(Macintosh)/ ],\n [ 'QNX', /QNX/ ],\n [ 'BeOS', /BeOS/ ],\n [ 'OS/2', /OS\\/2/ ],\n [ 'Search Bot', /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/ ]\n ]);\n}\n\nfunction buildRules(ruleTuples) {\n return ruleTuples.map(function(tuple) {\n return {\n name: tuple[0],\n rule: tuple[1]\n };\n });\n}\n\nmodule.exports = {\n detect: detect,\n detectOS: detectOS,\n getNodeVersion: getNodeVersion,\n parseUserAgent: parseUserAgent\n};\n","export function loadAudioEye() {\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = 'https://ws.audioeye.com/ae.js';\r\n script.async = true;\r\n document.body.appendChild(script);\r\n}\r\n","import * as tmpl from '../../.💩/sidekick-templates';\r\nimport { toDashCase, toCamelCase } from '../util/string-helpers';\r\nimport * as dom from '../util/easy-dom';\r\nimport * as store from '../util/store';\r\nimport * as events from '../util/event-bus';\r\nimport { i18n } from '../util/translations';\r\n\r\nimport header from './sidekick-header/header';\r\nimport nav from './sidekick-nav/nav';\r\nimport navItem from './sidekick-nav-item/nav-item';\r\nimport notifications from './sidekick-notifications/notifications';\r\nimport navItemSubmenu from './sidekick-nav-item-submenu/nav-item-submenu';\r\nimport userInfo from './sidekick-user-info/user-info';\r\nimport help from './sidekick-help/help';\r\nimport search from './sidekick-search/search';\r\nimport loader from './sidekick-loader/loader';\r\nimport orgSwitcher from './sidekick-org-switcher/org-switcher';\r\nimport appSwitcher from './sidekick-app-switcher/app-switcher';\r\nimport contactOrg from './sidekick-contact-org/contact-org';\r\nimport tooltip from './sidekick-tooltip/tooltip';\r\nimport pickOrgApp from './sidekick-pick-org-app/pick-org-app';\r\nimport pickOrg from './sidekick-pick-org/pick-org';\r\nimport pickApp from './sidekick-pick-app/pick-app';\r\nimport impersonatedUser from './sidekick-impersonated-user/impersonated-user';\r\nimport activityIndicator from './sidekick-activity-indicator/activity-indicator';\r\nimport navItemMegaMenu from './sidekick-nav-item-mega-menu/nav-item-mega-menu';\r\nimport sessionTimeout from './sidekick-session-timeout/session-timeout';\r\nimport siteErrors from './sidekick-site-errors/site-errors';\r\nimport skipNav from './sidekick-skip-nav/skip-nav';\r\nimport unsupportedBrowserAlert from './sidekick-unsupported-browser-alert/unsupported-browser-alert';/*cmptInject*/\r\nimport footer from './sidekick-footer/footer';\r\nimport audioeye from './sidekick-audioeye/audioeye';\r\n\r\n/**\r\n * Loads the components\r\n * @module Sidekick.ComponentLoader\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Sidekick component list\r\n * @private\r\n */\r\nconst cmpt = {\r\n\theader, nav, navItem, notifications, navItemSubmenu, userInfo,\r\n\thelp, search, loader, orgSwitcher, appSwitcher, footer, contactOrg,\r\n\ttooltip, pickOrgApp, pickOrg, pickApp, impersonatedUser,\r\n\tactivityIndicator, navItemMegaMenu, sessionTimeout, siteErrors,\r\n\tskipNav, audioeye, unsupportedBrowserAlert/*cmptInject*/\r\n};\r\nvar bootstrapAllInProgress = false;\r\nvar bootstrapComplete;\r\n\r\n/**\r\n * Loads all the components\r\n * @function bootstrapAll\r\n * @instance\r\n */\r\nexport default function bootstrapAll() {\r\n\tbootstrapAllInProgress = true;\r\n\tbootstrapComplete = true;\r\n\tObject.keys(cmpt).forEach(c => bootstrap(c));\r\n\tbootstrapAllInProgress = false;\r\n\tif (!bootstrapComplete) { setTimeout(bootstrapAll, 0); }\r\n}\r\n\r\nfunction bootstrap(moduleNameCamel) {\r\n\tconst moduleName = toDashCase(moduleNameCamel);\r\n\tvar elems = document.querySelectorAll(`[sk-${moduleName}]`);\r\n\r\n\tfor (let i = elems.length; i--;) {\r\n\t\tconst elem = dom.element(elems[i]);\r\n\r\n\t\t// bootstrapping this element could add more elements\r\n\t\t// that also need to be bootstrapped, so inform the bootstrapper\r\n\t\t// that we are not done yet\r\n\t\tbootstrapComplete = false;\r\n\r\n\t\t// add the cmpt class to the array to signify that it has\r\n\t\t// been bootstrapped and should be bootstrapped again\r\n\t\telem.addClass('sidekick').addClass(`sk-${moduleName}`);\r\n\t\telem.attr(`sk-${moduleName}`, null);\r\n\r\n\t\t/////\r\n\t\t// bootstrap the element\r\n\t\t//\r\n\r\n\t\t// parse attrs\r\n\t\tconst attrs = {};\r\n\t\tfor (let j = elem._.attributes.length; j--;) {\r\n\t\t\tconst attr = elem._.attributes[j];\r\n\t\t\tattrs[toCamelCase(attr.name)] = attr.value;\r\n\t\t}\r\n\r\n\t\tif (elem._.context != null) {\r\n\t\t\tinitElement(elem, attrs, elem._.context);\r\n\t\t} else if (attrs.contextStore) {\r\n\t\t\tstore.onValueOnce(attrs.contextStore, storeCtxElemInitializer(elem, attrs));\r\n\t\t} else {\r\n\t\t\tinitElement(elem, attrs, null);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction storeCtxElemInitializer(elem, attrs) {\r\n\t\treturn (data) => {\r\n\t\t\t// init the element with the new data\r\n\t\t\tinitElement(elem, attrs, data);\r\n\t\t\tif (!bootstrapAllInProgress) { bootstrapAll(); }\r\n\t\t};\r\n\t}\r\n\r\n\tfunction initElement(elem, attrs, ctx) {\r\n\t\t// clean out the existing element content\r\n\t\tconst el = elem._;\r\n\t\twhile (el.firstChild) { el.removeChild(el.firstChild); }\r\n\t\t// if we have a template for this component, mix with ctx and fill elem\r\n\t\tif (tmpl[moduleNameCamel]) {\r\n\t\t\tel.innerHTML = tmpl[moduleNameCamel](ctx, attrs, i18n);\r\n\t\t}\r\n\t\t// mark this element as initialized\r\n\t\t// uses rAF to allow css transitions on entering initialized state\r\n\t\tdom.rAF(() => elem.addClass(`sk-${moduleName}-initialized`));\r\n\r\n\t\t// run the component's controller method\r\n\t\tcmpt[moduleNameCamel](elem, attrs, ctx, i18n);\r\n\t\tdom.rAF(() => events.emit(`_${moduleName}-initialized`, elem, attrs, ctx));\r\n\t}\r\n}\r\n","import * as store from './store';\r\n\r\n/**\r\n * @module Sidekick.DomScanner\r\n * @memberOf Sidekick\r\n */\r\n\r\nlet titleInterval = null;\r\n\r\n/**\r\n * Scans the document title to append app name if not found.\r\n * @function title\r\n * @instance\r\n */\r\nexport function title() {\r\n\tstopTitle();\r\n\r\n\tstore.onValueOnce('app-switcher-data',() => {\r\n\t\ttitleInterval = setInterval(() => {\r\n\t\t\tif (store.get('app-switcher-data') == null) { return; }\r\n\r\n\t\t\tconst {currentApp, apps} = store.get('app-switcher-data');\r\n\t\t\tif (currentApp == null || apps == null || apps.length === 0) { return; }\r\n\r\n\t\t\tconst appName = apps.find(a => a.id === currentApp).name;\r\n\r\n\t\t\tif (document.title.endsWith(appName)) { return; }\r\n\r\n\t\t\tdocument.title = `${document.title} - ${appName}`;\r\n\t\t}, 500);\r\n\t});\r\n}\r\n\r\n/**\r\n * Stops scanning the title\r\n * @function stopTitle\r\n * @instance\r\n */\r\nexport function stopTitle() {\r\n\tif (titleInterval != null) {\r\n\t\tclearInterval(titleInterval);\r\n\t\ttitleInterval = null;\r\n\t}\r\n}\r\n","/* eslint-disable no-console */\r\n// This file will contain the functions for processing the passport data\r\n// in a way that it can be consumed by the components like org switcher\r\n// It also enables showing full page org app switcher\r\nimport * as events from './event-bus';\r\nimport * as store from './store';\r\nimport { doCall } from './ajax';\r\nimport * as env from './env';\r\n\r\nexport const getExternalRoles = data => {\r\n\tif (data.externalRoles === undefined || data.externalRoles.length === 0) { return; }\r\n\tstore.set('external-roles', data.externalRoles);\r\n};\r\n\r\nexport const setStateFromContext = context => {\r\n\tconst { userInfo } = context;\r\n\r\n\tif (!userInfo.domain || !userInfo.application || !userInfo.role) {\r\n\t\tconsole.warn('User context unavailable');\r\n\t\treturn;\r\n\t}\r\n\r\n\ttry {\r\n\t\tstore.set('org-switcher-data', buildOrgSwitcherData(context));\r\n\t\tstore.set('app-switcher-data', buildAppSwitcherData(context));\r\n\t\tstore.set('user-data', buildUserData(context));\r\n\t\tstore.set('roles', buildUserRoleData(context));\r\n\t} catch (err) {\r\n\t\tconsole.error('Initialization error');\r\n\t}\r\n};\r\n\r\nfunction buildOrgSwitcherData(context) {\r\n\tconst envName = env.environmentFromPassportDomain(window.location.host);\r\n\tconst envValues = env[envName];\r\n\r\n\tconst { userInfo, authProfile } = context;\r\n\r\n\treturn {\r\n\t\tcurrentOrg: userInfo.domain.id,\r\n\t\torgs: authProfile.domains.map(d => !envValues.userExclusiveDomains.includes(d.id) ? ({ id: d.id, name: d.name }) : null).filter(d => !!d),\r\n\t};\r\n}\r\n\r\nfunction buildAppSwitcherData(context) {\r\n\tconst { userInfo, authProfile } = context;\r\n\r\n\tconst apps = [];\r\n\tauthProfile.domains\r\n\t\t.filter(d => d.id === userInfo.domain.id)\r\n\t\t.forEach(domain => {\r\n\t\t\tdomain.applications.forEach(app => {\r\n\t\t\t\tapps.push({\r\n\t\t\t\t\tid: app.id,\r\n\t\t\t\t\tname: app.name,\r\n\t\t\t\t\turl: app.address\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\r\n\treturn {\r\n\t\tcurrentApp: userInfo.application.id,\r\n\t\tapps\r\n\t};\r\n}\r\n\r\n// transforms userInfo into sidekick user-data\r\nfunction buildUserData(context) {\r\n\tconst { userInfo } = context;\r\n\tconst roleData = buildUserRoleData(context);\r\n\r\n\treturn {\r\n\t\tpersonId: userInfo.person.id,\r\n\t\temail: userInfo.person.email,\r\n\t\tfirstName: userInfo.person.name.firstName,\r\n\t\tlastName: userInfo.person.name.lastName,\r\n\t\troles: roleData.roles.map(role => role.name),\r\n\t};\r\n}\r\n\r\n// gets all of the users roles for the current domain and application combination\r\nfunction buildUserRoleData(context) {\r\n\tconst { userInfo, authProfile } = context;\r\n\tconst domain = authProfile.domains.find(d => d.id === userInfo.domain.id);\r\n\tconst application = domain.applications.find(app => app.shortName === userInfo.application.shortName);\r\n\tconst externalRoles = store.get('external-roles') !== null ? store.get('external-roles') : [];\r\n\tconst roles = [...application.roles, ...externalRoles];\r\n\treturn {\r\n\t\tcurrentRole: userInfo.role.id,\r\n\t\troles\r\n\t};\r\n}\r\n\r\nexport const handleInactivity = () => {\r\n\t//const idleDuration = 3540; // 59 minutes\r\n\tconst idleDuration = 2100; //35 minutes for testing\r\n\tconst countdownTimer = 120; // 2 minute; Total session time = 1 hour\r\n\tconst activityEvents = ['click', 'mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];\r\n\r\n\tlet idleTimeout;\r\n\r\n\tfunction resetIdleTimeout() {\r\n\t\tif (idleTimeout) {\r\n\t\t\tclearTimeout(idleTimeout);\r\n\t\t}\r\n\r\n\t\tidleTimeout = setTimeout(() => {\r\n\t\t\tclearInterval(idleTimeout);\r\n\t\t\tstore.set('session-timeout', { timer: countdownTimer });\r\n\t\t}, idleDuration * 1000);\r\n\t}\r\n\r\n\tresetIdleTimeout();\r\n\r\n\tactivityEvents.forEach((evt) =>\r\n\t\tdocument.addEventListener(evt, resetIdleTimeout, false)\r\n\t);\r\n\r\n\t// reload the page to refresh the session timeout\r\n\tevents.on('session.extend', () => {\r\n\t\tlocation.reload();\r\n\t});\r\n\r\n\t// force logout when timer ends\r\n\tevents.on('session-timeout.timer-end', () => {\r\n\t\tevents.emit('session.logout.timeout');\r\n\t});\r\n};\r\n\r\nexport const getUserContext = () => {\r\n\tget('/!/usercontext', (err, data) => {\r\n\t\tif (err) { return console.error('User context unavailable!'); }\r\n\t\tconst { userInfo = {}, authorizationProfile: authProfile, impersonator, passportBaseUrl = '' } = data || {};\r\n\t\tstore.set('passport-data', { userInfo, authProfile, impersonator, passportBaseUrl, legacyFormattedData: getLegacyFormattedData(data) });\r\n\t\tevents.emit('header.impersonation', !!impersonator);\r\n\t});\r\n};\r\n\r\nexport const setUserContext = context => {\r\n\tconst params = Object.keys(context).map(k => `!${k}=${context[k]}`).join('&');\r\n\r\n\tget(`/!/usercontext?${params}`, (err, data) => {\r\n\t\tif (err) { return; }\r\n\t\tconst { userInfo, authorizationProfile: authProfile, impersonator, passportBaseUrl = '' } = data;\r\n\t\tstore.set('passport-data', { userInfo, authProfile, impersonator, passportBaseUrl, legacyFormattedData: getLegacyFormattedData(data) });\r\n\t});\r\n};\r\n\r\nexport const endImpersonation = () => {\r\n\tdel('/!/impersonation', (err, data) => {\r\n\t\tif (err) { return; }\r\n\t\tif (data.returnUrl) {\r\n\t\t\twindow.location.href = data.returnUrl;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n// TODO - To be removed after IDM sunset\r\nfunction getLegacyFormattedData(passportData) {\r\n\tconst legacyFormattedData = {};\r\n\tconst { userInfo, authorizationProfile } = passportData;\r\n\r\n\t// usercontext is required for legacyFormattedData but is not always available (My Frontline)\r\n\tif (!userInfo.domain || !userInfo.application || !userInfo.role) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlegacyFormattedData.productId = userInfo.application.shortName.toUpperCase();\r\n\tlegacyFormattedData.roles = authorizationProfile.domains.find(domain => domain.id === userInfo.domain.id).applications.find(app => app.id === userInfo.application.id).roles.map(role => role.name);\r\n\tlegacyFormattedData.userContext = {\r\n\t\tDisabled: false,\r\n\t\tOrganizationId: userInfo.domain.id,\r\n\t\tOrganizationName: userInfo.domain.name,\r\n\t\tProductId: userInfo.application.shortName.toUpperCase(),\r\n\t\tProductLegacyName: null,\r\n\t\tProductName: userInfo.application.name,\r\n\t\tUrl: '' // TODO - To be decided later\r\n\t};\r\n\tlegacyFormattedData.user = {\r\n\t\temail: userInfo.person.email,\r\n\t\temailConfirmed: true, // TODO - to be checked\r\n\t\tfirstName: userInfo.person.name.firstName,\r\n\t\tisFrontlineUser: true, // TODO - to be checked\r\n\t\tlastName: userInfo.person.name.lastName,\r\n\t\tprofileId: userInfo.person.id,\r\n\t\troles: legacyFormattedData.roles\r\n\t};\r\n\tlegacyFormattedData.access = [];\r\n\tauthorizationProfile.domains.some(domain => {\r\n\t\tif (domain.id === userInfo.domain.id) {\r\n\t\t\tdomain.applications.forEach(app => {\r\n\t\t\t\tlegacyFormattedData.access.push({\r\n\t\t\t\t\tDisabled: false,\r\n\t\t\t\t\tOrganizationId: domain.id,\r\n\t\t\t\t\tOrganizationName: domain.name,\r\n\t\t\t\t\tProductId: app.shortName,\r\n\t\t\t\t\tProductLegacyName: null,\r\n\t\t\t\t\tProductName: app.name,\r\n\t\t\t\t\tUrl: '' // TODO - To be decided later\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\t});\r\n\treturn legacyFormattedData;\r\n}\r\n\r\n// shorthand get\r\nfunction get(url, cb, headers = []) {\r\n\tconst useCredentials = true;\r\n\tdoCall('GET', url, null, createResponseHandler(cb), [{ key: 'Accept', value: '*/*' }].concat(headers), null, useCredentials);\r\n};\r\n\r\n// shorthand post\r\n// function post(url, data, cb, headers = []) {\r\n// \tdoCall('POST', url, JSON.stringify(data), createResponseHandler(cb), [{ key: 'Content-Type', value: 'application/json' }].concat(headers));\r\n// };\r\n\r\n// shorthand delete\r\nfunction del(url, cb, headers = []) {\r\n\tdoCall('DELETE', url, null, createResponseHandler(cb), [{ key: 'Accept', value: '*/*' }].concat(headers));\r\n};\r\n\r\nfunction createResponseHandler(cb = () => { }) {\r\n\treturn function (statusCode, responseText, headersStr, statusText) {\r\n\t\t// handle error state with error-first callback\r\n\t\tif (400 <= statusCode && statusCode <= 500) {\r\n\t\t\tcb(Error(statusText));\r\n\t\t}\r\n\t\tif (responseText && responseText.length) {\r\n\t\t\tcb(null, JSON.parse(responseText));\r\n\t\t} else {\r\n\t\t\tcb(null);\r\n\t\t}\r\n\t};\r\n}\r\n","import * as events from './event-bus';\r\nimport * as env from './env';\r\nimport * as store from './store';\r\nimport CryptoJS from 'crypto-js';\r\n\r\nlet user = null;\r\nlet apiEndpoint = null;\r\nlet allFlags = null;\r\n\r\nconst envEndpointMap = {\r\n\tdev: 'https://featureflag-dev-api.ss.frontlineeducation.com',\r\n\tqa: 'https://featureflag-qa-api.ss.frontlineeducation.com',\r\n\tstage: 'https://featureflag-stage-api.ss.frontlineeducation.com',\r\n\tprod: 'https://featureflag-api.frontlineeducation.com'\r\n};\r\n\r\n// this function generates a hmac token and timestamp\r\nfunction generateHmacToken(secretKey, data) {\r\n const timestamp = Math.floor(Date.now() / 1000);\r\n const payload = `${data}:${timestamp}`;\r\n const hmac = CryptoJS.HmacSHA256(payload, secretKey).toString(CryptoJS.enc.Hex);\r\n return { hmac, timestamp };\r\n}\r\n\r\nconst apiRequest = (url, body) => {\r\n\t// get secret key injected by bundle-sidekick.js\r\n\tconst secretKey = process.env.HMAC_SECRET_KEY;\r\n\tconst { hmac, timestamp } = generateHmacToken(secretKey, body);\r\n\r\n return fetch(url, {\r\n\t\tmethod: 'POST',\r\n\t\theaders: {\r\n\t\t\t'Accept': 'application/json',\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Authorization': `${hmac}`\r\n\t\t},\r\n\t\tbody: JSON.stringify({ data: body, timestamp })\r\n\t}).then((res) => {\r\n\t\treturn res.json();\r\n\t}).catch(() => {\r\n\t\tif(body.defaultValue){\r\n\t\t\treturn {\r\n\t\t\t\tvalue: body.defaultValue\r\n\t\t\t};\r\n\t\t}else{\r\n\t\t\treturn [];\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport function setupPassportFeatureFlagsCC(context) {\r\n\tconst { userInfo } = context;\r\n\r\n\t// bypass feature flag lookup if domain context is unavailable (used below)\r\n\t// context can be unavailable within My Frontline\r\n\tif (!userInfo.domain) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst envName = env.environmentFromPassportDomain(window.location.host);\r\n\tapiEndpoint = envEndpointMap[envName];\r\n\r\n\t// Configcat setup based on https://www.configcat.com/docs/sdk-reference/js/\r\n\tuser = {\r\n\t\t'identifier': userInfo.person.id,\r\n\t\t'custom' : {\r\n\t\t\t'orgId': userInfo.domain.id\r\n\t\t}\r\n\t};\r\n\r\n\tapiRequest(`${apiEndpoint}/api/v1/featureFlag/getAll`, {\r\n\t\tuser\r\n\t}).then((response) => {\r\n\t\tallFlags = response;\r\n\t\tevents.emit('feature-flags-ready-cc', { checkState, checkStateByOrg, forceRefresh, getValue });\r\n\t});\r\n}\r\n\r\nexport function setupFeatureFlagsCC(idmData) {\r\n\tconst idm = store.get('idm');\r\n\tconst envName = env.environmentFromIdmGatewayUrl(idm.idGatewayUrl);\r\n\tapiEndpoint = envEndpointMap[envName];\r\n\r\n\t// configcat setup based on https://www.configcat.com/docs/sdk-reference/js/\r\n\tuser = {\r\n\t\t'identifier': idm.flId, //TODO- replace employeeId with personId\r\n\t\t'custom' : {\r\n\t\t\t'orgId': idmData.userContext.OrganizationId\r\n\t\t}\r\n\t};\r\n\r\n\tapiRequest(`${apiEndpoint}/api/v1/featureFlag/getAll`, {\r\n\t\tuser\r\n\t}).then((response) => {\r\n\t\tallFlags = response;\r\n\t\tevents.emit('feature-flags-ready-cc', { checkState, checkStateByOrg, forceRefresh, getValue });\r\n\t});\r\n}\r\n\r\n/**\r\n * @param {*} featureKey - flag to check (key)\r\n * @param {*} featureValue - Optional, for comparing multivariate values\r\n * If key doesn't exist, configCatClient will return a promise that resolves to false as value of featureKey\r\n * @returns If key does exist, will return a promise that resolves to whether it matches featureValue\r\n */\r\nexport const checkState = (featureKey, featureValue = true) => {\r\n\tconst defaultValue = false;\r\n\tconst flag = allFlags.find(o => o.key === featureKey);\r\n\tif(flag && flag.value){\r\n\t\treturn Promise.resolve(flag.value === featureValue);\r\n\t}else{\r\n\t\treturn Promise.resolve(defaultValue === featureValue);\r\n\t}\r\n};\r\n\r\n/**\r\n * @param {*} featureKey - flag to check (key)\r\n * @param {*} featureValue - Optional, for comparing multivariate values\r\n * If key doesn't exist, configCatClient will return a promise that resolves to false as value of featureKey\r\n * @param {*} customUser - an object in the format of {'custom': { 'orgId': }}.\r\n * Using this parameter, status of flag for a specific org is fetched.\r\n * If not given, default user object will be used which is defined above\r\n * @returns If key does exist, will return a promise that resolves to whether it matches featureValue\r\n */\r\nexport const checkStateByOrg = (featureKey, featureValue = true, customUser = user, defaultValue = false) => {\r\n\treturn apiRequest(`${apiEndpoint}/api/v1/featureFlag`, {\r\n\t\tkey: featureKey,\r\n\t\tdefaultValue,\r\n\t\tuser: customUser\r\n\t}).then((response) => {\r\n\t\treturn response.value === featureValue;\r\n\t});\r\n};\r\n\r\n/**\r\n * This method forces the configcat client to update the config.json which contains the updated flag value.\r\n * This method can be used by applications which update the configcat features flags from UI and fetches the updated value without reloading the page.\r\n * It has been decided to not allow applications to do forceRefresh and hence empty method body\r\n */\r\nexport const forceRefresh = () => {};\r\n\r\n/**\r\n * @param {*} featureKey - flag to check (key)\r\n * If key doesn't exist, configCatClient will return a promise that resolves to null as value of featureKey\r\n * @returns If key does exist, will return the value\r\n */\r\nexport const getValue = (featureKey) => {\r\n\tconst defaultValue = null;\r\n\tconst flag = allFlags.find(o => o.key === featureKey);\r\n\tif(flag && flag.value){\r\n\t\treturn Promise.resolve(flag.value);\r\n\t}else{\r\n\t\treturn Promise.resolve(defaultValue);\r\n\t}\r\n};\r\n\r\n//TODO- get and patch functions?\r\n","import * as events from './event-bus';\r\nimport * as env from './env';\r\nimport * as store from './store';\r\n\r\nimport {\r\n\tget\r\n} from './idm-helpers';\r\n\r\n// Checks to see whether a user has visibility to themselves or themselves and others\r\nexport function checkViewOthersPermission(idmData) {\r\n const idm = store.get('idm');\r\n let envName = env.environmentFromIdmGatewayUrl(idm.idGatewayUrl);\r\n\tif (idm.product === 'FCQA') { envName = 'qa'; }\r\n const envValues = env[envName];\r\n const { ecSand } = envValues;\r\n\r\n const idmAdministrator = idmData.roles.includes('IdmAdministrator');\r\n\r\n let employee = null;\r\n if (idmData.identities){\r\n\t\temployee = idmData.identities.find(x => x.Type === 'employee' || x.Type === 'EmployeeQA');\r\n }\r\n\r\n if (employee) {\r\n get(`${ecSand}/PermissionAPI/api/NumVisibleContextIds/${idmData.userContext.OrganizationId}/Employee?objectName=Employee&actionName=View`, function (res) {\r\n // if this response is greater than 1 the user can see others (in which case we'll show \"Employee Directory\" rather than \"My Profile\")\r\n const viewOthers = res > 1 ? true : false;\r\n events.emit('view-others-permissions-checked', viewOthers );\r\n }, [{key: 'fluser', value: JSON.stringify({'UserKey': employee.Id})}]);\r\n }else if (idmAdministrator) {\r\n events.emit('view-others-permissions-checked', true );\r\n } else {\r\n events.emit('view-others-permissions-checked', false );\r\n }\r\n}\r\n\r\n","// This file can be required in Browserify and Node.js for automatic polyfill\n// To use it: require('es6-promise/auto');\n'use strict';\nmodule.exports = require('./').polyfill();\n","(function (factory) { (0, eval)('this').ambient = factory(); }(function () {\r\n\tconst config = {};\r\n\tconst props = {};\r\n\tconst registeredEvents = {};\r\n\tconst _win = (0, eval)('this');\r\n\tconst _doc = _win.document;\r\n\tconst _body = _doc.body;\r\n\tconst rAF = (\r\n\t\t_win.requestAnimationFrame ||\r\n\t\t_win.webkitRequestAnimationFrame ||\r\n\t\t_win.mozRequestAnimationFrame ||\r\n\t\tfunction( callback ){\r\n\t\t\t_win.setTimeout(callback, 1000 / 60);\r\n\t\t}\r\n\t);\r\n\tlet timeout = null;\r\n\tlet toDelay = 0;\r\n\tlet allClasses = [];\r\n\tlet activeClasses = [];\r\n\tlet currentClasses = [];\r\n\tlet activeEvents = {};\r\n\tlet handlers = {};\r\n\tlet events = {};\r\n\r\n\tconst rafDoUpdate = () => rAF(doUpdate);\r\n\t// executed on every resize event (debounced to 100ms)\r\n\tfunction doUpdate (force) {\r\n\t\tconst propVals = {};\r\n\t\t\r\n\t\tactiveClasses = [];\r\n\t\tfor (let cls in config) {\r\n\t\t\t// skip if in prototype\r\n\t\t\tif (!config.hasOwnProperty(cls)) { continue; }\r\n\r\n\t\t\tlet classes = [];\r\n\t\t\tconfig[cls].__updated__ = false;\r\n\t\t\tlet changePossible = false;\r\n\r\n\t\t\t// if we have activeEvents, we should check\r\n\t\t\t// if any of them apply to this class\r\n\t\t\tif (Object.keys(activeEvents).length) {\r\n\t\t\t\t// check each of our activeEvents\r\n\t\t\t\tfor (let e in activeEvents) {\r\n\t\t\t\t\t// if it's on prototype, bail out\r\n\t\t\t\t\tif (!activeEvents.hasOwnProperty(e)) { continue; }\r\n\t\t\t\t\t// check the class config's registered events\r\n\t\t\t\t\tchangePossible = !!config[cls].__events__[e];\r\n\t\t\t\t\t// if we find that one of our active events could\r\n\t\t\t\t\t// affect this class, there's no reason to check the rest\r\n\t\t\t\t\tif(changePossible) { break; }\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// no active events, that means we're initing\r\n\t\t\t\tchangePossible = true;\r\n\t\t\t}\r\n\r\n\t\t\t// spin over each plugin used by this class\r\n\t\t\tfor (let propName in config[cls]) {\r\n\t\t\t\tlet propClasses;\r\n\t\t\t\tif (propName.indexOf('__') === 0) { continue; }\r\n\t\t\t\t// skip if in prototype\r\n\t\t\t\tif (!config[cls].hasOwnProperty(propName)) { continue; }\r\n\t\t\t\t\r\n\t\t\t\t// skip if we don't have a prop to handle this property\r\n\t\t\t\tconst prop = props[propName];\r\n\t\t\t\tif (props[propName] == null) { continue; }\r\n\t\t\t\t\r\n\t\t\t\t// ensure that the cache structure is constructed for this prop\r\n\t\t\t\tprop.cache = prop.cache || {};\r\n\t\t\t\tprop.cache[cls] = prop.cache[cls] || {};\r\n\r\n\t\t\t\tif (changePossible) {\r\n\t\t\t\t\t// have we not seen this prop yet?\r\n\t\t\t\t\tif (!propVals.hasOwnProperty(propName)) {\r\n\t\t\t\t\t\t// better go get its current value\r\n\t\t\t\t\t\tpropVals[propName] = prop.getCurrentValue();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// has it changed since last time?\r\n\t\t\t\t\t\tif (propVals[propName] !== prop.currentValue) {\r\n\t\t\t\t\t\t\t// update the cache\r\n\t\t\t\t\t\t\tprop.currentValue = propVals[propName];\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t// this prop has changed, we'll need to go get\r\n\t\t\t\t\t\t\t// __updated__ active classes for anything that uses it\r\n\t\t\t\t\t\t\tprop.__updated__ = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// no change, we can pull values from cache\r\n\t\t\t\t\t\t\tprop.__updated__ = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// if this prop has __updated__, then so will the classes\r\n\t\t\t\t\tconfig[cls].__updated__ = config[cls].__updated__ || prop.__updated__;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// has this value changed?\r\n\t\t\t\tif (prop.__updated__ && changePossible || !prop.cache[cls].activeClasses) {\r\n\t\t\t\t\t// calculate active classes\r\n\t\t\t\t\tpropClasses = prop.getActiveClasses(prop.currentValue, cls, config[cls][propName]);\r\n\r\n\t\t\t\t\t// update cached classes value\r\n\t\t\t\t\tprop.cache[cls].activeClasses = propClasses;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// cached value is the same as new\r\n\t\t\t\t\t// use the cached values\r\n\t\t\t\t\tpropClasses = prop.cache[cls].activeClasses;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if this property is invalid, the whole class is\r\n\t\t\t\t// not active, kill classes and go to the next class\r\n\t\t\t\tif (!propClasses.length) {\r\n\t\t\t\t\tclasses = [];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// add the active classes to the list\r\n\t\t\t\t\tclasses = classes.concat(propClasses);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tactiveClasses = activeClasses.concat(classes);\r\n\t\t}\r\n\r\n\t\t// reset active events\r\n\t\tactiveEvents = {};\r\n\r\n\t\t// de-duplicate classes\r\n\t\tactiveClasses = activeClasses.filter(function (val, idx, arr) {\r\n\t\t\treturn arr.indexOf(val) === idx;\r\n\t\t});\r\n\r\n\t\t// push the changes to the page\r\n\t\tupdateBodyClasses();\r\n\r\n\t\t// clear the timeout value so it can be set again\r\n\t\ttimeout = null;\r\n\t}\r\n\r\n\tfunction updateBodyClasses() {\r\n\t\tlet bodyClasses = _body.className;\r\n\r\n\t\t// update currentClasses with active body classes\r\n\t\t// filter out anything we're not in charge of\r\n\t\tcurrentClasses = bodyClasses.split(' ').filter(val => allClasses.includes(val));\r\n\r\n\t\t// search for classes that are not currently active,\r\n\t\t// but should be, and add them\r\n\t\tfor (let i = activeClasses.length; i-- ;) {\r\n\t\t\tconst cls = activeClasses[i];\r\n\t\t\t// check if the point is not longer active and the class is on body\r\n\t\t\tif (!currentClasses.includes(cls)) {\r\n\t\t\t\t// add the class to body\r\n\t\t\t\tbodyClasses += ' ' + cls;\r\n\t\t\t\t// fire any handlers attached to this event\r\n\t\t\t\tif (config[cls]) {\r\n\t\t\t\t\tfire('enter', cls, getPropValues(cls));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (config[cls]) {\r\n\t\t\t\tfire('update', cls, getPropValues(cls));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// search for classes that are active,\r\n\t\t// but shouldn't be, and remove them\r\n\t\tfor (let i = currentClasses.length; i-- ;) {\r\n\t\t\tconst cls = currentClasses[i];\r\n\t\t\t// check if the point is not longer active and the class is on body\r\n\t\t\tif (!activeClasses.includes(cls)) {\r\n\t\t\t\t// remove the class from body\r\n\t\t\t\tbodyClasses = bodyClasses.replace(new RegExp('(^|\\\\s)' + cls + '($|\\\\s)', 'g'), ' ');\r\n\t\t\t\t// fire any handlers attached to this event\r\n\t\t\t\tif (config[cls]) {\r\n\t\t\t\t\tfire('leave', cls, getPropValues(cls));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// push the new classes to body... and filter out extra spaces\r\n\t\t_body.className = bodyClasses.split(' ').filter(v => !!v).join(' ');\r\n\t}\r\n\r\n\t// grabs all the property values that apply to a given class\r\n\tfunction getPropValues (cls) {\r\n\t\tconst values = {};\r\n\t\tfor (let p in config[cls]) {\r\n\t\t\tif (!config[cls].hasOwnProperty(p) || !props[p]) { continue; }\r\n\t\t\tvalues[p] = getPropValue(p);\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n\t// resize debouncing, will execute resize code no more\r\n\t// than once every 100ms\r\n\tfunction debounceUpdate(eventName) {\r\n\t\treturn function (e) {\r\n\t\t\t// queue this event in the bus\r\n\t\t\tactiveEvents[eventName] = e;\r\n\r\n\t\t\tif (!timeout) {\r\n\t\t\t\tif (!toDelay) {\r\n\t\t\t\t\t// no delay, schdedule a rAF for updating\r\n\t\t\t\t\trafDoUpdate();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// delay execution and then schedule an\r\n\t\t\t\t\t// update during an animationFrame\r\n\t\t\t\t\ttimeout = setTimeout(rafDoUpdate, toDelay);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t// initializes confg and attaches to events\r\n\t// ---------------------------------- //\r\n\tfunction init(configure, delay) {\r\n\t\tObject.assign(config, configure);\r\n\r\n\t\t// spin over each class (cls) and check out the\r\n\t\t// condition properties for each\r\n\t\tfor (let cls in configure) {\r\n\t\t\t// skip if in prototype\r\n\t\t\tif (!config.hasOwnProperty(cls)) { continue; }\r\n\r\n\t\t\tconfig[cls].__events__ = {};\r\n\r\n\t\t\tfor (let propName in config[cls]) {\r\n\t\t\t\t// skip if in prototype\r\n\t\t\t\tif (!config[cls].hasOwnProperty(propName)) { continue; }\r\n\r\n\t\t\t\t// skip if we don't have a prop to handle this property\r\n\t\t\t\tif (!props[propName]) { continue; }\r\n\r\n\t\t\t\tconst prop = props[propName];\r\n\r\n\t\t\t\t// setup any handlers that the plugin defines\r\n\t\t\t\tif (prop.on) {\r\n\t\t\t\t\tfor (let onAction in prop.on) {\r\n\t\t\t\t\t\tif (!prop.on.hasOwnProperty(onAction)) { continue; }\r\n\t\t\t\t\t\ton(onAction, cls, prop.on[onAction]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// setup the object for storing cached values\r\n\t\t\t\tprop.cache = prop.cache || {};\r\n\t\t\t\tprop.cache[cls] = prop.cache[cls] || {};\r\n\r\n\t\t\t\t// default to window\r\n\t\t\t\tprop.watchElement = prop.watchElement || _win;\r\n\r\n\t\t\t\t// convert the watch events to an array\r\n\t\t\t\tif (typeof prop.watchEvent === 'string') { prop.watchEvent = prop.watchEvent.split(' '); }\r\n\r\n\t\t\t\tconst classes = prop.getAllClasses ? prop.getAllClasses(cls, config[cls][propName]) : [cls];\r\n\t\t\t\tallClasses = allClasses.concat(classes);\r\n\r\n\t\t\t\tlet wE = prop.watchEvent.length;\r\n\t\t\t\tfor (; wE-- ;) {\r\n\t\t\t\t\tconst watchEvent = prop.watchEvent[wE];\r\n\r\n\t\t\t\t\t// attach the watched events to the class config so we can\r\n\t\t\t\t\t// track what events could affect this class\r\n\t\t\t\t\tconfig[cls].__events__[watchEvent] = true;\r\n\r\n\t\t\t\t\tif (!events[watchEvent]) { events[watchEvent] = []; }\r\n\t\t\t\t\tevents[watchEvent].push(propName);\r\n\r\n\t\t\t\t\t// initialize the watchEvent once only\r\n\t\t\t\t\tif (!registeredEvents[watchEvent] || registeredEvents[watchEvent].indexOf(prop.watchElement) === -1) {\r\n\r\n\t\t\t\t\t\t// setup the resize handlers\r\n\t\t\t\t\t\tif (prop.watchElement.addEventListener) {\r\n\t\t\t\t\t\t\tprop.watchElement.addEventListener(watchEvent, debounceUpdate(watchEvent), false);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tprop.watchElement.attachEvent('on' + watchEvent, debounceUpdate(watchEvent));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Add this event to the list of hooks so it doesn't\r\n\t\t\t\t\t\t// get added again by another property\r\n\t\t\t\t\t\tregisteredEvents[watchEvent] = registeredEvents[watchEvent] || [];\r\n\t\t\t\t\t\tregisteredEvents[watchEvent].push(prop.watchElement);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (typeof delay === 'number') { toDelay = delay; }\r\n\r\n\t\t// do the initial resize logic to kick things off\r\n\t\tdoUpdate();\r\n\t}\r\n\r\n\t// ================================== //\r\n\t// Event Bus API methods\r\n\t// ================================== //\r\n\r\n\tfunction on(action, cls, handler) {\r\n\t\tconst actionArr = action.split(' ');\r\n\t\thandlers[cls] = handlers[cls] || {};\r\n\r\n\t\tfor (let i = actionArr.length; i-- ;) {\r\n\t\t\tconst a = actionArr[i];\r\n\t\t\thandlers[cls][a] = handlers[cls][a] || [];\r\n\t\t\thandlers[cls][a].push(handler);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction off(action, cls, handler) {\r\n\t\tconst actionArr = action.split(' ');\r\n\t\tfor (let j = actionArr.length; j-- ;) {\r\n\t\t\tconst a = actionArr[j];\r\n\t\t\tif (handlers[cls] && handlers[cls][a] && handlers[cls][a].length) {\r\n\t\t\t\tfor (let i = handlers[cls][a].length; i-- ;) {\r\n\t\t\t\t\tif (handlers[cls][a][i] === handler) {\r\n\t\t\t\t\t\thandlers[cls][a].splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction fire(action, cls, values) {\r\n\t\tif (config[cls] == null || !config[cls].__updated__) { return; }\r\n\r\n\t\tif (handlers[cls] && handlers[cls][action] && handlers[cls][action].length) {\r\n\t\t\tconst len = handlers[cls][action].length\r\n\t\t\tfor (let i = 0; i < len; i++) {\r\n\t\t\t\thandlers[cls][action][i](action, cls, values, config[cls]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// ================================== //\r\n\t// Javascript API Helpers\r\n\t// ================================== //\r\n\r\n\tfunction getPropValue(propName) {\r\n\t\t// get the latest value from cache if available\r\n\t\treturn props[propName].currentValue || props[propName].getCurrentValue();\r\n\t}\r\n\r\n\tfunction styleIsActive(cls) {\r\n\t\treturn activeClasses.indexOf(cls) !== -1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init,\r\n\t\ton: on,\r\n\t\toff: off,\r\n\t\tprop: props, // for backward compatibility\r\n\t\tregisterPlugin: (name, plugin) => { props[name] = plugin; },\r\n\t\tgetPluginValue: getPropValue,\r\n\t\tisActive: styleIsActive\r\n\t};\r\n}));\r\n","(function (plugin) {\r\n// ================= Plugin Name ================= //\r\n// //\r\n var name = 'height';\r\n// //\r\n// =============================================== //\r\n window.ambient.registerPlugin(name, plugin);\r\n})({\r\n// ================= Plugin Code ================= //\r\n// //\r\n getCurrentValue: function () {\r\n var w = window,\r\n d = document,\r\n b = d.body;\r\n\r\n return w.innerHeight || b.clientHeight;\r\n },\r\n getActiveClasses: function (winHeight, className, props) {\r\n var aboveMin, belowMax,\r\n min = props.min || 0,\r\n max = props.max || Infinity;\r\n\r\n aboveMin = winHeight >= min;\r\n belowMax = winHeight < max;\r\n\r\n if (aboveMin && belowMax) {\r\n return [className];\r\n } else {\r\n return [];\r\n }\r\n },\r\n watchEvent: 'resize'\r\n// //\r\n// =============================================== //\r\n});\r\n","(function (plugin) {\r\n// ================= Plugin Name ================= //\r\n// //\r\n var name = 'width';\r\n// //\r\n// =============================================== //\r\n window.ambient.registerPlugin(name, plugin);\r\n})({\r\n// ================= Plugin Code ================= //\r\n// //\r\n getCurrentValue: function () {\r\n var w = window,\r\n d = document,\r\n b = d.body;\r\n\r\n return w.innerWidth || b.clientWidth;\r\n },\r\n\r\n getAllClasses: function (className, props) {\r\n var i, classes = [], max;\r\n\r\n props.min = props.min || 0;\r\n props.max = props.max || Infinity;\r\n props.bend = props.bend || 0;\r\n\r\n classes = classes.concat([\r\n className,\r\n className + '-gte',\r\n className + '-lte'\r\n ]);\r\n\r\n if (props.bend) {\r\n max = (props.max === Infinity) ? 8192 : props.max;\r\n i = ~~((max-props.min) / props.bend);\r\n\r\n for (; i-- ;) {\r\n classes.push(className + '-' + (i+1));\r\n }\r\n }\r\n return classes;\r\n },\r\n getActiveClasses: function (winSize, className, props) {\r\n var i, aboveMin, belowMax,\r\n classes = [];\r\n\r\n aboveMin = winSize >= props.min;\r\n belowMax = winSize < props.max;\r\n\r\n if (aboveMin && belowMax) {\r\n classes.push(className);\r\n\r\n if (props.bend) {\r\n i = ~~((winSize-props.min) / props.bend);\r\n\r\n for (; i-- ;) {\r\n classes.push(className + '-' + (i+1));\r\n }\r\n }\r\n }\r\n\r\n if (aboveMin) { classes.push(className + '-gte'); }\r\n if (belowMax) { classes.push(className + '-lte'); }\r\n\r\n return classes;\r\n },\r\n watchEvent: 'resize'\r\n// //\r\n// =============================================== //\r\n});\r\n","ambient.init({\r\n\t'sk-auto-collapse-nav': {width: { max: 1260 }},\r\n\t'sk-adjust-menu-columns': {height: {}},\r\n\t'sk-screen-small': {width: { max: 1100 }},\r\n\t'sk-screen-medium': {width: { min: 1100, max: 1260 }},\r\n\t'sk-screen-large': {width: { min: 1260 }},\r\n}, 0);\r\n","export const activityIndicator = (ctx, attrs, i18n) => ` `;\nexport const appSwitcher = (ctx, attrs, i18n) => `

    ${i18n('Your Solutions')}

      `;\nexport const contactOrg = (ctx, attrs, i18n) => ``;\nexport const footer = (ctx, attrs, i18n) => `
      `;\nexport const header = (ctx, attrs, i18n) => `
      `;\nexport const help = (ctx, attrs, i18n) => `

      ${i18n('Help Resources')}

              `;\nexport const impersonatedUser = (ctx, attrs, i18n) => `
              ${i18n('viewing as')}
              ${ctx.firstName} ${ctx.lastName}
              `;\nexport const loader = (ctx, attrs, i18n) => `
              ${!!attrs.statusText ? `
              ${attrs.statusText}
              ` : ''}
              ${!!attrs.fill ? `
              ` : ''}`;\nexport const nav = (ctx, attrs, i18n) => `
              ${ i18n('Navigation') }
                © ${(new Date()).getFullYear()} | ${ i18n('All rights reserved') }
                © ${(new Date()).getFullYear()}
                `;\nexport const navItem = (ctx, attrs, i18n) => ` ${ctx.title} ${ctx.children && ctx.children.length ? `` : ''}
                `;\nexport const navItemMegaMenu = (ctx, attrs, i18n) => `
                `;\nexport const navItemSubmenu = (ctx, attrs, i18n) => `
                  `;\nexport const notifications = (ctx, attrs, i18n) => `${ctx.url == null ? `` : ` ` }

                  ${i18n('Recent Notifications')}

                    ${ctx.url == null ? `` : ` ${i18n('Notifications')} ` }
                      `;\nexport const orgSwitcher = (ctx, attrs, i18n) => `

                      ${i18n('Select an Organization')}

                        Load All
                          Load All
                          `;\nexport const pickApp = (ctx, attrs, i18n) => `

                          ${i18n('Select an Application')}

                            `;\nexport const pickOrg = (ctx, attrs, i18n) => `

                            ${i18n('Select an Organization')}

                              Load All
                              `;\nexport const pickOrgApp = (ctx, attrs, i18n) => `
                              `;\nexport const search = (ctx, attrs, i18n) => `

                              ${i18n('Search Results')}

                              `;\nexport const sessionTimeout = (ctx, attrs, i18n) => `
                              ${i18n('You will be signed out soon.')}
                              ${i18n('Due to inactivity, your session will end and you will be signed out. Do you want to stay signed in?')}

                              ${i18n('You have been signed out.')}

                              ${i18n('For your security and protection of your data, you have been signed out due to inactivity.')}

                              `;\nexport const siteErrors = (ctx, attrs, i18n) => `

                              Something went wrong.

                              We don’t know what happened but something went wrong. Please wait a few minutes then try to sign in again.

                              `;\nexport const skipNav = (ctx, attrs, i18n) => `${i18n('Skip to Main Content')}`;\nexport const tooltip = (ctx, attrs, i18n) => ` ${attrs.content}`;\nexport const unsupportedBrowserAlert = (ctx, attrs, i18n) => ``;\nexport const userInfo = (ctx, attrs, i18n) => `

                              ${i18n('Your Roles')}

                              • ${i18n('No Results Found')}

                                ${i18n('Navigation')}

                                ${i18n('Your Frontline Account')}

                                `;","/**\r\n * @module Sidekick.Store\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Validates a key set in the store.\r\n * @function isStoreSet\r\n * @instance\r\n * @param {String} store - Store in which key to be checked\r\n * @param {String} key - Key to be checked\r\n * @param {String} mutuallyExclusiveKeys - mutuallyExclusiveKeys map\r\n */\r\n export const isStoreSet = (store, key, mutuallyExclusiveKeys) => {\r\n\treturn !!store[mutuallyExclusiveKeys[key]];\r\n};\r\n","export const handleVendorNavItemClick = (vendorId, orgId, idm) => {\r\n if (window.vendorSSO) {\r\n if (idm && (idm.accessToken || idm.getAccessToken)) {\r\n window.vendorSSO.store.set('vendorSSO-data', {\r\n accessToken: idm.accessToken,\r\n getAccessToken: idm.getAccessToken,\r\n orgId\r\n });\r\n window.vendorSSO.open({\r\n id: vendorId\r\n });\r\n } else {\r\n\t\t\t// eslint-disable-next-line no-console\r\n console.error('Sidekick Error: `idm` store does not contain the access token data.');\r\n }\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.error('Sidekick Error: `vendorSSO` is not available in `window` object');\r\n }\r\n};\r\n","/* globals ambient */\r\nimport loadPlatformNav from './nav-platform';\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport * as store from '../../util/store';\r\nimport * as keyPress from '../../util/key-press-helpers';\r\n\r\nconst expandKey = 'sk-leftnav-expanded';\r\nconst storage = window.localStorage;\r\nconst animationDuration = 300;\r\n\r\n/**\r\n * Top level navigation\r\n * @class Sidekick.Navigation\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs - Any attributes present on the \"elem\" dom node\r\n * @param {Object} ctx - Context object containing nav data\r\n * @param {Function} i18n - translation function\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\tloadPlatformNav(elem, i18n);\r\n\tvar autoCollapseNav = ambient.isActive('sk-auto-collapse-nav');\r\n\tvar currentPath = '';\r\n\tconst appCfg = store.get('sk-config');\r\n\r\n\t// stores the expanded state of the user preference\r\n\tlet expandState = storage.getItem(expandKey) !== 'false';\r\n\r\n\t/////\r\n\t// dom elements we require access to\r\n\t//\r\n\tconst domAppEl = dom.element(appCfg.appElement);\r\n\tconst domBody = dom.element(document.body);\r\n\tconst [domDimmer] = elem.find('.sk--content-dimmer');\r\n\tconst [domNavArrowIcon] = elem.find('.sk--nav-arrow');\r\n\tconst [domNavArrowTooltip] = elem.find('.sk--nav-arrow-tooltip');\r\n\tconst [domTopSection] = elem.find('.sk--top-section');\r\n\tconst [domBottomSection] = elem.find('.sk--bottom-section');\r\n\tconst [domOrgBrandSmall] = elem.find('.sk--org-brand-small');\r\n\tconst [domOrgBrandLarge] = elem.find('.sk--org-brand-large');\r\n\tconst [domFlBrandLarge] = domBottomSection.find(`.sk--full-logo > a`);\r\n\tconst [domFlBrandSmall] = domBottomSection.find(`.sk--small-logo > a`);\r\n\r\n\t/////\r\n\t// init styles\r\n\t//\r\n\r\n\t/////\r\n\t// register event listeners and handlers\r\n\t//\r\n\tdomTopSection.on('click', (evt) => evt.stopPropagation());\r\n\tdomBottomSection.on('click', (evt) => evt.stopPropagation());\r\n\tdomBody.on('click', closeSubMenu);\r\n\tdomDimmer.on('click', () => autoCollapseNav ? toggleNavExpanded(false) : closeSubMenu());\r\n\tevents.on('sk-menu-open', function (menu) {\r\n\t\tif (menu === null) { return; }\r\n\t\tif (autoCollapseNav) { toggleNavExpanded(false); }\r\n\t\tcloseSubMenu();\r\n\t});\r\n\r\n\tstore.onValueOnce('org-branding-data', function (branding) {\r\n\t\tif (branding == null) { return; }\r\n\t\tconst {rectangleImagePublicUrl, squareImagePublicUrl} = branding;\r\n\t\tif (rectangleImagePublicUrl == null) { return; }\r\n\t\tif (squareImagePublicUrl == null) { return; }\r\n\r\n\t\tdomOrgBrandSmall.css('background-image', `url(${squareImagePublicUrl})`);\r\n\t\tdomOrgBrandLarge.css('background-image', `url(${rectangleImagePublicUrl})`);\r\n\t\telem.addClass('sk--has-org-branding');\r\n\t});\r\n\r\n\tevents.on('nav.menu-item-clicked', handleMenuClick);\r\n\tevents.on('nav.plat-menu-item-clicked', handleMenuClick);\r\n\tfunction handleMenuClick(item) {\r\n\t\tif (!item.onClick && !(item.children && item.children.length)) {\r\n\t\t\tdismissVendorOverlay();\r\n\t\t}\r\n\t\t// clear focus from item clicked\r\n\t\tif (document.activeElement) { document.activeElement.blur(); }\r\n\t\t// handle NAV collapsing after menu click\r\n\t\tif (autoCollapseNav) {\r\n\t\t\ttoggleNavExpanded(false);\r\n\t\t} else {\r\n\t\t\tcloseSubMenu();\r\n\t\t}\r\n\t}\r\n\r\n\tevents.on('nav.visible', function(show) {\r\n\t\tdomAppEl.toggleClass('sk-nav-hidden', !show);\r\n\t}, true);\r\n\tfunction handleArrowToggle(evt) {\r\n\t\tif (!autoCollapseNav) {\r\n\t\t\texpandState = !domBody.hasClass('sk-nav-expanded');\r\n\t\t\tstorage.setItem(expandKey, expandState);\r\n\t\t\tevents.emit('_nav.expand-arrow', expandState);\r\n\t\t}\r\n\t\ttoggleNavExpanded();\r\n\t}\r\n\tdomNavArrowIcon.on('click', (evt) => {\r\n\t\thandleArrowToggle(evt);\r\n\t\t// evt.target.blur();\r\n\t});\r\n\tdomNavArrowIcon.on('keydown', (evt) => {\r\n\t\tswitch(true) {\r\n\t\tcase keyPress.isEnter(evt):\r\n\t\tcase keyPress.isSpace(evt):\r\n\t\t\thandleArrowToggle(evt);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\tambient.on('enter', 'sk-auto-collapse-nav', () => setAutoCollapseNav(true));\r\n\tambient.on('leave', 'sk-auto-collapse-nav', () => setAutoCollapseNav(false));\r\n\t// setInterval is the most reliable way to handle all path changes ¯\\_(ツ)_/¯\r\n\tsetInterval(checkForPathChange, 500);\r\n\r\n\t// listen for idm-data for a user preference; update local variable and storage if found\r\n\tstore.onValueOnce('idm-data', data => {\r\n\t\tif (data.session.State == null || data.session.State.prefLeftNavExpanded == null) { return; }\r\n\t\texpandState = data.session.State.prefLeftNavExpanded;\r\n\t\tstorage.setItem(expandKey, expandState);\r\n\t\tif (!autoCollapseNav) {\r\n\t\t\ttoggleNavExpanded(expandState);\r\n\t\t}\r\n\t});\r\n\r\n\tdomBody.addClass('sk-nav-submenu-collapsed');\r\n\tif (autoCollapseNav) { elem.addClass('sk-nav-collapsed'); }\r\n\r\n\tif (ctx.menuItems == null) { return; }\r\n\r\n\t// if extended nav data is not loaded yet, wait for data and re-render nav\r\n\tlet extendedNav = store.get('_platform-nav-items');\r\n\t// if the extended nav isn't available yet, setup another render call for when it shows up\r\n\tif (extendedNav == null) {\r\n\t\tstore.onValueOnce('_platform-nav-items', eNav => renderMenu(eNav, true));\r\n\t}\r\n\t// render the menu NOW because we want to show it as soon as possible\r\n\trenderMenu(extendedNav || []);\r\n\r\n\tfunction renderMenu(platformNav, kickCycle = false) {\r\n\t\tconst [menuContainer] = elem.find('.sk--menu-items');\r\n\r\n\t\tconst appMenuItems = ctx.menuItems.map(m => Object.assign(m, {isPlatformMenu: false, baseUrl: ctx.baseUrl}));\r\n\t\tconst menuDivider = platformNav.length ? ['-'] : [];\r\n\t\tconst platformMenuItems = platformNav.map(m => Object.assign(m, {isPlatformMenu: true}));\r\n\r\n\t\tconst mainMenuItems = [\r\n\t\t\t...appMenuItems, // product nav\r\n\t\t\t...menuDivider, // ------------\r\n\t\t\t...platformMenuItems // platform nav\r\n\t\t].map(function (item, idx) {\r\n\t\t\tif (item === '-') {\r\n\t\t\t\treturn dom.parse(`
                              • `);\r\n\t\t\t}\r\n\t\t\t// create the base element\r\n\t\t\tconst el = dom.parse(`
                              • `);\r\n\r\n\t\t\t// add menuName value if present\r\n\t\t\tif (typeof item.menuName === 'string') {\r\n\t\t\t\tel.data('menu-name', item.menuName);\r\n\t\t\t}\r\n\r\n\t\t\t// attach context item for component rendering\r\n\t\t\tel._.context = item;\r\n\r\n\t\t\t// after the next sidekick cycle processes this menu item, hook it\r\n\t\t\t// up to handle flyouts and menu actions\r\n\t\t\tdom.rAF(function () {\r\n\t\t\t\tconst domContainer = el.find('.sk--main-menu-item-container')[0];\r\n\r\n\t\t\t\tif (item.onClick) {\r\n\t\t\t\t\tdomContainer.on('click', evt => {\r\n\t\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t\titem.onClick();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!item.url || (item.children && item.children.length)) {\r\n\t\t\t\t\tdomContainer.on('click', evt => evt.preventDefault());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (item.children && item.children.length) {\r\n\t\t\t\t\tdomContainer.on('click', () => menuHasAttention(el));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdomContainer.on('click', closeSubMenu);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn el;\r\n\t\t});\r\n\t\t// add the menu items to the DOM\r\n\t\tmenuContainer.empty().append(mainMenuItems);\r\n\t\tif (kickCycle) { window.sidekick.cycle(); }\r\n\r\n\t\tdom.rAF(() => {\r\n\t\t\tlet val = (\r\n\t\t\t\tdomTopSection._.getBoundingClientRect().bottom\r\n\t\t\t\t+ domBottomSection._.getBoundingClientRect().height\r\n\t\t\t\t- elem._.getBoundingClientRect().top\r\n\t\t\t);\r\n\t\t\telem.css('min-height', `${val}px`);\r\n\t\t});\r\n\t}\r\n\r\n\tif (!autoCollapseNav) {\r\n\t\ttoggleNavExpanded(expandState);\r\n\t}\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\t// compare the current path to the location and emit an event if path has changed\r\n\tfunction checkForPathChange() {\r\n\t\tif (currentPath === window.location.href) { return; }\r\n\t\tconst previousPath = currentPath;\r\n\t\tcurrentPath = window.location.href;\r\n\t\tconst host = window.location.host;\r\n\t\tconst path = currentPath.substring(currentPath.indexOf(host) + host.length);\r\n\r\n\t\tevents.emit('_location.path-change', path, currentPath, previousPath);\r\n\t}\r\n\r\n\tvar expandedFootprint = null;\r\n\r\n\tfunction toggleNavArrowTooltipContent(open) {\r\n\t\tconst navArrowContent = i18n(open ? 'Minimize Navigation' : 'Expand Navigation');\r\n\t\tdomNavArrowTooltip.attr('content', navArrowContent);\r\n\t\tdom.rAF(function () {\r\n\t\t\tconst tipContent = domNavArrowTooltip.find('.sk-tip-content')[0];\r\n\t\t\tif (tipContent != null) {\r\n\t\t\t\ttipContent._.textContent = navArrowContent;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction toggleNavExpanded(open) {\r\n\t\tif (open == null) { open = !domBody.hasClass('sk-nav-expanded'); }\r\n\r\n\t\tconst newExpandedFootprintState = open && !autoCollapseNav;\r\n\t\tif (newExpandedFootprintState !== expandedFootprint) {\r\n\t\t\tevents.emit('nav.expanded-footprint', newExpandedFootprintState);\r\n\t\t\texpandedFootprint = newExpandedFootprintState;\r\n\t\t}\r\n\r\n\t\tif (open) {\r\n\t\t\tevents.emit('sk-menu-open', null); // close other menus\r\n\t\t\telem.removeClass('sk-nav-collapsed'); // the nav is about to NOT be collapsed\r\n\t\t}\r\n\r\n\t\ttoggleNavArrowTooltipContent(open);\r\n\r\n\t\t// allow the sk-nav-collapsed class change to take effect before making\r\n\t\t// more DOM changes, this makes css animations work correctly\r\n\t\tdom.rAF(function () {\r\n\t\t\t// if there is a submenu open, close it while we toggle the nav state\r\n\t\t\tif (domBody.hasClass('sk-nav-submenu-active')) { closeSubMenu(); }\r\n\t\t\t// add/remove sk-nav-expanded class if we are opening\r\n\t\t\tdomBody.toggleClass('sk-nav-expanded', open);\r\n\r\n\t\t\t// if we are closing, we need to add the sk-nav-collapsed class after the\r\n\t\t\t// css animation finishes\r\n\t\t\tif (!open) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (!domBody.hasClass('sk-nav-expanded')) {\r\n\t\t\t\t\t\telem.addClass('sk-nav-collapsed');\r\n\t\t\t\t\t}\r\n\t\t\t\t}, animationDuration);\r\n\t\t\t}\r\n\r\n\t\t\t// toggle the tabindex of the logo links according to nav expanded state\r\n\t\t\t// (preferred due to the animation)\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tdomFlBrandLarge.attr('tabindex', open ? null : '-1'); // only tabable when open\r\n\t\t\t\tdomFlBrandSmall.attr('tabindex', open ? '-1' : null); // only tabable when shut\r\n\t\t\t}, animationDuration);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction closeSubMenu() {\r\n\t\tdomBody.removeClass('sk-nav-submenu-active');\r\n\t\tdom.find('.sidekick.sk-nav .sk-submenu-active').forEach(m => m.removeClass('sk-submenu-active'));\r\n\t\t// add the sk-nav-submenu-collapsed class after the css animation finishes\r\n\t\tsetTimeout(() => domBody.addClass('sk-nav-submenu-collapsed'), animationDuration);\r\n\t}\r\n\r\n\tfunction setAutoCollapseNav(state) {\r\n\t\tautoCollapseNav = state;\r\n\t\tif (state) {\r\n\t\t\ttoggleNavExpanded(false);\r\n\t\t} else {\r\n\t\t\ttoggleNavExpanded(expandState);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction dismissVendorOverlay() {\r\n\t\tif (window.vendorSSO) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\twindow.vendorSSO.destroy();\r\n\t\t\t}, 500);\r\n\t\t}\r\n\t}\r\n\r\n\t// the menu item gains attention\r\n\tfunction menuHasAttention(menu) {\r\n\t\tevents.emit('sk-menu-open', null); // close other menus\r\n\t\tconst [subMenu] = menu.find('.sk-nav-item-mega-menu,.sk-nav-item-submenu');\r\n\t\tsubMenu.on('keydown', (evt) => {\r\n\t\t\tswitch(true) {\r\n\t\t\tcase keyPress.isEscape(evt):\r\n\t\t\t\tsubMenu.removeClass('sk-submenu-active');\r\n\t\t\t\tmenu.removeClass('sk-submenu-active');\r\n\t\t\t\tconst [link] = menu.find('a');\r\n\t\t\t\tif (link != null) {\r\n\t\t\t\t\tlink._.focus();\r\n\t\t\t\t}\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\tdom.rAF(function () {\r\n\t\t\tdomBody.removeClass('sk-nav-submenu-collapsed');\r\n\t\t\tdom.rAF(function () {\r\n\t\t\t\tmenu.toggleClass('sk-submenu-active');\r\n\t\t\t\tif (menu.hasClass('sk-submenu-active')) {\r\n\t\t\t\t\t// make sure the global context reflects that there is a menu open\r\n\t\t\t\t\tdomBody.addClass('sk-nav-submenu-active');\r\n\t\t\t\t\tif (subMenu != null) {\r\n\t\t\t\t\t\tsubMenu._.focus();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// if there's another menu open, close it\r\n\t\t\t\t\tdom.find('.sidekick.sk-nav .sk-submenu-active')\r\n\t\t\t\t\t\t.filter(el => el !== menu)\r\n\t\t\t\t\t\t.forEach(el => el.removeClass('sk-submenu-active'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcloseSubMenu();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n","const matcherMap = {};\r\n\r\nexport const pathMatchesRoute = function (path, route, matcher, baseUrl = '') {\r\n\tif (path == null) { return false; }\r\n\r\n\tconst {host, protocol} = window.location;\r\n\tconst fqdn = `${protocol}//${host}`;\r\n\tconst fqdnPath = `${fqdn}${path}`;\r\n\r\n\t// if a matcher value is provided, check it first\r\n\tif (typeof matcher === 'string' && matcher.length) {\r\n\t\t// if we've never seen this pattern before, cache it\r\n\t\tif (matcherMap[matcher] == null) {\r\n\t\t\tmatcherMap[matcher] = new RegExp(matcher, 'i');\r\n\t\t}\r\n\t\t// check the pattern agains the path AND FQDN locations\r\n\t\treturn matcherMap[matcher].test(path)\r\n\t\t\t|| matcherMap[matcher].test(fqdnPath);\r\n\t} else if (matcher instanceof Array) {\r\n\t\t// multiple matchers can be provided\r\n\t\t// cache the generated RegExp list for future execution\r\n\t\tif (matcher._re == null) {\r\n\t\t\tmatcher._re = matcher.map(rule => new RegExp(rule, 'i'));\r\n\t\t}\r\n\t\t// check the pattern agains the path AND FQDN locations\r\n\t\treturn matcher._re.reduce((state, re) => state\r\n\t\t\t|| re.test(path)\r\n\t\t\t|| re.test(fqdnPath)\r\n\t\t, false);\r\n\t} else if (typeof route === 'string') {\r\n\t\t// if the route is an absolute link to the current domain\r\n\t\t// convert to a relative link for path comparison\r\n\t\tif (route.startsWith(fqdn)) { route = route.slice(fqdn.length); }\r\n\t\troute = baseUrl + route;\r\n\t\treturn path.startsWith(route);\r\n\t}\r\n\r\n\t// all attempts to match this route have failed\r\n\treturn false;\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport * as persist from '../../util/persistence';\r\nimport { glean } from '../../util/object-helpers';\r\nimport { detect } from 'detect-browser';\r\n\r\nconst _win = (0, eval)('this'); // eslint-disable-line\r\nconst _log = glean(_win, x => x.console.log.bind(x.console), () => {});\r\nconst supportedBrowsers = [\r\n {name: 'chrome', version: 50},\r\n {name: 'firefox', version: 40},\r\n {name: 'safari', version: 11, os: 'mac os'},\r\n {name: 'ie', version: 11},\r\n {name: 'edge'},\r\n {os: 'ios'}\r\n];\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n const browser = detect();\r\n const alreadyDismissed = persist.get('browser-warning-dismissed');\r\n // console.log('alreadyDismissed =====> ', alreadyDismissed);\r\n if (alreadyDismissed === true) { return; }\r\n const name = glean(browser, x => x.name.toLowerCase());\r\n // console.log('NAME =====>', name);\r\n const os = glean(browser, x => x.os.toLowerCase());\r\n // console.log('OS =====>', os);\r\n const version = glean(browser, x => parseInt(x.version.split('.')[0], 10), 0);\r\n // console.log('VERSION =====>', version);\r\n const isSupported = supportedBrowsers.some(b => (\r\n (!!name && (b.name || name) === name)\r\n && (!!os && (b.os || os) === os)\r\n && (!!version && (b.version || 0) <= version)\r\n ));\r\n\r\n if (isSupported) { return; }\r\n _log('UNSUPPORTED BROWSER DETECTED', {\r\n name, os, version,\r\n userAgent: glean(_win, x => x.navigator.userAgent, 'UserAgent Not Found')\r\n });\r\n\r\n const domBody = dom.element(_win.document.body);\r\n const [domDismissBtn] = elem.find('button');\r\n\r\n domBody.addClass('sk-unsupported-browser');\r\n\r\n const dismiss = () => {\r\n persist.set('browser-warning-dismissed', true, { expires: null });\r\n elem.css({ position: 'absolute', left: '0' });\r\n dom.rAF(() => {\r\n domBody.addClass('sk-unsupported-browser-dismissed');\r\n setTimeout(() => elem.css({ display: 'none' }), 550);\r\n });\r\n };\r\n\r\n events.on(\r\n 'nav.expanded-footprint',\r\n state => elem.toggleClass('sk--nav-expanded-footprint', state)\r\n );\r\n\r\n domDismissBtn.on('click', dismiss);\r\n};\r\n","import * as events from '../../util/event-bus';\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as store from '../../util/store';\r\n\r\n/**\r\n * Container class\r\n * @class Sidekick.Header\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n */\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\tconst domAppEl = dom.element(store.get('sk-config').appElement);\r\n\tconst { hideAppSwitcher, hideOrgSwitcher, hideSearch, customLogo, customLogoHomeUrl, responsiveTopNav, isB2C } = store.get('sk-config');\r\n\tconst [domExitImpersonation] = elem.find('.sk--impersonation-exit');\r\n\tconst [domPassportLogo] = elem.find('.frontline-logo');\r\n\tconst [domPassportCustomLogo] = elem.find('.custom-logo');\r\n\tconst domLogoElement = document.querySelectorAll('.frontline-logo');\r\n\tconst domCustomLogoElement = document.querySelectorAll('.custom-logo');\r\n\r\n\tif(responsiveTopNav) {\r\n\t\tconst [domHeader] = domAppEl.find('.sk-header');\r\n\t\tdomHeader.css('min-width', '320px');\r\n\r\n\t\tif(!isB2C) {\r\n\t\t\tdomLogoElement.forEach((domLogoElement) => {\r\n\t\t\t\tdomLogoElement.classList.add('frontline-responsive-logo');\r\n\t\t\t});\r\n\t\t\tdomCustomLogoElement.forEach((domCustomLogoElement) => {\r\n\t\t\t\tdomCustomLogoElement.classList.add('no-padding');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tevents.on('header.visible', function (show) {\r\n\t\tdomAppEl.toggleClass('sk-header-hidden', !show);\r\n\t\telem.toggleClass('sk-hidden', !show);\r\n\t}, true);\r\n\r\n\t// impersonation v2 overrides regular impersonation modes\r\n\tlet activelyImpersonatingV2 = false;\r\n\tlet idGatewayBaseUrl = '';\r\n\tstore.onValue('idm', ({idGatewayUrl, isImpersonatingV2 = false}) => {\r\n\t\tactivelyImpersonatingV2 = isImpersonatingV2;\r\n\t\tidGatewayBaseUrl = (idGatewayUrl.endsWith('/')\r\n\t\t\t? idGatewayUrl.slice(0, -1)\r\n\t\t\t: idGatewayUrl\r\n\t\t);\r\n\t\tif (isImpersonatingV2) {\r\n\t\t\tevents.emit('_header.impersonation', isImpersonatingV2);\r\n\t\t}\r\n\t}, {greedy: true});\r\n\r\n\t// set header class for passport mode to allow for separate styling\r\n\tstore.onValue('passport', () => {\r\n\t\tdomAppEl.toggleClass('sk-passport', true);\r\n\t\tconst elements = {\r\n\t\t\t'sk-app-switcher': hideAppSwitcher,\r\n\t\t\t'sk-org-switcher': hideOrgSwitcher,\r\n\t\t\t'sk-search': hideSearch\r\n\t\t};\r\n\r\n\t\tfor (const [key, value] of Object.entries(elements)) {\r\n\t\t\tif (value) {\r\n\t\t\t\tconst element = document.querySelector(`.${key}`);\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\telement.remove();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (customLogo) {\r\n\t\t\tdomPassportLogo.attr('style', 'display:none !important');\r\n\t\t\tdomPassportCustomLogo.attr('style', 'display:inline-block !important');\r\n\t\t\t// if responsiveTopNav is true, add the logo-mobile class to the custom logo\r\n\t\t\tconst responsiveLogoClass = responsiveTopNav ? 'logo-mobile': '';\r\n\t\t\tconst domCustomLogo = `\"Logo\"`;\r\n\t\t\tif (!customLogoHomeUrl) {\r\n\t\t\t\tdomPassportCustomLogo._.innerHTML = domCustomLogo;\r\n\t\t\t\tdomPassportCustomLogo.on('click', function (evt) {\r\n\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tevents.emit('header.user-info.frontline-home');\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdomPassportCustomLogo._.innerHTML = `${domCustomLogo}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t// this greedy, terminal event handler acts as a gatekeeper. If impersonation v2\r\n\t// is active, we need to ignore calls to alter impersonation mode by the application.\r\n\tevents.on('header.impersonation', (state) => {\r\n\t\tif (activelyImpersonatingV2) { return; }\r\n\t\tevents.emit('_header.impersonation', state);\r\n\t}, { greedy: true, terminal: true });\r\n\r\n\t// apply the class based on the internal event that is controlled by the gatekeeper\r\n\tevents.on('_header.impersonation', state => domAppEl.toggleClass('sk-impersonation', state), true);\r\n\r\n\tdomExitImpersonation.on('click', function (evt) {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\t\tif (activelyImpersonatingV2) {\r\n\t\t\twindow.location.href = `${idGatewayBaseUrl}/impersonate/v2/user/end`;\r\n\t\t} else {\r\n\t\t\tevents.emit('header.end-impersonation');\r\n\t\t}\r\n\t});\r\n\t// adding the click of fl logo button in morpheus\r\n\tdomPassportLogo.on('click', function(evt) {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\t\tevents.emit('header.user-info.frontline-home');\r\n\t});\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport {cmptMenu} from '../../util/cmpt-common-features';\r\nimport * as store from '../../util/store';\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Displays notifications\r\n * @class Sidekick.Notifications\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n * @emits notification.delete\r\n * @emits notification.mark-as-read\r\n * @listens store notifications\r\n * @example Array of notifications\r\n * title: Notification Title\r\n * content: Notification Content\r\n * unread: Optional. Shows the unread dot\r\n * timestamp: Optional. Shows a timestamp\r\n * {\r\n\ttitle: 'this is notification 1',\r\n\tcontent: 'You got notified...',\r\n\tunread: true\r\n}, {\r\n\ttitle: 'this is notification 2',\r\n\tcontent: 'You got notified... again!',\r\n\ttimestamp: 'TODAY'\r\n}\r\n */\r\nexport default function (elem, attrs, ctx, i18n) {\r\n const { responsiveTopNav } = store.get('sk-config');\r\n\r\n // Find DOM elements\r\n const domElements = {\r\n desktop: {\r\n cont: elem.find('.menulist')[0],\r\n menu: elem.find('.menu')[0],\r\n bell: elem.find('.control')[0],\r\n unreadBadge: elem.find('.control .sk--unread')[0],\r\n menuCloseIcon: elem.find('.ss-ctrl-clear')[0]\r\n },\r\n mobile: {\r\n cont: elem.find('.menulist-mobile')[0],\r\n menu: elem.find('.menu-notifications-mobile')[0],\r\n bell: elem.find('.control-responsive-notifications')[0],\r\n unreadBadge: elem.find('.control-responsive-notifications .sk--unread')[0],\r\n notificationBtn: elem.find('.control-responsive-notifications')[0],\r\n },\r\n };\r\n\r\n const domButtonElements = document.querySelectorAll('.notifications-btn');\r\n const domMenuElements = document.querySelectorAll('.menu-notications');\r\n\r\n if (responsiveTopNav) {\r\n domButtonElements.forEach((domButtonElement) => {\r\n domButtonElement.classList.add('sk-notification-responsive');\r\n });\r\n domMenuElements.forEach((domMenuElement) => {\r\n domMenuElement.classList.add('sk-notification-menu-responsive');\r\n });\r\n if (attrs.role === 'navitem') {\r\n domElements.mobile.notificationBtn.css('display', 'block');\r\n if (ctx.url != null) {\r\n domElements.mobile.bell.attr('target', ctx.target);\r\n events.on('notifications.unread-count', setUnreadBadge, true);\r\n return;\r\n }\r\n domElements.mobile.notificationBtn.on('click', (evt) => {\r\n evt.stopPropagation();\r\n evt.preventDefault();\r\n const displayMobileMenu = domElements.mobile.menu.css('display');\r\n const displayAction = displayMobileMenu === 'none'? 'block' : 'none';\r\n domElements.mobile.menu.css('display', displayAction);\r\n });\r\n }\r\n }\r\n\r\n // Handle initial state and data changes\r\n if (ctx.url != null) {\r\n domElements.desktop.bell.attr('target', ctx.target);\r\n events.on('notifications.unread-count', setUnreadBadge, true);\r\n return;\r\n }\r\n store.onValue('notifications', updateAllNotifications);\r\n\r\n // Listen for events and take action\r\n cmptMenu(elem, domElements.desktop.bell, domElements.desktop.menu);\r\n domElements.desktop.menuCloseIcon.on('click', () => events.emit('sk-menu-close', elem));\r\n handleMenuEvent(domElements.desktop);\r\n if(responsiveTopNav) {\r\n handleMenuEvent(domElements.mobile);\r\n }\r\n\r\n // Update function for when notification list changes\r\n function updateNotificationList(newCtx, elements) {\r\n // Maintain backward compatibility with ctx as an array\r\n if (Object.prototype.toString.call(newCtx) === '[object Array]') {\r\n newCtx = { items: newCtx };\r\n }\r\n\r\n\t\t// update our context object\r\n\t\tif (ctx.items !== newCtx.items) { ctx = newCtx; }\r\n\r\n // Update the unread count\r\n updateUnread(newCtx);\r\n const domNotificationsEmpty = dom.parse(`
                              • ${i18n('You have no notifications')}
                              • `);\r\n\r\n // No items to display\r\n if (ctx.items.length === 0) { elements.cont.children(domNotificationsEmpty); return; }\r\n\r\n // Process the list of items to display\r\n elements.cont.children(ctx.items.map(item => {\r\n const el = dom.parse(`\r\n
                              • \r\n

                                \r\n ${item.unread ? '' : ''}\r\n ${item.title}\r\n

                                \r\n
                                ${item.content}
                                \r\n ${item.timestamp ? `${item.timestamp}` : ''}\r\n \r\n \r\n
                              • \r\n `);\r\n\r\n\t\t\tel.find('.remove')[0].on('click', evt => {\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevents.emit('notification.delete', item);\r\n\t\t\t});\r\n\r\n if (item.unread) {\r\n el.find('.mark-read')[0].on('click', function (evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n events.emit('notification.mark-as-read', item);\r\n updateUnread(ctx);\r\n });\r\n el.on('click', function (evt) {\r\n evt.stopPropagation();\r\n events.emit('notification.mark-as-read', item);\r\n });\r\n }\r\n\r\n\t\t\tel.on('click', function (evt) {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevents.emit('notification.action', item);\r\n\t\t\t});\r\n\r\n\t\t\treturn el;\r\n\t\t}));\r\n\r\n if (!elements.menu.hasClass('ss-menu-open')) {\r\n elements.cont.find('=a').forEach(a => a.attr('tabindex', '-1'));\r\n elements.cont.find('=button').forEach(b => b.attr('tabindex', '-1'));\r\n }\r\n }\r\n\r\n function updateAllNotifications(newCtx) {\r\n updateNotificationList(newCtx, domElements.desktop);\r\n if(responsiveTopNav) {\r\n updateNotificationList(newCtx, domElements.mobile);\r\n }\r\n }\r\n\r\n function updateUnread(ctx) {\r\n let unread = ctx.items.filter(n => n.unread === true).length;\r\n setUnreadBadge(unread);\r\n }\r\n\r\n function setUnreadBadge(unread) {\r\n elem.toggleClass('has-unread', unread > 0);\r\n domElements.desktop.unreadBadge.css('display', 'none');\r\n domElements.desktop.unreadBadge.removeClass('sk--max');\r\n if (unread > 0) {\r\n if (unread > 99) {\r\n domElements.desktop.unreadBadge.addClass('sk--max');\r\n unread = 99;\r\n }\r\n domElements.desktop.unreadBadge._.innerHTML = unread;\r\n domElements.desktop.unreadBadge.css('display', 'block');\r\n }\r\n if(responsiveTopNav) {\r\n domElements.mobile.unreadBadge.css('display', 'none');\r\n domElements.mobile.unreadBadge.removeClass('sk--max');\r\n if (unread > 0) {\r\n if (unread > 99) {\r\n domElements.mobile.unreadBadge.addClass('sk--max');\r\n unread = 99;\r\n }\r\n domElements.mobile.unreadBadge._.innerHTML = unread;\r\n domElements.mobile.unreadBadge.css('display', 'block');\r\n }\r\n }\r\n }\r\n\r\n function handleMenuEvent(elements) {\r\n events.on('sk-menu-close', function (e) {\r\n if (e !== elem) {\r\n return;\r\n }\r\n elements.cont.find('=a').forEach((a) => a.attr('tabindex', '-1'));\r\n elements.cont.find('=button').forEach((b) => b.attr('tabindex', '-1'));\r\n });\r\n events.on('sk-menu-open', function (e) {\r\n if (e !== elem) {\r\n return;\r\n }\r\n elements.cont.find('=a').forEach((a) => a.attr('tabindex', '0'));\r\n elements.cont.find('=button').forEach((b) => b.attr('tabindex', '0'));\r\n });\r\n }\r\n}\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport * as keyPress from '../../util/key-press-helpers';\r\nimport {pathMatchesRoute} from '../../util/route-helpers';\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\tconst {subLevel} = attrs;\r\n\r\n\tconst menuGroup = elem.find('.menu-group')[0];\r\n\telem.addClass(`sub-level-${subLevel}`);\r\n\r\n\tconst subMenus = [];\r\n\tconst menuItems = ctx.map(function(item, idx) {\r\n\t\t// backward compatability with item.route value\r\n\t\titem.url = item.url || item.route || null;\r\n\r\n\t\tconst href = item.url || '#';\r\n\t\tconst target = item.url && item.target ? ` target=\"${item.target}\"` : '';\r\n\r\n\t\tconst kids = item.children;\r\n\t\tconst hasKids = !!(kids && kids.length);\r\n\t\tconst el = dom.parse(`\r\n\t\t\t
                              • \r\n\t\t\t\t\r\n\t\t\t\t\t${item.title}\r\n\t\t\t\t\t${hasKids ? '' : ''}\r\n\t\t\t\t\r\n\t\t\t
                              • \r\n\t\t`);\r\n\t\tvar subMenu;\r\n\r\n\t\tif (hasKids) {\r\n\t\t\tsubMenu = dom.parse(`
                                `);\r\n\t\t\tsubMenu._.context = kids;\r\n\t\t\tsubMenus.push(subMenu);\r\n\t\t\t// el.append(subMenu);\r\n\t\t\tsubMenu.on('keydown', (evt) => {\r\n\t\t\t\tswitch(true) {\r\n\t\t\t\tcase keyPress.isEscape(evt):\r\n\t\t\t\t\tsubMenu.removeClass('sk-submenu-active');\r\n\t\t\t\t\tel.removeClass('sk-submenu-active');\r\n\t\t\t\t\tconst [link] = el.find('a');\r\n\t\t\t\t\tif (link != null) {\r\n\t\t\t\t\t\tlink._.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tel.addClass('sk--menu-action');\r\n\t\t}\r\n\r\n\t\t// add menuName value if present\r\n\t\tif (typeof item.menuName === 'string') {\r\n\t\t\tel.data('menu-name', item.menuName);\r\n\t\t}\r\n\r\n\t\tel.find('.sub-menu-item-container')[0].on('click', function(evt) {\r\n\t\t\tif (!hasKids) { events.emit('nav.menu-item-clicked', item, evt); }\r\n\t\t\tif (hasKids) { evt.preventDefault(); }\r\n\r\n\t\t\telem.find('.sk-submenu-active').forEach(function (m) {\r\n\t\t\t\tif (m !== el && m !== subMenu) { m.removeClass('sk-submenu-active'); }\r\n\t\t\t});\r\n\r\n\t\t\tif (hasKids) {\r\n\t\t\t\tsubMenu.toggleClass('sk-submenu-active');\r\n\t\t\t\tsubMenu._.focus();\r\n\t\t\t\tel.toggleClass('sk-submenu-active');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn el;\r\n\t});\r\n\tmenuGroup.children(menuItems);\r\n\telem.append(subMenus);\r\n\r\n\tevents.on('_location.path-change', highlightRoute);\r\n\tfunction highlightRoute(path) {\r\n\t\tif (path == null) { return; }\r\n\r\n\t\tmenuItems.forEach(function (el, idx) {\r\n\t\t\tconst ictx = ctx[idx];\r\n\t\t\tconst highlighted = pathMatchesRoute(path, ictx.url, ictx.routeMatcher);\r\n\t\t\tel.toggleClass('highlight', highlighted);\r\n\t\t});\r\n\t}\r\n};\r\n","import {cmptMenu, cmptMenuItem, cmptDynamicWidth} from '../../util/cmpt-common-features';\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as store from '../../util/store';\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * User info component.\r\n * @class Sidekick.UserInfo\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx - user data object\r\n * @param {Boolean} [ctx.firstName] - First Name to show\r\n * @param {Boolean} [ctx.lastName] - Last Name to show\r\n * @param {Boolean} [ctx.showAcctSettings=true] - Show/hide the Account Settings button\r\n * @param {Boolean} [ctx.showSignOut=true] - Show/hide the Signout button\r\n * @param {Function} i18n - translation function\r\n * @emits header.user-info.role - Role to switch to\r\n * @emits header.user-info.account-settings\r\n * @emits session.logout\r\n * @listens roles - Accepts a collection of roles\r\n * @example\r\n * currentRole: ID of the current role that is in the roles array\r\n * roles: List of roles pertaining to the app\r\n * {\r\n \tcurrentRole: 1,\r\n \troles: [{\r\n\t\t'id': 1,\r\n\t\t'name': 'Admin'\r\n\t}]\r\n}\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\t// button display controls\r\n\tlet showAcctSettings = ctx.showAcctSettings !== false;\r\n\tlet showSignOut = ctx.showSignOut !== false;\r\n\tconst rolesLimit = 5;\r\n\tconst { responsiveTopNav, hideRoles, isB2C, hideOrgSwitcher } = store.get('sk-config');\r\n\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst [domButton] = elem.find('.sk--control');\r\n\tconst [domUserName] = domButton.find('.sk--user-name');\r\n\tconst [domRoleName] = domButton.find('.sk--current-role');\r\n\tconst [domMenu] = elem.find('.sk--menu');\r\n\tconst [domSettings] = elem.find('.sk--settings');\r\n\tconst [domLogout] = elem.find('.sk--logout');\r\n\tconst [domRoles] = elem.find('.sk--roles');\r\n\tconst [domBlocks] = elem.find('.sk--blocks');\r\n\tconst [domFilter] = elem.find('.sk--filter');\r\n\tconst [domFilterInput] = elem.find('.sk--roles-filter');\r\n\tconst [domNoResult] = elem.find('.sk--no-result');\r\n\tconst [domFlUserAccountHeader] = elem.find('.sk--fl-account-header');\r\n\tconst [domFrontlineRoles] = elem.find('.sk--fl-role-header');\r\n\tconst [domNavigationMenu] = elem.find('.sk-navigation-menu');\r\n\tconst [domMobileOrgSwitcher] = elem.find('.sk-org-switcher-mobile');\r\n\r\n\t// Passport specific elements\r\n\tconst [domFrontlineHome] = elem.find('.sk--frontline-home');\r\n\tconst [domEndImpersonation] = elem.find('.sk--end-impersonation');\r\n\r\n\t// add logo to user info button in case of B2B\r\n\tif(responsiveTopNav && !isB2C) {\r\n\t\tconst domButtonContainer = document.getElementsByClassName('sk--control')[0];\r\n\t\tconst responsiveUserInfoLogo = dom.parse(``);\r\n\t\tdomButtonContainer.appendChild(responsiveUserInfoLogo._);\r\n\t}\r\n\r\n\tconst [domUserInfoLogo] = elem.find('.sk--user-info-logo');\r\n\r\n\tif(hideOrgSwitcher)\r\n\t{\r\n\t\tconst element = document.querySelector('.sk-org-switcher-mobile');\r\n\t\tif (element) {\r\n\t\t\telement.remove();\r\n\t\t}\r\n\t};\r\n\r\n\t/////\r\n\t// handle iniital state and data changes\r\n\t//\r\n\r\n\tstore.onValue('user-data', function(user) {\r\n\t\tctx.firstName = user.firstName;\r\n\t\tctx.lastName = user.lastName;\r\n\t\tdomButton.attr('aria-label', `${ctx.firstName} ${ctx.lastName}`);\r\n\t\tdomUserName._.innerHTML =`${ctx.firstName} ${ctx.lastName}`;\r\n\t\tdomUserName.attr('title', `${ctx.firstName} ${ctx.lastName}`);\r\n\t});\r\n\tstore.onValue('roles', updateRoleData);\r\n\tif(responsiveTopNav) { showNavigationTabs(); };\r\n\tstore.onValueOnce('idm-data', function ({user} = {}) {\r\n\t\t// if this use is an SSO user (not a frontline account) we need to hide\r\n\t\t// the settings link that normally takes them to the IDM settings page\r\n\t\tif (!user.isFrontlineUser) {\r\n\t\t\tdomSettings.parent().css('display', 'none');\r\n\t\t\tdomFlUserAccountHeader.css('display', 'none');\r\n\t\t}\r\n\t});\r\n\r\n\tstore.onValueOnce('passport-data', function ({ authProfile, impersonator }) {\r\n\r\n\t\tdomFrontlineHome.parent().css('display', 'list-item');\r\n\t\t\tdomFrontlineHome.on('click', function(evt) {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('header.user-info.frontline-home');\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\r\n\t\tif (impersonator) {\r\n\t\t\tdomEndImpersonation.parent().css('display', 'list-item');\r\n\t\t\tdomEndImpersonation.on('click', function(evt) {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('header.user-info.end-impersonation');\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tif(!responsiveTopNav && !store.get('search')) {\r\n\t\tcmptDynamicWidth('user-info', elem, domUserName._.innerText, 45);\r\n\t}\r\n\tcmptMenu(elem, domButton, domMenu);\r\n\tevents.on('sk-menu-open', function(el) {\r\n\t\tif (el !== elem) { return; }\r\n\t\tdomUserName.removeClass('fa-angle-down-after').addClass('fa-angle-up-after');\r\n\t});\r\n\tevents.on('sk-menu-close', function(el) {\r\n\t\tif (el !== elem) { return; }\r\n\t\tdomUserName.addClass('fa-angle-down-after').removeClass('fa-angle-up-after');\r\n\t\tclearFilter();\r\n\t});\r\n\r\n\tdomFilterInput.on('keyup', function(evt) {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\t\tlet searchValueFound = false;\r\n\t\t[...domRoles._.childNodes].forEach(item => {\r\n\t\t\tif (!item.innerText.toLowerCase().includes(evt.currentTarget.value.toLowerCase())) {\r\n\t\t\t\titem.classList.add('hide');\r\n\t\t\t} else {\r\n\t\t\t\tsearchValueFound = true;\r\n\t\t\t\titem.classList.remove('hide');\r\n\t\t\t}\r\n\t\t\treturn item;\r\n\t\t});\r\n\t\tdomNoResult.css('display', `${searchValueFound ? 'none' : 'block'}`);\r\n\t});\r\n\r\n\t// hide blocks container if neither button is present\r\n\tif (showAcctSettings === false && showSignOut === false) {\r\n\t\tdomBlocks.css('display', 'none');\r\n\t} else {\r\n\t\tif (showAcctSettings) {\r\n\t\t\tdomSettings.on('click', function(evt) {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('header.user-info.account-settings');\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t});\r\n\r\n\t\t\t// bind common keydown handlers to menu item\r\n\t\t\tcmptMenuItem(elem, domButton, domBlocks, dom.element(domSettings._.parentNode));\r\n\t\t} else {\r\n\t\t\tdomSettings.parent().css('display', 'none');\r\n\t\t}\r\n\r\n\t\tif (showSignOut) {\r\n\t\t\tdomLogout.on('click', function(evt) {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\t// This logout event is for consuming application\r\n\t\t\t\tevents.emit('session.logout');\r\n\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t\t// This logout event is used by sidekick internal only\r\n\t\t\t\tif (store.get('passport-data')) {\r\n\t\t\t\t\tevents.emit('_sk-logout');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// bind common keydown handlers to menu item\r\n\t\t\tcmptMenuItem(elem, domButton, domBlocks, dom.element(domLogout._.parentNode));\r\n\t\t} else {\r\n\t\t\tdomLogout.parent().css('display', 'none');\r\n\t\t}\r\n\t}\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\t/**\r\n\t * Updates the display with the new data being passed in.\r\n\t * @param {Object} data - New roles\r\n\t */\r\n\r\n\tfunction clearFilter() {\r\n\t\tdomFilterInput._.value= ''; // clear filter\r\n\t\t[ ...domRoles._.childNodes ].forEach(item => {\r\n\t\t\titem.classList.remove('hide');\r\n\t\t\tdomNoResult.css('display', 'none');\r\n\t\t\treturn item;\r\n\t\t});\r\n\t}\r\n\r\n\tfunction updateRoleData(data) {\r\n\t\tif (hideRoles) {\r\n\t\t\tconst roleElements = ['.sk--current-role', '.sk-user-roles'];\r\n\t\t\troleElements.forEach(selector => {\r\n\t\t\t\tconst element = document.querySelector(selector);\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\telement.remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (data.currentRole == null) { return; }\r\n\t\tif (data.roles == null) { return; }\r\n\t\tif (data.roles.length === 0) { return; }\r\n\t\tif (data.roles.filter(r => r.id == null || r.name == null).length) { return; }\r\n\r\n\t\tconst { currentRole, roles } = data;\r\n\t\tconst currentRoleName = roles.find(r => r.id === currentRole).name;\r\n\r\n\t\tdomRoleName._.innerHTML = currentRoleName || '';\r\n\r\n\t\tif (currentRoleName != null) {\r\n\t\t\tdomButton.attr('aria-label', `${ctx.firstName} ${ctx.lastName} - ${currentRoleName}`);\r\n\t\t}\r\n\t\t// hide role name in case of responsive top nav and B2B\r\n\t\tif(responsiveTopNav && !isB2C) {\r\n\t\t\tdomRoleName.addClass('hide-sk--current-role');\r\n\t\t}\r\n\r\n\t\tif (roles == null || roles.length === 0) {\r\n\t\t\tdomFrontlineRoles.css('display', 'none');\r\n\t\t\tdomRoles.css('display', 'none');\r\n\t\t\tdomRoles.children();\r\n\t\t\tdomRoleName.css('display', 'none');\r\n\t\t\tdomRoleName.children();\r\n\t\t} else if (roles.length === 1) {\r\n\t\t\tdomFrontlineRoles.css('display', 'none');\r\n\t\t\tdomRoleName.css('display', 'block');\r\n\t\t\tdomRoles.css('display', 'none');\r\n\t\t\tdomRoles.children();\r\n\t\t} else {\r\n\t\t\tdomFrontlineRoles.css('display', 'block');\r\n\t\t\tdomRoles.css('display', 'block');\r\n\t\t\tdomRoleName.css('display', 'block');\r\n\t\t\t// show roles filter check\r\n\t\t\tif (roles.length > rolesLimit) {\r\n\t\t\t\tdomFilter.css('display', 'block');\r\n\t\t\t}\r\n\t\t\t// process the list of roles to display\r\n\t\t\tdomRoles.children(roles.map(role => {\r\n\t\t\t\tconst isActive = role.id === currentRole;\r\n\r\n\t\t\t\tconst ariaCurrent = isActive.toString();\r\n\t\t\t\tconst linkClasses = isActive ? 'fa-li-checkmark-after active' : '';\r\n\r\n\t\t\t\tconst el = dom.parse(`\r\n\t\t\t\t\t
                              • \r\n\t\t\t\t\t\t${role.name}\r\n\t\t\t\t\t
                              • \r\n\t\t\t\t`);\r\n\r\n\t\t\t\tif (role.id !== currentRole) {\r\n\t\t\t\t\tel.on('click', evt => {\r\n\t\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t\tevents.emit('header.user-info.role', role);\r\n\t\t\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// bind common keydown handlers to menu item\r\n\t\t\t\tcmptMenuItem(elem, domButton, domRoles, el);\r\n\r\n\t\t\t\treturn el;\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\tfunction showNavigationTabs() {\r\n\t\tif(!hideOrgSwitcher) {\r\n\t\t\tdomMobileOrgSwitcher.css('width', '100%');\r\n\t\t}\r\n\t\tif(!isB2C) {\r\n\t\t\tdomUserName.addClass('hide-sk--user-name');\r\n\t\t\tif(domUserInfoLogo) {\r\n\t\t\t\tdomUserInfoLogo.addClass('show-sk--user-info-logo');\r\n\t\t\t}\r\n\t\t\tdomButton.addClass('sk-control-divider');\r\n\t\t}\r\n if(!store.get('help') && !store.get('notifications') && (!store.get('org-switcher-data') || hideOrgSwitcher)) {\r\n\t\t\treturn;\r\n\t\t}\r\n domNavigationMenu.css('display', 'block');\r\n\t}\r\n};\r\n","import _debounce from 'debounce';\r\nimport * as dom from '../../util/easy-dom';\r\nimport {cmptMenu, cmptMenuItem, cmptInputClear, cmptDynamicWidth} from '../../util/cmpt-common-features';\r\nimport * as store from '../../util/store';\r\nimport * as events from '../../util/event-bus';\r\n\r\n\r\n/**\r\n * Displays allowed organizations\r\n * @class Sidekick.OrganizationSwitcher\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx - org switcher context object\r\n * @param {Function} i18n - translation function\r\n * @emits header.org-switcher.change - Passes selected organization\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\tconst { responsiveTopNav } = store.get('sk-config');\r\n\tconst hideOrgSwitcher = store.get('sk-config').hideOrgSwitcher;\r\n\tconst hasPassport = store.get('passport-data');\r\n\tif (hideOrgSwitcher && hasPassport !== null) { return; };\r\n\tconst limit = 10; // minimum value of rows to be present before showing search box\r\n\tconst listEmpty = dom.parse('
                              • No Organizations Found
                              • ');\r\n\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst [domBtn] = elem.find('.control');\r\n\tconst [domBtnContent] = domBtn.find('.content');\r\n\tconst [domOrgCont] = elem.find('.menu');\r\n\tconst [domOrgList] = elem.find('.menulist');\r\n\tconst [domSearchCont] = elem.find('.search');\r\n\tconst [domSearchText] = elem.find('.search-org');\r\n\tconst [domClearBtn] = elem.find('.ss-ctrl-clear');\r\n\tconst [domOrgLoadAllBtn] = elem.find('.load-all-btn');\r\n\tconst domButtonElements = document.querySelectorAll('.organization-btn');\r\n\tconst [domOrgMobileButton] = elem.find('.control-responsive-org-switcher');\r\n\tconst [domOrgContMobile] = elem.find('.org-switcher-mobile-menu');\r\n\tconst [domOrgListMobile] = elem.find('.mobile-org-switcher-menulist');\r\n\tconst [domOrgSearchContMobile] = elem.find('.mobile-search');\r\n\tconst [domSearchTextMobile] = elem.find('.search-mobile-org');\r\n\tconst [domClearBtnMobile] = elem.find('.ss-ctrl-clear-mobile');\r\n\tconst [domOrgLoadAllBtnMobile] = elem.find('.load-all-btn-mobile');\r\n\r\n\t/////\r\n\t// set up the org-switcher for mobile device\r\n\t//\r\n\tif(responsiveTopNav) {\r\n\t\tdomButtonElements.forEach((domButtonElement) => {\r\n\t\t\tdomButtonElement.classList.add('sk--org-switcher-responsive');\r\n\t\t});\r\n\r\n\t\tif(attrs.role === 'mobileitem') {\r\n\t\t\tdomOrgMobileButton.css('display', 'block');\r\n\t\t\tdomOrgMobileButton.on('click', (evt) => {\r\n\t\t\t\tevt.stopPropagation();\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tif (domOrgContMobile.css('display') === 'none') {\r\n\t\t\t\t\tdomOrgContMobile.css('display', 'block');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdomOrgContMobile.css('display', 'none');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/////\r\n\t// wait to handle this initial state until the current org is specified\r\n\t//\r\n\tstore.onValue('current-org', function (org) {\r\n\t\tctx.orgs\r\n\t\t\t.filter(o => o.id.toString() === org.id.toString())\r\n\t\t\t.filter(o => o.name.startsWith('IDM ADMIN:'))\r\n\t\t\t.forEach(o => o.name = org.name);\r\n\r\n\t\trender();\r\n\t});\r\n\trender();\r\n\tconst debouncedFn = _debounce(() => render(), 200);\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tcmptMenu(elem, domBtn, domOrgCont);\r\n\tcmptInputClear(domSearchText, domClearBtn);\r\n\tcmptInputClear(domSearchTextMobile, domClearBtnMobile);\r\n\tdomSearchText.on('input', debouncedFn);\r\n\tdomSearchTextMobile.on('input', debouncedFn);\r\n\tdomClearBtn.on('click', () => render());\r\n\tdomClearBtnMobile.on('click', () => render());\r\n\tdomOrgLoadAllBtn.on('click', () => render(-1));\r\n\tevents.on('sk-menu-close', () => {\r\n\t\tif (domOrgLoadAllBtn.css('display') === 'none') {\r\n\t\t\trender();\r\n\t\t}\r\n\t});\r\n\tdomOrgLoadAllBtnMobile.on('click', () => render(-1));\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\r\n\t/**\r\n\t * Filters orgs\r\n\t */\r\n\tfunction searchOrgs(org, searchTextElement) {\r\n\t\tconst filter = searchTextElement._.value;\r\n\t\t// no search filter\r\n\t\tif (!filter.length) { return true; }\r\n\t\t// search filter\r\n\t\treturn org.name.toLowerCase().indexOf(filter.toLowerCase()) !== -1;\r\n\t}\r\n\r\n\t/**\r\n\t * Processes the access data to populate the list\r\n\t * @param {number} displayLimit - number of rows to be rendered in DOM\r\n\t */\r\n\tfunction render(displayLimit = 20) {\r\n\t\tconst {orgs, currentOrg} = ctx;\r\n\r\n\t\t// no access, don't show, we are done\r\n\t\tif (currentOrg == null || orgs.length === 0) {\r\n\t\t\telem.css('display', 'none');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telem.css('display', 'inline-block');\r\n\r\n\t\t// render out our current org name in the header\r\n\t\tconst orgName = orgs.find(o => o.id === currentOrg).name;\r\n\t\tdomBtn.attr('aria-label', `${orgName} - ${i18n('Switch Organizations')}`);\r\n\t\tdomOrgMobileButton.attr('aria-label', `${orgName} - ${i18n('Switch Organizations')}`);\r\n\t\tdomBtnContent._.innerHTML = orgName;\r\n\t\tdomBtnContent.attr('title', orgName);\r\n\t\tif(!attrs.role === 'mobileitem') {\r\n\t\t\tcmptDynamicWidth('org-switcher', elem, orgName, 30);\r\n\t\t}\r\n\r\n\t\tif (orgs.length === 1) {\r\n\t\t\telem.addClass('sk-no-click');\r\n\t\t\tdomBtn.attr('tabindex', '-1');\r\n\t\t\tdomBtn.attr('disabled', 'disabled');\r\n\t\t\tdomBtn.attr('aria-disabled', 'true');\r\n\r\n\t\t\tdomOrgMobileButton.attr('tabindex', '-1');\r\n\t\t\tdomOrgMobileButton.attr('disabled', 'disabled');\r\n\t\t\tdomOrgMobileButton.attr('aria-disabled', 'true');\r\n\r\n\t\t\tdomBtnContent.removeClass('fa-angle-down-after');\r\n\t\t\tdomOrgCont.css('display', 'none');\r\n\t\t\tdomOrgContMobile.css('display', 'none');\r\n\t\t\t// no need to continue, we only have 1 org. No picker is needed.\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\telem.removeClass('sk-no-click');\r\n\t\t\tdomBtn.attr('tabindex', '0');\r\n\t\t\tdomBtn.attr('disabled', null);\r\n\t\t\tdomBtn.attr('aria-disabled', 'false');\r\n\r\n\t\t\tdomOrgMobileButton.attr('tabindex', '0');\r\n\t\t\tdomOrgMobileButton.attr('disabled', null);\r\n\t\t\tdomOrgMobileButton.attr('aria-disabled', 'false');\r\n\r\n\t\t\tdomBtnContent.addClass('fa-angle-down-after');\r\n\t\t\tdomSearchCont.css('display', orgs.length > limit ? 'block' : 'none');\r\n\t\t\tdomOrgSearchContMobile.css('display', orgs.length > limit ? 'block' : 'none');\r\n\t\t}\r\n\r\n\t\t// Sort by name\r\n\t\torgs.sort((a, b) => {\r\n\t\t\treturn a.name.localeCompare(b.name);\r\n\t\t});\r\n\r\n\t\tconst searchResultsOrgList = orgs.filter(org => searchOrgs(org, domSearchText));\r\n\t\tconst searchResultsOrgListMobile = orgs.filter(org => searchOrgs(org, domSearchTextMobile));\r\n\r\n\t\tcreateOrgList(domOrgList, domBtn, searchResultsOrgList, displayLimit, currentOrg);\r\n\t\tcreateOrgList(domOrgListMobile, domOrgMobileButton, searchResultsOrgListMobile, displayLimit, currentOrg);\r\n\r\n\t\tif (searchResultsOrgList.length <= displayLimit || displayLimit < 0) {\r\n\t\t\tdomOrgLoadAllBtn.css('display', 'none');\r\n\t\t} else {\r\n\t\t\tdomOrgLoadAllBtn.css('display', 'block');\r\n\t\t}\r\n\r\n\t\tif(searchResultsOrgListMobile.length <= displayLimit || displayLimit < 0) {\r\n\t\t\tdomOrgLoadAllBtnMobile.css('display', 'none');\r\n\t\t} else {\r\n\t\t\tdomOrgLoadAllBtnMobile.css('display', 'block');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates the list of organizations\r\n\t * @param {EasyDom} domList - List element\r\n\t * @param {EasyDom} domButton - Button element\r\n\t * @param {Array} searchResults - Filtered list of organizations\r\n\t */\r\n\tfunction createOrgList(domList, domButton, searchResults, displayLimit, currentOrg) {\r\n\t\tif (searchResults.length > 0) {\r\n\t\t\tdomList.children(searchResults.slice(0, displayLimit < 0 ? searchResults.length : displayLimit).map(org => {\r\n\t\t\t\tconst isActive = org.id === currentOrg;\r\n\r\n\t\t\t\tconst ariaCurrent = isActive.toString();\r\n\t\t\t\tconst liClassName = isActive ? 'active' : '';\r\n\t\t\t\tconst linkClassName = isActive ? 'fa-li-checkmark-after active' : '';\r\n\r\n\t\t\t\tconst href = org.url || '#';\r\n\t\t\t\tconst target = (org.url && org.target ? ` target=\"${org.target}\"` : '');\r\n\r\n\t\t\t\tconst el = dom.parse(`\r\n\t\t\t\t\t
                              • \r\n\t\t\t\t\t\t${org.name}\r\n\t\t\t\t\t
                              • \r\n\t\t\t\t`);\r\n\r\n\t\t\t\tel.on('click', evt => {\r\n\t\t\t\t\tif (!org.url) {\r\n\t\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t\tevents.emit('header.org-switcher.change', org);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tevents.emit('sk-menu-close', elem);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// bind common keydown handlers to menu item\r\n\t\t\t\tcmptMenuItem(elem, domButton, domList, el);\r\n\r\n\t\t\t\treturn el;\r\n\t\t\t}));\r\n\t\t} else {\r\n\t\t\tdomList.children(listEmpty);\r\n\t\t}\r\n\t}\r\n};\r\n","import * as env from '../../util/env';\r\n\r\nexport default function () {\r\n\tconst envName = env.environmentFromPassportDomain(window.location.host);\r\n\tif (envName === 'stage') {\r\n\t\tconst $el = window.document.getElementById('override-passport-footer');\r\n\t\t$el.innerText = `env: stage`;\r\n\t\t$el.style.display = 'block';\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as store from '../../util/store';\r\n\r\n/**\r\n * Displays Organization information\r\n * @class Sidekick.ContactOrg\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n * @listens current-org - Accepts an organization to update the information\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\tstore.onValue('current-org', fillContent);\r\n\r\n\tfunction fillContent(newCtx) {\r\n\t\tif (ctx !== newCtx) { ctx = newCtx; }\r\n\r\n\t\tlet phones = '';\r\n\r\n\t\tif (ctx.phone != null && ctx.phone.length) {\r\n\t\t\tphones = `${i18n('Phone')}: ${ctx.phone}`;\r\n\t\t}\r\n\r\n\t\tif (ctx.fax != null && ctx.fax.length) {\r\n\t\t\tif (phones.length) {\r\n\t\t\t\tphones += ', ';\r\n\t\t\t}\r\n\t\t\tphones += `${i18n('Fax')}: ${ctx.fax}`;\r\n\t\t}\r\n\r\n\t\telem.children(dom.parse(`
                                \r\n\t\t\t

                                ${i18n('Contact Your Organization')}

                                \r\n\t\t\t
                                ${ctx.name}
                                \r\n\t\t\t${ctx.contactName != null && ctx.contactName.length ? `
                                ${ctx.contactName}
                                ` : ''}\r\n\t\t\t${phones.length ? `
                                ${phones}
                                ` : ''}\r\n\t\t\t${ctx.email != null ? `
                                ${ctx.email}
                                ` : ''}\r\n\t\t\t${ctx.comments != null && ctx.comments.length ? `
                                ${ctx.comments}
                                ` : ''}\r\n\t\t
                                `));\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\tvar orgId, productId;\r\n\r\n\tevents.emit('header.visible', false);\r\n\tevents.emit('nav.visible', false);\r\n\r\n\tdom.rAF(() => dom.rAF(() => elem.addClass('sk--fade-in')));\r\n\r\n\tevents.on('_pick-org.org-id-selected', oId => orgId = oId);\r\n\tevents.on('_pick-app.product-id-selected', function (pId) {\r\n\t\tproductId = pId;\r\n\t\tevents.emit('_pick-org-app.selected', {orgId, productId});\r\n\t});\r\n\tevents.on('pick-org-app.abort', function () {\r\n\t\telem.css('display', 'none');\r\n\t}, true);\r\n};\r\n","import _debounce from 'debounce';\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport {cmptInputClear, queryStringObject} from '../../util/cmpt-common-features';\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\r\n\tvar {access, productId, orgId} = ctx;\r\n\r\n\tconst qsData = queryStringObject();\r\n\tif (qsData.orgId != null) { orgId = qsData.orgId; }\r\n\tif (qsData.productId != null) { productId = qsData.productId; }\r\n\tconst productIdUpper = productId.toUpperCase();\r\n\r\n\t/////\r\n\t// get handle on elements we need\r\n\t//\r\n\tconst domSearchContainer = elem.find('.search-container')[0];\r\n\tconst domSearchInput = elem.find('.search')[0];\r\n\tconst domSearchClearBtn = elem.find('.ss-ctrl-clear')[0];\r\n\tconst domOrgList = elem.find('.sk--org-app-list')[0];\r\n\tconst domAppFilter = elem.find('.sk--filtered-app-name')[0];\r\n\tconst domOrgLoadAllBtn = elem.find('.load-all-btn')[0];\r\n\tvar orgListAccessRecords = [];\r\n\tvar filteredByTitle = '';\r\n\tconst limit = 10; // minimum value of rows to be present before showing search box\r\n\r\n\tif (orgId != null) {\r\n\t\t// if the orgId is provided, limit using it\r\n\t\torgListAccessRecords = access.filter(a => a.OrganizationId === orgId);\r\n\t}\r\n\r\n\t// if we still don't have any records\r\n\tif (orgListAccessRecords.length === 0) {\r\n\t\t// get access records based on the current app\r\n\t\torgListAccessRecords = access.filter(a => a.ProductId.toUpperCase() === productIdUpper);\r\n\t\tif (orgListAccessRecords.length) {\r\n\t\t\tfilteredByTitle = orgListAccessRecords[0].ProductName;\r\n\t\t}\r\n\t}\r\n\r\n\t// if we still don't have any records\r\n\tif (orgListAccessRecords.length === 0) {\r\n\t\t// show all orgs we have access to\r\n\t\torgListAccessRecords = access;\r\n\t}\r\n\r\n\t// de-duplicate the records to just unique orgs\r\n\torgListAccessRecords = deDupOrgAccess(orgListAccessRecords);\r\n\r\n\t// if we are left with just 1, pick it\r\n\tif (orgListAccessRecords.length === 1) {\r\n\t\tdom.rAF(function () {\r\n\t\t\tevents.emit('_pick-org.org-id-selected', orgListAccessRecords[0].OrganizationId);\r\n\t\t});\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (filteredByTitle.length) {\r\n\t\tdomAppFilter._.innerHTML = filteredByTitle;\r\n\t\tdomAppFilter.removeClass('sk-hidden');\r\n\t}\r\n\telem.addClass(orgListAccessRecords.length > limit ? 'search-visible' : '');\r\n\r\n\t/**\r\n\t * Filters orgs\r\n\t */\r\n\tfunction searchOrgs(org) {\r\n\t\tconst filter = domSearchInput._.value;\r\n\t\t// no search filter\r\n\t\tif (!filter.length) { return true; }\r\n\t\t// search filter\r\n\t\treturn org.OrganizationName.toLowerCase().indexOf(filter.toLowerCase()) !== -1;\r\n\t}\r\n\r\n\t/////\r\n\t// listen and react to events\r\n\t//\r\n\tconst debouncedFn = _debounce(() => render(), 200);\r\n\tcmptInputClear(domSearchInput, domSearchClearBtn);\r\n\tdomSearchInput.on('input', debouncedFn);\r\n\tdomSearchClearBtn.on('click', () => render());\r\n\tdomOrgLoadAllBtn.on('click', () => render(-1));\r\n\trender();\r\n\r\n\t/**\r\n\t * Processes the org data to render the list\r\n\t * @param {number} displayLimit - number of rows to be rendered in DOM\r\n\t */\r\n\tfunction render(displayLimit = 20) {\r\n\t\tdomSearchContainer.css('display', orgListAccessRecords.length > limit ? 'block' : 'none');\r\n\r\n\t\torgListAccessRecords.sort(function (a, b) {\r\n\t\t\tconst aName = a.OrganizationName.toLowerCase();\r\n\t\t\tconst bName = b.OrganizationName.toLowerCase();\r\n\t\t\tif (aName > bName) { return 1; }\r\n\t\t\tif (aName < bName) { return -1; }\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\tconst searchResultsOrgList = orgListAccessRecords.filter(searchOrgs);\r\n\t\tdomOrgList.children(searchResultsOrgList.slice(0, displayLimit < 0 ? searchResultsOrgList.length : displayLimit).map(function (a) {\r\n\t\t\tconst item = dom.parse(`\r\n\t\t\t\t
                              • \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${a.OrganizationName}\r\n\t\t\t\t\t\r\n\t\t\t\t
                              • \r\n\t\t\t`);\r\n\r\n\t\t\titem.on('click', function (evt) {\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('_pick-org.org-id-selected', a.OrganizationId);\r\n\t\t\t});\r\n\r\n\t\t\treturn item;\r\n\t\t}));\r\n\t\tif (searchResultsOrgList.length <= displayLimit || displayLimit < 0) {\r\n\t\t\tdomOrgLoadAllBtn.css('display', 'none');\r\n\t\t} else {\r\n\t\t\tdomOrgLoadAllBtn.css('display', 'inline-block');\r\n\t\t}\r\n\t}\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\tfunction deDupOrgAccess(accessRecords) {\r\n\t\treturn accessRecords.filter(function (v, i, a) {\r\n\t\t\tconst idx = a.findIndex(av => av.OrganizationId === v.OrganizationId);\r\n\t\t\treturn idx === i;\r\n\t\t});\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport {queryStringObject} from '../../util/cmpt-common-features';\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\tvar { access, productId } = ctx;\r\n\r\n\tconst qsData = queryStringObject();\r\n\tif (qsData.productId != null) { productId = qsData.productId; }\r\n\tconst productIdUpper = productId.toUpperCase();\r\n\r\n\t/////\r\n\t// get handle on elements we need\r\n\t//\r\n\tconst domPickOrg = elem.parent().find('.sk-pick-org')[0];\r\n\tconst domAppList = elem.find('.sk--org-app-list')[0];\r\n\tconst domOrgFilter = elem.find('.sk--filtered-org-name')[0];\r\n\r\n\t/////\r\n\t// listen and react to events\r\n\t//\r\n\tevents.on('_pick-org.org-id-selected', function (orgId) {\r\n\t\tif (orgId == null) { return; }\r\n\r\n\t\tconst selectedOrgPA = ctx.access.find(({OrganizationId} = {}) => OrganizationId != null && OrganizationId.toString() === orgId.toString());\r\n\r\n\t\tif (selectedOrgPA == null) { return; }\r\n\r\n\t\tdomOrgFilter._.innerHTML = selectedOrgPA.OrganizationName;\r\n\t\tdomPickOrg.css('display', 'none');\r\n\r\n\t\tconst weHaveAListToShow = setupAppList(orgId);\r\n\r\n\t\tif (weHaveAListToShow) {\r\n\t\t\tdom.rAF(function () {\r\n\t\t\t\telem.css('display', 'block');\r\n\t\t\t\tdom.rAF(() => elem.css('opacity', 1));\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\t/////\r\n\t// helper functions\r\n\t//\r\n\tfunction deDupAppAccess(accessRecords) {\r\n\t\treturn accessRecords.filter(function (v, i, a) {\r\n\t\t\tconst idx = a.findIndex(av => av.ProductId.toUpperCase() === v.ProductId.toUpperCase());\r\n\t\t\treturn idx === i;\r\n\t\t});\r\n\t}\r\n\r\n\tfunction setupAppList(orgId) {\r\n\t\tvar appListAccessRecords = access.filter(function (a) {\r\n\t\t\treturn a.OrganizationId.toString() === orgId.toString() &&\r\n\t\t\t\ta.ProductId.toUpperCase() === productIdUpper;\r\n\t\t});\r\n\r\n\t\tif (appListAccessRecords.length === 0) {\r\n\t\t\tappListAccessRecords = access.filter(\r\n\t\t\t\ta => a.OrganizationId.toString() === orgId.toString()\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// de-duplicate the records to just unique orgs\r\n\t\tappListAccessRecords = deDupAppAccess(appListAccessRecords);\r\n\r\n\t\t// if we are left with just 1, pick it\r\n\t\tif (appListAccessRecords.length === 1) {\r\n\t\t\tdom.rAF(function () {\r\n\t\t\t\tevents.emit('_pick-app.product-id-selected', appListAccessRecords[0].ProductId);\r\n\t\t\t});\r\n\t\t\treturn false; // don't show this screen\r\n\t\t}\r\n\r\n\t\tappListAccessRecords.sort(function (a, b) {\r\n\t\t\tconst aName = a.ProductName.toLowerCase();\r\n\t\t\tconst bName = b.ProductName.toLowerCase();\r\n\t\t\tif (aName > bName) { return 1; }\r\n\t\t\tif (aName < bName) { return -1; }\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\tdomAppList.children(appListAccessRecords.map(function (a) {\r\n\t\t\tconst item = dom.parse(`\r\n\t\t\t\t
                              • \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${a.ProductName}\r\n\t\t\t\t\t\r\n\t\t\t\t
                              • \r\n\t\t\t`);\r\n\r\n\t\t\titem.on('click', function(evt) {\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tevents.emit('_pick-app.product-id-selected', a.ProductId);\r\n\t\t\t});\r\n\r\n\t\t\treturn item;\r\n\t\t}));\r\n\r\n\t\treturn true; // show the screen\r\n\t}\r\n};\r\n","import * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Container class\r\n * @class Sidekick.ActivityIndicator\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {String} ctx.url - URL that clicking this should go to if passed in\r\n * @param {Function} i18n\r\n * @emits activity-indicator.clicked - Indicates the activity indicator has been clicked if URL not specified\r\n * @listens activity-indicator.visible - true/false - show hide the indicator\r\n */\r\nexport default function(elem, attrs, ctx, i18n) {\r\n\r\n\t/////\r\n\t// init styles\r\n\t//\r\n\telem.addClass('sk-hidden');\r\n\r\n\t/////\r\n\t// dom elements we require access to\r\n\t//\r\n\tconst domLink = elem.find('a')[0];\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tevents.on('activity-indicator.visible', show => elem.toggleClass('sk-hidden', !show));\r\n\r\n\t/////\r\n\t//\r\n\t//\r\n\tctx.url = ctx.url || '#';\r\n\r\n\tif (ctx.url === '#') {\r\n\t\tdomLink.on('click', evt => {\r\n\t\t\tevt.stopPropagation();\r\n\t\t\tevt.preventDefault();\r\n\t\t\tevents.emit('activity-indicator.clicked');\r\n\t\t});\r\n\t}\r\n};\r\n","/* globals ambient */\r\nimport * as dom from '../../util/easy-dom';\r\nimport * as events from '../../util/event-bus';\r\nimport {pathMatchesRoute} from '../../util/route-helpers';\r\n\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\t// height values for different measurements\r\n\tconst [titleHeight, itemHeight] = [54, 30];\r\n\tconst [bottomPad, headerHeight] = [30, 60];\r\n\tconst singleColumnHeight = ctx.reduce(function (total, titleNode) {\r\n\t\treturn total + titleHeight + (itemHeight * titleNode.children.length);\r\n\t}, headerHeight + bottomPad);\r\n\tvar singleColumnMode = true;\r\n\r\n\tconst menuContainer = elem.find('.mega')[0];\r\n\tconst menuItems = ctx.map(function(item, idx) {\r\n\t\t// backward compatability with item.route value\r\n\t\titem.url = item.url || item.route || null;\r\n\r\n\t\tconst el = dom.parse(`
                                • ${item.title}
                                `);\r\n\r\n\t\t// add menuName value if present\r\n\t\tif (typeof item.menuName === 'string') {\r\n\t\t\tel.data('menu-name', item.menuName);\r\n\t\t}\r\n\r\n\t\tel.append(item.children.map(function (child, cidx) {\r\n\t\t\t// backward compatability with item.route value\r\n\t\t\tchild.url = child.url || child.route || null;\r\n\r\n\t\t\tconst href = child.url || '#';\r\n\t\t\tconst target = child.url && child.target ? ` target=\"${child.target}\"` : '';\r\n\t\t\tconst childEl = dom.parse(`\r\n\t\t\t\t
                              • \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${child.title}\r\n\t\t\t\t\t\r\n\t\t\t\t
                              • \r\n\t\t\t`);\r\n\r\n\t\t\t// add menuName value if present\r\n\t\t\tif (typeof child.menuName === 'string') {\r\n\t\t\t\tchildEl.data('menu-name', child.menuName);\r\n\t\t\t}\r\n\r\n\t\t\tchildEl.find('.sub-menu-item-container')[0].on('click', function(evt) {\r\n\t\t\t\tevents.emit('nav.menu-item-clicked', child, evt);\r\n\t\t\t});\r\n\r\n\t\t\treturn childEl;\r\n\t\t}));\r\n\r\n\t\treturn el;\r\n\t});\r\n\tmenuContainer.children(menuItems);\r\n\r\n\tambient.on('update', 'sk-adjust-menu-columns', (type, cls, v) => adjustColumns(v.height));\r\n\tadjustColumns(ambient.getPluginValue('height'));\r\n\tevents.on('_location.path-change', highlightRoute);\r\n\r\n\tfunction adjustColumns(height) {\r\n\t\t// store the current state\r\n\t\tconst currentlySingleCol = singleColumnMode;\r\n\t\t// check the new state\r\n\t\tsingleColumnMode = height >= singleColumnHeight;\r\n\t\t// only involve the DOM if there's a change needed\r\n\t\tif (currentlySingleCol !== singleColumnMode) {\r\n\t\t\telem.toggleClass('sk--two-column', !singleColumnMode);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction highlightRoute(path) {\r\n\t\tif (path == null) { return; }\r\n\t\tctx.forEach(function (item, idx) {\r\n\t\t\titem.children.forEach(function (child, cidx) {\r\n\t\t\t\tconst highlighted = pathMatchesRoute(path, child.url, child.routeMatcher);\r\n\t\t\t\telem.find(`.sk--child-${idx}-${cidx}`)[0].toggleClass('highlight', highlighted);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n","import * as dom from '../../util/easy-dom'; // eslint-disable-line no-unused-vars\r\nimport * as events from '../../util/event-bus';\r\n\r\n/**\r\n * Lodas a generic error page\r\n * @class Sidekick.SiteErrors\r\n * @memberOf Sidekick\r\n * @param {EasyDom} elem - Container {@link EasyDom} element\r\n * @param {Object} attrs\r\n * @param {Object} ctx\r\n * @param {Function} i18n - translation function\r\n * @emits session.logout - Thrown when the logout button is clicked\r\n * @listens site-errors -\r\n */\r\nexport default function (elem, attrs, ctx, i18n) {\r\n\r\n\t/////\r\n\t// find dom elements that we care about\r\n\t//\r\n\tconst domSignInLink = elem.find('.sk--sign-in-link')[0];\r\n\r\n\t/////\r\n\t// listen for events and take action\r\n\t//\r\n\tevents.on('site-errors', () => {\r\n\t\telem.addClass('show');\r\n\t});\r\n\tevents.on('site-errors.clear', () => {\r\n\t\telem.removeClass('show');\r\n\t});\r\n\r\n\tdomSignInLink.on('click', evt => {\r\n\t\tevt.stopPropagation();\r\n\t\tevt.preventDefault();\r\n\r\n\t\t// reload the page on the current url so we come back to what we were doing.\r\n\t\twindow.location.reload();\r\n\t});\r\n};\r\n","export default function (elem, attrs, ctx, i18n) {\r\n\tconst {mainElement} = ctx;\r\n\tconst [domSkipLink] = elem.find('.sk--skip-nav-link');\r\n\r\n\tif (domSkipLink == null) { return; }\r\n\r\n\tdomSkipLink.on('focus', () => {\r\n\t\telem.addClass('sk-skip-nav-focused');\r\n\t});\r\n\r\n\tdomSkipLink.on('blur', () => {\r\n\t\telem.removeClass('sk-skip-nav-focused');\r\n\t});\r\n\r\n\tdomSkipLink.on('click', onClick);\r\n\r\n\tfunction onClick(evt) {\r\n\t\tevt.preventDefault();\r\n\r\n\t\tlet targetElement;\r\n\r\n\t\tif (mainElement instanceof Element) {\r\n\t\t\ttargetElement = mainElement;\r\n\t\t} else {\r\n\t\t\ttargetElement = document.querySelector('main, [role=main]');\r\n\t\t\tif (targetElement == null) {\r\n\t\t\t\ttargetElement = ctx.appElement;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (targetElement.tabIndex === -1 && targetElement.getAttribute('tabindex') == null) {\r\n\t\t\ttargetElement.setAttribute('tabindex', '-1');\r\n\t\t}\r\n\r\n\t\ttargetElement.focus();\r\n\t}\r\n};\r\n","import * as store from '../../util/store';\r\nimport * as events from '../../util/event-bus';\r\nimport { loadAudioEye } from '../../util/audioeye-helpers';\r\n\r\nexport default function () {\r\n let featureFlagsCC = null;\r\n let idmData = store.get('idm');\r\n events.once('feature-flags-ready-cc', flagsSvc => {\r\n featureFlagsCC = flagsSvc;\r\n featureFlagsCC.checkStateByOrg('audioeye_enabled', true, { 'custom': { 'productId': idmData.product } }, 'false').then((res) => {\r\n if (res) {\r\n loadAudioEye();\r\n }\r\n });\r\n }, { greedy: true });\r\n\r\n};\r\n","import * as store from './store';\r\nimport * as events from './event-bus';\r\nimport * as env from './env';\r\nimport * as persist from './persistence';\r\nimport {deprecatedAttr} from './deprecated';\r\n\r\nimport {\r\n\tget, post, put, patch, del,\r\n\tprocessIdmData,\r\n\tfillUiFromIdmData,\r\n\tsetCurrentOrgInSharedState\r\n} from './idm-helpers';\r\n\r\n// common persistence config\r\nconst cache1DayLocal = {\r\n\ttype: 'local', // local storage\r\n\texpires: 1440, // 1 day\r\n};\r\n\r\nvar idmData = {};\r\nstore.onValueOnce('idm', handleIdmConfig);\r\nstore.onValueOnce('idm', d => events.emit('token-ready', {get, post, put, patch, del}));\r\nstore.onValueOnce('idm-data', fillUiFromIdmData);\r\nevents.on('_pick-org-app.selected', function ({orgId, productId}) {\r\n\tif (orgId == null || productId == null || !idmData.access) { return; }\r\n\r\n\tconst accessRecord = idmData.access\r\n\t\t.find(({OrganizationId, ProductId} = {}) => (\r\n\t\t\tOrganizationId != null\r\n\t\t\t&& ProductId != null\r\n\t\t\t&& OrganizationId.toString() === orgId.toString()\r\n\t\t\t&& ProductId.toUpperCase() === productId.toUpperCase()\r\n\t\t));\r\n\r\n\tif (accessRecord == null) { return; }\r\n\r\n\tsetCurrentOrgInSharedState(accessRecord.OrganizationId, function () {\r\n\t\tlocation.href = accessRecord.Url;\r\n\t});\r\n});\r\n\r\nfunction handleIdmConfig(cfg) {\r\n\tlet {idGatewayUrl, flId, currentOrg, product} = cfg;\r\n\tconst idmMeta = {\r\n\t\ttargetOrgId: currentOrg,\r\n\t\tusers: null\r\n\t};\r\n\tconst envName = env.environmentFromIdmGatewayUrl(idGatewayUrl);\r\n\tconst envValues = env[envName];\r\n\r\n\tif (idGatewayUrl.endsWith('/')) {\r\n\t\tcfg.idGatewayUrl = idGatewayUrl = idGatewayUrl.slice(0, -1);\r\n\t}\r\n\r\n\tstore.onValueOnce('idm-data', function (data) {\r\n\t\tif (data.userContext == null) { return; }\r\n\t\tif (data.userContext.OrganizationId == null) { return; }\r\n\t\tconst orgId = data.userContext.OrganizationId;\r\n\r\n\t\t/////\r\n\t\t// get the org-co-branding data from the org service\r\n\t\t//\r\n\r\n\t\tconst envSandApiUrl = envValues.ecSand;\r\n\r\n\t\tconst rawOrgBrandData = persist.get(`rawOrgBrand-${orgId}`);\r\n\t\tif (rawOrgBrandData == null) {\r\n\t\t\tconst orgBrandUrl = `${envSandApiUrl}/OrganizationAPI/api/organizations/${orgId}?fields=branding`;\r\n\t\t\tget(orgBrandUrl, function (orgBrandRes) {\r\n\t\t\t\t\tpersist.set(`rawOrgBrand-${orgId}`, orgBrandRes, cache1DayLocal);\r\n\t\t\t\t\tprocessOrgBrand(orgBrandRes);\r\n\t\t\t\t}, [{\r\n\t\t\t\t\tkey: 'FlUser',\r\n\t\t\t\t\tvalue: `{\"OrganizationId\": \"${orgId}\"}`\r\n\t\t\t\t}]\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tprocessOrgBrand(rawOrgBrandData);\r\n\t\t}\r\n\t\tfunction processOrgBrand(brand) {\r\n\t\t\tstore.set('org-branding-data', brand.data.attributes.branding);\r\n\t\t}\r\n\t});\r\n\r\n\tlet rawProduct = persist.get(`rawProduct-${product.toUpperCase()}`);\r\n\tif (product.length > 0 && rawProduct == null) {\r\n\t\tget(`${idGatewayUrl}/api/products/${product}`, function (pData) {\r\n\t\t\tpersist.set(`rawProduct-${product.toUpperCase()}`, pData, cache1DayLocal);\r\n\t\t\tprocessIdmData(Object.assign(idmData, {product: pData}), idmMeta);\r\n\t\t});\r\n\t} else {\r\n\t\tprocessIdmData(Object.assign(idmData, {product: rawProduct}), idmMeta);\r\n\t}\r\n\r\n\t/////\r\n\t// get the product data and push it into the store\r\n\t//\r\n\tget(`${idGatewayUrl}/sessions`, function (session) {\r\n\t\tprocessIdmData(Object.assign(idmData, { session }), idmMeta);\r\n\t\tgetSessionData(session.Id);\r\n\t});\r\n\r\n\tfunction getSessionData(sid) {\r\n\t\t/////\r\n\t\t// Process User Data\r\n\t\t//\r\n\t\tvar rawUser = persist.get(`rawUser-${flId}-${sid}`);\r\n\t\tvar rawProductLinks = persist.get(`rawProductLinks-${flId}-${sid}`);\r\n\r\n\t\t// get user data\r\n\t\tif (rawUser == null) {\r\n\t\t\tconst userUrl = `${idGatewayUrl}/userservice/v0/api/users/id/${flId}`;\r\n\t\t\tget(userUrl, function (userRes) {\r\n\t\t\t\tpersist.set(`rawUser-${flId}-${sid}`, userRes, cache1DayLocal);\r\n\t\t\t\trawUser = userRes;\r\n\t\t\t\tprocessUsersAndProducts(rawUser, rawProductLinks);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tprocessUsersAndProducts(rawUser, rawProductLinks);\r\n\t\t}\r\n\r\n\t\t// get product links data\r\n\t\tif (rawProductLinks == null) {\r\n\t\t\tconst productLinksUrl = `${idGatewayUrl}/userservice/v0/api/productlinks?userId=${flId}`;\r\n\t\t\tget(productLinksUrl, function (productLinksRes) {\r\n\t\t\t\tpersist.set(`rawProductLinks-${flId}-${sid}`, productLinksRes, cache1DayLocal);\r\n\t\t\t\trawProductLinks = productLinksRes;\r\n\t\t\t\tprocessUsersAndProducts(rawUser, rawProductLinks);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tprocessUsersAndProducts(rawUser, rawProductLinks);\r\n\t\t}\r\n\r\n\t\tfunction processUsersAndProducts(users, products) {\r\n\t\t\tif (users == null || products == null) { return; }\r\n\r\n\t\t\tconst data = {productId: product};\r\n\t\t\tidmMeta.users = users;\r\n\r\n\t\t\t// set roles\r\n\t\t\tdata.roles = users.Roles.map(r => r.Name);\r\n\r\n\t\t\t// set user\r\n\t\t\tdata.user = {\r\n\t\t\t\tprofileId: users.Id,\r\n\t\t\t\tfirstName: users.FirstName,\r\n\t\t\t\tlastName: users.LastName,\r\n\t\t\t\temail: users.Email,\r\n\t\t\t\temailConfirmed: users.EmailIsVerified,\r\n\t\t\t\troles: data.roles,\r\n\t\t\t\tisFrontlineUser: (users.IsFrontlineUser === true),\r\n\t\t\t};\r\n\r\n\t\t\t// set deprecated user fields\r\n\t\t\tconst removedUserAttrs = [\r\n\t\t\t\t'username',\r\n\t\t\t\t'middleName',\r\n\t\t\t\t'birthday',\r\n\t\t\t\t'gender',\r\n\t\t\t\t'militaryStatus',\r\n\t\t\t\t'emailSent'\r\n\t\t\t];\r\n\t\t\tremovedUserAttrs.forEach(function (attr) {\r\n\t\t\t\tconst objLoc = 'STORE(idm-data).user';\r\n\t\t\t\tdeprecatedAttr({obj: data.user, attr, objLoc}, null);\r\n\t\t\t});\r\n\r\n\t\t\t// set access\r\n\t\t\tdata.access = products.map(function (p) {\r\n\t\t\t\tconst access = Object.assign({ Disabled: false }, p);\r\n\r\n\t\t\t\t// deprecation defaults\r\n\t\t\t\tconst obj = access;\r\n\t\t\t\tconst objLoc = 'STORE(idm-data).access[*]';\r\n\r\n\t\t\t\tdeprecatedAttr({\r\n\t\t\t\t\tobj, objLoc, attr: 'FlId',\r\n\t\t\t\t\tnewLog: 'STORE(idm-data).user.profileId'\r\n\t\t\t\t}, flId);\r\n\r\n\t\t\t\tdeprecatedAttr({ obj, objLoc, attr: 'Description' }, null);\r\n\r\n\t\t\t\tdeprecatedAttr({ obj, objLoc, attr: 'UserKey' }, function () {\r\n\t\t\t\t\tconst idType = envValues.productUserTypeMap[access.ProductId];\r\n\t\t\t\t\tconst {OrganizationId} = access;\r\n\t\t\t\t\tconst identities = users.OrganizationUsers.reduce(function (acc, ou) {\r\n\t\t\t\t\t\tif (ou.OrganizationId === OrganizationId) {\r\n\t\t\t\t\t\t\tacc = acc.concat(ou.Identities.filter(id => id.Type === idType));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn acc;\r\n\t\t\t\t\t}, []);\r\n\t\t\t\t\treturn (identities[0] && identities[0].Id || null);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst deprecatedAccessAttrs = {\r\n\t\t\t\t\t'LegacyName': 'ProductLegacyName',\r\n\t\t\t\t\t'DefaultSignInUrl': 'Url',\r\n\t\t\t\t\t'OrgNavigationUrlTemplate': 'Url'\r\n\t\t\t\t};\r\n\t\t\t\tObject.keys(deprecatedAccessAttrs).forEach(function (attr) {\r\n\t\t\t\t\tconst newAttr = deprecatedAccessAttrs[attr];\r\n\t\t\t\t\tconst newLoc = `STORE(idm-data).access[*].${newAttr}`;\r\n\t\t\t\t\tdeprecatedAttr({ obj, objLoc, attr, newLoc }, () => access[newAttr]);\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn access;\r\n\t\t\t});\r\n\r\n\t\t\tprocessIdmData(Object.assign(idmData, data), idmMeta);\r\n\t\t}\r\n\t}\r\n}\r\n","// This file hooks up getting any extra data required for Passport\r\n// And then calls the API for fetching the authprofile data\r\nimport * as store from './store';\r\nimport * as events from './event-bus';\r\nimport { setStateFromContext, endImpersonation, getUserContext, handleInactivity, setUserContext, getExternalRoles } from './passport-helpers';\r\n\r\n// temporary backwards compatibility\r\n// todo: remove once existing apps transition to new store\r\nstore.onValueOnce('morpheus', (data) => store.set('passport', data));\r\nstore.onValueOnce('morpheus-data', (data) => store.set('passport-data', data));\r\nstore.onValueOnce('passport', (data) => getExternalRoles(data));\r\n\r\nstore.onValueOnce('passport', getUserContext);\r\nstore.onValueOnce('passport', handleInactivity);\r\nstore.onValueOnce('passport', () => events.emit('session.passport.loggedIn'));\r\nstore.onValue('passport-data', setStateFromContext);\r\nstore.onValueOnce('passport-data', registerPassportEvents);\r\n\r\n/**\r\n * registerPassportEvents()\r\n * This method registers the events when passport-data is stored. It prevents the events from registering in case of idm-data\r\n */\r\nfunction registerPassportEvents() {\r\n\t// handle changing domain\r\n\tevents.on('header.org-switcher.change', function (selectedOrg) {\r\n\t\tconst { userInfo, authProfile } = store.get('passport-data');\r\n\t\tconst selectedDomain = authProfile.domains.find(domain => domain.id === selectedOrg.id);\r\n\t\tconst currentApp = selectedDomain.applications.find(app => app.shortName === userInfo.application.shortName);\r\n\r\n\t\t// application does not exist in selected domain\r\n\t\tif (!currentApp) {\r\n\t\t\tconst access = [];\r\n\t\t\tselectedDomain.applications.forEach(app => {\r\n\t\t\t\taccess.push({\r\n\t\t\t\t\tDisabled: false,\r\n\t\t\t\t\tOrganizationId: selectedDomain.id,\r\n\t\t\t\t\tOrganizationName: selectedDomain.name,\r\n\t\t\t\t\tProductId: app.shortName,\r\n\t\t\t\t\tProductName: app.name,\r\n\t\t\t\t\tUrl: app.address,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// launch application picker\r\n\t\t\t// todo: add ability to pick role as well?\r\n\t\t\treturn store.set('pick-org-app-data', Object.assign({}, {\r\n\t\t\t\torgId: selectedOrg.id,\r\n\t\t\t\tproductId: userInfo.application.shortName,\r\n\t\t\t\taccess,\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\t// User has access to current app in selected domain\r\n\t\twindow.location.href = `${currentApp.address}?!domain=${selectedDomain.name}`;\r\n\t});\r\n\r\n\t// handle app selection in app switcher\r\n\tevents.on('_pick-org-app.selected', function ({ orgId, productId }) {\r\n\t\tconst { authProfile } = store.get('passport-data');\r\n\t\tconst selectedDomain = authProfile.domains.find(domain => domain.id === orgId);\r\n\t\tconst currentApp = selectedDomain.applications.find(app => app.shortName === productId);\r\n\r\n\t\twindow.location.href = `${currentApp.address}?!domain=${selectedDomain.name}`;\r\n\t});\r\n\r\n\t// handle changing role\r\n\tevents.on('header.user-info.role', role => {\r\n\t\tsetUserContext({ role: role.name });\r\n\t});\r\n\r\n\t// handle My Frontline click Also handles Logo Click\r\n\t// link should only exist if user has more than one app/role\r\n\tevents.on('header.user-info.frontline-home', () => {\r\n\t\tconst { passportBaseUrl } = store.get('passport-data');\r\n\t\twindow.location.href = `${passportBaseUrl}/app`;\r\n\t});\r\n\r\n\t// handle end of impersonation\r\n\tevents.on('header.user-info.end-impersonation', endImpersonation);\r\n\r\n\t// handle account settings click\r\n\tevents.on('header.user-info.account-settings', () => {\r\n\t\tconst { passportBaseUrl, userInfo } = store.get('passport-data');\r\n\t\tconst fromUrl = encodeURIComponent(window.location);\r\n\t\tconst fromApp = userInfo && userInfo.application ? encodeURIComponent(userInfo.application.name) : '';\r\n\r\n\t\twindow.location.href = `${passportBaseUrl}/account/settings?fromUrl=${fromUrl}&fromApp=${fromApp}`;\r\n\t});\r\n\r\n\t// handle logout event\r\n\tevents.on('_sk-logout', () => {\r\n\t\tconst { passportBaseUrl } = store.get('passport-data');\r\n\t\twindow.location.href = `${passportBaseUrl}/logout`;\r\n\t});\r\n\r\n\t// handle session.logout.timeout event when emitted due to `session-timeout.timer-end`\r\n\tevents.on('session.logout.timeout', () => {\r\n\t\tconst { passportBaseUrl } = store.get('passport-data');\r\n\t\twindow.location.href = `${passportBaseUrl}/logout`;\r\n\t});\r\n\tevents.on('session.logout', () => {\r\n\t\tconst { passportBaseUrl } = store.get('passport-data');\r\n\t\twindow.location.href = `${passportBaseUrl}/logout`;\r\n\t});\r\n}\r\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","// es6 polyfills\r\nimport './util/polyfill';\r\n// register ambient and the states used by the sidekick\r\nimport './ambient/ambient';\r\nimport './ambient/ambient-height';\r\nimport './ambient/ambient-width';\r\n// init ambient states\r\nimport './ambient/ambient-config-states';\r\n\r\nimport init from './init';\r\nimport cycle from './cmpt/index';\r\nimport * as store from './util/store';\r\nimport * as events from './util/event-bus';\r\nimport * as dom from './util/easy-dom';\r\nimport audioeye from './audioeye';\r\n\r\nconst _win = (0, eval)('this'); // eslint-disable-line no-eval\r\n\r\n/////\r\n// register the global sidekick object\r\n//\r\nif (_win.sidekick !== undefined) {\r\n\tconsole && console.error && console.error('TOO MANY SIDEKICKS => the sidekick was loaded twice on this page.'); // eslint-disable-line\r\n}\r\n_win.sidekick = _win.sidekick || {\r\n\tinit, cycle, dom, audioeye,\r\n\tstore: store.publicApi,\r\n\tevents: events.publicApi\r\n};\r\n","import * as load from './util/asset-loader';\r\nimport cycle from './cmpt/index';\r\nimport * as store from './util/store';\r\nimport * as translations from './util/translations';\r\nimport * as domScanner from './util/dom-scanner';\r\nimport './util/idm';\r\nimport './util/passport';\r\nimport { setupFeatureFlagsCC, setupPassportFeatureFlagsCC } from './util/feature-flags-cc';\r\nimport { checkViewOthersPermission } from './util/view-permissions';\r\nimport * as env from './util/env';\r\n\r\n/**\r\n * Initializes the Sidekick\r\n * @module Sidekick.Init\r\n * @memberOf Sidekick\r\n */\r\n\r\n/**\r\n * Initializes the sidekick\r\n * @param {Object} cfg - Configuration Object\r\n * @param {String} cfg.token - Access Token\r\n * @param {String} cfg.product - Application\r\n * @param {Number} cfg.flId - Frontline User ID\r\n * @param {Element} [cfg.appElement=document.body] - Element the sidekick should be attached to\r\n * @param {Boolean} [cfg.addIcons=true] - Add in the icons\r\n * @param {Boolean} [cfg.addOpenSans=true] - Add in OpenSans\r\n * @param {Boolean} [cfg.addSidekickCss=true] - Add Sidekick CSS file to header\r\n * @param {Boolean} [cfg.scopeSidekickIcons=true] - Scope Sidekick icons to Sidekick to use specific FontAwesome version\r\n * @param {Boolean} [cfg.autoAppendAppNameInTitle=false] - Scans the TITLE node to ensure the application name is appended\r\n * @param {Boolean} [cfg.language=en] - Language to set any translations strings\r\n * @param {String} [cfg.customLogo] - Custom logo URL\r\n * @param {String} [cfg.customLogoHomeUrl] - Custom logo home URL\r\n * @param {Boolean} [cfg.hideAppSwitcher=false] - Hide the app switcher\r\n * @param {Boolean} [cfg.hideOrgSwitcher=false] - Hide the org switcher\r\n * @param {Boolean} [cfg.hideSearch=false] - Hide the search\r\n * @param {Boolean} [cfg.cleanCache=false] - Cleans out the local and session storage cache\r\n * @param {Boolean} [cfg.responsiveTopNav=false] - Adds resposiveness to the sidekick\r\n * @param {Boolean} [cfg.hideRoles=false] - Hide the roles\r\n */\r\nexport default function (cfg = {}) {\r\n\t// prevent a second init of the sidekick\r\n\tif (store.get('sk-config') != null) { return; }\r\n\r\n\t// Hookup feature flags\r\n\tstore.onValueOnce('idm-data', (idmData) => {\r\n\t\tsetupFeatureFlagsCC(idmData);\r\n\t\tcheckViewOthersPermission(idmData);\r\n\t});\r\n\r\n\t// Hookup feature flags\r\n\tstore.onValueOnce('passport-data', (context) => {\r\n\t\tsetupPassportFeatureFlagsCC(context);\r\n\t});\r\n\r\n\tstore.onValueOnce('idm', function (cfg) {\r\n\t\tconst envName = env.environmentFromIdmGatewayUrl(cfg.idGatewayUrl);\r\n\t\tPromise.all([\r\n\t\t\tload.script('vendorSSO.js', env[envName].vendorSSOBaseUrl),\r\n\t\t\tload.stylesheet('vendorSSO.css', () => null, env[envName].vendorSSOBaseUrl)\r\n\t\t]);\r\n\t});\r\n\r\n\tconst bodyComponents = [\r\n\t\t{ name: 'header', ctxStore: false },\r\n\t\t{ name: 'unsupported-browser-alert', ctxStore: 'idm' },\r\n\t\t{ name: 'nav', ctxStore: 'nav' },\r\n\t\t{ name: 'pick-org-app', ctxStore: 'pick-org-app-data' },\r\n\t\t{ name: 'session-timeout', ctxStore: 'session-timeout' },\r\n\t\t{ name: 'site-errors', ctxStore: false },\r\n\t\t{ name: 'footer', ctxStore: false },\r\n\t\t{ name: 'audioeye', ctxStore: 'idm' },\r\n\t];\r\n\tconst configDefaults = {\r\n\t\tappElement: document.body,\t\t\t// the html element the sk should surround\r\n\t\tmainElement: null,\t\t\t\t\t// the main content element for the \"skip nav\" link\r\n\t\taddIcons: true,\t\t\t\t\t\t// automatically add the icon font\r\n\t\taddOpenSans: true,\t\t\t\t\t// automatically add open sans font-face\r\n\t\taddSidekickCss: true,\t\t\t\t// automatically add sidekick.css to the header\r\n\t\tscopeSidekickIcons: false,\t\t\t// scope the sidekick icons to the sidekick\r\n\t\tautoAppendAppNameInTitle: false,\t// scans the title to ensure app name is appended\r\n\t\tcleanCache: false, // cleans out the local and session storage cache\r\n\t\tlanguage: 'en',\t\t\t\t\t\t// language to set any translations strings\r\n\t\tcustomLogo: null,\t\t\t\t // custom logo url\r\n\t\tcustomLogoHomeUrl: null,\t // custom logo home url\r\n\t\thideAppSwitcher: false,\t\t\t\t// hide the app switcher\r\n\t\thideOrgSwitcher: false,\t\t\t\t// hide the org switcher\r\n\t\thideSearch: false,\t\t\t\t\t// hide the search\r\n\t\tresponsiveTopNav: false, // adds responsiveness to the sidekick\r\n\t\thideRoles: false,\t\t\t\t // hide the roles\r\n\t\tisB2C: false,\t\t\t\t\t\t// Shows the B2C version of Sidekick\r\n\t\thideSideNav: false\t\t\t\t\t// Hides the side nav\r\n\t};\r\n\r\n\t// setup the app config values\r\n\tconst config = Object.assign({}, configDefaults, cfg);\r\n\tstore.set('sk-config', config);\r\n\tstore.set('fl-internal-product-ids', ['platformtools', 'doc']);\r\n\r\n\ttranslations.init(config.language);\r\n\r\n\tconst appEl = config.appElement;\r\n\tif (config.addIcons) { load.fontFace('Fl-Icons'); }\r\n\tif (config.addOpenSans) { load.fontFace('Open-Sans'); }\r\n\tif (config.addSidekickCss) {\r\n\t\tload.stylesheet('sidekick.css', goInit);\r\n\t} else if (config.scopeSidekickIcons) {\r\n\t\tload.stylesheet('scoped-sidekick.css', goInit);\r\n\t} else {\r\n\t\tgoInit();\r\n\t}\r\n\r\n\tif (config.autoAppendAppNameInTitle) { domScanner.title(); }\r\n\tload.printStyles();\r\n\r\n\tfunction goInit() {\r\n\t\tif(config.hideSideNav) {\r\n\t\t\tappEl.className += ' sk-nav-hidden';\r\n\t\t}\r\n\t\tif (appEl.className.length) { appEl.className += ' '; }\r\n\t\tappEl.className += 'sidekick-wrapped-application';\r\n\r\n\t\tfor (let i = bodyComponents.length; i--;) {\r\n\t\t\tconst { name, ctxStore } = bodyComponents[i];\r\n\t\t\tconst el = document.createElement('div');\r\n\t\t\tel.setAttribute(`sk-${name}`, '');\r\n\t\t\tif (ctxStore) { el.setAttribute('context-store', ctxStore); }\r\n\t\t\tif (appEl.firstChild == null) {\r\n\t\t\t\tappEl.appendChild(el);\r\n\t\t\t} else {\r\n\t\t\t\tappEl.insertBefore(el, appEl.firstChild);\r\n\t\t\t}\r\n\t\t}\r\n\t\tcycle();\r\n\t}\r\n}\r\n","import { loadAudioEye } from './util/audioeye-helpers';\r\n\r\nexport default function () {\r\n loadAudioEye();\r\n}\r\n","import './';\r\n\r\n/* eslint-disable no-console */\r\nif (console && console.log && typeof console.log === 'function') {\r\n\tconsole.log('Sidekick: Redirected from https://app.frontlineeducation.com/sidekick.js');\r\n}\r\n/* eslint-enable no-console */\r\n"],"names":["String","fromCharCode","a","prototype","n","Math","ceil","i","Number","isInteger","s","min","o","max","r","pow","c","abs","l","floor","arrayIncludes","searchElement","O","Object","len","parseInt","length","arguments","k","currentElement","stringEndsWith","searchString","position","subjectString","toString","isFinite","lastIndex","indexOf","stringStartsWith","substr","arrayFind","predicate","TypeError","list","thisArg","value","call","arrayFindIndex","glean","source","accessor","defaultValue","val","err","isUrlUiModule","url","urlPattern","test","injectTag","tagName","attrs","target","el","document","createElement","keys","sort","forEach","attr","setAttribute","appendChild","fontFaceCss","fontName","fileName","svgType","fontWeight","fontStyle","concat","baseAssetPath","replace","toDashCase","txt","splitWords","join","toCamelCase","map","v","charAt","toUpperCase","toLowerCase","split","filter","elSelector","selector","parent","context","isComplex","useQSA","qsa","method","\"#\"","\".\"","\"@\"","\"=\"","slice","EasyDom","collection","func","Array","deprecatedMsg","oldInterface","newInterface","tmpl","console","error","removedMsg","deprecatedAttr","_ref","obj","_ref$objLoc","objLoc","_ref$newLoc","newLoc","getterOrDefault","getterFunc","hasOwnProperty","defineProperty","get","dot","oldLoc","isOfType","input","type","warnForInternalEvents","_len2","args","_key2","evt","startsWith","logErr","deprecatedEvents","apply","warnForInternalStore","key","init","newLang","makeLangTokens","langs","language","current","i18n","str","langTokens","includes","langKeys","baseSignature","langSignature","productIdFromMap","productId","productIdMap","pIdLower","environmentFromIdmGatewayUrl","idmGatewayUrl","isAws","awsMatch","exec","environmentFromPassportDomain","domain","prod","passportDomain","stage","clearUnusedKeys","storageType","keyData","existingKeys","window","item","unusedKeys","endsWith","_iterator","_createForOfIteratorHelper","_step","done","unusedKey","removeItem","e","f","doCall","post","callback","headers","timeout","withCredentials","responseType","eventHandlers","uploadEventHandlers","xhr","XMLHttpRequest","h","open","header","setRequestHeader","onload","requestLoaded","statusText","response","responseText","status","completeRequest","getAllResponseHeaders","requestError","onerror","onabort","addEventListener","upload","send","headersString","startAppOrgPicker","idmData","appOrgOverrides","store","assign","userContext","createResponseHandler","cb","statusCode","headersStr","Error","JSON","parse","sessionHasExpired","getBearerToken","timer","filterDupProductAndOrgRecords","idx","arr","findIndex","OrganizationId","ProductId","buildOrgSwitcherData","Internal","currentOrg","orgs","access","Disabled","oId","_idmData$access$find","find","OrganizationName","id","name","buildAppSwitcherData","currentApp","apps","ProductName","currentOrgId","a2","Url","legacyName","ProductLegacyName","updateCurrentOrgInSharedState","setCurrentOrgInSharedState","idmCfg","accessToken","getAccessToken","setPrefLeftNavExpanded","prefLeftNavExpanded","_store$get3","idGatewayUrl","makePlatformNav","httpGet","canViewOthers","featureFlagsCC","automationNoPlatformNav","sessionStorage","getItem","events","dom","platformHasHighlight","elem","toggleClass","flInternalProducts","idm","envName","env","product","envValues","ecSand","ssBaseUrl","dataExporterBaseUrl","vendorSSOApiUrl","rubricDesignerUrl","permissionServiceBaseUrl","_idmData","pId","urlIsUiModule","location","href","orgId","x","idmAdministrator","roles","platPermissionToExclude","platformNavAll","title","icon","routeMatcher","children","visible","_ref2","flagsCC","permittedActions","checkState","then","dataImportActions","dataImports","_ref3","_ref4","_ref5","_ref6","_ref7","allIncludedAction","authorized","_ref8","coreConfigFlagStatus","_ref9","permissionProfilesActionList","validPermissionProfileActions","some","action","permissionProfiles","_ref10","locations","employee","identities","Type","unshift","_ref11","Id","_ref12","rolesData","getValue","roleTypes","isVendorAccessible","roleType","identity","role","WHITELISTED_WAGESTREAM_PRODUCTS","push","onClick","handleVendorNavItemClick","_ref13","storedHasAccess","persist","currentAccessToken","token","hasAccess","Promise","resolve","res","expires","data","attributes","objects","reduce","acc","_defineProperty","act","visiblePromises","resolveMenuAccess","menu","visiblePromise","sanitizeMenu","hasAccessToItem","hasVisibility","all","vp","visibleSettings","personalizedNav","isKey","keyName","which","keyPressed","whichPressed","checkKey","isEnter","isEscape","isTab","isLeft","isUp","isRight","isDown","isSpace","cmptMenuItem","domCmpt","domHandle","domMenuList","domMenuItem","domMenuItemLink","on","prevDef","keyPress","menuItemElems","_","menuItemIdx","nextIdx","nextElem","querySelector","focus","stopPropagation","preventDefault","cmptMenu","domMenu","isOpen","hasClass","mItem","menuItems","focusIdx","focusOrBlur","activeElement","cmpt","addClass","willFocus","removeClass","cmptInputClear","domInput","domClearBtn","clearOnEscape","clear","toggleClear","clearOnEscapeCall","adjustDynamicWidthElements","_staticWidthElemNames","impersonationMode","impStaticWidthElemNames","staticWidthElemNames","_dynamicWidthElemNames","impDynamicWidthElemNames","dynamicWidthElemNames","_totalStaticWidth","total","elName","elWidth","staticElems","parseFloat","css","_dynamicWidthElems","dynamicElems","width","measureText","text","font","_totalDynamicWidth","t","adjustment","_staticWidth","activityIndicatorWidth","widthPercent","itemPxReductionAmt","fontFamily","drawCtx","watchForRoles","roleName","currentRole","userInfo","userNameWidth","roleFont","roleWidth","addStaticWidthElem","ctx","updateHelpData","newCtx","articles","domArticles","domArticlesMobile","articlesToDisplay","article","createArticleElement","urlTemplateVars","domButton","domNavButton","blocks","domBlocks","domBlocksMobile","block","createMenuItem","getUrlTemplateVars","idTypes","AssociatedRoles","idRecord","isArray","userKey","interpolatedUrl","_store$get","responsiveTopNav","_elem$find","_elem$find2","_slicedToArray","_elem$find3","_elem$find4","_elem$find5","_elem$find6","_elem$find7","_elem$find8","domButtonElements","querySelectorAll","_elem$find9","_elem$find10","_elem$find11","_elem$find12","domMenuMobile","_elem$find13","_elem$find14","_elem$find15","_elem$find16","domButtonElement","classList","add","reset","search","selectInputText","setSelectionRange","focusInputOnEscape","domSearchText","closeOnEscape","typeAheadOnEnter","selectResultOnArrow","optionElems","domResultsContainer","hasFocus","focusedOptionIdx","searchOnEnter","empty","searchLength","blur","domSearchBox","domResponsiveSearchText","domLoader","updateResults","results","resultsIsArray","listEmpty","resultsList","limit","lst","domRes","searchResult","append","placeHolderText","domSearchContainer","getElementsByClassName","domSearchResponsiveIcon","insertBefore","menuEl","searchTypes","fill","debounce","wait","immediate","later","last","Date","now","timestamp","setTimeout","result","debounced","callNow","clearTimeout","flush","domBtn","_domBtn$find","_domBtn$find2","domBtnContent","domAppCont","domAppList","currApp","appName","innerHTML","isImpersonating","domSkipLink","greedy","b","localeCompare","app","isActive","hasLegacyName","ariaCurrent","liClassName","nameClassName","shiftTheArrow","arrowShift","arrowEl","defaultToPx","direction","transform","offsetTheTip","tipShift","bounds","getBoundingClientRect","defaultShift","leftOrRight","innerWidth","right","left","propShift","flipSide","top","bottom","distance","hoverTimeout","event","domUserName","cmptDynamicWidth","innerText","detectOS","userAgentString","rules","getOperatingSystemRules","detected","os","rule","getNodeVersion","isNode","process","version","platform","parseUserAgent","browsers","getBrowserRules","browser","match","Boolean","bot","buildRules","ruleTuples","tuple","loadAudioEye","script","src","async","body","bootstrapAll","bootstrapAllInProgress","bootstrapComplete","bootstrap","moduleNameCamel","storeCtxElemInitializer","initElement","firstChild","removeChild","moduleName","elems","j","contextStore","stopTitle","titleInterval","setInterval","clearInterval","host","authProfile","domains","d","userExclusiveDomains","applications","address","application","buildUserData","roleData","buildUserRoleData","personId","person","email","firstName","lastName","shortName","externalRoles","_toConsumableArray","getLegacyFormattedData","passportData","legacyFormattedData","authorizationProfile","user","emailConfirmed","isFrontlineUser","profileId","useCredentials","del","generateHmacToken","secretKey","payload","hmac","CryptoJS","HmacSHA256","enc","Hex","setupPassportFeatureFlagsCC","apiEndpoint","envEndpointMap","identifier","custom","apiRequest","allFlags","checkStateByOrg","forceRefresh","setupFeatureFlagsCC","flId","checkViewOthersPermission","viewOthers","stringify","UserKey","require$$0","polyfill","configurable","writable","objectAssign","varArgs","to","index","nextSource","nextKey","numberIsInteger","from","arrayFrom","toStr","isCallable","fn","toInteger","number","isNaN","maxSafeInteger","toLength","arrayLike","C","items","mapFn","T","A","kValue","factory","eval","ambient","doUpdate","force","propVals","cls","activeClasses","config","classes","__updated__","changePossible","activeEvents","__events__","propName","propClasses","prop","props","cache","getCurrentValue","currentValue","getActiveClasses","updateBodyClasses","bodyClasses","_body","className","currentClasses","allClasses","fire","getPropValues","RegExp","values","p","getPropValue","debounceUpdate","eventName","toDelay","rafDoUpdate","configure","delay","onAction","watchElement","_win","watchEvent","getAllClasses","wE","registeredEvents","attachEvent","handler","actionArr","handlers","off","splice","styleIsActive","_doc","rAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","registerPlugin","plugin","getPluginValue","w","innerHeight","clientHeight","winHeight","aboveMin","belowMax","clientWidth","bend","winSize","\"sk-auto-collapse-nav\"","\"sk-adjust-menu-columns\"","height","\"sk-screen-small\"","\"sk-screen-medium\"","\"sk-screen-large\"","getBaseAssetPath","currentSidekickSrc","currentScript","sidekickUrl","URL","defaultUrl","origin","ss","tools","sidekick","loadScript","basePath","fileLoc","charset","stylesheet","loadStylesheet","success","linkAttrs","rel","media","styleTestAttrs","style","class","linkEl","head","styleTestEl","checkStyles","getComputedStyle","visibility","printStyles","fontFace","loadFont","fontCode","\"fl-icons\"","\"open-sans\"","activityIndicator","appSwitcher","contactOrg","footer","help","impersonatedUser","loader","nav","getFullYear","navItem","navItemMegaMenu","navItemSubmenu","notifications","orgSwitcher","pickApp","pickOrg","pickOrgApp","sessionTimeout","siteErrors","skipNav","mainId","tooltip","content","unsupportedBrowserAlert","element","html","bind","oRequestAnimationFrame","msRequestAnimationFrame","domCache","domNode","_classCallCheck","_easyDomID","_createClass","prefix","state","elCount","getAttribute","removeAttribute","parentNode","_listeners","_this","toRemove","removeEventListener","isObject","isBoolean","handlerMap","terminalEvents","lastEventCache","backwardCompatEvents","\"session.logout\"","msg","configOrGreedy","once","terminal","cfg","handlerList","hCount","$once","lastIndexOf","emit","_len","_key","publicApi","isStoreSet","mutuallyExclusiveKeys","eventPrefix","publicReadOnly","passport","set","flag","onValue","onValueOnce","publicSet","fr","\"You have been signed out.\"","\"For your security and protection of your data, you have been signed out due to inactivity.\"","\"Sign In Again to Continue\"","\"Account Settings\"","\"All rights reserved\"","\"clear input\"","\"close panel\"","\"Contact Your Organization\"","\"Due to inactivity, your session will end and you will be signed out. Do you want to stay signed in?\"","Fax","\"Help Resources\"","Navigation","\"No, Sign Me Out\"","\"No Results Found\"","Notifications","Phone","\"Recent Notifications\"","Search","\"Search Organizations\"","\"Search Results\"","\"Select an Application\"","\"Select an Organization\"","\"Sign Out\"","\"Skip to Main Content\"","\"Switch Apps\"","\"Switch Organizations\"","\"System Activity\"","\"Yes, Stay Signed In\"","\"You have no notifications\"","\"You will be signed out soon.\"","\"Your Frontline Account\"","\"Your Solutions\"","\"viewing as\"","\"Minimize Navigation\"","\"Expand Navigation\"","\"Toggle Navigation\"","\"System Configuration\"","\"Manage User Access\"","\"Additional Resources\"","\"Resource Library\"","\"Data Exporter\"","\"User Configuration\"","\"Frontline User Permissions\"","\"Browse Library\"","\"My Resource History\"","\"My Groups\"","Library","Administration","\"My Organization Resources\"","\"Global Directory\"","\"Learning Designer Admin\"","Reports","\"Manage Content Curator\"","\"Micro-Credential Assessor Tool\"","\"Employee Directory\"","\"My Profile\"","\"My Resources\"","\"Staff Directory\"","\"My Frontline\"","\"Stop Impersonation\"","\"Collaborative Video Rubrics\"","\"Your Roles\"","Help","Organizations","it","es","productUserTypeMap","nonProdProductUserTypeMap","nonProdProductIdMap","passportAuthDomain","vendorSSOBaseUrl","EC","IepLegacyBeta","\"504LegacyBeta\"","RtiLegacyBeta","EsaLegacyBeta","MedicaidLegacyBeta","IepLegacy","\"504Legacy\"","RtiLegacy","EsaLegacy","MedicaidLegacy","ta","AbsMgmt","pd","recruit","IepEnrich","cc","platformTools","defaults","inverseType","session","local","sStore","lStore","localStorage","ns","minToMs","setItem","raw","json","cleanCache","storage","vendorId","vendorSSO","idmDataKeys","_oid","_pid","processIdmData","users","targetOrgId","dataKeys","missingIdmMeta","missingIdmData","prev","isInternalProduct","productIdUpper","filteredAccessRecords","State","isIdmAdmin","targetProductAccessRecord","DefaultSignInUrl","OrgNavigationUrlTemplate","Name","LegacyName","fakeProductAccess","FlId","Fake","log","currentOrgProductAccess","OrganizationUsers","ou","Identities","ConsortiumUsers","cu","CrossOrgAppUserAssociations","xOrgAppAssoc","Access","deprecatedAccessAttrs","newAttr","domWin","idmAdminOverrideOfOrg","currentOrgIsNotTheOrgSelected","put","patch","_store$get2","flagsSvc","_idmData_","loadPlatformNav","_elem","_i18n","\" \"","arrowdown","arrowleft","arrowright","arrowup","enter","escape","tab","matcherMap","pathMatchesRoute","path","route","matcher","baseUrl","_window$location","protocol","fqdn","fqdnPath","_re","re","queryStringObject","rawArr","qs","_qs$split","_qs$split2","decodeURIComponent","firstRegistration","getContext","impMode","Countdown","duration","elapsed","lastFrameTime","onTick","onCompleted","tick","getTimeLeft","pause","setDuration","seconds","start","currentFrameTime","deltaTime","detect","navigator","userAgent","_log","supportedBrowsers","domAppEl","appElement","hideAppSwitcher","hideOrgSwitcher","hideSearch","customLogo","customLogoHomeUrl","isB2C","domExitImpersonation","domPassportLogo","domPassportCustomLogo","domLogoElement","domCustomLogoElement","_domAppEl$find","_domAppEl$find2","domHeader","show","activelyImpersonatingV2","idGatewayBaseUrl","_ref$isImpersonatingV","isImpersonatingV2","elements","\"sk-app-switcher\"","\"sk-org-switcher\"","\"sk-search\"","_i","_Object$entries","entries","_Object$entries$_i","remove","responsiveLogoClass","domCustomLogo","handleMenuClick","dismissVendorOverlay","autoCollapseNav","toggleNavExpanded","closeSubMenu","handleArrowToggle","expandState","domBody","renderMenu","platformNav","kickCycle","menuContainer","appMenuItems","m","isPlatformMenu","menuDivider","platformMenuItems","mainMenuItems","menuName","domContainer","menuHasAttention","cycle","domTopSection","domBottomSection","checkForPathChange","currentPath","previousPath","substring","toggleNavArrowTooltipContent","navArrowContent","domNavArrowTooltip","tipContent","textContent","newExpandedFootprintState","expandedFootprint","domFlBrandLarge","domFlBrandSmall","setAutoCollapseNav","destroy","_menu$find","_menu$find2","subMenu","_menu$find3","_menu$find4","link","appCfg","domDimmer","domNavArrowIcon","domOrgBrandSmall","domOrgBrandLarge","_domBottomSection$fin","_domBottomSection$fin2","_domBottomSection$fin3","_domBottomSection$fin4","branding","rectangleImagePublicUrl","squareImagePublicUrl","extendedNav","eNav","highlightRoute","highlighted","shouldWeMega","noOrphanNodes","every","totalNodes","countNodes","child","subMenuType","menuType","badgeEvent","domBadge","updateNotificationList","updateUnread","domNotificationsEmpty","cont","unread","updateAllNotifications","domElements","desktop","mobile","setUnreadBadge","unreadBadge","handleMenuEvent","bell","menuCloseIcon","notificationBtn","domMenuElements","domMenuElement","displayMobileMenu","displayAction","ictx","subLevel","menuGroup","subMenus","kids","hasKids","_el$find","_el$find2","clearFilter","domFilterInput","domRoles","childNodes","domNoResult","updateRoleData","hideRoles","roleElements","currentRoleName","domRoleName","domFrontlineRoles","domFilter","linkClasses","showNavigationTabs","domMobileOrgSwitcher","domUserInfoLogo","domNavigationMenu","showAcctSettings","showSignOut","rolesLimit","_domButton$find","_domButton$find2","_domButton$find3","_domButton$find4","domSettings","domLogout","_elem$find17","_elem$find18","_elem$find19","_elem$find20","domFlUserAccountHeader","_elem$find21","_elem$find22","_elem$find23","_elem$find24","_elem$find25","_elem$find26","_elem$find27","_elem$find28","domFrontlineHome","_elem$find29","_elem$find30","domEndImpersonation","domButtonContainer","responsiveUserInfoLogo","_elem$find31","_elem$find32","impersonator","searchValueFound","currentTarget","searchOrgs","org","searchTextElement","render","displayLimit","orgName","domOrgMobileButton","domOrgCont","domOrgContMobile","domSearchCont","domOrgSearchContMobile","searchResultsOrgList","searchResultsOrgListMobile","domSearchTextMobile","createOrgList","domOrgList","domOrgListMobile","domOrgLoadAllBtn","domOrgLoadAllBtnMobile","domList","searchResults","linkClassName","hasPassport","domClearBtnMobile","debouncedFn","_debounce","$el","getElementById","display","fillContent","phones","phone","fax","contactName","comments","domSearchInput","orgListAccessRecords","aName","bName","deDupOrgAccess","accessRecords","av","qsData","domSearchClearBtn","domAppFilter","filteredByTitle","deDupAppAccess","setupAppList","appListAccessRecords","domPickOrg","domOrgFilter","selectedOrgPA","weHaveAListToShow","domLink","adjustColumns","currentlySingleCol","singleColumnMode","singleColumnHeight","cidx","titleHeight","itemHeight","bottomPad","headerHeight","titleNode","childEl","load","_ref$timer","countdown","showSignedOutScreen","time","round","domTimer","format","domSignedOut","minutes","domExtendBtn","domSignInLink","timerInterval","reload","targetElement","mainElement","Element","tabIndex","audioeye","alreadyDismissed","isSupported","domDismissBtn","dismiss","cache1DayLocal","handleIdmConfig","getSessionData","sid","processUsersAndProducts","products","idmMeta","Roles","FirstName","LastName","Email","EmailIsVerified","IsFrontlineUser","removedUserAttrs","newLog","idType","rawUser","rawProductLinks","userUrl","userRes","productLinksUrl","productLinksRes","processOrgBrand","brand","envSandApiUrl","rawOrgBrandData","orgBrandUrl","orgBrandRes","rawProduct","pData","fillUiFromIdmData","accessRecord","getExternalRoles","setUserContext","params","_data$passportBaseUrl","passportBaseUrl","endImpersonation","returnUrl","getUserContext","_ref$userInfo","_ref$passportBaseUrl","handleInactivity","resetIdleTimeout","idleTimeout","idleDuration","countdownTimer","activityEvents","setStateFromContext","warn","registerPassportEvents","selectedOrg","selectedDomain","_store$get4","fromUrl","encodeURIComponent","fromApp","_store$get5","_store$get6","_store$get7","root","module","exports","this","undefined","crypto","self","globalThis","msCrypto","global","require","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","create","F","subtype","C_lib","lib","Base","extend","overrides","mixIn","$super","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","random","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","charCodeAt","Utf8","utf8Str","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","doFlush","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","processedWords","_minBufferSize","nWordsReady","nBytesReady","offset","_doProcessBlock","Hasher","_doReset","update","messageUpdate","finalize","hash","_doFinalize","_createHelper","hasher","message","_createHmacHelper","C_algo","HMAC","algo","X32WordArray","C_x64","x64","X64Word","Word","high","low","X64WordArray","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","ArrayBuffer","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","swapEndian","word","Utf16BE","Utf16","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","parseLoop","base64Str","base64StrLength","reverseMap","bits1","bits2","bitsCombined","Base64","_map","base64Chars","byte1","byte2","byte3","triplet","paddingChar","_reverseMap","paddingIndex","Base64url","urlSafe","_safe_map","FF","GG","HH","II","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","W","SHA1","HmacSHA1","K","isPrime","sqrt","sqrtN","factor","getFractionalBits","nPrime","SHA256","g","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","t1","t2","undef","require$$1","SHA224","HmacSHA224","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","cl","dh","dl","eh","fh","fl","gh","gl","hh","hl","Wi","Wil","Wih","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1l","t1h","t2l","t2h","HmacSHA512","require$$2","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","y","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","f1","z","f2","f3","f4","f5","rotl","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sl","sr","ar","br","cr","dr","er","HmacRIPEMD160","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","PBKDF2","keySize","iterations","compute","password","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","StreamCipher","finalProcessedBlocks","C_mode","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","C_pad","pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","BlockCipher","modeCreator","_mode","__creator","CipherParams","cipherParams","formatter","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","counter","_counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","HexFormatter","require$$3","require$$4","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x2","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s0","s1","s2","s3","t0","t3","exchangeLR","mask","_lBlock","_rBlock","exchangeRL","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","lBlock","rBlock","TripleDES","key1","key2","key3","_des1","_des2","_des3","generateKeystreamWord","S","_S","_j","keystreamWord","RC4","keySigBytes","keyByteIndex","keyByte","RC4Drop","drop","nextState","X","_X","_C","C_","_b","gx","ga","gb","G","Rabbit","IV","IV_0","IV_1","i0","i2","i1","i3","RabbitLegacy","sbox","BlowFish_Encrypt","Xl","Xr","temp","N","pbox","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","ORIG_S","keyIndex","ORIG_P","Data1","Data2","BLOWFISH_CTX","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","dev","qa","_generateHmacToken","fetch","Accept","\"Content-Type\"","Authorization","featureKey","featureValue","customUser","goInit","hideSideNav","appEl","bodyComponents","_bodyComponents$i","ctxStore","configDefaults","addIcons","addOpenSans","addSidekickCss","scopeSidekickIcons","autoAppendAppNameInTitle","translations","domScanner"],"mappings":"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AAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,SAAU,CAAC,CAC9EA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,UAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAC9EA,CAAc,CAAC,SAAU,CAAE,UAAU,CAAC,CAAEA,CAAc,CA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SAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,OAAU,CAAE,SAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAAI,CACtD,CAAI,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,QAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,QAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,QAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,QAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAAI,CACtD,CAAI,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,QAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,QAAU,CAAE,UAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,QAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,OAAU,CAAE,SAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAAG,CACrD,CAAI,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,QAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,QAAU,CAAE,QAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,QAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,QAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,QAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,QAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,SAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,SAAU,CAAE,SAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,SAAU,CAAE,QAAU,CAAE,QAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,UAAU,CAC9C,UAAU,CAAE,UAAU,CAAE,UAAU,CAAE,SAAU,CAAG,CACxD,IAEGK,CAAAA,CAAY,CAAG,CACfX,IAAI,CAAE,EAAE,CACRN,IAAI,CAAE,GACT,CA8HGkB,CAAQ,CAAGxe,CAAM,CAACwe,QAAQ,CAAG/J,CAAW,CAACvY,MAAM,CAAC,CAChDoD,QAAQ,CAAE,QAAAA,CAAA,CAAY,CAElB,GAAI,IAAI,CAACoZ,cAAc,GAAK,IAAI,CAAC1/B,IAAI,KAKjClwB,CAAAA,CAAG,CAAG,IAAI,CAAC4vD,cAAc,CAAG,IAAI,CAAC1/B,IAAI,CACrC2/B,CAAQ,CAAG7vD,CAAG,CAAC6zC,KAAK,CACpBsU,CAAO,CAAGnoD,CAAG,CAAC8zC,QAAQ,CAAG,CAAC,CAG9BkhB,CAAY,CAACS,CAAY,CAAE5F,CAAQ,CAAE1H,CAAO,CAAC,EAChD,CAED6C,YAAY,CAAE,QAAAA,CAAUzP,CAAC,CAAElF,CAAM,CAAE,CAC/B,GAAI7oC,CAAAA,CAAG,CAAGinD,CAAgB,CAACgB,CAAY,CAAEla,CAAC,CAAClF,CAAM,CAAC,CAAEkF,CAAC,CAAClF,CAAM,CAAG,CAAC,CAAC,CAAC,CAClEkF,CAAC,CAAClF,CAAM,CAAC,CAAG7oC,CAAG,CAACqP,IAAI,CACpB0+B,CAAC,CAAClF,CAAM,CAAG,CAAC,CAAC,CAAG7oC,CAAG,CAACoP,MACvB,CAEDsuC,YAAY,CAAE,QAAAA,CAAU3P,CAAC,CAAElF,CAAM,CAAE,CAC/B,GAAI7oC,CAAAA,CAAG,CAAGunD,CAAgB,CAACU,CAAY,CAAEla,CAAC,CAAClF,CAAM,CAAC,CAAEkF,CAAC,CAAClF,CAAM,CAAG,CAAC,CAAC,CAAC,CAClEkF,CAAC,CAAClF,CAAM,CAAC,CAAG7oC,CAAG,CAACqP,IAAI,CACpB0+B,CAAC,CAAClF,CAAM,CAAG,CAAC,CAAC,CAAG7oC,CAAG,CAACoP,MACvB,CAEDk5B,SAAS,EAAO,CAEhBqS,OAAO,EAAQ,CAEfuB,MAAM,GACT,CAAC,CAUF5kC,CAAC,CAAC4wC,QAAQ,CAAG/J,CAAW,CAAC7U,aAAa,CAAC4e,CAAQ,EAClD,EAAE,CAGIrzC,CAAQ,CAACqzC,SAEhB,uBCtdC,UAAU5jB,CAAI,CAAE1sB,CAAO,CAAEm5B,CAAK,CAAE,CAGhCxM,SAAc,CAAGC,CAAO,CAAG5sB,CAAO,CAAC5B,EAAiB,CAAEg7B,EAAqB,CAAE4E,EAA4B,CAAEoL,EAAsB,CAAEC,EAAuB,CAAEkH,EAA0B,CAAEC,EAAgB,CAAEC,EAAiB,CAAEC,EAAmB,CAAEC,EAAmB,CAAEC,EAAmB,CAAEC,EAAmB,CAAEC,EAAiB,CAAEC,EAAsB,CAAEC,EAAiB,CAAEC,EAAmB,CAAEC,EAAmB,CAAEC,EAAwB,CAAEC,EAAqB,CAAEC,EAAqB,CAAEC,EAA6B,CAAEC,EAAqB,CAAEC,EAAqB,CAAEC,EAAyB,CAAEC,EAAyB,CAAEC,EAAyB,CAAEC,EAA4B,CAAEC,EAA0B,CAAEC,EAAuB,CAAEC,EAAgB,CAAEC,EAAsB,CAAEC,EAAgB,CAAEC,EAAmB,CAAEC,EAA0B,CAAEC,EAAqB,EAUr1B,EAACvlB,EAAI,CAAE,SAAU5vB,CAAQ,CAAE,CAE3B,MAAOA,CAAAA,EAEP,IhEZGV,EAAI,CAAG,IAAI,CACXe,EAAW,CAAG,IAAI,CAClBK,EAAQ,CAAG,IAAI,CAEbJ,EAAc,CAAG,CACtB80C,GAAG,CAAE,uDAAuD,CAC5DC,EAAE,CAAE,sDAAsD,CAC1D/1D,KAAK,CAAE,yDAAyD,CAChEF,IAAI,CAAE,gDACP,CAAC,CAUKqhB,EAAU,CAAG,QAAbA,CAAAA,CAAUA,CAAItoB,CAAG,CAAE0kB,CAAI,CAAK,IAE3BgD,CAAAA,CAAS,CAAGjE,EAA2B,CAC7C05C,CAAA,CAA4B11C,EAAiB,IAAY/C,CAAI,CAAC,CAAtDkD,CAAI,CAAAu1C,CAAA,CAAJv1C,IAAI,CAAEhI,CAAS,CAAAu9C,CAAA,CAATv9C,SAAS,CAEpB,MAAOw9C,CAAAA,KAAK,CAACp9D,CAAG,CAAE,CACpB4C,MAAM,CAAE,MAAM,CACd2F,OAAO,CAAE,CACR80D,MAAA,CAAU,kBAAkB,CAC5BC,cAAA,CAAgB,kBAAkB,CAClCC,aAAA,IAAej8D,MAAA,CAAKsmB,CAAI,EACxB,CACDlD,IAAI,CAAE7Z,IAAI,CAACie,SAAS,CAAC,CAAE5V,IAAI,CAAEwR,CAAI,CAAE9E,SAAS,CAATA,EAAW,EAC9C,CAAC,CAAC1P,IAAI,CAAC,SAAC8C,CAAG,CAAK,CAChB,MAAOA,CAAAA,CAAG,CAAC2pB,IAAI,GACf,CAAC,SAAM,CAAC,UAAM,OACXjY,CAAAA,CAAI,CAAC9kB,YAAY,CACZ,CACNN,KAAK,CAAEolB,CAAI,CAAC9kB,aACZ,CAEM,GAER,CACF,CAAC,CAyDYqQ,EAAU,CAAG,QAAbA,CAAAA,CAAUA,CAAIutD,CAAU,CAA0B,IAAxBC,CAAAA,CAAY,KAAAr/D,SAAA,CAAAD,QAAAC,SAAA,YAAA,GAAAA,SAAA,GAAO,CACnDwB,CAAY,GAAQ,CACpBs2B,CAAI,CAAG3N,EAAQ,CAACvc,IAAI,CAAC,SAAA3O,CAAC,EAAA,MAAIA,CAAAA,CAAC,CAACmI,GAAG,GAAKg4D,GAAW,OAClDtnC,CAAAA,CAAI,EAAIA,CAAI,CAAC52B,KAAK,CACbwT,OAAO,CAACC,OAAO,CAACmjB,CAAI,CAAC52B,KAAK,GAAKm+D,CAAY,CAAC,CAE5C3qD,OAAO,CAACC,OAAO,CAACnT,CAAY,GAAK69D,CAAY,CAEtD,CAAC,CAWYj1C,EAAe,CAAG,QAAlBA,CAAAA,CAAeA,CAAIg1C,CAAU,CAAmE,IAAjEC,CAAAA,CAAY,KAAAr/D,SAAA,CAAAD,QAAAC,SAAA,YAAA,GAAAA,SAAA,GAAO,CAAEs/D,CAAU,GAAAt/D,SAAA,CAAAD,QAAAC,SAAA,YAAA,CAAAA,SAAA,IAAG+oB,EAAI,CAAEvnB,CAAY,MAAAxB,SAAA,CAAAD,QAAAC,SAAA,YAAA,GAAAA,SAAA,GAAQ,CACvG,MAAOkqB,CAAAA,EAAU,IAAAhnB,MAAA,CAAI4mB,EAAW,wBAAuB,CACtD1iB,GAAG,CAAEg4D,CAAU,CACf59D,YAAY,CAAZA,CAAY,CACZunB,IAAI,CAAEu2C,EACN,CAAC,CAACxtD,IAAI,CAAC,SAAC5G,CAAQ,CAAK,CACrB,MAAOA,CAAAA,CAAQ,CAAChK,KAAK,GAAKm+D,EAC1B,CACF,CAAC,CAOYh1C,EAAY,CAAG,QAAfA,CAAAA,CAAYA,CAAAA,CAAS,EAAE,CAOvB3W,EAAQ,CAAG,QAAXA,CAAAA,CAAQA,CAAI0rD,CAAU,CAAK,IACjC59D,CAAAA,CAAY,CAAG,IAAI,CACnBs2B,CAAI,CAAG3N,EAAQ,CAACvc,IAAI,CAAC,SAAA3O,CAAC,EAAA,MAAIA,CAAAA,CAAC,CAACmI,GAAG,GAAKg4D,GAAW,OAClDtnC,CAAAA,CAAI,EAAIA,CAAI,CAAC52B,KAAK,CACbwT,OAAO,CAACC,OAAO,CAACmjB,CAAI,CAAC52B,KAAK,CAAC,CAE3BwT,OAAO,CAACC,OAAO,CAACnT,CAAY,CAErC,CAAC,CiE1IK0tB,EAAI,CAAG,CAAC,EAAGzC,IAAI,EAAE,MAAM,CAAC,CAK1ByC,EAAI,CAAC4C,QAAQ,SAAc,EAC9BxsB,OAAO,EAAIA,OAAO,CAACC,KAAK,EAAID,OAAO,CAACC,KAAK,CAAC,mEAAmE,CAAC,GAE3G,CAACusB,QAAQ,CAAG5C,EAAI,CAAC4C,QAAQ,EAAI,CAChCzqB,IAAI,CCcU,YAAoB,CA2ElC,QAASk4D,CAAAA,CAAMA,CAAAA,CAAG,CACdvyC,CAAM,CAACwyC,WAAW,GACpBC,CAAK,CAACxxC,SAAS,EAAI,gBAAgB,EAEhCwxC,CAAK,CAACxxC,SAAS,CAACluB,MAAM,GAAI0/D,CAAK,CAACxxC,SAAS,EAAI,GAAG,EACpDwxC,CAAK,CAACxxC,SAAS,EAAI,8BAA8B,CAEjD,IAAK,GAAIrvB,CAAAA,CAAC,CAAG8gE,CAAc,CAAC3/D,MAAM,CAAEnB,CAAC,EAAE,EAAG,IACzC+gE,CAAAA,CAAA,CAA2BD,CAAc,CAAC9gE,CAAC,CAAC,CAApCmP,CAAI,CAAA4xD,CAAA,CAAJ5xD,IAAI,CAAE6xD,CAAQ,CAAAD,CAAA,CAARC,QAAQ,CAChBz9D,CAAE,CAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC,CACxCF,CAAE,CAACO,YAAY,OAAAQ,MAAA,CAAO6K,CAAI,EAAI,EAAE,CAAC,CAC7B6xD,CAAQ,EAAIz9D,CAAE,CAACO,YAAY,CAAC,eAAe,CAAEk9D,CAAQ,CAAC,CAClC,IAAI,EAAxBH,CAAK,CAAC34C,UAAkB,CAC3B24C,CAAK,CAAC98D,WAAW,CAACR,CAAE,CAAC,CAErBs9D,CAAK,CAAC5+C,YAAY,CAAC1e,CAAE,CAAEs9D,CAAK,CAAC34C,UAAU,EAGzCihB,EAAK,GA7F4B,GAAVhR,CAAAA,CAAG,GAAA/2B,SAAA,CAAAD,QAAAC,SAAA,YAAA,CAAAA,SAAA,IAAG,EAAE,CAEhC,GAA8B,IAAI,EAA9BiM,EAAS,CAAC,WAAW,CAAS,EAGlCA,EAAiB,CAAC,UAAU,CAAE,SAACF,CAAO,CAAK,CAC1Cue,EAAmB,CAACve,CAAO,CAAC,CAC5Bye,EAAyB,CAACze,CAAO,EACjC,CAAC,CAGFE,EAAiB,CAAC,eAAe,CAAE,SAAC7H,CAAO,CAAK,CAC/CylB,EAA2B,CAACzlB,CAAO,EACnC,CAAC,CAEF6H,EAAiB,CAAC,KAAK,CAAE,SAAU8qB,CAAG,CAAE,CACvC,GAAM/mB,CAAAA,CAAO,CAAGC,CAAgC,CAAC8mB,CAAG,CAAC9nB,YAAY,CAAC,CAClEyF,OAAO,CAACkB,GAAG,CAAC,CACXm+B,EAAW,CAAC,cAAc,CAAE9jC,EAAG,CAACD,CAAO,CAAC,CAACysB,gBAAgB,CAAC,CAC1DsX,EAAe,CAAC,eAAe,CAAE,WAAA,MAAM,OAAM9jC,EAAG,CAACD,CAAO,CAAC,CAACysB,gBAAgB,CAAC,CAC3E,EACD,CAAC,IAEIijC,CAAAA,CAAc,CAAG,CACtB,CAAE3xD,IAAI,CAAE,QAAQ,CAAE6xD,QAAQ,IAAS,CACnC,CAAE7xD,IAAI,CAAE,2BAA2B,CAAE6xD,QAAQ,CAAE,MAAO,CACtD,CAAE7xD,IAAI,CAAE,KAAK,CAAE6xD,QAAQ,CAAE,MAAO,CAChC,CAAE7xD,IAAI,CAAE,cAAc,CAAE6xD,QAAQ,CAAE,oBAAqB,CACvD,CAAE7xD,IAAI,CAAE,iBAAiB,CAAE6xD,QAAQ,CAAE,kBAAmB,CACxD,CAAE7xD,IAAI,CAAE,aAAa,CAAE6xD,QAAQ,IAAS,CACxC,CAAE7xD,IAAI,CAAE,QAAQ,CAAE6xD,QAAQ,IAAS,CACnC,CAAE7xD,IAAI,CAAE,UAAU,CAAE6xD,QAAQ,CAAE,MAAO,CACrC,CACKC,CAAc,CAAG,CACtBl7B,UAAU,CAAEviC,QAAQ,CAACkkB,IAAI,CACzBwuB,WAAW,CAAE,IAAI,CACjBgrB,QAAQ,GAAM,CACdC,WAAW,GAAM,CACjBC,cAAc,GAAM,CACpBC,kBAAkB,GAAO,CACzBC,wBAAwB,GAAO,CAC/B1hC,UAAU,GAAO,CACjB/2B,QAAQ,CAAE,IAAI,CACds9B,UAAU,CAAE,IAAI,CAChBC,iBAAiB,CAAE,IAAI,CACvBJ,eAAe,GAAO,CACtBC,eAAe,GAAO,CACtBC,UAAU,GAAO,CACjB3nB,gBAAgB,GAAO,CACvB+vB,SAAS,GAAO,CAChBjI,KAAK,GAAO,CACZu6B,WAAW,IACX,CAGKxyC,CAAM,CAAGptB,MAAM,CAACsM,MAAM,CAAC,EAAE,CAAE2zD,CAAc,CAAE9oC,CAAG,CAAC,CACrD9qB,EAAS,CAAC,WAAW,CAAE+gB,CAAM,CAAC,CAC9B/gB,EAAS,CAAC,yBAAyB,CAAE,CAAC,eAAe,CAAE,KAAK,CAAC,CAAC,CAE9Dk0D,CAAiB,CAACnzC,CAAM,CAACvlB,QAAQ,CAAC,CAElC,GAAMg4D,CAAAA,CAAK,CAAGzyC,CAAM,CAAC2X,UAAU,CAC3B3X,CAAM,CAAC8yC,QAAQ,EAAI/rB,EAAa,CAAC,UAAU,CAAC,CAC5C/mB,CAAM,CAAC+yC,WAAW,EAAIhsB,EAAa,CAAC,WAAW,CAAC,CAChD/mB,CAAM,CAACgzC,cAAc,CACxBjsB,EAAe,CAAC,cAAc,CAAEwrB,CAAM,CAAC,CAC7BvyC,CAAM,CAACizC,kBAAkB,CACnClsB,EAAe,CAAC,qBAAqB,CAAEwrB,CAAM,CAAC,CAE9CA,CAAM,EAAE,CAGLvyC,CAAM,CAACkzC,wBAAwB,EAAIE,EAAgB,EAAE,CACzDrsB,EAAgB,EAAE,CAsBnB,CD7GK,CAAEhM,KAAK,CAALA,EAAK,CAAEr4B,GAAG,CAAHA,EAAG,CAAEulC,QAAQ,CEvBZ,YAAY,CACvB/uB,EAAY,EAChB,CFqB2B,CAC1Bja,KAAK,CAAEA,EAAe,CACtBwD,MAAM,CAAEA,EACT,CAAC,CGzBGnK,OAAO,EAAIA,OAAO,CAAC66B,GAAG,EAA2B,UAAU,EAAjC,MAAO76B,CAAAA,OAAO,CAAC66B,GAAkB,EAC9D76B,OAAO,CAAC66B,GAAG,CAAC,0EAA0E"}