diff --git a/css/popupboxes.scss b/css/popupboxes.scss index 8c3074bd9..174044db3 100644 --- a/css/popupboxes.scss +++ b/css/popupboxes.scss @@ -63,7 +63,7 @@ z-index: 10; width: 50%; height: auto; - max-height: 40%; + max-height: 50%; top: 40%; left: 50%; margin: -10% 0 0 -25%; diff --git a/css/redpill.scss b/css/redpill.scss new file mode 100644 index 000000000..1c8669cfe --- /dev/null +++ b/css/redpill.scss @@ -0,0 +1,22 @@ +@import "theme"; + +/** + * Styling for the Red Pill screen (the BitNode selection UI) + */ +#red-pill-container { + position: fixed; +} + + +.bitnode { + color: #00f; +} + +.bitnode-destroyed { + color: #f00; +} + +.bitnode:hover, +.bitnode-destroyed:hover { + color: #fff; +} diff --git a/css/resleeving.scss b/css/resleeving.scss new file mode 100644 index 000000000..d728013cf --- /dev/null +++ b/css/resleeving.scss @@ -0,0 +1,28 @@ + /** + * Styling for the Re-Sleeving Page + */ +@import "theme"; + +.resleeve-container { + border: 1px solid white; + margin: 4px; + width: 75%; + + p { + font-size: $defaultFontSize * 0.8125; + } +} + +.resleeve-panel { + display: inline-block; + margin: 0px; + padding: 2px; +} + +.resleeve-aug-selector { + font-size: $defaultFontSize * 0.8125; + + option { + font-size: $defaultFontSize * 0.8125; + } +} diff --git a/css/sleeves.scss b/css/sleeves.scss index f395f5fab..9ef3d601c 100644 --- a/css/sleeves.scss +++ b/css/sleeves.scss @@ -6,4 +6,24 @@ .sleeve-container { border: 1px solid white; margin: 4px; + width: 75%; + + p { + font-size: $defaultFontSize * 0.875; + } +} + +.sleeves-page-info { + display: "block"; + width: 75%; +} + +.sleeve-panel { + display: inline-block; + margin: 0px; + padding: 2px; + + select { + display: block; + } } diff --git a/css/workinprogress.scss b/css/workinprogress.scss index 90e8a309f..b9c1b5e02 100644 --- a/css/workinprogress.scss +++ b/css/workinprogress.scss @@ -46,18 +46,6 @@ cursor: pointer; } -#red-pill-container, #cinematic-text-container { position: fixed; } - -.bitnode { - color: #00f; -} -.bitnode-destroyed { - color: #f00; -} -.bitnode:hover, -.bitnode-destroyed:hover { - color: #fff; -} diff --git a/dist/engine.bundle.js b/dist/engine.bundle.js index a15659163..0abbc5f04 100644 --- a/dist/engine.bundle.js +++ b/dist/engine.bundle.js @@ -164,7 +164,7 @@ "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Player; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadPlayer; }); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Augmentation_AugmentationHelpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/AugmentationHelpers */ 61); /* harmony import */ var _Augmentation_PlayerOwnedAugmentation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Augmentation/PlayerOwnedAugmentation */ 98); @@ -180,9 +180,9 @@ /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Company_Company__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Company/Companies */ 19); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Company/GetNextCompanyPosition */ 109); +/* harmony import */ var _Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Company/GetNextCompanyPosition */ 112); /* harmony import */ var _Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Company/GetJobRequirementText */ 100); +/* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Company/GetJobRequirementText */ 101); /* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Company/CompanyPositions */ 33); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11__); @@ -190,11 +190,11 @@ /* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Corporation/Corporation */ 62); +/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Corporation/Corporation */ 63); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Programs/Programs */ 26); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Programs_Programs__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _Crime_CrimeHelpers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Crime/CrimeHelpers */ 101); -/* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Crime/Crimes */ 37); +/* harmony import */ var _Crime_CrimeHelpers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Crime/CrimeHelpers */ 102); +/* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Crime/Crimes */ 36); /* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_Crime_Crimes__WEBPACK_IMPORTED_MODULE_17__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./engine */ 11); /* harmony import */ var _Faction_Faction__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Faction/Faction */ 58); @@ -206,12 +206,12 @@ /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_23__); /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./NetscriptFunctions */ 47); -/* harmony import */ var _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./PersonObjects/Sleeve/Sleeve */ 144); +/* harmony import */ var _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./PersonObjects/Sleeve/Sleeve */ 99); /* harmony import */ var _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_25__); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_27__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./SourceFile */ 80); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./SourceFile/SourceFileFlags */ 83); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_30__); @@ -774,6 +774,14 @@ PlayerObject.prototype.loseMoney = function(money) { this.money = this.money.minus(money); } +PlayerObject.prototype.canAfford = function(cost) { + if (isNaN(cost)) { + console.error(`NaN passed into Player.canAfford()`); + return false; + } + return this.money.gte(cost); +} + PlayerObject.prototype.gainHackingExp = function(exp) { if (isNaN(exp)) { console.log("ERR: NaN passed into Player.gainHackingExp()"); return; @@ -3156,7 +3164,9 @@ exports.CONSTANTS = { * Job Changes: ** You can now hold multiple jobs at once. This means you no longer lose reputation when leaving a company ** Because of this change, the getCharacterInformation() Netscript function returns a slightly different value + * Home Computer RAM is now capped at 2 ^ 30 GB (1073741824 GB) + * Pop-up dialog boxes are a little bit bigger ` }; @@ -3356,7 +3366,7 @@ exports.createElement = createElement; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const isString_1 = __webpack_require__(/*! ./helpers/isString */ 43); +const isString_1 = __webpack_require__(/*! ./helpers/isString */ 44); // Netburner String helper functions // Replaces the character at an index with a new character function replaceAt(base, index, character) { @@ -3469,21 +3479,21 @@ exports.generateRandomString = generateRandomString; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const numeral = __webpack_require__(/*! numeral */ 87); -__webpack_require__(/*! numeral/locales/bg */ 307); -__webpack_require__(/*! numeral/locales/cs */ 306); -__webpack_require__(/*! numeral/locales/da-dk */ 305); -__webpack_require__(/*! numeral/locales/de */ 304); -__webpack_require__(/*! numeral/locales/en-au */ 303); -__webpack_require__(/*! numeral/locales/en-gb */ 302); -__webpack_require__(/*! numeral/locales/es */ 301); -__webpack_require__(/*! numeral/locales/fr */ 300); -__webpack_require__(/*! numeral/locales/hu */ 299); -__webpack_require__(/*! numeral/locales/it */ 298); -__webpack_require__(/*! numeral/locales/lv */ 297); -__webpack_require__(/*! numeral/locales/no */ 296); -__webpack_require__(/*! numeral/locales/pl */ 295); -__webpack_require__(/*! numeral/locales/ru */ 294); +const numeral = __webpack_require__(/*! numeral */ 88); +__webpack_require__(/*! numeral/locales/bg */ 315); +__webpack_require__(/*! numeral/locales/cs */ 314); +__webpack_require__(/*! numeral/locales/da-dk */ 313); +__webpack_require__(/*! numeral/locales/de */ 312); +__webpack_require__(/*! numeral/locales/en-au */ 311); +__webpack_require__(/*! numeral/locales/en-gb */ 310); +__webpack_require__(/*! numeral/locales/es */ 309); +__webpack_require__(/*! numeral/locales/fr */ 308); +__webpack_require__(/*! numeral/locales/hu */ 307); +__webpack_require__(/*! numeral/locales/it */ 306); +__webpack_require__(/*! numeral/locales/lv */ 305); +__webpack_require__(/*! numeral/locales/no */ 304); +__webpack_require__(/*! numeral/locales/pl */ 303); +__webpack_require__(/*! numeral/locales/ru */ 302); /* eslint-disable class-methods-use-this */ class NumeralFormatter { constructor() { @@ -3757,7 +3767,7 @@ exports.AugmentationNames = { /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _NetscriptEnvironment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment */ 124); +/* harmony import */ var _NetscriptEnvironment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment */ 126); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptWorker */ 29); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Settings */ 20); @@ -3769,7 +3779,7 @@ exports.AugmentationNames = { /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/helpers/isValidIPAddress */ 94); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__); @@ -3785,7 +3795,7 @@ exports.AugmentationNames = { -var Promise = __webpack_require__(/*! bluebird */ 279); +var Promise = __webpack_require__(/*! bluebird */ 287); Promise.config({ warnings: false, @@ -4892,26 +4902,26 @@ __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Engine", function() { return Engine; }); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/LogBox */ 86); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/LogBox */ 87); /* harmony import */ var _ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ActiveScriptsUI */ 73); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Augmentation_AugmentationHelpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Augmentation/AugmentationHelpers */ 61); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _BitNode_BitNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BitNode/BitNode */ 65); /* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Bladeburner */ 34); -/* harmony import */ var _CharacterOverview__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CharacterOverview */ 142); -/* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CinematicText */ 108); -/* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CodingContractGenerator */ 107); +/* harmony import */ var _CharacterOverview__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CharacterOverview */ 148); +/* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CinematicText */ 110); +/* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CodingContractGenerator */ 109); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Company/CompanyPositions */ 33); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Company/Companies */ 19); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Corporation/Corporation */ 62); +/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Corporation/Corporation */ 63); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _DevMenu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./DevMenu */ 127); +/* harmony import */ var _DevMenu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./DevMenu */ 130); /* harmony import */ var _Faction_Factions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Faction/Factions */ 16); /* harmony import */ var _Faction_Factions__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_Faction_Factions__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _Faction_FactionHelpers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Faction/FactionHelpers */ 49); @@ -4921,8 +4931,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_20__); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./HacknetNode */ 71); /* harmony import */ var _InteractiveTutorial__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./InteractiveTutorial */ 38); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Literature */ 89); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Message */ 44); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Literature */ 90); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Message */ 45); /* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Missions */ 60); /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./NetscriptFunctions */ 47); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./NetscriptWorker */ 29); @@ -4930,7 +4940,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Prestige__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Prestige */ 92); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Programs/Programs */ 26); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_Programs_Programs__WEBPACK_IMPORTED_MODULE_30__); -/* harmony import */ var _Programs_ProgramHelpers__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Programs/ProgramHelpers */ 102); +/* harmony import */ var _Programs_ProgramHelpers__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Programs/ProgramHelpers */ 103); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./RedPill */ 64); /* harmony import */ var _SaveObject__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./SaveObject */ 78); /* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./Script */ 35); @@ -4940,76 +4950,88 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./SourceFile */ 80); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./SourceFile/SourceFileFlags */ 83); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_38__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _StockMarket_StockMarket__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./StockMarket/StockMarket */ 24); /* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./Terminal */ 54); -/* harmony import */ var _PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./PersonObjects/Resleeving/ResleevingUI */ 141); -/* harmony import */ var _PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_42__); -/* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./ui/createStatusText */ 81); -/* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__); -/* harmony import */ var _ui_setSettingsLabels__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./ui/setSettingsLabels */ 140); -/* harmony import */ var _ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./ui/MainMenu/Headers */ 139); -/* harmony import */ var _ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(_ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_47__); -/* harmony import */ var _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./ui/MainMenu/Links */ 28); -/* harmony import */ var _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(_ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__); -/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../utils/GameOptions */ 90); -/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); -/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_51___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_51__); -/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 32); -/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52__); -/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 22); -/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_53__); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__); -/* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../utils/uiHelpers/removeLoadingScreen */ 126); -/* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_56__); -/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 27); -/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__); -/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! normalize.css */ 242); -/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_58___default = /*#__PURE__*/__webpack_require__.n(normalize_css__WEBPACK_IMPORTED_MODULE_58__); -/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../css/styles.scss */ 203); -/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_59___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_59__); -/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../css/tooltips.scss */ 201); -/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_60___default = /*#__PURE__*/__webpack_require__.n(_css_tooltips_scss__WEBPACK_IMPORTED_MODULE_60__); -/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../css/buttons.scss */ 199); -/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_css_buttons_scss__WEBPACK_IMPORTED_MODULE_61__); -/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../css/mainmenu.scss */ 197); -/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(_css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_62__); -/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../css/characteroverview.scss */ 195); -/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_63___default = /*#__PURE__*/__webpack_require__.n(_css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_63__); -/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../css/terminal.scss */ 193); -/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_64___default = /*#__PURE__*/__webpack_require__.n(_css_terminal_scss__WEBPACK_IMPORTED_MODULE_64__); -/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../css/menupages.scss */ 191); -/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_65___default = /*#__PURE__*/__webpack_require__.n(_css_menupages_scss__WEBPACK_IMPORTED_MODULE_65__); -/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../css/stockmarket.scss */ 189); -/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_66___default = /*#__PURE__*/__webpack_require__.n(_css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_66__); -/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../css/workinprogress.scss */ 187); -/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_67___default = /*#__PURE__*/__webpack_require__.n(_css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_67__); -/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../css/popupboxes.scss */ 185); -/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_68___default = /*#__PURE__*/__webpack_require__.n(_css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_68__); -/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../css/gameoptions.scss */ 183); -/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_69___default = /*#__PURE__*/__webpack_require__.n(_css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_69__); -/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../css/interactivetutorial.scss */ 181); -/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_70___default = /*#__PURE__*/__webpack_require__.n(_css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_70__); -/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../css/loader.scss */ 179); -/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_71___default = /*#__PURE__*/__webpack_require__.n(_css_loader_scss__WEBPACK_IMPORTED_MODULE_71__); -/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../css/missions.scss */ 177); -/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_72___default = /*#__PURE__*/__webpack_require__.n(_css_missions_scss__WEBPACK_IMPORTED_MODULE_72__); -/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../css/companymanagement.scss */ 175); -/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_73___default = /*#__PURE__*/__webpack_require__.n(_css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_73__); -/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../css/bladeburner.scss */ 173); -/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_74___default = /*#__PURE__*/__webpack_require__.n(_css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_74__); -/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../css/gang.scss */ 171); -/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_75___default = /*#__PURE__*/__webpack_require__.n(_css_gang_scss__WEBPACK_IMPORTED_MODULE_75__); -/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../css/treant.css */ 169); -/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_76___default = /*#__PURE__*/__webpack_require__.n(_css_treant_css__WEBPACK_IMPORTED_MODULE_76__); +/* harmony import */ var _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./PersonObjects/Sleeve/Sleeve */ 99); +/* harmony import */ var _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_42__); +/* harmony import */ var _PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./PersonObjects/Sleeve/SleeveUI */ 111); +/* harmony import */ var _PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43__); +/* harmony import */ var _PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./PersonObjects/Resleeving/ResleevingUI */ 129); +/* harmony import */ var _PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_44__); +/* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./ui/createStatusText */ 81); +/* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__); +/* harmony import */ var _ui_setSettingsLabels__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./ui/setSettingsLabels */ 147); +/* harmony import */ var _ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./ui/MainMenu/Headers */ 146); +/* harmony import */ var _ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(_ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_49__); +/* harmony import */ var _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./ui/MainMenu/Links */ 28); +/* harmony import */ var _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(_ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__); +/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../utils/DialogBox */ 9); +/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../utils/GameOptions */ 91); +/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); +/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_53__); +/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 32); +/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54__); +/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 22); +/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_55__); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__); +/* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../utils/uiHelpers/removeLoadingScreen */ 128); +/* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_58___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_58__); +/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 27); +/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__); +/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! normalize.css */ 250); +/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_60___default = /*#__PURE__*/__webpack_require__.n(normalize_css__WEBPACK_IMPORTED_MODULE_60__); +/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../css/styles.scss */ 214); +/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_61__); +/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../css/tooltips.scss */ 212); +/* harmony import */ var _css_tooltips_scss__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(_css_tooltips_scss__WEBPACK_IMPORTED_MODULE_62__); +/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../css/buttons.scss */ 210); +/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_63___default = /*#__PURE__*/__webpack_require__.n(_css_buttons_scss__WEBPACK_IMPORTED_MODULE_63__); +/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../css/mainmenu.scss */ 208); +/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_64___default = /*#__PURE__*/__webpack_require__.n(_css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_64__); +/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../css/characteroverview.scss */ 206); +/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_65___default = /*#__PURE__*/__webpack_require__.n(_css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_65__); +/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../css/terminal.scss */ 204); +/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_66___default = /*#__PURE__*/__webpack_require__.n(_css_terminal_scss__WEBPACK_IMPORTED_MODULE_66__); +/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../css/menupages.scss */ 202); +/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_67___default = /*#__PURE__*/__webpack_require__.n(_css_menupages_scss__WEBPACK_IMPORTED_MODULE_67__); +/* harmony import */ var _css_redpill_scss__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../css/redpill.scss */ 200); +/* harmony import */ var _css_redpill_scss__WEBPACK_IMPORTED_MODULE_68___default = /*#__PURE__*/__webpack_require__.n(_css_redpill_scss__WEBPACK_IMPORTED_MODULE_68__); +/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../css/stockmarket.scss */ 198); +/* harmony import */ var _css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_69___default = /*#__PURE__*/__webpack_require__.n(_css_stockmarket_scss__WEBPACK_IMPORTED_MODULE_69__); +/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../css/workinprogress.scss */ 196); +/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_70___default = /*#__PURE__*/__webpack_require__.n(_css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_70__); +/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../css/popupboxes.scss */ 194); +/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_71___default = /*#__PURE__*/__webpack_require__.n(_css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_71__); +/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../css/gameoptions.scss */ 192); +/* harmony import */ var _css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_72___default = /*#__PURE__*/__webpack_require__.n(_css_gameoptions_scss__WEBPACK_IMPORTED_MODULE_72__); +/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../css/interactivetutorial.scss */ 190); +/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_73___default = /*#__PURE__*/__webpack_require__.n(_css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_73__); +/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../css/loader.scss */ 188); +/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_74___default = /*#__PURE__*/__webpack_require__.n(_css_loader_scss__WEBPACK_IMPORTED_MODULE_74__); +/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../css/missions.scss */ 186); +/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_75___default = /*#__PURE__*/__webpack_require__.n(_css_missions_scss__WEBPACK_IMPORTED_MODULE_75__); +/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../css/companymanagement.scss */ 184); +/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_76___default = /*#__PURE__*/__webpack_require__.n(_css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_76__); +/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../css/bladeburner.scss */ 182); +/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_77___default = /*#__PURE__*/__webpack_require__.n(_css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_77__); +/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../css/gang.scss */ 180); +/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_78___default = /*#__PURE__*/__webpack_require__.n(_css_gang_scss__WEBPACK_IMPORTED_MODULE_78__); +/* harmony import */ var _css_sleeves_scss__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../css/sleeves.scss */ 178); +/* harmony import */ var _css_sleeves_scss__WEBPACK_IMPORTED_MODULE_79___default = /*#__PURE__*/__webpack_require__.n(_css_sleeves_scss__WEBPACK_IMPORTED_MODULE_79__); +/* harmony import */ var _css_resleeving_scss__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../css/resleeving.scss */ 176); +/* harmony import */ var _css_resleeving_scss__WEBPACK_IMPORTED_MODULE_80___default = /*#__PURE__*/__webpack_require__.n(_css_resleeving_scss__WEBPACK_IMPORTED_MODULE_80__); +/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../css/treant.css */ 174); +/* harmony import */ var _css_treant_css__WEBPACK_IMPORTED_MODULE_81___default = /*#__PURE__*/__webpack_require__.n(_css_treant_css__WEBPACK_IMPORTED_MODULE_81__); + + @@ -5097,6 +5119,9 @@ __webpack_require__.r(__webpack_exports__); + + + @@ -5122,49 +5147,49 @@ $(document).keydown(function(e) { if (e.keyCode == 84 && e.altKey) { e.preventDefault(); Engine.loadTerminalContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].C && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].C && e.altKey) { e.preventDefault(); Engine.loadCharacterContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].E && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].E && e.altKey) { e.preventDefault(); Engine.loadScriptEditorContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].S && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].S && e.altKey) { e.preventDefault(); Engine.loadActiveScriptsContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].H && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].H && e.altKey) { e.preventDefault(); Engine.loadHacknetNodesContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].W && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].W && e.altKey) { e.preventDefault(); Engine.loadWorldContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].J && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].J && e.altKey) { e.preventDefault(); Engine.loadJobContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].R && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].R && e.altKey) { e.preventDefault(); Engine.loadTravelContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].P && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].P && e.altKey) { e.preventDefault(); Engine.loadCreateProgramContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].F && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].F && e.altKey) { //Overriden by Fconf - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Terminal) && _Fconf__WEBPACK_IMPORTED_MODULE_18__[/* FconfSettings */ "a"].ENABLE_BASH_HOTKEYS) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Terminal) && _Fconf__WEBPACK_IMPORTED_MODULE_18__[/* FconfSettings */ "a"].ENABLE_BASH_HOTKEYS) { return; } e.preventDefault(); Engine.loadFactionsContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].A && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].A && e.altKey) { e.preventDefault(); Engine.loadAugmentationsContent(); - } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].U && e.altKey) { + } else if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].U && e.altKey) { e.preventDefault(); Engine.loadTutorialContent(); } } - if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_57__["KEY"].O && e.altKey) { + if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_59__["KEY"].O && e.altKey) { e.preventDefault(); - Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_50__[/* gameOptionsBoxOpen */ "b"])(); + Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_52__[/* gameOptionsBoxOpen */ "b"])(); } }); @@ -5234,16 +5259,16 @@ const Engine = { loadTerminalContent: function() { Engine.hideAllContent(); Engine.Display.terminalContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Terminal); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Terminal.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Terminal); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Terminal.classList.add("active"); }, loadCharacterContent: function() { Engine.hideAllContent(); Engine.Display.characterContent.style.display = "block"; Engine.displayCharacterInfo(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].CharacterInfo); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Stats.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].CharacterInfo); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Stats.classList.add("active"); }, loadScriptEditorContent: function(filename = "", code = "") { @@ -5256,77 +5281,77 @@ const Engine = { } editor.focus(); Object(_Script__WEBPACK_IMPORTED_MODULE_34__[/* updateScriptEditorContent */ "h"])(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].ScriptEditor); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ScriptEditor.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].ScriptEditor); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ScriptEditor.classList.add("active"); }, loadActiveScriptsContent: function() { Engine.hideAllContent(); Engine.Display.activeScriptsContent.style.display = "block"; Object(_ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_2__[/* updateActiveScriptsItems */ "c"])(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].ActiveScripts); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ActiveScripts.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].ActiveScripts); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ActiveScripts.classList.add("active"); }, loadHacknetNodesContent: function() { Engine.hideAllContent(); Engine.Display.hacknetNodesContent.style.display = "block"; Object(_HacknetNode__WEBPACK_IMPORTED_MODULE_21__[/* displayHacknetNodesContent */ "b"])(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].HacknetNodes); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].HacknetNodes.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].HacknetNodes); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].HacknetNodes.classList.add("active"); }, loadWorldContent: function() { Engine.hideAllContent(); Engine.Display.worldContent.style.display = "block"; Engine.displayWorldInfo(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].World); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].City.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].World); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].City.classList.add("active"); }, loadCreateProgramContent: function() { Engine.hideAllContent(); Engine.Display.createProgramContent.style.display = "block"; Object(_Programs_ProgramHelpers__WEBPACK_IMPORTED_MODULE_31__[/* displayCreateProgramContent */ "a"])(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].CreateProgram); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].CreateProgram.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].CreateProgram); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].CreateProgram.classList.add("active"); }, loadFactionsContent: function() { Engine.hideAllContent(); Engine.Display.factionsContent.style.display = "block"; Engine.displayFactionsInfo(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Factions); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Factions.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Factions); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Factions.classList.add("active"); }, loadFactionContent: function() { Engine.hideAllContent(); Engine.Display.factionContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Faction); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Faction); }, loadAugmentationsContent: function() { Engine.hideAllContent(); Engine.Display.augmentationsContent.style.display = "block"; Object(_Augmentation_AugmentationHelpers__WEBPACK_IMPORTED_MODULE_4__[/* displayAugmentationsContent */ "c"])(Engine.Display.augmentationsContent); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Augmentations); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Augmentations.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Augmentations); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Augmentations.classList.add("active"); }, loadTutorialContent: function() { Engine.hideAllContent(); Engine.Display.tutorialContent.style.display = "block"; Engine.displayTutorialContent(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Tutorial); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Tutorial.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Tutorial); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Tutorial.classList.add("active"); }, loadDevMenuContent: function() { Engine.hideAllContent(); Object(_DevMenu__WEBPACK_IMPORTED_MODULE_15__[/* createDevMenu */ "b"])(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].DevMenu); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].DevMenu.classList.add("active"); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].DevMenu); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].DevMenu.classList.add("active"); }, loadLocationContent: function() { @@ -5335,11 +5360,11 @@ const Engine = { try { Object(_Location__WEBPACK_IMPORTED_MODULE_19__[/* displayLocationContent */ "a"])(); } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])(e); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(e); console.error(e); } - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Location); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Location); }, loadTravelContent: function() { @@ -5363,7 +5388,7 @@ const Engine = { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].location = _Locations__WEBPACK_IMPORTED_MODULE_20__["Locations"].VolhavenTravelAgency; break; default: - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__["dialogBoxCreate"])("ERROR: Invalid city. This is a bug please contact game dev"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__["dialogBoxCreate"])("ERROR: Invalid city. This is a bug please contact game dev"); break; } Engine.loadLocationContent(); @@ -5371,7 +5396,7 @@ const Engine = { loadJobContent: function() { if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].companyName == "") { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__["dialogBoxCreate"])("You do not currently have a job! You can visit various companies " + + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__["dialogBoxCreate"])("You do not currently have a job! You can visit various companies " + "in the city and try to find a job."); return; } @@ -5385,7 +5410,7 @@ const Engine = { //mainMenu.style.visibility = "hidden"; mainMenu.style.visibility = "hidden"; Engine.Display.workInProgressContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].WorkInProgress); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].WorkInProgress); }, loadRedPillContent: function() { @@ -5393,7 +5418,7 @@ const Engine = { var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "hidden"; Engine.Display.redPillContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].RedPill); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].RedPill); }, loadCinematicTextContent: function() { @@ -5401,19 +5426,19 @@ const Engine = { var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "hidden"; Engine.Display.cinematicTextContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].CinematicText); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].CinematicText); }, loadInfiltrationContent: function() { Engine.hideAllContent(); Engine.Display.infiltrationContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Infiltration); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Infiltration); }, loadStockMarketContent: function() { Engine.hideAllContent(); Engine.Display.stockMarketContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].StockMarket); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].StockMarket); Object(_StockMarket_StockMarket__WEBPACK_IMPORTED_MODULE_40__[/* displayStockMarketContent */ "g"])(); }, @@ -5421,10 +5446,10 @@ const Engine = { Engine.hideAllContent(); if (document.getElementById("gang-container") || _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].inGang()) { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].gang.displayGangContent(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"]); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Gang); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Gang); } else { Engine.loadTerminalContent(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Terminal); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Terminal); } }, @@ -5433,7 +5458,7 @@ const Engine = { document.getElementById("mainmenu-container").style.visibility = "hidden"; document.getElementById("character-overview-wrapper").style.visibility = "hidden"; Engine.Display.missionContent.style.display = "block"; - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Mission); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Mission); }, loadCorporationContent: function() { @@ -5441,7 +5466,7 @@ const Engine = { Engine.hideAllContent(); document.getElementById("character-overview-wrapper").style.visibility = "hidden"; _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].corporation.createUI(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Corporation); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Corporation); } }, @@ -5449,25 +5474,32 @@ const Engine = { if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner instanceof _Bladeburner__WEBPACK_IMPORTED_MODULE_7__[/* Bladeburner */ "a"]) { try { Engine.hideAllContent(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Bladeburner); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Bladeburner); _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner.createContent(); } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])(e); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(e); } } }, loadSleevesContent: function() { // This is for Duplicate Sleeves page, not Re-sleeving @ Vita Life + try { + Engine.hideAllContent(); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Sleeves); + Object(_PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43__["createSleevesPage"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"]); + } catch(e) { + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(e); + } }, loadResleevingContent: function() { try { Engine.hideAllContent(); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Resleeves); - Object(_PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_42__["createResleevesPage"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"]); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Resleeves); + Object(_PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_44__["createResleevesPage"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"]); } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])(e); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(e); } }, @@ -5507,6 +5539,9 @@ const Engine = { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner.clearContent(); } + Object(_PersonObjects_Resleeving_ResleevingUI__WEBPACK_IMPORTED_MODULE_44__["clearResleevesPage"])(); + Object(_PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43__["clearSleevesPage"])(); + //Location lists Engine.aevumLocationsList.style.display = "none"; Engine.chongqingLocationsList.style.display = "none"; @@ -5516,24 +5551,24 @@ const Engine = { Engine.volhavenLocationsList.style.display = "none"; //Make nav menu tabs inactive - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Terminal.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ScriptEditor.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ActiveScripts.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].CreateProgram.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Stats.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Factions.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Augmentations.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].HacknetNodes.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].City.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Travel.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Job.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].StockMarket.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Bladeburner.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Corporation.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Gang.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Tutorial.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Options.classList.remove("active"); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].DevMenu.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Terminal.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ScriptEditor.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ActiveScripts.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].CreateProgram.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Stats.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Factions.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Augmentations.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].HacknetNodes.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].City.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Travel.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Job.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].StockMarket.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Bladeburner.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Corporation.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Gang.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Tutorial.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Options.classList.remove("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].DevMenu.classList.remove("active"); // Close dev menu Object(_DevMenu__WEBPACK_IMPORTED_MODULE_15__[/* closeDevMenu */ "a"])(); @@ -5553,7 +5588,7 @@ const Engine = { /* Display character info */ displayCharacterInfo: function() { - Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52__["removeChildrenFromElement"])(Engine.Display.characterInfo); + Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54__["removeChildrenFromElement"])(Engine.Display.characterInfo); let companyPosition = ""; if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].companyName !== "") { @@ -5570,7 +5605,7 @@ const Engine = { bitNodeTimeText = 'Time played since last Bitnode destroyed: ' + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__["convertTimeMsToTimeElapsedString"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].playtimeSinceLastBitnode) + '
'; } - Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("pre", { + Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("pre", { innerHTML: 'General

' + 'Current City: ' + _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].city + '

' + @@ -5580,17 +5615,17 @@ const Engine = { 'Money: $' + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__["formatNumber"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].money.toNumber(), 2) + '


' + 'Stats

' + 'Hacking Level: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].hacking_skill).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].hacking_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].hacking_exp, '(0.000a)') + ' experience)
' + 'Strength: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].strength).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].strength_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].strength_exp, '(0.000a)') + ' experience)
' + 'Defense: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].defense).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].defense_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].defense_exp, '(0.000a)') + ' experience)
' + 'Dexterity: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].dexterity).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].dexterity_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].dexterity_exp, '(0.000a)') + ' experience)
' + 'Agility: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].agility).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].agility_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].agility_exp, '(0.000a)') + ' experience)
' + 'Charisma: ' + (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].charisma).toLocaleString() + - ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_45__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].charisma_exp, '(0.000a)') + ' experience)
' + + ' (' + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_47__["numeralWrapper"].format(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].charisma_exp, '(0.000a)') + ' experience)
' + intText + '

' + 'Multipliers

' + 'Hacking Chance multiplier: ' + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__["formatNumber"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].hacking_chance_mult * 100, 2) + '%
' + @@ -5631,13 +5666,13 @@ const Engine = { if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sourceFiles.length !== 0) { var index = "BitNode" + _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bitNodeN; - Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("p", { + Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("p", { width:"60%", innerHTML: "
Current BitNode: " + _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bitNodeN + " (" + _BitNode_BitNode__WEBPACK_IMPORTED_MODULE_6__[/* BitNodes */ "a"][index].name + ")

", })); - Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("p", { + Engine.Display.characterInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("p", { width:"60%", fontSize: "13px", marginLeft:"4%", innerHTML:_BitNode_BitNode__WEBPACK_IMPORTED_MODULE_6__[/* BitNodes */ "a"][index].info, })) @@ -5699,9 +5734,9 @@ const Engine = { // Bladeburner HQ (if applicable); var genericLocationsList = document.getElementById("generic-locations-list"); genericLocationsList.style.display = "inline"; - Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52__["removeChildrenFromElement"])(genericLocationsList); - var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("li"); - li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("a", { + Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54__["removeChildrenFromElement"])(genericLocationsList); + var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("li"); + li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("a", { innerText:"World Stock Exchange", class:"a-link-button", clickListener:()=>{ _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].location = _Locations__WEBPACK_IMPORTED_MODULE_20__["Locations"].WorldStockExchange; @@ -5712,8 +5747,8 @@ const Engine = { genericLocationsList.appendChild(li); if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].corporation instanceof _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_13__[/* Corporation */ "a"] && document.getElementById("location-corporation-button") == null) { - var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("li"); - li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("a", { + var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("li"); + li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("a", { innerText:_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].corporation.name, id:"location-corporation-button", class:"a-link-button", clickListener:()=>{ @@ -5725,8 +5760,8 @@ const Engine = { } if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner instanceof _Bladeburner__WEBPACK_IMPORTED_MODULE_7__[/* Bladeburner */ "a"]) { - var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("li"); - li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("a", { + var li = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("li"); + li.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("a", { innerText:"Bladeburner Headquarters", class:"a-link-button", clickListener:()=>{ Engine.loadBladeburnerContent(); @@ -5738,24 +5773,24 @@ const Engine = { }, displayFactionsInfo: function() { - Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_52__["removeChildrenFromElement"])(Engine.Display.factionsContent); + Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_54__["removeChildrenFromElement"])(Engine.Display.factionsContent); //Factions - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("h1", { + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("h1", { innerText:"Factions" })); - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("p", { + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("p", { innerText:"Lists all factions you have joined" })); - var factionsList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("ul"); - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("br")); + var factionsList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("ul"); + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("br")); //Add a button for each faction you are a member of for (var i = 0; i < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].factions.length; ++i) { (function () { var factionName = _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].factions[i]; - factionsList.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("a", { + factionsList.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("a", { class:"a-link-button", innerText:factionName, padding:"4px", margin:"4px", display:"inline-block", clickListener:()=>{ @@ -5764,34 +5799,34 @@ const Engine = { return false; } })); - factionsList.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("br")); + factionsList.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("br")); }()); //Immediate invocation } Engine.Display.factionsContent.appendChild(factionsList); - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("br")); + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("br")); //Invited Factions - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("h1", { + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("h1", { innerText:"Outstanding Faction Invitations" })); - Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("p", { + Engine.Display.factionsContent.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("p", { width:"70%", innerText:"Lists factions you have been invited to, as well as " + "factions you have previously rejected. You can accept " + "these faction invitations at any time." })); - var invitationsList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("ul"); + var invitationsList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("ul"); //Add a button to accept for each faction you have invitiations for for (var i = 0; i < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].factionInvitations.length; ++i) { (function () { var factionName = _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].factionInvitations[i]; - var item = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("li", {padding:"6px", margin:"6px"}); - item.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("p", { + var item = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("li", {padding:"6px", margin:"6px"}); + item.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("p", { innerText:factionName, display:"inline", margin:"4px", padding:"4px" })); - item.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_54__["createElement"])("a", { + item.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_56__["createElement"])("a", { innerText:"Accept Faction Invitation", class:"a-link-button", display:"inline", margin:"4px", padding:"4px", clickListener:()=>{ @@ -5931,6 +5966,20 @@ const Engine = { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner.storeCycles(numCycles); } + // Sleeves + for (let i = 0; i < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves.length; ++i) { + if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[i] instanceof _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_42__["Sleeve"]) { + const expForOtherSleeves = _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[i].process(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], numCycles); + + // This sleeve earns experience for other sleeves + if (expForOtherSleeves == null) { continue; } + for (let j = 0; j < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves.length; ++j) { + if (j === i) { continue; } + _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[j].gainExperience(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], expForOtherSleeves, numCycles); + } + } + } + //Counters Engine.decrementAllCounters(numCycles); Engine.checkCounters(); @@ -5996,7 +6045,7 @@ const Engine = { if (Engine.Counters.updateActiveScriptsDisplay <= 0) { //Always update, but make the interval longer if the page isn't active Object(_ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_2__[/* updateActiveScriptsItems */ "c"])(); - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].ActiveScripts)) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].ActiveScripts)) { Engine.Counters.updateActiveScriptsDisplay = 5; } else { Engine.Counters.updateActiveScriptsDisplay = 10; @@ -6005,12 +6054,14 @@ const Engine = { if (Engine.Counters.updateDisplays <= 0) { Engine.displayCharacterOverviewInfo(); - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].CharacterInfo)) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].CharacterInfo)) { Engine.displayCharacterInfo(); - } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].HacknetNodes)) { + } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].HacknetNodes)) { Object(_HacknetNode__WEBPACK_IMPORTED_MODULE_21__[/* updateHacknetNodesContent */ "f"])(); - } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].CreateProgram)) { + } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].CreateProgram)) { Object(_Programs_ProgramHelpers__WEBPACK_IMPORTED_MODULE_31__[/* displayCreateProgramContent */ "a"])(); + } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Sleeves)) { + Object(_PersonObjects_Sleeve_SleeveUI__WEBPACK_IMPORTED_MODULE_43__["updateSleevesPage"])(); } if (_utils_LogBox__WEBPACK_IMPORTED_MODULE_1__[/* logBoxOpened */ "b"]) { @@ -6021,16 +6072,16 @@ const Engine = { } if (Engine.Counters.updateDisplaysMed <= 0) { - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Corporation)) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Corporation)) { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].corporation.updateUIContent(); } Engine.Counters.updateDisplaysMed = 9; } if (Engine.Counters.updateDisplaysLong <= 0) { - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Gang) && _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].inGang()) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Gang) && _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].inGang()) { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].gang.updateGangContent(); - } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].ScriptEditor)) { + } else if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].ScriptEditor)) { Object(_Script__WEBPACK_IMPORTED_MODULE_34__[/* updateScriptEditorContent */ "h"])(); } Engine.Counters.updateDisplaysLong = 15; @@ -6095,7 +6146,7 @@ const Engine = { try { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner.process(); } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])("Exception caught in Bladeburner.process(): " + e); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])("Exception caught in Bladeburner.process(): " + e); } } @@ -6282,6 +6333,20 @@ const Engine = { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].bladeburner.storeCycles(numCyclesOffline); } + // Sleeves offline progress + for (let i = 0; i < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves.length; ++i) { + if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[i] instanceof _PersonObjects_Sleeve_Sleeve__WEBPACK_IMPORTED_MODULE_42__["Sleeve"]) { + const expForOtherSleeves = _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[i].process(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], numCyclesOffline); + + // This sleeve earns experience for other sleeves + if (expForOtherSleeves == null) { continue; } + for (let j = 0; j < _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves.length; ++j) { + if (j === i) { continue; } + _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].sleeves[j].gainExperience(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], expForOtherSleeves, numCyclesOffline); + } + } + } + //Update total playtime var time = numCyclesOffline * Engine._idleSpeed; if (_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].totalPlaytime == null) {_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].totalPlaytime = 0;} @@ -6293,8 +6358,8 @@ const Engine = { _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].lastUpdate = Engine._lastUpdate; Engine.start(); //Run main game loop and Scripts loop - Object(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_56__["removeLoadingScreen"])(); - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__["dialogBoxCreate"])("While you were offline, your scripts generated $" + + Object(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_58__["removeLoadingScreen"])(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__["dialogBoxCreate"])("While you were offline, your scripts generated $" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__["formatNumber"])(offlineProductionFromScripts, 2) + " and your Hacknet Nodes generated $" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_0__["formatNumber"])(offlineProductionFromHacknetNodes, 2) + ""); //Close main menu accordions for loaded game @@ -6370,10 +6435,10 @@ const Engine = { //Start interactive tutorial Object(_InteractiveTutorial__WEBPACK_IMPORTED_MODULE_22__[/* iTutorialStart */ "c"])(); - Object(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_56__["removeLoadingScreen"])(); + Object(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_58__["removeLoadingScreen"])(); } //Initialize labels on game settings - Object(_ui_setSettingsLabels__WEBPACK_IMPORTED_MODULE_46__[/* setSettingsLabels */ "a"])(); + Object(_ui_setSettingsLabels__WEBPACK_IMPORTED_MODULE_48__[/* setSettingsLabels */ "a"])(); Object(_Script__WEBPACK_IMPORTED_MODULE_34__[/* scriptEditorInit */ "g"])(); _Terminal__WEBPACK_IMPORTED_MODULE_41__[/* Terminal */ "a"].resetTerminalInput(); }, @@ -6381,7 +6446,7 @@ const Engine = { setDisplayElements: function() { //Content elements Engine.Display.terminalContent = document.getElementById("terminal-container"); - _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_44__["Page"].Terminal); + _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["routing"].navigateTo(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_46__["Page"].Terminal); Engine.Display.characterContent = document.getElementById("character-container"); Engine.Display.characterContent.style.display = "none"; @@ -6506,10 +6571,10 @@ const Engine = { }); // Initialize references to main menu links - if (!Object(_ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["initializeMainMenuLinks"])()) { + if (!Object(_ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["initializeMainMenuLinks"])()) { const errorMsg = "Failed to initialize Main Menu Links. Please try refreshing the page. " + "If that doesn't work, report the issue to the developer"; - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])(new Error(errorMsg)); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(new Error(errorMsg)); return; } }, @@ -6522,98 +6587,103 @@ const Engine = { }; // Initialize Main Menu Headers (this must be done after initializing the links) - if (!Object(_ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_47__["initializeMainMenuHeaders"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], "development" === "development")) { + if (!Object(_ui_MainMenu_Headers__WEBPACK_IMPORTED_MODULE_49__["initializeMainMenuHeaders"])(_Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"], "development" === "development")) { const errorMsg = "Failed to initialize Main Menu Headers. Please try refreshing the page. " + "If that doesn't work, report the issue to the developer"; - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_55__["exceptionAlert"])(new Error(errorMsg)); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_57__["exceptionAlert"])(new Error(errorMsg)); return; } - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Terminal.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Terminal.addEventListener("click", function() { Engine.loadTerminalContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ScriptEditor.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ScriptEditor.addEventListener("click", function() { Engine.loadScriptEditorContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].ActiveScripts.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].ActiveScripts.addEventListener("click", function() { Engine.loadActiveScriptsContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].CreateProgram.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].CreateProgram.addEventListener("click", function() { Engine.loadCreateProgramContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Stats.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Stats.addEventListener("click", function() { Engine.loadCharacterContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Factions.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Factions.addEventListener("click", function() { Engine.loadFactionsContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Augmentations.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Augmentations.addEventListener("click", function() { Engine.loadAugmentationsContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].HacknetNodes.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].HacknetNodes.addEventListener("click", function() { Engine.loadHacknetNodesContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].City.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Sleeves.addEventListener("click", function() { + Engine.loadSleevesContent(); + return false; + }); + + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].City.addEventListener("click", function() { Engine.loadWorldContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Travel.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Travel.addEventListener("click", function() { Engine.loadTravelContent(); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Travel.classList.add("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Travel.classList.add("active"); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Job.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Job.addEventListener("click", function() { Engine.loadJobContent(); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Job.classList.add("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Job.classList.add("active"); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].StockMarket.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].StockMarket.addEventListener("click", function() { Engine.loadStockMarketContent(); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].StockMarket.classList.add("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].StockMarket.classList.add("active"); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Bladeburner.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Bladeburner.addEventListener("click", function() { Engine.loadBladeburnerContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Corporation.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Corporation.addEventListener("click", function() { Engine.loadCorporationContent(); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Corporation.classList.add("active"); + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Corporation.classList.add("active"); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Gang.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Gang.addEventListener("click", function() { Engine.loadGangContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].Tutorial.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].Tutorial.addEventListener("click", function() { Engine.loadTutorialContent(); return false; }); - _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_48__["MainMenuLinks"].DevMenu.addEventListener("click", function() { + _ui_MainMenu_Links__WEBPACK_IMPORTED_MODULE_50__["MainMenuLinks"].DevMenu.addEventListener("click", function() { if (true) { Engine.loadDevMenuContent(); } @@ -6648,7 +6718,7 @@ const Engine = { }); document.getElementById("character-overview-options-button").addEventListener("click", function() { - Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_50__[/* gameOptionsBoxOpen */ "b"])(); + Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_52__[/* gameOptionsBoxOpen */ "b"])(); return false; }); @@ -6709,22 +6779,22 @@ const Engine = { try { const successful = document.execCommand("copy"); if (successful) { - Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__["createStatusText"])("Copied save to clipboard"); + Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__["createStatusText"])("Copied save to clipboard"); } else { - Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__["createStatusText"])("Failed to copy save"); + Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__["createStatusText"])("Failed to copy save"); } } catch(e) { console.error("Unable to copy save data to clipboard using document.execCommand('copy')"); - Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__["createStatusText"])("Failed to copy save"); + Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__["createStatusText"])("Failed to copy save"); } document.body.removeChild(textArea); } else { // Use the Async Clipboard API navigator.clipboard.writeText(saveString).then(function() { - Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__["createStatusText"])("Copied save to clipboard"); + Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__["createStatusText"])("Copied save to clipboard"); }, function(e) { console.error("Unable to copy save data to clipboard using Async API"); - Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_43__["createStatusText"])("Failed to copy save"); + Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_45__["createStatusText"])("Failed to copy save"); }) } }); @@ -6733,16 +6803,16 @@ const Engine = { document.getElementById("debug-delete-scripts-link").addEventListener("click", function() { console.log("Deleting running scripts on home computer"); _Player__WEBPACK_IMPORTED_MODULE_28__[/* Player */ "a"].getHomeComputer().runningScripts = []; - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__["dialogBoxCreate"])("Forcefully deleted all running scripts on home computer. Please save and refresh page"); - Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_50__[/* gameOptionsBoxClose */ "a"])(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__["dialogBoxCreate"])("Forcefully deleted all running scripts on home computer. Please save and refresh page"); + Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_52__[/* gameOptionsBoxClose */ "a"])(); return false; }); //DEBUG Soft Reset document.getElementById("debug-soft-reset").addEventListener("click", function() { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_49__["dialogBoxCreate"])("Soft Reset!"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_51__["dialogBoxCreate"])("Soft Reset!"); Object(_Prestige__WEBPACK_IMPORTED_MODULE_29__[/* prestigeAugmentation */ "a"])(); - Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_50__[/* gameOptionsBoxClose */ "a"])(); + Object(_utils_GameOptions__WEBPACK_IMPORTED_MODULE_52__[/* gameOptionsBoxClose */ "a"])(); return false; }); }, @@ -6830,13 +6900,13 @@ window.onload = function() { /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Programs/Programs */ 26); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Programs_Programs__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TextFile */ 69); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/IPAddress */ 66); -/* harmony import */ var _data_servers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data/servers */ 150); +/* harmony import */ var _data_servers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data/servers */ 155); /* harmony import */ var _data_servers__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_data_servers__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/isValidIPAddress */ 94); @@ -7308,21 +7378,6 @@ Directory.prototype.getPath = function(name) { /***/ }), /* 13 */ -/*!*******************************************!*\ - !*** ./src/Augmentation/Augmentations.ts ***! - \*******************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Augmentations = {}; - - -/***/ }), -/* 14 */ /*!**************************************!*\ !*** ./src/ui/navigationTracking.ts ***! \**************************************/ @@ -7467,6 +7522,21 @@ class Routing { exports.routing = new Routing(); +/***/ }), +/* 14 */ +/*!*******************************************!*\ + !*** ./src/Augmentation/Augmentations.ts ***! + \*******************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Augmentations = {}; + + /***/ }), /* 15 */ /*!******************************!*\ @@ -7572,7 +7642,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * about all Factions in the game */ const Faction_1 = __webpack_require__(/*! ./Faction */ 58); -const FactionInfo_1 = __webpack_require__(/*! ./FactionInfo */ 123); +const FactionInfo_1 = __webpack_require__(/*! ./FactionInfo */ 125); const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 15); exports.Factions = {}; function loadFactions(saveString) { @@ -7820,7 +7890,7 @@ JSONReviver_1.Reviver.constructors.Augmentation = Augmentation; Object.defineProperty(exports, "__esModule", { value: true }); // Constructs all CompanyPosition objects using the metadata in data/companypositions.ts -const CompaniesMetadata_1 = __webpack_require__(/*! ./data/CompaniesMetadata */ 232); +const CompaniesMetadata_1 = __webpack_require__(/*! ./data/CompaniesMetadata */ 241); const Company_1 = __webpack_require__(/*! ./Company */ 72); const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 15); exports.Companies = {}; @@ -8127,7 +8197,7 @@ exports.clearEventListeners = clearEventListeners; Object.defineProperty(exports, "__esModule", { value: true }); const getElementById_1 = __webpack_require__(/*! ./getElementById */ 57); -const removeElement_1 = __webpack_require__(/*! ./removeElement */ 63); +const removeElement_1 = __webpack_require__(/*! ./removeElement */ 62); /** * Given its id, this function removes an element AND its children * @param id The HTML identifier to search for and remove. @@ -8185,7 +8255,7 @@ exports.removeElementById = removeElementById; /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../NetscriptFunctions */ 47); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../NetscriptWorker */ 29); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Player */ 0); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! .././ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! .././ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! .././ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_7__); @@ -8193,7 +8263,7 @@ exports.removeElementById = removeElementById; /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/uiHelpers/clearEventListeners */ 22); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/JSONReviver */ 15); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12__); @@ -8434,35 +8504,35 @@ function initStockMarket() { const randInt = _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12__["getRandomInt"]; var ecorp = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].AevumECorp; - var ecorpStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](ecorp, StockSymbols[ecorp], randInt(40, 50) / 100, true, 19, randInt(17e3, 28e3), 3e12); + var ecorpStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](ecorp, StockSymbols[ecorp], randInt(40, 50) / 100, true, 19, randInt(17e3, 28e3), 2.4e12); StockMarket[ecorp] = ecorpStk; var megacorp = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].Sector12MegaCorp; - var megacorpStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](megacorp, StockSymbols[megacorp], randInt(40,50)/100, true, 19, randInt(24e3, 34e3), 3e12); + var megacorpStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](megacorp, StockSymbols[megacorp], randInt(40,50)/100, true, 19, randInt(24e3, 34e3), 2.4e12); StockMarket[megacorp] = megacorpStk; var blade = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].Sector12BladeIndustries; - var bladeStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](blade, StockSymbols[blade], randInt(70, 80)/100, true, 13, randInt(12e3, 25e3), 1.9e12); + var bladeStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](blade, StockSymbols[blade], randInt(70, 80)/100, true, 13, randInt(12e3, 25e3), 1.6e12); StockMarket[blade] = bladeStk; var clarke = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].AevumClarkeIncorporated; - var clarkeStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](clarke, StockSymbols[clarke], randInt(65, 75)/100, true, 12, randInt(10e3, 25e3), 1.8e12); + var clarkeStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](clarke, StockSymbols[clarke], randInt(65, 75)/100, true, 12, randInt(10e3, 25e3), 1.5e12); StockMarket[clarke] = clarkeStk; var omnitek = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].VolhavenOmniTekIncorporated; - var omnitekStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](omnitek, StockSymbols[omnitek], randInt(60, 70)/100, true, 12, randInt(32e3, 43e3), 2.1e12); + var omnitekStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](omnitek, StockSymbols[omnitek], randInt(60, 70)/100, true, 12, randInt(32e3, 43e3), 1.8e12); StockMarket[omnitek] = omnitekStk; var foursigma = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].Sector12FourSigma; - var foursigmaStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](foursigma, StockSymbols[foursigma], randInt(100, 110)/100, true, 17, randInt(50e3, 80e3), 2.4e12); + var foursigmaStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](foursigma, StockSymbols[foursigma], randInt(100, 110)/100, true, 17, randInt(50e3, 80e3), 2e12); StockMarket[foursigma] = foursigmaStk; var kuaigong = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].ChongqingKuaiGongInternational; - var kuaigongStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](kuaigong, StockSymbols[kuaigong], randInt(75, 85)/100, true, 10, randInt(16e3, 28e3), 2.3e12); + var kuaigongStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](kuaigong, StockSymbols[kuaigong], randInt(75, 85)/100, true, 10, randInt(16e3, 28e3), 1.9e12); StockMarket[kuaigong] = kuaigongStk; var fulcrum = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].AevumFulcrumTechnologies; - var fulcrumStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](fulcrum, StockSymbols[fulcrum], randInt(120, 130)/100, true, 16, randInt(29e3, 36e3), 2.4e12); + var fulcrumStk = new _Stock__WEBPACK_IMPORTED_MODULE_0__["Stock"](fulcrum, StockSymbols[fulcrum], randInt(120, 130)/100, true, 16, randInt(29e3, 36e3), 2e12); StockMarket[fulcrum] = fulcrumStk; var storm = _Locations__WEBPACK_IMPORTED_MODULE_2__["Locations"].IshimaStormTechnologies; @@ -9727,7 +9797,7 @@ function updateStockOrderList(stock) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const BaseResearchTree_1 = __webpack_require__(/*! ./data/BaseResearchTree */ 231); +const BaseResearchTree_1 = __webpack_require__(/*! ./data/BaseResearchTree */ 240); const numeralFormat_1 = __webpack_require__(/*! ../ui/numeralFormat */ 4); // Map of official names for each Industry exports.Industries = { @@ -9857,8 +9927,8 @@ exports.resetIndustryResearchTrees = resetIndustryResearchTrees; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const Program_1 = __webpack_require__(/*! ./Program */ 220); -const programsMetadata_1 = __webpack_require__(/*! ./data/programsMetadata */ 219); +const Program_1 = __webpack_require__(/*! ./Program */ 229); +const programsMetadata_1 = __webpack_require__(/*! ./data/programsMetadata */ 228); exports.Programs = {}; for (const params of programsMetadata_1.programsMetadata) { exports.Programs[params.key] = new Program_1.Program(params.name, params.create); @@ -9933,6 +10003,7 @@ exports.MainMenuLinks = { Factions: null, Augmentations: null, HacknetNodes: null, + Sleeves: null, City: null, Travel: null, Job: null, @@ -9961,6 +10032,7 @@ function initializeMainMenuLinks() { exports.MainMenuLinks.Factions = safeGetLink("factions-menu-link"); exports.MainMenuLinks.Augmentations = safeGetLink("augmentations-menu-link"); exports.MainMenuLinks.HacknetNodes = safeGetLink("hacknet-nodes-menu-link"); + exports.MainMenuLinks.Sleeves = safeGetLink("sleeves-menu-link"); exports.MainMenuLinks.City = safeGetLink("city-menu-link"); exports.MainMenuLinks.Travel = safeGetLink("travel-menu-link"); exports.MainMenuLinks.Job = safeGetLink("job-menu-link"); @@ -10003,25 +10075,25 @@ exports.initializeMainMenuLinks = initializeMainMenuLinks; /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine */ 11); -/* harmony import */ var _JSInterpreter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSInterpreter */ 143); -/* harmony import */ var _NetscriptEnvironment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptEnvironment */ 124); +/* harmony import */ var _JSInterpreter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSInterpreter */ 149); +/* harmony import */ var _NetscriptEnvironment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptEnvironment */ 126); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptEvaluator */ 7); /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NetscriptFunctions */ 47); -/* harmony import */ var _NetscriptJSEvaluator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./NetscriptJSEvaluator */ 125); +/* harmony import */ var _NetscriptJSEvaluator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./NetscriptJSEvaluator */ 127); /* harmony import */ var _NetscriptPort__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NetscriptPort */ 76); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var escodegen__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! escodegen */ 117); +/* harmony import */ var escodegen__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! escodegen */ 120); /* harmony import */ var escodegen__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(escodegen__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 52); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 99); +/* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 100); /* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14__); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 59); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 88); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 89); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__); @@ -10046,7 +10118,7 @@ exports.initializeMainMenuLinks = initializeMainMenuLinks; -const walk = __webpack_require__(/*! acorn/dist/walk */ 162); +const walk = __webpack_require__(/*! acorn/dist/walk */ 167); function WorkerScript(runningScriptObj) { this.name = runningScriptObj.filename; @@ -10737,13 +10809,13 @@ JSONReviver_1.Reviver.constructors.Stock = Stock; !*** ./utils/uiHelpers/removeChildrenFromElement.ts ***! \******************************************************/ /*! no static exports found */ -/*! exports used: removeChildrenFromElement */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const isString_1 = __webpack_require__(/*! ../helpers/isString */ 43); +const isString_1 = __webpack_require__(/*! ../helpers/isString */ 44); const getElementById_1 = __webpack_require__(/*! ./getElementById */ 57); /** * Clears out all children from the provided element. @@ -10784,7 +10856,7 @@ exports.removeChildrenFromElement = removeChildrenFromElement; Object.defineProperty(exports, "__esModule", { value: true }); // Constructs all CompanyPosition objects using the metadata in data/companypositions.ts -const CompanyPositionsMetadata_1 = __webpack_require__(/*! ./data/CompanyPositionsMetadata */ 233); +const CompanyPositionsMetadata_1 = __webpack_require__(/*! ./data/CompanyPositionsMetadata */ 242); const CompanyPosition_1 = __webpack_require__(/*! ./CompanyPosition */ 96); exports.CompanyPositions = {}; function addCompanyPosition(params) { @@ -10809,7 +10881,7 @@ CompanyPositionsMetadata_1.companyPositionMetadata.forEach((e) => { "use strict"; /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Bladeburner; }); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_1__); @@ -10831,7 +10903,7 @@ CompanyPositionsMetadata_1.companyPositionMetadata.forEach((e) => { /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 27); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 91); +/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 86); /* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_13__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 32); @@ -10847,9 +10919,9 @@ CompanyPositionsMetadata_1.companyPositionMetadata.forEach((e) => { /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_20__); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 40); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_23__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_24__); @@ -10857,7 +10929,7 @@ CompanyPositionsMetadata_1.companyPositionMetadata.forEach((e) => { /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_25__); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/helpers/getTimestamp */ 93); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_26__); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 63); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 62); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_27__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 23); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_28__); @@ -15104,38 +15176,38 @@ function initBladeburner() { /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 52); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_14__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); -/* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 99); +/* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 100); /* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_17__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/helpers/getTimestamp */ 93); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 88); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 89); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__); -var ace = __webpack_require__(/*! brace */ 293); -var beautify = __webpack_require__(/*! js-beautify */ 292).js_beautify; -__webpack_require__(/*! brace/mode/javascript */ 291); -__webpack_require__(/*! ../netscript */ 221); -__webpack_require__(/*! brace/theme/chaos */ 290); -__webpack_require__(/*! brace/theme/chrome */ 289); -__webpack_require__(/*! brace/theme/monokai */ 288); -__webpack_require__(/*! brace/theme/solarized_dark */ 287); -__webpack_require__(/*! brace/theme/solarized_light */ 286); -__webpack_require__(/*! brace/theme/terminal */ 285); -__webpack_require__(/*! brace/theme/twilight */ 284); -__webpack_require__(/*! brace/theme/xcode */ 283); -__webpack_require__(/*! brace/keybinding/vim */ 282); -__webpack_require__(/*! brace/keybinding/emacs */ 281); -__webpack_require__(/*! brace/ext/language_tools */ 280); +var ace = __webpack_require__(/*! brace */ 301); +var beautify = __webpack_require__(/*! js-beautify */ 300).js_beautify; +__webpack_require__(/*! brace/mode/javascript */ 299); +__webpack_require__(/*! ../netscript */ 230); +__webpack_require__(/*! brace/theme/chaos */ 298); +__webpack_require__(/*! brace/theme/chrome */ 297); +__webpack_require__(/*! brace/theme/monokai */ 296); +__webpack_require__(/*! brace/theme/solarized_dark */ 295); +__webpack_require__(/*! brace/theme/solarized_light */ 294); +__webpack_require__(/*! brace/theme/terminal */ 293); +__webpack_require__(/*! brace/theme/twilight */ 292); +__webpack_require__(/*! brace/theme/xcode */ 291); +__webpack_require__(/*! brace/keybinding/vim */ 290); +__webpack_require__(/*! brace/keybinding/emacs */ 289); +__webpack_require__(/*! brace/ext/language_tools */ 288); // Importing this doesn't work for some reason. -const walk = __webpack_require__(/*! acorn/dist/walk */ 162); +const walk = __webpack_require__(/*! acorn/dist/walk */ 167); @@ -16220,84 +16292,17 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__["Reviver"].constructors.AllServ /***/ }), /* 36 */ -/*!*********************************!*\ - !*** ./src/SpecialServerIps.js ***! - \*********************************/ -/*! exports provided: SpecialServerNames, SpecialServerIps, SpecialServerIpsMap, loadSpecialServerIps, prestigeSpecialServerIps, initSpecialServerIps */ -/*! exports used: SpecialServerIps, SpecialServerNames, initSpecialServerIps, loadSpecialServerIps, prestigeSpecialServerIps */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpecialServerNames; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SpecialServerIps; }); -/* unused harmony export SpecialServerIpsMap */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return loadSpecialServerIps; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeSpecialServerIps; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return initSpecialServerIps; }); -/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); - - -/* Holds IP of Special Servers */ -let SpecialServerNames = { - FulcrumSecretTechnologies: "Fulcrum Secret Technologies Server", - CyberSecServer: "CyberSec Server", - NiteSecServer: "NiteSec Server", - TheBlackHandServer: "The Black Hand Server", - BitRunnersServer: "BitRunners Server", - TheDarkArmyServer: "The Dark Army Server", - DaedalusServer: "Daedalus Server", - WorldDaemon: "w0r1d_d43m0n", -} -function SpecialServerIpsMap() {} - -SpecialServerIpsMap.prototype.addIp = function(name, ip) { - this[name] = ip; -} - -SpecialServerIpsMap.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_toJSON"])("SpecialServerIpsMap", this); -} - -SpecialServerIpsMap.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_fromJSON"])(SpecialServerIpsMap, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"].constructors.SpecialServerIpsMap = SpecialServerIpsMap; - -let SpecialServerIps = new SpecialServerIpsMap(); - -function prestigeSpecialServerIps() { - for (var member in SpecialServerIps) { - delete SpecialServerIps[member]; - } - SpecialServerIps = null; - SpecialServerIps = new SpecialServerIpsMap(); -} - -function loadSpecialServerIps(saveString) { - SpecialServerIps = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"]); -} - -function initSpecialServerIps() { - SpecialServerIps = new SpecialServerIpsMap(); -} - - - - -/***/ }), -/* 37 */ /*!*****************************!*\ !*** ./src/Crime/Crimes.ts ***! \*****************************/ /*! no static exports found */ -/*! exports used: Crimes */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const Crime_1 = __webpack_require__(/*! ./Crime */ 234); +const Crime_1 = __webpack_require__(/*! ./Crime */ 145); const Constants_1 = __webpack_require__(/*! ../Constants */ 1); exports.Crimes = { Shoplift: new Crime_1.Crime("Shoplift", Constants_1.CONSTANTS.CrimeShoplift, 2e3, 15e3, 1 / 20, 0.1, { @@ -16427,6 +16432,73 @@ exports.Crimes = { }; +/***/ }), +/* 37 */ +/*!*********************************!*\ + !*** ./src/SpecialServerIps.js ***! + \*********************************/ +/*! exports provided: SpecialServerNames, SpecialServerIps, SpecialServerIpsMap, loadSpecialServerIps, prestigeSpecialServerIps, initSpecialServerIps */ +/*! exports used: SpecialServerIps, SpecialServerNames, initSpecialServerIps, loadSpecialServerIps, prestigeSpecialServerIps */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpecialServerNames; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SpecialServerIps; }); +/* unused harmony export SpecialServerIpsMap */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return loadSpecialServerIps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeSpecialServerIps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return initSpecialServerIps; }); +/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); + + +/* Holds IP of Special Servers */ +let SpecialServerNames = { + FulcrumSecretTechnologies: "Fulcrum Secret Technologies Server", + CyberSecServer: "CyberSec Server", + NiteSecServer: "NiteSec Server", + TheBlackHandServer: "The Black Hand Server", + BitRunnersServer: "BitRunners Server", + TheDarkArmyServer: "The Dark Army Server", + DaedalusServer: "Daedalus Server", + WorldDaemon: "w0r1d_d43m0n", +} +function SpecialServerIpsMap() {} + +SpecialServerIpsMap.prototype.addIp = function(name, ip) { + this[name] = ip; +} + +SpecialServerIpsMap.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_toJSON"])("SpecialServerIpsMap", this); +} + +SpecialServerIpsMap.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_fromJSON"])(SpecialServerIpsMap, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"].constructors.SpecialServerIpsMap = SpecialServerIpsMap; + +let SpecialServerIps = new SpecialServerIpsMap(); + +function prestigeSpecialServerIps() { + for (var member in SpecialServerIps) { + delete SpecialServerIps[member]; + } + SpecialServerIps = null; + SpecialServerIps = new SpecialServerIpsMap(); +} + +function loadSpecialServerIps(saveString) { + SpecialServerIps = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"]); +} + +function initSpecialServerIps() { + SpecialServerIps = new SpecialServerIpsMap(); +} + + + + /***/ }), /* 38 */ /*!************************************!*\ @@ -17086,6 +17158,31 @@ exports.PartTimeCompanyPositions = [ /***/ }), /* 42 */ +/*!*****************************************!*\ + !*** ./utils/helpers/exceptionAlert.ts ***! + \*****************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const DialogBox_1 = __webpack_require__(/*! ../DialogBox */ 9); +function exceptionAlert(e) { + DialogBox_1.dialogBoxCreate("Caught an exception: " + e + "

" + + "Filename: " + (e.fileName || "UNKNOWN FILE NAME") + "

" + + "Line Number: " + (e.lineNumber || "UNKNOWN LINE NUMBER") + "

" + + "This is a bug, please report to game developer with this " + + "message as well as details about how to reproduce the bug.

" + + "If you want to be safe, I suggest refreshing the game WITHOUT saving so that your " + + "safe doesn't get corrupted", false); +} +exports.exceptionAlert = exceptionAlert; + + +/***/ }), +/* 43 */ /*!******************************!*\ !*** ./src/NetscriptGang.js ***! \******************************/ @@ -17117,7 +17214,7 @@ function checkGangApiAccess(workerScript, functionName) { /***/ }), -/* 43 */ +/* 44 */ /*!***********************************!*\ !*** ./utils/helpers/isString.ts ***! \***********************************/ @@ -17139,7 +17236,7 @@ exports.isString = isString; /***/ }), -/* 44 */ +/* 45 */ /*!************************!*\ !*** ./src/Message.js ***! \************************/ @@ -17157,7 +17254,7 @@ exports.isString = isString; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Message; }); /* harmony import */ var _Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/Augmentation */ 18); /* harmony import */ var _Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2__); @@ -17366,31 +17463,6 @@ function initMessages() { -/***/ }), -/* 45 */ -/*!*****************************************!*\ - !*** ./utils/helpers/exceptionAlert.ts ***! - \*****************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const DialogBox_1 = __webpack_require__(/*! ../DialogBox */ 9); -function exceptionAlert(e) { - DialogBox_1.dialogBoxCreate("Caught an exception: " + e + "

" + - "Filename: " + (e.fileName || "UNKNOWN FILE NAME") + "

" + - "Line Number: " + (e.lineNumber || "UNKNOWN LINE NUMBER") + "

" + - "This is a bug, please report to game developer with this " + - "message as well as details about how to reproduce the bug.

" + - "If you want to be safe, I suggest refreshing the game WITHOUT saving so that your " + - "safe doesn't get corrupted", false); -} -exports.exceptionAlert = exceptionAlert; - - /***/ }), /* 46 */ /*!********************************!*\ @@ -17415,7 +17487,7 @@ const JSONReviver_1 = __webpack_require__(/*! ../utils/JSONReviver */ 15); const createElement_1 = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); const createPopup_1 = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 40); const removeElementById_1 = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 23); -const codingcontracttypes_1 = __webpack_require__(/*! ./data/codingcontracttypes */ 226); +const codingcontracttypes_1 = __webpack_require__(/*! ./data/codingcontracttypes */ 235); /* tslint:disable:no-magic-numbers completed-docs max-classes-per-file no-console */ /* Represents different types of problems that a Coding Contract can have */ class CodingContractType { @@ -17587,14 +17659,14 @@ JSONReviver_1.Reviver.constructors.CodingContract = CodingContract; /* harmony import */ var _ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActiveScriptsUI */ 73); /* harmony import */ var _Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/Augmentation */ 18); /* harmony import */ var _Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentation__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Augmentation_AugmentationHelpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Augmentation/AugmentationHelpers */ 61); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BitNode/BitNodeMultipliers */ 10); /* harmony import */ var _BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _Crime_CrimeHelpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Crime/CrimeHelpers */ 101); +/* harmony import */ var _Crime_CrimeHelpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Crime/CrimeHelpers */ 102); /* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Bladeburner */ 34); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Company/Company */ 72); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Company_Company__WEBPACK_IMPORTED_MODULE_8__); @@ -17618,7 +17690,7 @@ JSONReviver_1.Reviver.constructors.CodingContract = CodingContract; /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./HacknetNode */ 71); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_20__); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Message */ 44); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Message */ 45); /* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Missions */ 60); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Programs/Programs */ 26); @@ -17627,7 +17699,7 @@ JSONReviver_1.Reviver.constructors.CodingContract = CodingContract; /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_27__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _StockMarket_Stock__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./StockMarket/Stock */ 31); /* harmony import */ var _StockMarket_Stock__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_StockMarket_Stock__WEBPACK_IMPORTED_MODULE_29__); /* harmony import */ var _StockMarket_StockMarket__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./StockMarket/StockMarket */ 24); @@ -17636,27 +17708,27 @@ JSONReviver_1.Reviver.constructors.CodingContract = CodingContract; /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./TextFile */ 69); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_32__); /* harmony import */ var _NetscriptBladeburner__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./NetscriptBladeburner */ 56); -/* harmony import */ var _NetscriptGang__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./NetscriptGang */ 42); +/* harmony import */ var _NetscriptGang__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./NetscriptGang */ 43); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./NetscriptWorker */ 29); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./NetscriptEvaluator */ 7); /* harmony import */ var _NetscriptPort__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./NetscriptPort */ 76); /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! decimal.js */ 39); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_39__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../utils/helpers/isPowerOfTwo */ 145); +/* harmony import */ var _utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../utils/helpers/isPowerOfTwo */ 150); /* harmony import */ var _utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_41__); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 59); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_42__); /* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../utils/IPAddress */ 66); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_44__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_45__); /* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../utils/YesNoBox */ 21); /* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(_utils_YesNoBox__WEBPACK_IMPORTED_MODULE_46__); -var sprintf = __webpack_require__(/*! sprintf-js */ 163).sprintf, - vsprintf = __webpack_require__(/*! sprintf-js */ 163).vsprintf +var sprintf = __webpack_require__(/*! sprintf-js */ 168).sprintf, + vsprintf = __webpack_require__(/*! sprintf-js */ 168).vsprintf @@ -22546,7 +22618,7 @@ function substituteAliases(origCommand) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return displayFactionContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return processPassiveFactionRepGain; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return purchaseAugmentation; }); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Augmentation_PlayerOwnedAugmentation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Augmentation/PlayerOwnedAugmentation */ 98); /* harmony import */ var _Augmentation_PlayerOwnedAugmentation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_PlayerOwnedAugmentation__WEBPACK_IMPORTED_MODULE_1__); @@ -22561,7 +22633,7 @@ function substituteAliases(origCommand) { /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Faction__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _Factions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Factions */ 16); /* harmony import */ var _Factions__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Factions__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _FactionInfo__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FactionInfo */ 123); +/* harmony import */ var _FactionInfo__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FactionInfo */ 125); /* harmony import */ var _FactionInfo__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_FactionInfo__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var _Location__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Location */ 97); /* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Missions */ 60); @@ -22570,12 +22642,12 @@ function substituteAliases(origCommand) { /* harmony import */ var _SettingEnums__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_SettingEnums__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_14__); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../utils/DialogBox */ 9); -/* harmony import */ var _utils_FactionInvitationBox__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../utils/FactionInvitationBox */ 149); +/* harmony import */ var _utils_FactionInvitationBox__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../utils/FactionInvitationBox */ 154); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../utils/uiHelpers/removeChildrenFromElement */ 32); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../utils/uiHelpers/createElement */ 2); @@ -27305,9 +27377,9 @@ Object.defineProperty(exports, '__esModule', { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return resetGangs; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadAllGangs; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Gang; }); -/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data/gangmembertasks */ 148); +/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data/gangmembertasks */ 153); /* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/gangmemberupgrades */ 147); +/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/gangmemberupgrades */ 152); /* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine */ 11); /* harmony import */ var _Faction_Faction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction/Faction */ 58); @@ -27327,17 +27399,17 @@ Object.defineProperty(exports, '__esModule', { value: true }); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 40); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 32); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 63); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 62); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 23); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_19__); @@ -29287,17 +29359,17 @@ Gang.prototype.clearUI = function() { /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Programs/Programs */ 26); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Programs_Programs__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _DarkWeb_DarkWeb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DarkWeb/DarkWeb */ 128); +/* harmony import */ var _DarkWeb_DarkWeb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DarkWeb/DarkWeb */ 131); /* harmony import */ var _DarkWeb_DarkWebItems__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DarkWeb/DarkWebItems */ 75); /* harmony import */ var _DarkWeb_DarkWebItems__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_DarkWeb_DarkWebItems__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./engine */ 11); /* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Fconf */ 50); /* harmony import */ var _Hacking__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Hacking */ 51); -/* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./HelpText */ 110); +/* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./HelpText */ 113); /* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_HelpText__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _InteractiveTutorial__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./InteractiveTutorial */ 38); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Literature */ 89); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Message */ 44); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Literature */ 90); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Message */ 45); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./NetscriptWorker */ 29); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./RedPill */ 64); @@ -29305,12 +29377,12 @@ Gang.prototype.clearUI = function() { /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./TextFile */ 69); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_20__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_22__); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__); @@ -29318,22 +29390,22 @@ Gang.prototype.clearUI = function() { /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_24__); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/helpers/addOffset */ 70); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_25__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_26__); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 59); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_27__); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/helpers/getTimestamp */ 93); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_28__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../utils/LogBox */ 86); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../utils/LogBox */ 87); /* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../utils/YesNoBox */ 21); /* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_utils_YesNoBox__WEBPACK_IMPORTED_MODULE_30__); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./ui/postToTerminal */ 8); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_31__); -/* harmony import */ var autosize__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! autosize */ 166); +/* harmony import */ var autosize__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! autosize */ 171); /* harmony import */ var autosize__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(autosize__WEBPACK_IMPORTED_MODULE_32__); -/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! jszip */ 165); +/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! jszip */ 170); /* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(jszip__WEBPACK_IMPORTED_MODULE_33__); -/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! file-saver */ 164); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! file-saver */ 169); /* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_34__); @@ -31605,7 +31677,7 @@ exports.getElementById = getElementById; Object.defineProperty(exports, "__esModule", { value: true }); const Constants_1 = __webpack_require__(/*! ../Constants */ 1); -const FactionInfo_1 = __webpack_require__(/*! ./FactionInfo */ 123); +const FactionInfo_1 = __webpack_require__(/*! ./FactionInfo */ 125); const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 15); class Faction { constructor(name = "") { @@ -31765,9 +31837,9 @@ exports.arrayToString = arrayToString; /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! jsplumb */ 277); +/* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! jsplumb */ 285); /* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(jsplumb__WEBPACK_IMPORTED_MODULE_10__); @@ -33326,7 +33398,7 @@ HackingMission.prototype.finishMission = function(win) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return displayAugmentationsContent; }); /* harmony import */ var _Augmentation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation */ 18); /* harmony import */ var _Augmentation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentations */ 13); +/* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentations */ 14); /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentations__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data/AugmentationNames */ 6); /* harmony import */ var _data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_2__); @@ -33358,7 +33430,7 @@ HackingMission.prototype.finishMission = function(win) { /* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_20__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_22__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../utils/uiHelpers/removeChildrenFromElement */ 32); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_23__); @@ -35669,6 +35741,43 @@ function displaySourceFiles(listElement, sourceFiles) { /***/ }), /* 62 */ +/*!******************************************!*\ + !*** ./utils/uiHelpers/removeElement.ts ***! + \******************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * For a given element, this function removes it AND its children + * @param elem The element to remove. + */ +function removeElement(elem) { + if (elem === null) { + // tslint:disable-next-line:no-console + console.debug("The element passed into 'removeElement' was null."); + return; + } + if (!(elem instanceof Element)) { + // tslint:disable-next-line:no-console + console.debug("The element passed into 'removeElement' was not an instance of an Element."); + return; + } + while (elem.firstChild !== null) { + elem.removeChild(elem.firstChild); + } + if (elem.parentNode !== null) { + elem.parentNode.removeChild(elem); + } +} +exports.removeElement = removeElement; + + +/***/ }), +/* 63 */ /*!****************************************!*\ !*** ./src/Corporation/Corporation.js ***! \****************************************/ @@ -35698,25 +35807,25 @@ function displaySourceFiles(listElement, sourceFiles) { /* unused harmony export CyclesPerEmployeeRaise */ /* unused harmony export EmployeeRaiseAmount */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Corporation; }); -/* harmony import */ var _CorporationState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CorporationState */ 130); +/* harmony import */ var _CorporationState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CorporationState */ 133); /* harmony import */ var _CorporationState__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_CorporationState__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _data_CorporationUnlockUpgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/CorporationUnlockUpgrades */ 114); +/* harmony import */ var _data_CorporationUnlockUpgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/CorporationUnlockUpgrades */ 117); /* harmony import */ var _data_CorporationUnlockUpgrades__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_data_CorporationUnlockUpgrades__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _data_CorporationUpgrades__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data/CorporationUpgrades */ 113); +/* harmony import */ var _data_CorporationUpgrades__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data/CorporationUpgrades */ 116); /* harmony import */ var _data_CorporationUpgrades__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_data_CorporationUpgrades__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _EmployeePositions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmployeePositions */ 30); /* harmony import */ var _EmployeePositions__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_EmployeePositions__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _IndustryData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./IndustryData */ 25); /* harmony import */ var _IndustryData__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_IndustryData__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _IndustryUpgrades__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./IndustryUpgrades */ 112); +/* harmony import */ var _IndustryUpgrades__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./IndustryUpgrades */ 115); /* harmony import */ var _IndustryUpgrades__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_IndustryUpgrades__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _Material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Material */ 67); /* harmony import */ var _Material__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Material__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _MaterialSizes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MaterialSizes */ 82); /* harmony import */ var _MaterialSizes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_MaterialSizes__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _Product__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Product */ 111); +/* harmony import */ var _Product__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Product */ 114); /* harmony import */ var _Product__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Product__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _ResearchMap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResearchMap */ 106); +/* harmony import */ var _ResearchMap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResearchMap */ 108); /* harmony import */ var _ResearchMap__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ResearchMap__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../BitNode/BitNodeMultipliers */ 10); /* harmony import */ var _BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_BitNode_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_10__); @@ -35724,16 +35833,16 @@ function displaySourceFiles(listElement, sourceFiles) { /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _Faction_Factions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Faction/Factions */ 16); /* harmony import */ var _Faction_Factions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_Faction_Factions__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Literature */ 89); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Literature */ 90); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_14__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Player */ 0); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_17__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../utils/DialogBox */ 9); -/* harmony import */ var _utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../utils/uiHelpers/clearSelector */ 153); +/* harmony import */ var _utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../utils/uiHelpers/clearSelector */ 158); /* harmony import */ var _utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_19__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../utils/JSONReviver */ 15); /* harmony import */ var _utils_uiHelpers_appendLineBreaks__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../utils/uiHelpers/appendLineBreaks */ 55); @@ -35748,13 +35857,13 @@ function displaySourceFiles(listElement, sourceFiles) { /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_25__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_26__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_27__); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../../utils/helpers/keyCodes */ 27); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_28__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../../utils/uiHelpers/removeChildrenFromElement */ 32); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_29__); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../../utils/uiHelpers/removeElement */ 63); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../../utils/uiHelpers/removeElement */ 62); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_30__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../../utils/uiHelpers/removeElementById */ 23); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_31__); @@ -40829,43 +40938,6 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_20__["Reviver"].constructors.Corpora /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 68))) -/***/ }), -/* 63 */ -/*!******************************************!*\ - !*** ./utils/uiHelpers/removeElement.ts ***! - \******************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * For a given element, this function removes it AND its children - * @param elem The element to remove. - */ -function removeElement(elem) { - if (elem === null) { - // tslint:disable-next-line:no-console - console.debug("The element passed into 'removeElement' was null."); - return; - } - if (!(elem instanceof Element)) { - // tslint:disable-next-line:no-console - console.debug("The element passed into 'removeElement' was not an instance of an Element."); - return; - } - while (elem.firstChild !== null) { - elem.removeChild(elem.firstChild); - } - if (elem.parentNode !== null) { - elem.parentNode.removeChild(elem); - } -} -exports.removeElement = removeElement; - - /***/ }), /* 64 */ /*!************************!*\ @@ -40883,7 +40955,7 @@ exports.removeElement = removeElement; /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Prestige__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prestige */ 92); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SourceFile */ 80); -/* harmony import */ var _SourceFile_PlayerOwnedSourceFile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SourceFile/PlayerOwnedSourceFile */ 146); +/* harmony import */ var _SourceFile_PlayerOwnedSourceFile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SourceFile/PlayerOwnedSourceFile */ 151); /* harmony import */ var _SourceFile_PlayerOwnedSourceFile__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_SourceFile_PlayerOwnedSourceFile__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Terminal */ 54); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 22); @@ -41664,7 +41736,7 @@ function initBitNodeMultipliers() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createRandomIp; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ipExists; }); /* harmony import */ var _src_Server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/Server */ 12); -/* harmony import */ var _helpers_getRandomByte__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/getRandomByte */ 103); +/* harmony import */ var _helpers_getRandomByte__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/getRandomByte */ 104); /* harmony import */ var _helpers_getRandomByte__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_helpers_getRandomByte__WEBPACK_IMPORTED_MODULE_1__); @@ -42132,7 +42204,7 @@ exports.addOffset = addOffset; /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10__); @@ -42937,22 +43009,22 @@ JSONReviver_1.Reviver.constructors.Company = Company; /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 91); +/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 86); /* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/getElementById */ 57); /* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/LogBox */ 86); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/LogBox */ 87); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 32); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 63); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 62); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 88); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 89); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui/navigationTracking */ 14); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16__); @@ -43292,7 +43364,7 @@ function updateActiveScriptsText(workerscript, item, itemName) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const DarkWebItem_1 = __webpack_require__(/*! ./DarkWebItem */ 218); +const DarkWebItem_1 = __webpack_require__(/*! ./DarkWebItem */ 227); const Programs_1 = __webpack_require__(/*! ../Programs/Programs */ 26); exports.DarkWebItems = { BruteSSHProgram: new DarkWebItem_1.DarkWebItem(Programs_1.Programs.BruteSSHProgram.name, 500e3, "Opens up SSH Ports"), @@ -43430,16 +43502,16 @@ var PurchaseAugmentationsOrderSetting; /* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Fconf */ 50); /* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Gang */ 53); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./HacknetNode */ 71); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Message */ 44); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Message */ 45); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Script */ 35); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _StockMarket_StockMarket__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./StockMarket/StockMarket */ 24); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/GameOptions */ 90); +/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/GameOptions */ 91); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 22); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/JSONReviver */ 15); @@ -44092,7 +44164,7 @@ function openImportFileHandler(evt) { /* Creates a Close/Cancel button that is used for removing popups */ Object.defineProperty(exports, "__esModule", { value: true }); const createElement_1 = __webpack_require__(/*! ./createElement */ 2); -const removeElement_1 = __webpack_require__(/*! ./removeElement */ 63); +const removeElement_1 = __webpack_require__(/*! ./removeElement */ 62); function createPopupCloseButton(popup, options) { let button; // TODO event listener works with escape. Add and remove event listener @@ -44211,7 +44283,7 @@ function initSourceFiles() { "This Source-File also increases your hacking growth multipliers by: " + "
Level 1: 12%
Level 2: 18%
Level 3: 21%"); SourceFiles["SourceFile9"] = new SourceFile(9); - SourceFiles["SourceFile10"] = new SourceFile(10); + SourceFiles["SourceFile10"] = new SourceFile(10, "Each level of this Source-File grants you a Duplicate Sleeve"); SourceFiles["SourceFile11"] = new SourceFile(11, "This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate " + "at that company by 1% per favor (rather than just the reputation gain). This Source-File also " + " increases the player's company salary and reputation gain multipliers by:

" + @@ -44335,6 +44407,9 @@ function applySourceFile(srcFile) { var incMult = 1 + (mult / 100); _Player__WEBPACK_IMPORTED_MODULE_0__[/* Player */ "a"].hacking_grow_mult *= incMult; break; + case 10: // Digital Carbon + // No effects, just grants sleeves + break; case 11: //The Big Crash var mult = 0; for (var i = 0; i < srcFile.lvl; ++i) { @@ -44561,6 +44636,42 @@ exports.clearObject = clearObject; /***/ }), /* 86 */ +/*!************************************************!*\ + !*** ./utils/helpers/createProgressBarText.ts ***! + \************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Creates a graphical "progress bar" + * e.g.: [||||---------------] + * @param params The configuration parameters for the progress bar + */ +function createProgressBarText(params) { + // Default values + const defaultParams = { + progress: 0, + totalTicks: 20, + }; + // tslint:disable-next-line:prefer-object-spread + const derived = Object.assign({}, defaultParams, params); + // Ensure it is 0..1 + derived.progress = Math.max(Math.min(derived.progress, 1), 0); + // This way there is always at least one bar filled in... + const bars = Math.max(Math.floor(derived.progress / (1 / derived.totalTicks)), 1); + const dashes = Math.max(derived.totalTicks - bars, 0); + // String.prototype.repeat isn't completley supported, but good enough for our purposes + return `[${"|".repeat(bars)}${"-".repeat(dashes)}]`; +} +exports.createProgressBarText = createProgressBarText; + + +/***/ }), +/* 87 */ /*!*************************!*\ !*** ./utils/LogBox.js ***! \*************************/ @@ -44650,8 +44761,8 @@ function logBoxUpdateText() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 68))) /***/ }), -/* 87 */, -/* 88 */ +/* 88 */, +/* 89 */ /*!*************************************!*\ !*** ./utils/helpers/roundToTwo.ts ***! \*************************************/ @@ -44674,7 +44785,7 @@ exports.roundToTwo = roundToTwo; /***/ }), -/* 89 */ +/* 90 */ /*!***************************!*\ !*** ./src/Literature.js ***! \***************************/ @@ -45126,7 +45237,7 @@ function initLiterature() { /***/ }), -/* 90 */ +/* 91 */ /*!******************************!*\ !*** ./utils/GameOptions.js ***! \******************************/ @@ -45185,42 +45296,6 @@ function gameOptionsBoxOpen() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 68))) -/***/ }), -/* 91 */ -/*!************************************************!*\ - !*** ./utils/helpers/createProgressBarText.ts ***! - \************************************************/ -/*! no static exports found */ -/*! exports used: createProgressBarText */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Creates a graphical "progress bar" - * e.g.: [||||---------------] - * @param params The configuration parameters for the progress bar - */ -function createProgressBarText(params) { - // Default values - const defaultParams = { - progress: 0, - totalTicks: 20, - }; - // tslint:disable-next-line:prefer-object-spread - const derived = Object.assign({}, defaultParams, params); - // Ensure it is 0..1 - derived.progress = Math.max(Math.min(derived.progress, 1), 0); - // This way there is always at least one bar filled in... - const bars = Math.max(Math.floor(derived.progress / (1 / derived.totalTicks)), 1); - const dashes = Math.max(derived.totalTicks - bars, 0); - // String.prototype.repeat isn't completley supported, but good enough for our purposes - return `[${"|".repeat(bars)}${"-".repeat(dashes)}]`; -} -exports.createProgressBarText = createProgressBarText; - - /***/ }), /* 92 */ /*!*************************!*\ @@ -45234,14 +45309,14 @@ exports.createProgressBarText = createProgressBarText; /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return prestigeAugmentation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return prestigeSourceFile; }); /* harmony import */ var _ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActiveScriptsUI */ 73); -/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 13); +/* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentation/Augmentations */ 14); /* harmony import */ var _Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_Augmentations__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Augmentation_AugmentationHelpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Augmentation/AugmentationHelpers */ 61); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _BitNode_BitNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BitNode/BitNode */ 65); /* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Bladeburner */ 34); -/* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CinematicText */ 108); +/* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CinematicText */ 110); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Company/Companies */ 19); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _Corporation_IndustryData__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Corporation/IndustryData */ 25); @@ -45256,14 +45331,14 @@ exports.createProgressBarText = createProgressBarText; /* harmony import */ var _Faction_FactionHelpers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Faction/FactionHelpers */ 49); /* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Gang */ 53); /* harmony import */ var _Location__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Location */ 97); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Message */ 44); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Message */ 45); /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./NetscriptFunctions */ 47); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./NetscriptWorker */ 29); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Server */ 12); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./SourceFile/SourceFileFlags */ 83); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _StockMarket_StockMarket__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./StockMarket/StockMarket */ 24); /* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Terminal */ 54); /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! decimal.js */ 39); @@ -45274,7 +45349,7 @@ exports.createProgressBarText = createProgressBarText; /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_28__); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 40); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_29__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_30__); @@ -45774,28 +45849,28 @@ exports.CompanyPosition = CompanyPosition; /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Company/Companies */ 19); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Company/GetJobRequirementText */ 100); +/* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Company/GetJobRequirementText */ 101); /* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Company/data/CompanyPositionNames */ 41); /* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Corporation/Corporation */ 62); +/* harmony import */ var _Corporation_Corporation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Corporation/Corporation */ 63); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Crime/Crimes */ 37); +/* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Crime/Crimes */ 36); /* harmony import */ var _Crime_Crimes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Crime_Crimes__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./engine */ 11); -/* harmony import */ var _Infiltration__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Infiltration */ 152); +/* harmony import */ var _Infiltration__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Infiltration */ 157); /* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./NetscriptFunctions */ 47); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Server */ 12); -/* harmony import */ var _ServerPurchases__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ServerPurchases */ 129); +/* harmony import */ var _ServerPurchases__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ServerPurchases */ 132); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Settings */ 20); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SourceFile/SourceFileFlags */ 83); /* harmony import */ var _SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_SourceFile_SourceFileFlags__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./SpecialServerIps */ 37); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/DialogBox */ 9); @@ -48120,6 +48195,679 @@ exports.PlayerOwnedAugmentation = PlayerOwnedAugmentation; /***/ }), /* 99 */ +/*!********************************************!*\ + !*** ./src/PersonObjects/Sleeve/Sleeve.ts ***! + \********************************************/ +/*! no static exports found */ +/*! exports used: Sleeve */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Sleeves are bodies that contain the player's cloned consciousness. + * The player can use these bodies to perform different tasks synchronously. + * + * Each sleeve is its own individual, meaning it has its own stats/exp + * + * Sleeves are unlocked in BitNode-10. + */ +const SleeveTaskTypesEnum_1 = __webpack_require__(/*! ./SleeveTaskTypesEnum */ 140); +const Person_1 = __webpack_require__(/*! ../Person */ 139); +const BitNodeMultipliers_1 = __webpack_require__(/*! ../../BitNode/BitNodeMultipliers */ 10); +const Crime_1 = __webpack_require__(/*! ../../Crime/Crime */ 145); +const Cities_1 = __webpack_require__(/*! ../../Locations/Cities */ 107); +const Companies_1 = __webpack_require__(/*! ../../Company/Companies */ 19); +const Company_1 = __webpack_require__(/*! ../../Company/Company */ 72); +const CompanyPositions_1 = __webpack_require__(/*! ../../Company/CompanyPositions */ 33); +const Constants_1 = __webpack_require__(/*! ../../Constants */ 1); +const Faction_1 = __webpack_require__(/*! ../../Faction/Faction */ 58); +const Factions_1 = __webpack_require__(/*! ../../Faction/Factions */ 16); +const FactionWorkTypeEnum_1 = __webpack_require__(/*! ../../Faction/FactionWorkTypeEnum */ 218); +const Locations_1 = __webpack_require__(/*! ../../Locations */ 5); +const JSONReviver_1 = __webpack_require__(/*! ../../../utils/JSONReviver */ 15); +class Sleeve extends Person_1.Person { + constructor() { + super(); + /** + * Enum value for current task + */ + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Idle; + /** + * Contains details about the sleeve's current task. The info stored + * in this depends on the task type + * + * Faction/Company Work: Name of Faction/Company + * Crime: Money earned if successful + * Class/Gym: Name of university/gym + */ + this.currentTaskLocation = ""; + /** + * Maximum amount of time (in milliseconds) that can be spent on current task. + */ + this.currentTaskMaxTime = 0; + /** + * Milliseconds spent on current task + */ + this.currentTaskTime = 0; + /** + * Keeps track of experience earned for other sleeves + */ + this.earningsForSleeves = Person_1.createTaskTracker(); + /** + * Keeps track of experience + money earned for player + */ + this.earningsForPlayer = Person_1.createTaskTracker(); + /** + * Keeps track of experienced earned in the current task/action + */ + this.earningsForTask = Person_1.createTaskTracker(); + /** + * Keeps track of what type of work sleeve is doing for faction, if applicable + */ + this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.None; + /** + * Records experience gain rate for the current task + */ + this.gainRatesForTask = Person_1.createTaskTracker(); + /** + * Keeps track of events/notifications for this sleeve + */ + this.logs = []; + /** + * Clone retains memory% of exp upon prestige. If exp would be lower than previously + * kept exp, nothing happens + */ + this.memory = 0; + /** + * Sleeve shock. Number between 1 and 100 + * Trauma/shock that comes with being in a sleeve. Experience earned + * is multipled by shock%. This gets applied before synchronization + * + * Reputation earned is also multiplied by shock% + */ + this.shock = 1; + /** + * Stored number of game "loop" cycles + */ + this.storedCycles = 0; + /** + * Synchronization. Number between 0 and 100 + * When experience is earned by sleeve, both the player and the sleeve get + * sync% of the experience earned. Other sleeves get sync^2% of exp + */ + this.sync = 1; + } + /** + * Initiatizes a Sleeve object from a JSON save state. + */ + static fromJSON(value) { + return JSONReviver_1.Generic_fromJSON(Sleeve, value.data); + } + /** + * Commit crimes + */ + commitCrime(p, crime) { + if (!(crime instanceof Crime_1.Crime)) { + return false; + } + if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { + this.finishTask(p); + } + else { + this.resetTaskStatus(); + } + this.gainRatesForTask.hack = crime.hacking_exp * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.str = crime.strength_exp * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.def = crime.defense_exp * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.dex = crime.dexterity_exp * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.agi = crime.agility_exp * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.cha = crime.charisma_exp * this.charisma_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; + this.gainRatesForTask.money = crime.money * this.crime_money_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeMoney; + this.currentTaskLocation = String(this.gainRatesForTask.money); + // We'll determine success now and adjust the earnings accordingly + if (Math.random() < crime.successRate(p)) { + this.gainRatesForTask.hack *= 2; + this.gainRatesForTask.str *= 2; + this.gainRatesForTask.def *= 2; + this.gainRatesForTask.dex *= 2; + this.gainRatesForTask.agi *= 2; + this.gainRatesForTask.cha *= 2; + } + else { + this.gainRatesForTask.money = 0; + } + this.currentTaskMaxTime = crime.time; + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Crime; + return true; + } + /** + * Called to stop the current task + */ + finishTask(p) { + let retValue = Person_1.createTaskTracker(); // Amount of exp to be gained by other sleeves + if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Crime) { + // For crimes, all experience and money is gained at the end + if (this.currentTaskTime >= this.currentTaskMaxTime) { + retValue = this.gainExperience(p, this.gainRatesForTask); + this.gainMoney(p, this.gainRatesForTask); + // Do not reset task to IDLE + this.currentTaskTime = 0; + return retValue; + } + } + else { + // For other crimes... I dont think anything else needs to be done + } + this.resetTaskStatus(); + return retValue; + } + /** + * Earn experience for any stats (supports multiple) + * This function also handles experience propogating to Player and other sleeves + */ + gainExperience(p, exp, numCycles = 1) { + // Experience is first multiplied by shock. Then 'synchronization' + // is accounted for + const multFac = (this.shock / 100) * (this.sync / 100) * numCycles; + const pHackExp = exp.hack * multFac; + const pStrExp = exp.str * multFac; + const pDefExp = exp.def * multFac; + const pDexExp = exp.dex * multFac; + const pAgiExp = exp.agi * multFac; + const pChaExp = exp.cha * multFac; + // Experience is gained by both this sleeve and player + if (pHackExp > 0) { + this.hacking_exp += pHackExp; + p.gainHackingExp(pHackExp); + this.earningsForPlayer.hack += pHackExp; + this.earningsForTask.hack += pHackExp; + } + if (pStrExp > 0) { + this.strength_exp += pStrExp; + p.gainStrengthExp(pStrExp); + this.earningsForPlayer.str += pStrExp; + this.earningsForTask.str += pStrExp; + } + if (pDefExp > 0) { + this.defense_exp += pDefExp; + p.gainDefenseExp(pDefExp); + this.earningsForPlayer.def += pDefExp; + this.earningsForTask.dex += pDefExp; + } + if (pDexExp > 0) { + this.dexterity_exp += pDexExp; + p.gainDexterityExp(pDexExp); + this.earningsForPlayer.dex += pDexExp; + this.earningsForTask.dex += pDexExp; + } + if (pAgiExp > 0) { + this.agility_exp += pAgiExp; + p.gainAgilityExp(pAgiExp); + this.earningsForPlayer.agi += pAgiExp; + this.earningsForTask.agi += pAgiExp; + } + if (pChaExp > 0) { + this.charisma_exp += pChaExp; + p.gainCharismaExp(pChaExp); + this.earningsForPlayer.cha += pChaExp; + this.earningsForTask.cha += pChaExp; + } + // Record earnings for other sleeves + this.earningsForSleeves.hack += (pHackExp * (this.sync / 100)); + this.earningsForSleeves.str += (pStrExp * (this.sync / 100)); + this.earningsForSleeves.def += (pDefExp * (this.sync / 100)); + this.earningsForSleeves.dex += (pDexExp * (this.sync / 100)); + this.earningsForSleeves.agi += (pAgiExp * (this.sync / 100)); + this.earningsForSleeves.cha += (pChaExp * (this.sync / 100)); + // Return the experience to be gained by other sleeves + return { + hack: pHackExp * (this.sync / 100), + str: pStrExp * (this.sync / 100), + def: pDefExp * (this.sync / 100), + dex: pDexExp * (this.sync / 100), + agi: pAgiExp * (this.sync / 100), + cha: pChaExp * (this.sync / 100), + money: 0, + }; + } + /** + * Earn money for player + */ + gainMoney(p, task, numCycles = 1) { + const gain = (task.money * numCycles); + this.earningsForTask.money += gain; + this.earningsForPlayer.money += gain; + p.gainMoney(gain); + } + /** + * Gets reputation gain for the current task + * Only applicable when working for company or faction + */ + getRepGain(p) { + if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Faction) { + switch (this.factionWorkType) { + case FactionWorkTypeEnum_1.FactionWorkType.Hacking: + return this.getFactionHackingWorkRepGain() * (this.shock / 100); + case FactionWorkTypeEnum_1.FactionWorkType.Field: + return this.getFactionFieldWorkRepGain() * (this.shock / 100); + case FactionWorkTypeEnum_1.FactionWorkType.Security: + return this.getFactionSecurityWorkRepGain() * (this.shock / 100); + default: + console.warn(`Invalid Sleeve.factionWorkType property in Sleeve.getRepGain(): ${this.factionWorkType}`); + return 0; + } + } + else if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Company) { + const companyName = this.currentTaskLocation; + const company = Companies_1.Companies[companyName]; + if (company == null) { + console.error(`Invalid company found when trying to calculate rep gain: ${companyName}`); + return 0; + } + const companyPosition = CompanyPositions_1.CompanyPositions[p.jobs[companyName]]; + if (companyPosition == null) { + console.error(`Invalid company position name found when trying to calculate rep gain: ${p.jobs[companyName]}`); + return 0; + } + const jobPerformance = companyPosition.calculateJobPerformance(this.hacking_skill, this.strength, this.defense, this.dexterity, this.agility, this.charisma); + const favorMult = 1 + (company.favor / 100); + return jobPerformance * this.company_rep_mult * favorMult; + } + else { + console.warn(`Sleeve.getRepGain() called for invalid task type: ${this.currentTask}`); + return 0; + } + } + log(entry) { + const MaxLogSize = 50; + this.logs.push(entry); + if (this.logs.length > MaxLogSize) { + this.logs.shift(); + } + } + /** + * Process loop + * Returns an object containing the amount of experience that should be + * transferred to all other sleeves + */ + process(p, numCycles = 1) { + // Only process once every second (5 cycles) + const CyclesPerSecond = 1000 / Constants_1.CONSTANTS.MilliPerCycle; + this.storedCycles += numCycles; + if (this.storedCycles < CyclesPerSecond) { + return null; + } + let time = this.storedCycles * Constants_1.CONSTANTS.MilliPerCycle; + let cyclesUsed = this.storedCycles; + if (this.currentTaskMaxTime !== 0 && this.currentTaskTime + time > this.currentTaskMaxTime) { + time = this.currentTaskMaxTime - this.currentTaskTime; + cyclesUsed = Math.floor(time / Constants_1.CONSTANTS.MilliPerCycle); + if (time < 0 || cyclesUsed < 0) { + console.warn(`Sleeve.process() calculated negative cycle usage`); + time = 0; + cyclesUsed = 0; + } + } + this.currentTaskTime += time; + // Shock gradually goes towards 100 + this.shock = Math.min(100, this.shock + (0.0001 * this.storedCycles)); + let retValue = Person_1.createTaskTracker(); + switch (this.currentTask) { + case SleeveTaskTypesEnum_1.SleeveTaskType.Idle: + break; + case SleeveTaskTypesEnum_1.SleeveTaskType.Class: + case SleeveTaskTypesEnum_1.SleeveTaskType.Gym: + retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); + this.gainMoney(p, this.gainRatesForTask, cyclesUsed); + break; + case SleeveTaskTypesEnum_1.SleeveTaskType.Faction: + retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); + this.gainMoney(p, this.gainRatesForTask, cyclesUsed); + // Gain faction reputation + const fac = Factions_1.Factions[this.currentTaskLocation]; + if (!(fac instanceof Faction_1.Faction)) { + console.error(`Invalid faction for Sleeve task: ${this.currentTaskLocation}`); + break; + } + fac.playerReputation += (this.getRepGain(p) * cyclesUsed); + break; + case SleeveTaskTypesEnum_1.SleeveTaskType.Company: + retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); + this.gainMoney(p, this.gainRatesForTask, cyclesUsed); + const company = Companies_1.Companies[this.currentTaskLocation]; + if (!(company instanceof Company_1.Company)) { + console.error(`Invalid company for Sleeve task: ${this.currentTaskLocation}`); + break; + } + company.playerReputation += (this.getRepGain(p) * cyclesUsed); + break; + case SleeveTaskTypesEnum_1.SleeveTaskType.Recovery: + this.shock = Math.min(100, this.shock + (0.0001 * cyclesUsed)); + break; + case SleeveTaskTypesEnum_1.SleeveTaskType.Sync: + this.sync = Math.min(100, this.sync + (0.0001 * cyclesUsed)); + break; + default: + break; + } + if (this.currentTaskMaxTime !== 0 && this.currentTaskTime >= this.currentTaskMaxTime) { + if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Crime) { + retValue = this.finishTask(p); + } + else { + this.finishTask(p); + } + } + this.updateStatLevels(); + this.storedCycles -= cyclesUsed; + return retValue; + } + /** + * Resets all parameters used to keep information about the current task + */ + resetTaskStatus() { + this.earningsForTask = Person_1.createTaskTracker(); + this.gainRatesForTask = Person_1.createTaskTracker(); + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Idle; + this.currentTaskTime = 0; + this.currentTaskMaxTime = 0; + this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.None; + } + /** + * Take a course at a university + */ + takeUniversityCourse(p, universityName, className) { + if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { + this.finishTask(p); + } + else { + this.resetTaskStatus(); + } + // Set exp/money multipliers based on which university. + // Also check that the sleeve is in the right city + let costMult = 1; + let expMult = 1; + switch (universityName.toLowerCase()) { + case Locations_1.Locations.AevumSummitUniversity.toLowerCase(): + if (this.city !== Cities_1.Cities.Aevum) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.AevumSummitUniversity; + costMult = 4; + expMult = 3; + break; + case Locations_1.Locations.Sector12RothmanUniversity.toLowerCase(): + if (this.city !== Cities_1.Cities.Sector12) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.Sector12RothmanUniversity; + costMult = 3; + expMult = 2; + break; + case Locations_1.Locations.VolhavenZBInstituteOfTechnology.toLowerCase(): + if (this.city !== Cities_1.Cities.Volhaven) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.VolhavenZBInstituteOfTechnology; + costMult = 5; + expMult = 4; + break; + default: + return false; + } + // Number of game cycles in a second + const cps = 1000 / Constants_1.CONSTANTS.MilliPerCycle; + // Set experience/money gains based on class + // TODO Refactor University Courses into its own class or something + const baseStudyComputerScienceExp = 0.5; + const baseDataStructuresExp = 1; + const baseNetworksExp = 2; + const baseAlgorithmsExp = 4; + const baseManagementExp = 2; + const baseLeadershipExp = 4; + switch (className.toLowerCase()) { + case "study computer science": + this.gainRatesForTask.hack = (baseStudyComputerScienceExp * expMult * this.hacking_exp_mult); + break; + case "data structures": + this.gainRatesForTask.hack = (baseDataStructuresExp * expMult * this.hacking_exp_mult); + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassDataStructuresBaseCost * costMult); + break; + case "networks": + this.gainRatesForTask.hack = (baseNetworksExp * expMult * this.hacking_exp_mult); + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassNetworksBaseCost * costMult); + break; + case "algorithms": + this.gainRatesForTask.hack = (baseAlgorithmsExp * expMult * this.hacking_exp_mult); + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassAlgorithmsBaseCost * costMult); + break; + case "management": + this.gainRatesForTask.cha = (baseManagementExp * expMult * this.charisma_exp_mult); + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassManagementBaseCost * costMult); + break; + case "leadership": + this.gainRatesForTask.cha = (baseLeadershipExp * expMult * this.charisma_exp_mult); + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassLeadershipBaseCost * costMult); + break; + default: + return false; + } + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Class; + return true; + } + /** + * Travel to another City. Costs money from player + */ + travel(p, newCity) { + if (Cities_1.Cities[newCity] == null) { + console.error(`Invalid city ${newCity} passed into Sleeve.travel()`); + return false; + } + p.loseMoney(Constants_1.CONSTANTS.TravelCost); + this.city = newCity; + return true; + } + /** + * Start work for one of the player's companies + * Returns boolean indicating success + */ + workForCompany(p, companyName) { + if (!(Companies_1.Companies[companyName] instanceof Company_1.Company) || p.jobs[companyName] == null) { + return false; + } + if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { + this.finishTask(p); + } + else { + this.resetTaskStatus(); + } + const company = Companies_1.Companies[companyName]; + const companyPosition = CompanyPositions_1.CompanyPositions[p.jobs[companyName]]; + if (company == null) { + throw new Error(`Invalid company name specified in Sleeve.workForCompany(): ${companyName}`); + } + if (companyPosition == null) { + throw new Error(`Invalid CompanyPosition data in Sleeve.workForCompany(): ${companyName}`); + } + this.gainRatesForTask.money = companyPosition.baseSalary * + company.salaryMultiplier * + this.work_money_mult * + BitNodeMultipliers_1.BitNodeMultipliers.CompanyWorkMoney; + this.gainRatesForTask.hack = companyPosition.hackingExpGain * + company.expMultiplier * + this.hacking_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.str = companyPosition.strengthExpGain * + company.expMultiplier * + this.strength_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.def = companyPosition.defenseExpGain * + company.expMultiplier * + this.defense_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.dex = companyPosition.dexterityExpGain * + company.expMultiplier * + this.dexterity_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.agi = companyPosition.agilityExpGain * + company.expMultiplier * + this.agility_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.cha = companyPosition.charismaExpGain * + company.expMultiplier * + this.charisma_exp_mult * + BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.currentTaskLocation = companyName; + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Company; + this.currentTaskMaxTime = Constants_1.CONSTANTS.MillisecondsPer8Hours; + return true; + } + /** + * Start work for one of the player's factions + * Returns boolean indicating success + */ + workForFaction(p, factionName, workType) { + if (!(Factions_1.Factions[factionName] instanceof Faction_1.Faction) || !p.factions.includes(factionName)) { + throw new Error(`Invalid Faction specified for Sleeve.workForFaction(): ${factionName}`); + return false; + } + if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { + this.finishTask(p); + } + else { + this.resetTaskStatus(); + } + // Set type of work (hacking/field/security), and the experience gains + const sanitizedWorkType = workType.toLowerCase(); + if (sanitizedWorkType.includes("hack")) { + this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Hacking; + this.gainRatesForTask.hack = .15 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + } + else if (sanitizedWorkType.includes("field")) { + this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Field; + this.gainRatesForTask.hack = .1 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.str = .1 * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.def = .1 * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.dex = .1 * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.agi = .1 * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.cha = .1 * this.charisma_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + } + else if (sanitizedWorkType.includes("security")) { + this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Security; + this.gainRatesForTask.hack = .1 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.str = .15 * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.def = .15 * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.dex = .15 * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + this.gainRatesForTask.agi = .15 * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; + } + else { + return false; + } + this.currentTaskLocation = factionName; + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Faction; + this.currentTaskMaxTime = Constants_1.CONSTANTS.MillisecondsPer20Hours; + return true; + } + /** + * Begin a gym workout task + */ + workoutAtGym(p, gymName, stat) { + if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { + this.finishTask(p); + } + else { + this.resetTaskStatus(); + } + // Set exp/money multipliers based on which university. + // Also check that the sleeve is in the right city + let costMult = 1; + let expMult = 1; + switch (gymName.toLowerCase()) { + case Locations_1.Locations.AevumCrushFitnessGym.toLowerCase(): + if (this.city != Cities_1.Cities.Aevum) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.AevumCrushFitnessGym; + costMult = 3; + expMult = 2; + break; + case Locations_1.Locations.AevumSnapFitnessGym.toLowerCase(): + if (this.city != Cities_1.Cities.Aevum) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.AevumSnapFitnessGym; + costMult = 10; + expMult = 5; + break; + case Locations_1.Locations.Sector12IronGym.toLowerCase(): + if (this.city != Cities_1.Cities.Sector12) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.Sector12IronGym; + costMult = 1; + expMult = 1; + break; + case Locations_1.Locations.Sector12PowerhouseGym.toLowerCase(): + if (this.city != Cities_1.Cities.Sector12) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.Sector12PowerhouseGym; + costMult = 20; + expMult = 10; + break; + case Locations_1.Locations.VolhavenMilleniumFitnessGym: + if (this.city != Cities_1.Cities.Volhaven) { + return false; + } + this.currentTaskLocation = Locations_1.Locations.VolhavenMilleniumFitnessGym; + costMult = 7; + expMult = 4; + break; + default: + return false; + } + // Number of game cycles in a second + const cps = 1000 / Constants_1.CONSTANTS.MilliPerCycle; + // Set experience/money gains based on class + // TODO Refactor University Courses into its own class or something + const baseGymExp = 1; + const sanitizedStat = stat.toLowerCase(); + // Set cost + this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassGymBaseCost * costMult); + // Set stat gain rate + if (sanitizedStat.includes("str")) { + this.gainRatesForTask.str = (baseGymExp * expMult); + } + else if (sanitizedStat.includes("def")) { + this.gainRatesForTask.def = (baseGymExp * expMult); + } + else if (sanitizedStat.includes("dex")) { + this.gainRatesForTask.dex = (baseGymExp * expMult); + } + else if (sanitizedStat.includes("agi")) { + this.gainRatesForTask.agi = (baseGymExp * expMult); + } + else { + return false; + } + this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Gym; + return true; + } + /** + * Serialize the current object to a JSON save state. + */ + toJSON() { + return JSONReviver_1.Generic_toJSON("Sleeve", this); + } +} +exports.Sleeve = Sleeve; +JSONReviver_1.Reviver.constructors.Sleeve = Sleeve; + + +/***/ }), +/* 100 */ /*!****************************************!*\ !*** ./utils/helpers/compareArrays.ts ***! \****************************************/ @@ -48150,7 +48898,7 @@ exports.compareArrays = compareArrays; /***/ }), -/* 100 */ +/* 101 */ /*!**********************************************!*\ !*** ./src/Company/GetJobRequirementText.ts ***! \**********************************************/ @@ -48216,7 +48964,7 @@ exports.getJobRequirementText = getJobRequirementText; /***/ }), -/* 101 */ +/* 102 */ /*!***********************************!*\ !*** ./src/Crime/CrimeHelpers.js ***! \***********************************/ @@ -48227,9 +48975,12 @@ exports.getJobRequirementText = getJobRequirementText; "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return determineCrimeSuccess; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findCrime; }); -/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Crimes */ 37); +/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Crimes */ 36); /* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Crimes__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/DialogBox */ 9); +/* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Player */ 0); +/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/DialogBox */ 9); + + @@ -48240,7 +48991,7 @@ function determineCrimeSuccess(type, moneyGained) { for(const i in _Crimes__WEBPACK_IMPORTED_MODULE_0__["Crimes"]) { const crime = _Crimes__WEBPACK_IMPORTED_MODULE_0__["Crimes"][i]; if(crime.type == type) { - chance = crime.successRate(Player); + chance = crime.successRate(_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"]); found = true; break; } @@ -48248,13 +48999,13 @@ function determineCrimeSuccess(type, moneyGained) { if(!found) { console.log(crime); - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_1__["dialogBoxCreate"])("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_2__["dialogBoxCreate"])("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); return; } if (Math.random() <= chance) { //Success - Player.gainMoney(moneyGained); + _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].gainMoney(moneyGained); return true; } else { //Failure @@ -48294,7 +49045,7 @@ function findCrime(roughName) { /***/ }), -/* 102 */ +/* 103 */ /*!****************************************!*\ !*** ./src/Programs/ProgramHelpers.js ***! \****************************************/ @@ -48390,7 +49141,7 @@ function initCreateProgramButtons() { /***/ }), -/* 103 */ +/* 104 */ /*!****************************************!*\ !*** ./utils/helpers/getRandomByte.ts ***! \****************************************/ @@ -48416,9 +49167,35 @@ exports.getRandomByte = getRandomByte; /***/ }), -/* 104 */, /* 105 */, -/* 106 */ +/* 106 */, +/* 107 */ +/*!*********************************!*\ + !*** ./src/Locations/Cities.ts ***! + \*********************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Display Location Content when visiting somewhere in the World + */ +// tslint:disable-next-line:variable-name +exports.Cities = { + Aevum: "Aevum", + Chongqing: "Chongqing", + Ishima: "Ishima", + NewTokyo: "New Tokyo", + Sector12: "Sector-12", + Volhaven: "Volhaven", +}; + + +/***/ }), +/* 108 */ /*!****************************************!*\ !*** ./src/Corporation/ResearchMap.ts ***! \****************************************/ @@ -48431,8 +49208,8 @@ exports.getRandomByte = getRandomByte; Object.defineProperty(exports, "__esModule", { value: true }); // The Research Map is an object that holds all Corporation Research objects // as values. They are identified by their names -const Research_1 = __webpack_require__(/*! ./Research */ 230); -const ResearchMetadata_1 = __webpack_require__(/*! ./data/ResearchMetadata */ 229); +const Research_1 = __webpack_require__(/*! ./Research */ 239); +const ResearchMetadata_1 = __webpack_require__(/*! ./data/ResearchMetadata */ 238); exports.ResearchMap = {}; function addResearch(p) { if (exports.ResearchMap[p.name] != null) { @@ -48446,7 +49223,7 @@ for (const metadata of ResearchMetadata_1.researchMetadata) { /***/ }), -/* 107 */ +/* 109 */ /*!****************************************!*\ !*** ./src/CodingContractGenerator.js ***! \****************************************/ @@ -48624,7 +49401,7 @@ function getRandomFilename(server, reward) { /***/ }), -/* 108 */ +/* 110 */ /*!******************************!*\ !*** ./src/CinematicText.js ***! \******************************/ @@ -48640,9 +49417,9 @@ function getRandomFilename(server, reward) { /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/helpers/isString */ 43); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/helpers/isString */ 44); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__); @@ -48746,7 +49523,555 @@ function cinematicTextEnd() { /***/ }), -/* 109 */ +/* 111 */ +/*!**********************************************!*\ + !*** ./src/PersonObjects/Sleeve/SleeveUI.ts ***! + \**********************************************/ +/*! no static exports found */ +/*! exports used: clearSleevesPage, createSleevesPage, updateSleevesPage */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const SleeveTaskTypesEnum_1 = __webpack_require__(/*! ./SleeveTaskTypesEnum */ 140); +const SleeveFaq_1 = __webpack_require__(/*! ./data/SleeveFaq */ 217); +const Locations_1 = __webpack_require__(/*! ../../Locations */ 5); +const Cities_1 = __webpack_require__(/*! ../../Locations/Cities */ 107); +const Crimes_1 = __webpack_require__(/*! ../../Crime/Crimes */ 36); +const numeralFormat_1 = __webpack_require__(/*! ../../ui/numeralFormat */ 4); +const navigationTracking_1 = __webpack_require__(/*! ../../ui/navigationTracking */ 13); +const DialogBox_1 = __webpack_require__(/*! ../../../utils/DialogBox */ 9); +const createProgressBarText_1 = __webpack_require__(/*! ../../../utils/helpers/createProgressBarText */ 86); +const exceptionAlert_1 = __webpack_require__(/*! ../../../utils/helpers/exceptionAlert */ 42); +const createElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createElement */ 2); +const createOptionElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createOptionElement */ 137); +const getSelectData_1 = __webpack_require__(/*! ../../../utils/uiHelpers/getSelectData */ 136); +const removeChildrenFromElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/removeChildrenFromElement */ 32); +const removeElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/removeElement */ 62); +const UIElems = { + container: null, + docButton: null, + faqButton: null, + info: null, + sleeveList: null, + sleeves: null, +}; +// Creates the UI for the entire Sleeves page +let playerRef; +function createSleevesPage(p) { + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Sleeves)) { + return; + } + try { + playerRef = p; + UIElems.container = createElement_1.createElement("div", { + class: "generic-menupage-container", + id: "sleeves-container", + position: "fixed", + }); + UIElems.info = createElement_1.createElement("p", { + class: "sleeves-page-info", + innerHTML: "Duplicate Sleeves are MK-V Synthoids (synthetic androids) into which your " + + "consciousness has copied. In other words, these Synthoids contain " + + "a perfect duplicate of your mind.

" + + "Sleeves can be used to perform different tasks synchronously.

", + }); + UIElems.faqButton = createElement_1.createElement("button", { + class: "std-button", + display: "inline-block", + innerText: "FAQ", + clickListener: () => { + DialogBox_1.dialogBoxCreate(SleeveFaq_1.SleeveFaq, false); + } + }); + UIElems.docButton = createElement_1.createElement("button", { + class: "std-button", + display: "inline-block", + innerText: "Documentation", + }); + UIElems.sleeveList = createElement_1.createElement("ul"); + UIElems.sleeves = []; + // Create UI modules for all Sleeve + for (const sleeve of p.sleeves) { + const sleeveUi = createSleeveUi(sleeve, p.sleeves); + UIElems.sleeveList.appendChild(sleeveUi.container); + UIElems.sleeves.push(sleeveUi); + } + UIElems.container.appendChild(UIElems.info); + UIElems.container.appendChild(UIElems.faqButton); + UIElems.container.appendChild(UIElems.sleeveList); + document.getElementById("entire-game-container").appendChild(UIElems.container); + } + catch (e) { + exceptionAlert_1.exceptionAlert(e); + } +} +exports.createSleevesPage = createSleevesPage; +// Updates the UI for the entire Sleeves page +function updateSleevesPage() { + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Sleeves)) { + return; + } + try { + for (let i = 0; i < playerRef.sleeves.length; ++i) { + const sleeve = playerRef.sleeves[i]; + const elems = UIElems.sleeves[i]; + updateSleeveUi(sleeve, elems); + } + } + catch (e) { + exceptionAlert_1.exceptionAlert(e); + } +} +exports.updateSleevesPage = updateSleevesPage; +function clearSleevesPage() { + if (UIElems.container instanceof HTMLElement) { + removeElement_1.removeElement(UIElems.container); + } + for (const prop in UIElems) { + UIElems[prop] = null; + } + playerRef = null; +} +exports.clearSleevesPage = clearSleevesPage; +// Creates the UI for a single Sleeve +// Returns an object containing the DOM elements in the UI (ISleeveUIElems) +function createSleeveUi(sleeve, allSleeves) { + const elems = { + container: null, + statsPanel: null, + stats: null, + moreStatsButton: null, + taskPanel: null, + taskSelector: null, + taskDetailsSelector: null, + taskDetailsSelector2: null, + taskDescription: null, + taskSetButton: null, + taskProgressBar: null, + earningsPanel: null, + currentEarningsInfo: null, + totalEarningsButton: null, + }; + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Sleeves)) { + return elems; + } + elems.container = createElement_1.createElement("div", { + class: "sleeve-container", + display: "block", + }); + elems.statsPanel = createElement_1.createElement("div", { class: "sleeve-panel", width: "25%" }); + elems.stats = createElement_1.createElement("p", { class: "sleeve-stats-text" }); + elems.moreStatsButton = createElement_1.createElement("button", { + class: "std-button", + innerText: "More Stats", + clickListener: () => { + DialogBox_1.dialogBoxCreate([ + "

Stats:

", + `Hacking: ${sleeve.hacking_skill} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.hacking_exp)} exp)`, + `Strength: ${sleeve.strength} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.strength_exp)} exp)`, + `Defense: ${sleeve.defense} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.defense_exp)} exp)`, + `Dexterity: ${sleeve.dexterity} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.dexterity_exp)} exp)`, + `Agility: ${sleeve.agility} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.agility_exp)} exp)`, + `Charisma: ${sleeve.charisma} (${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.charisma_exp)} exp)
`, + "

Multipliers:

", + `Hacking Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.hacking_mult)}`, + `Hacking Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.hacking_exp_mult)}`, + `Strength Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.strength_mult)}`, + `Strength Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.strength_exp_mult)}`, + `Defense Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.defense_mult)}`, + `Defense Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.defense_exp_mult)}`, + `Dexterity Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.dexterity_mult)}`, + `Dexterity Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.dexterity_exp_mult)}`, + `Agility Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.agility_mult)}`, + `Agility Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.agility_exp_mult)}`, + `Charisma Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.charisma_mult)}`, + `Charisma Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.charisma_exp_mult)}`, + `Faction Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.faction_rep_mult)}`, + `Company Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.company_rep_mult)}`, + `Salary multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.work_money_mult)}`, + `Crime Money multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.crime_money_mult)}`, + `Crime Success multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(sleeve.crime_success_mult)}`, + ].join("
"), false); + } + }); + elems.statsPanel.appendChild(elems.stats); + elems.statsPanel.appendChild(elems.moreStatsButton); + elems.taskPanel = createElement_1.createElement("div", { class: "sleeve-panel", width: "40%" }); + elems.taskSelector = createElement_1.createElement("select"); + elems.taskSelector.add(createOptionElement_1.createOptionElement("------")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Work for Company")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Work for Faction")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Commit Crime")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Take University Course")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Workout at Gym")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Shock Recovery")); + elems.taskSelector.add(createOptionElement_1.createOptionElement("Synchronize")); + elems.taskSelector.addEventListener("change", () => { + updateSleeveTaskSelector(sleeve, elems, allSleeves); + }); + elems.taskDetailsSelector = createElement_1.createElement("select"); + elems.taskDetailsSelector2 = createElement_1.createElement("select"); + elems.taskDescription = createElement_1.createElement("p"); + elems.taskProgressBar = createElement_1.createElement("p"); + elems.taskSelector.selectedIndex = sleeve.currentTask; // Set initial value for Task Selector + elems.taskSelector.dispatchEvent(new Event('change')); + updateSleeveTaskDescription(sleeve, elems); + elems.taskSetButton = createElement_1.createElement("button", { + class: "std-button", + innerText: "Set Task", + clickListener: () => { + setSleeveTask(sleeve, elems); + } + }); + elems.taskPanel.appendChild(elems.taskSelector); + elems.taskPanel.appendChild(elems.taskDetailsSelector); + elems.taskPanel.appendChild(elems.taskDetailsSelector2); + elems.taskPanel.appendChild(elems.taskSetButton); + elems.taskPanel.appendChild(elems.taskDescription); + elems.taskPanel.appendChild(elems.taskProgressBar); + elems.earningsPanel = createElement_1.createElement("div", { class: "sleeve-panel", width: "35%" }); + elems.currentEarningsInfo = createElement_1.createElement("p"); + elems.totalEarningsButton = createElement_1.createElement("button", { + class: "std-button", + innerText: "More Earnings Info", + clickListener: () => { + DialogBox_1.dialogBoxCreate([ + "

Earnings for Current Task:

", + `Money: ${numeralFormat_1.numeralWrapper.formatMoney(sleeve.earningsForTask.money)}`, + `Hacking Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.hack)}`, + `Strength Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.str)}`, + `Defense Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.def)}`, + `Dexterity Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.dex)}`, + `Agility Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.agi)}`, + `Charisma Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForTask.cha)}
`, + "

Total Earnings for Host Consciousness:

", + `Money: ${numeralFormat_1.numeralWrapper.formatMoney(sleeve.earningsForPlayer.money)}`, + `Hacking Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.hack)}`, + `Strength Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.str)}`, + `Defense Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.def)}`, + `Dexterity Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.dex)}`, + `Agility Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.agi)}`, + `Charisma Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.cha)}
`, + "

Total Earnings for Other Sleeves:

", + `Money: ${numeralFormat_1.numeralWrapper.formatMoney(sleeve.earningsForSleeves.money)}`, + `Hacking Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.hack)}`, + `Strength Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.str)}`, + `Defense Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.def)}`, + `Dexterity Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.dex)}`, + `Agility Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.agi)}`, + `Charisma Exp: ${numeralFormat_1.numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.cha)}`, + ].join("
"), false); + } + }); + elems.earningsPanel.appendChild(elems.currentEarningsInfo); + elems.earningsPanel.appendChild(elems.totalEarningsButton); + updateSleeveUi(sleeve, elems); + elems.container.appendChild(elems.statsPanel); + elems.container.appendChild(elems.taskPanel); + elems.container.appendChild(elems.earningsPanel); + return elems; +} +// Updates the UI for a single Sleeve +function updateSleeveUi(sleeve, elems) { + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Sleeves)) { + return; + } + elems.stats.innerHTML = [`Hacking: ${numeralFormat_1.numeralWrapper.format(sleeve.hacking_skill, "0,0")}`, + `Strength: ${numeralFormat_1.numeralWrapper.format(sleeve.strength, "0,0")}`, + `Defense: ${numeralFormat_1.numeralWrapper.format(sleeve.defense, "0,0")}`, + `Dexterity: ${numeralFormat_1.numeralWrapper.format(sleeve.dexterity, "0,0")}`, + `Agility: ${numeralFormat_1.numeralWrapper.format(sleeve.agility, "0,0")}`, + `Charisma: ${numeralFormat_1.numeralWrapper.format(sleeve.charisma, "0,0")}`, + `HP: ${numeralFormat_1.numeralWrapper.format(sleeve.hp, "0,0")} / ${numeralFormat_1.numeralWrapper.format(sleeve.max_hp, "0,0")}
`, + `Shock: ${numeralFormat_1.numeralWrapper.format(100 - sleeve.shock, "0,0.000")}`, + `Sync: ${numeralFormat_1.numeralWrapper.format(sleeve.sync, "0,0.000")}`].join("
"); + let repGainText = ""; + if (sleeve.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Company || sleeve.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Faction) { + const repGain = sleeve.getRepGain(playerRef); + repGainText = `Reputation: ${numeralFormat_1.numeralWrapper.format(5 * repGain, "0.00")} / s`; + } + if (sleeve.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Crime) { + elems.currentEarningsInfo.innerHTML = [ + `Earnings (Pre-Synchronization):`, + `Money: ${numeralFormat_1.numeralWrapper.formatMoney(parseFloat(sleeve.currentTaskLocation))} if successful`, + `Hacking Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.hack, "0.00")} (2x if successful)`, + `Strength Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.str, "0.00")} (2x if successful)`, + `Defense Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.def, "0.00")} (2x if successful)`, + `Dexterity Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.dex, "0.00")} (2x if successful)`, + `Agility Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.agi, "0.00")} (2x if successful)`, + `Charisma Exp: ${numeralFormat_1.numeralWrapper.format(sleeve.gainRatesForTask.cha, "0.00")} (2x if successful)` + ].join("
"); + elems.taskProgressBar.innerText = createProgressBarText_1.createProgressBarText({ + progress: sleeve.currentTaskTime / sleeve.currentTaskMaxTime, + totalTicks: 25, + }); + } + else { + const lines = [ + `Earnings (Pre-Synchronization):`, + `Money: ${numeralFormat_1.numeralWrapper.formatMoney(5 * sleeve.gainRatesForTask.money)} / s`, + `Hacking Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.hack, "0.00")} / s`, + `Strength Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.str, "0.00")} / s`, + `Defense Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.def, "0.00")} / s`, + `Dexterity Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.dex, "0.00")} / s`, + `Agility Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.agi, "0.00")} / s`, + `Charisma Exp: ${numeralFormat_1.numeralWrapper.format(5 * sleeve.gainRatesForTask.cha, "0.00")} / s` + ]; + if (repGainText !== "") { + lines.push(repGainText); + } + elems.currentEarningsInfo.innerHTML = lines.join("
"); + elems.taskProgressBar.innerText = ""; + } +} +const factionWorkTypeSelectorOptions = [ + "Hacking Contracts", + "Security Work", + "Field Work" +]; +const universitySelectorOptions = [ + "Study Computer Science", + "Data Structures", + "Networks", + "Algorithms", + "Management", + "Leadership" +]; +const gymSelectorOptions = [ + "Train Strength", + "Train Defense", + "Train Dexterity", + "Train Agility" +]; +// Whenever a new task is selected, the "details" selector must update accordingly +function updateSleeveTaskSelector(sleeve, elems, allSleeves) { + if (playerRef == null) { + throw new Error(`playerRef is null in updateSleeveTaskSelector()`); + } + // Array of all companies that other sleeves are working at + const forbiddenCompanies = []; + for (const otherSleeve of allSleeves) { + if (sleeve === otherSleeve) { + continue; + } + if (otherSleeve.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Company) { + forbiddenCompanies.push(otherSleeve.currentTaskLocation); + } + } + // Array of all factions that other sleeves are working for + const forbiddenFactions = []; + for (const otherSleeve of allSleeves) { + if (sleeve === otherSleeve) { + continue; + } + if (otherSleeve.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Faction) { + forbiddenFactions.push(otherSleeve.currentTaskLocation); + } + } + // Reset Selectors + removeChildrenFromElement_1.removeChildrenFromElement(elems.taskDetailsSelector); + removeChildrenFromElement_1.removeChildrenFromElement(elems.taskDetailsSelector2); + const value = getSelectData_1.getSelectValue(elems.taskSelector); + switch (value) { + case "Work for Company": + const allJobs = Object.keys(playerRef.jobs); + for (let i = 0; i < allJobs.length; ++i) { + if (!forbiddenCompanies.includes(allJobs[i])) { + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement(allJobs[i])); + // Set initial value of the 'Details' selector + if (sleeve.currentTaskLocation === allJobs[i]) { + elems.taskDetailsSelector.selectedIndex = i; + } + } + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement("------")); + } + break; + case "Work for Faction": + for (let i = 0; i < playerRef.factions.length; ++i) { + const fac = playerRef.factions[i]; + if (!forbiddenFactions.includes(fac)) { + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement(fac)); + // Set initial value of the 'Details' Selector + if (sleeve.currentTaskLocation === fac) { + elems.taskDetailsSelector.selectedIndex = i; + } + } + } + for (let i = 0; i < factionWorkTypeSelectorOptions.length; ++i) { + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(factionWorkTypeSelectorOptions[i])); + } + break; + case "Commit Crime": + for (const crimeLabel in Crimes_1.Crimes) { + const name = Crimes_1.Crimes[crimeLabel].name; + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement(name, crimeLabel)); + } + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement("------")); + break; + case "Take University Course": + // First selector has class type + for (let i = 0; i < universitySelectorOptions.length; ++i) { + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement(universitySelectorOptions[i])); + } + // Second selector has which university + switch (sleeve.city) { + case Cities_1.Cities.Aevum: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.AevumSummitUniversity)); + break; + case Cities_1.Cities.Sector12: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.Sector12RothmanUniversity)); + break; + case Cities_1.Cities.Volhaven: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.VolhavenZBInstituteOfTechnology)); + break; + default: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement("No university available in city!")); + break; + } + break; + case "Workout at Gym": + // First selector has what stat is being trained + for (let i = 0; i < gymSelectorOptions.length; ++i) { + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement(gymSelectorOptions[i])); + } + // Second selector has gym + switch (sleeve.city) { + case Cities_1.Cities.Aevum: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.AevumCrushFitnessGym)); + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.AevumSnapFitnessGym)); + break; + case Cities_1.Cities.Sector12: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.Sector12IronGym)); + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.Sector12PowerhouseGym)); + break; + case Cities_1.Cities.Volhaven: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement(Locations_1.Locations.VolhavenMilleniumFitnessGym)); + break; + default: + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement("No gym available in city!")); + break; + } + break; + case "Shock Recovery": + case "Synchronize": + case "------": + // No options in "Details" selector + elems.taskDetailsSelector.add(createOptionElement_1.createOptionElement("------")); + elems.taskDetailsSelector2.add(createOptionElement_1.createOptionElement("------")); + return; + default: + break; + } +} +function setSleeveTask(sleeve, elems) { + try { + if (playerRef == null) { + throw new Error("playerRef is null in Sleeve UI's setSleeveTask()"); + } + const taskValue = getSelectData_1.getSelectValue(elems.taskSelector); + const detailValue = getSelectData_1.getSelectValue(elems.taskDetailsSelector); + const detailValue2 = getSelectData_1.getSelectValue(elems.taskDetailsSelector2); + let res = false; + switch (taskValue) { + case "------": + elems.taskDescription.innerText = "This sleeve is currently idle"; + break; + case "Work for Company": + res = sleeve.workForCompany(playerRef, detailValue); + break; + case "Work for Faction": + res = sleeve.workForFaction(playerRef, detailValue, detailValue2); + break; + case "Commit Crime": + res = sleeve.commitCrime(playerRef, Crimes_1.Crimes[detailValue]); + break; + case "Take University Course": + res = sleeve.takeUniversityCourse(playerRef, detailValue2, detailValue); + break; + case "Workout at Gym": + res = sleeve.workoutAtGym(playerRef, detailValue2, detailValue); + break; + case "Shock Recovery": + sleeve.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Recovery; + res = true; + break; + case "Synchronize": + sleeve.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Sync; + res = true; + break; + default: + console.error(`Invalid/Unrecognized taskValue in setSleeveTask(): ${taskValue}`); + } + if (res) { + updateSleeveTaskDescription(sleeve, elems); + } + else { + elems.taskDescription.innerText = "Failed to assign sleeve to task. Invalid choice(s)."; + } + if (navigationTracking_1.routing.isOn(navigationTracking_1.Page.Sleeves)) { + updateSleevesPage(); + } + return res; + } + catch (e) { + console.error(`Exception caught in setSleeveTask(): ${e}`); + exceptionAlert_1.exceptionAlert(e); + return false; + } +} +function updateSleeveTaskDescription(sleeve, elems) { + try { + if (playerRef == null) { + throw new Error("playerRef is null in Sleeve UI's setSleeveTask()"); + } + const taskValue = getSelectData_1.getSelectValue(elems.taskSelector); + const detailValue = getSelectData_1.getSelectValue(elems.taskDetailsSelector); + const detailValue2 = getSelectData_1.getSelectValue(elems.taskDetailsSelector2); + switch (taskValue) { + case "------": + elems.taskDescription.innerText = "This sleeve is currently idle"; + break; + case "Work for Company": + elems.taskDescription.innerText = `This sleeve is currently working your ` + + `job at ${sleeve.currentTaskLocation}.`; + break; + case "Work for Faction": + elems.taskDescription.innerText = `This sleeve is currently doing ${detailValue2} for ` + + `${sleeve.currentTaskLocation}.`; + break; + case "Commit Crime": + elems.taskDescription.innerText = `This sleeve is currently attempting to ` + + `${Crimes_1.Crimes[detailValue].type}.`; + break; + case "Take University Course": + elems.taskDescription.innerText = `This sleeve is currently studying/taking a course at ${sleeve.currentTaskLocation}.`; + break; + case "Workout at Gym": + elems.taskDescription.innerText = `This sleeve is currently working out at ${sleeve.currentTaskLocation}.`; + break; + case "Shock Recovery": + elems.taskDescription.innerText = "This sleeve is currently set to focus on shock recovery. This causes " + + "the Sleeve's shock to decrease at a faster rate."; + break; + case "Synchronize": + elems.taskDescription.innerText = "This sleeve is currently set to synchronize with the original consciousness. " + + "This causes the Sleeve's synchronization to increase."; + break; + default: + console.error(`Invalid/Unrecognized taskValue in updateSleeveTaskDescription(): ${taskValue}`); + } + } + catch (e) { + console.error(`Exception caught in updateSleeveTaskDescription(): ${e}`); + exceptionAlert_1.exceptionAlert(e); + } +} + + +/***/ }), +/* 112 */ /*!***********************************************!*\ !*** ./src/Company/GetNextCompanyPosition.ts ***! \***********************************************/ @@ -48772,7 +50097,7 @@ exports.getNextCompanyPosition = getNextCompanyPosition; /***/ }), -/* 110 */ +/* 113 */ /*!*************************!*\ !*** ./src/HelpText.ts ***! \*************************/ @@ -49013,7 +50338,7 @@ exports.HelpTexts = { /***/ }), -/* 111 */ +/* 114 */ /*!************************************!*\ !*** ./src/Corporation/Product.ts ***! \************************************/ @@ -49026,8 +50351,8 @@ exports.HelpTexts = { Object.defineProperty(exports, "__esModule", { value: true }); const EmployeePositions_1 = __webpack_require__(/*! ./EmployeePositions */ 30); const MaterialSizes_1 = __webpack_require__(/*! ./MaterialSizes */ 82); -const ProductRatingWeights_1 = __webpack_require__(/*! ./ProductRatingWeights */ 227); -const Cities_1 = __webpack_require__(/*! ../Locations/Cities */ 122); +const ProductRatingWeights_1 = __webpack_require__(/*! ./ProductRatingWeights */ 236); +const Cities_1 = __webpack_require__(/*! ../Locations/Cities */ 107); const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 15); const getRandomInt_1 = __webpack_require__(/*! ../../utils/helpers/getRandomInt */ 17); class Product { @@ -49220,7 +50545,7 @@ JSONReviver_1.Reviver.constructors.Product = Product; /***/ }), -/* 112 */ +/* 115 */ /*!*********************************************!*\ !*** ./src/Corporation/IndustryUpgrades.ts ***! \*********************************************/ @@ -49247,7 +50572,7 @@ exports.IndustryUpgrades = { /***/ }), -/* 113 */ +/* 116 */ /*!*****************************************************!*\ !*** ./src/Corporation/data/CorporationUpgrades.ts ***! \*****************************************************/ @@ -49315,7 +50640,7 @@ exports.CorporationUpgrades = { /***/ }), -/* 114 */ +/* 117 */ /*!***********************************************************!*\ !*** ./src/Corporation/data/CorporationUnlockUpgrades.ts ***! \***********************************************************/ @@ -49361,40 +50686,14 @@ exports.CorporationUnlockUpgrades = { /***/ }), -/* 115 */, -/* 116 */, -/* 117 */, /* 118 */, /* 119 */, /* 120 */, /* 121 */, -/* 122 */ -/*!*********************************!*\ - !*** ./src/Locations/Cities.ts ***! - \*********************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Display Location Content when visiting somewhere in the World - */ -// tslint:disable-next-line:variable-name -exports.Cities = { - Aevum: "Aevum", - Chongqing: "Chongqing", - Ishima: "Ishima", - NewTokyo: "New Tokyo", - Sector12: "Sector-12", - Volhaven: "Volhaven", -}; - - -/***/ }), -/* 123 */ +/* 122 */, +/* 123 */, +/* 124 */, +/* 125 */ /*!************************************!*\ !*** ./src/Faction/FactionInfo.ts ***! \************************************/ @@ -49569,7 +50868,7 @@ exports.FactionInfos = { /***/ }), -/* 124 */ +/* 126 */ /*!*************************************!*\ !*** ./src/NetscriptEnvironment.js ***! \*************************************/ @@ -49681,7 +50980,7 @@ Environment.prototype = { /***/ }), -/* 125 */ +/* 127 */ /*!*************************************!*\ !*** ./src/NetscriptJSEvaluator.js ***! \*************************************/ @@ -49805,7 +51104,7 @@ function _getScriptUrls(script, scripts, seen) { /***/ }), -/* 126 */ +/* 128 */ /*!************************************************!*\ !*** ./utils/uiHelpers/removeLoadingScreen.ts ***! \************************************************/ @@ -49830,7 +51129,212 @@ exports.removeLoadingScreen = removeLoadingScreen; /***/ }), -/* 127 */ +/* 129 */ +/*!******************************************************!*\ + !*** ./src/PersonObjects/Resleeving/ResleevingUI.ts ***! + \******************************************************/ +/*! no static exports found */ +/*! exports used: clearResleevesPage, createResleevesPage */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const Resleeving_1 = __webpack_require__(/*! ./Resleeving */ 216); +const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 14); +const numeralFormat_1 = __webpack_require__(/*! ../../ui/numeralFormat */ 4); +const navigationTracking_1 = __webpack_require__(/*! ../../ui/navigationTracking */ 13); +const DialogBox_1 = __webpack_require__(/*! ../../../utils/DialogBox */ 9); +const exceptionAlert_1 = __webpack_require__(/*! ../../../utils/helpers/exceptionAlert */ 42); +const createElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createElement */ 2); +const createOptionElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createOptionElement */ 137); +const getSelectData_1 = __webpack_require__(/*! ../../../utils/uiHelpers/getSelectData */ 136); +const removeElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/removeElement */ 62); +const UIElems = { + container: null, + info: null, + resleeveList: null, + resleeves: null, +}; +let playerRef; +function createResleevesPage(p) { + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Resleeves)) { + return; + } + try { + playerRef = p; + UIElems.container = createElement_1.createElement("div", { + class: "generic-menupage-container", + id: "resleeves-container", + position: "fixed", + }); + UIElems.info = createElement_1.createElement("p", { + display: "inline-block", + innerHTML: "Re-sleeving is the process of digitizing and transferring your consciousness " + + "into a new human body, or 'sleeve'. Here at VitaLife, you can purchase new " + + "specially-engineered bodies for the re-sleeve process. Many of these bodies " + + "even come with genetic and cybernetic Augmentations!

" + + "Re-sleeving will chance your experience for every stat. It will also REMOVE " + + "all of your currently-installed Augmentations, and replace " + + "them with the ones provided by the purchased sleeve. However, Augmentations that you have " + + "purchased but not installed will NOT be removed. If you have purchased an " + + "Augmentation and then re-sleeve into a body which already has that Augmentation, " + + "it will be removed (since you cannot have duplicate Augmentations).

" + + "NOTE: The stats and multipliers displayed on this page do NOT include your bonuses from " + + "Source-File.", + width: "75%", + }); + UIElems.resleeveList = createElement_1.createElement("ul"); + UIElems.resleeves = []; + if (p.resleeves.length === 0) { + p.resleeves = Resleeving_1.generateResleeves(); + } + for (const resleeve of p.resleeves) { + const resleeveUi = createResleeveUi(resleeve); + UIElems.resleeveList.appendChild(resleeveUi.container); + UIElems.resleeves.push(resleeveUi); + } + UIElems.container.appendChild(UIElems.info); + UIElems.container.appendChild(UIElems.resleeveList); + document.getElementById("entire-game-container").appendChild(UIElems.container); + } + catch (e) { + exceptionAlert_1.exceptionAlert(e); + } +} +exports.createResleevesPage = createResleevesPage; +function clearResleevesPage() { + if (UIElems.container instanceof HTMLElement) { + removeElement_1.removeElement(UIElems.container); + } + for (const prop in UIElems) { + UIElems[prop] = null; + } + playerRef = null; +} +exports.clearResleevesPage = clearResleevesPage; +function createResleeveUi(resleeve) { + const elems = { + container: null, + statsPanel: null, + stats: null, + multipliersButton: null, + augPanel: null, + augSelector: null, + augDescription: null, + costPanel: null, + costText: null, + buyButton: null, + }; + if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Resleeves)) { + return elems; + } + elems.container = createElement_1.createElement("div", { + class: "resleeve-container", + display: "block", + }); + elems.statsPanel = createElement_1.createElement("div", { class: "resleeve-panel", width: "30%" }); + elems.stats = createElement_1.createElement("p", { + class: "resleeve-stats-text", + innerHTML: `Hacking: ${numeralFormat_1.numeralWrapper.format(resleeve.hacking_skill, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.hacking_exp)} exp)
` + + `Strength: ${numeralFormat_1.numeralWrapper.format(resleeve.strength, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.strength_exp)} exp)
` + + `Defense: ${numeralFormat_1.numeralWrapper.format(resleeve.defense, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.defense_exp)} exp)
` + + `Dexterity: ${numeralFormat_1.numeralWrapper.format(resleeve.dexterity, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.dexterity_exp)} exp)
` + + `Agility: ${numeralFormat_1.numeralWrapper.format(resleeve.agility, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.agility_exp)} exp)
` + + `Charisma: ${numeralFormat_1.numeralWrapper.format(resleeve.charisma, "0,0")} (${numeralFormat_1.numeralWrapper.formatBigNumber(resleeve.charisma_exp)} exp)`, + }); + elems.multipliersButton = createElement_1.createElement("button", { + class: "std-button", + innerText: "Multipliers", + clickListener: () => { + DialogBox_1.dialogBoxCreate([ + "

Total Multipliers:

", + `Hacking Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_mult)}`, + `Hacking Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_exp_mult)}`, + `Strength Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.strength_mult)}`, + `Strength Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.strength_exp_mult)}`, + `Defense Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.defense_mult)}`, + `Defense Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.defense_exp_mult)}`, + `Dexterity Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.dexterity_mult)}`, + `Dexterity Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.dexterity_exp_mult)}`, + `Agility Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.agility_mult)}`, + `Agility Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.agility_exp_mult)}`, + `Charisma Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.charisma_mult)}`, + `Charisma Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.charisma_exp_mult)}`, + `Hacking Chance multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_chance_mult)}`, + `Hacking Speed multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_speed_mult)}`, + `Hacking Money multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_money_mult)}`, + `Hacking Growth multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_grow_mult)}`, + `Salary multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.work_money_mult)}`, + `Company Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.company_rep_mult)}`, + `Faction Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.faction_rep_mult)}`, + `Crime Money multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.crime_money_mult)}`, + `Crime Success multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.crime_success_mult)}`, + `Hacknet Income multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacknet_node_money_mult)}`, + `Hacknet Purchase Cost multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacknet_node_purchase_cost_mult)}`, + `Hacknet Level Upgrade Cost multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacknet_node_level_cost_mult)}`, + `Hacknet Ram Upgrade Cost multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacknet_node_ram_cost_mult)}`, + `Hacknet Core Upgrade Cost multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacknet_node_core_cost_mult)}`, + `Bladeburner Max Stamina multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.bladeburner_max_stamina_mult)}`, + `Bladeburner Stamina Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.bladeburner_stamina_gain_mult)}`, + `Bladeburner Field Analysis multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.bladeburner_analysis_mult)}`, + `Bladeburner Success Chance multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.bladeburner_success_chance_mult)}` + ].join("
"), false); + } + }); + elems.statsPanel.appendChild(elems.stats); + elems.statsPanel.appendChild(elems.multipliersButton); + elems.augPanel = createElement_1.createElement("div", { class: "resleeve-panel", width: "50%" }); + elems.augSelector = createElement_1.createElement("select", { class: "resleeve-aug-selector" }); + elems.augDescription = createElement_1.createElement("p"); + for (let i = 0; i < resleeve.augmentations.length; ++i) { + elems.augSelector.add(createOptionElement_1.createOptionElement(resleeve.augmentations[i].name)); + } + ; + elems.augSelector.addEventListener("change", () => { + updateAugDescription(elems); + }); + elems.augSelector.dispatchEvent(new Event('change')); // Set inital description by manually triggering change event + elems.augPanel.appendChild(elems.augSelector); + elems.augPanel.appendChild(elems.augDescription); + const cost = resleeve.getCost(); + elems.costPanel = createElement_1.createElement("div", { class: "resleeve-panel", width: "20%" }); + elems.costText = createElement_1.createElement("p", { + innerText: `It costs ${numeralFormat_1.numeralWrapper.formatMoney(cost)} ` + + `to purchase this Sleeve.`, + }); + elems.buyButton = createElement_1.createElement("button", { + class: "std-button", + innerText: "Purchase", + clickListener: () => { + if (Resleeving_1.purchaseResleeve(resleeve, playerRef)) { + DialogBox_1.dialogBoxCreate(`You re-sleeved for ${numeralFormat_1.numeralWrapper.formatMoney(cost)}!`, false); + } + else { + DialogBox_1.dialogBoxCreate(`You cannot afford to re-sleeve into this body`, false); + } + } + }); + elems.costPanel.appendChild(elems.costText); + elems.costPanel.appendChild(elems.buyButton); + elems.container.appendChild(elems.statsPanel); + elems.container.appendChild(elems.augPanel); + elems.container.appendChild(elems.costPanel); + return elems; +} +function updateAugDescription(elems) { + const augName = getSelectData_1.getSelectValue(elems.augSelector); + const aug = Augmentations_1.Augmentations[augName]; + if (aug == null) { + console.warn(`Could not find Augmentation with name ${augName}`); + return; + } + elems.augDescription.innerHTML = aug.info; +} + + +/***/ }), +/* 130 */ /*!************************!*\ !*** ./src/DevMenu.js ***! \************************/ @@ -49843,7 +51347,7 @@ exports.removeLoadingScreen = removeLoadingScreen; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return closeDevMenu; }); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentation/data/AugmentationNames */ 6); /* harmony import */ var _Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Augmentation_data_AugmentationNames__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContractGenerator */ 107); +/* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContractGenerator */ 109); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Programs/Programs */ 26); /* harmony import */ var _Programs_Programs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Programs_Programs__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Faction_Factions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction/Factions */ 16); @@ -49858,7 +51362,7 @@ exports.removeLoadingScreen = removeLoadingScreen; /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 45); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 42); /* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__); @@ -50413,7 +51917,7 @@ function closeDevMenu() { /***/ }), -/* 128 */ +/* 131 */ /*!********************************!*\ !*** ./src/DarkWeb/DarkWeb.js ***! \********************************/ @@ -50427,7 +51931,7 @@ function closeDevMenu() { /* harmony import */ var _DarkWebItems__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DarkWebItems */ 75); /* harmony import */ var _DarkWebItems__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_DarkWebItems__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Player */ 0); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SpecialServerIps */ 36); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SpecialServerIps */ 37); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/postToTerminal */ 8); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/helpers/isValidIPAddress */ 94); @@ -50527,7 +52031,7 @@ function buyDarkwebItem(itemName) { /***/ }), -/* 129 */ +/* 132 */ /*!********************************!*\ !*** ./src/ServerPurchases.js ***! \********************************/ @@ -50623,7 +52127,7 @@ function purchaseRamForHomeComputer(cost) { /***/ }), -/* 130 */ +/* 133 */ /*!*********************************************!*\ !*** ./src/Corporation/CorporationState.ts ***! \*********************************************/ @@ -50673,10 +52177,70 @@ JSONReviver_1.Reviver.constructors.CorporationState = CorporationState; /***/ }), -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */ +/* 134 */, +/* 135 */, +/* 136 */ +/*!******************************************!*\ + !*** ./utils/uiHelpers/getSelectData.ts ***! + \******************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +function getSelectValue(selector) { + if (selector == null) { + return ""; + } + if (selector.options.length <= 0) { + return ""; + } + return selector.options[selector.selectedIndex].value; +} +exports.getSelectValue = getSelectValue; +function getSelectText(selector) { + if (selector == null) { + return ""; + } + if (selector.options.length <= 0) { + return ""; + } + return selector.options[selector.selectedIndex].text; +} +exports.getSelectText = getSelectText; + + +/***/ }), +/* 137 */ +/*!************************************************!*\ + !*** ./utils/uiHelpers/createOptionElement.ts ***! + \************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const createElement_1 = __webpack_require__(/*! ./createElement */ 2); +function createOptionElement(text, value = "") { + let sanitizedValue = value; + if (sanitizedValue === "") { + sanitizedValue = text; + } + return createElement_1.createElement("option", { + text: text, + value: sanitizedValue, + }); +} +exports.createOptionElement = createOptionElement; + + +/***/ }), +/* 138 */, +/* 139 */ /*!*************************************!*\ !*** ./src/PersonObjects/Person.ts ***! \*************************************/ @@ -50688,7 +52252,7 @@ JSONReviver_1.Reviver.constructors.CorporationState = CorporationState; Object.defineProperty(exports, "__esModule", { value: true }); const BitNodeMultipliers_1 = __webpack_require__(/*! ../BitNode/BitNodeMultipliers */ 10); -const Cities_1 = __webpack_require__(/*! ../Locations/Cities */ 122); +const Cities_1 = __webpack_require__(/*! ../Locations/Cities */ 107); const Constants_1 = __webpack_require__(/*! ../Constants */ 1); function createTaskTracker() { return { @@ -50749,6 +52313,15 @@ class Person { this.crime_money_mult = 1; this.crime_success_mult = 1; this.work_money_mult = 1; + this.hacknet_node_money_mult = 1; + this.hacknet_node_purchase_cost_mult = 1; + this.hacknet_node_ram_cost_mult = 1; + this.hacknet_node_core_cost_mult = 1; + this.hacknet_node_level_cost_mult = 1; + this.bladeburner_max_stamina_mult = 1; + this.bladeburner_stamina_gain_mult = 1; + this.bladeburner_analysis_mult = 1; + this.bladeburner_success_chance_mult = 1; /** * Augmentations */ @@ -50762,7 +52335,7 @@ class Person { /** * Updates this object's multipliers for the given augmentation */ - applyAugmentation(aug, reapply = false) { + applyAugmentation(aug) { for (const mult in aug.mults) { if (this[mult] == null) { console.warn(`Augmentation has unrecognized multiplier property: ${mult}`); @@ -50838,11 +52411,11 @@ class Person { */ updateStatLevels() { this.hacking_skill = Math.max(1, Math.floor(this.calculateStat(this.hacking_exp, this.hacking_mult * BitNodeMultipliers_1.BitNodeMultipliers.HackingLevelMultiplier))); - this.strength = Math.max(1, Math.floor(this.calculateStat(this.strength_exp, this.strength_mult))); - this.defense = Math.max(1, Math.floor(this.calculateStat(this.defense_exp, this.defense_mult))); - this.dexterity = Math.max(1, Math.floor(this.calculateStat(this.dexterity_exp, this.dexterity_mult))); - this.agility = Math.max(1, Math.floor(this.calculateStat(this.agility_exp, this.agility_mult))); - this.charisma = Math.max(1, Math.floor(this.calculateStat(this.charisma_exp, this.charisma_mult))); + this.strength = Math.max(1, Math.floor(this.calculateStat(this.strength_exp, this.strength_mult * BitNodeMultipliers_1.BitNodeMultipliers.StrengthLevelMultiplier))); + this.defense = Math.max(1, Math.floor(this.calculateStat(this.defense_exp, this.defense_mult * BitNodeMultipliers_1.BitNodeMultipliers.DefenseLevelMultiplier))); + this.dexterity = Math.max(1, Math.floor(this.calculateStat(this.dexterity_exp, this.dexterity_mult * BitNodeMultipliers_1.BitNodeMultipliers.DexterityLevelMultiplier))); + this.agility = Math.max(1, Math.floor(this.calculateStat(this.agility_exp, this.agility_mult * BitNodeMultipliers_1.BitNodeMultipliers.AgilityLevelMultiplier))); + this.charisma = Math.max(1, Math.floor(this.calculateStat(this.charisma_exp, this.charisma_mult * BitNodeMultipliers_1.BitNodeMultipliers.CharismaLevelMultiplier))); const ratio = this.hp / this.max_hp; this.max_hp = Math.floor(10 + this.defense / 10); this.hp = Math.round(this.max_hp * ratio); @@ -50852,11 +52425,129 @@ exports.Person = Person; /***/ }), -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */ +/* 140 */ +/*!*********************************************************!*\ + !*** ./src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts ***! + \*********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Enum for different types of tasks that a Sleeve can perform + */ +var SleeveTaskType; +(function (SleeveTaskType) { + // Same Order as selectable order in UI + SleeveTaskType[SleeveTaskType["Idle"] = 0] = "Idle"; + SleeveTaskType[SleeveTaskType["Company"] = 1] = "Company"; + SleeveTaskType[SleeveTaskType["Faction"] = 2] = "Faction"; + SleeveTaskType[SleeveTaskType["Crime"] = 3] = "Crime"; + SleeveTaskType[SleeveTaskType["Class"] = 4] = "Class"; + SleeveTaskType[SleeveTaskType["Gym"] = 5] = "Gym"; + SleeveTaskType[SleeveTaskType["Recovery"] = 6] = "Recovery"; + SleeveTaskType[SleeveTaskType["Sync"] = 7] = "Sync"; +})(SleeveTaskType = exports.SleeveTaskType || (exports.SleeveTaskType = {})); + + +/***/ }), +/* 141 */, +/* 142 */, +/* 143 */, +/* 144 */, +/* 145 */ +/*!****************************!*\ + !*** ./src/Crime/Crime.ts ***! + \****************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const Constants_1 = __webpack_require__(/*! ../Constants */ 1); +class Crime { + constructor(name = "", type = "", time = 0, money = 0, difficulty = 0, karma = 0, params = {}) { + // Number representing the difficulty of the crime. Used for success chance calculations + this.difficulty = 0; + // Amount of karma lost for SUCCESSFULLY committing this crime + this.karma = 0; + // How many people die as a result of this crime + this.kills = 0; + // How much money is given by the + this.money = 0; + // Name of crime + this.name = ""; + // Milliseconds it takes to attempt the crime + this.time = 0; + // Corresponding type in CONSTANTS. Contains a description for the crime activity + this.type = ""; + // Weighting factors that determine how stats affect the success rate of this crime + this.hacking_success_weight = 0; + this.strength_success_weight = 0; + this.defense_success_weight = 0; + this.dexterity_success_weight = 0; + this.agility_success_weight = 0; + this.charisma_success_weight = 0; + // How much stat experience is granted by this crime + this.hacking_exp = 0; + this.strength_exp = 0; + this.defense_exp = 0; + this.dexterity_exp = 0; + this.agility_exp = 0; + this.charisma_exp = 0; + this.intelligence_exp = 0; + this.name = name; + this.type = type; + this.time = time; + this.money = money; + this.difficulty = difficulty; + this.karma = karma; + this.hacking_success_weight = params.hacking_success_weight ? params.hacking_success_weight : 0; + this.strength_success_weight = params.strength_success_weight ? params.strength_success_weight : 0; + this.defense_success_weight = params.defense_success_weight ? params.defense_success_weight : 0; + this.dexterity_success_weight = params.dexterity_success_weight ? params.dexterity_success_weight : 0; + this.agility_success_weight = params.agility_success_weight ? params.agility_success_weight : 0; + this.charisma_success_weight = params.charisma_success_weight ? params.charisma_success_weight : 0; + this.hacking_exp = params.hacking_exp ? params.hacking_exp : 0; + this.strength_exp = params.strength_exp ? params.strength_exp : 0; + this.defense_exp = params.defense_exp ? params.defense_exp : 0; + this.dexterity_exp = params.dexterity_exp ? params.dexterity_exp : 0; + this.agility_exp = params.agility_exp ? params.agility_exp : 0; + this.charisma_exp = params.charisma_exp ? params.charisma_exp : 0; + this.intelligence_exp = params.intelligence_exp ? params.intelligence_exp : 0; + this.kills = params.kills ? params.kills : 0; + } + commit(p, div = 1, singParams = null) { + if (div <= 0) { + div = 1; + } + p.startCrime(this.type, this.hacking_exp / div, this.strength_exp / div, this.defense_exp / div, this.dexterity_exp / div, this.agility_exp / div, this.charisma_exp / div, this.money / div, this.time, singParams); + return this.time; + } + successRate(p) { + let chance = (this.hacking_success_weight * p.hacking_skill + + this.strength_success_weight * p.strength + + this.defense_success_weight * p.defense + + this.dexterity_success_weight * p.dexterity + + this.agility_success_weight * p.agility + + this.charisma_success_weight * p.charisma + + Constants_1.CONSTANTS.IntelligenceCrimeWeight * p.intelligence); + chance /= Constants_1.CONSTANTS.MaxSkillLevel; + chance /= this.difficulty; + chance *= p.crime_success_mult; + return Math.min(chance, 1); + } +} +exports.Crime = Crime; + + +/***/ }), +/* 146 */ /*!************************************!*\ !*** ./src/ui/MainMenu/Headers.ts ***! \************************************/ @@ -50938,9 +52629,11 @@ function initializeMainMenuHeaders(p, dev = false) { const factions = safeGetElement("factions-tab"); const augmentations = safeGetElement("augmentations-tab"); const hacknetnodes = safeGetElement("hacknet-nodes-tab"); + const sleeves = safeGetElement("sleeves-tab"); + sleeves.style.display = p.sleeves.length > 0 ? "list-item" : "none"; this.classList.toggle("opened"); - const elems = [stats, factions, augmentations, hacknetnodes]; - const links = [Links_1.MainMenuLinks.Stats, Links_1.MainMenuLinks.Factions, Links_1.MainMenuLinks.Augmentations, Links_1.MainMenuLinks.HacknetNodes]; + const elems = [stats, factions, augmentations, hacknetnodes, sleeves]; + const links = [Links_1.MainMenuLinks.Stats, Links_1.MainMenuLinks.Factions, Links_1.MainMenuLinks.Augmentations, Links_1.MainMenuLinks.HacknetNodes, Links_1.MainMenuLinks.Sleeves]; if (stats.style.maxHeight) { toggleHeader(false, elems, links); } @@ -51000,7 +52693,7 @@ exports.initializeMainMenuHeaders = initializeMainMenuHeaders; /***/ }), -/* 140 */ +/* 147 */ /*!*************************************!*\ !*** ./src/ui/setSettingsLabels.js ***! \*************************************/ @@ -51126,165 +52819,7 @@ function setSettingsLabels() { /***/ }), -/* 141 */ -/*!******************************************************!*\ - !*** ./src/PersonObjects/Resleeving/ResleevingUI.ts ***! - \******************************************************/ -/*! no static exports found */ -/*! exports used: createResleevesPage */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const Resleeving_1 = __webpack_require__(/*! ./Resleeving */ 207); -const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 13); -const numeralFormat_1 = __webpack_require__(/*! ../../ui/numeralFormat */ 4); -const navigationTracking_1 = __webpack_require__(/*! ../../ui/navigationTracking */ 14); -const DialogBox_1 = __webpack_require__(/*! ../../../utils/DialogBox */ 9); -const exceptionAlert_1 = __webpack_require__(/*! ../../../utils/helpers/exceptionAlert */ 45); -const createElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createElement */ 2); -const createOptionElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/createOptionElement */ 205); -const getSelectData_1 = __webpack_require__(/*! ../../../utils/uiHelpers/getSelectData */ 204); -const removeElement_1 = __webpack_require__(/*! ../../../utils/uiHelpers/removeElement */ 63); -const UIElems = { - container: null, - info: null, - resleeveList: null, - resleeves: null, -}; -let playerRef; -function createResleevesPage(p) { - if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Resleeves)) { - return; - } - try { - playerRef = p; - UIElems.container = createElement_1.createElement("div", { - class: "generic-menupage-container", - id: "resleeves-container", - position: "fixed", - }); - UIElems.info = createElement_1.createElement("p", { - display: "inline-block", - innerText: "TOODOOO", - }); - UIElems.resleeveList = createElement_1.createElement("ul"); - UIElems.resleeves = []; - if (p.resleeves.length === 0) { - p.resleeves = Resleeving_1.generateResleeves(); - } - for (const resleeve of p.resleeves) { - const resleeveUi = createResleeveUi(resleeve); - UIElems.resleeveList.appendChild(resleeveUi.container); - UIElems.resleeves.push(resleeveUi); - } - UIElems.container.appendChild(UIElems.info); - UIElems.container.appendChild(UIElems.resleeveList); - document.getElementById("entire-game-container").appendChild(UIElems.container); - } - catch (e) { - exceptionAlert_1.exceptionAlert(e); - } -} -exports.createResleevesPage = createResleevesPage; -function clearResleevesPage() { - removeElement_1.removeElement(UIElems.container); - for (const prop in UIElems) { - UIElems[prop] = null; - } - playerRef = null; -} -exports.clearResleevesPage = clearResleevesPage; -function createResleeveUi(resleeve) { - const elems = { - container: null, - statsPanel: null, - stats: null, - multipliersButton: null, - augPanel: null, - augSelector: null, - augDescription: null, - costPanel: null, - costText: null, - buyButton: null, - }; - if (!navigationTracking_1.routing.isOn(navigationTracking_1.Page.Resleeves)) { - return elems; - } - elems.container = createElement_1.createElement("div", { - class: "resleeve-container", - display: "block", - }); - elems.statsPanel = createElement_1.createElement("div", { class: "resleeve-panel" }); - elems.stats = createElement_1.createElement("p", { class: "resleeve-stats-text" }); - elems.multipliersButton = createElement_1.createElement("button", { - class: "std-button", - innerText: "Multipliers", - clickListener: () => { - DialogBox_1.dialogBoxCreate([ - "

Total Multipliers:

", - `Hacking Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_mult)}`, - `Hacking Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_exp_mult)}`, - `Strength Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.strength_mult)}`, - `Strength Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.strength_exp_mult)}`, - `Defense Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.defense_mult)}`, - `Defense Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.defense_exp_mult)}`, - `Dexterity Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.dexterity_mult)}`, - `Dexterity Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.dexterity_exp_mult)}`, - `Agility Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.agility_mult)}`, - `Agility Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.agility_exp_mult)}`, - `Charisma Level multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.charisma_mult)}`, - `Charisma Experience multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.charisma_exp_mult)}`, - `Hacking Chance multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_chance_mult)}`, - `Hacking Speed multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_speed_mult)}`, - `Hacking Money multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_money_mult)}`, - `Hacking Growth multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.hacking_grow_mult)}`, - `Salary multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.work_money_mult)}`, - `Company Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.company_rep_mult)}`, - `Faction Reputation Gain multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.faction_rep_mult)}`, - `Crime Money multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.crime_money_mult)}`, - `Crime Success multiplier: ${numeralFormat_1.numeralWrapper.formatPercentage(resleeve.crime_success_mult)}`, - ].join("
"), false); - } - }); - elems.augPanel = createElement_1.createElement("div", { class: "resleeve-panel" }); - elems.augSelector = createElement_1.createElement("select"); - for (let i = 0; i < resleeve.augmentations.length; ++i) { - elems.augSelector.add(createOptionElement_1.createOptionElement(resleeve.augmentations[i].name)); - } - ; - elems.augSelector.addEventListener("change", () => { - updateAugDescription(elems); - }); - elems.augDescription = createElement_1.createElement("p"); - elems.costPanel = createElement_1.createElement("div", { class: "resleeve-panel" }); - elems.costText = createElement_1.createElement("p", { - innerText: `It costs ${numeralFormat_1.numeralWrapper.formatMoney(resleeve.getCost())} ` + - `to purchase this Sleeve.`, - }); - elems.buyButton = createElement_1.createElement("button", { - class: "std-button", - innerText: "Purchase", - clickListener: () => { - Resleeving_1.purchaseResleeve(resleeve, playerRef); - } - }); - return elems; -} -function updateAugDescription(elems) { - const augName = getSelectData_1.getSelectValue(elems.augSelector); - const aug = Augmentations_1.Augmentations[augName]; - if (aug == null) { - console.warn(`Could not find Augmentation with name ${augName}`); - return; - } - elems.augDescription.innerHTML = aug.info; -} - - -/***/ }), -/* 142 */ +/* 148 */ /*!**********************************!*\ !*** ./src/CharacterOverview.js ***! \**********************************/ @@ -51359,7 +52894,7 @@ CharacterOverview.prototype.update = function() { /***/ }), -/* 143 */ +/* 149 */ /*!******************************!*\ !*** ./src/JSInterpreter.js ***! \******************************/ @@ -55162,640 +56697,7 @@ Interpreter.prototype['createPrimitive'] = function(x) {return x;}; /***/ }), -/* 144 */ -/*!********************************************!*\ - !*** ./src/PersonObjects/Sleeve/Sleeve.ts ***! - \********************************************/ -/*! no static exports found */ -/*! exports used: Sleeve */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Sleeves are bodies that contain the player's cloned consciousness. - * The player can use these bodies to perform different tasks synchronously. - * - * Each sleeve is its own individual, meaning it has its own stats/exp - * - * Sleeves are unlocked in BitNode-10. - */ -const SleeveTaskTypesEnum_1 = __webpack_require__(/*! ./SleeveTaskTypesEnum */ 209); -const Person_1 = __webpack_require__(/*! ../Person */ 134); -const BitNodeMultipliers_1 = __webpack_require__(/*! ../../BitNode/BitNodeMultipliers */ 10); -const Cities_1 = __webpack_require__(/*! ../../Locations/Cities */ 122); -const Companies_1 = __webpack_require__(/*! ../../Company/Companies */ 19); -const Company_1 = __webpack_require__(/*! ../../Company/Company */ 72); -const CompanyPositions_1 = __webpack_require__(/*! ../../Company/CompanyPositions */ 33); -const Constants_1 = __webpack_require__(/*! ../../Constants */ 1); -const Faction_1 = __webpack_require__(/*! ../../Faction/Faction */ 58); -const Factions_1 = __webpack_require__(/*! ../../Faction/Factions */ 16); -const FactionWorkTypeEnum_1 = __webpack_require__(/*! ../../Faction/FactionWorkTypeEnum */ 208); -const Locations_1 = __webpack_require__(/*! ../../Locations */ 5); -const JSONReviver_1 = __webpack_require__(/*! ../../../utils/JSONReviver */ 15); -class Sleeve extends Person_1.Person { - constructor() { - super(); - /** - * Enum value for current task - */ - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Idle; - /** - * Description of current task. Used only for logging purposes - */ - this.currentTaskDescription = ""; - /** - * Contains details about the sleeve's current task. The info stored - * in this depends on the task type - * - * Faction/Company Work: Name of Faction/Company - * Crime: Success rate of current crime, in decimal form - */ - this.currentTaskLocation = ""; - /** - * Maximum amount of time (in milliseconds) that can be spent on current task. - */ - this.currentTaskMaxTime = 0; - /** - * Milliseconds spent on current task - */ - this.currentTaskTime = 0; - /** - * Keeps track of experience earned for other sleeves - */ - this.earningsForSleeves = Person_1.createTaskTracker(); - /** - * Keeps track of experience + money earned for player - */ - this.earningsForPlayer = Person_1.createTaskTracker(); - /** - * Keeps track of experienced earned in the current task/action - */ - this.earningsForTask = Person_1.createTaskTracker(); - /** - * Keeps track of what type of work sleeve is doing for faction, if applicable - */ - this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.None; - /** - * Records experience gain rate for the current task - */ - this.gainRatesForTask = Person_1.createTaskTracker(); - /** - * Keeps track of events/notifications for this sleeve - */ - this.logs = []; - /** - * Clone retains memory% of exp upon prestige. If exp would be lower than previously - * kept exp, nothing happens - */ - this.memory = 0; - /** - * Sleeve shock. Number between 1 and 100 - * Trauma/shock that comes with being in a sleeve. Experience earned - * is multipled by shock%. This gets applied before synchronization - * - * Reputation earned is also multiplied by shock% - */ - this.shock = 1; - /** - * Stored number of game "loop" cycles - */ - this.storedCycles = 0; - /** - * Synchronization. Number between 0 and 100 - * When experience is earned by sleeve, both the player and the sleeve get - * sync% of the experience earned. Other sleeves get sync^2% of exp - */ - this.sync = 1; - } - /** - * Initiatizes a Sleeve object from a JSON save state. - */ - static fromJSON(value) { - return JSONReviver_1.Generic_fromJSON(Sleeve, value.data); - } - /** - * Commit crimes - */ - commitCrime(p, crime) { - if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - this.finishTask(p); - } - else { - this.resetTaskStatus(); - } - this.gainRatesForTask.hack = crime.hacking_exp * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.str = crime.strength_exp * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.def = crime.defense_exp * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.dex = crime.dexterity_exp * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.agi = crime.agility_exp * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.cha = crime.charisma_exp * this.charisma_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeExpGain; - this.gainRatesForTask.money = crime.money * this.crime_money_mult * BitNodeMultipliers_1.BitNodeMultipliers.CrimeMoney; - // We'll determine success now and adjust the earnings accordingly - if (Math.random() < crime.successRate(p)) { - this.gainRatesForTask.hack *= 2; - this.gainRatesForTask.str *= 2; - this.gainRatesForTask.def *= 2; - this.gainRatesForTask.dex *= 2; - this.gainRatesForTask.agi *= 2; - this.gainRatesForTask.cha *= 2; - } - else { - this.gainRatesForTask.money = 0; - } - this.currentTaskMaxTime = crime.time; - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Crime; - } - /** - * Called to stop the current task - */ - finishTask(p) { - if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Crime) { - // For crimes, all experience and money is gained at the end - if (this.currentTaskTime >= this.currentTaskMaxTime) { - let retValue = Person_1.createTaskTracker(); // Amount of exp to be gained by other sleeves - retValue = this.gainExperience(p, this.gainRatesForTask); - this.gainMoney(p, this.gainRatesForTask); - } - } - else { - // For other crimes... I dont think anything else needs to be done - } - this.resetTaskStatus(); - } - /** - * Earn experience for any stats (supports multiple) - * This function also handles experience propogating to Player and other sleeves - */ - gainExperience(p, exp, numCycles = 1) { - // Experience is first multiplied by shock. Then 'synchronization' - // is accounted for - const multFac = (this.shock / 100) * (this.sync / 100) * numCycles; - const pHackExp = exp.hack * multFac; - const pStrExp = exp.str * multFac; - const pDefExp = exp.def * multFac; - const pDexExp = exp.dex * multFac; - const pAgiExp = exp.agi * multFac; - const pChaExp = exp.cha * multFac; - // Experience is gained by both this sleeve and player - if (pHackExp > 0) { - this.hacking_exp += pHackExp; - p.gainHackingExp(pHackExp); - this.earningsForPlayer.hack += pHackExp; - this.earningsForTask.hack += pHackExp; - } - if (pStrExp > 0) { - this.strength_exp += pStrExp; - p.gainStrengthExp(pStrExp); - this.earningsForPlayer.str += pStrExp; - this.earningsForTask.str += pStrExp; - } - if (pDefExp > 0) { - this.defense_exp += pDefExp; - p.gainDefenseExp(pDefExp); - this.earningsForPlayer.def += pDefExp; - this.earningsForTask.dex += pDefExp; - } - if (pDexExp > 0) { - this.dexterity_exp += pDexExp; - p.gainDexterityExp(pDexExp); - this.earningsForPlayer.dex += pDexExp; - this.earningsForTask.dex += pDexExp; - } - if (pAgiExp > 0) { - this.agility_exp += pAgiExp; - p.gainAgilityExp(pAgiExp); - this.earningsForPlayer.agi += pAgiExp; - this.earningsForTask.agi += pAgiExp; - } - if (pChaExp > 0) { - this.charisma_exp += pChaExp; - p.gainCharismaExp(pChaExp); - this.earningsForPlayer.cha += pChaExp; - this.earningsForTask.cha += pChaExp; - } - // Record earnings for other sleeves - this.earningsForSleeves.hack += (pHackExp * (this.sync / 100)); - this.earningsForSleeves.str += (pStrExp * (this.sync / 100)); - this.earningsForSleeves.def += (pDefExp * (this.sync / 100)); - this.earningsForSleeves.dex += (pDexExp * (this.sync / 100)); - this.earningsForSleeves.agi += (pAgiExp * (this.sync / 100)); - this.earningsForSleeves.cha += (pChaExp * (this.sync / 100)); - // Return the experience to be gained by other sleeves - return { - hack: pHackExp * (this.sync / 100), - str: pStrExp * (this.sync / 100), - def: pDefExp * (this.sync / 100), - dex: pDexExp * (this.sync / 100), - agi: pAgiExp * (this.sync / 100), - cha: pChaExp * (this.sync / 100), - money: 0, - }; - } - /** - * Earn money for player - */ - gainMoney(p, task, numCycles = 1) { - this.earningsForPlayer.money += (task.money * numCycles); - p.gainMoney(task.money * numCycles); - } - /** - * Gets reputation gain for the current task - * Only applicable when working for company or faction - */ - getRepGain() { - if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Faction) { - switch (this.factionWorkType) { - case FactionWorkTypeEnum_1.FactionWorkType.Hacking: - return this.getFactionHackingWorkRepGain() * (this.shock / 100); - case FactionWorkTypeEnum_1.FactionWorkType.Field: - return this.getFactionFieldWorkRepGain() * (this.shock / 100); - case FactionWorkTypeEnum_1.FactionWorkType.Security: - return this.getFactionSecurityWorkRepGain() * (this.shock / 100); - default: - console.warn(`Invalid Sleeve.factionWorkType property in Sleeve.getRepGain(): ${this.factionWorkType}`); - return 0; - } - } - else if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Company) { - return 0; // TODO - } - else { - console.warn(`Sleeve.getRepGain() called for invalid task type: ${this.currentTask}`); - return 0; - } - } - log(entry) { - const MaxLogSize = 50; - this.logs.push(entry); - if (this.logs.length > MaxLogSize) { - this.logs.shift(); - } - } - /** - * Process loop - * Returns an object containing the amount of experience that should be - * transferred to all other sleeves - */ - process(p, numCycles = 1) { - // Only process once every second (5 cycles) - const CyclesPerSecond = 1000 / Constants_1.CONSTANTS.MilliPerCycle; - this.storedCycles += numCycles; - if (this.storedCycles < CyclesPerSecond) { - return null; - } - // Shock gradually goes towards 100 - this.shock = Math.max(100, this.shock + (0.0001 * this.storedCycles)); - if (this.currentTask === SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - return null; - } - let time = this.storedCycles * Constants_1.CONSTANTS.MilliPerCycle; - let cyclesUsed = this.storedCycles; - if (this.currentTaskTime + time > this.currentTaskMaxTime) { - time = this.currentTaskMaxTime - this.currentTaskTime; - cyclesUsed = Math.floor(time / Constants_1.CONSTANTS.MilliPerCycle); - if (time < 0 || cyclesUsed < 0) { - console.warn(`Sleeve.process() calculated negative cycle usage`); - time = 0; - cyclesUsed = 0; - } - } - this.currentTaskTime += time; - let retValue = Person_1.createTaskTracker(); - switch (this.currentTask) { - case SleeveTaskTypesEnum_1.SleeveTaskType.Class: - retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); - this.gainMoney(p, this.gainRatesForTask, cyclesUsed); - break; - case SleeveTaskTypesEnum_1.SleeveTaskType.Faction: - retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); - this.gainMoney(p, this.gainRatesForTask, cyclesUsed); - // Gain faction reputation - const fac = Factions_1.Factions[this.currentTaskLocation]; - if (!(fac instanceof Faction_1.Faction)) { - console.error(`Invalid faction for Sleeve task: ${this.currentTaskLocation}`); - break; - } - fac.playerReputation += (this.getRepGain() * cyclesUsed); - break; - case SleeveTaskTypesEnum_1.SleeveTaskType.Company: - retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); - this.gainMoney(p, this.gainRatesForTask, cyclesUsed); - const company = Companies_1.Companies[this.currentTaskLocation]; - if (!(company instanceof Company_1.Company)) { - console.error(`Invalid company for Sleeve task: ${this.currentTaskLocation}`); - break; - } - company.playerReputation *= (this.getRepGain() * cyclesUsed); - break; - case SleeveTaskTypesEnum_1.SleeveTaskType.Recovery: - this.shock = Math.max(100, this.shock + (0.001 * this.storedCycles)); - break; - case SleeveTaskTypesEnum_1.SleeveTaskType.Sync: - this.sync = Math.max(100, this.sync + (0.001 * this.storedCycles)); - break; - default: - break; - } - if (this.currentTaskMaxTime !== 0 && this.currentTaskTime >= this.currentTaskMaxTime) { - this.finishTask(p); - } - this.updateStatLevels(); - this.storedCycles -= cyclesUsed; - // TODO Finish this - return retValue; - } - /** - * Resets all parameters used to keep information about the current task - */ - resetTaskStatus() { - this.earningsForTask = Person_1.createTaskTracker(); - this.gainRatesForTask = Person_1.createTaskTracker(); - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Idle; - this.currentTaskTime = 0; - this.currentTaskMaxTime = 0; - this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.None; - } - /** - * Take a course at a university - */ - takeUniversityCourse(p, universityName, className) { - if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - this.finishTask(p); - } - else { - this.resetTaskStatus(); - } - // Set exp/money multipliers based on which university. - // Also check that the sleeve is in the right city - let costMult = 1; - let expMult = 1; - switch (universityName.toLowerCase()) { - case Locations_1.Locations.AevumSummitUniversity.toLowerCase(): - if (this.city !== Cities_1.Cities.Aevum) { - return false; - } - costMult = 4; - expMult = 3; - break; - case Locations_1.Locations.Sector12RothmanUniversity.toLowerCase(): - if (this.city !== Cities_1.Cities.Sector12) { - return false; - } - costMult = 3; - expMult = 2; - break; - case Locations_1.Locations.VolhavenZBInstituteOfTechnology.toLowerCase(): - if (this.city !== Cities_1.Cities.Volhaven) { - return false; - } - costMult = 5; - expMult = 4; - break; - default: - return false; - } - // Number of game cycles in a second - const cps = 1000 / Constants_1.CONSTANTS.MilliPerCycle; - // Set experience/money gains based on class - // TODO Refactor University Courses into its own class or something - const baseStudyComputerScienceExp = 0.5; - const baseDataStructuresExp = 1; - const baseNetworksExp = 2; - const baseAlgorithmsExp = 4; - const baseManagementExp = 2; - const baseLeadershipExp = 4; - switch (className.toLowerCase()) { - case "study computer science": - this.gainRatesForTask.hack = (baseStudyComputerScienceExp * expMult * this.hacking_exp_mult); - break; - case "data structures": - this.gainRatesForTask.hack = (baseDataStructuresExp * expMult * this.hacking_exp_mult); - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassDataStructuresBaseCost * costMult); - break; - case "networks": - this.gainRatesForTask.hack = (baseNetworksExp * expMult * this.hacking_exp_mult); - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassNetworksBaseCost * costMult); - break; - case "algorithms": - this.gainRatesForTask.hack = (baseAlgorithmsExp * expMult * this.hacking_exp_mult); - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassAlgorithmsBaseCost * costMult); - break; - case "management": - this.gainRatesForTask.cha = (baseManagementExp * expMult * this.charisma_exp_mult); - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassManagementBaseCost * costMult); - break; - case "leadership": - this.gainRatesForTask.cha = (baseLeadershipExp * expMult * this.charisma_exp_mult); - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassLeadershipBaseCost * costMult); - break; - default: - return false; - } - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Class; - return true; - } - /** - * Travel to another City. Costs money from player - */ - travel(p, newCity) { - if (Cities_1.Cities[newCity] == null) { - console.error(`Invalid city ${newCity} passed into Sleeve.travel()`); - return false; - } - p.loseMoney(Constants_1.CONSTANTS.TravelCost); - this.city = newCity; - return true; - } - /** - * Start work for one of the player's companies - * Returns boolean indicating success - */ - workForCompany(p, companyName) { - if (!(Companies_1.Companies[companyName] instanceof Company_1.Company) || p.jobs[companyName] == null) { - return false; - } - if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - this.finishTask(p); - } - else { - this.resetTaskStatus(); - } - const company = Companies_1.Companies[companyName]; - const companyPosition = CompanyPositions_1.CompanyPositions[p.jobs[companyName]]; - if (company == null) { - throw new Error(`Invalid company name specified in Sleeve.workForCompany(): ${companyName}`); - } - if (companyPosition == null) { - throw new Error(`Invalid CompanyPosition data in Sleeve.workForCompany(): ${companyName}`); - } - this.gainRatesForTask.hack = companyPosition.hackingExpGain * - company.expMultiplier * - this.hacking_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.str = companyPosition.strengthExpGain * - company.expMultiplier * - this.strength_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.def = companyPosition.defenseExpGain * - company.expMultiplier * - this.defense_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.dex = companyPosition.dexterityExpGain * - company.expMultiplier * - this.dexterity_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.agi = companyPosition.agilityExpGain * - company.expMultiplier * - this.agility_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.cha = companyPosition.charismaExpGain * - company.expMultiplier * - this.charisma_exp_mult * - BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.currentTaskLocation = companyName; - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Company; - return true; - } - /** - * Start work for one of the player's factions - * Returns boolean indicating success - */ - workForFaction(p, factionName, workType) { - if (!(Factions_1.Factions[factionName] instanceof Faction_1.Faction) || !p.factions.includes(factionName)) { - throw new Error(`Invalid Faction specified for Sleeve.workForFaction(): ${factionName}`); - return false; - } - if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - this.finishTask(p); - } - else { - this.resetTaskStatus(); - } - // Set type of work (hacking/field/security), and the experience gains - const sanitizedWorkType = workType.toLowerCase(); - if (sanitizedWorkType.includes("hack")) { - this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Hacking; - this.gainRatesForTask.hack = .15 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - } - else if (sanitizedWorkType.includes("field")) { - this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Field; - this.gainRatesForTask.hack = .1 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.str = .1 * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.def = .1 * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.dex = .1 * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.agi = .1 * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.cha = .1 * this.charisma_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - } - else if (sanitizedWorkType.includes("security")) { - this.factionWorkType = FactionWorkTypeEnum_1.FactionWorkType.Security; - this.gainRatesForTask.hack = .1 * this.hacking_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.str = .15 * this.strength_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.def = .15 * this.defense_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.dex = .15 * this.dexterity_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - this.gainRatesForTask.agi = .15 * this.agility_exp_mult * BitNodeMultipliers_1.BitNodeMultipliers.FactionWorkExpGain; - } - else { - return false; - } - this.currentTaskLocation = factionName; - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Faction; - return true; - } - /** - * Begin a gym workout task - */ - workoutAtGym(p, gymName, stat) { - if (this.currentTask !== SleeveTaskTypesEnum_1.SleeveTaskType.Idle) { - this.finishTask(p); - } - else { - this.resetTaskStatus(); - } - // Set exp/money multipliers based on which university. - // Also check that the sleeve is in the right city - let costMult = 1; - let expMult = 1; - switch (gymName.toLowerCase()) { - case Locations_1.Locations.AevumCrushFitnessGym.toLowerCase(): - if (this.city != Cities_1.Cities.Aevum) { - return false; - } - costMult = 3; - expMult = 2; - break; - case Locations_1.Locations.AevumSnapFitnessGym.toLowerCase(): - if (this.city != Cities_1.Cities.Aevum) { - return false; - } - costMult = 10; - expMult = 5; - break; - case Locations_1.Locations.Sector12IronGym.toLowerCase(): - if (this.city != Cities_1.Cities.Sector12) { - return false; - } - costMult = 1; - expMult = 1; - break; - case Locations_1.Locations.Sector12PowerhouseGym.toLowerCase(): - if (this.city != Cities_1.Cities.Sector12) { - return false; - } - costMult = 20; - expMult = 10; - break; - case Locations_1.Locations.VolhavenMilleniumFitnessGym: - if (this.city != Cities_1.Cities.Volhaven) { - return false; - } - costMult = 7; - expMult = 4; - break; - default: - return false; - } - // Number of game cycles in a second - const cps = 1000 / Constants_1.CONSTANTS.MilliPerCycle; - // Set experience/money gains based on class - // TODO Refactor University Courses into its own class or something - const baseGymExp = 1; - const sanitizedStat = stat.toLowerCase(); - // Set cost - this.gainRatesForTask.money = -1 * (Constants_1.CONSTANTS.ClassGymBaseCost * costMult); - // Set stat gain rate - if (sanitizedStat.includes("str")) { - this.gainRatesForTask.str = (baseGymExp * expMult); - } - else if (sanitizedStat.includes("def")) { - this.gainRatesForTask.def = (baseGymExp * expMult); - } - else if (sanitizedStat.includes("dex")) { - this.gainRatesForTask.dex = (baseGymExp * expMult); - } - else if (sanitizedStat.includes("agi")) { - this.gainRatesForTask.agi = (baseGymExp * expMult); - } - else { - return false; - } - this.currentTask = SleeveTaskTypesEnum_1.SleeveTaskType.Class; - return true; - } - /** - * Serialize the current object to a JSON save state. - */ - toJSON() { - return JSONReviver_1.Generic_toJSON("Sleeve", this); - } -} -exports.Sleeve = Sleeve; -JSONReviver_1.Reviver.constructors.Sleeve = Sleeve; - - -/***/ }), -/* 145 */ +/* 150 */ /*!***************************************!*\ !*** ./utils/helpers/isPowerOfTwo.ts ***! \***************************************/ @@ -55825,7 +56727,7 @@ exports.isPowerOfTwo = isPowerOfTwo; /***/ }), -/* 146 */ +/* 151 */ /*!*************************************************!*\ !*** ./src/SourceFile/PlayerOwnedSourceFile.ts ***! \*************************************************/ @@ -55850,7 +56752,7 @@ exports.PlayerOwnedSourceFile = PlayerOwnedSourceFile; /***/ }), -/* 147 */ +/* 152 */ /*!****************************************!*\ !*** ./src/data/gangmemberupgrades.ts ***! \****************************************/ @@ -56062,7 +56964,7 @@ exports.gangMemberUpgradesMetadata = [ /***/ }), -/* 148 */ +/* 153 */ /*!*************************************!*\ !*** ./src/data/gangmembertasks.ts ***! \*************************************/ @@ -56327,7 +57229,7 @@ exports.gangMemberTasksMetadata = [ /***/ }), -/* 149 */ +/* 154 */ /*!***************************************!*\ !*** ./utils/FactionInvitationBox.js ***! \***************************************/ @@ -56342,7 +57244,7 @@ exports.gangMemberTasksMetadata = [ /* harmony import */ var _src_Player__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../src/Player */ 0); /* harmony import */ var _uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uiHelpers/clearEventListeners */ 22); /* harmony import */ var _uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _src_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../src/ui/navigationTracking */ 14); +/* harmony import */ var _src_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../src/ui/navigationTracking */ 13); /* harmony import */ var _src_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_src_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_4__); @@ -56411,7 +57313,7 @@ function factionInvitationBoxCreate(faction) { /***/ }), -/* 150 */ +/* 155 */ /*!*****************************!*\ !*** ./src/data/servers.ts ***! \*****************************/ @@ -57884,7 +58786,7 @@ exports.serverMetadata = [ /***/ }), -/* 151 */ +/* 156 */ /*!**********************************!*\ !*** ./utils/InfiltrationBox.js ***! \**********************************/ @@ -58032,7 +58934,7 @@ function infiltrationBoxCreate(inst) { /***/ }), -/* 152 */ +/* 157 */ /*!*****************************!*\ !*** ./src/Infiltration.js ***! \*****************************/ @@ -58053,7 +58955,7 @@ function infiltrationBoxCreate(inst) { /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 17); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _utils_InfiltrationBox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/InfiltrationBox */ 151); +/* harmony import */ var _utils_InfiltrationBox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/InfiltrationBox */ 156); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_8__); @@ -58901,7 +59803,7 @@ function getInfiltrationEscapeChance(inst) { /***/ }), -/* 153 */ +/* 158 */ /*!******************************************!*\ !*** ./utils/uiHelpers/clearSelector.ts ***! \******************************************/ @@ -58925,11 +59827,6 @@ exports.clearSelector = clearSelector; /***/ }), -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, /* 159 */, /* 160 */, /* 161 */, @@ -58940,7 +59837,12 @@ exports.clearSelector = clearSelector; /* 166 */, /* 167 */, /* 168 */, -/* 169 */ +/* 169 */, +/* 170 */, +/* 171 */, +/* 172 */, +/* 173 */, +/* 174 */ /*!************************!*\ !*** ./css/treant.css ***! \************************/ @@ -58950,8 +59852,30 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 170 */, -/* 171 */ +/* 175 */, +/* 176 */ +/*!*****************************!*\ + !*** ./css/resleeving.scss ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 177 */, +/* 178 */ +/*!**************************!*\ + !*** ./css/sleeves.scss ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 179 */, +/* 180 */ /*!***********************!*\ !*** ./css/gang.scss ***! \***********************/ @@ -58961,8 +59885,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 172 */, -/* 173 */ +/* 181 */, +/* 182 */ /*!******************************!*\ !*** ./css/bladeburner.scss ***! \******************************/ @@ -58972,8 +59896,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 174 */, -/* 175 */ +/* 183 */, +/* 184 */ /*!************************************!*\ !*** ./css/companymanagement.scss ***! \************************************/ @@ -58983,8 +59907,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 176 */, -/* 177 */ +/* 185 */, +/* 186 */ /*!***************************!*\ !*** ./css/missions.scss ***! \***************************/ @@ -58994,8 +59918,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 178 */, -/* 179 */ +/* 187 */, +/* 188 */ /*!*************************!*\ !*** ./css/loader.scss ***! \*************************/ @@ -59005,8 +59929,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 180 */, -/* 181 */ +/* 189 */, +/* 190 */ /*!**************************************!*\ !*** ./css/interactivetutorial.scss ***! \**************************************/ @@ -59016,8 +59940,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 182 */, -/* 183 */ +/* 191 */, +/* 192 */ /*!******************************!*\ !*** ./css/gameoptions.scss ***! \******************************/ @@ -59027,8 +59951,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 184 */, -/* 185 */ +/* 193 */, +/* 194 */ /*!*****************************!*\ !*** ./css/popupboxes.scss ***! \*****************************/ @@ -59038,8 +59962,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 186 */, -/* 187 */ +/* 195 */, +/* 196 */ /*!*********************************!*\ !*** ./css/workinprogress.scss ***! \*********************************/ @@ -59049,8 +59973,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 188 */, -/* 189 */ +/* 197 */, +/* 198 */ /*!******************************!*\ !*** ./css/stockmarket.scss ***! \******************************/ @@ -59060,8 +59984,19 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 190 */, -/* 191 */ +/* 199 */, +/* 200 */ +/*!**************************!*\ + !*** ./css/redpill.scss ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 201 */, +/* 202 */ /*!****************************!*\ !*** ./css/menupages.scss ***! \****************************/ @@ -59071,8 +60006,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 192 */, -/* 193 */ +/* 203 */, +/* 204 */ /*!***************************!*\ !*** ./css/terminal.scss ***! \***************************/ @@ -59082,8 +60017,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 194 */, -/* 195 */ +/* 205 */, +/* 206 */ /*!************************************!*\ !*** ./css/characteroverview.scss ***! \************************************/ @@ -59093,8 +60028,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 196 */, -/* 197 */ +/* 207 */, +/* 208 */ /*!***************************!*\ !*** ./css/mainmenu.scss ***! \***************************/ @@ -59104,8 +60039,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 198 */, -/* 199 */ +/* 209 */, +/* 210 */ /*!**************************!*\ !*** ./css/buttons.scss ***! \**************************/ @@ -59115,8 +60050,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 200 */, -/* 201 */ +/* 211 */, +/* 212 */ /*!***************************!*\ !*** ./css/tooltips.scss ***! \***************************/ @@ -59126,8 +60061,8 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 202 */, -/* 203 */ +/* 213 */, +/* 214 */ /*!*************************!*\ !*** ./css/styles.scss ***! \*************************/ @@ -59137,61 +60072,7 @@ exports.clearSelector = clearSelector; // extracted by mini-css-extract-plugin /***/ }), -/* 204 */ -/*!******************************************!*\ - !*** ./utils/uiHelpers/getSelectData.ts ***! - \******************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -function getSelectValue(selector) { - if (selector == null) { - return ""; - } - return selector[selector.selectedIndex].value; -} -exports.getSelectValue = getSelectValue; -function getSelectText(selector) { - if (selector == null) { - return ""; - } - return selector[selector.selectedIndex].text; -} -exports.getSelectText = getSelectText; - - -/***/ }), -/* 205 */ -/*!************************************************!*\ - !*** ./utils/uiHelpers/createOptionElement.ts ***! - \************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const createElement_1 = __webpack_require__(/*! ./createElement */ 2); -function createOptionElement(text, value = "") { - let sanitizedValue = value; - if (sanitizedValue === "") { - sanitizedValue = text; - } - return createElement_1.createElement("option", { - text: text, - value: sanitizedValue, - }); -} -exports.createOptionElement = createOptionElement; - - -/***/ }), -/* 206 */ +/* 215 */ /*!**************************************************!*\ !*** ./src/PersonObjects/Resleeving/Resleeve.ts ***! \**************************************************/ @@ -59206,8 +60087,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); * Implements the Resleeve class, which defines a new body * that the player can "re-sleeve" into. */ -const Person_1 = __webpack_require__(/*! ../Person */ 134); -const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 13); +const Person_1 = __webpack_require__(/*! ../Person */ 139); +const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 14); const JSONReviver_1 = __webpack_require__(/*! ../../../utils/JSONReviver */ 15); class Resleeve extends Person_1.Person { /** @@ -59221,7 +60102,7 @@ class Resleeve extends Person_1.Person { } getCost() { // Each experience point adds this to the cost - const CostPerExp = 5; + const CostPerExp = 4; // Final cost is multiplied by # Augs ^ this constant const NumAugsExponent = 1.05; // Get total exp in this re-sleeve @@ -59255,7 +60136,7 @@ JSONReviver_1.Reviver.constructors.Resleeve = Resleeve; /***/ }), -/* 207 */ +/* 216 */ /*!****************************************************!*\ !*** ./src/PersonObjects/Resleeving/Resleeving.ts ***! \****************************************************/ @@ -59278,13 +60159,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); * * As of right now, this feature is only available in BitNode 10 */ -const Resleeve_1 = __webpack_require__(/*! ./Resleeve */ 206); -const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 13); +const Resleeve_1 = __webpack_require__(/*! ./Resleeve */ 215); +const Augmentations_1 = __webpack_require__(/*! ../../Augmentation/Augmentations */ 14); const PlayerOwnedAugmentation_1 = __webpack_require__(/*! ../../Augmentation/PlayerOwnedAugmentation */ 98); const AugmentationNames_1 = __webpack_require__(/*! ../../Augmentation/data/AugmentationNames */ 6); const getRandomInt_1 = __webpack_require__(/*! ../../../utils/helpers/getRandomInt */ 17); // Executes the actual re-sleeve when one is purchased function purchaseResleeve(r, p) { + const cost = r.getCost(); + if (!p.canAfford(cost)) { + return false; + } + p.loseMoney(cost); // Set the player's exp p.hacking_exp = r.hacking_exp; p.strength_exp = r.strength_exp; @@ -59292,15 +60178,24 @@ function purchaseResleeve(r, p) { p.dexterity_exp = r.dexterity_exp; p.agility_exp = r.agility_exp; p.charisma_exp = r.charisma_exp; + // Reset Augmentation "owned" data + for (const augKey in Augmentations_1.Augmentations) { + Augmentations_1.Augmentations[augKey].owned = false; + } // Clear all of the player's augmentations, except the NeuroFlux Governor // which is kept for (let i = p.augmentations.length - 1; i >= 0; --i) { if (p.augmentations[i].name !== AugmentationNames_1.AugmentationNames.NeuroFluxGovernor) { p.augmentations.splice(i, 1); } + else { + // NeuroFlux Governor + Augmentations_1.Augmentations[AugmentationNames_1.AugmentationNames.NeuroFluxGovernor].owned = true; + } } for (let i = 0; i < r.augmentations.length; ++i) { p.augmentations.push(new PlayerOwnedAugmentation_1.PlayerOwnedAugmentation(r.augmentations[i].name)); + Augmentations_1.Augmentations[r.augmentations[i].name].owned = true; } // The player's purchased Augmentations should remain the same, but any purchased // Augmentations that are given by the resleeve should be removed so there are no duplicates @@ -59311,6 +60206,8 @@ function purchaseResleeve(r, p) { } } p.reapplyAllAugmentations(true); + p.reapplyAllSourceFiles(); //Multipliers get reset, so have to re-process source files too + return true; } exports.purchaseResleeve = purchaseResleeve; // Creates all of the Re-sleeves that will be available for purchase at VitaLife @@ -59321,22 +60218,31 @@ function generateResleeves() { // i will be a number indicating how "powerful" the Re-sleeve should be let r = new Resleeve_1.Resleeve(); // Generate experience - const expMult = i + 1; - r.hacking_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); - r.strength_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); - r.defense_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); - r.dexterity_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); - r.agility_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); - r.charisma_exp = expMult * getRandomInt_1.getRandomInt(500, 1500); + const expMult = (5 * i) + 1; + r.hacking_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); + r.strength_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); + r.defense_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); + r.dexterity_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); + r.agility_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); + r.charisma_exp = expMult * getRandomInt_1.getRandomInt(1000, 5000); // Generate Augs - const baseNumAugs = Math.ceil((i + 1) / 2); + // Augmentation prequisites will be ignored for this + const baseNumAugs = Math.max(2, Math.ceil((i + 3) / 2)); const numAugs = getRandomInt_1.getRandomInt(baseNumAugs, baseNumAugs + 2); + const augKeys = Object.keys(Augmentations_1.Augmentations); for (let a = 0; a < numAugs; ++a) { - // We'll ignore Aug prerequisites for this - const augKeys = Object.keys(Augmentations_1.Augmentations); - const randKey = augKeys[getRandomInt_1.getRandomInt(0, augKeys.length - 1)]; + // Get a random aug + const randIndex = getRandomInt_1.getRandomInt(0, augKeys.length - 1); + const randKey = augKeys[randIndex]; + if (randKey === AugmentationNames_1.AugmentationNames.TheRedPill) { + continue; // A sleeve can't have The Red Pill + } const randAug = Augmentations_1.Augmentations[randKey]; r.augmentations.push({ name: randAug.name, level: 1 }); + r.applyAugmentation(Augmentations_1.Augmentations[randKey]); + r.updateStatLevels(); + // Remove Augmentation so that there are no duplicates + augKeys.splice(randIndex, 1); } ret.push(r); } @@ -59346,7 +60252,52 @@ exports.generateResleeves = generateResleeves; /***/ }), -/* 208 */ +/* 217 */ +/*!****************************************************!*\ + !*** ./src/PersonObjects/Sleeve/data/SleeveFaq.ts ***! + \****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SleeveFaq = [ + "How do sleeves work?
", + "Sleeves are essentially clones. You can use them to perform any work type", + "action, such as working for a company/faction or committing a crime.", + "Having sleeves perform these tasks earns you money, experience, and reputation.

", + "Sleeves are their own individuals, which means they each have their own", + "experience and stats.

", + "When a sleeve earns experience, it earns experience for itself, the player's", + "original 'consciousness', as well as all of the player's other sleeves.

", + "What is Synchronization (Sync)?
", + "Synchronization is a measure of how aligned your consciousness is with", + "that of your Duplicate Sleeves. It is a numerical value between 1 and 100, and", + "it affects how much experience is earned by when the sleeve is performing a task.

", + "Let N be the sleeve's synchronization. When the sleeve earns experience by performing a", + "task, both the sleeve and the player's original host consciousness earn N%", + "of the amount of experience normally earned by the task. All of the player's", + "other sleeves earn N^2% of the experience.

", + "Synchronization can be increased by assigning sleeves to the 'Synchronize' task.

", + "What is Shock?
", + "Sleeve shock is a measure of how much trauma the sleeve has due to being placed in a new", + "body. It is a numerival value between 0 and 99, where 100 indicates full shock and 0 indicates", + "no shock. Shock affects the amount of experience earned by the sleeve.

", + "Sleeve shock slowly decreases over time. You can further increase the rate at which", + "it decreases by assigning sleeves to the 'Shock Recovery' task.

", + "Why can't I work for this company or faction?
", + "Only one of your sleeves can work for a given company/faction a time.", + "To clarify further, if you have two sleeves they can work for two different", + "companies, but they cannot both work for the same company.

", + "Do sleeves get reset when installing Augmentations or switching BitNodes?
", + "Sleeves are reset when switching BitNodes, but not when installing Augmentations." +].join(" "); + + +/***/ }), +/* 218 */ /*!********************************************!*\ !*** ./src/Faction/FactionWorkTypeEnum.ts ***! \********************************************/ @@ -59367,42 +60318,15 @@ var FactionWorkType; /***/ }), -/* 209 */ -/*!*********************************************************!*\ - !*** ./src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Enum for different types of tasks that a Sleeve can perform - */ -var SleeveTaskType; -(function (SleeveTaskType) { - SleeveTaskType[SleeveTaskType["Class"] = 0] = "Class"; - SleeveTaskType[SleeveTaskType["Company"] = 1] = "Company"; - SleeveTaskType[SleeveTaskType["Crime"] = 2] = "Crime"; - SleeveTaskType[SleeveTaskType["Faction"] = 3] = "Faction"; - SleeveTaskType[SleeveTaskType["Idle"] = 4] = "Idle"; - SleeveTaskType[SleeveTaskType["Recovery"] = 5] = "Recovery"; - SleeveTaskType[SleeveTaskType["Sync"] = 6] = "Sync"; -})(SleeveTaskType = exports.SleeveTaskType || (exports.SleeveTaskType = {})); - - -/***/ }), -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */ +/* 219 */, +/* 220 */, +/* 221 */, +/* 222 */, +/* 223 */, +/* 224 */, +/* 225 */, +/* 226 */, +/* 227 */ /*!************************************!*\ !*** ./src/DarkWeb/DarkWebItem.ts ***! \************************************/ @@ -59429,7 +60353,7 @@ exports.DarkWebItem = DarkWebItem; /***/ }), -/* 219 */ +/* 228 */ /*!***********************************************!*\ !*** ./src/Programs/data/programsMetadata.ts ***! \***********************************************/ @@ -59571,7 +60495,7 @@ exports.programsMetadata = [ /***/ }), -/* 220 */ +/* 229 */ /*!*********************************!*\ !*** ./src/Programs/Program.ts ***! \*********************************/ @@ -59597,7 +60521,7 @@ exports.Program = Program; /***/ }), -/* 221 */ +/* 230 */ /*!**********************!*\ !*** ./netscript.js ***! \**********************/ @@ -60443,7 +61367,7 @@ oop.inherits(Mode, TextMode); }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(/*! brace/worker/javascript */ 222), "JavaScriptWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(/*! brace/worker/javascript */ 231), "JavaScriptWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(results) { @@ -60465,11 +61389,11 @@ exports.Mode = Mode; /***/ }), -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */ +/* 231 */, +/* 232 */, +/* 233 */, +/* 234 */, +/* 235 */ /*!*****************************************!*\ !*** ./src/data/codingcontracttypes.ts ***! \*****************************************/ @@ -60950,7 +61874,7 @@ exports.codingContractTypesMetadata = [ /***/ }), -/* 227 */ +/* 236 */ /*!*************************************************!*\ !*** ./src/Corporation/ProductRatingWeights.ts ***! \*************************************************/ @@ -61030,7 +61954,7 @@ exports.ProductRatingWeights = { /***/ }), -/* 228 */ +/* 237 */ /*!*****************************************!*\ !*** ./src/Corporation/ResearchTree.ts ***! \*****************************************/ @@ -61041,7 +61965,7 @@ exports.ProductRatingWeights = { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const ResearchMap_1 = __webpack_require__(/*! ./ResearchMap */ 106); +const ResearchMap_1 = __webpack_require__(/*! ./ResearchMap */ 108); class Node { constructor(p = { cost: 0, text: "" }) { // All child Nodes in the tree @@ -61272,7 +62196,7 @@ exports.ResearchTree = ResearchTree; /***/ }), -/* 229 */ +/* 238 */ /*!**************************************************!*\ !*** ./src/Corporation/data/ResearchMetadata.ts ***! \**************************************************/ @@ -61405,7 +62329,7 @@ exports.researchMetadata = [ /***/ }), -/* 230 */ +/* 239 */ /*!*************************************!*\ !*** ./src/Corporation/Research.ts ***! \*************************************/ @@ -61470,7 +62394,7 @@ exports.Research = Research; /***/ }), -/* 231 */ +/* 240 */ /*!**************************************************!*\ !*** ./src/Corporation/data/BaseResearchTree.ts ***! \**************************************************/ @@ -61481,8 +62405,8 @@ exports.Research = Research; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const ResearchMap_1 = __webpack_require__(/*! ../ResearchMap */ 106); -const ResearchTree_1 = __webpack_require__(/*! ../ResearchTree */ 228); +const ResearchMap_1 = __webpack_require__(/*! ../ResearchMap */ 108); +const ResearchTree_1 = __webpack_require__(/*! ../ResearchTree */ 237); function makeNode(name) { const research = ResearchMap_1.ResearchMap[name]; if (research == null) { @@ -61528,7 +62452,7 @@ exports.getBaseResearchTreeCopy = getBaseResearchTreeCopy; /***/ }), -/* 232 */ +/* 241 */ /*!***********************************************!*\ !*** ./src/Company/data/CompaniesMetadata.ts ***! \***********************************************/ @@ -61920,7 +62844,7 @@ exports.companiesMetadata = [ /***/ }), -/* 233 */ +/* 242 */ /*!******************************************************!*\ !*** ./src/Company/data/CompanyPositionsMetadata.ts ***! \******************************************************/ @@ -62533,103 +63457,6 @@ exports.companyPositionMetadata = [ /***/ }), -/* 234 */ -/*!****************************!*\ - !*** ./src/Crime/Crime.ts ***! - \****************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const Constants_1 = __webpack_require__(/*! ../Constants */ 1); -class Crime { - constructor(name = "", type = "", time = 0, money = 0, difficulty = 0, karma = 0, params = {}) { - // Number representing the difficulty of the crime. Used for success chance calculations - this.difficulty = 0; - // Amount of karma lost for SUCCESSFULLY committing this crime - this.karma = 0; - // How many people die as a result of this crime - this.kills = 0; - // How much money is given by the - this.money = 0; - // Name of crime - this.name = ""; - // Milliseconds it takes to attempt the crime - this.time = 0; - // Corresponding type in CONSTANTS. Contains a description for the crime activity - this.type = ""; - // Weighting factors that determine how stats affect the success rate of this crime - this.hacking_success_weight = 0; - this.strength_success_weight = 0; - this.defense_success_weight = 0; - this.dexterity_success_weight = 0; - this.agility_success_weight = 0; - this.charisma_success_weight = 0; - // How much stat experience is granted by this crime - this.hacking_exp = 0; - this.strength_exp = 0; - this.defense_exp = 0; - this.dexterity_exp = 0; - this.agility_exp = 0; - this.charisma_exp = 0; - this.intelligence_exp = 0; - this.name = name; - this.type = type; - this.time = time; - this.money = money; - this.difficulty = difficulty; - this.karma = karma; - this.hacking_success_weight = params.hacking_success_weight ? params.hacking_success_weight : 0; - this.strength_success_weight = params.strength_success_weight ? params.strength_success_weight : 0; - this.defense_success_weight = params.defense_success_weight ? params.defense_success_weight : 0; - this.dexterity_success_weight = params.dexterity_success_weight ? params.dexterity_success_weight : 0; - this.agility_success_weight = params.agility_success_weight ? params.agility_success_weight : 0; - this.charisma_success_weight = params.charisma_success_weight ? params.charisma_success_weight : 0; - this.hacking_exp = params.hacking_exp ? params.hacking_exp : 0; - this.strength_exp = params.strength_exp ? params.strength_exp : 0; - this.defense_exp = params.defense_exp ? params.defense_exp : 0; - this.dexterity_exp = params.dexterity_exp ? params.dexterity_exp : 0; - this.agility_exp = params.agility_exp ? params.agility_exp : 0; - this.charisma_exp = params.charisma_exp ? params.charisma_exp : 0; - this.intelligence_exp = params.intelligence_exp ? params.intelligence_exp : 0; - this.kills = params.kills ? params.kills : 0; - } - commit(p, div = 1, singParams = null) { - if (div <= 0) { - div = 1; - } - p.startCrime(this.type, this.hacking_exp / div, this.strength_exp / div, this.defense_exp / div, this.dexterity_exp / div, this.agility_exp / div, this.charisma_exp / div, this.money / div, this.time, singParams); - return this.time; - } - successRate(p) { - let chance = (this.hacking_success_weight * p.hacking_skill + - this.strength_success_weight * p.strength + - this.defense_success_weight * p.defense + - this.dexterity_success_weight * p.dexterity + - this.agility_success_weight * p.agility + - this.charisma_success_weight * p.charisma + - Constants_1.CONSTANTS.IntelligenceCrimeWeight * p.intelligence); - chance /= Constants_1.CONSTANTS.MaxSkillLevel; - chance /= this.difficulty; - chance *= p.crime_success_mult; - return Math.min(chance, 1); - } -} -exports.Crime = Crime; - - -/***/ }), -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, /* 243 */, /* 244 */, /* 245 */, @@ -62658,7 +63485,15 @@ exports.Crime = Crime; /* 268 */, /* 269 */, /* 270 */, -/* 271 */ +/* 271 */, +/* 272 */, +/* 273 */, +/* 274 */, +/* 275 */, +/* 276 */, +/* 277 */, +/* 278 */, +/* 279 */ /*!**********************!*\ !*** util (ignored) ***! \**********************/ @@ -62669,7 +63504,7 @@ exports.Crime = Crime; /* (ignored) */ /***/ }), -/* 272 */ +/* 280 */ /*!**********************!*\ !*** util (ignored) ***! \**********************/ diff --git a/dist/engine.css b/dist/engine.css index 6e800b087..088639a5f 100644 --- a/dist/engine.css +++ b/dist/engine.css @@ -1222,6 +1222,24 @@ button { display: inline; width: 25%; } +/* COLORS */ +/* Attributes */ +/** + * Styling for the Red Pill screen (the BitNode selection UI) + */ +#red-pill-container { + position: fixed; } + +.bitnode { + color: #00f; } + +.bitnode-destroyed { + color: #f00; } + +.bitnode:hover, +.bitnode-destroyed:hover { + color: #fff; } + /* COLORS */ /* Attributes */ #stock-market-container { @@ -1318,20 +1336,9 @@ button { text-decoration: none; cursor: pointer; } -#red-pill-container, #cinematic-text-container { position: fixed; } -.bitnode { - color: #00f; } - -.bitnode-destroyed { - color: #f00; } - -.bitnode:hover, -.bitnode-destroyed:hover { - color: #fff; } - /* COLORS */ /* Attributes */ /* Pop-up boxes */ @@ -1393,7 +1400,7 @@ button { z-index: 10; width: 50%; height: auto; - max-height: 40%; + max-height: 50%; top: 40%; left: 50%; margin: -10% 0 0 -25%; @@ -2136,6 +2143,51 @@ button { margin: 1px; padding: 1px; } +/** + * Styling for the Sleeves Management page + */ +/* COLORS */ +/* Attributes */ +.sleeve-container { + border: 1px solid white; + margin: 4px; + width: 75%; } + .sleeve-container p { + font-size: 14px; } + +.sleeves-page-info { + display: "block"; + width: 75%; } + +.sleeve-panel { + display: inline-block; + margin: 0px; + padding: 2px; } + .sleeve-panel select { + display: block; } + +/** + * Styling for the Re-Sleeving Page + */ +/* COLORS */ +/* Attributes */ +.resleeve-container { + border: 1px solid white; + margin: 4px; + width: 75%; } + .resleeve-container p { + font-size: 13px; } + +.resleeve-panel { + display: inline-block; + margin: 0px; + padding: 2px; } + +.resleeve-aug-selector { + font-size: 13px; } + .resleeve-aug-selector option { + font-size: 13px; } + /* required LIB STYLES */ /* .Treant se automatski dodaje na svaki chart conatiner */ .Treant { diff --git a/dist/vendor.bundle.js b/dist/vendor.bundle.js index 0fd6123c1..4b0be3641 100644 --- a/dist/vendor.bundle.js +++ b/dist/vendor.bundle.js @@ -15213,11 +15213,11 @@ return jQuery; "use strict"; -var support = __webpack_require__(/*! ./support */ 116); -var base64 = __webpack_require__(/*! ./base64 */ 267); -var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 159); -var setImmediate = __webpack_require__(/*! core-js/library/fn/set-immediate */ 384); -var external = __webpack_require__(/*! ./external */ 135); +var support = __webpack_require__(/*! ./support */ 119); +var base64 = __webpack_require__(/*! ./base64 */ 275); +var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 164); +var setImmediate = __webpack_require__(/*! core-js/library/fn/set-immediate */ 392); +var external = __webpack_require__(/*! ./external */ 141); /** @@ -15702,7 +15702,8 @@ exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinarySt /* 84 */, /* 85 */, /* 86 */, -/* 87 */ +/* 87 */, +/* 88 */ /*!*****************************************!*\ !*** ./node_modules/numeral/numeral.js ***! \*****************************************/ @@ -16726,7 +16727,6 @@ return numeral; /***/ }), -/* 88 */, /* 89 */, /* 90 */, /* 91 */, @@ -17016,7 +17016,8 @@ module.exports = GenericWorker; /* 101 */, /* 102 */, /* 103 */, -/* 104 */ +/* 104 */, +/* 105 */ /*!**************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/flag.js ***! \**************************************************/ @@ -17060,7 +17061,7 @@ module.exports = function flag(obj, key, value) { /***/ }), -/* 105 */ +/* 106 */ /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! \***********************************/ @@ -17091,7 +17092,6 @@ module.exports = g; /***/ }), -/* 106 */, /* 107 */, /* 108 */, /* 109 */, @@ -17100,7 +17100,10 @@ module.exports = g; /* 112 */, /* 113 */, /* 114 */, -/* 115 */ +/* 115 */, +/* 116 */, +/* 117 */, +/* 118 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/utils/common.js ***! \***********************************************/ @@ -17217,7 +17220,7 @@ exports.setTyped(TYPED_OK); /***/ }), -/* 116 */ +/* 119 */ /*!*******************************************!*\ !*** ./node_modules/jszip/lib/support.js ***! \*******************************************/ @@ -17260,15 +17263,15 @@ else { } try { - exports.nodestream = !!__webpack_require__(/*! readable-stream */ 275).Readable; + exports.nodestream = !!__webpack_require__(/*! readable-stream */ 283).Readable; } catch(e) { exports.nodestream = false; } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 137).Buffer)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 143).Buffer)) /***/ }), -/* 117 */ +/* 120 */ /*!*********************************************!*\ !*** ./node_modules/escodegen/escodegen.js ***! \*********************************************/ @@ -17342,8 +17345,8 @@ try { FORMAT_MINIFY, FORMAT_DEFAULTS; - estraverse = __webpack_require__(/*! estraverse */ 346); - esutils = __webpack_require__(/*! esutils */ 344); + estraverse = __webpack_require__(/*! estraverse */ 354); + esutils = __webpack_require__(/*! esutils */ 352); Syntax = estraverse.Syntax; @@ -19823,7 +19826,7 @@ try { if (!exports.browser) { // We assume environment is node.js // And prevent from including source-map by browserify - SourceNode = __webpack_require__(/*! source-map */ 341).SourceNode; + SourceNode = __webpack_require__(/*! source-map */ 349).SourceNode; } else { SourceNode = global.sourceMap.SourceNode; } @@ -19870,7 +19873,7 @@ try { FORMAT_DEFAULTS = getDefaultOptions().format; - exports.version = __webpack_require__(/*! ./package.json */ 334).version; + exports.version = __webpack_require__(/*! ./package.json */ 342).version; exports.generate = generate; exports.attachComments = estraverse.attachComments; exports.Precedence = updateDeeply({}, Precedence); @@ -19880,10 +19883,10 @@ try { }()); /* vim: set sw=4 ts=4 et tw=80 : */ -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106))) /***/ }), -/* 118 */ +/* 121 */ /*!***********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/transferFlags.js ***! \***********************************************************/ @@ -19939,7 +19942,7 @@ module.exports = function transferFlags(assertion, object, includeAll) { /***/ }), -/* 119 */ +/* 122 */ /*!**********************************************!*\ !*** ./node_modules/chai/lib/chai/config.js ***! \**********************************************/ @@ -20044,7 +20047,7 @@ module.exports = { /***/ }), -/* 120 */ +/* 123 */ /*!***************************************!*\ !*** ./node_modules/chai/lib/chai.js ***! \***************************************/ @@ -20070,13 +20073,13 @@ exports.version = '4.1.2'; * Assertion Error */ -exports.AssertionError = __webpack_require__(/*! assertion-error */ 241); +exports.AssertionError = __webpack_require__(/*! assertion-error */ 249); /*! * Utils for plugins (not exported) */ -var util = __webpack_require__(/*! ./chai/utils */ 329); +var util = __webpack_require__(/*! ./chai/utils */ 337); /** * # .use(function) @@ -20107,47 +20110,47 @@ exports.util = util; * Configuration */ -var config = __webpack_require__(/*! ./chai/config */ 119); +var config = __webpack_require__(/*! ./chai/config */ 122); exports.config = config; /*! * Primary `Assertion` prototype */ -var assertion = __webpack_require__(/*! ./chai/assertion */ 313); +var assertion = __webpack_require__(/*! ./chai/assertion */ 321); exports.use(assertion); /*! * Core Assertions */ -var core = __webpack_require__(/*! ./chai/core/assertions */ 312); +var core = __webpack_require__(/*! ./chai/core/assertions */ 320); exports.use(core); /*! * Expect interface */ -var expect = __webpack_require__(/*! ./chai/interface/expect */ 311); +var expect = __webpack_require__(/*! ./chai/interface/expect */ 319); exports.use(expect); /*! * Should interface */ -var should = __webpack_require__(/*! ./chai/interface/should */ 310); +var should = __webpack_require__(/*! ./chai/interface/should */ 318); exports.use(should); /*! * Assert interface */ -var assert = __webpack_require__(/*! ./chai/interface/assert */ 309); +var assert = __webpack_require__(/*! ./chai/interface/assert */ 317); exports.use(assert); /***/ }), -/* 121 */ +/* 124 */ /*!************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! \************************************************************/ @@ -20186,7 +20189,7 @@ exports.use(assert); /**/ -var processNextTick = __webpack_require__(/*! process-nextick-args */ 161).nextTick; +var processNextTick = __webpack_require__(/*! process-nextick-args */ 166).nextTick; /**/ /**/ @@ -20201,12 +20204,12 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; /**/ -var util = __webpack_require__(/*! core-util-is */ 136); -util.inherits = __webpack_require__(/*! inherits */ 131); +var util = __webpack_require__(/*! core-util-is */ 142); +util.inherits = __webpack_require__(/*! inherits */ 134); /**/ -var Readable = __webpack_require__(/*! ./_stream_readable */ 274); -var Writable = __webpack_require__(/*! ./_stream_writable */ 215); +var Readable = __webpack_require__(/*! ./_stream_readable */ 282); +var Writable = __webpack_require__(/*! ./_stream_writable */ 224); util.inherits(Duplex, Readable); @@ -20282,16 +20285,16 @@ function forEach(xs, f) { } /***/ }), -/* 122 */, -/* 123 */, -/* 124 */, /* 125 */, /* 126 */, /* 127 */, /* 128 */, /* 129 */, /* 130 */, -/* 131 */ +/* 131 */, +/* 132 */, +/* 133 */, +/* 134 */ /*!***************************************************!*\ !*** ./node_modules/inherits/inherits_browser.js ***! \***************************************************/ @@ -20325,7 +20328,7 @@ if (typeof Object.create === 'function') { /***/ }), -/* 132 */ +/* 135 */ /*!****************************************!*\ !*** ./node_modules/jszip/lib/utf8.js ***! \****************************************/ @@ -20337,8 +20340,8 @@ if (typeof Object.create === 'function') { var utils = __webpack_require__(/*! ./utils */ 74); -var support = __webpack_require__(/*! ./support */ 116); -var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 159); +var support = __webpack_require__(/*! ./support */ 119); +var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 164); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 95); /** @@ -20612,7 +20615,9 @@ exports.Utf8EncodeWorker = Utf8EncodeWorker; /***/ }), -/* 133 */ +/* 136 */, +/* 137 */, +/* 138 */ /*!********************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/util.js ***! \********************************************************************/ @@ -21111,8 +21116,9 @@ exports.computeSourceURL = computeSourceURL; /***/ }), -/* 134 */, -/* 135 */ +/* 139 */, +/* 140 */, +/* 141 */ /*!********************************************!*\ !*** ./node_modules/jszip/lib/external.js ***! \********************************************/ @@ -21131,7 +21137,7 @@ var ES6Promise = null; if (typeof Promise !== "undefined") { ES6Promise = Promise; } else { - ES6Promise = __webpack_require__(/*! lie */ 370); + ES6Promise = __webpack_require__(/*! lie */ 378); } /** @@ -21143,7 +21149,7 @@ module.exports = { /***/ }), -/* 136 */ +/* 142 */ /*!***********************************************!*\ !*** ./node_modules/core-util-is/lib/util.js ***! \***********************************************/ @@ -21259,10 +21265,10 @@ function objectToString(o) { return Object.prototype.toString.call(o); } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 137).Buffer)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 143).Buffer)) /***/ }), -/* 137 */ +/* 143 */ /*!**************************************!*\ !*** ./node_modules/buffer/index.js ***! \**************************************/ @@ -21281,9 +21287,9 @@ function objectToString(o) { -var base64 = __webpack_require__(/*! base64-js */ 394) -var ieee754 = __webpack_require__(/*! ieee754 */ 393) -var isArray = __webpack_require__(/*! isarray */ 276) +var base64 = __webpack_require__(/*! base64-js */ 402) +var ieee754 = __webpack_require__(/*! ieee754 */ 401) +var isArray = __webpack_require__(/*! isarray */ 284) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -23061,10 +23067,10 @@ function isnan (val) { return val !== val // eslint-disable-line no-self-compare } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106))) /***/ }), -/* 138 */ +/* 144 */ /*!*****************************************!*\ !*** ./node_modules/process/browser.js ***! \*****************************************/ @@ -23259,12 +23265,6 @@ process.umask = function() { return 0; }; /***/ }), -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, /* 145 */, /* 146 */, /* 147 */, @@ -23274,7 +23274,12 @@ process.umask = function() { return 0; }; /* 151 */, /* 152 */, /* 153 */, -/* 154 */ +/* 154 */, +/* 155 */, +/* 156 */, +/* 157 */, +/* 158 */, +/* 159 */ /*!*****************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/proxify.js ***! \*****************************************************/ @@ -23282,10 +23287,10 @@ process.umask = function() { return 0; }; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var config = __webpack_require__(/*! ../config */ 119); -var flag = __webpack_require__(/*! ./flag */ 104); -var getProperties = __webpack_require__(/*! ./getProperties */ 238); -var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 156); +var config = __webpack_require__(/*! ../config */ 122); +var flag = __webpack_require__(/*! ./flag */ 105); +var getProperties = __webpack_require__(/*! ./getProperties */ 246); +var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 161); /*! * Chai - proxify utility @@ -23410,7 +23415,7 @@ function stringDistance(strA, strB, memo) { /***/ }), -/* 155 */ +/* 160 */ /*!************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addLengthGuard.js ***! \************************************************************/ @@ -23418,7 +23423,7 @@ function stringDistance(strA, strB, memo) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var config = __webpack_require__(/*! ../config */ 119); +var config = __webpack_require__(/*! ../config */ 122); var fnLengthDesc = Object.getOwnPropertyDescriptor(function () {}, 'length'); @@ -23483,7 +23488,7 @@ module.exports = function addLengthGuard (fn, assertionName, isChainable) { /***/ }), -/* 156 */ +/* 161 */ /*!************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/isProxyEnabled.js ***! \************************************************************/ @@ -23491,7 +23496,7 @@ module.exports = function addLengthGuard (fn, assertionName, isChainable) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var config = __webpack_require__(/*! ../config */ 119); +var config = __webpack_require__(/*! ../config */ 122); /*! * Chai - isProxyEnabled helper @@ -23518,7 +23523,7 @@ module.exports = function isProxyEnabled() { /***/ }), -/* 157 */ +/* 162 */ /*!*****************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/inspect.js ***! \*****************************************************/ @@ -23529,10 +23534,10 @@ module.exports = function isProxyEnabled() { // This is (almost) directly from Node.js utils // https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js -var getName = __webpack_require__(/*! get-func-name */ 239); -var getProperties = __webpack_require__(/*! ./getProperties */ 238); -var getEnumerableProperties = __webpack_require__(/*! ./getEnumerableProperties */ 324); -var config = __webpack_require__(/*! ../config */ 119); +var getName = __webpack_require__(/*! get-func-name */ 247); +var getProperties = __webpack_require__(/*! ./getProperties */ 246); +var getEnumerableProperties = __webpack_require__(/*! ./getEnumerableProperties */ 332); +var config = __webpack_require__(/*! ../config */ 122); module.exports = inspect; @@ -23912,7 +23917,7 @@ function objectToString(o) { /***/ }), -/* 158 */ +/* 163 */ /*!****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_global.js ***! \****************************************************************************/ @@ -23926,7 +23931,7 @@ var global = module.exports = typeof window != 'undefined' && window.Math == Mat if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef /***/ }), -/* 159 */ +/* 164 */ /*!***********************************************!*\ !*** ./node_modules/jszip/lib/nodejsUtils.js ***! \***********************************************/ @@ -23988,10 +23993,10 @@ module.exports = { } }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 137).Buffer)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 143).Buffer)) /***/ }), -/* 160 */ +/* 165 */ /*!*******************************************!*\ !*** ./node_modules/safe-buffer/index.js ***! \*******************************************/ @@ -24000,7 +24005,7 @@ module.exports = { /***/ (function(module, exports, __webpack_require__) { /* eslint-disable node/no-deprecated-api */ -var buffer = __webpack_require__(/*! buffer */ 137) +var buffer = __webpack_require__(/*! buffer */ 143) var Buffer = buffer.Buffer // alternative to using Object.keys for old browsers @@ -24064,7 +24069,7 @@ SafeBuffer.allocUnsafeSlow = function (size) { /***/ }), -/* 161 */ +/* 166 */ /*!****************************************************!*\ !*** ./node_modules/process-nextick-args/index.js ***! \****************************************************/ @@ -24118,10 +24123,10 @@ function nextTick(fn, arg1, arg2, arg3) { } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ 138))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ 144))) /***/ }), -/* 162 */ +/* 167 */ /*!*****************************************!*\ !*** ./node_modules/acorn/dist/walk.js ***! \*****************************************/ @@ -24567,7 +24572,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); /***/ }), -/* 163 */ +/* 168 */ /*!************************************************!*\ !*** ./node_modules/sprintf-js/src/sprintf.js ***! \************************************************/ @@ -24797,7 +24802,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ /***/ }), -/* 164 */ +/* 169 */ /*!**********************************************!*\ !*** ./node_modules/file-saver/FileSaver.js ***! \**********************************************/ @@ -24988,7 +24993,7 @@ var saveAs = saveAs || (function(view) { if (typeof module !== "undefined" && module.exports) { module.exports.saveAs = saveAs; -} else if (("function" !== "undefined" && __webpack_require__(/*! !webpack amd define */ 225) !== null) && (__webpack_require__(/*! !webpack amd options */ 347) !== null)) { +} else if (("function" !== "undefined" && __webpack_require__(/*! !webpack amd define */ 234) !== null) && (__webpack_require__(/*! !webpack amd options */ 355) !== null)) { !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return saveAs; }).call(exports, __webpack_require__, exports, module), @@ -24997,7 +25002,7 @@ if (typeof module !== "undefined" && module.exports) { /***/ }), -/* 165 */ +/* 170 */ /*!*****************************************!*\ !*** ./node_modules/jszip/lib/index.js ***! \*****************************************/ @@ -25043,10 +25048,10 @@ function JSZip() { return newObj; }; } -JSZip.prototype = __webpack_require__(/*! ./object */ 395); -JSZip.prototype.loadAsync = __webpack_require__(/*! ./load */ 352); -JSZip.support = __webpack_require__(/*! ./support */ 116); -JSZip.defaults = __webpack_require__(/*! ./defaults */ 261); +JSZip.prototype = __webpack_require__(/*! ./object */ 403); +JSZip.prototype.loadAsync = __webpack_require__(/*! ./load */ 360); +JSZip.support = __webpack_require__(/*! ./support */ 119); +JSZip.defaults = __webpack_require__(/*! ./defaults */ 269); // TODO find a better way to handle this version, // a require('package.json').version doesn't work with webpack, see #327 @@ -25056,12 +25061,12 @@ JSZip.loadAsync = function (content, options) { return new JSZip().loadAsync(content, options); }; -JSZip.external = __webpack_require__(/*! ./external */ 135); +JSZip.external = __webpack_require__(/*! ./external */ 141); module.exports = JSZip; /***/ }), -/* 166 */ +/* 171 */ /*!************************************************!*\ !*** ./node_modules/autosize/dist/autosize.js ***! \************************************************/ @@ -25354,7 +25359,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }); /***/ }), -/* 167 */ +/* 172 */ /*!*************************************************!*\ !*** ./node_modules/type-detect/type-detect.js ***! \*************************************************/ @@ -25750,14 +25755,9 @@ return typeDetect; }))); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106))) /***/ }), -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, /* 173 */, /* 174 */, /* 175 */, @@ -25795,7 +25795,16 @@ return typeDetect; /* 207 */, /* 208 */, /* 209 */, -/* 210 */ +/* 210 */, +/* 211 */, +/* 212 */, +/* 213 */, +/* 214 */, +/* 215 */, +/* 216 */, +/* 217 */, +/* 218 */, +/* 219 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/messages.js ***! \************************************************/ @@ -25839,7 +25848,7 @@ module.exports = { /***/ }), -/* 211 */ +/* 220 */ /*!*****************************************!*\ !*** ./node_modules/jszip/lib/crc32.js ***! \*****************************************/ @@ -25928,7 +25937,7 @@ module.exports = function crc32wrapper(input, crc) { /***/ }), -/* 212 */ +/* 221 */ /*!****************************************************!*\ !*** ./node_modules/jszip/lib/compressedObject.js ***! \****************************************************/ @@ -25939,11 +25948,11 @@ module.exports = function crc32wrapper(input, crc) { "use strict"; -var external = __webpack_require__(/*! ./external */ 135); -var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 260); -var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 259); -var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 258); -var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 259); +var external = __webpack_require__(/*! ./external */ 141); +var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 268); +var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 267); +var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 266); +var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 267); /** * Represent a compressed object, with everything needed to decompress it. @@ -26015,7 +26024,7 @@ module.exports = CompressedObject; /***/ }), -/* 213 */ +/* 222 */ /*!*********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js ***! \*********************************************************************************/ @@ -26024,12 +26033,12 @@ module.exports = CompressedObject; /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(/*! ./_fails */ 264)(function(){ +module.exports = !__webpack_require__(/*! ./_fails */ 272)(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), -/* 214 */ +/* 223 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js ***! \*******************************************************************************/ @@ -26042,7 +26051,7 @@ module.exports = function(it){ }; /***/ }), -/* 215 */ +/* 224 */ /*!**************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! \**************************************************************/ @@ -26080,7 +26089,7 @@ module.exports = function(it){ /**/ -var processNextTick = __webpack_require__(/*! process-nextick-args */ 161).nextTick; +var processNextTick = __webpack_require__(/*! process-nextick-args */ 166).nextTick; /**/ module.exports = Writable; @@ -26117,23 +26126,23 @@ var Duplex; Writable.WritableState = WritableState; /**/ -var util = __webpack_require__(/*! core-util-is */ 136); -util.inherits = __webpack_require__(/*! inherits */ 131); +var util = __webpack_require__(/*! core-util-is */ 142); +util.inherits = __webpack_require__(/*! inherits */ 134); /**/ /**/ var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ 390) + deprecate: __webpack_require__(/*! util-deprecate */ 398) }; /**/ /**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ 273); +var Stream = __webpack_require__(/*! ./internal/streams/stream */ 281); /**/ /**/ -var Buffer = __webpack_require__(/*! safe-buffer */ 160).Buffer; +var Buffer = __webpack_require__(/*! safe-buffer */ 165).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); @@ -26144,14 +26153,14 @@ function _isUint8Array(obj) { /**/ -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 270); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 278); util.inherits(Writable, Stream); function nop() {} function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 121); + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 124); options = options || {}; @@ -26301,7 +26310,7 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot } function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 121); + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 124); // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` @@ -26728,10 +26737,10 @@ Writable.prototype._destroy = function (err, cb) { this.end(); cb(err); }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ 138), __webpack_require__(/*! ./../../timers-browserify/main.js */ 278).setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ 144), __webpack_require__(/*! ./../../timers-browserify/main.js */ 286).setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 106))) /***/ }), -/* 216 */ +/* 225 */ /*!**********************************************************!*\ !*** ./node_modules/readable-stream/readable-browser.js ***! \**********************************************************/ @@ -26739,17 +26748,17 @@ Writable.prototype._destroy = function (err, cb) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ 274); +exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ 282); exports.Stream = exports; exports.Readable = exports; -exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 215); -exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 121); -exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 268); -exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 389); +exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 224); +exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 124); +exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 276); +exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 397); /***/ }), -/* 217 */ +/* 226 */ /*!***************************************!*\ !*** ./node_modules/events/events.js ***! \***************************************/ @@ -27062,11 +27071,11 @@ function isUndefined(arg) { /***/ }), -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */ +/* 227 */, +/* 228 */, +/* 229 */, +/* 230 */, +/* 231 */ /*!*************************************************!*\ !*** ./node_modules/brace/worker/javascript.js ***! \*************************************************/ @@ -27078,7 +27087,7 @@ module.exports.id = 'ace/mode/javascript_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire=\"function\"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error(\"Cannot find module '\"+name+\"'\");throw err.code=\"MODULE_NOT_FOUND\",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire=\"function\"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({\"/node_modules/browserify/node_modules/events/events.js\":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return\"function\"==typeof arg}function isNumber(arg){return\"number\"==typeof arg}function isObject(arg){return\"object\"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError(\"n must be a positive number\");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),\"error\"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified \"error\" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError(\"listener must be a function\");if(this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),\"function\"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError(\"listener must be a function\");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit(\"removeListener\",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit(\"removeListener\",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)\"removeListener\"!==key&&this.removeAllListeners(key);return this.removeAllListeners(\"removeListener\"),this._events={},this\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],\"/node_modules/jshint/data/ascii-identifier-data.js\":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],\"/node_modules/jshint/lodash.js\":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return\"function\"==typeof value||!1}function baseToString(value){return\"string\"==typeof value?value:null==value?\"\":value+\"\"}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&\"object\"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return\"function\"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:\"object\"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return\"function\"!=valType&&\"object\"!=valType&&\"function\"!=othType&&\"object\"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,\"__wrapped__\"),othWrapped=othIsObj&&hasOwnProperty.call(other,\"__wrapped__\");if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+\"\";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+\"\";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if(\"number\"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if(\"function\"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for(\"function\"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer=\"function\"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return\"function\"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+\"\"}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor=\"constructor\"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&\"constructor\"in object&&\"constructor\"in other&&!(\"function\"==typeof objCtor&&objCtor instanceof objCtor&&\"function\"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&\"string\"==typeof array[0]&&hasOwnProperty.call(array,\"index\")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return\"function\"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if(\"number\"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq=\"string\"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if(\"string\"==type&&reIsPlainProp.test(value)||\"number\"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return\"number\"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,\"constructor\")&&(Ctor=value.constructor,\"function\"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,\"$1\"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if(\"number\"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&\"number\"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex=\"number\"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,\"string\"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),(\"function\"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if(\"function\"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&\"boolean\"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:\"function\"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer=\"function\"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return\"function\"==type||!!value&&\"object\"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return\"number\"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return\"string\"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto=\"function\"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+\"\";for(var key in object)skipIndexes&&isIndex(key,length)||\"constructor\"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,\"\\\\$&\"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION=\"3.7.0\",FUNC_ERROR_TEXT=\"Expected a function\",argsTag=\"[object Arguments]\",arrayTag=\"[object Array]\",boolTag=\"[object Boolean]\",dateTag=\"[object Date]\",errorTag=\"[object Error]\",funcTag=\"[object Function]\",mapTag=\"[object Map]\",numberTag=\"[object Number]\",objectTag=\"[object Object]\",regexpTag=\"[object RegExp]\",setTag=\"[object Set]\",stringTag=\"[object String]\",weakMapTag=\"[object WeakMap]\",arrayBufferTag=\"[object ArrayBuffer]\",float32Tag=\"[object Float32Array]\",float64Tag=\"[object Float64Array]\",int8Tag=\"[object Int8Array]\",int16Tag=\"[object Int16Array]\",int32Tag=\"[object Int32Array]\",uint8Tag=\"[object Uint8Array]\",uint8ClampedTag=\"[object Uint8ClampedArray]\",uint16Tag=\"[object Uint16Array]\",uint32Tag=\"[object Uint32Array]\",reIsDeepProp=/\\.|\\[(?:[^[\\]]+|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,reIsPlainProp=/^\\w*$/,rePropName=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,reRegExpChars=/[.*+?^${}()|[\\]\\/\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\(\\\\)?/g,reFlags=/\\w*$/,reIsHostCtor=/^\\[object .+?Constructor\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={\"function\":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&\"object\"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp(\"^\"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),\"xo\")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\bthis\\b/.test(function(){return this}),support.funcNames=\"string\"==typeof Function.name;try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty(\"length\"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return\"function\"==typeof Ctor&&Ctor.prototype===object||\"function\"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\n}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],\"/node_modules/jshint/src/jshint.js\":[function(_dereq_,module,exports){var _=_dereq_(\"../lodash\"),events=_dereq_(\"events\"),vars=_dereq_(\"./vars.js\"),messages=_dereq_(\"./messages.js\"),Lexer=_dereq_(\"./lex.js\").Lexer,reg=_dereq_(\"./reg.js\"),state=_dereq_(\"./state.js\").state,style=_dereq_(\"./style.js\"),options=_dereq_(\"./options.js\"),scopeManager=_dereq_(\"./scope-manager.js\"),JSHINT=function(){\"use strict\";function checkOption(name,t){return name=name.trim(),/^[+-]W\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||\"jslint\"===t.type||_.has(options.removed,name)?!0:(error(\"E001\",t,name),!1)}function isString(obj){return\"[object String]\"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\{([^{}]*)\\}/g,function(a,b){var r=data[b];return\"string\"==typeof r||\"number\"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict=\"global\"),state.inES6()||warning(\"W134\",state.tokens.next,\"module\",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict=\"global\"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:\"JSHintError\",line:line,character:chr,message:message+\" (\"+percentage+\"% scanned).\",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\d{3}/.test(code)?msg=messages.errors[code]:/I\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},\"(end)\"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:\"(error)\",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||\"\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit(\"E043\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\"(internal)\",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],predef={};if(\"globals\"===nt.type){body.forEach(function(g,idx){g=g.split(\":\");var key=(g[0]||\"\").trim(),val=(g[1]||\"\").trim();if(\"-\"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error(\"E002\",nt),void 0}\"-\"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]=\"true\"===val}),combine(predefined,predef);for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}\"exported\"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error(\"E002\",nt),void 0}state.funct[\"(scope)\"].addExported(e)}),\"members\"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||'\"'!==ch1&&\"'\"!==ch1||(m=m.substr(1,m.length-2).replace('\\\\\"','\"')),membersOnly[m]=!1}));var numvals=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];(\"jshint\"===nt.type||\"jslint\"===nt.type)&&(body.forEach(function(g){g=g.split(\":\");var key=(g[0]||\"\").trim(),val=(g[1]||\"\").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if(\"false\"!==val){if(val=+val,\"number\"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error(\"E032\",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]=\"indent\"===key?4:!1;else{if(\"validthis\"===key)return state.funct[\"(global)\"]?void error(\"E009\"):\"true\"!==val&&\"false\"!==val?void error(\"E002\",nt):(state.option.validthis=\"true\"===val,void 0);if(\"quotmark\"!==key)if(\"shadow\"!==key)if(\"unused\"!==key)if(\"latedef\"!==key)if(\"ignore\"!==key)if(\"strict\"!==key){\"module\"===key&&(hasParsedCode(state.funct)||error(\"E055\",state.tokens.next,\"module\"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if(\"esversion\"===key){switch(val){case\"5\":state.inES5(!0)&&warning(\"I003\");case\"3\":case\"6\":state.option.moz=!1,state.option.esversion=+val;break;case\"2015\":state.option.moz=!1,state.option.esversion=6;break;default:error(\"E002\",nt)}return hasParsedCode(state.funct)||error(\"E055\",state.tokens.next,\"esversion\"),void 0}var match=/^([+-])(W\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]=\"-\"===match[1],void 0;var tn;return\"true\"===val||\"false\"===val?(\"jslint\"===nt.type?(tn=options.renamed[key]||key,state.option[tn]=\"true\"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]=\"true\"===val,\"newcap\"===key&&(state.option[\"(explicitNewcap)\"]=!0),void 0):(error(\"E002\",nt),void 0)}switch(val){case\"true\":state.option.moz=!1,state.option.esversion=esversions[key];break;case\"false\":state.option.moz||(state.option.esversion=5);break;default:error(\"E002\",nt)}}else switch(val){case\"true\":state.option.strict=!0;break;case\"false\":state.option.strict=!1;break;case\"func\":case\"global\":case\"implied\":state.option.strict=val;break;default:error(\"E002\",nt)}else switch(val){case\"line\":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.latedef=!0;break;case\"false\":state.option.latedef=!1;break;case\"nofunc\":state.option.latedef=\"nofunc\";break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.unused=!0;break;case\"false\":state.option.unused=!1;break;case\"vars\":case\"strict\":state.option.unused=val;break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.shadow=!0;break;case\"outer\":state.option.shadow=\"outer\";break;case\"false\":case\"inner\":state.option.shadow=\"inner\";break;default:error(\"E002\",nt)}else switch(val){case\"true\":case\"false\":state.option.quotmark=\"true\"===val;break;case\"double\":case\"single\":state.option.quotmark=val;break;default:error(\"E002\",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||\"(end)\"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while(\"(endline)\"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case\"(number)\":\".\"===state.tokens.next.id&&warning(\"W005\",state.tokens.curr);break;case\"-\":(\"-\"===state.tokens.next.id||\"--\"===state.tokens.next.id)&&warning(\"W006\");break;case\"+\":(\"+\"===state.tokens.next.id||\"++\"===state.tokens.next.id)&&warning(\"W007\")}for(id&&state.tokens.next.id!==id&&(t?\"(end)\"===state.tokens.next.id?error(\"E019\",t,t.id):error(\"E020\",state.tokens.next,id,t.id,t.line,state.tokens.next.value):(\"(identifier)\"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning(\"W116\",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit(\"E041\",state.tokens.curr.line),\"(end)\"===state.tokens.next.id||\"(error)\"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)\"falls through\"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if(\"(endline)\"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return\";\"===next.id||\"}\"===next.id||\":\"===next.id?!0:isInfix(next)===isInfix(curr)||\"yield\"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&\"unary\"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||\"let\"!==state.tokens.next.value||\"(\"!==peek(0).value||(state.inMoz()||warning(\"W118\",state.tokens.next,\"let expressions\"),isLetExpr=!0,state.funct[\"(scope)\"].stack(),advance(\"let\"),advance(\"(\"),state.tokens.prev.fud(),advance(\")\")),\"(end)\"===state.tokens.next.id&&error(\"E006\",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains([\"]\",\")\"],state.tokens.prev.id)&&_.contains([\"[\",\"(\"],state.tokens.curr.id);if(isDangerous&&warning(\"W014\",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct[\"(verb)\"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error(\"E030\",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||\"(template)\"===state.tokens.next.type)&&!isEndOfExpr();)isArray=\"Array\"===state.tokens.curr.value,isObject=\"Object\"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&(\"new\"!==left.value||left.first&&left.first.value&&\".\"===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&\"(\"===state.tokens.curr.id&&\")\"===state.tokens.next.id&&warning(\"W009\",state.tokens.curr),isObject&&\"(\"===state.tokens.curr.id&&\")\"===state.tokens.next.id&&warning(\"W010\",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error(\"E033\",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct[\"(scope)\"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,state.option.laxbreak||left.line===startLine(right)||warning(\"W014\",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning(\"E022\",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning(\"I001\"),comma.first=!1),warning(\"W014\",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(\",\")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case\"break\":case\"case\":case\"catch\":case\"continue\":case\"default\":case\"do\":case\"else\":case\"finally\":case\"for\":case\"if\":case\"in\":case\"instanceof\":case\"return\":case\"switch\":case\"throw\":case\"try\":case\"var\":case\"let\":case\"while\":case\"with\":return error(\"E024\",state.tokens.next,state.tokens.next.value),!1}if(\"(punctuator)\"===state.tokens.next.type)switch(state.tokens.next.value){case\"}\":case\"]\":case\",\":if(opts.allowTrailing)return!0;case\")\":return error(\"E024\",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&\"object\"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\"a\"&&\"z\">=c||c>=\"A\"&&\"Z\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\"function\"==typeof f?f:function(){return this.arity=\"unary\",this.right=expression(150),(\"++\"===this.id||\"--\"===this.id)&&(state.option.plusplus?warning(\"W016\",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||\".\"===this.right.id||\"[\"===this.right.id||warning(\"W017\",this),this.right&&this.right.isMetaProperty?error(\"E031\",this):this.right&&this.right.identifier&&state.funct[\"(scope)\"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return\"function\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),\"in\"!==s&&\"instanceof\"!==s||\"!\"!==left.id||warning(\"W018\",left,\"!\"),\"function\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:\"arrow\",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,\"NaN\")||isIdentifier(right,\"NaN\")?warning(\"W019\",this):f&&f.apply(this,[left,right]),left&&right||quit(\"E041\",state.tokens.curr.line),\"!\"===left.id&&warning(\"W018\",left,\"!\"),\"!\"===right.id&&warning(\"W018\",right,\"!\"),this},x}function isPoorRelation(node){return node&&(\"(number)\"===node.type&&0===+node.value||\"(string)\"===node.type&&\"\"===node.value||\"null\"===node.type&&!state.option.eqnull||\"true\"===node.type||\"false\"===node.type||\"undefined\"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,\"(identifier)\"===right.type&&\"typeof\"===right.value&&\"(string)\"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return\"this\"===left.type&&null===state.funct[\"(context)\"]?isGlobal=!0:\"(identifier)\"===left.type&&(state.option.node&&\"global\"===left.value?isGlobal=!0:!state.option.browser||\"window\"!==left.value&&\"document\"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return\"object\"==typeof obj?\"prototype\"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&\"object\"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=[\"Array\",\"ArrayBuffer\",\"Boolean\",\"Collator\",\"DataView\",\"Date\",\"DateTimeFormat\",\"Error\",\"EvalError\",\"Float32Array\",\"Float64Array\",\"Function\",\"Infinity\",\"Intl\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Iterator\",\"Number\",\"NumberFormat\",\"Object\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"StopIteration\",\"String\",\"SyntaxError\",\"TypeError\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"URIError\"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning(\"W121\",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct[\"(scope)\"].block.reassign(left.value,left),\".\"===left.id?((!left.left||\"arguments\"===left.left.value&&!state.isStrict())&&warning(\"E031\",assignToken),state.nameStack.set(state.tokens.prev),!0):\"{\"===left.id||\"[\"===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEach(function(t){t.id&&state.funct[\"(scope)\"].block.modify(t.id,t.token)}):\"{\"!==left.id&&left.left?\"arguments\"!==left.left.value||state.isStrict()||warning(\"E031\",assignToken):warning(\"E031\",assignToken),\"[\"===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error(\"E031\",assignToken),!0):left.identifier&&!isReserved(left)?(\"exception\"===state.funct[\"(scope)\"].labeltype(left.value)&&warning(\"W022\",left),state.nameStack.set(left),!0):(left===state.syntax[\"function\"]&&warning(\"W023\",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,\"function\"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error(\"E031\",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\"function\"==typeof f?f:function(left){return state.option.bitwise&&warning(\"W016\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning(\"W016\",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error(\"E031\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning(\"W016\",this,this.id):left.identifier&&!isReserved(left)||\".\"===left.id||\"[\"===left.id||warning(\"W017\",this),left.isMetaProperty?error(\"E031\",this):left&&left.identifier&&state.funct[\"(scope)\"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&\"undefined\"===val?val:(warning(\"W024\",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if(\"...\"===state.tokens.next.value){if(state.inES6(!0)||warning(\"W119\",state.tokens.next,\"spread/rest operator\",\"6\"),advance(),checkPunctuator(state.tokens.next,\"...\"))for(warning(\"E024\",state.tokens.next,\"...\");checkPunctuator(state.tokens.next,\"...\");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning(\"E024\",state.tokens.curr,\"...\"),void 0)}error(\"E030\",state.tokens.next,state.tokens.next.value),\";\"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(\";\"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while(\"(end)\"!==t.id&&\"(comment)\"===t.id);if(t.reach)return;if(\"(endline)\"!==t.id){if(\"function\"===t.id){state.option.latedef===!0&&warning(\"W026\",t);break}warning(\"W027\",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(\";\"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&\"(end)\"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,\"}\");sameLine&&!blockEnd?errorAt(\"E058\",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt(\"W033\",state.tokens.curr.line,state.tokens.curr.character)}else advance(\";\")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(\";\"===t.id)return advance(\";\"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&\":\"===peek().id&&(warning(\"W024\",t,t.id),res=!1),t.identifier&&!res&&\":\"===peek().id&&(advance(),advance(\":\"),hasOwnScope=!0,state.funct[\"(scope)\"].stack(),state.funct[\"(scope)\"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||\"{\"===state.tokens.next.value||warning(\"W028\",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),\"{\"===t.id){var iscase=\"case\"===state.funct[\"(verb)\"]&&\":\"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&\"function\"===r.value||\"(punctuator)\"===r.type&&r.left&&r.left.identifier&&\"function\"===r.left.value||state.isStrict()||\"global\"!==state.option.strict||warning(\"E007\"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&\"(\"===r.id&&\"new\"===r.left.id&&warning(\"W031\",t):warning(\"W030\",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct[\"(scope)\"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&\"(end)\"!==state.tokens.next.id;)\";\"===state.tokens.next.id?(p=peek(),(!p||\"(\"!==p.id&&\"[\"!==p.id)&&warning(\"W032\"),advance(\";\")):a.push(statement());return a}function directives(){for(var i,p,pn;\"(string)\"===state.tokens.next.id;){if(p=peek(0),\"(endline)\"===p.id){i=1;do pn=peek(i++);while(\"(endline)\"===pn.id);if(\";\"===pn.id)p=pn;else{if(\"[\"===pn.value||\".\"===pn.value)break;state.option.asi&&\"(\"!==pn.value||warning(\"W033\",state.tokens.next)}}else{if(\".\"===p.id||\"[\"===p.id)break;\";\"!==p.id&&warning(\"W033\",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||\"use strict\"===directive&&\"implied\"===state.option.strict)&&warning(\"W034\",state.tokens.curr,directive),state.directive[directive]=!0,\";\"===p.id&&advance(\";\")}state.isStrict()&&(state.option[\"(explicitNewcap)\"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct[\"(metrics)\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\"{\"===state.tokens.next.id){if(advance(\"{\"),state.funct[\"(scope)\"].stack(),line=state.tokens.curr.line,\"}\"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||state.isStrict()||warning(\"E007\"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance(\"}\",t),isfunc&&(state.funct[\"(scope)\"].validateParams(),m&&(state.directive=m)),state.funct[\"(scope)\"].unstack(),indent=old_indent}else if(ordinary)state.funct[\"(noblockscopedvar)\"]=\"for\"!==state.tokens.next.id,state.funct[\"(scope)\"].stack(),(!stmt||state.option.curly)&&warning(\"W116\",state.tokens.next,\"{\",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct[\"(scope)\"].unstack(),delete state.funct[\"(noblockscopedvar)\"];else if(isfunc){if(state.funct[\"(scope)\"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error(\"W118\",state.tokens.curr,\"function closure expressions\"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||state.isStrict()||warning(\"E007\")),state.funct[\"(scope)\"].unstack()}else error(\"E021\",state.tokens.next,\"{\",state.tokens.next.value);switch(state.funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":if(iscase)break;default:state.funct[\"(verb)\"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning(\"W035\",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\"boolean\"!=typeof membersOnly[m]&&warning(\"W036\",state.tokens.curr,m),\"number\"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct[\"(comparray)\"].stack();var reversed=!1;return\"for\"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning(\"W116\",state.tokens.next,\"for\",state.tokens.next.value),state.funct[\"(comparray)\"].setState(\"use\"),res.right=expression(10)),advance(\"for\"),\"each\"===state.tokens.next.value&&(advance(\"each\"),state.inMoz()||warning(\"W118\",state.tokens.curr,\"for each\")),advance(\"(\"),state.funct[\"(comparray)\"].setState(\"define\"),res.left=expression(130),_.contains([\"in\",\"of\"],state.tokens.next.value)?advance():error(\"E045\",state.tokens.curr),state.funct[\"(comparray)\"].setState(\"generate\"),expression(10),advance(\")\"),\"if\"===state.tokens.next.value&&(advance(\"if\"),advance(\"(\"),state.funct[\"(comparray)\"].setState(\"filter\"),res.filter=expression(10),advance(\")\")),reversed||(state.funct[\"(comparray)\"].setState(\"use\"),res.right=expression(10)),advance(\"]\"),state.funct[\"(comparray)\"].unstack(),res}function isMethod(){return state.funct[\"(statement)\"]&&\"class\"===state.funct[\"(statement)\"].type||state.funct[\"(context)\"]&&\"class\"===state.funct[\"(context)\"][\"(verb)\"]}function isPropertyName(token){return token.identifier||\"(string)\"===token.id||\"(number)\"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return\"object\"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?\"object\"==typeof id&&(\"(string)\"===id.id||\"(identifier)\"===id.id?id=id.value:\"(number)\"===id.id&&(id=\"\"+id.value)):\"(string)\"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):\"(number)\"===state.tokens.next.id&&(id=\"\"+state.tokens.next.value,preserve||advance()),\"hasOwnProperty\"===id&&warning(\"W001\"),id}function functionparams(options){function addParam(addParamArgs){state.funct[\"(scope)\"].addParam.apply(state.funct[\"(scope)\"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct[\"(scope)\"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance(\"(\"),\")\"===state.tokens.next.id)return advance(\")\"),void 0;for(;;){arity++;var currentParams=[];if(_.contains([\"{\",\"[\"],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,\"...\")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[\",\",\")\"]);)advance();if(pastDefault&&\"=\"!==state.tokens.next.id&&error(\"W138\",state.tokens.current),\"=\"===state.tokens.next.id&&(state.inES6()||warning(\"W119\",state.tokens.next,\"default parameters\",\"6\"),advance(\"=\"),pastDefault=!0,expression(10)),currentParams.forEach(addParam),\",\"!==state.tokens.next.id)return advance(\")\",next),{arity:arity,params:paramsIds};pastRest&&warning(\"W131\",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={\"(name)\":name,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(properties)\":{},\"(catch)\":!1,\"(global)\":!1,\"(line)\":null,\"(character)\":null,\"(metrics)\":null,\"(statement)\":null,\"(context)\":null,\"(scope)\":null,\"(comparray)\":null,\"(generator)\":null,\"(arrow)\":null,\"(params)\":null};return token&&_.extend(funct,{\"(line)\":token.line,\"(character)\":token.character,\"(metrics)\":createMetrics(token)}),_.extend(funct,overwrites),funct[\"(context)\"]&&(funct[\"(scope)\"]=funct[\"(context)\"][\"(scope)\"],funct[\"(comparray)\"]=funct[\"(context)\"][\"(comparray)\"]),funct}function isFunctor(token){return\"(scope)\"in token}function hasParsedCode(funct){return funct[\"(global)\"]&&!funct[\"(verb)\"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:\"(template)\",type:\"(template)\",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.option,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator=\"generator\"===options.type,isArrow=\"arrow\"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{\"(statement)\":statement,\"(context)\":state.funct,\"(arrow)\":isArrow,\"(generator)\":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct[\"(scope)\"].stack(\"functionouter\");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct[\"(scope)\"].block.add(internallyAccessibleName,classExprBinding?\"class\":\"function\",state.tokens.curr,!1),state.funct[\"(scope)\"].stack(\"functionparams\");var paramsInfo=functionparams(options);return paramsInfo?(state.funct[\"(params)\"]=paramsInfo.params,state.funct[\"(metrics)\"].arity=paramsInfo.arity,state.funct[\"(metrics)\"].verifyMaxParametersPerFunction()):state.funct[\"(metrics)\"].arity=0,isArrow&&(state.inES6(!0)||warning(\"W119\",state.tokens.curr,\"arrow function syntax (=>)\",\"6\"),options.loneArg||advance(\"=>\")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&\"yielded\"!==state.funct[\"(generator)\"]&&warning(\"W124\",state.tokens.curr),state.funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),state.funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),state.funct[\"(unusedOption)\"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct[\"(last)\"]=state.tokens.curr.line,state.funct[\"(lastcharacter)\"]=state.tokens.curr.character,state.funct[\"(scope)\"].unstack(),state.funct[\"(scope)\"].unstack(),state.funct=state.funct[\"(context)\"],ignoreLoopFunc||state.option.loopfunc||!state.funct[\"(loopage)\"]||f[\"(isCapturing)\"]&&warning(\"W083\",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning(\"W071\",functionStartToken,this.statementCount)\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning(\"W072\",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning(\"W073\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning(\"W074\",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct[\"(metrics)\"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,\",\"===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case\"=\":case\"+=\":case\"-=\":case\"*=\":case\"%=\":case\"&=\":case\"|=\":case\"^=\":case\"/=\":paren||state.option.boss||warning(\"W084\")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning(\"W078\",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,\".\")){var left=state.tokens.curr.id;advance(\".\");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error(\"E057\",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning(\"W104\",state.tokens.curr,isAssignment?\"destructuring assignment\":\"destructuring binding\",\"6\"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,[\"[\",\"{\"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,\",\"))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,\"(\")){var is_rest=checkPunctuator(state.tokens.next,\"...\");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning(\"E030\",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance(\"(\"),nextInnerDE(),advance(\")\")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,\"[\")?(advance(\"[\"),expression(10),advance(\"]\"),advance(\":\"),nextInnerDE()):\"(string)\"===state.tokens.next.id||\"(number)\"===state.tokens.next.id?(advance(),advance(\":\"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,\":\")?(advance(\":\"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,\"[\")){openingParsed||advance(\"[\"),checkPunctuator(state.tokens.next,\"]\")&&warning(\"W137\",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,\"]\");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,\",\")&&(warning(\"W130\",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,\"=\")&&(checkPunctuator(state.tokens.prev,\"...\")?advance(\"]\"):advance(\"=\"),\"undefined\"===state.tokens.next.id&&warning(\"W080\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\"]\")||advance(\",\");advance(\"]\")}else if(checkPunctuator(firstToken,\"{\")){for(openingParsed||advance(\"{\"),checkPunctuator(state.tokens.next,\"}\")&&warning(\"W137\",state.tokens.curr);!checkPunctuator(state.tokens.next,\"}\")&&(assignmentProperty(),checkPunctuator(state.tokens.next,\"=\")&&(advance(\"=\"),\"undefined\"===state.tokens.next.id&&warning(\"W080\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\"}\")||(advance(\",\"),!checkPunctuator(state.tokens.next,\"}\"))););advance(\"}\")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning(\"W080\",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet=\"let\"===type,isConst=\"const\"===type;for(state.inES6()||warning(\"W104\",state.tokens.curr,type,\"6\"),isLet&&\"(\"===state.tokens.next.value?(state.inMoz()||warning(\"W118\",state.tokens.next,\"let block\"),advance(\"(\"),state.funct[\"(scope)\"].stack(),letblock=!0):state.funct[\"(noblockscopedvar)\"]&&error(\"E048\",state.tokens.curr,isConst?\"Const\":\"Let\"),statement.first=[];;){var names=[];_.contains([\"{\",\"[\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&\"=\"!==state.tokens.next.id&&warning(\"E012\",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct[\"(scope)\"].block.isGlobal()&&predefined[t.id]===!1&&warning(\"W079\",t.token,t.id),t.id&&!state.funct[\"(noblockscopedvar)\"]&&(state.funct[\"(scope)\"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct[\"(scope)\"].setExported(t.token.value,t.token)));if(\"=\"===state.tokens.next.id&&(advance(\"=\"),prefix||\"undefined\"!==state.tokens.next.id||warning(\"W080\",state.tokens.prev,state.tokens.prev.value),!prefix&&\"=\"===peek(0).id&&state.tokens.next.identifier&&warning(\"W120\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),\",\"!==state.tokens.next.id)break;comma()}return letblock&&(advance(\")\"),block(!0,!0),statement.block=!0,state.funct[\"(scope)\"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning(\"W104\",state.tokens.curr,\"class\",\"6\"),isStatement?(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"class\",token:state.tokens.curr})):state.tokens.next.identifier&&\"extends\"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;\"extends\"===state.tokens.next.value&&(advance(\"extends\"),c.heritage=expression(10)),state.inClassBody=!0,advance(\"{\"),c.body=classbody(c),advance(\"}\"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;\"}\"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,\";\"!==name.id){if(\"*\"===name.id&&(isGenerator=!0,advance(\"*\"),name=state.tokens.next),\"[\"===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning(\"W052\",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&\"static\"===name.value&&(checkPunctuator(state.tokens.next,\"*\")&&(isGenerator=!0,advance(\"*\")),(isPropertyName(state.tokens.next)||\"[\"===state.tokens.next.id)&&(computed=\"[\"===state.tokens.next.id,isStatic=!0,name=state.tokens.next,\"[\"===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||\"get\"!==name.value&&\"set\"!==name.value||(isPropertyName(state.tokens.next)||\"[\"===state.tokens.next.id)&&(computed=\"[\"===state.tokens.next.id,getset=name,name=state.tokens.next,\"[\"===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,\"(\")){for(error(\"E054\",state.tokens.next,state.tokens.next.value);\"}\"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,\"(\");)advance();\"(\"!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):(\"constructor\"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&\"constructor\"===name.value){var propDesc=\"get\"===getset.value?\"class getter method\":\"class setter method\";error(\"E049\",name,propDesc,\"constructor\")}else\"prototype\"===name.value&&error(\"E049\",name,\"class method\",\"prototype\");propertyName(name),doFunction({statement:c,type:isGenerator?\"generator\":null,classExprBinding:c.namedExpr?c.name:null})}else warning(\"W032\"),advance(\";\");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=[\"key\",\"class method\",\"static class method\"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&\"__proto__\"!==name?warning(\"W075\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName=\"get\"===accessorType?\"getterToken\":\"setterToken\",msg=\"\";isClass?(isStatic&&(msg+=\"static \"),msg+=accessorType+\"ter method\"):msg=\"key\",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&\"__proto__\"!==name&&warning(\"W075\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance(\"[\"),state.inES6()||warning(\"W119\",state.tokens.curr,\"computed property names\",\"6\");var value=expression(10);return advance(\"]\"),value}function checkPunctuators(token,values){return\"(punctuator)\"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return\"(punctuator)\"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning(\"W104\",state.tokens.curr,\"destructuring assignment\",\"6\"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance(\"{\"),\"}\"!==state.tokens.next.id)for(;;){if(\"(end)\"===state.tokens.next.id)error(\"E026\",state.tokens.next,t.line);else{if(\"}\"===state.tokens.next.id){warning(\"W094\",state.tokens.curr);break}\",\"===state.tokens.next.id?error(\"E028\",state.tokens.next):\"(string)\"!==state.tokens.next.id&&warning(\"W095\",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning(\"W075\",state.tokens.next,\"key\",state.tokens.next.value):\"__proto__\"===state.tokens.next.value&&!state.option.proto||\"__iterator__\"===state.tokens.next.value&&!state.option.iterator?warning(\"W096\",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(\":\"),jsonValue(),\",\"!==state.tokens.next.id)break;advance(\",\")}advance(\"}\")}function jsonArray(){var t=state.tokens.next;if(advance(\"[\"),\"]\"!==state.tokens.next.id)for(;;){if(\"(end)\"===state.tokens.next.id)error(\"E027\",state.tokens.next,t.line);else{if(\"]\"===state.tokens.next.id){warning(\"W094\",state.tokens.curr);break}\",\"===state.tokens.next.id&&error(\"E028\",state.tokens.next)}if(jsonValue(),\",\"!==state.tokens.next.id)break;advance(\",\")}advance(\"]\")}switch(state.tokens.next.id){case\"{\":jsonObject();break;case\"[\":jsonArray();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":advance();break;case\"-\":advance(\"-\"),advance(\"(number)\");break;default:error(\"E003\",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={\"<\":!0,\"<=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},functionicity=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=[\"xml\",\"unknown\"],typeofValues.es3=[\"undefined\",\"boolean\",\"number\",\"string\",\"function\",\"object\"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat(\"symbol\"),type(\"(number)\",function(){return this}),type(\"(string)\",function(){return this}),state.syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var v=this.value;return\"=>\"===state.tokens.next.id?this:(state.funct[\"(comparray)\"].check(v)||state.funct[\"(scope)\"].block.use(v,state.tokens.curr),this)},led:function(){error(\"E033\",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax[\"(template)\"]=_.extend({type:\"(template)\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax[\"(template middle)\"]=_.extend({type:\"(template middle)\",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\"(template tail)\"]=_.extend({type:\"(template tail)\",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\"(no subst template)\"]=_.extend({type:\"(template)\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type(\"(regexp)\",function(){return this}),delim(\"(endline)\"),delim(\"(begin)\"),delim(\"(end)\").reach=!0,delim(\"(error)\").reach=!0,delim(\"}\").reach=!0,delim(\")\"),delim(\"]\"),delim('\"').reach=!0,delim(\"'\").reach=!0,delim(\";\"),delim(\":\").reach=!0,delim(\"#\"),reserve(\"else\"),reserve(\"case\").reach=!0,reserve(\"catch\"),reserve(\"default\").reach=!0,reserve(\"finally\"),reservevar(\"arguments\",function(x){state.isStrict()&&state.funct[\"(global)\"]&&warning(\"E008\",x)}),reservevar(\"eval\"),reservevar(\"false\"),reservevar(\"Infinity\"),reservevar(\"null\"),reservevar(\"this\",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct[\"(statement)\"]&&state.funct[\"(name)\"].charAt(0)>\"Z\"||state.funct[\"(global)\"])&&warning(\"W040\",x)}),reservevar(\"true\"),reservevar(\"undefined\"),assignop(\"=\",\"assign\",20),assignop(\"+=\",\"assignadd\",20),assignop(\"-=\",\"assignsub\",20),assignop(\"*=\",\"assignmult\",20),assignop(\"/=\",\"assigndiv\",20).nud=function(){error(\"E014\")},assignop(\"%=\",\"assignmod\",20),bitwiseassignop(\"&=\"),bitwiseassignop(\"|=\"),bitwiseassignop(\"^=\"),bitwiseassignop(\"<<=\"),bitwiseassignop(\">>=\"),bitwiseassignop(\">>>=\"),infix(\",\",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning(\"W127\"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),\",\"!==state.tokens.next.value||!comma())break}return that},10,!0),infix(\"?\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(\":\"),that[\"else\"]=expression(10),that},30);var orPrecendence=40;infix(\"||\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix(\"&&\",\"and\",50),bitwise(\"|\",\"bitor\",70),bitwise(\"^\",\"bitxor\",80),bitwise(\"&\",\"bitand\",90),relation(\"==\",function(left,right){var eqnull=state.option.eqnull&&(\"null\"===(left&&left.value)||\"null\"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning(\"W116\",this,\"===\",\"==\");break;case isPoorRelation(left):warning(\"W041\",this,\"===\",left.value);break;case isPoorRelation(right):warning(\"W041\",this,\"===\",right.value);break;case isTypoTypeof(right,left,state):warning(\"W122\",this,right.value);break;case isTypoTypeof(left,right,state):warning(\"W122\",this,left.value)}return this}),relation(\"===\",function(left,right){return isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"!=\",function(left,right){var eqnull=state.option.eqnull&&(\"null\"===(left&&left.value)||\"null\"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning(\"W116\",this,\"!==\",\"!=\")):isPoorRelation(left)?warning(\"W041\",this,\"!==\",left.value):isPoorRelation(right)?warning(\"W041\",this,\"!==\",right.value):isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"!==\",function(left,right){return isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"<\"),relation(\">\"),relation(\"<=\"),relation(\">=\"),bitwise(\"<<\",\"shiftleft\",120),bitwise(\">>\",\"shiftright\",120),bitwise(\">>>\",\"shiftrightunsigned\",120),infix(\"in\",\"in\",120),infix(\"instanceof\",\"instanceof\",120),infix(\"+\",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&\"(string)\"===left.id&&\"(string)\"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning(\"W050\",left),left):that},130),prefix(\"+\",\"num\"),prefix(\"+++\",function(){return warning(\"W007\"),this.arity=\"unary\",this.right=expression(150),this}),infix(\"+++\",function(left){return warning(\"W007\"),this.left=left,this.right=expression(130),this},130),infix(\"-\",\"sub\",130),prefix(\"-\",\"neg\"),prefix(\"---\",function(){return warning(\"W006\"),this.arity=\"unary\",this.right=expression(150),this}),infix(\"---\",function(left){return warning(\"W006\"),this.left=left,this.right=expression(130),this},130),infix(\"*\",\"mult\",140),infix(\"/\",\"div\",140),infix(\"%\",\"mod\",140),suffix(\"++\"),prefix(\"++\",\"preinc\"),state.syntax[\"++\"].exps=!0,suffix(\"--\"),prefix(\"--\",\"predec\"),state.syntax[\"--\"].exps=!0,prefix(\"delete\",function(){var p=expression(10);return p?(\".\"!==p.id&&\"[\"!==p.id&&warning(\"W051\"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix(\"~\",function(){return state.option.bitwise&&warning(\"W016\",this,\"~\"),this.arity=\"unary\",this.right=expression(150),this}),prefix(\"...\",function(){return state.inES6(!0)||warning(\"W119\",this,\"spread/rest operator\",\"6\"),state.tokens.next.identifier||\"(string)\"===state.tokens.next.type||checkPunctuators(state.tokens.next,[\"[\",\"(\"])||error(\"E030\",state.tokens.next,state.tokens.next.value),expression(150),this}),prefix(\"!\",function(){return this.arity=\"unary\",this.right=expression(150),this.right||quit(\"E041\",this.line||0),bang[this.right.id]===!0&&warning(\"W018\",this,\"!\"),this}),prefix(\"typeof\",function(){var p=expression(150);return this.first=this.right=p,p||quit(\"E041\",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix(\"new\",function(){var mp=metaProperty(\"target\",function(){state.inES6(!0)||warning(\"W119\",state.tokens.prev,\"new.target\",\"6\");for(var inFunction,c=state.funct;c&&(inFunction=!c[\"(global)\"],c[\"(arrow)\"]);)c=c[\"(context)\"];inFunction||warning(\"W136\",state.tokens.prev,\"new.target\")});if(mp)return mp;var i,c=expression(155);if(c&&\"function\"!==c.id)if(c.identifier)switch(c[\"new\"]=!0,c.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":warning(\"W053\",state.tokens.prev,c.value);break;case\"Symbol\":state.inES6()&&warning(\"W053\",state.tokens.prev,c.value);break;case\"Function\":state.option.evil||warning(\"W054\");break;case\"Date\":case\"RegExp\":case\"this\":break;default:\"function\"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&(\"A\">i||i>\"Z\")&&!state.funct[\"(scope)\"].isPredefined(c.value)&&warning(\"W055\",state.tokens.curr))}else\".\"!==c.id&&\"[\"!==c.id&&\"(\"!==c.id&&warning(\"W056\",state.tokens.curr);else state.option.supernew||warning(\"W057\",this);return\"(\"===state.tokens.next.id||state.option.supernew||warning(\"W058\",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax[\"new\"].exps=!0,prefix(\"void\").exps=!0,infix(\".\",function(left,that){var m=identifier(!1,!0);return\"string\"==typeof m&&countMember(m),that.left=left,that.right=m,m&&\"hasOwnProperty\"===m&&\"=\"===state.tokens.next.value&&warning(\"W001\"),!left||\"arguments\"!==left.value||\"callee\"!==m&&\"caller\"!==m?state.option.evil||!left||\"document\"!==left.value||\"write\"!==m&&\"writeln\"!==m||warning(\"W060\",left):state.option.noarg?warning(\"W059\",left,m):state.isStrict()&&error(\"E008\"),state.option.evil||\"eval\"!==m&&\"execScript\"!==m||isGlobalEval(left,state)&&warning(\"W061\"),that},160,!0),infix(\"(\",function(left,that){state.option.immed&&left&&!left.immed&&\"function\"===left.id&&warning(\"W062\");var n=0,p=[];if(left&&\"(identifier)\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\"Array Number String Boolean Date Object Error Symbol\".indexOf(left.value)&&(\"Math\"===left.value?warning(\"W063\",left):state.option.newcap&&warning(\"W064\",left)),\")\"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,\",\"===state.tokens.next.id;)comma();return advance(\")\"),\"object\"==typeof left&&(state.inES5()||\"parseInt\"!==left.value||1!==n||warning(\"W065\",state.tokens.curr),state.option.evil||(\"eval\"===left.value||\"Function\"===left.value||\"execScript\"===left.value?(warning(\"W061\",left),p[0]&&\"(string)\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\"(string)\"!==p[0].id||\"setTimeout\"!==left.value&&\"setInterval\"!==left.value?!p[0]||\"(string)\"!==p[0].id||\".\"!==left.value||\"window\"!==left.left.value||\"setTimeout\"!==left.right&&\"setInterval\"!==left.right||(warning(\"W066\",left),addInternalSrc(left,p[0].value)):(warning(\"W066\",left),addInternalSrc(left,p[0].value))),left.identifier||\".\"===left.id||\"[\"===left.id||\"=>\"===left.id||\"(\"===left.id||\"&&\"===left.id||\"||\"===left.id||\"?\"===left.id||state.inES6()&&left[\"(name)\"]||warning(\"W067\",that)),that.left=left,that},155,!0).exps=!0,prefix(\"(\",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do\"(\"===pn.value?parens+=1:\")\"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||\")\"!==pn1.value)&&\";\"!==pn.value&&\"(end)\"!==pn.type);if(\"function\"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),\"=>\"===pn.value)return doFunction({type:\"arrow\",parsedOpening:!0});var exprs=[];if(\")\"!==state.tokens.next.id)for(;exprs.push(expression(10)),\",\"===state.tokens.next.id;)state.option.nocomma&&warning(\"W127\"),comma();return advance(\")\",this),state.option.immed&&exprs[0]&&\"function\"===exprs[0].id&&\"(\"!==state.tokens.next.id&&\".\"!==state.tokens.next.id&&\"[\"!==state.tokens.next.id&&warning(\"W068\",this),exprs.length?(exprs.length>1?(ret=Object.create(state.syntax[\",\"]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&(\"{\"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||\"}\"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||\"{\"===ret.id&&\"=>\"===preceeding.id||\"(number)\"===ret.type&&checkPunctuator(pn,\".\")&&/^\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp\"),infix(\"[\",function(left,that){var s,e=expression(10);return e&&\"(string)\"===e.type&&(state.option.evil||\"eval\"!==e.value&&\"execScript\"!==e.value||isGlobalEval(left,state)&&warning(\"W061\"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning(\"W069\",state.tokens.prev,e.value))),advance(\"]\",that),e&&\"hasOwnProperty\"===e.value&&\"=\"===state.tokens.next.value&&warning(\"W001\"),that.left=left,that.right=e,that},160,!0),prefix(\"[\",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning(\"W118\",state.tokens.curr,\"array comprehension\"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));\"(end)\"!==state.tokens.next.id;){for(;\",\"===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning(\"W128\");do advance(\",\");while(\",\"===state.tokens.next.id);continue}warning(\"W070\")}advance(\",\")}if(\"]\"===state.tokens.next.id)break;if(this.first.push(expression(10)),\",\"!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),\"]\"===state.tokens.next.id&&!state.inES5()){warning(\"W070\",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance(\"]\",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;\"}\"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||\",\"!==peekIgnoreEOL().id&&\"}\"!==peekIgnoreEOL().id)if(\":\"===peek().id||\"get\"!==nextVal&&\"set\"!==nextVal){if(\"*\"===state.tokens.next.value&&\"(punctuator)\"===state.tokens.next.type?(state.inES6()||warning(\"W104\",state.tokens.next,\"generator functions\",\"6\"),advance(\"*\"),isGeneratorMethod=!0):isGeneratorMethod=!1,\"[\"===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),\"string\"!=typeof i)break;\"(\"===state.tokens.next.value?(state.inES6()||warning(\"W104\",state.tokens.curr,\"concise methods\",\"6\"),doFunction({type:isGeneratorMethod?\"generator\":null})):(advance(\":\"),expression(10))}else advance(nextVal),state.inES5()||error(\"E034\"),i=propertyName(),i||state.inES6()||error(\"E035\"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f[\"(params)\"],\"get\"===nextVal&&i&&p?warning(\"W076\",t,p[0],i):\"set\"!==nextVal||!i||p&&1===p.length||warning(\"W077\",t,i);else state.inES6()||warning(\"W104\",state.tokens.next,\"object short notation\",\"6\"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),\",\"!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),\",\"===state.tokens.next.id?warning(\"W070\",state.tokens.curr):\"}\"!==state.tokens.next.id||state.inES5()||warning(\"W070\",state.tokens.curr)}return b&&(indent-=state.option.indent),advance(\"}\",this),checkProperties(props),this},x.fud=function(){error(\"E036\",state.tokens.curr)}}(delim(\"{\"));var conststatement=stmt(\"const\",function(context){return blockVariableStatement(\"const\",this,context)});conststatement.exps=!0;var letstatement=stmt(\"let\",function(context){return blockVariableStatement(\"let\",this,context)});letstatement.exps=!0;var varstatement=stmt(\"var\",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains([\"{\",\"[\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning(\"W132\",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct[\"(global)\"]&&(predefined[t.id]===!1?warning(\"W079\",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning(\"W129\",t.token,t.id)),t.id&&(\"for\"===implied?(state.funct[\"(scope)\"].has(t.id)||report&&warning(\"W088\",t.token,t.id),state.funct[\"(scope)\"].block.use(t.id,t.token)):(state.funct[\"(scope)\"].addlabel(t.id,{type:\"var\",token:t.token}),lone&&inexport&&state.funct[\"(scope)\"].setExported(t.id,t.token)),names.push(t.token)));if(\"=\"===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance(\"=\"),prefix||!report||state.funct[\"(loopage)\"]||\"undefined\"!==state.tokens.next.id||warning(\"W080\",state.tokens.prev,state.tokens.prev.value),\"=\"===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct[\"(params)\"]||-1===state.funct[\"(params)\"].indexOf(state.tokens.next.value))&&warning(\"W120\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),\",\"!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt(\"class\",function(){return classdef.call(this,!0)}),blockstmt(\"function\",function(context){var inexport=context&&context.inexport,generator=!1;\"*\"===state.tokens.next.value&&(advance(\"*\"),state.inES6({strict:!0})?generator=!0:warning(\"W119\",state.tokens.curr,\"function*\",\"6\")),inblock&&warning(\"W082\",state.tokens.curr);var i=optionalidentifier();return state.funct[\"(scope)\"].addlabel(i,{type:\"function\",token:state.tokens.curr}),void 0===i?warning(\"W025\"):inexport&&state.funct[\"(scope)\"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?\"generator\":null,ignoreLoopFunc:inblock}),\"(\"===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error(\"E039\"),this}),prefix(\"function\",function(){var generator=!1;\"*\"===state.tokens.next.value&&(state.inES6()||warning(\"W119\",state.tokens.curr,\"function*\",\"6\"),advance(\"*\"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?\"generator\":null}),this}),blockstmt(\"if\",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance(\"(\");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type=\"(punctuator)\"===expr.type&&\"!\"===expr.value?\"(negative)\":\"(positive)\"),advance(\")\",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&\"(negative)\"===forinifcheck.type&&s&&s[0]&&\"(identifier)\"===s[0].type&&\"continue\"===s[0].value&&(forinifcheck.type=\"(negative-with-continue)\"),\"else\"===state.tokens.next.id&&(advance(\"else\"),\"if\"===state.tokens.next.id||\"switch\"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt(\"try\",function(){function doCatch(){if(advance(\"catch\"),advance(\"(\"),state.funct[\"(scope)\"].stack(\"catchparams\"),checkPunctuators(state.tokens.next,[\"[\",\"{\"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct[\"(scope)\"].addParam(token.id,token,\"exception\")})}else\"(identifier)\"!==state.tokens.next.type?warning(\"E030\",state.tokens.next,state.tokens.next.value):state.funct[\"(scope)\"].addParam(identifier(),state.tokens.curr,\"exception\");\"if\"===state.tokens.next.value&&(state.inMoz()||warning(\"W118\",state.tokens.curr,\"catch filter\"),advance(\"if\"),expression(0)),advance(\")\"),block(!1),state.funct[\"(scope)\"].unstack()}var b;for(block(!0);\"catch\"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning(\"W118\",state.tokens.next,\"multiple catch blocks\"),doCatch(),b=!0;return\"finally\"===state.tokens.next.id?(advance(\"finally\"),block(!0),void 0):(b||error(\"E021\",state.tokens.next,\"catch\",state.tokens.next.value),this)}),blockstmt(\"while\",function(){var t=state.tokens.next;return state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),block(!0,!0),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1,this}).labelled=!0,blockstmt(\"with\",function(){var t=state.tokens.next;return state.isStrict()?error(\"E010\",state.tokens.curr):state.option.withstmt||warning(\"W085\",state.tokens.curr),advance(\"(\"),expression(0),advance(\")\",t),block(!0,!0),this}),blockstmt(\"switch\",function(){var t=state.tokens.next,g=!1,noindent=!1;\nfor(state.funct[\"(breakage)\"]+=1,advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),t=state.tokens.next,advance(\"{\"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case\"case\":switch(state.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:state.tokens.curr.caseFallsThrough||warning(\"W086\",state.tokens.curr,\"case\")}advance(\"case\"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(\":\"),state.funct[\"(verb)\"]=\"case\";break;case\"default\":switch(state.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning(\"W086\",state.tokens.curr,\"default\"))}advance(\"default\"),g=!0,advance(\":\");break;case\"}\":return noindent||(indent-=state.option.indent),advance(\"}\",t),state.funct[\"(breakage)\"]-=1,state.funct[\"(verb)\"]=void 0,void 0;case\"(end)\":return error(\"E023\",state.tokens.next,\"}\"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case\",\":return error(\"E040\"),void 0;case\":\":g=!1,statements();break;default:return error(\"E025\",state.tokens.curr),void 0}else{if(\":\"!==state.tokens.curr.id)return error(\"E021\",state.tokens.next,\"case\",state.tokens.next.value),void 0;advance(\":\"),error(\"E024\",state.tokens.curr,\":\"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt(\"debugger\",function(){return state.option.debug||warning(\"W087\",this),this}).exps=!0,function(){var x=stmt(\"do\",function(){state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance(\"while\");var t=state.tokens.next;return advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\"for\",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;\"each\"===t.value&&(foreachtok=t,advance(\"each\"),state.inMoz()||warning(\"W118\",state.tokens.curr,\"for each\")),increaseComplexityCount(),advance(\"(\");var nextop,comma,initializer,i=0,inof=[\"in\",\"of\"],level=0;checkPunctuators(state.tokens.next,[\"{\",\"[\"])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,[\"{\",\"[\"])?++level:checkPunctuators(nextop,[\"}\",\"]\"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,\",\")?comma=nextop:!initializer&&checkPunctuator(nextop,\"=\")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&\";\"!==nextop.value&&\"(end)\"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||\"of\"!==nextop.value||warning(\"W104\",nextop,\"for of\",\"6\");var ok=!(initializer||comma);if(initializer&&error(\"W133\",comma,nextop.value,\"initializer is forbidden\"),comma&&error(\"W133\",comma,nextop.value,\"more than one ForBinding\"),\"var\"===state.tokens.next.id?(advance(\"var\"),state.tokens.curr.fud({prefix:!0})):\"let\"===state.tokens.next.id||\"const\"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct[\"(scope)\"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:\"for\",ignore:!ok}),advance(nextop.value),expression(20),advance(\")\",t),\"in\"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:\"(none)\"})),state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,s=block(!0,!0),\"in\"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&(\"object\"!=typeof s[0]||\"if\"!==s[0].value)||\"(positive)\"===check.type&&s.length>1||\"(negative)\"===check.type)&&warning(\"W089\",this)}state.forinifcheckneeded=!1}state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1}else{if(foreachtok&&error(\"E045\",foreachtok),\";\"!==state.tokens.next.id)if(\"var\"===state.tokens.next.id)advance(\"var\"),state.tokens.curr.fud();else if(\"let\"===state.tokens.next.id)advance(\"let\"),letscope=!0,state.funct[\"(scope)\"].stack(),state.tokens.curr.fud();else for(;expression(0,\"for\"),\",\"===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(\";\"),state.funct[\"(loopage)\"]+=1,\";\"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(\";\"),\";\"===state.tokens.next.id&&error(\"E021\",state.tokens.next,\")\",\";\"),\")\"!==state.tokens.next.id)for(;expression(0,\"for\"),\",\"===state.tokens.next.id;)comma();advance(\")\",t),state.funct[\"(breakage)\"]+=1,block(!0,!0),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1}return letscope&&state.funct[\"(scope)\"].unstack(),this}).labelled=!0,stmt(\"break\",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),\";\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct[\"(breakage)\"]&&warning(\"W052\",state.tokens.next,this.value):(state.funct[\"(scope)\"].funct.hasBreakLabel(v)||warning(\"W090\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\"continue\",function(){var v=state.tokens.next.value;return 0===state.funct[\"(breakage)\"]&&warning(\"W052\",state.tokens.next,this.value),state.funct[\"(loopage)\"]||warning(\"W052\",state.tokens.next,this.value),state.option.asi||nolinebreak(this),\";\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct[\"(scope)\"].funct.hasBreakLabel(v)||warning(\"W090\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\"return\",function(){return this.line===startLine(state.tokens.next)?\";\"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||\"(punctuator)\"!==this.first.type||\"=\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\"W093\",this.first.line,this.first.character)):\"(punctuator)\"===state.tokens.next.type&&[\"[\",\"{\",\"+\",\"-\"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix(\"yield\",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct[\"(generator)\"]?\"(catch)\"===state.funct[\"(name)\"]&&state.funct[\"(context)\"][\"(generator)\"]||error(\"E046\",state.tokens.curr,\"yield\"):state.inES6()||warning(\"W104\",state.tokens.curr,\"yield\",\"6\"),state.funct[\"(generator)\"]=\"yielded\";var delegatingYield=!1;return\"*\"===state.tokens.next.value&&(delegatingYield=!0,advance(\"*\")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||\";\"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),\"(punctuator)\"!==this.first.type||\"=\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\"W093\",this.first.line,this.first.character)),state.inMoz()&&\")\"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||\"yield\"===prev.id)&&error(\"E050\",this)),this})),stmt(\"throw\",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt(\"import\",function(){if(state.inES6()||warning(\"W119\",state.tokens.curr,\"import\",\"6\"),\"(string)\"===state.tokens.next.type)return advance(\"(string)\"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:state.tokens.curr}),\",\"!==state.tokens.next.value)return advance(\"from\"),advance(\"(string)\"),this;advance(\",\")}if(\"*\"===state.tokens.next.id)advance(\"*\"),advance(\"as\"),state.tokens.next.identifier&&(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:state.tokens.curr}));else for(advance(\"{\");;){if(\"}\"===state.tokens.next.value){advance(\"}\");break}var importName;if(\"default\"===state.tokens.next.type?(importName=\"default\",advance(\"default\")):importName=identifier(),\"as\"===state.tokens.next.value&&(advance(\"as\"),importName=identifier()),state.funct[\"(scope)\"].addlabel(importName,{type:\"const\",token:state.tokens.curr}),\",\"!==state.tokens.next.value){if(\"}\"===state.tokens.next.value){advance(\"}\");break}error(\"E024\",state.tokens.next,state.tokens.next.value);break}advance(\",\")}return advance(\"from\"),advance(\"(string)\"),this}).exps=!0,stmt(\"export\",function(){var token,identifier,ok=!0;if(state.inES6()||(warning(\"W119\",state.tokens.curr,\"export\",\"6\"),ok=!1),state.funct[\"(scope)\"].block.isGlobal()||(error(\"E053\",state.tokens.curr),ok=!1),\"*\"===state.tokens.next.value)return advance(\"*\"),advance(\"from\"),advance(\"(string)\"),this;if(\"default\"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance(\"default\");var exportType=state.tokens.next.id;return(\"function\"===exportType||\"class\"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct[\"(scope)\"].addlabel(identifier,{type:exportType,token:token}),state.funct[\"(scope)\"].setExported(identifier,token)),this}if(\"{\"===state.tokens.next.value){advance(\"{\");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error(\"E030\",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),\"as\"===state.tokens.next.value&&(advance(\"as\"),state.tokens.next.identifier||error(\"E030\",state.tokens.next,state.tokens.next.value),advance()),\",\"!==state.tokens.next.value){if(\"}\"===state.tokens.next.value){advance(\"}\");break}error(\"E024\",state.tokens.next,state.tokens.next.value);break}advance(\",\")}return\"from\"===state.tokens.next.value?(advance(\"from\"),advance(\"(string)\")):ok&&exportedTokens.forEach(function(token){state.funct[\"(scope)\"].setExported(token.value,token)}),this}if(\"var\"===state.tokens.next.id)advance(\"var\"),state.tokens.curr.fud({inexport:!0});else if(\"let\"===state.tokens.next.id)advance(\"let\"),state.tokens.curr.fud({inexport:!0});else if(\"const\"===state.tokens.next.id)advance(\"const\"),state.tokens.curr.fud({inexport:!0});else if(\"function\"===state.tokens.next.id)this.block=!0,advance(\"function\"),state.syntax[\"function\"].fud({inexport:!0});else if(\"class\"===state.tokens.next.id){this.block=!0,advance(\"class\");var classNameToken=state.tokens.next;state.syntax[\"class\"].fud(),state.funct[\"(scope)\"].setExported(classNameToken.value,classNameToken)}else error(\"E024\",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord(\"abstract\"),FutureReservedWord(\"boolean\"),FutureReservedWord(\"byte\"),FutureReservedWord(\"char\"),FutureReservedWord(\"class\",{es5:!0,nud:classdef}),FutureReservedWord(\"double\"),FutureReservedWord(\"enum\",{es5:!0}),FutureReservedWord(\"export\",{es5:!0}),FutureReservedWord(\"extends\",{es5:!0}),FutureReservedWord(\"final\"),FutureReservedWord(\"float\"),FutureReservedWord(\"goto\"),FutureReservedWord(\"implements\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"import\",{es5:!0}),FutureReservedWord(\"int\"),FutureReservedWord(\"interface\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"long\"),FutureReservedWord(\"native\"),FutureReservedWord(\"package\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"private\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"protected\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"public\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"short\"),FutureReservedWord(\"static\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"super\",{es5:!0}),FutureReservedWord(\"synchronized\"),FutureReservedWord(\"transient\"),FutureReservedWord(\"volatile\");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,[\"[\",\"{\"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,[\"[\",\"{\"])?bracketStack+=1:checkPunctuators(pn,[\"]\",\"}\"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&\"for\"===pn.value&&!checkPunctuator(prev,\".\")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,[\"}\",\"]\"])){if(\"=\"===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if(\".\"===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,\";\")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&\"(end)\"!==pn.id);return ret},arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode=\"use\",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning(\"W098\",v.token,v.raw_text||v.value),v.undef&&state.funct[\"(scope)\"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains([\"use\",\"define\",\"generate\",\"filter\"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&\"use\"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&\"define\"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&\"generate\"===_current.mode?(state.funct[\"(scope)\"].block.use(v,state.tokens.curr),!0):_current&&\"filter\"===_current.mode?(use(v)&&state.funct[\"(scope)\"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||\"object\"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\"(main)\"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;\"-\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],(\"esversion\"===optionKey&&5===o[optionKey]||\"es5\"===optionKey&&o[optionKey])&&warning(\"I003\"),\"newcap\"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj[\"(explicitNewcap)\"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on(\"warning\",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on(\"error\",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor(\"(global)\",null,{\"(global)\":!0,\"(scope)\":scopeManagerInst,\"(comparray)\":arrayComprehension(),\"(metrics)\":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt(\"E004\",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(\" \").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax[\"(begin)\"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEach(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+\"[\\\\s\\\\S]*?\"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,\"ig\"),s=s.replace(reIgnore,function(match){return match.replace(/./g,\" \")}))})),lex=new Lexer(s),lex.on(\"warning\",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\"error\",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\"fatal\",function(ev){quit(\"E041\",ev.line,ev.from)}),lex.on(\"Identifier\",function(ev){emitter.emit(\"Identifier\",ev)}),lex.on(\"String\",function(ev){emitter.emit(\"String\",ev)}),lex.on(\"Number\",function(ev){emitter.emit(\"Number\",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case\"{\":case\"[\":destructuringAssignOrJsonValue();break;default:directives(),state.directive[\"use strict\"]&&\"global\"!==state.option.strict&&warning(\"W097\",state.tokens.prev),statements()}\"(end)\"!==state.tokens.next.id&&quit(\"E041\",state.tokens.curr.line),state.funct[\"(scope)\"].unstack()}catch(err){if(!err||\"JSHintError\"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:\"(main)\",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if(\"(main)\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct[\"(scope)\"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct[\"(scope)\"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\"(name)\"],fu.param=f[\"(params)\"],fu.line=f[\"(line)\"],fu.character=f[\"(character)\"],fu.last=f[\"(last)\"],fu.lastcharacter=f[\"(lastcharacter)\"],fu.metrics={complexity:f[\"(metrics)\"].ComplexityCount,parameters:f[\"(metrics)\"].arity,statements:f[\"(metrics)\"].statementCount},data.functions.push(fu)}var unuseds=state.funct[\"(scope)\"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if(\"number\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\"object\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./lex.js\":\"/node_modules/jshint/src/lex.js\",\"./messages.js\":\"/node_modules/jshint/src/messages.js\",\"./options.js\":\"/node_modules/jshint/src/options.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./scope-manager.js\":\"/node_modules/jshint/src/scope-manager.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"./style.js\":\"/node_modules/jshint/src/style.js\",\"./vars.js\":\"/node_modules/jshint/src/vars.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/lex.js\":[function(_dereq_,module,exports){\"use strict\";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;\"string\"==typeof lines&&(lines=lines.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\").split(\"\\n\")),lines[0]&&\"#!\"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf(\"node\")&&(state.option.node=!0),lines[0]=\"\"),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\"\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=\" \";this.ignoreLinterErrors=!1}var _=_dereq_(\"../lodash\"),events=_dereq_(\"events\"),reg=_dereq_(\"./reg.js\"),state=_dereq_(\"./state.js\").state,unicodeData=_dereq_(\"../data/ascii-identifier-data.js\"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(\" \").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case\".\":if(/^[0-9]$/.test(this.peek(1)))return null;if(\".\"===this.peek(1)&&\".\"===this.peek(2))return{type:Token.Punctuator,value:\"...\"};case\"(\":case\")\":case\";\":case\",\":case\"[\":case\"]\":case\":\":case\"~\":case\"?\":return{type:Token.Punctuator,value:ch1};case\"{\":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case\"}\":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case\"#\":return{type:Token.Punctuator,value:ch1};case\"\":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),\">\"===ch1&&\">\"===ch2&&\">\"===ch3&&\"=\"===ch4?{type:Token.Punctuator,value:\">>>=\"}:\"=\"===ch1&&\"=\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"===\"}:\"!\"===ch1&&\"=\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"!==\"}:\">\"===ch1&&\">\"===ch2&&\">\"===ch3?{type:Token.Punctuator,value:\">>>\"}:\"<\"===ch1&&\"<\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"<<=\"}:\">\"===ch1&&\">\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\">>=\"}:\"=\"===ch1&&\">\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&\"+-<>&|\".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:\"<>=!+-*%&|^\".indexOf(ch1)>=0?\"=\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:\"/\"===ch1?\"=\"===ch2?{type:Token.Punctuator,value:\"/=\"}:{type:Token.Punctuator,value:\"/\"}:null},scanComments:function(){function commentToken(label,body,opt){var special=[\"jshint\",\"jslint\",\"members\",\"member\",\"globals\",\"global\",\"exported\"],isSpecial=!1,value=label+body,commentType=\"plain\";return opt=opt||{},opt.isMultiline&&(value+=\"*/\"),body=body.replace(/\\n/g,\" \"),\"/*\"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType=\"falls through\"),special.forEach(function(str){if(!isSpecial&&(\"//\"!==label||\"jshint\"===str)&&(\" \"===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||\" \"!==body.charAt(0)||\" \"!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+\" \"+str,body=body.substr(str.length+1)),isSpecial))switch(str){case\"member\":commentType=\"members\";break;case\"global\":commentType=\"globals\";break;default:var options=body.split(\":\").map(function(v){return v.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")});if(2===options.length)switch(options[0]){case\"ignore\":switch(options[1]){case\"start\":self.ignoringLinterErrors=!0,isSpecial=!1;break;case\"end\":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if(\"*\"===ch1&&\"/\"===ch2)return this.trigger(\"error\",{code:\"E018\",line:startLine,character:startChar}),this.skip(2),null;if(\"/\"!==ch1||\"*\"!==ch2&&\"/\"!==ch2)return null;if(\"/\"===ch2)return this.skip(this.input.length),commentToken(\"//\",rest);var body=\"\";if(\"*\"===ch2){for(this.inComment=!0,this.skip(2);\"*\"!==this.peek()||\"/\"!==this.peek(1);)if(\"\"===this.peek()){if(body+=\"\\n\",!this.nextLine())return this.trigger(\"error\",{code:\"E017\",line:startLine,character:startChar}),this.inComment=!1,commentToken(\"/*\",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken(\"/*\",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=[\"if\",\"in\",\"do\",\"var\",\"for\",\"new\",\"try\",\"let\",\"this\",\"else\",\"case\",\"void\",\"with\",\"enum\",\"while\",\"break\",\"catch\",\"throw\",\"const\",\"yield\",\"class\",\"super\",\"return\",\"typeof\",\"delete\",\"switch\",\"export\",\"import\",\"default\",\"finally\",\"extends\",\"function\",\"continue\",\"debugger\",\"instanceof\"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id=\"\",index=0,readUnicodeEscapeSequence=function(){if(index+=1,\"u\"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,\"\\\\u\"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case\"true\":case\"false\":type=Token.BooleanLiteral;break;case\"null\":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch}var bad,index=0,value=\"\",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if(\".\"!==char&&!isDecimalDigit(char))return null;if(\".\"!==char){for(value=this.peek(index),index+=1,char=this.peek(index),\"0\"===value&&((\"x\"===char||\"X\"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),(\"o\"===char||\"O\"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Octal integer literal\",\"6\"]}),index+=1,value+=char),(\"b\"===char||\"B\"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Binary integer literal\",\"6\"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if(\".\"===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if(\"e\"===char||\"E\"===char){if(value+=char,index+=1,char=this.peek(index),(\"+\"===char||\"-\"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case\"'\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\'\"]},checks,function(){return state.jsonMode});break;case\"b\":char=\"\\\\b\";break;case\"f\":char=\"\\\\f\";break;case\"n\":char=\"\\\\n\";break;case\"r\":char=\"\\\\r\";break;case\"t\":char=\"\\\\t\";break;case\"0\":char=\"\\\\0\";var n=parseInt(this.peek(1),10);this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case\"u\":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger(\"warning\",{code:\"W052\",line:this.line,character:this.char,data:[\"u\"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case\"v\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\v\"]},checks,function(){return state.jsonMode}),char=\"\u000b\";break;case\"x\":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\x-\"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case\"\\\\\":char=\"\\\\\\\\\";break;case'\"':char='\\\\\"';break;case\"/\":break;case\"\":allowNewLine=!0,char=\"\"}return{\"char\":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value=\"\",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if(\"`\"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,\"char\":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||\"}\"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;\"`\"!==this.peek();){for(;\"\"===(ch=this.peek());)if(value+=\"\\n\",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger(\"error\",{code:\"E052\",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if(\"$\"===ch&&\"{\"===this.peek(1))return value+=\"${\",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\nif(\"\\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else\"`\"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if('\"'!==quote&&\"'\"!==quote)return null;this.triggerAsync(\"warning\",{code:\"W108\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&'\"'!==quote});var value=\"\",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(\"\"===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync(\"warning\",{code:\"W043\",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync(\"warning\",{code:\"W042\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger(\"warning\",{code:\"W112\",line:this.line,character:this.char}),!this.nextLine())return this.trigger(\"error\",{code:\"E029\",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(\" \">char&&this.trigger(\"warning\",{code:\"W113\",line:this.line,character:this.char,data:[\"\"]}),\"\\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body=\"\",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){\" \">char&&(malformed=!0,this.trigger(\"warning\",{code:\"W048\",line:this.line,character:this.char})),\"<\"===char&&(malformed=!0,this.trigger(\"warning\",{code:\"W049\",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||\"/\"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)\"]\"===char&&(\"\\\\\"!==this.peek(index-1)||\"\\\\\"===this.peek(index-2))&&(isCharSet=!1),\"\\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if(\"\\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),\"/\"===char){index+=1;continue}if(\"[\"===char){index+=1;continue}}if(\"[\"!==char){if(\"/\"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger(\"error\",{code:\"E015\",line:this.line,character:this.from}),void this.trigger(\"fatal\",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(\"\"))}catch(err){malformed=!0,this.trigger(\"error\",{code:\"E016\",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\s/.test(this.peek()))for(start=this.char;/\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith(\"/*\",\"//\")||this.inComment&&endsWith(\"*/\")||(this.input=\"\")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger(\"warning\",{code:\"W125\",line:this.line,character:char+1}),this.input=this.input.replace(/\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger(\"warning\",{code:\"W100\",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen=0;--i){var scopeLabels=_scopeStack[i][\"(labels)\"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\"(usages)\"][labelName])return current[\"(usages)\"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if(\"outer\"===state.option.shadow)for(var isGlobal=\"global\"===_currentFunctBody[\"(type)\"],isNewFunction=\"functionparams\"===_current[\"(type)\"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem[\"(labels)\"][labelName]&&warning(\"W123\",token,labelName),stackItem[\"(breakLabels)\"][labelName]&&warning(\"W123\",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&\"function\"===type||\"function\"!==type)&&warning(\"W003\",token,labelName)}var _current,_scopeStack=[];_newScope(\"global\"),_current[\"(predefined)\"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt=\"last-param\"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:[\"var\"],\"last-param\":[\"var\",\"param\"],strict:[\"var\",\"param\",\"last-param\"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning(\"W098\",{line:line,from:chr},raw_name),(unused_opt||\"var\"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(\" \").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0][\"(predefined)\"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||\"functionparams\"!==previousScope[\"(type)\"]||(_current[\"(isFuncBody)\"]=!0,_current[\"(context)\"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams=\"functionparams\"===_current[\"(type)\"],isUnstackingFunctionOuter=\"functionouter\"===_current[\"(type)\"],currentUsages=_current[\"(usages)\"],currentLabels=_current[\"(labels)\"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf(\"__proto__\")&&usedLabelNameList.push(\"__proto__\"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel[\"(type)\"];if(usedLabel[\"(useOutsideOfScope)\"]&&!state.option.funcscope){var usedTokens=usage[\"(tokens)\"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel[\"(function)\"]===usedTokens[j][\"(function)\"]&&error(\"W038\",usedTokens[j],usedLabelName)}if(_current[\"(labels)\"][usedLabelName][\"(unused)\"]=!1,\"const\"===usedLabelType&&usage[\"(modified)\"])for(j=0;usage[\"(modified)\"].length>j;j++)error(\"E013\",usage[\"(modified)\"][j],usedLabelName);if((\"function\"===usedLabelType||\"class\"===usedLabelType)&&usage[\"(reassigned)\"])for(j=0;usage[\"(reassigned)\"].length>j;j++)error(\"W021\",usage[\"(reassigned)\"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct[\"(isCapturing)\"]=!0),subScope)if(subScope[\"(usages)\"][usedLabelName]){var subScopeUsage=subScope[\"(usages)\"][usedLabelName];subScopeUsage[\"(modified)\"]=subScopeUsage[\"(modified)\"].concat(usage[\"(modified)\"]),subScopeUsage[\"(tokens)\"]=subScopeUsage[\"(tokens)\"].concat(usage[\"(tokens)\"]),subScopeUsage[\"(reassigned)\"]=subScopeUsage[\"(reassigned)\"].concat(usage[\"(reassigned)\"]),subScopeUsage[\"(onlyUsedSubFunction)\"]=!1}else subScope[\"(usages)\"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope[\"(usages)\"][usedLabelName][\"(onlyUsedSubFunction)\"]=!0);else if(\"boolean\"==typeof _current[\"(predefined)\"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current[\"(predefined)\"][usedLabelName]===!1&&usage[\"(reassigned)\"])for(j=0;usage[\"(reassigned)\"].length>j;j++)warning(\"W020\",usage[\"(reassigned)\"][j])}else if(usage[\"(tokens)\"])for(j=0;usage[\"(tokens)\"].length>j;j++){var undefinedToken=usage[\"(tokens)\"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning(\"W117\",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],\"var\")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName][\"(blockscoped)\"]||\"exception\"===currentLabels[defLabelName][\"(type)\"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope[\"(labels)\"][defLabelName]=currentLabels[defLabelName],\"global\"!==_currentFunctBody[\"(type)\"]&&(subScope[\"(labels)\"][defLabelName][\"(useOutsideOfScope)\"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope[\"(isFuncBody)\"]||\"global\"===scope[\"(type)\"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||\"param\",\"exception\"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&\"exception\"!==previouslyDefinedLabelType&&(state.option.node||warning(\"W002\",state.tokens.next,labelName))}if(_.has(_current[\"(labels)\"],labelName)?_current[\"(labels)\"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":token,\"(unused)\":!0},_current[\"(params)\"].push(labelName)),_.has(_current[\"(usages)\"],labelName)){var usage=_current[\"(usages)\"][labelName];usage[\"(onlyUsedSubFunction)\"]?_latedefWarning(type,labelName,token):warning(\"E056\",token,labelName,type)}},validateParams:function(){if(\"global\"!==_currentFunctBody[\"(type)\"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody[\"(parent)\"];currentFunctParamScope[\"(params)\"]&¤tFunctParamScope[\"(params)\"].forEach(function(labelName){var label=currentFunctParamScope[\"(labels)\"][labelName];label&&label.duplicated&&(isStrict?warning(\"E011\",label[\"(token)\"],labelName):state.option.shadow!==!0&&warning(\"W004\",label[\"(token)\"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf(\"__proto__\")&&list.push(\"__proto__\"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return\"__proto__\"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName][\"(type)\"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0][\"(labels)\"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName][\"(unused)\"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope[\"(type)\"])break;if(_.has(scope[\"(labels)\"],labelName)&&!scope[\"(labels)\"][labelName][\"(blockscoped)\"])return scope[\"(labels)\"][labelName][\"(unused)\"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped=\"let\"===type||\"const\"===type||\"class\"===type,isexported=\"global\"===(isblockscoped?_current:_currentFunctBody)[\"(type)\"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current[\"(labels)\"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||\"global\"===_current[\"(type)\"]||(declaredInCurrentScope=!!_currentFunctBody[\"(parent)\"][\"(labels)\"][labelName]),!declaredInCurrentScope&&_current[\"(usages)\"][labelName]){var usage=_current[\"(usages)\"][labelName];usage[\"(onlyUsedSubFunction)\"]?_latedefWarning(type,labelName,token):warning(\"E056\",token,labelName,type)}declaredInCurrentScope?warning(\"E011\",token,labelName):\"outer\"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning(\"W004\",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning(\"E011\",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&\"__proto__\"!==labelName&&\"global\"!==_currentFunctBody[\"(type)\"]&&warning(\"W004\",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),\"global\"===_currentFunctBody[\"(type)\"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current[\"(labels)\"][labelName]&&(!onlyBlockscoped||current[\"(labels)\"][labelName][\"(blockscoped)\"]))return current[\"(labels)\"][labelName][\"(type)\"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&\"functionparams\"===scopeCheck[\"(type)\"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\"(breakLabels)\"][labelName])return!0;if(\"functionparams\"===current[\"(type)\"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":tok,\"(blockscoped)\":!1,\"(function)\":_currentFunctBody,\"(unused)\":unused}}},block:{isGlobal:function(){return\"global\"===_current[\"(type)\"]},use:function(labelName,token){var paramScope=_currentFunctBody[\"(parent)\"];paramScope&¶mScope[\"(labels)\"][labelName]&&\"param\"===paramScope[\"(labels)\"][labelName][\"(type)\"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope[\"(labels)\"][labelName][\"(unused)\"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token[\"(function)\"]=_currentFunctBody,_current[\"(usages)\"][labelName][\"(tokens)\"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current[\"(usages)\"][labelName][\"(reassigned)\"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current[\"(usages)\"][labelName][\"(modified)\"].push(token)},add:function(labelName,type,tok,unused){_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":tok,\"(blockscoped)\":!0,\"(unused)\":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning(\"E011\",token,labelName):\"outer\"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning(\"W004\",token,labelName):_checkOuterShadow(labelName,token)),_current[\"(breakLabels)\"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{\"../lodash\":\"/node_modules/jshint/lodash.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/state.js\":[function(_dereq_,module,exports){\"use strict\";var NameStack=_dereq_(\"./name-stack.js\"),state={syntax:{},isStrict:function(){return this.directive[\"use strict\"]||this.inClassBody||this.option.module||\"implied\"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\"\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{\"./name-stack.js\":\"/node_modules/jshint/src/name-stack.js\"}],\"/node_modules/jshint/src/style.js\":[function(_dereq_,module,exports){\"use strict\";exports.register=function(linter){linter.on(\"Identifier\",function(data){linter.getOption(\"proto\")||\"__proto__\"===data.name&&linter.warn(\"W103\",{line:data.line,\"char\":data.char,data:[data.name,\"6\"]})}),linter.on(\"Identifier\",function(data){linter.getOption(\"iterator\")||\"__iterator__\"===data.name&&linter.warn(\"W103\",{line:data.line,\"char\":data.char,data:[data.name]})}),linter.on(\"Identifier\",function(data){linter.getOption(\"camelcase\")&&data.name.replace(/^_+|_+$/g,\"\").indexOf(\"_\")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn(\"W106\",{line:data.line,\"char\":data.from,data:[data.name]})}),linter.on(\"String\",function(data){var code,quotmark=linter.getOption(\"quotmark\");quotmark&&(\"single\"===quotmark&&\"'\"!==data.quote&&(code=\"W109\"),\"double\"===quotmark&&'\"'!==data.quote&&(code=\"W108\"),quotmark===!0&&(linter.getCache(\"quotmark\")||linter.setCache(\"quotmark\",data.quote),linter.getCache(\"quotmark\")!==data.quote&&(code=\"W110\")),code&&linter.warn(code,{line:data.line,\"char\":data.char}))}),linter.on(\"Number\",function(data){\".\"===data.value.charAt(0)&&linter.warn(\"W008\",{line:data.line,\"char\":data.char,data:[data.value]}),\".\"===data.value.substr(data.value.length-1)&&linter.warn(\"W047\",{line:data.line,\"char\":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn(\"W046\",{line:data.line,\"char\":data.char,data:[data.value]})}),linter.on(\"String\",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;linter.getOption(\"scripturl\")||re.test(data.value)&&linter.warn(\"W107\",{line:data.line,\"char\":data.char})})}},{}],\"/node_modules/jshint/src/vars.js\":[function(_dereq_,module,exports){\"use strict\";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\"throws\":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\"/node_modules/jshint/src/jshint.js\"])}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(acequire,exports,module){\"use strict\";function startRegex(arr){return RegExp(\"^(\"+arr.join(\"|\")+\")\")}var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,lint=acequire(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable '(.+)'.\",'Missing \"use strict\"']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\{a\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\['{a}'\\\\] is better written in dot notation.\",\"'{a}' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\n/,\"\\n\"),!value)return this.sender.emit(\"annotate\",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?\"warning\":\"error\";lint(value,this.options,this.options.globals);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\"warning\";if(\"Missing semicolon.\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\S/)),\"error\"==maxErrorLevel&&str&&/[\\w\\d{(['\"]/.test(str)?(error.reason='Missing \";\" before statement',type=\"error\"):type=\"info\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\"info\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\"'{a}' is not defined.\"==raw?type=\"warning\":\"'{a}' is defined but never used.\"==raw&&(type=\"info\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\"annotate\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }), -/* 223 */ +/* 232 */ /*!*********************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify-css.js ***! \*********************************************************/ @@ -28128,7 +28137,7 @@ if (true) { /***/ }), -/* 224 */ +/* 233 */ /*!*****************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify.js ***! \*****************************************************/ @@ -30957,7 +30966,7 @@ if (true) { /***/ }), -/* 225 */ +/* 234 */ /*!***************************************!*\ !*** (webpack)/buildin/amd-define.js ***! \***************************************/ @@ -30971,16 +30980,15 @@ module.exports = function() { /***/ }), -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */ +/* 235 */, +/* 236 */, +/* 237 */, +/* 238 */, +/* 239 */, +/* 240 */, +/* 241 */, +/* 242 */, +/* 243 */ /*!*******************************************!*\ !*** ./node_modules/check-error/index.js ***! \*******************************************/ @@ -31164,7 +31172,7 @@ module.exports = { /***/ }), -/* 236 */ +/* 244 */ /*!*****************************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js ***! \*****************************************************************************/ @@ -31202,7 +31210,7 @@ module.exports = function getOwnEnumerablePropertySymbols(obj) { /***/ }), -/* 237 */ +/* 245 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/objDisplay.js ***! \********************************************************/ @@ -31220,8 +31228,8 @@ module.exports = function getOwnEnumerablePropertySymbols(obj) { * Module dependancies */ -var inspect = __webpack_require__(/*! ./inspect */ 157); -var config = __webpack_require__(/*! ../config */ 119); +var inspect = __webpack_require__(/*! ./inspect */ 162); +var config = __webpack_require__(/*! ../config */ 122); /** * ### .objDisplay(object) @@ -31263,7 +31271,7 @@ module.exports = function objDisplay(obj) { /***/ }), -/* 238 */ +/* 246 */ /*!***********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getProperties.js ***! \***********************************************************/ @@ -31310,7 +31318,7 @@ module.exports = function getProperties(object) { /***/ }), -/* 239 */ +/* 247 */ /*!*********************************************!*\ !*** ./node_modules/get-func-name/index.js ***! \*********************************************/ @@ -31366,7 +31374,7 @@ module.exports = getFuncName; /***/ }), -/* 240 */ +/* 248 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getActual.js ***! \*******************************************************/ @@ -31397,7 +31405,7 @@ module.exports = function getActual(obj, args) { /***/ }), -/* 241 */ +/* 249 */ /*!***********************************************!*\ !*** ./node_modules/assertion-error/index.js ***! \***********************************************/ @@ -31524,7 +31532,7 @@ AssertionError.prototype.toJSON = function (stack) { /***/ }), -/* 242 */ +/* 250 */ /*!**************************************************!*\ !*** ./node_modules/normalize.css/normalize.css ***! \**************************************************/ @@ -31534,7 +31542,7 @@ AssertionError.prototype.toJSON = function (stack) { // extracted by mini-css-extract-plugin /***/ }), -/* 243 */ +/* 251 */ /*!*************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/array-set.js ***! \*************************************************************************/ @@ -31549,7 +31557,7 @@ AssertionError.prototype.toJSON = function (stack) { * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(/*! ./util */ 133); +var util = __webpack_require__(/*! ./util */ 138); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -31666,7 +31674,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 244 */ +/* 252 */ /*!**************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/base64-vlq.js ***! \**************************************************************************/ @@ -31711,7 +31719,7 @@ exports.ArraySet = ArraySet; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(/*! ./base64 */ 340); +var base64 = __webpack_require__(/*! ./base64 */ 348); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -31817,7 +31825,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 245 */ +/* 253 */ /*!************************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-map-generator.js ***! \************************************************************************************/ @@ -31832,10 +31840,10 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 244); -var util = __webpack_require__(/*! ./util */ 133); -var ArraySet = __webpack_require__(/*! ./array-set */ 243).ArraySet; -var MappingList = __webpack_require__(/*! ./mapping-list */ 339).MappingList; +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 252); +var util = __webpack_require__(/*! ./util */ 138); +var ArraySet = __webpack_require__(/*! ./array-set */ 251).ArraySet; +var MappingList = __webpack_require__(/*! ./mapping-list */ 347).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -32253,7 +32261,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 246 */ +/* 254 */ /*!******************************************!*\ !*** ./node_modules/esutils/lib/code.js ***! \******************************************/ @@ -32399,7 +32407,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 247 */ +/* 255 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/reader/Uint8ArrayReader.js ***! \***********************************************************/ @@ -32409,7 +32417,7 @@ exports.SourceMapGenerator = SourceMapGenerator; "use strict"; -var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 249); +var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 257); var utils = __webpack_require__(/*! ../utils */ 74); function Uint8ArrayReader(data) { @@ -32433,7 +32441,7 @@ module.exports = Uint8ArrayReader; /***/ }), -/* 248 */ +/* 256 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/reader/DataReader.js ***! \*****************************************************/ @@ -32561,7 +32569,7 @@ module.exports = DataReader; /***/ }), -/* 249 */ +/* 257 */ /*!******************************************************!*\ !*** ./node_modules/jszip/lib/reader/ArrayReader.js ***! \******************************************************/ @@ -32571,7 +32579,7 @@ module.exports = DataReader; "use strict"; -var DataReader = __webpack_require__(/*! ./DataReader */ 248); +var DataReader = __webpack_require__(/*! ./DataReader */ 256); var utils = __webpack_require__(/*! ../utils */ 74); function ArrayReader(data) { @@ -32630,7 +32638,7 @@ module.exports = ArrayReader; /***/ }), -/* 250 */ +/* 258 */ /*!****************************************************!*\ !*** ./node_modules/jszip/lib/reader/readerFor.js ***! \****************************************************/ @@ -32642,11 +32650,11 @@ module.exports = ArrayReader; var utils = __webpack_require__(/*! ../utils */ 74); -var support = __webpack_require__(/*! ../support */ 116); -var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 249); -var StringReader = __webpack_require__(/*! ./StringReader */ 350); -var NodeBufferReader = __webpack_require__(/*! ./NodeBufferReader */ 349); -var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 247); +var support = __webpack_require__(/*! ../support */ 119); +var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 257); +var StringReader = __webpack_require__(/*! ./StringReader */ 358); +var NodeBufferReader = __webpack_require__(/*! ./NodeBufferReader */ 357); +var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 255); /** * Create a reader adapted to the data. @@ -32670,7 +32678,7 @@ module.exports = function (data) { /***/ }), -/* 251 */ +/* 259 */ /*!*********************************************!*\ !*** ./node_modules/jszip/lib/signature.js ***! \*********************************************/ @@ -32689,7 +32697,7 @@ exports.DATA_DESCRIPTOR = "PK\x07\x08"; /***/ }), -/* 252 */ +/* 260 */ /*!*************************************************!*\ !*** ./node_modules/pako/lib/zlib/constants.js ***! \*************************************************/ @@ -32769,7 +32777,7 @@ module.exports = { /***/ }), -/* 253 */ +/* 261 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/zstream.js ***! \***********************************************/ @@ -32828,7 +32836,7 @@ module.exports = ZStream; /***/ }), -/* 254 */ +/* 262 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/utils/strings.js ***! \************************************************/ @@ -32841,7 +32849,7 @@ module.exports = ZStream; -var utils = __webpack_require__(/*! ./common */ 115); +var utils = __webpack_require__(/*! ./common */ 118); // Quick check if we can use fast array to bin string conversion @@ -33025,7 +33033,7 @@ exports.utf8border = function (buf, max) { /***/ }), -/* 255 */ +/* 263 */ /*!*********************************************!*\ !*** ./node_modules/pako/lib/zlib/crc32.js ***! \*********************************************/ @@ -33096,7 +33104,7 @@ module.exports = crc32; /***/ }), -/* 256 */ +/* 264 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/adler32.js ***! \***********************************************/ @@ -33159,7 +33167,7 @@ module.exports = adler32; /***/ }), -/* 257 */ +/* 265 */ /*!************************************************!*\ !*** ./node_modules/jszip/lib/compressions.js ***! \************************************************/ @@ -33181,11 +33189,11 @@ exports.STORE = { return new GenericWorker("STORE decompression"); } }; -exports.DEFLATE = __webpack_require__(/*! ./flate */ 364); +exports.DEFLATE = __webpack_require__(/*! ./flate */ 372); /***/ }), -/* 258 */ +/* 266 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/stream/Crc32Probe.js ***! \*****************************************************/ @@ -33197,7 +33205,7 @@ exports.DEFLATE = __webpack_require__(/*! ./flate */ 364); var GenericWorker = __webpack_require__(/*! ./GenericWorker */ 95); -var crc32 = __webpack_require__(/*! ../crc32 */ 211); +var crc32 = __webpack_require__(/*! ../crc32 */ 220); var utils = __webpack_require__(/*! ../utils */ 74); /** @@ -33221,7 +33229,7 @@ module.exports = Crc32Probe; /***/ }), -/* 259 */ +/* 267 */ /*!**********************************************************!*\ !*** ./node_modules/jszip/lib/stream/DataLengthProbe.js ***! \**********************************************************/ @@ -33262,7 +33270,7 @@ module.exports = DataLengthProbe; /***/ }), -/* 260 */ +/* 268 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/stream/DataWorker.js ***! \*****************************************************/ @@ -33390,7 +33398,7 @@ module.exports = DataWorker; /***/ }), -/* 261 */ +/* 269 */ /*!********************************************!*\ !*** ./node_modules/jszip/lib/defaults.js ***! \********************************************/ @@ -33413,7 +33421,7 @@ exports.dosPermissions = null; /***/ }), -/* 262 */ +/* 270 */ /*!*******************************************************!*\ !*** ./node_modules/jszip/lib/stream/StreamHelper.js ***! \*******************************************************/ @@ -33425,16 +33433,16 @@ exports.dosPermissions = null; /* WEBPACK VAR INJECTION */(function(Buffer) { var utils = __webpack_require__(/*! ../utils */ 74); -var ConvertWorker = __webpack_require__(/*! ./ConvertWorker */ 368); +var ConvertWorker = __webpack_require__(/*! ./ConvertWorker */ 376); var GenericWorker = __webpack_require__(/*! ./GenericWorker */ 95); -var base64 = __webpack_require__(/*! ../base64 */ 267); -var support = __webpack_require__(/*! ../support */ 116); -var external = __webpack_require__(/*! ../external */ 135); +var base64 = __webpack_require__(/*! ../base64 */ 275); +var support = __webpack_require__(/*! ../support */ 119); +var external = __webpack_require__(/*! ../external */ 141); var NodejsStreamOutputAdapter = null; if (support.nodestream) { try { - NodejsStreamOutputAdapter = __webpack_require__(/*! ../nodejs/NodejsStreamOutputAdapter */ 367); + NodejsStreamOutputAdapter = __webpack_require__(/*! ../nodejs/NodejsStreamOutputAdapter */ 375); } catch(e) {} } @@ -33635,10 +33643,10 @@ StreamHelper.prototype = { module.exports = StreamHelper; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ 137).Buffer)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ 143).Buffer)) /***/ }), -/* 263 */ +/* 271 */ /*!********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_dom-create.js ***! \********************************************************************************/ @@ -33646,8 +33654,8 @@ module.exports = StreamHelper; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ./_is-object */ 214) - , document = __webpack_require__(/*! ./_global */ 158).document +var isObject = __webpack_require__(/*! ./_is-object */ 223) + , document = __webpack_require__(/*! ./_global */ 163).document // in old IE typeof document.createElement is 'object' , is = isObject(document) && isObject(document.createElement); module.exports = function(it){ @@ -33655,7 +33663,7 @@ module.exports = function(it){ }; /***/ }), -/* 264 */ +/* 272 */ /*!***************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_fails.js ***! \***************************************************************************/ @@ -33672,7 +33680,7 @@ module.exports = function(exec){ }; /***/ }), -/* 265 */ +/* 273 */ /*!*************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_ctx.js ***! \*************************************************************************/ @@ -33681,7 +33689,7 @@ module.exports = function(exec){ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding -var aFunction = __webpack_require__(/*! ./_a-function */ 381); +var aFunction = __webpack_require__(/*! ./_a-function */ 389); module.exports = function(fn, that, length){ aFunction(fn); if(that === undefined)return fn; @@ -33702,7 +33710,7 @@ module.exports = function(fn, that, length){ }; /***/ }), -/* 266 */ +/* 274 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_core.js ***! \**************************************************************************/ @@ -33714,7 +33722,7 @@ var core = module.exports = {version: '2.3.0'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef /***/ }), -/* 267 */ +/* 275 */ /*!******************************************!*\ !*** ./node_modules/jszip/lib/base64.js ***! \******************************************/ @@ -33725,7 +33733,7 @@ if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef "use strict"; var utils = __webpack_require__(/*! ./utils */ 74); -var support = __webpack_require__(/*! ./support */ 116); +var support = __webpack_require__(/*! ./support */ 119); // private property var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; @@ -33832,7 +33840,7 @@ exports.decode = function(input) { /***/ }), -/* 268 */ +/* 276 */ /*!***************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! \***************************************************************/ @@ -33908,11 +33916,11 @@ exports.decode = function(input) { module.exports = Transform; -var Duplex = __webpack_require__(/*! ./_stream_duplex */ 121); +var Duplex = __webpack_require__(/*! ./_stream_duplex */ 124); /**/ -var util = __webpack_require__(/*! core-util-is */ 136); -util.inherits = __webpack_require__(/*! inherits */ 131); +var util = __webpack_require__(/*! core-util-is */ 142); +util.inherits = __webpack_require__(/*! inherits */ 134); /**/ util.inherits(Transform, Duplex); @@ -34057,7 +34065,7 @@ function done(stream, er, data) { } /***/ }), -/* 269 */ +/* 277 */ /*!***********************************************************!*\ !*** ./node_modules/string_decoder/lib/string_decoder.js ***! \***********************************************************/ @@ -34068,7 +34076,7 @@ function done(stream, er, data) { "use strict"; -var Buffer = __webpack_require__(/*! safe-buffer */ 160).Buffer; +var Buffer = __webpack_require__(/*! safe-buffer */ 165).Buffer; var isEncoding = Buffer.isEncoding || function (encoding) { encoding = '' + encoding; @@ -34340,7 +34348,7 @@ function simpleEnd(buf) { } /***/ }), -/* 270 */ +/* 278 */ /*!**********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! \**********************************************************************/ @@ -34353,7 +34361,7 @@ function simpleEnd(buf) { /**/ -var processNextTick = __webpack_require__(/*! process-nextick-args */ 161).nextTick; +var processNextTick = __webpack_require__(/*! process-nextick-args */ 166).nextTick; /**/ // undocumented cb() API, needed for core, not for public API @@ -34425,9 +34433,9 @@ module.exports = { }; /***/ }), -/* 271 */, -/* 272 */, -/* 273 */ +/* 279 */, +/* 280 */, +/* 281 */ /*!*****************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! \*****************************************************************************/ @@ -34435,11 +34443,11 @@ module.exports = { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! events */ 217).EventEmitter; +module.exports = __webpack_require__(/*! events */ 226).EventEmitter; /***/ }), -/* 274 */ +/* 282 */ /*!**************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! \**************************************************************/ @@ -34473,13 +34481,13 @@ module.exports = __webpack_require__(/*! events */ 217).EventEmitter; /**/ -var processNextTick = __webpack_require__(/*! process-nextick-args */ 161).nextTick; +var processNextTick = __webpack_require__(/*! process-nextick-args */ 166).nextTick; /**/ module.exports = Readable; /**/ -var isArray = __webpack_require__(/*! isarray */ 276); +var isArray = __webpack_require__(/*! isarray */ 284); /**/ /**/ @@ -34489,7 +34497,7 @@ var Duplex; Readable.ReadableState = ReadableState; /**/ -var EE = __webpack_require__(/*! events */ 217).EventEmitter; +var EE = __webpack_require__(/*! events */ 226).EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; @@ -34497,12 +34505,12 @@ var EElistenerCount = function (emitter, type) { /**/ /**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ 273); +var Stream = __webpack_require__(/*! ./internal/streams/stream */ 281); /**/ /**/ -var Buffer = __webpack_require__(/*! safe-buffer */ 160).Buffer; +var Buffer = __webpack_require__(/*! safe-buffer */ 165).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); @@ -34514,12 +34522,12 @@ function _isUint8Array(obj) { /**/ /**/ -var util = __webpack_require__(/*! core-util-is */ 136); -util.inherits = __webpack_require__(/*! inherits */ 131); +var util = __webpack_require__(/*! core-util-is */ 142); +util.inherits = __webpack_require__(/*! inherits */ 134); /**/ /**/ -var debugUtil = __webpack_require__(/*! util */ 272); +var debugUtil = __webpack_require__(/*! util */ 280); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); @@ -34528,8 +34536,8 @@ if (debugUtil && debugUtil.debuglog) { } /**/ -var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ 391); -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 270); +var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ 399); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 278); var StringDecoder; util.inherits(Readable, Stream); @@ -34549,7 +34557,7 @@ function prependListener(emitter, event, fn) { } function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 121); + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 124); options = options || {}; @@ -34619,14 +34627,14 @@ function ReadableState(options, stream) { this.decoder = null; this.encoding = null; if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 269).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 277).StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 121); + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 124); if (!(this instanceof Readable)) return new Readable(options); @@ -34775,7 +34783,7 @@ Readable.prototype.isPaused = function () { // backwards compatibility. Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 269).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 277).StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; @@ -35463,10 +35471,10 @@ function indexOf(xs, x) { } return -1; } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 105), __webpack_require__(/*! ./../../process/browser.js */ 138))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 106), __webpack_require__(/*! ./../../process/browser.js */ 144))) /***/ }), -/* 275 */ +/* 283 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/readable-stream-browser.js ***! \***********************************************************/ @@ -35482,11 +35490,11 @@ function indexOf(xs, x) { * reduce the final size of the bundle (only one stream implementation, not * two). */ -module.exports = __webpack_require__(/*! stream */ 392); +module.exports = __webpack_require__(/*! stream */ 400); /***/ }), -/* 276 */ +/* 284 */ /*!***************************************!*\ !*** ./node_modules/isarray/index.js ***! \***************************************/ @@ -35502,7 +35510,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 277 */ +/* 285 */ /*!*************************************************!*\ !*** ./node_modules/jsplumb/dist/js/jsplumb.js ***! \*************************************************/ @@ -50199,7 +50207,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 278 */ +/* 286 */ /*!************************************************!*\ !*** ./node_modules/timers-browserify/main.js ***! \************************************************/ @@ -50260,7 +50268,7 @@ exports._unrefActive = exports.active = function(item) { }; // setimmediate attaches itself to the global object -__webpack_require__(/*! setimmediate */ 396); +__webpack_require__(/*! setimmediate */ 404); // On some exotic environments, it's not clear which object `setimmediate` was // able to install onto. Search each possibility in the same order as the // `setimmediate` library. @@ -50271,10 +50279,10 @@ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || (typeof global !== "undefined" && global.clearImmediate) || (this && this.clearImmediate); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106))) /***/ }), -/* 279 */ +/* 287 */ /*!******************************************************!*\ !*** ./node_modules/bluebird/js/browser/bluebird.js ***! \******************************************************/ @@ -55584,10 +55592,10 @@ module.exports = ret; },{"./es5":13}]},{},[4])(4) }); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ 138), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 105), __webpack_require__(/*! ./../../../timers-browserify/main.js */ 278).setImmediate)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ 144), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 106), __webpack_require__(/*! ./../../../timers-browserify/main.js */ 286).setImmediate)) /***/ }), -/* 280 */ +/* 288 */ /*!**************************************************!*\ !*** ./node_modules/brace/ext/language_tools.js ***! \**************************************************/ @@ -57553,7 +57561,7 @@ acequire("../config").defineOptions(Editor.prototype, "editor", { /***/ }), -/* 281 */ +/* 289 */ /*!************************************************!*\ !*** ./node_modules/brace/keybinding/emacs.js ***! \************************************************/ @@ -58745,7 +58753,7 @@ exports.killRing = { /***/ }), -/* 282 */ +/* 290 */ /*!**********************************************!*\ !*** ./node_modules/brace/keybinding/vim.js ***! \**********************************************/ @@ -64354,7 +64362,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ /***/ }), -/* 283 */ +/* 291 */ /*!*******************************************!*\ !*** ./node_modules/brace/theme/xcode.js ***! \*******************************************/ @@ -64453,7 +64461,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 284 */ +/* 292 */ /*!**********************************************!*\ !*** ./node_modules/brace/theme/twilight.js ***! \**********************************************/ @@ -64573,7 +64581,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 285 */ +/* 293 */ /*!**********************************************!*\ !*** ./node_modules/brace/theme/terminal.js ***! \**********************************************/ @@ -64698,7 +64706,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 286 */ +/* 294 */ /*!*****************************************************!*\ !*** ./node_modules/brace/theme/solarized_light.js ***! \*****************************************************/ @@ -64800,7 +64808,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 287 */ +/* 295 */ /*!****************************************************!*\ !*** ./node_modules/brace/theme/solarized_dark.js ***! \****************************************************/ @@ -64899,7 +64907,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 288 */ +/* 296 */ /*!*********************************************!*\ !*** ./node_modules/brace/theme/monokai.js ***! \*********************************************/ @@ -65015,7 +65023,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 289 */ +/* 297 */ /*!********************************************!*\ !*** ./node_modules/brace/theme/chrome.js ***! \********************************************/ @@ -65154,7 +65162,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 290 */ +/* 298 */ /*!*******************************************!*\ !*** ./node_modules/brace/theme/chaos.js ***! \*******************************************/ @@ -65321,7 +65329,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 291 */ +/* 299 */ /*!***********************************************!*\ !*** ./node_modules/brace/mode/javascript.js ***! \***********************************************/ @@ -66099,7 +66107,7 @@ oop.inherits(Mode, TextMode); }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(/*! ../worker/javascript */ 222), "JavaScriptWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(/*! ../worker/javascript */ 231), "JavaScriptWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(results) { @@ -66121,7 +66129,7 @@ exports.Mode = Mode; /***/ }), -/* 292 */ +/* 300 */ /*!**********************************************!*\ !*** ./node_modules/js-beautify/js/index.js ***! \**********************************************/ @@ -66194,9 +66202,9 @@ function get_beautify(js_beautify, css_beautify, html_beautify) { if (true) { // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ - __webpack_require__(/*! ./lib/beautify */ 224), - __webpack_require__(/*! ./lib/beautify-css */ 223), - __webpack_require__(/*! ./lib/beautify-html */ 397) + __webpack_require__(/*! ./lib/beautify */ 233), + __webpack_require__(/*! ./lib/beautify-css */ 232), + __webpack_require__(/*! ./lib/beautify-html */ 405) ], __WEBPACK_AMD_DEFINE_RESULT__ = (function(js_beautify, css_beautify, html_beautify) { return get_beautify(js_beautify, css_beautify, html_beautify); }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), @@ -66204,7 +66212,7 @@ if (true) { } else {} /***/ }), -/* 293 */ +/* 301 */ /*!*************************************!*\ !*** ./node_modules/brace/index.js ***! \*************************************/ @@ -70392,7 +70400,7 @@ init(true);function init(packaged) { if (!global || !global.document) return; - options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(/*! !webpack amd define */ 225).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(/*! !webpack amd define */ 234).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -86419,7 +86427,7 @@ exports.config = acequire("./config"); exports.acequire = acequire; if (true) - exports.define = __webpack_require__(/*! !webpack amd define */ 225); + exports.define = __webpack_require__(/*! !webpack amd define */ 234); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -86486,7 +86494,7 @@ exports.version = "1.2.9"; module.exports = window.ace.acequire("ace/ace"); /***/ }), -/* 294 */ +/* 302 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/ru.js ***! \********************************************/ @@ -86500,7 +86508,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86531,7 +86539,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 295 */ +/* 303 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/pl.js ***! \********************************************/ @@ -86545,7 +86553,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86573,7 +86581,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 296 */ +/* 304 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/no.js ***! \********************************************/ @@ -86587,7 +86595,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86615,7 +86623,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 297 */ +/* 305 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/lv.js ***! \********************************************/ @@ -86629,7 +86637,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86657,7 +86665,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 298 */ +/* 306 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/it.js ***! \********************************************/ @@ -86671,7 +86679,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86699,7 +86707,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 299 */ +/* 307 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/hu.js ***! \********************************************/ @@ -86713,7 +86721,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86741,7 +86749,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 300 */ +/* 308 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/fr.js ***! \********************************************/ @@ -86755,7 +86763,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86783,7 +86791,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 301 */ +/* 309 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/es.js ***! \********************************************/ @@ -86797,7 +86805,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86830,7 +86838,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 302 */ +/* 310 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/en-gb.js ***! \***********************************************/ @@ -86844,7 +86852,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86876,7 +86884,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 303 */ +/* 311 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/en-au.js ***! \***********************************************/ @@ -86890,7 +86898,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86922,7 +86930,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 304 */ +/* 312 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/de.js ***! \********************************************/ @@ -86936,7 +86944,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -86964,7 +86972,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 305 */ +/* 313 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/da-dk.js ***! \***********************************************/ @@ -86978,7 +86986,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -87006,7 +87014,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 306 */ +/* 314 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/cs.js ***! \********************************************/ @@ -87020,7 +87028,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -87048,7 +87056,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 307 */ +/* 315 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/bg.js ***! \********************************************/ @@ -87062,7 +87070,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ (function (global, factory) { if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../numeral */ 88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -87098,7 +87106,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 308 */ +/* 316 */ /*!***************************************************************!*\ !*** ./node_modules/chai-as-promised/lib/chai-as-promised.js ***! \***************************************************************/ @@ -87109,7 +87117,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ "use strict"; /* eslint-disable no-invalid-this */ -let checkError = __webpack_require__(/*! check-error */ 235); +let checkError = __webpack_require__(/*! check-error */ 243); module.exports = (chai, utils) => { const Assertion = chai.Assertion; @@ -87471,7 +87479,7 @@ module.exports.transformAsserterArgs = values => values; /***/ }), -/* 309 */ +/* 317 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/assert.js ***! \********************************************************/ @@ -90580,7 +90588,7 @@ module.exports = function (chai, util) { /***/ }), -/* 310 */ +/* 318 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/should.js ***! \********************************************************/ @@ -90795,7 +90803,7 @@ module.exports = function (chai, util) { /***/ }), -/* 311 */ +/* 319 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/expect.js ***! \********************************************************/ @@ -90840,7 +90848,7 @@ module.exports = function (chai, util) { /***/ }), -/* 312 */ +/* 320 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/core/assertions.js ***! \*******************************************************/ @@ -94580,7 +94588,7 @@ module.exports = function (chai, _) { /***/ }), -/* 313 */ +/* 321 */ /*!*************************************************!*\ !*** ./node_modules/chai/lib/chai/assertion.js ***! \*************************************************/ @@ -94595,7 +94603,7 @@ module.exports = function (chai, _) { * MIT Licensed */ -var config = __webpack_require__(/*! ./config */ 119); +var config = __webpack_require__(/*! ./config */ 122); module.exports = function (_chai, util) { /*! @@ -94756,7 +94764,7 @@ module.exports = function (_chai, util) { /***/ }), -/* 314 */ +/* 322 */ /*!***************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/isNaN.js ***! \***************************************************/ @@ -94793,7 +94801,7 @@ module.exports = Number.isNaN || isNaN; /***/ }), -/* 315 */ +/* 323 */ /*!************************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js ***! \************************************************************************/ @@ -94811,7 +94819,7 @@ module.exports = Number.isNaN || isNaN; * Module dependancies */ -var getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 236); +var getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 244); /** * ### .getOwnEnumerableProperties(object) @@ -94833,7 +94841,7 @@ module.exports = function getOwnEnumerableProperties(obj) { /***/ }), -/* 316 */ +/* 324 */ /*!**************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/compareByInspect.js ***! \**************************************************************/ @@ -94851,7 +94859,7 @@ module.exports = function getOwnEnumerableProperties(obj) { * Module dependancies */ -var inspect = __webpack_require__(/*! ./inspect */ 157); +var inspect = __webpack_require__(/*! ./inspect */ 162); /** * ### .compareByInspect(mixed, mixed) @@ -94875,7 +94883,7 @@ module.exports = function compareByInspect(a, b) { /***/ }), -/* 317 */ +/* 325 */ /*!**********************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteChainableMethod.js ***! \**********************************************************************/ @@ -94889,8 +94897,8 @@ module.exports = function compareByInspect(a, b) { * MIT Licensed */ -var chai = __webpack_require__(/*! ../../chai */ 120); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var chai = __webpack_require__(/*! ../../chai */ 123); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /** * ### .overwriteChainableMethod(ctx, name, method, chainingBehavior) @@ -94955,7 +94963,7 @@ module.exports = function overwriteChainableMethod(ctx, name, method, chainingBe /***/ }), -/* 318 */ +/* 326 */ /*!****************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addChainableMethod.js ***! \****************************************************************/ @@ -94973,11 +94981,11 @@ module.exports = function overwriteChainableMethod(ctx, name, method, chainingBe * Module dependencies */ -var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 155); -var chai = __webpack_require__(/*! ../../chai */ 120); -var flag = __webpack_require__(/*! ./flag */ 104); -var proxify = __webpack_require__(/*! ./proxify */ 154); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 160); +var chai = __webpack_require__(/*! ../../chai */ 123); +var flag = __webpack_require__(/*! ./flag */ 105); +var proxify = __webpack_require__(/*! ./proxify */ 159); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /*! * Module variables @@ -95118,7 +95126,7 @@ module.exports = function addChainableMethod(ctx, name, method, chainingBehavior /***/ }), -/* 319 */ +/* 327 */ /*!*************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteMethod.js ***! \*************************************************************/ @@ -95132,11 +95140,11 @@ module.exports = function addChainableMethod(ctx, name, method, chainingBehavior * MIT Licensed */ -var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 155); -var chai = __webpack_require__(/*! ../../chai */ 120); -var flag = __webpack_require__(/*! ./flag */ 104); -var proxify = __webpack_require__(/*! ./proxify */ 154); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 160); +var chai = __webpack_require__(/*! ../../chai */ 123); +var flag = __webpack_require__(/*! ./flag */ 105); +var proxify = __webpack_require__(/*! ./proxify */ 159); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /** * ### .overwriteMethod(ctx, name, fn) @@ -95221,7 +95229,7 @@ module.exports = function overwriteMethod(ctx, name, method) { /***/ }), -/* 320 */ +/* 328 */ /*!***************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteProperty.js ***! \***************************************************************/ @@ -95235,10 +95243,10 @@ module.exports = function overwriteMethod(ctx, name, method) { * MIT Licensed */ -var chai = __webpack_require__(/*! ../../chai */ 120); -var flag = __webpack_require__(/*! ./flag */ 104); -var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 156); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var chai = __webpack_require__(/*! ../../chai */ 123); +var flag = __webpack_require__(/*! ./flag */ 105); +var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 161); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /** * ### .overwriteProperty(ctx, name, fn) @@ -95324,7 +95332,7 @@ module.exports = function overwriteProperty(ctx, name, getter) { /***/ }), -/* 321 */ +/* 329 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addMethod.js ***! \*******************************************************/ @@ -95338,11 +95346,11 @@ module.exports = function overwriteProperty(ctx, name, getter) { * MIT Licensed */ -var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 155); -var chai = __webpack_require__(/*! ../../chai */ 120); -var flag = __webpack_require__(/*! ./flag */ 104); -var proxify = __webpack_require__(/*! ./proxify */ 154); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 160); +var chai = __webpack_require__(/*! ../../chai */ 123); +var flag = __webpack_require__(/*! ./flag */ 105); +var proxify = __webpack_require__(/*! ./proxify */ 159); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /** * ### .addMethod(ctx, name, method) @@ -95403,7 +95411,7 @@ module.exports = function addMethod(ctx, name, method) { /***/ }), -/* 322 */ +/* 330 */ /*!*********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addProperty.js ***! \*********************************************************/ @@ -95417,10 +95425,10 @@ module.exports = function addMethod(ctx, name, method) { * MIT Licensed */ -var chai = __webpack_require__(/*! ../../chai */ 120); -var flag = __webpack_require__(/*! ./flag */ 104); -var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 156); -var transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +var chai = __webpack_require__(/*! ../../chai */ 123); +var flag = __webpack_require__(/*! ./flag */ 105); +var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 161); +var transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /** * ### .addProperty(ctx, name, getter) @@ -95486,7 +95494,7 @@ module.exports = function addProperty(ctx, name, getter) { /***/ }), -/* 323 */ +/* 331 */ /*!****************************************!*\ !*** ./node_modules/deep-eql/index.js ***! \****************************************/ @@ -95503,7 +95511,7 @@ module.exports = function addProperty(ctx, name, getter) { * MIT Licensed */ -var type = __webpack_require__(/*! type-detect */ 167); +var type = __webpack_require__(/*! type-detect */ 172); function FakeMap() { this._key = 'chai/deep-eql__' + Math.random() + Date.now(); } @@ -95953,7 +95961,7 @@ function isPrimitive(value) { /***/ }), -/* 324 */ +/* 332 */ /*!*********************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getEnumerableProperties.js ***! \*********************************************************************/ @@ -95990,7 +95998,7 @@ module.exports = function getEnumerableProperties(object) { /***/ }), -/* 325 */ +/* 333 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getMessage.js ***! \********************************************************/ @@ -96008,10 +96016,10 @@ module.exports = function getEnumerableProperties(object) { * Module dependancies */ -var flag = __webpack_require__(/*! ./flag */ 104) - , getActual = __webpack_require__(/*! ./getActual */ 240) - , inspect = __webpack_require__(/*! ./inspect */ 157) - , objDisplay = __webpack_require__(/*! ./objDisplay */ 237); +var flag = __webpack_require__(/*! ./flag */ 105) + , getActual = __webpack_require__(/*! ./getActual */ 248) + , inspect = __webpack_require__(/*! ./inspect */ 162) + , objDisplay = __webpack_require__(/*! ./objDisplay */ 245); /** * ### .getMessage(object, message, negateMessage) @@ -96052,7 +96060,7 @@ module.exports = function getMessage(obj, args) { /***/ }), -/* 326 */ +/* 334 */ /*!*********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/expectTypes.js ***! \*********************************************************/ @@ -96080,9 +96088,9 @@ module.exports = function getMessage(obj, args) { * @api public */ -var AssertionError = __webpack_require__(/*! assertion-error */ 241); -var flag = __webpack_require__(/*! ./flag */ 104); -var type = __webpack_require__(/*! type-detect */ 167); +var AssertionError = __webpack_require__(/*! assertion-error */ 249); +var flag = __webpack_require__(/*! ./flag */ 105); +var type = __webpack_require__(/*! type-detect */ 172); module.exports = function expectTypes(obj, types) { var flagMsg = flag(obj, 'message'); @@ -96114,7 +96122,7 @@ module.exports = function expectTypes(obj, types) { /***/ }), -/* 327 */ +/* 335 */ /*!**************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/test.js ***! \**************************************************/ @@ -96132,7 +96140,7 @@ module.exports = function expectTypes(obj, types) { * Module dependancies */ -var flag = __webpack_require__(/*! ./flag */ 104); +var flag = __webpack_require__(/*! ./flag */ 105); /** * ### .test(object, expression) @@ -96153,7 +96161,7 @@ module.exports = function test(obj, args) { /***/ }), -/* 328 */ +/* 336 */ /*!***************************************!*\ !*** ./node_modules/pathval/index.js ***! \***************************************/ @@ -96456,7 +96464,7 @@ module.exports = { /***/ }), -/* 329 */ +/* 337 */ /*!***************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/index.js ***! \***************************************************/ @@ -96474,66 +96482,66 @@ module.exports = { * Dependencies that are used for multiple exports are required here only once */ -var pathval = __webpack_require__(/*! pathval */ 328); +var pathval = __webpack_require__(/*! pathval */ 336); /*! * test utility */ -exports.test = __webpack_require__(/*! ./test */ 327); +exports.test = __webpack_require__(/*! ./test */ 335); /*! * type utility */ -exports.type = __webpack_require__(/*! type-detect */ 167); +exports.type = __webpack_require__(/*! type-detect */ 172); /*! * expectTypes utility */ -exports.expectTypes = __webpack_require__(/*! ./expectTypes */ 326); +exports.expectTypes = __webpack_require__(/*! ./expectTypes */ 334); /*! * message utility */ -exports.getMessage = __webpack_require__(/*! ./getMessage */ 325); +exports.getMessage = __webpack_require__(/*! ./getMessage */ 333); /*! * actual utility */ -exports.getActual = __webpack_require__(/*! ./getActual */ 240); +exports.getActual = __webpack_require__(/*! ./getActual */ 248); /*! * Inspect util */ -exports.inspect = __webpack_require__(/*! ./inspect */ 157); +exports.inspect = __webpack_require__(/*! ./inspect */ 162); /*! * Object Display util */ -exports.objDisplay = __webpack_require__(/*! ./objDisplay */ 237); +exports.objDisplay = __webpack_require__(/*! ./objDisplay */ 245); /*! * Flag utility */ -exports.flag = __webpack_require__(/*! ./flag */ 104); +exports.flag = __webpack_require__(/*! ./flag */ 105); /*! * Flag transferring utility */ -exports.transferFlags = __webpack_require__(/*! ./transferFlags */ 118); +exports.transferFlags = __webpack_require__(/*! ./transferFlags */ 121); /*! * Deep equal utility */ -exports.eql = __webpack_require__(/*! deep-eql */ 323); +exports.eql = __webpack_require__(/*! deep-eql */ 331); /*! * Deep path info @@ -96551,95 +96559,95 @@ exports.hasProperty = pathval.hasProperty; * Function name */ -exports.getName = __webpack_require__(/*! get-func-name */ 239); +exports.getName = __webpack_require__(/*! get-func-name */ 247); /*! * add Property */ -exports.addProperty = __webpack_require__(/*! ./addProperty */ 322); +exports.addProperty = __webpack_require__(/*! ./addProperty */ 330); /*! * add Method */ -exports.addMethod = __webpack_require__(/*! ./addMethod */ 321); +exports.addMethod = __webpack_require__(/*! ./addMethod */ 329); /*! * overwrite Property */ -exports.overwriteProperty = __webpack_require__(/*! ./overwriteProperty */ 320); +exports.overwriteProperty = __webpack_require__(/*! ./overwriteProperty */ 328); /*! * overwrite Method */ -exports.overwriteMethod = __webpack_require__(/*! ./overwriteMethod */ 319); +exports.overwriteMethod = __webpack_require__(/*! ./overwriteMethod */ 327); /*! * Add a chainable method */ -exports.addChainableMethod = __webpack_require__(/*! ./addChainableMethod */ 318); +exports.addChainableMethod = __webpack_require__(/*! ./addChainableMethod */ 326); /*! * Overwrite chainable method */ -exports.overwriteChainableMethod = __webpack_require__(/*! ./overwriteChainableMethod */ 317); +exports.overwriteChainableMethod = __webpack_require__(/*! ./overwriteChainableMethod */ 325); /*! * Compare by inspect method */ -exports.compareByInspect = __webpack_require__(/*! ./compareByInspect */ 316); +exports.compareByInspect = __webpack_require__(/*! ./compareByInspect */ 324); /*! * Get own enumerable property symbols method */ -exports.getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 236); +exports.getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 244); /*! * Get own enumerable properties method */ -exports.getOwnEnumerableProperties = __webpack_require__(/*! ./getOwnEnumerableProperties */ 315); +exports.getOwnEnumerableProperties = __webpack_require__(/*! ./getOwnEnumerableProperties */ 323); /*! * Checks error against a given set of criteria */ -exports.checkError = __webpack_require__(/*! check-error */ 235); +exports.checkError = __webpack_require__(/*! check-error */ 243); /*! * Proxify util */ -exports.proxify = __webpack_require__(/*! ./proxify */ 154); +exports.proxify = __webpack_require__(/*! ./proxify */ 159); /*! * addLengthGuard util */ -exports.addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 155); +exports.addLengthGuard = __webpack_require__(/*! ./addLengthGuard */ 160); /*! * isProxyEnabled helper */ -exports.isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 156); +exports.isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 161); /*! * isNaN method */ -exports.isNaN = __webpack_require__(/*! ./isNaN */ 314); +exports.isNaN = __webpack_require__(/*! ./isNaN */ 322); /***/ }), -/* 330 */ +/* 338 */ /*!************************************!*\ !*** ./node_modules/chai/index.js ***! \************************************/ @@ -96647,14 +96655,14 @@ exports.isNaN = __webpack_require__(/*! ./isNaN */ 314); /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./lib/chai */ 120); +module.exports = __webpack_require__(/*! ./lib/chai */ 123); /***/ }), -/* 331 */, -/* 332 */, -/* 333 */, -/* 334 */ +/* 339 */, +/* 340 */, +/* 341 */, +/* 342 */ /*!*********************************************!*\ !*** ./node_modules/escodegen/package.json ***! \*********************************************/ @@ -96665,7 +96673,7 @@ module.exports = __webpack_require__(/*! ./lib/chai */ 120); module.exports = {"_args":[["escodegen@1.11.0","C:\\Users\\danie\\Desktop\\bitburner"]],"_from":"escodegen@1.11.0","_id":"escodegen@1.11.0","_inBundle":false,"_integrity":"sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==","_location":"/escodegen","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"escodegen@1.11.0","name":"escodegen","escapedName":"escodegen","rawSpec":"1.11.0","saveSpec":null,"fetchSpec":"1.11.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz","_spec":"1.11.0","_where":"C:\\Users\\danie\\Desktop\\bitburner","bin":{"esgenerate":"./bin/esgenerate.js","escodegen":"./bin/escodegen.js"},"bugs":{"url":"https://github.com/estools/escodegen/issues"},"dependencies":{"esprima":"^3.1.3","estraverse":"^4.2.0","esutils":"^2.0.2","optionator":"^0.8.1","source-map":"~0.6.1"},"description":"ECMAScript code generator","devDependencies":{"acorn":"^4.0.4","bluebird":"^3.4.7","bower-registry-client":"^1.0.0","chai":"^3.5.0","commonjs-everywhere":"^0.9.7","gulp":"^3.8.10","gulp-eslint":"^3.0.1","gulp-mocha":"^3.0.1","semver":"^5.1.0"},"engines":{"node":">=4.0"},"files":["LICENSE.BSD","README.md","bin","escodegen.js","package.json"],"homepage":"http://github.com/estools/escodegen","license":"BSD-2-Clause","main":"escodegen.js","maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","url":"http://github.com/Constellation"}],"name":"escodegen","optionalDependencies":{"source-map":"~0.6.1"},"repository":{"type":"git","url":"git+ssh://git@github.com/estools/escodegen.git"},"scripts":{"build":"cjsify -a path: tools/entry-point.js > escodegen.browser.js","build-min":"cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js","lint":"gulp lint","release":"node tools/release.js","test":"gulp travis","unit-test":"gulp test"},"version":"1.11.0"}; /***/ }), -/* 335 */ +/* 343 */ /*!***************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-node.js ***! \***************************************************************************/ @@ -96680,8 +96688,8 @@ module.exports = {"_args":[["escodegen@1.11.0","C:\\Users\\danie\\Desktop\\bitbu * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ 245).SourceMapGenerator; -var util = __webpack_require__(/*! ./util */ 133); +var SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ 253).SourceMapGenerator; +var util = __webpack_require__(/*! ./util */ 138); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other // operating systems these days (capturing the result). @@ -97089,7 +97097,7 @@ exports.SourceNode = SourceNode; /***/ }), -/* 336 */ +/* 344 */ /*!**************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/quick-sort.js ***! \**************************************************************************/ @@ -97214,7 +97222,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 337 */ +/* 345 */ /*!*****************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/binary-search.js ***! \*****************************************************************************/ @@ -97336,7 +97344,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 338 */ +/* 346 */ /*!***********************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-map-consumer.js ***! \***********************************************************************************/ @@ -97351,11 +97359,11 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(/*! ./util */ 133); -var binarySearch = __webpack_require__(/*! ./binary-search */ 337); -var ArraySet = __webpack_require__(/*! ./array-set */ 243).ArraySet; -var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 244); -var quickSort = __webpack_require__(/*! ./quick-sort */ 336).quickSort; +var util = __webpack_require__(/*! ./util */ 138); +var binarySearch = __webpack_require__(/*! ./binary-search */ 345); +var ArraySet = __webpack_require__(/*! ./array-set */ 251).ArraySet; +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 252); +var quickSort = __webpack_require__(/*! ./quick-sort */ 344).quickSort; function SourceMapConsumer(aSourceMap, aSourceMapURL) { var sourceMap = aSourceMap; @@ -98492,7 +98500,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 339 */ +/* 347 */ /*!****************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/mapping-list.js ***! \****************************************************************************/ @@ -98507,7 +98515,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(/*! ./util */ 133); +var util = __webpack_require__(/*! ./util */ 138); /** * Determine whether mappingB is after mappingA with respect to generated @@ -98582,7 +98590,7 @@ exports.MappingList = MappingList; /***/ }), -/* 340 */ +/* 348 */ /*!**********************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/base64.js ***! \**********************************************************************/ @@ -98660,7 +98668,7 @@ exports.decode = function (charCode) { /***/ }), -/* 341 */ +/* 349 */ /*!**********************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/source-map.js ***! \**********************************************************************/ @@ -98673,13 +98681,13 @@ exports.decode = function (charCode) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ 245).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ 338).SourceMapConsumer; -exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNode; +exports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ 253).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ 346).SourceMapConsumer; +exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 343).SourceNode; /***/ }), -/* 342 */ +/* 350 */ /*!*********************************************!*\ !*** ./node_modules/esutils/lib/keyword.js ***! \*********************************************/ @@ -98714,7 +98722,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNod (function () { 'use strict'; - var code = __webpack_require__(/*! ./code */ 246); + var code = __webpack_require__(/*! ./code */ 254); function isStrictModeReservedWordES6(id) { switch (id) { @@ -98855,7 +98863,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNod /***/ }), -/* 343 */ +/* 351 */ /*!*****************************************!*\ !*** ./node_modules/esutils/lib/ast.js ***! \*****************************************/ @@ -99010,7 +99018,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNod /***/ }), -/* 344 */ +/* 352 */ /*!*******************************************!*\ !*** ./node_modules/esutils/lib/utils.js ***! \*******************************************/ @@ -99046,15 +99054,15 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNod (function () { 'use strict'; - exports.ast = __webpack_require__(/*! ./ast */ 343); - exports.code = __webpack_require__(/*! ./code */ 246); - exports.keyword = __webpack_require__(/*! ./keyword */ 342); + exports.ast = __webpack_require__(/*! ./ast */ 351); + exports.code = __webpack_require__(/*! ./code */ 254); + exports.keyword = __webpack_require__(/*! ./keyword */ 350); }()); /* vim: set sw=4 ts=4 et tw=80 : */ /***/ }), -/* 345 */ +/* 353 */ /*!**********************************************!*\ !*** ./node_modules/estraverse/package.json ***! \**********************************************/ @@ -99065,7 +99073,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 335).SourceNod module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitburner"]],"_from":"estraverse@4.2.0","_id":"estraverse@4.2.0","_inBundle":false,"_integrity":"sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=","_location":"/estraverse","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"estraverse@4.2.0","name":"estraverse","escapedName":"estraverse","rawSpec":"4.2.0","saveSpec":null,"fetchSpec":"4.2.0"},"_requiredBy":["/escodegen","/escope","/eslint-scope","/esquery","/esrecurse"],"_resolved":"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz","_spec":"4.2.0","_where":"C:\\Users\\danie\\Desktop\\bitburner","bugs":{"url":"https://github.com/estools/estraverse/issues"},"description":"ECMAScript JS AST traversal functions","devDependencies":{"babel-preset-es2015":"^6.3.13","babel-register":"^6.3.13","chai":"^2.1.1","espree":"^1.11.0","gulp":"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.2.1","jshint":"^2.5.6","mocha":"^2.1.0"},"engines":{"node":">=0.10.0"},"homepage":"https://github.com/estools/estraverse","license":"BSD-2-Clause","main":"estraverse.js","maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","url":"http://github.com/Constellation"}],"name":"estraverse","repository":{"type":"git","url":"git+ssh://git@github.com/estools/estraverse.git"},"scripts":{"lint":"jshint estraverse.js","test":"npm run-script lint && npm run-script unit-test","unit-test":"mocha --compilers js:babel-register"},"version":"4.2.0"}; /***/ }), -/* 346 */ +/* 354 */ /*!***********************************************!*\ !*** ./node_modules/estraverse/estraverse.js ***! \***********************************************/ @@ -99909,7 +99917,7 @@ module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitbu return tree; } - exports.version = __webpack_require__(/*! ./package.json */ 345).version; + exports.version = __webpack_require__(/*! ./package.json */ 353).version; exports.Syntax = Syntax; exports.traverse = traverse; exports.replace = replace; @@ -99925,7 +99933,7 @@ module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitbu /***/ }), -/* 347 */ +/* 355 */ /*!****************************************!*\ !*** (webpack)/buildin/amd-options.js ***! \****************************************/ @@ -99939,7 +99947,7 @@ module.exports = __webpack_amd_options__; /* WEBPACK VAR INJECTION */}.call(this, {})) /***/ }), -/* 348 */ +/* 356 */ /*!********************************************!*\ !*** ./node_modules/jszip/lib/zipEntry.js ***! \********************************************/ @@ -99949,13 +99957,13 @@ module.exports = __webpack_amd_options__; "use strict"; -var readerFor = __webpack_require__(/*! ./reader/readerFor */ 250); +var readerFor = __webpack_require__(/*! ./reader/readerFor */ 258); var utils = __webpack_require__(/*! ./utils */ 74); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 212); -var crc32fn = __webpack_require__(/*! ./crc32 */ 211); -var utf8 = __webpack_require__(/*! ./utf8 */ 132); -var compressions = __webpack_require__(/*! ./compressions */ 257); -var support = __webpack_require__(/*! ./support */ 116); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 221); +var crc32fn = __webpack_require__(/*! ./crc32 */ 220); +var utf8 = __webpack_require__(/*! ./utf8 */ 135); +var compressions = __webpack_require__(/*! ./compressions */ 265); +var support = __webpack_require__(/*! ./support */ 119); var MADE_BY_DOS = 0x00; var MADE_BY_UNIX = 0x03; @@ -100243,7 +100251,7 @@ module.exports = ZipEntry; /***/ }), -/* 349 */ +/* 357 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/reader/NodeBufferReader.js ***! \***********************************************************/ @@ -100253,7 +100261,7 @@ module.exports = ZipEntry; "use strict"; -var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 247); +var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 255); var utils = __webpack_require__(/*! ../utils */ 74); function NodeBufferReader(data) { @@ -100274,7 +100282,7 @@ module.exports = NodeBufferReader; /***/ }), -/* 350 */ +/* 358 */ /*!*******************************************************!*\ !*** ./node_modules/jszip/lib/reader/StringReader.js ***! \*******************************************************/ @@ -100284,7 +100292,7 @@ module.exports = NodeBufferReader; "use strict"; -var DataReader = __webpack_require__(/*! ./DataReader */ 248); +var DataReader = __webpack_require__(/*! ./DataReader */ 256); var utils = __webpack_require__(/*! ../utils */ 74); function StringReader(data) { @@ -100324,7 +100332,7 @@ module.exports = StringReader; /***/ }), -/* 351 */ +/* 359 */ /*!**********************************************!*\ !*** ./node_modules/jszip/lib/zipEntries.js ***! \**********************************************/ @@ -100334,12 +100342,12 @@ module.exports = StringReader; "use strict"; -var readerFor = __webpack_require__(/*! ./reader/readerFor */ 250); +var readerFor = __webpack_require__(/*! ./reader/readerFor */ 258); var utils = __webpack_require__(/*! ./utils */ 74); -var sig = __webpack_require__(/*! ./signature */ 251); -var ZipEntry = __webpack_require__(/*! ./zipEntry */ 348); -var utf8 = __webpack_require__(/*! ./utf8 */ 132); -var support = __webpack_require__(/*! ./support */ 116); +var sig = __webpack_require__(/*! ./signature */ 259); +var ZipEntry = __webpack_require__(/*! ./zipEntry */ 356); +var utf8 = __webpack_require__(/*! ./utf8 */ 135); +var support = __webpack_require__(/*! ./support */ 119); // class ZipEntries {{{ /** * All the entries in the zip file. @@ -100598,7 +100606,7 @@ module.exports = ZipEntries; /***/ }), -/* 352 */ +/* 360 */ /*!****************************************!*\ !*** ./node_modules/jszip/lib/load.js ***! \****************************************/ @@ -100609,12 +100617,12 @@ module.exports = ZipEntries; "use strict"; var utils = __webpack_require__(/*! ./utils */ 74); -var external = __webpack_require__(/*! ./external */ 135); -var utf8 = __webpack_require__(/*! ./utf8 */ 132); +var external = __webpack_require__(/*! ./external */ 141); +var utf8 = __webpack_require__(/*! ./utf8 */ 135); var utils = __webpack_require__(/*! ./utils */ 74); -var ZipEntries = __webpack_require__(/*! ./zipEntries */ 351); -var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 258); -var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 159); +var ZipEntries = __webpack_require__(/*! ./zipEntries */ 359); +var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 266); +var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 164); /** * Check the CRC32 of an entry. @@ -100692,7 +100700,7 @@ module.exports = function(data, options) { /***/ }), -/* 353 */ +/* 361 */ /*!*******************************************************************!*\ !*** ./node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js ***! \*******************************************************************/ @@ -100778,7 +100786,7 @@ module.exports = NodejsStreamInputAdapter; /***/ }), -/* 354 */ +/* 362 */ /*!**********************************************************!*\ !*** ./node_modules/jszip/lib/generate/ZipFileWorker.js ***! \**********************************************************/ @@ -100791,9 +100799,9 @@ module.exports = NodejsStreamInputAdapter; var utils = __webpack_require__(/*! ../utils */ 74); var GenericWorker = __webpack_require__(/*! ../stream/GenericWorker */ 95); -var utf8 = __webpack_require__(/*! ../utf8 */ 132); -var crc32 = __webpack_require__(/*! ../crc32 */ 211); -var signature = __webpack_require__(/*! ../signature */ 251); +var utf8 = __webpack_require__(/*! ../utf8 */ 135); +var crc32 = __webpack_require__(/*! ../crc32 */ 220); +var signature = __webpack_require__(/*! ../signature */ 259); /** * Transform an integer into a string in hexadecimal. @@ -101330,7 +101338,7 @@ module.exports = ZipFileWorker; /***/ }), -/* 355 */ +/* 363 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/gzheader.js ***! \************************************************/ @@ -101400,7 +101408,7 @@ module.exports = GZheader; /***/ }), -/* 356 */ +/* 364 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/inftrees.js ***! \************************************************/ @@ -101430,7 +101438,7 @@ module.exports = GZheader; // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. -var utils = __webpack_require__(/*! ../utils/common */ 115); +var utils = __webpack_require__(/*! ../utils/common */ 118); var MAXBITS = 15; var ENOUGH_LENS = 852; @@ -101755,7 +101763,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta /***/ }), -/* 357 */ +/* 365 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/inffast.js ***! \***********************************************/ @@ -102112,7 +102120,7 @@ module.exports = function inflate_fast(strm, start) { /***/ }), -/* 358 */ +/* 366 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/inflate.js ***! \***********************************************/ @@ -102142,11 +102150,11 @@ module.exports = function inflate_fast(strm, start) { // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. -var utils = __webpack_require__(/*! ../utils/common */ 115); -var adler32 = __webpack_require__(/*! ./adler32 */ 256); -var crc32 = __webpack_require__(/*! ./crc32 */ 255); -var inflate_fast = __webpack_require__(/*! ./inffast */ 357); -var inflate_table = __webpack_require__(/*! ./inftrees */ 356); +var utils = __webpack_require__(/*! ../utils/common */ 118); +var adler32 = __webpack_require__(/*! ./adler32 */ 264); +var crc32 = __webpack_require__(/*! ./crc32 */ 263); +var inflate_fast = __webpack_require__(/*! ./inffast */ 365); +var inflate_table = __webpack_require__(/*! ./inftrees */ 364); var CODES = 0; var LENS = 1; @@ -103680,7 +103688,7 @@ exports.inflateUndermine = inflateUndermine; /***/ }), -/* 359 */ +/* 367 */ /*!******************************************!*\ !*** ./node_modules/pako/lib/inflate.js ***! \******************************************/ @@ -103692,13 +103700,13 @@ exports.inflateUndermine = inflateUndermine; -var zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ 358); -var utils = __webpack_require__(/*! ./utils/common */ 115); -var strings = __webpack_require__(/*! ./utils/strings */ 254); -var c = __webpack_require__(/*! ./zlib/constants */ 252); -var msg = __webpack_require__(/*! ./zlib/messages */ 210); -var ZStream = __webpack_require__(/*! ./zlib/zstream */ 253); -var GZheader = __webpack_require__(/*! ./zlib/gzheader */ 355); +var zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ 366); +var utils = __webpack_require__(/*! ./utils/common */ 118); +var strings = __webpack_require__(/*! ./utils/strings */ 262); +var c = __webpack_require__(/*! ./zlib/constants */ 260); +var msg = __webpack_require__(/*! ./zlib/messages */ 219); +var ZStream = __webpack_require__(/*! ./zlib/zstream */ 261); +var GZheader = __webpack_require__(/*! ./zlib/gzheader */ 363); var toString = Object.prototype.toString; @@ -104110,7 +104118,7 @@ exports.ungzip = inflate; /***/ }), -/* 360 */ +/* 368 */ /*!*********************************************!*\ !*** ./node_modules/pako/lib/zlib/trees.js ***! \*********************************************/ @@ -104140,7 +104148,7 @@ exports.ungzip = inflate; // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. -var utils = __webpack_require__(/*! ../utils/common */ 115); +var utils = __webpack_require__(/*! ../utils/common */ 118); /* Public constants ==========================================================*/ /* ===========================================================================*/ @@ -105342,7 +105350,7 @@ exports._tr_align = _tr_align; /***/ }), -/* 361 */ +/* 369 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/deflate.js ***! \***********************************************/ @@ -105372,11 +105380,11 @@ exports._tr_align = _tr_align; // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. -var utils = __webpack_require__(/*! ../utils/common */ 115); -var trees = __webpack_require__(/*! ./trees */ 360); -var adler32 = __webpack_require__(/*! ./adler32 */ 256); -var crc32 = __webpack_require__(/*! ./crc32 */ 255); -var msg = __webpack_require__(/*! ./messages */ 210); +var utils = __webpack_require__(/*! ../utils/common */ 118); +var trees = __webpack_require__(/*! ./trees */ 368); +var adler32 = __webpack_require__(/*! ./adler32 */ 264); +var crc32 = __webpack_require__(/*! ./crc32 */ 263); +var msg = __webpack_require__(/*! ./messages */ 219); /* Public constants ==========================================================*/ /* ===========================================================================*/ @@ -107228,7 +107236,7 @@ exports.deflateTune = deflateTune; /***/ }), -/* 362 */ +/* 370 */ /*!******************************************!*\ !*** ./node_modules/pako/lib/deflate.js ***! \******************************************/ @@ -107240,11 +107248,11 @@ exports.deflateTune = deflateTune; -var zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ 361); -var utils = __webpack_require__(/*! ./utils/common */ 115); -var strings = __webpack_require__(/*! ./utils/strings */ 254); -var msg = __webpack_require__(/*! ./zlib/messages */ 210); -var ZStream = __webpack_require__(/*! ./zlib/zstream */ 253); +var zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ 369); +var utils = __webpack_require__(/*! ./utils/common */ 118); +var strings = __webpack_require__(/*! ./utils/strings */ 262); +var msg = __webpack_require__(/*! ./zlib/messages */ 219); +var ZStream = __webpack_require__(/*! ./zlib/zstream */ 261); var toString = Object.prototype.toString; @@ -107640,7 +107648,7 @@ exports.gzip = gzip; /***/ }), -/* 363 */ +/* 371 */ /*!************************************!*\ !*** ./node_modules/pako/index.js ***! \************************************/ @@ -107652,11 +107660,11 @@ exports.gzip = gzip; // Top level file is just a mixin of submodules & constants -var assign = __webpack_require__(/*! ./lib/utils/common */ 115).assign; +var assign = __webpack_require__(/*! ./lib/utils/common */ 118).assign; -var deflate = __webpack_require__(/*! ./lib/deflate */ 362); -var inflate = __webpack_require__(/*! ./lib/inflate */ 359); -var constants = __webpack_require__(/*! ./lib/zlib/constants */ 252); +var deflate = __webpack_require__(/*! ./lib/deflate */ 370); +var inflate = __webpack_require__(/*! ./lib/inflate */ 367); +var constants = __webpack_require__(/*! ./lib/zlib/constants */ 260); var pako = {}; @@ -107666,7 +107674,7 @@ module.exports = pako; /***/ }), -/* 364 */ +/* 372 */ /*!*****************************************!*\ !*** ./node_modules/jszip/lib/flate.js ***! \*****************************************/ @@ -107678,7 +107686,7 @@ module.exports = pako; var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); -var pako = __webpack_require__(/*! pako */ 363); +var pako = __webpack_require__(/*! pako */ 371); var utils = __webpack_require__(/*! ./utils */ 74); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 95); @@ -107763,7 +107771,7 @@ exports.uncompressWorker = function () { /***/ }), -/* 365 */ +/* 373 */ /*!**************************************************!*\ !*** ./node_modules/jszip/lib/generate/index.js ***! \**************************************************/ @@ -107774,8 +107782,8 @@ exports.uncompressWorker = function () { "use strict"; -var compressions = __webpack_require__(/*! ../compressions */ 257); -var ZipFileWorker = __webpack_require__(/*! ./ZipFileWorker */ 354); +var compressions = __webpack_require__(/*! ../compressions */ 265); +var ZipFileWorker = __webpack_require__(/*! ./ZipFileWorker */ 362); /** * Find the compression to use. @@ -107832,7 +107840,7 @@ exports.generateWorker = function (zip, options, comment) { /***/ }), -/* 366 */ +/* 374 */ /*!*********************************************!*\ !*** ./node_modules/jszip/lib/zipObject.js ***! \*********************************************/ @@ -107843,10 +107851,10 @@ exports.generateWorker = function (zip, options, comment) { "use strict"; -var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 262); -var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 260); -var utf8 = __webpack_require__(/*! ./utf8 */ 132); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 212); +var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 270); +var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 268); +var utf8 = __webpack_require__(/*! ./utf8 */ 135); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 221); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 95); /** @@ -107977,7 +107985,7 @@ module.exports = ZipObject; /***/ }), -/* 367 */ +/* 375 */ /*!********************************************************************!*\ !*** ./node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js ***! \********************************************************************/ @@ -107988,7 +107996,7 @@ module.exports = ZipObject; "use strict"; -var Readable = __webpack_require__(/*! readable-stream */ 275).Readable; +var Readable = __webpack_require__(/*! readable-stream */ 283).Readable; var utils = __webpack_require__(/*! ../utils */ 74); utils.inherits(NodejsStreamOutputAdapter, Readable); @@ -108031,7 +108039,7 @@ module.exports = NodejsStreamOutputAdapter; /***/ }), -/* 368 */ +/* 376 */ /*!********************************************************!*\ !*** ./node_modules/jszip/lib/stream/ConvertWorker.js ***! \********************************************************/ @@ -108069,7 +108077,7 @@ module.exports = ConvertWorker; /***/ }), -/* 369 */ +/* 377 */ /*!***********************************************!*\ !*** ./node_modules/immediate/lib/browser.js ***! \***********************************************/ @@ -108148,10 +108156,10 @@ function immediate(task) { } } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 106))) /***/ }), -/* 370 */ +/* 378 */ /*!*****************************************!*\ !*** ./node_modules/lie/lib/browser.js ***! \*****************************************/ @@ -108161,7 +108169,7 @@ function immediate(task) { "use strict"; -var immediate = __webpack_require__(/*! immediate */ 369); +var immediate = __webpack_require__(/*! immediate */ 377); /* istanbul ignore next */ function INTERNAL() {} @@ -108416,7 +108424,7 @@ function race(iterable) { /***/ }), -/* 371 */ +/* 379 */ /*!*************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_cof.js ***! \*************************************************************************/ @@ -108431,7 +108439,7 @@ module.exports = function(it){ }; /***/ }), -/* 372 */ +/* 380 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_html.js ***! \**************************************************************************/ @@ -108439,10 +108447,10 @@ module.exports = function(it){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./_global */ 158).document && document.documentElement; +module.exports = __webpack_require__(/*! ./_global */ 163).document && document.documentElement; /***/ }), -/* 373 */ +/* 381 */ /*!****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_invoke.js ***! \****************************************************************************/ @@ -108468,7 +108476,7 @@ module.exports = function(fn, args, that){ }; /***/ }), -/* 374 */ +/* 382 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_task.js ***! \**************************************************************************/ @@ -108476,11 +108484,11 @@ module.exports = function(fn, args, that){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var ctx = __webpack_require__(/*! ./_ctx */ 265) - , invoke = __webpack_require__(/*! ./_invoke */ 373) - , html = __webpack_require__(/*! ./_html */ 372) - , cel = __webpack_require__(/*! ./_dom-create */ 263) - , global = __webpack_require__(/*! ./_global */ 158) +var ctx = __webpack_require__(/*! ./_ctx */ 273) + , invoke = __webpack_require__(/*! ./_invoke */ 381) + , html = __webpack_require__(/*! ./_html */ 380) + , cel = __webpack_require__(/*! ./_dom-create */ 271) + , global = __webpack_require__(/*! ./_global */ 163) , process = global.process , setTask = global.setImmediate , clearTask = global.clearImmediate @@ -108515,7 +108523,7 @@ if(!setTask || !clearTask){ delete queue[id]; }; // Node.js 0.8- - if(__webpack_require__(/*! ./_cof */ 371)(process) == 'process'){ + if(__webpack_require__(/*! ./_cof */ 379)(process) == 'process'){ defer = function(id){ process.nextTick(ctx(run, id, 1)); }; @@ -108553,7 +108561,7 @@ module.exports = { }; /***/ }), -/* 375 */ +/* 383 */ /*!***********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_property-desc.js ***! \***********************************************************************************/ @@ -108571,7 +108579,7 @@ module.exports = function(bitmap, value){ }; /***/ }), -/* 376 */ +/* 384 */ /*!**********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_to-primitive.js ***! \**********************************************************************************/ @@ -108580,7 +108588,7 @@ module.exports = function(bitmap, value){ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(/*! ./_is-object */ 214); +var isObject = __webpack_require__(/*! ./_is-object */ 223); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function(it, S){ @@ -108593,7 +108601,7 @@ module.exports = function(it, S){ }; /***/ }), -/* 377 */ +/* 385 */ /*!************************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_ie8-dom-define.js ***! \************************************************************************************/ @@ -108601,12 +108609,12 @@ module.exports = function(it, S){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = !__webpack_require__(/*! ./_descriptors */ 213) && !__webpack_require__(/*! ./_fails */ 264)(function(){ - return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ 263)('div'), 'a', {get: function(){ return 7; }}).a != 7; +module.exports = !__webpack_require__(/*! ./_descriptors */ 222) && !__webpack_require__(/*! ./_fails */ 272)(function(){ + return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ 271)('div'), 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), -/* 378 */ +/* 386 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_an-object.js ***! \*******************************************************************************/ @@ -108614,14 +108622,14 @@ module.exports = !__webpack_require__(/*! ./_descriptors */ 213) && !__webpack_r /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ./_is-object */ 214); +var isObject = __webpack_require__(/*! ./_is-object */ 223); module.exports = function(it){ if(!isObject(it))throw TypeError(it + ' is not an object!'); return it; }; /***/ }), -/* 379 */ +/* 387 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_object-dp.js ***! \*******************************************************************************/ @@ -108629,12 +108637,12 @@ module.exports = function(it){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ./_an-object */ 378) - , IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ 377) - , toPrimitive = __webpack_require__(/*! ./_to-primitive */ 376) +var anObject = __webpack_require__(/*! ./_an-object */ 386) + , IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ 385) + , toPrimitive = __webpack_require__(/*! ./_to-primitive */ 384) , dP = Object.defineProperty; -exports.f = __webpack_require__(/*! ./_descriptors */ 213) ? Object.defineProperty : function defineProperty(O, P, Attributes){ +exports.f = __webpack_require__(/*! ./_descriptors */ 222) ? Object.defineProperty : function defineProperty(O, P, Attributes){ anObject(O); P = toPrimitive(P, true); anObject(Attributes); @@ -108647,7 +108655,7 @@ exports.f = __webpack_require__(/*! ./_descriptors */ 213) ? Object.defineProper }; /***/ }), -/* 380 */ +/* 388 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_hide.js ***! \**************************************************************************/ @@ -108655,9 +108663,9 @@ exports.f = __webpack_require__(/*! ./_descriptors */ 213) ? Object.defineProper /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var dP = __webpack_require__(/*! ./_object-dp */ 379) - , createDesc = __webpack_require__(/*! ./_property-desc */ 375); -module.exports = __webpack_require__(/*! ./_descriptors */ 213) ? function(object, key, value){ +var dP = __webpack_require__(/*! ./_object-dp */ 387) + , createDesc = __webpack_require__(/*! ./_property-desc */ 383); +module.exports = __webpack_require__(/*! ./_descriptors */ 222) ? function(object, key, value){ return dP.f(object, key, createDesc(1, value)); } : function(object, key, value){ object[key] = value; @@ -108665,7 +108673,7 @@ module.exports = __webpack_require__(/*! ./_descriptors */ 213) ? function(objec }; /***/ }), -/* 381 */ +/* 389 */ /*!********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_a-function.js ***! \********************************************************************************/ @@ -108679,7 +108687,7 @@ module.exports = function(it){ }; /***/ }), -/* 382 */ +/* 390 */ /*!****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_export.js ***! \****************************************************************************/ @@ -108687,10 +108695,10 @@ module.exports = function(it){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ./_global */ 158) - , core = __webpack_require__(/*! ./_core */ 266) - , ctx = __webpack_require__(/*! ./_ctx */ 265) - , hide = __webpack_require__(/*! ./_hide */ 380) +var global = __webpack_require__(/*! ./_global */ 163) + , core = __webpack_require__(/*! ./_core */ 274) + , ctx = __webpack_require__(/*! ./_ctx */ 273) + , hide = __webpack_require__(/*! ./_hide */ 388) , PROTOTYPE = 'prototype'; var $export = function(type, name, source){ @@ -108750,7 +108758,7 @@ $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), -/* 383 */ +/* 391 */ /*!**********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/web.immediate.js ***! \**********************************************************************************/ @@ -108758,15 +108766,15 @@ module.exports = $export; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var $export = __webpack_require__(/*! ./_export */ 382) - , $task = __webpack_require__(/*! ./_task */ 374); +var $export = __webpack_require__(/*! ./_export */ 390) + , $task = __webpack_require__(/*! ./_task */ 382); $export($export.G + $export.B, { setImmediate: $task.set, clearImmediate: $task.clear }); /***/ }), -/* 384 */ +/* 392 */ /*!*****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/fn/set-immediate.js ***! \*****************************************************************************/ @@ -108774,11 +108782,11 @@ $export($export.G + $export.B, { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(/*! ../modules/web.immediate */ 383); -module.exports = __webpack_require__(/*! ../modules/_core */ 266).setImmediate; +__webpack_require__(/*! ../modules/web.immediate */ 391); +module.exports = __webpack_require__(/*! ../modules/_core */ 274).setImmediate; /***/ }), -/* 385 */ +/* 393 */ /*!*****************************************************!*\ !*** ./node_modules/readable-stream/passthrough.js ***! \*****************************************************/ @@ -108786,11 +108794,11 @@ module.exports = __webpack_require__(/*! ../modules/_core */ 266).setImmediate; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./readable */ 216).PassThrough +module.exports = __webpack_require__(/*! ./readable */ 225).PassThrough /***/ }), -/* 386 */ +/* 394 */ /*!***************************************************!*\ !*** ./node_modules/readable-stream/transform.js ***! \***************************************************/ @@ -108798,11 +108806,11 @@ module.exports = __webpack_require__(/*! ./readable */ 216).PassThrough /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./readable */ 216).Transform +module.exports = __webpack_require__(/*! ./readable */ 225).Transform /***/ }), -/* 387 */ +/* 395 */ /*!********************************************************!*\ !*** ./node_modules/readable-stream/duplex-browser.js ***! \********************************************************/ @@ -108810,11 +108818,11 @@ module.exports = __webpack_require__(/*! ./readable */ 216).Transform /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 121); +module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 124); /***/ }), -/* 388 */ +/* 396 */ /*!**********************************************************!*\ !*** ./node_modules/readable-stream/writable-browser.js ***! \**********************************************************/ @@ -108822,11 +108830,11 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 121); /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 215); +module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 224); /***/ }), -/* 389 */ +/* 397 */ /*!*****************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! \*****************************************************************/ @@ -108864,11 +108872,11 @@ module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 215); module.exports = PassThrough; -var Transform = __webpack_require__(/*! ./_stream_transform */ 268); +var Transform = __webpack_require__(/*! ./_stream_transform */ 276); /**/ -var util = __webpack_require__(/*! core-util-is */ 136); -util.inherits = __webpack_require__(/*! inherits */ 131); +var util = __webpack_require__(/*! core-util-is */ 142); +util.inherits = __webpack_require__(/*! inherits */ 134); /**/ util.inherits(PassThrough, Transform); @@ -108884,7 +108892,7 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { }; /***/ }), -/* 390 */ +/* 398 */ /*!************************************************!*\ !*** ./node_modules/util-deprecate/browser.js ***! \************************************************/ @@ -108960,10 +108968,10 @@ function config (name) { return String(val).toLowerCase() === 'true'; } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106))) /***/ }), -/* 391 */ +/* 399 */ /*!*************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! \*************************************************************************/ @@ -108976,8 +108984,8 @@ function config (name) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Buffer = __webpack_require__(/*! safe-buffer */ 160).Buffer; -var util = __webpack_require__(/*! util */ 271); +var Buffer = __webpack_require__(/*! safe-buffer */ 165).Buffer; +var util = __webpack_require__(/*! util */ 279); function copyBuffer(src, target, offset) { src.copy(target, offset); @@ -109053,7 +109061,7 @@ if (util && util.inspect && util.inspect.custom) { } /***/ }), -/* 392 */ +/* 400 */ /*!*************************************************!*\ !*** ./node_modules/stream-browserify/index.js ***! \*************************************************/ @@ -109084,15 +109092,15 @@ if (util && util.inspect && util.inspect.custom) { module.exports = Stream; -var EE = __webpack_require__(/*! events */ 217).EventEmitter; -var inherits = __webpack_require__(/*! inherits */ 131); +var EE = __webpack_require__(/*! events */ 226).EventEmitter; +var inherits = __webpack_require__(/*! inherits */ 134); inherits(Stream, EE); -Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 216); -Stream.Writable = __webpack_require__(/*! readable-stream/writable.js */ 388); -Stream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ 387); -Stream.Transform = __webpack_require__(/*! readable-stream/transform.js */ 386); -Stream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ 385); +Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 225); +Stream.Writable = __webpack_require__(/*! readable-stream/writable.js */ 396); +Stream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ 395); +Stream.Transform = __webpack_require__(/*! readable-stream/transform.js */ 394); +Stream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ 393); // Backwards-compat with node 0.4.x Stream.Stream = Stream; @@ -109191,7 +109199,7 @@ Stream.prototype.pipe = function(dest, options) { /***/ }), -/* 393 */ +/* 401 */ /*!***************************************!*\ !*** ./node_modules/ieee754/index.js ***! \***************************************/ @@ -109286,7 +109294,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { /***/ }), -/* 394 */ +/* 402 */ /*!*****************************************!*\ !*** ./node_modules/base64-js/index.js ***! \*****************************************/ @@ -109449,7 +109457,7 @@ function fromByteArray (uint8) { /***/ }), -/* 395 */ +/* 403 */ /*!******************************************!*\ !*** ./node_modules/jszip/lib/object.js ***! \******************************************/ @@ -109459,16 +109467,16 @@ function fromByteArray (uint8) { "use strict"; -var utf8 = __webpack_require__(/*! ./utf8 */ 132); +var utf8 = __webpack_require__(/*! ./utf8 */ 135); var utils = __webpack_require__(/*! ./utils */ 74); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 95); -var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 262); -var defaults = __webpack_require__(/*! ./defaults */ 261); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 212); -var ZipObject = __webpack_require__(/*! ./zipObject */ 366); -var generate = __webpack_require__(/*! ./generate */ 365); -var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 159); -var NodejsStreamInputAdapter = __webpack_require__(/*! ./nodejs/NodejsStreamInputAdapter */ 353); +var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 270); +var defaults = __webpack_require__(/*! ./defaults */ 269); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 221); +var ZipObject = __webpack_require__(/*! ./zipObject */ 374); +var generate = __webpack_require__(/*! ./generate */ 373); +var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 164); +var NodejsStreamInputAdapter = __webpack_require__(/*! ./nodejs/NodejsStreamInputAdapter */ 361); /** @@ -109850,7 +109858,7 @@ module.exports = out; /***/ }), -/* 396 */ +/* 404 */ /*!***************************************************!*\ !*** ./node_modules/setimmediate/setImmediate.js ***! \***************************************************/ @@ -110045,10 +110053,10 @@ module.exports = out; attachTo.clearImmediate = clearImmediate; }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self)); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 105), __webpack_require__(/*! ./../process/browser.js */ 138))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 106), __webpack_require__(/*! ./../process/browser.js */ 144))) /***/ }), -/* 397 */ +/* 405 */ /*!**********************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify-html.js ***! \**********************************************************/ @@ -111411,9 +111419,9 @@ var style_html = legacy_beautify_html; /* Footer */ if (true) { // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, __webpack_require__(/*! ./beautify */ 224), __webpack_require__(/*! ./beautify-css */ 223)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(requireamd) { - var js_beautify = __webpack_require__(/*! ./beautify */ 224); - var css_beautify = __webpack_require__(/*! ./beautify-css */ 223); + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, __webpack_require__(/*! ./beautify */ 233), __webpack_require__(/*! ./beautify-css */ 232)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(requireamd) { + var js_beautify = __webpack_require__(/*! ./beautify */ 233); + var css_beautify = __webpack_require__(/*! ./beautify-css */ 232); return { html_beautify: function(html_source, options) { diff --git a/doc/source/advancedgameplay.rst b/doc/source/advancedgameplay.rst new file mode 100644 index 000000000..d33d3107b --- /dev/null +++ b/doc/source/advancedgameplay.rst @@ -0,0 +1,14 @@ +Advanced Gameplay +================= +This section documents Bitburner gameplay elements that are **not** immediately +available and/or accessible to the player. These gameplay mechanics +must be unlocked. + +.. toctree:: + :maxdepth: 5 + :caption: Elements: + + BitNodes + Source-Files + Intelligence + Sleeves diff --git a/doc/source/advancedgameplay/bitnodes.rst b/doc/source/advancedgameplay/bitnodes.rst new file mode 100644 index 000000000..9b56c7e61 --- /dev/null +++ b/doc/source/advancedgameplay/bitnodes.rst @@ -0,0 +1,63 @@ +.. _gameplay_bitnodes: + +.. warning:: This page contains spoilers regarding the game's story/plot-line. + +BitNodes +======== +A BitNode is an important part of the game's storyline. In the game, you discover +what BitNodes are by following the trail of clues left by the mysterious jump3r +(essentially a minimal questline). + +What is a BitNode +^^^^^^^^^^^^^^^^^ +A BitNode is the complex simulated reality in which you reside. By following the messages +from jump3r, you discover that humanity was enslaved by an advanced alien race, called +the Enders, using virtual simulations that trapped the minds of humans. + +However, the Enders didn't just create a single virtual reality to enslave humans, but many +different simulations. In other words, there are many different BitNodes that exist. +These BitNode are very different from each other. + +jump3r tells you that the only hope for humanity is to destroy all of these BitNodes. +Therefore, the end goal for the player is to enter and then destroy each BitNode at least once. + +Destroying a BitNode resets most of the player's progress but grants the player a +powerful second-tier persistent upgrade called a :ref:`Source-File `. +Different BitNodes grant different Source-Files. + +Each BitNode has unique characteristics that are related to varying backstories. For example, +in one BitNode the world is in the middle of a financial catastrophe with a collapsing +market. In this BitNode, most forms of income such as working at a company or Hacknet +Nodes are significantly less profitable. Servers have less money on them and lowered +growth rates, but it is easier to lower their security level using the weaken() Netscript function. + +Furthermore, some BitNodes introduce new content and mechanics. For example there is one +BitNode that grants access to the :ref:`Netscript Singularity Functions `. +There is another BitNode in which you can manage a gang to earn money and reputation. + +How to destroy a BitNode +^^^^^^^^^^^^^^^^^^^^^^^^ +Initially, the only way to destroy a BitNode is to join the Daedalus :ref:`Daedalus `. +From Daedalus, the player can obtain an Augmentation called 'The Red Pill', which doesn't cost any money +but does require a good amount of faction reputation. + +After installing 'The Red Pill', the player must search for and then manually hack a +server called 'w0r1d_d43m0n'. This server requires a hacking level of 3000 in order +to successfully hack it. This will destroy the player's current BitNode. + +There is a second method of destroying a BitNode, but it must be unlocked by first +destroying BitNode-6 or BitNode-7 (Bladeburners). + +.. todo:: Link to Bladeburner documentation page here + +When the player destroys a BitNode, most of his/her progress will be reset. This includes things +such as Augmentations and RAM upgrades on the home computer. The only things that will persist +through destroying BitNodes is: + +* Source-Files +* Scripts on the home computer + +BitNode Details +^^^^^^^^^^^^^^^ + +TODO diff --git a/doc/source/advancedgameplay/intelligence.rst b/doc/source/advancedgameplay/intelligence.rst new file mode 100644 index 000000000..ff266c561 --- /dev/null +++ b/doc/source/advancedgameplay/intelligence.rst @@ -0,0 +1,21 @@ +.. _gameplay_intelligence: + +Intelligence +============ +Intelligence is a :ref:`stat ` that is unlocked by having +:ref:`Source-File 5 ` (i.e. Destroying BitNode-5). + +Intelligence is unique because it is permanent and persistent. It never gets reset +back to 1. However, gaining Intelligence experience is extremely slow. The methods +of gaining Intelligence exp is also hidden. You won't know when you gain +experience and how much. It is a stat that gradually builds up as you continue +to play the game. + +Intelligence will boost your production for many actions in the game, including: + +* Hacking +* Infiltration +* Hacking Missions +* Crime success rate +* Bladeburner +* Reputation gain for companies & factions diff --git a/doc/source/advancedgameplay/sleeves.rst b/doc/source/advancedgameplay/sleeves.rst new file mode 100644 index 000000000..0c69f1518 --- /dev/null +++ b/doc/source/advancedgameplay/sleeves.rst @@ -0,0 +1,54 @@ +.. _gameplay_sleeves: + +Sleeves +======= +When VitaLife unveiled their Persona Core technology that allowed people to digitize +and transfer their consciousness into other vessels, human bodies became nothing more +than 'sleeves' for the human consciousness. This technology thus became known as +"Sleeve technology". + +Sleeve technology unlocks two different gameplay features: + +* Duplicate Sleeves +* Re-sleeving + +Sleeve technology is unlocked in :ref:`BitNode-10 `. + +Duplicate Sleeves +^^^^^^^^^^^^^^^^^ +Duplicate Sleeves are MK-V Synthoids (synthetic androids) into which your consciuosness +has been copied. In other words, these Synthoids contain a perfect duplicate of your mind. + +Duplicate Sleeves are essentially clones which you can use to perform work-type actions, +such as working for a company/faction or committing a crime. When sleeves perform these tasks, +they will earn money, experience, and reputation. + +Sleeves are their own individuals, which means they each have their own experience and stats. + +When a sleeve earns experience, it earns experience for itself, the player's +original consciousness, as well as all of the player's other sleeves. + +Synchronization +~~~~~~~~~~~~~~~ +Synchronization is a measure of how aligned your consciousness is with that of your +Duplicate Sleeves. It is a numeral value between 1 and 100, and it affects how much experience +is earned when the sleeve is performing a task. + +Let N be the sleeve's synchronization. When the sleeve earns experience by performing +a task, both the sleeve and the player's original host consciousness of N% of the +amount of experience normally earned by the task. All of the player's other sleeves +earn ((N/100)^2 * 100)% of the experience. + +Synchronization can be increased by assigning sleeves to the 'Synchronize' task. + +Sleeve Shock +~~~~~~~~~~~~ +Sleeve shock is a measure of how much trauma the sleeve has due to being placed in a new +body. It is a numeral value between 0 and 99, where 99 indicates full shock and 0 indicates +no shock. Shock affects the amount of experience earned by the sleeve. + +Sleeve shock slowly decreases over time. You can further increase the rate at which +it decreases by assigning sleeves to the 'Shock Recovery' task. + +Re-sleeving +^^^^^^^^^^^ diff --git a/doc/source/advancedgameplay/sourcefiles.rst b/doc/source/advancedgameplay/sourcefiles.rst new file mode 100644 index 000000000..314641ed2 --- /dev/null +++ b/doc/source/advancedgameplay/sourcefiles.rst @@ -0,0 +1,86 @@ +.. _gameplay_sourcefiles: + +.. warning:: This page contains spoilers regarding the game's story/plot-line. + +Source-Files +============ +Source-Files are a type of persistent upgrade that are more powerful than Augmentations. +Source-Files are received by destroying a BitNode. There are many different BitNodes +in the game and each BitNode will grant a different Source-File when it is destroyed. + +A Source-File can be upgraded by destroying its corresponding BitNode a second or +third time (AKA playing through that BitNode again). It can be upgraded to a maximum +of level 3. + +List of all Source-Files +^^^^^^^^^^^^^^^^^^^^^^^^ ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-1: Source Genesis | * Lets the player start with 32 GB of RAM on home computer | +| | * Increases all of the player's multipliers by 16%/24%/28% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-2: Rise of the Underworld | * Increases the player's crime success rate, crime money, and | +| | charisma multipliers by 24%/36%/42% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-3: Corporatocracy | * Lets the player create Corporations in other BitNodes (although some | +| | BitNodes will disable this mechanic) | +| | * Increases the player's charisma and company salary multipliers by 8%/12%/14% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-4: The Singularity | * Lets the player access and use Netscript Singularity Functions in other BitNodes. | +| | Each level of this Source-File opens up more of the Singularity Functions to use | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence` | +| | * Unlocks getBitNodeMultipliers() Netscript function | +| | * Increases all of the player's hacking-related multipliers by 8%/12%/14% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-6: Bladeburners | * Unlocks the Bladeburner feature in other BitNodes | +| | * Increases all of the player's level and experience gain rate multipliers for | +| | combat stats by 8%/12%/14% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-7: Bladeburners 2079 | * Allows the player to access the :ref:`netscript_bladeburnerapi` in other BitNodes | +| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-8: Ghost of Wall Street | * Increases the player's hacking growth multiplier by 12%/18%/21% | +| | * Level 1 grants permanent access to :ref:`WSE ` and | +| | :ref:`TIX API ` | +| | * Level 2 grants permanent access to shorting stocks | +| | * Level 3 grants permanent access to use limit/stop orders | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-9: Coming Soon | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-11: The Big Crash | * Company favor increases both the player's salary and reputation gain at that | +| | company by 1% per favor (rather than just the reputation gain) | +| | * Increases the player's company salary and reputation gain multipliers by | +| | 24%/36%/42% | ++------------------------------------+-------------------------------------------------------------------------------------+ +| BitNode-12: The Recursion | * There is no maximum level for this Source-File | +| | * Each level of this Source-File increases all of the player's multipliers by 1%. | +| | This affect is multiplicative with itself. This means that level N of this | +| | Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers | +| | that decrease) | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ +| | | ++------------------------------------+-------------------------------------------------------------------------------------+ diff --git a/doc/source/basicgameplay/companies.rst b/doc/source/basicgameplay/companies.rst index a39cc50dc..b65594cc1 100644 --- a/doc/source/basicgameplay/companies.rst +++ b/doc/source/basicgameplay/companies.rst @@ -2,7 +2,7 @@ Companies ========= -When exploring the :ref:`world `, you can visit various companies. At +When exploring the :ref:`world `, you can visit various companies. At these companies, you can apply for jobs. Working a job lets you earn money, experience, and reputation with that company. diff --git a/doc/source/basicgameplay/crimes.rst b/doc/source/basicgameplay/crimes.rst index 2619d3d51..5e2848aca 100644 --- a/doc/source/basicgameplay/crimes.rst +++ b/doc/source/basicgameplay/crimes.rst @@ -4,7 +4,7 @@ Crimes ====== Commiting crimes is an active gameplay mechanic that allows the player to train their stats and potentially earn money. The player can attempt to commit crimes -by visiting 'The Slums' through the 'City' tab (:ref:`Keyboard shortcut <_shortcuts>` Alt + w). +by visiting 'The Slums' through the 'City' tab (:ref:`Keyboard shortcut ` Alt + w). 'The Slums' is available in every city. diff --git a/doc/source/basicgameplay/factions.rst b/doc/source/basicgameplay/factions.rst index e6bf3b0e6..67992aa6d 100644 --- a/doc/source/basicgameplay/factions.rst +++ b/doc/source/basicgameplay/factions.rst @@ -110,7 +110,7 @@ List of Factions and their Requirements | | Clarke | * Have 200k reputation with | | | | Incorporated | the Corporation | | + +----------------+-----------------------------------------+-------------------------------+ -| | Fulcrum Secret | * Have 200k reputation with | | +| | Fulcrum Secret | * Have 250k reputation with | | | | Technologies | the Corporation | | | | | * Hack fulcrumassets manually | | +---------------------+----------------+-----------------------------------------+-------------------------------+ diff --git a/doc/source/conf.py b/doc/source/conf.py index 238bbaf6d..c420e95b4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -92,7 +92,8 @@ todo_include_todos = True # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'agogo' +#html_theme = 'agogo' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/doc/source/index.rst b/doc/source/index.rst index c0e04f103..cf0f99330 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -21,6 +21,7 @@ secrets that you've been searching for. Netscript Basic Gameplay + Advanced Gameplay Keyboard Shortcuts Game Frozen or Stuck? Changelog diff --git a/doc/source/netscript/netscriptbladeburnerapi.rst b/doc/source/netscript/netscriptbladeburnerapi.rst index 32d320c3c..1e3e48896 100644 --- a/doc/source/netscript/netscriptbladeburnerapi.rst +++ b/doc/source/netscript/netscriptbladeburnerapi.rst @@ -1,3 +1,5 @@ +.. _netscript_bladeburnerapi: + Netscript Bladeburner API ========================= Netscript provides the following API for interacting with the game's Bladeburner mechanic. diff --git a/doc/source/netscript/netscriptixapi.rst b/doc/source/netscript/netscriptixapi.rst index 42b5e8240..12fc9f77c 100644 --- a/doc/source/netscript/netscriptixapi.rst +++ b/doc/source/netscript/netscriptixapi.rst @@ -1,3 +1,5 @@ +.. _netscript_tixapi: + Netscript Trade Information eXchange (TIX) API ============================================== diff --git a/doc/source/netscript/netscriptsingularityfunctions.rst b/doc/source/netscript/netscriptsingularityfunctions.rst index 63ddae702..1b07c2ed2 100644 --- a/doc/source/netscript/netscriptsingularityfunctions.rst +++ b/doc/source/netscript/netscriptsingularityfunctions.rst @@ -1,3 +1,5 @@ +.. _netscript_singularityfunctions: + Netscript Singularity Functions =============================== diff --git a/doc/source/shortcuts.rst b/doc/source/shortcuts.rst index ffb19eb6b..cef353257 100644 --- a/doc/source/shortcuts.rst +++ b/doc/source/shortcuts.rst @@ -18,7 +18,7 @@ These shortcuts are almost always available. Exceptions include: ========== =========================================================================== Shortcut Action ========== =========================================================================== -Alt + t Switch to :doc:`terminal` +Alt + t Switch to :ref:`terminal` Alt + c Switch to 'Stats' page Alt + e Switch to Script Editor. Will open up the last-edited file or a new file Alt + s Switch to 'Active Scripts' page @@ -40,7 +40,7 @@ These shortcuts are available only in the Script Editor ============= =========================================================================== Shortcut Action ============= =========================================================================== -Ctrl + b Save script and return to :doc:`terminal` +Ctrl + b Save script and return to :ref:`terminal` Ctrl + space Function autocompletion ============= =========================================================================== @@ -52,7 +52,7 @@ In the Script Editor you can configure your key binding mode to three preset opt Terminal Shortcuts ------------------ -These shortcuts are available only in the :doc:`terminal` +These shortcuts are available only in the :ref:`terminal` ============= =========================================================================== Shortcut Action @@ -66,7 +66,7 @@ Tab Autocomplete command Terminal Bash Shortcuts ----------------------- These shortcuts were implemented to better emulate a bash shell. They must be enabled -in your :doc:`terminal`'s *.fconf* file. This can be done be entering the Terminal command:: +in your :ref:`terminal`'s *.fconf* file. This can be done be entering the Terminal command:: nano .fconf diff --git a/index.html b/index.html index 7c8c9bbbc..5fb6e84ad 100644 --- a/index.html +++ b/index.html @@ -65,6 +65,9 @@ +
  • diff --git a/src/BitNode/BitNode.js b/src/BitNode/BitNode.js index 489b9b52b..22f9739b1 100644 --- a/src/BitNode/BitNode.js +++ b/src/BitNode/BitNode.js @@ -158,7 +158,7 @@ function initBitNodes() { "
    Level 1: 12%
    Level 2: 18%
    Level 3: 21%"); BitNodes["BitNode9"] = new BitNode(9, "Do Androids Dream?", "COMING SOON"); BitNodes["BitNode10"] = new BitNode(10, "Digital Carbon", "Your body is not who you are", - "In 2084, VitaLife unveiled to the world the Persona Core, an Augmentation that allowed people " + + "In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people " + "to digitize their consciousness. Their consciousness could then be transferred into Synthoids " + "or other bodies by trasmitting the digitized data. Human bodies became nothing more than 'sleeves' for the " + "human consciousness. Mankind had finally achieved immortality - at least for those that could afford it.

    " + @@ -170,7 +170,8 @@ function initBitNodes() { "All methods of gaining money are half as profitable (except Stock Market)
    " + "Augmentations are 5x as expensive and require twice as much reputation

    " + "Destroying this BitNode will give you Source-File 10, or if you already have this Source-File it will " + - "upgrade its level up to a maximum of 3. Each level of this Source-File grants you a Duplicate Sleeve."); + "upgrade its level up to a maximum of 3. This Source-File unlocks Sleeve technology in other BitNodes. " + + "Each level of this Source-File also grants you a Duplicate Sleeve"); BitNodes["BitNode11"] = new BitNode(11, "The Big Crash", "Okay. Sell it all.", "The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around the world. It was this period " + "of disorder that eventually lead to the governmental reformation of many global superpowers, most notably " + diff --git a/src/Constants.ts b/src/Constants.ts index 016570f64..49f28626d 100644 --- a/src/Constants.ts +++ b/src/Constants.ts @@ -511,6 +511,8 @@ export let CONSTANTS: IMap = { LatestUpdate: ` v0.43.0 + * Added BitNode-10: Digital Carbon + * Stock Market Changes: ** Each stock now has a maximum number of shares you can purchase (both Long and Short positions combined) ** Added getStockMaxShares() Netscript function to the TIX API @@ -518,7 +520,9 @@ export let CONSTANTS: IMap = { * Job Changes: ** You can now hold multiple jobs at once. This means you no longer lose reputation when leaving a company ** Because of this change, the getCharacterInformation() Netscript function returns a slightly different value + * Home Computer RAM is now capped at 2 ^ 30 GB (1073741824 GB) + * Pop-up dialog boxes are a little bit bigger ` } diff --git a/src/Crime/CrimeHelpers.js b/src/Crime/CrimeHelpers.js index 4b678f03d..a40b2e96a 100644 --- a/src/Crime/CrimeHelpers.js +++ b/src/Crime/CrimeHelpers.js @@ -1,5 +1,7 @@ import { Crimes } from "./Crimes"; +import { Player } from "../Player"; + import { dialogBoxCreate } from "../../utils/DialogBox"; export function determineCrimeSuccess(type, moneyGained) { diff --git a/src/PersonObjects/IPlayer.ts b/src/PersonObjects/IPlayer.ts index 186e1211e..1be9ab5b0 100644 --- a/src/PersonObjects/IPlayer.ts +++ b/src/PersonObjects/IPlayer.ts @@ -47,6 +47,7 @@ export interface IPlayer { crime_success_mult: number; // Methods + canAfford(cost: number): boolean; gainHackingExp(exp: number): void; gainStrengthExp(exp: number): void; gainDefenseExp(exp: number): void; @@ -59,6 +60,7 @@ export interface IPlayer { inGang(): boolean; loseMoney(money: number): void; reapplyAllAugmentations(resetMultipliers: boolean): void; + reapplyAllSourceFiles(): void; startCrime(crimeType: string, hackExp: number, strExp: number, diff --git a/src/PersonObjects/Person.ts b/src/PersonObjects/Person.ts index 9cdebeedd..fb24c36ab 100644 --- a/src/PersonObjects/Person.ts +++ b/src/PersonObjects/Person.ts @@ -85,6 +85,17 @@ export abstract class Person { work_money_mult: number = 1; + hacknet_node_money_mult: number = 1; + hacknet_node_purchase_cost_mult: number = 1; + hacknet_node_ram_cost_mult: number = 1; + hacknet_node_core_cost_mult: number = 1; + hacknet_node_level_cost_mult: number = 1; + + bladeburner_max_stamina_mult: number = 1; + bladeburner_stamina_gain_mult: number = 1; + bladeburner_analysis_mult: number = 1; + bladeburner_success_chance_mult : number = 1; + /** * Augmentations */ @@ -101,7 +112,7 @@ export abstract class Person { /** * Updates this object's multipliers for the given augmentation */ - applyAugmentation(aug: Augmentation, reapply=false) { + applyAugmentation(aug: Augmentation) { for (const mult in aug.mults) { if ((this)[mult] == null) { console.warn(`Augmentation has unrecognized multiplier property: ${mult}`); @@ -188,11 +199,11 @@ export abstract class Person { */ updateStatLevels(): void { this.hacking_skill = Math.max(1, Math.floor(this.calculateStat(this.hacking_exp, this.hacking_mult * BitNodeMultipliers.HackingLevelMultiplier))); - this.strength = Math.max(1, Math.floor(this.calculateStat(this.strength_exp, this.strength_mult))); - this.defense = Math.max(1, Math.floor(this.calculateStat(this.defense_exp, this.defense_mult))); - this.dexterity = Math.max(1, Math.floor(this.calculateStat(this.dexterity_exp, this.dexterity_mult))); - this.agility = Math.max(1, Math.floor(this.calculateStat(this.agility_exp, this.agility_mult))); - this.charisma = Math.max(1, Math.floor(this.calculateStat(this.charisma_exp, this.charisma_mult))); + this.strength = Math.max(1, Math.floor(this.calculateStat(this.strength_exp, this.strength_mult * BitNodeMultipliers.StrengthLevelMultiplier))); + this.defense = Math.max(1, Math.floor(this.calculateStat(this.defense_exp, this.defense_mult * BitNodeMultipliers.DefenseLevelMultiplier))); + this.dexterity = Math.max(1, Math.floor(this.calculateStat(this.dexterity_exp, this.dexterity_mult * BitNodeMultipliers.DexterityLevelMultiplier))); + this.agility = Math.max(1, Math.floor(this.calculateStat(this.agility_exp, this.agility_mult * BitNodeMultipliers.AgilityLevelMultiplier))); + this.charisma = Math.max(1, Math.floor(this.calculateStat(this.charisma_exp, this.charisma_mult * BitNodeMultipliers.CharismaLevelMultiplier))); const ratio: number = this.hp / this.max_hp; this.max_hp = Math.floor(10 + this.defense / 10); diff --git a/src/PersonObjects/Resleeving/Resleeve.ts b/src/PersonObjects/Resleeving/Resleeve.ts index 7887d7856..2d8721df9 100644 --- a/src/PersonObjects/Resleeving/Resleeve.ts +++ b/src/PersonObjects/Resleeving/Resleeve.ts @@ -24,7 +24,7 @@ export class Resleeve extends Person { getCost(): number { // Each experience point adds this to the cost - const CostPerExp: number = 5; + const CostPerExp: number = 4; // Final cost is multiplied by # Augs ^ this constant const NumAugsExponent: number = 1.05; diff --git a/src/PersonObjects/Resleeving/Resleeving.ts b/src/PersonObjects/Resleeving/Resleeving.ts index 54139f3da..1207d16d5 100644 --- a/src/PersonObjects/Resleeving/Resleeving.ts +++ b/src/PersonObjects/Resleeving/Resleeving.ts @@ -23,7 +23,13 @@ import { getRandomInt } from "../../../utils/helpers/getRandomInt"; // Executes the actual re-sleeve when one is purchased -export function purchaseResleeve(r: Resleeve, p: IPlayer):void { +export function purchaseResleeve(r: Resleeve, p: IPlayer): boolean { + const cost: number = r.getCost(); + if (!p.canAfford(cost)) { + return false; + } + p.loseMoney(cost); + // Set the player's exp p.hacking_exp = r.hacking_exp; p.strength_exp = r.strength_exp; @@ -32,16 +38,25 @@ export function purchaseResleeve(r: Resleeve, p: IPlayer):void { p.agility_exp = r.agility_exp; p.charisma_exp = r.charisma_exp; + // Reset Augmentation "owned" data + for (const augKey in Augmentations) { + Augmentations[augKey].owned = false; + } + // Clear all of the player's augmentations, except the NeuroFlux Governor // which is kept for (let i = p.augmentations.length - 1; i >= 0; --i) { if (p.augmentations[i].name !== AugmentationNames.NeuroFluxGovernor) { p.augmentations.splice(i, 1); + } else { + // NeuroFlux Governor + Augmentations[AugmentationNames.NeuroFluxGovernor].owned = true; } } for (let i = 0; i < r.augmentations.length; ++i) { p.augmentations.push(new PlayerOwnedAugmentation(r.augmentations[i].name)); + Augmentations[r.augmentations[i].name].owned = true; } // The player's purchased Augmentations should remain the same, but any purchased @@ -55,6 +70,8 @@ export function purchaseResleeve(r: Resleeve, p: IPlayer):void { } p.reapplyAllAugmentations(true); + p.reapplyAllSourceFiles(); //Multipliers get reset, so have to re-process source files too + return true; } // Creates all of the Re-sleeves that will be available for purchase at VitaLife @@ -67,23 +84,33 @@ export function generateResleeves(): Resleeve[] { let r: Resleeve = new Resleeve(); // Generate experience - const expMult: number = i + 1; - r.hacking_exp = expMult * getRandomInt(500, 1500); - r.strength_exp = expMult * getRandomInt(500, 1500); - r.defense_exp = expMult * getRandomInt(500, 1500); - r.dexterity_exp = expMult * getRandomInt(500, 1500); - r.agility_exp = expMult * getRandomInt(500, 1500); - r.charisma_exp = expMult * getRandomInt(500, 1500); + const expMult: number = (5 * i) + 1; + r.hacking_exp = expMult * getRandomInt(1000, 5000); + r.strength_exp = expMult * getRandomInt(1000, 5000); + r.defense_exp = expMult * getRandomInt(1000, 5000); + r.dexterity_exp = expMult * getRandomInt(1000, 5000); + r.agility_exp = expMult * getRandomInt(1000, 5000); + r.charisma_exp = expMult * getRandomInt(1000, 5000); // Generate Augs - const baseNumAugs: number = Math.ceil((i + 1) / 2); + // Augmentation prequisites will be ignored for this + const baseNumAugs: number = Math.max(2, Math.ceil((i + 3) / 2)); const numAugs: number = getRandomInt(baseNumAugs, baseNumAugs + 2); + const augKeys: string[] = Object.keys(Augmentations); for (let a = 0; a < numAugs; ++a) { - // We'll ignore Aug prerequisites for this - const augKeys: string[] = Object.keys(Augmentations); - const randKey: string = augKeys[getRandomInt(0, augKeys.length - 1)]; + // Get a random aug + const randIndex: number = getRandomInt(0, augKeys.length - 1) + const randKey: string = augKeys[randIndex]; + if (randKey === AugmentationNames.TheRedPill) { + continue; // A sleeve can't have The Red Pill + } const randAug: Augmentation | null = Augmentations[randKey]; r.augmentations.push({name: randAug!.name, level: 1}); + r.applyAugmentation(Augmentations[randKey]); + r.updateStatLevels(); + + // Remove Augmentation so that there are no duplicates + augKeys.splice(randIndex, 1); } ret.push(r); diff --git a/src/PersonObjects/Resleeving/ResleevingUI.ts b/src/PersonObjects/Resleeving/ResleevingUI.ts index 07a3e41c0..79682e455 100644 --- a/src/PersonObjects/Resleeving/ResleevingUI.ts +++ b/src/PersonObjects/Resleeving/ResleevingUI.ts @@ -7,8 +7,6 @@ import { generateResleeves, import { IPlayer } from "../IPlayer"; -import { IMap } from "../../types"; - import { Augmentation } from "../../Augmentation/Augmentation"; import { Augmentations } from "../../Augmentation/Augmentations"; @@ -23,9 +21,7 @@ import { exceptionAlert } from "../../../utils/helpers/exceptionAlert"; import { createElement } from "../../../utils/uiHelpers/createElement"; import { createOptionElement } from "../../../utils/uiHelpers/createOptionElement"; import { getSelectValue } from "../../../utils/uiHelpers/getSelectData"; -import { removeChildrenFromElement } from "../../../utils/uiHelpers/removeChildrenFromElement"; import { removeElement } from "../../../utils/uiHelpers/removeElement"; -import { removeElementById } from "../../../utils/uiHelpers/removeElementById"; interface IResleeveUIElems { container: HTMLElement | null; @@ -70,7 +66,19 @@ export function createResleevesPage(p: IPlayer) { UIElems.info = createElement("p", { display: "inline-block", - innerText: "TOODOOO", + innerHTML: "Re-sleeving is the process of digitizing and transferring your consciousness " + + "into a new human body, or 'sleeve'. Here at VitaLife, you can purchase new " + + "specially-engineered bodies for the re-sleeve process. Many of these bodies " + + "even come with genetic and cybernetic Augmentations!

    " + + "Re-sleeving will chance your experience for every stat. It will also REMOVE " + + "all of your currently-installed Augmentations, and replace " + + "them with the ones provided by the purchased sleeve. However, Augmentations that you have " + + "purchased but not installed will NOT be removed. If you have purchased an " + + "Augmentation and then re-sleeve into a body which already has that Augmentation, " + + "it will be removed (since you cannot have duplicate Augmentations).

    " + + "NOTE: The stats and multipliers displayed on this page do NOT include your bonuses from " + + "Source-File.", + width: "75%", }); UIElems.resleeveList = createElement("ul"); @@ -96,7 +104,10 @@ export function createResleevesPage(p: IPlayer) { } export function clearResleevesPage() { - removeElement(UIElems.container); + if (UIElems.container instanceof HTMLElement) { + removeElement(UIElems.container); + } + for (const prop in UIElems) { (UIElems)[prop] = null; } @@ -125,8 +136,17 @@ function createResleeveUi(resleeve: Resleeve): IResleeveUIElems { display: "block", }); - elems.statsPanel = createElement("div", { class: "resleeve-panel" }); - elems.stats = createElement("p", { class: "resleeve-stats-text" }); + elems.statsPanel = createElement("div", { class: "resleeve-panel", width: "30%" }); + elems.stats = createElement("p", { + class: "resleeve-stats-text", + innerHTML: + `Hacking: ${numeralWrapper.format(resleeve.hacking_skill, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.hacking_exp)} exp)
    ` + + `Strength: ${numeralWrapper.format(resleeve.strength, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.strength_exp)} exp)
    ` + + `Defense: ${numeralWrapper.format(resleeve.defense, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.defense_exp)} exp)
    ` + + `Dexterity: ${numeralWrapper.format(resleeve.dexterity, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.dexterity_exp)} exp)
    ` + + `Agility: ${numeralWrapper.format(resleeve.agility, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.agility_exp)} exp)
    ` + + `Charisma: ${numeralWrapper.format(resleeve.charisma, "0,0")} (${numeralWrapper.formatBigNumber(resleeve.charisma_exp)} exp)`, + }); elems.multipliersButton = createElement("button", { class: "std-button", innerText: "Multipliers", @@ -155,33 +175,58 @@ function createResleeveUi(resleeve: Resleeve): IResleeveUIElems { `Faction Reputation Gain multiplier: ${numeralWrapper.formatPercentage(resleeve.faction_rep_mult)}`, `Crime Money multiplier: ${numeralWrapper.formatPercentage(resleeve.crime_money_mult)}`, `Crime Success multiplier: ${numeralWrapper.formatPercentage(resleeve.crime_success_mult)}`, + `Hacknet Income multiplier: ${numeralWrapper.formatPercentage(resleeve.hacknet_node_money_mult)}`, + `Hacknet Purchase Cost multiplier: ${numeralWrapper.formatPercentage(resleeve.hacknet_node_purchase_cost_mult)}`, + `Hacknet Level Upgrade Cost multiplier: ${numeralWrapper.formatPercentage(resleeve.hacknet_node_level_cost_mult)}`, + `Hacknet Ram Upgrade Cost multiplier: ${numeralWrapper.formatPercentage(resleeve.hacknet_node_ram_cost_mult)}`, + `Hacknet Core Upgrade Cost multiplier: ${numeralWrapper.formatPercentage(resleeve.hacknet_node_core_cost_mult)}`, + `Bladeburner Max Stamina multiplier: ${numeralWrapper.formatPercentage(resleeve.bladeburner_max_stamina_mult)}`, + `Bladeburner Stamina Gain multiplier: ${numeralWrapper.formatPercentage(resleeve.bladeburner_stamina_gain_mult)}`, + `Bladeburner Field Analysis multiplier: ${numeralWrapper.formatPercentage(resleeve.bladeburner_analysis_mult)}`, + `Bladeburner Success Chance multiplier: ${numeralWrapper.formatPercentage(resleeve.bladeburner_success_chance_mult)}` ].join("
    "), false ) } }); + elems.statsPanel.appendChild(elems.stats); + elems.statsPanel.appendChild(elems.multipliersButton); - elems.augPanel = createElement("div", { class: "resleeve-panel" }); - elems.augSelector = createElement("select") as HTMLSelectElement; + elems.augPanel = createElement("div", { class: "resleeve-panel", width: "50%" }); + elems.augSelector = createElement("select", { class: "resleeve-aug-selector" }) as HTMLSelectElement; + elems.augDescription = createElement("p"); for (let i = 0; i < resleeve.augmentations.length; ++i) { elems.augSelector.add(createOptionElement(resleeve.augmentations[i].name)); }; elems.augSelector.addEventListener("change", () => { updateAugDescription(elems); }); - elems.augDescription = createElement("p"); + elems.augSelector.dispatchEvent(new Event('change')); // Set inital description by manually triggering change event + elems.augPanel.appendChild(elems.augSelector); + elems.augPanel.appendChild(elems.augDescription); - elems.costPanel = createElement("div", { class: "resleeve-panel" }); + const cost: number = resleeve.getCost(); + elems.costPanel = createElement("div", { class: "resleeve-panel", width: "20%" }); elems.costText = createElement("p", { - innerText: `It costs ${numeralWrapper.formatMoney(resleeve.getCost())} ` + + innerText: `It costs ${numeralWrapper.formatMoney(cost)} ` + `to purchase this Sleeve.`, }); elems.buyButton = createElement("button", { class: "std-button", innerText: "Purchase", clickListener: () => { - purchaseResleeve(resleeve, playerRef!); + if (purchaseResleeve(resleeve, playerRef!)) { + dialogBoxCreate(`You re-sleeved for ${numeralWrapper.formatMoney(cost)}!`, false); + } else { + dialogBoxCreate(`You cannot afford to re-sleeve into this body`, false); + } } }); + elems.costPanel.appendChild(elems.costText); + elems.costPanel.appendChild(elems.buyButton); + + elems.container.appendChild(elems.statsPanel); + elems.container.appendChild(elems.augPanel); + elems.container.appendChild(elems.costPanel); return elems; } diff --git a/src/PersonObjects/Sleeve/Sleeve.ts b/src/PersonObjects/Sleeve/Sleeve.ts index 0d14233b6..8407960f8 100644 --- a/src/PersonObjects/Sleeve/Sleeve.ts +++ b/src/PersonObjects/Sleeve/Sleeve.ts @@ -47,17 +47,13 @@ export class Sleeve extends Person { */ currentTask: SleeveTaskType = SleeveTaskType.Idle; - /** - * Description of current task. Used only for logging purposes - */ - currentTaskDescription: string = ""; - /** * Contains details about the sleeve's current task. The info stored * in this depends on the task type * * Faction/Company Work: Name of Faction/Company - * Crime: Success rate of current crime, in decimal form + * Crime: Money earned if successful + * Class/Gym: Name of university/gym */ currentTaskLocation: string = ""; @@ -135,7 +131,8 @@ export class Sleeve extends Person { /** * Commit crimes */ - commitCrime(p: IPlayer, crime: Crime): void { + commitCrime(p: IPlayer, crime: Crime): boolean { + if (!(crime instanceof Crime)) { return false; } if (this.currentTask !== SleeveTaskType.Idle) { this.finishTask(p); } else { @@ -150,6 +147,8 @@ export class Sleeve extends Person { this.gainRatesForTask.cha = crime.charisma_exp * this.charisma_exp_mult * BitNodeMultipliers.CrimeExpGain; this.gainRatesForTask.money = crime.money * this.crime_money_mult * BitNodeMultipliers.CrimeMoney; + this.currentTaskLocation = String(this.gainRatesForTask.money); + // We'll determine success now and adjust the earnings accordingly if (Math.random() < crime.successRate(p)) { this.gainRatesForTask.hack *= 2; @@ -162,27 +161,35 @@ export class Sleeve extends Person { this.gainRatesForTask.money = 0; } + this.currentTaskMaxTime = crime.time; this.currentTask = SleeveTaskType.Crime; + return true; } /** * Called to stop the current task */ - finishTask(p: IPlayer): void { + finishTask(p: IPlayer): ITaskTracker { + let retValue: ITaskTracker = createTaskTracker(); // Amount of exp to be gained by other sleeves + if (this.currentTask === SleeveTaskType.Crime) { // For crimes, all experience and money is gained at the end if (this.currentTaskTime >= this.currentTaskMaxTime) { - let retValue: ITaskTracker = createTaskTracker(); // Amount of exp to be gained by other sleeves - retValue = this.gainExperience(p, this.gainRatesForTask); this.gainMoney(p, this.gainRatesForTask); + + // Do not reset task to IDLE + this.currentTaskTime = 0; + return retValue; } } else { // For other crimes... I dont think anything else needs to be done } this.resetTaskStatus(); + + return retValue; } /** @@ -267,15 +274,17 @@ export class Sleeve extends Person { * Earn money for player */ gainMoney(p: IPlayer, task: ITaskTracker, numCycles: number=1): void { - this.earningsForPlayer.money += (task.money * numCycles); - p.gainMoney(task.money * numCycles); + const gain: number = (task.money * numCycles); + this.earningsForTask.money += gain; + this.earningsForPlayer.money += gain; + p.gainMoney(gain); } /** * Gets reputation gain for the current task * Only applicable when working for company or faction */ - getRepGain(): number { + getRepGain(p: IPlayer): number { if (this.currentTask === SleeveTaskType.Faction) { switch (this.factionWorkType) { case FactionWorkType.Hacking: @@ -289,7 +298,25 @@ export class Sleeve extends Person { return 0; } } else if (this.currentTask === SleeveTaskType.Company) { - return 0; // TODO + const companyName: string = this.currentTaskLocation; + const company: Company | null = Companies[companyName]; + if (company == null) { + console.error(`Invalid company found when trying to calculate rep gain: ${companyName}`); + return 0; + } + + const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]]; + if (companyPosition == null) { + console.error(`Invalid company position name found when trying to calculate rep gain: ${p.jobs[companyName]}`); + return 0; + } + + const jobPerformance: number = companyPosition!.calculateJobPerformance(this.hacking_skill, this.strength, + this.defense, this.dexterity, + this.agility, this.charisma); + const favorMult = 1 + (company!.favor / 100); + + return jobPerformance * this.company_rep_mult * favorMult; } else { console.warn(`Sleeve.getRepGain() called for invalid task type: ${this.currentTask}`); return 0; @@ -315,14 +342,9 @@ export class Sleeve extends Person { this.storedCycles += numCycles; if (this.storedCycles < CyclesPerSecond) { return null; } - // Shock gradually goes towards 100 - this.shock = Math.max(100, this.shock + (0.0001 * this.storedCycles)); - - if (this.currentTask === SleeveTaskType.Idle) { return null; } - let time = this.storedCycles * CONSTANTS.MilliPerCycle; let cyclesUsed = this.storedCycles; - if (this.currentTaskTime + time > this.currentTaskMaxTime) { + if (this.currentTaskMaxTime !== 0 && this.currentTaskTime + time > this.currentTaskMaxTime) { time = this.currentTaskMaxTime - this.currentTaskTime; cyclesUsed = Math.floor(time / CONSTANTS.MilliPerCycle); @@ -334,9 +356,15 @@ export class Sleeve extends Person { } this.currentTaskTime += time; + // Shock gradually goes towards 100 + this.shock = Math.min(100, this.shock + (0.0001 * this.storedCycles)); + let retValue: ITaskTracker = createTaskTracker(); switch (this.currentTask) { + case SleeveTaskType.Idle: + break; case SleeveTaskType.Class: + case SleeveTaskType.Gym: retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); this.gainMoney(p, this.gainRatesForTask, cyclesUsed); break; @@ -351,7 +379,7 @@ export class Sleeve extends Person { break; } - fac.playerReputation += (this.getRepGain() * cyclesUsed); + fac.playerReputation += (this.getRepGain(p) * cyclesUsed); break; case SleeveTaskType.Company: retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed); @@ -363,27 +391,31 @@ export class Sleeve extends Person { break; } - company.playerReputation *= (this.getRepGain() * cyclesUsed); + company!.playerReputation += (this.getRepGain(p) * cyclesUsed); break; case SleeveTaskType.Recovery: - this.shock = Math.max(100, this.shock + (0.001 * this.storedCycles)); + this.shock = Math.min(100, this.shock + (0.0001 * cyclesUsed)); break; case SleeveTaskType.Sync: - this.sync = Math.max(100, this.sync + (0.001 * this.storedCycles)); + this.sync = Math.min(100, this.sync + (0.0001 * cyclesUsed)); break; default: break; } if (this.currentTaskMaxTime !== 0 && this.currentTaskTime >= this.currentTaskMaxTime) { - this.finishTask(p); + if (this.currentTask === SleeveTaskType.Crime) { + retValue = this.finishTask(p); + } else { + this.finishTask(p); + } + } this.updateStatLevels(); this.storedCycles -= cyclesUsed; - // TODO Finish this return retValue; } @@ -416,16 +448,19 @@ export class Sleeve extends Person { switch (universityName.toLowerCase()) { case Locations.AevumSummitUniversity.toLowerCase(): if (this.city !== Cities.Aevum) { return false; } + this.currentTaskLocation = Locations.AevumSummitUniversity; costMult = 4; expMult = 3; break; case Locations.Sector12RothmanUniversity.toLowerCase(): if (this.city !== Cities.Sector12) { return false; } + this.currentTaskLocation = Locations.Sector12RothmanUniversity; costMult = 3; expMult = 2; break; case Locations.VolhavenZBInstituteOfTechnology.toLowerCase(): if (this.city !== Cities.Volhaven) { return false; } + this.currentTaskLocation = Locations.VolhavenZBInstituteOfTechnology; costMult = 5; expMult = 4; break; @@ -433,9 +468,6 @@ export class Sleeve extends Person { return false; } - // Number of game cycles in a second - const cps: number = 1000 / CONSTANTS.MilliPerCycle; - // Set experience/money gains based on class // TODO Refactor University Courses into its own class or something const baseStudyComputerScienceExp: number = 0.5; @@ -511,7 +543,10 @@ export class Sleeve extends Person { const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]]; if (company == null) { throw new Error(`Invalid company name specified in Sleeve.workForCompany(): ${companyName}`); } if (companyPosition == null) { throw new Error(`Invalid CompanyPosition data in Sleeve.workForCompany(): ${companyName}`); } - + this.gainRatesForTask.money = companyPosition.baseSalary * + company.salaryMultiplier * + this.work_money_mult * + BitNodeMultipliers.CompanyWorkMoney; this.gainRatesForTask.hack = companyPosition.hackingExpGain * company.expMultiplier * this.hacking_exp_mult * @@ -539,6 +574,7 @@ export class Sleeve extends Person { this.currentTaskLocation = companyName; this.currentTask = SleeveTaskType.Company; + this.currentTaskMaxTime = CONSTANTS.MillisecondsPer8Hours; return true; } @@ -585,6 +621,7 @@ export class Sleeve extends Person { this.currentTaskLocation = factionName; this.currentTask = SleeveTaskType.Faction; + this.currentTaskMaxTime = CONSTANTS.MillisecondsPer20Hours; return true; } @@ -606,26 +643,31 @@ export class Sleeve extends Person { switch (gymName.toLowerCase()) { case Locations.AevumCrushFitnessGym.toLowerCase(): if (this.city != Cities.Aevum) { return false; } + this.currentTaskLocation = Locations.AevumCrushFitnessGym; costMult = 3; expMult = 2; break; case Locations.AevumSnapFitnessGym.toLowerCase(): if (this.city != Cities.Aevum) { return false; } + this.currentTaskLocation = Locations.AevumSnapFitnessGym; costMult = 10; expMult = 5; break; case Locations.Sector12IronGym.toLowerCase(): if (this.city != Cities.Sector12) { return false; } + this.currentTaskLocation = Locations.Sector12IronGym; costMult = 1; expMult = 1; break; case Locations.Sector12PowerhouseGym.toLowerCase(): if (this.city != Cities.Sector12) { return false; } + this.currentTaskLocation = Locations.Sector12PowerhouseGym; costMult = 20; expMult = 10; break; case Locations.VolhavenMilleniumFitnessGym: if (this.city != Cities.Volhaven) { return false; } + this.currentTaskLocation = Locations.VolhavenMilleniumFitnessGym; costMult = 7; expMult = 4; break; @@ -633,9 +675,6 @@ export class Sleeve extends Person { return false; } - // Number of game cycles in a second - const cps = 1000 / CONSTANTS.MilliPerCycle; - // Set experience/money gains based on class // TODO Refactor University Courses into its own class or something const baseGymExp: number = 1; @@ -657,7 +696,7 @@ export class Sleeve extends Person { return false; } - this.currentTask = SleeveTaskType.Class; + this.currentTask = SleeveTaskType.Gym; return true; } diff --git a/src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts b/src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts index 9b6437809..78a3bd49f 100644 --- a/src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts +++ b/src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts @@ -2,11 +2,13 @@ * Enum for different types of tasks that a Sleeve can perform */ export enum SleeveTaskType { - Class, - Company, - Crime, - Faction, + // Same Order as selectable order in UI Idle, + Company, + Faction, + Crime, + Class, + Gym, Recovery, Sync, } diff --git a/src/PersonObjects/Sleeve/SleeveUI.ts b/src/PersonObjects/Sleeve/SleeveUI.ts index 4b0b4a1c4..1515e6e2e 100644 --- a/src/PersonObjects/Sleeve/SleeveUI.ts +++ b/src/PersonObjects/Sleeve/SleeveUI.ts @@ -3,6 +3,7 @@ */ import { Sleeve } from "./Sleeve"; import { SleeveTaskType } from "./SleeveTaskTypesEnum"; +import { SleeveFaq } from "./data/SleeveFaq"; import { IPlayer } from "../IPlayer"; @@ -11,14 +12,13 @@ import { Locations } from "../../Locations"; import { Cities } from "../../Locations/Cities"; import { Crimes } from "../../Crime/Crimes"; -import { IMap } from "../../types"; - import { numeralWrapper } from "../../ui/numeralFormat"; import { Page, routing } from "../../ui/navigationTracking"; import { dialogBoxCreate } from "../../../utils/DialogBox"; +import { createProgressBarText } from "../../../utils/helpers/createProgressBarText"; import { exceptionAlert } from "../../../utils/helpers/exceptionAlert"; import { createElement } from "../../../utils/uiHelpers/createElement"; @@ -26,35 +26,39 @@ import { createOptionElement } from "../../../utils/uiHelpers/createOptionElemen import { getSelectValue } from "../../../utils/uiHelpers/getSelectData"; import { removeChildrenFromElement } from "../../../utils/uiHelpers/removeChildrenFromElement"; import { removeElement } from "../../../utils/uiHelpers/removeElement"; -import { removeElementById } from "../../../utils/uiHelpers/removeElementById"; // Object that keeps track of all DOM elements for the UI for a single Sleeve interface ISleeveUIElems { - container: HTMLElement | null, - statsPanel: HTMLElement | null, - stats: HTMLElement | null, - moreStatsButton: HTMLElement | null, - taskPanel: HTMLElement | null, - taskSelector: HTMLSelectElement | null, - taskDetailsSelector: HTMLSelectElement | null, - taskDetailsSelector2: HTMLSelectElement | null, - taskDescription: HTMLElement | null, - taskSetButton: HTMLElement | null, - earningsPanel: HTMLElement | null, - currentEarningsInfo: HTMLElement | null, - totalEarningsButton: HTMLElement | null, + container: HTMLElement | null; + statsPanel: HTMLElement | null; + stats: HTMLElement | null; + moreStatsButton: HTMLElement | null; + taskPanel: HTMLElement | null; + taskSelector: HTMLSelectElement | null; + taskDetailsSelector: HTMLSelectElement | null; + taskDetailsSelector2: HTMLSelectElement | null; + taskDescription: HTMLElement | null; + taskSetButton: HTMLElement | null; + taskProgressBar: HTMLElement | null; + earningsPanel: HTMLElement | null; + currentEarningsInfo: HTMLElement | null; + totalEarningsButton: HTMLElement | null; } // Object that keeps track of all DOM elements for the entire Sleeve UI interface IPageUIElems { container: HTMLElement | null; - info: HTMLElement | null, - sleeveList: HTMLElement | null, - sleeves: ISleeveUIElems[] | null, + docButton: HTMLElement | null; + faqButton: HTMLElement | null; + info: HTMLElement | null; + sleeveList: HTMLElement | null; + sleeves: ISleeveUIElems[] | null; } const UIElems: IPageUIElems = { container: null, + docButton: null, + faqButton: null, info: null, sleeveList: null, sleeves: null, @@ -75,11 +79,26 @@ export function createSleevesPage(p: IPlayer) { }); UIElems.info = createElement("p", { - display: "inline-block", - innerText: "Duplicate Sleeves are MK-V Synthoids (synthetic androids) into which your " + - "consciousness has copied. In other words, these Synthoids contain " + + class: "sleeves-page-info", + innerHTML: "Duplicate Sleeves are MK-V Synthoids (synthetic androids) into which your " + + "consciousness has been copied. In other words, these Synthoids contain " + "a perfect duplicate of your mind.

    " + - "Sleeves can be used to perform different tasks synchronously.", + "Sleeves can be used to perform different tasks synchronously.

    ", + }); + + UIElems.faqButton = createElement("button", { + class: "std-button", + display: "inline-block", + innerText: "FAQ", + clickListener: () => { + dialogBoxCreate(SleeveFaq, false); + } + }); + + UIElems.docButton = createElement("button", { + class: "std-button", + display: "inline-block", + innerText: "Documentation", }); UIElems.sleeveList = createElement("ul"); @@ -93,6 +112,7 @@ export function createSleevesPage(p: IPlayer) { } UIElems.container.appendChild(UIElems.info); + UIElems.container.appendChild(UIElems.faqButton); UIElems.container.appendChild(UIElems.sleeveList); document.getElementById("entire-game-container")!.appendChild(UIElems.container); @@ -104,10 +124,23 @@ export function createSleevesPage(p: IPlayer) { // Updates the UI for the entire Sleeves page export function updateSleevesPage() { if (!routing.isOn(Page.Sleeves)) { return; } + + try { + for (let i = 0; i < playerRef!.sleeves.length; ++i) { + const sleeve: Sleeve = playerRef!.sleeves[i]; + const elems: ISleeveUIElems = UIElems.sleeves![i]; + updateSleeveUi(sleeve!, elems!); + } + } catch(e) { + exceptionAlert(e); + } } export function clearSleevesPage() { - removeElement(UIElems.container); + if (UIElems.container instanceof HTMLElement) { + removeElement(UIElems.container); + } + for (const prop in UIElems) { (UIElems)[prop] = null; } @@ -129,6 +162,7 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { taskDetailsSelector2: null, taskDescription: null, taskSetButton: null, + taskProgressBar: null, earningsPanel: null, currentEarningsInfo: null, totalEarningsButton: null, @@ -141,7 +175,7 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { display: "block", }); - elems.statsPanel = createElement("div", { class: "sleeve-panel" }); + elems.statsPanel = createElement("div", { class: "sleeve-panel", width: "25%" }); elems.stats = createElement("p", { class: "sleeve-stats-text" }); elems.moreStatsButton = createElement("button", { class: "std-button", @@ -181,7 +215,7 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { elems.statsPanel.appendChild(elems.stats); elems.statsPanel.appendChild(elems.moreStatsButton); - elems.taskPanel = createElement("div", { class: "sleeve-panel" }); + elems.taskPanel = createElement("div", { class: "sleeve-panel", width: "40%" }); elems.taskSelector = createElement("select") as HTMLSelectElement; elems.taskSelector.add(createOptionElement("------")); elems.taskSelector.add(createOptionElement("Work for Company")); @@ -194,10 +228,13 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { elems.taskSelector.addEventListener("change", () => { updateSleeveTaskSelector(sleeve, elems, allSleeves); }); - // TODO Set initial value for task selector elems.taskDetailsSelector = createElement("select") as HTMLSelectElement; elems.taskDetailsSelector2 = createElement("select") as HTMLSelectElement; elems.taskDescription = createElement("p"); + elems.taskProgressBar = createElement("p"); + elems.taskSelector.selectedIndex = sleeve.currentTask; // Set initial value for Task Selector + elems.taskSelector.dispatchEvent(new Event('change')); + updateSleeveTaskDescription(sleeve, elems); elems.taskSetButton = createElement("button", { class: "std-button", innerText: "Set Task", @@ -207,10 +244,12 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { }); elems.taskPanel.appendChild(elems.taskSelector); elems.taskPanel.appendChild(elems.taskDetailsSelector); + elems.taskPanel.appendChild(elems.taskDetailsSelector2); elems.taskPanel.appendChild(elems.taskSetButton); elems.taskPanel.appendChild(elems.taskDescription); + elems.taskPanel.appendChild(elems.taskProgressBar); - elems.earningsPanel = createElement("div", { class: "sleeve-panel" }); + elems.earningsPanel = createElement("div", { class: "sleeve-panel", width: "35%" }); elems.currentEarningsInfo = createElement("p"); elems.totalEarningsButton = createElement("button", { class: "std-button", @@ -218,23 +257,23 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { clickListener: () => { dialogBoxCreate( [ - "

    Total Earnings for Current Task:

    ", + "

    Earnings for Current Task:

    ", `Money: ${numeralWrapper.formatMoney(sleeve.earningsForTask.money)}`, `Hacking Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.hack)}`, `Strength Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.str)}`, `Defense Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.def)}`, `Dexterity Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.dex)}`, `Agility Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.agi)}`, - `Charisma Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.cha)}`, - "

    Earnings for Host Consciousness:

    ", + `Charisma Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForTask.cha)}
    `, + "

    Total Earnings for Host Consciousness:

    ", `Money: ${numeralWrapper.formatMoney(sleeve.earningsForPlayer.money)}`, `Hacking Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.hack)}`, `Strength Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.str)}`, `Defense Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.def)}`, `Dexterity Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.dex)}`, `Agility Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.agi)}`, - `Charisma Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.cha)}`, - "

    Earnings for Other Sleeves:

    ", + `Charisma Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForPlayer.cha)}
    `, + "

    Total Earnings for Other Sleeves:

    ", `Money: ${numeralWrapper.formatMoney(sleeve.earningsForSleeves.money)}`, `Hacking Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.hack)}`, `Strength Exp: ${numeralWrapper.formatBigNumber(sleeve.earningsForSleeves.str)}`, @@ -247,6 +286,15 @@ function createSleeveUi(sleeve: Sleeve, allSleeves: Sleeve[]): ISleeveUIElems { } }); + elems.earningsPanel.appendChild(elems.currentEarningsInfo); + elems.earningsPanel.appendChild(elems.totalEarningsButton); + + updateSleeveUi(sleeve, elems); + + elems.container.appendChild(elems.statsPanel); + elems.container.appendChild(elems.taskPanel); + elems.container.appendChild(elems.earningsPanel); + return elems; } @@ -261,12 +309,19 @@ function updateSleeveUi(sleeve: Sleeve, elems: ISleeveUIElems) { `Agility: ${numeralWrapper.format(sleeve.agility, "0,0")}`, `Charisma: ${numeralWrapper.format(sleeve.charisma, "0,0")}`, `HP: ${numeralWrapper.format(sleeve.hp, "0,0")} / ${numeralWrapper.format(sleeve.max_hp, "0,0")}
    `, - `Shock: ${numeralWrapper.format(100 - sleeve.shock, "0,0")}`, - `Synchronization: ${numeralWrapper.format(sleeve.sync, "0,0")}`].join("
    "); + `Shock: ${numeralWrapper.format(100 - sleeve.shock, "0,0.000")}`, + `Sync: ${numeralWrapper.format(sleeve.sync, "0,0.000")}`].join("
    "); + + let repGainText: string = ""; + if (sleeve.currentTask === SleeveTaskType.Company || sleeve.currentTask === SleeveTaskType.Faction) { + const repGain: number = sleeve.getRepGain(playerRef!); + repGainText = `Reputation: ${numeralWrapper.format(5 * repGain, "0.00")} / s` + } if (sleeve.currentTask === SleeveTaskType.Crime) { elems.currentEarningsInfo!.innerHTML = [ - `Money: ${numeralWrapper.formatMoney(sleeve.gainRatesForTask.money)} if successful`, + `Earnings (Pre-Synchronization):`, + `Money: ${numeralWrapper.formatMoney(parseFloat(sleeve.currentTaskLocation))} if successful`, `Hacking Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.hack, "0.00")} (2x if successful)`, `Strength Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.str, "0.00")} (2x if successful)`, `Defense Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.def, "0.00")} (2x if successful)`, @@ -274,16 +329,26 @@ function updateSleeveUi(sleeve: Sleeve, elems: ISleeveUIElems) { `Agility Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.agi, "0.00")} (2x if successful)`, `Charisma Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.cha, "0.00")} (2x if successful)` ].join("
    "); + + elems.taskProgressBar!.innerText = createProgressBarText({ + progress: sleeve.currentTaskTime / sleeve.currentTaskMaxTime, + totalTicks: 25, + }); } else { - elems.currentEarningsInfo!.innerHTML = [ - `Money: ${numeralWrapper.formatMoney(sleeve.gainRatesForTask.money)} / s`, - `Hacking Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.hack, "0.00")} / s`, - `Strength Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.str, "0.00")} / s`, - `Defense Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.def, "0.00")} / s`, - `Dexterity Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.dex, "0.00")} / s`, - `Agility Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.agi, "0.00")} / s`, - `Charisma Exp: ${numeralWrapper.format(sleeve.gainRatesForTask.cha, "0.00")} / s` - ].join("
    "); + const lines = [ + `Earnings (Pre-Synchronization):`, + `Money: ${numeralWrapper.formatMoney(5 * sleeve.gainRatesForTask.money)} / s`, + `Hacking Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.hack, "0.00")} / s`, + `Strength Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.str, "0.00")} / s`, + `Defense Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.def, "0.00")} / s`, + `Dexterity Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.dex, "0.00")} / s`, + `Agility Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.agi, "0.00")} / s`, + `Charisma Exp: ${numeralWrapper.format(5 * sleeve.gainRatesForTask.cha, "0.00")} / s` + ]; + if (repGainText !== "") { lines.push(repGainText); } + elems.currentEarningsInfo!.innerHTML = lines.join("
    "); + + elems.taskProgressBar!.innerText = ""; } } @@ -333,7 +398,9 @@ function updateSleeveTaskSelector(sleeve: Sleeve, elems: ISleeveUIElems, allSlee } } + // Reset Selectors removeChildrenFromElement(elems.taskDetailsSelector); + removeChildrenFromElement(elems.taskDetailsSelector2); const value: string = getSelectValue(elems.taskSelector); switch(value) { @@ -342,7 +409,14 @@ function updateSleeveTaskSelector(sleeve: Sleeve, elems: ISleeveUIElems, allSlee for (let i = 0; i < allJobs.length; ++i) { if (!forbiddenCompanies.includes(allJobs[i])) { elems.taskDetailsSelector!.add(createOptionElement(allJobs[i])); + + // Set initial value of the 'Details' selector + if (sleeve.currentTaskLocation === allJobs[i]) { + elems.taskDetailsSelector!.selectedIndex = i; + } } + + elems.taskDetailsSelector2!.add(createOptionElement("------")); } break; case "Work for Faction": @@ -350,6 +424,11 @@ function updateSleeveTaskSelector(sleeve: Sleeve, elems: ISleeveUIElems, allSlee const fac: string = playerRef!.factions[i]!; if (!forbiddenFactions.includes(fac)) { elems.taskDetailsSelector!.add(createOptionElement(fac)); + + // Set initial value of the 'Details' Selector + if (sleeve.currentTaskLocation === fac) { + elems.taskDetailsSelector!.selectedIndex = i; + } } } for (let i = 0; i < factionWorkTypeSelectorOptions.length; ++i) { @@ -361,6 +440,8 @@ function updateSleeveTaskSelector(sleeve: Sleeve, elems: ISleeveUIElems, allSlee const name: string = Crimes[crimeLabel].name; elems.taskDetailsSelector!.add(createOptionElement(name, crimeLabel)); } + + elems.taskDetailsSelector2!.add(createOptionElement("------")); break; case "Take University Course": // First selector has class type @@ -410,17 +491,18 @@ function updateSleeveTaskSelector(sleeve: Sleeve, elems: ISleeveUIElems, allSlee break; case "Shock Recovery": - // No options in "Details" selector - return; case "Synchronize": + case "------": // No options in "Details" selector + elems.taskDetailsSelector!.add(createOptionElement("------")); + elems.taskDetailsSelector2!.add(createOptionElement("------")); return; default: break; } } -function setSleeveTask(sleeve: Sleeve, elems: ISleeveUIElems): void { +function setSleeveTask(sleeve: Sleeve, elems: ISleeveUIElems): boolean { try { if (playerRef == null) { throw new Error("playerRef is null in Sleeve UI's setSleeveTask()"); @@ -428,32 +510,21 @@ function setSleeveTask(sleeve: Sleeve, elems: ISleeveUIElems): void { const taskValue: string = getSelectValue(elems.taskSelector); const detailValue: string = getSelectValue(elems.taskDetailsSelector); - const detailValue2: string = getSelectValue(elems.taskDetailsSelector); + const detailValue2: string = getSelectValue(elems.taskDetailsSelector2); let res: boolean = false; switch(taskValue) { + case "------": + elems.taskDescription!.innerText = "This sleeve is currently idle"; + break; case "Work for Company": res = sleeve.workForCompany(playerRef!, detailValue); - if (res) { - elems.taskDescription!.innerText = `This sleeve is currently working your ` + - `job at ${sleeve.currentTaskLocation}.`; - } else { - elems.taskDescription!.innerText = "Failed to assign sleeve to task. Invalid choice(s)."; - } break; case "Work for Faction": res = sleeve.workForFaction(playerRef!, detailValue, detailValue2); - if (res) { - elems.taskDescription!.innerText = `This sleeve is currently doing ${detailValue2} for ` + - `${sleeve.currentTaskLocation}.`; - } else { - elems.taskDescription!.innerText = "Failed to assign sleeve to task. Invalid choice(s)."; - } break; case "Commit Crime": - sleeve.commitCrime(playerRef!, Crimes[detailValue]); - elems.taskDescription!.innerText = `This sleeve is currently attempting to ` + - `${Crimes[detailValue]}.`; + res = sleeve.commitCrime(playerRef!, Crimes[detailValue]); break; case "Take University Course": res = sleeve.takeUniversityCourse(playerRef!, detailValue2, detailValue); @@ -463,22 +534,79 @@ function setSleeveTask(sleeve: Sleeve, elems: ISleeveUIElems): void { break; case "Shock Recovery": sleeve.currentTask = SleeveTaskType.Recovery; - elems.taskDescription!.innerText = "This sleeve is currently set to focus on shock recovery. This causes " + - "the Sleeve's shock to decrease at a faster rate."; + res = true; break; case "Synchronize": sleeve.currentTask = SleeveTaskType.Sync; - elems.taskDescription!.innerText = "This sleeve is currently set to synchronize with the original consciousness. " + - "This causes the Sleeve's synchronization to increase." + res = true; break; default: console.error(`Invalid/Unrecognized taskValue in setSleeveTask(): ${taskValue}`); } + if (res) { + updateSleeveTaskDescription(sleeve, elems); + } else { + elems.taskDescription!.innerText = "Failed to assign sleeve to task. Invalid choice(s)."; + } + if (routing.isOn(Page.Sleeves)) { updateSleevesPage(); } + + return res; } catch(e) { + console.error(`Exception caught in setSleeveTask(): ${e}`); + exceptionAlert(e); + return false; + } +} + +function updateSleeveTaskDescription(sleeve: Sleeve, elems: ISleeveUIElems): void { + try { + if (playerRef == null) { + throw new Error("playerRef is null in Sleeve UI's setSleeveTask()"); + } + + const taskValue: string = getSelectValue(elems.taskSelector); + const detailValue: string = getSelectValue(elems.taskDetailsSelector); + const detailValue2: string = getSelectValue(elems.taskDetailsSelector2); + + switch(taskValue) { + case "------": + elems.taskDescription!.innerText = "This sleeve is currently idle"; + break; + case "Work for Company": + elems.taskDescription!.innerText = `This sleeve is currently working your ` + + `job at ${sleeve.currentTaskLocation}.`; + break; + case "Work for Faction": + elems.taskDescription!.innerText = `This sleeve is currently doing ${detailValue2} for ` + + `${sleeve.currentTaskLocation}.`; + break; + case "Commit Crime": + elems.taskDescription!.innerText = `This sleeve is currently attempting to ` + + `${Crimes[detailValue].type}.`; + break; + case "Take University Course": + elems.taskDescription!.innerText = `This sleeve is currently studying/taking a course at ${sleeve.currentTaskLocation}.`; + break; + case "Workout at Gym": + elems.taskDescription!.innerText = `This sleeve is currently working out at ${sleeve.currentTaskLocation}.`; + break; + case "Shock Recovery": + elems.taskDescription!.innerText = "This sleeve is currently set to focus on shock recovery. This causes " + + "the Sleeve's shock to decrease at a faster rate."; + break; + case "Synchronize": + elems.taskDescription!.innerText = "This sleeve is currently set to synchronize with the original consciousness. " + + "This causes the Sleeve's synchronization to increase." + break; + default: + console.error(`Invalid/Unrecognized taskValue in updateSleeveTaskDescription(): ${taskValue}`); + } + } catch(e) { + console.error(`Exception caught in updateSleeveTaskDescription(): ${e}`); exceptionAlert(e); } } diff --git a/src/PersonObjects/Sleeve/data/SleeveFaq.ts b/src/PersonObjects/Sleeve/data/SleeveFaq.ts new file mode 100644 index 000000000..dbd39b511 --- /dev/null +++ b/src/PersonObjects/Sleeve/data/SleeveFaq.ts @@ -0,0 +1,36 @@ +export const SleeveFaq: string = +[ +"How do sleeves work?
    ", +"Sleeves are essentially clones. You can use them to perform any work type", +"action, such as working for a company/faction or committing a crime.", +"Having sleeves perform these tasks earns you money, experience, and reputation.

    ", +"Sleeves are their own individuals, which means they each have their own", +"experience and stats.

    ", +"When a sleeve earns experience, it earns experience for itself, the player's", +"original 'consciousness', as well as all of the player's other sleeves.

    ", + +"What is Synchronization (Sync)?
    ", +"Synchronization is a measure of how aligned your consciousness is with", +"that of your Duplicate Sleeves. It is a numerical value between 1 and 100, and", +"it affects how much experience is earned when the sleeve is performing a task.

    ", +"Let N be the sleeve's synchronization. When the sleeve earns experience by performing a", +"task, both the sleeve and the player's original host consciousness earn N%", +"of the amount of experience normally earned by the task. All of the player's", +"other sleeves earn ((N/100)^2 * 100)% of the experience.

    ", +"Synchronization can be increased by assigning sleeves to the 'Synchronize' task.

    ", + +"What is Shock?
    ", +"Sleeve shock is a measure of how much trauma the sleeve has due to being placed in a new", +"body. It is a numerical value between 0 and 99, where 99 indicates full shock and 0 indicates", +"no shock. Shock affects the amount of experience earned by the sleeve.

    ", +"Sleeve shock slowly decreases over time. You can further increase the rate at which", +"it decreases by assigning sleeves to the 'Shock Recovery' task.

    ", + +"Why can't I work for this company or faction?
    ", +"Only one of your sleeves can work for a given company/faction a time.", +"To clarify further, if you have two sleeves they can work for two different", +"companies, but they cannot both work for the same company.

    ", + +"Do sleeves get reset when installing Augmentations or switching BitNodes?
    ", +"Sleeves are reset when switching BitNodes, but not when installing Augmentations." +].join(" "); diff --git a/src/Player.js b/src/Player.js index e6c1461f6..c344c3dfe 100644 --- a/src/Player.js +++ b/src/Player.js @@ -548,6 +548,14 @@ PlayerObject.prototype.loseMoney = function(money) { this.money = this.money.minus(money); } +PlayerObject.prototype.canAfford = function(cost) { + if (isNaN(cost)) { + console.error(`NaN passed into Player.canAfford()`); + return false; + } + return this.money.gte(cost); +} + PlayerObject.prototype.gainHackingExp = function(exp) { if (isNaN(exp)) { console.log("ERR: NaN passed into Player.gainHackingExp()"); return; diff --git a/src/SourceFile.js b/src/SourceFile.js index ee5fd4166..05f66ed84 100644 --- a/src/SourceFile.js +++ b/src/SourceFile.js @@ -63,7 +63,8 @@ function initSourceFiles() { "This Source-File also increases your hacking growth multipliers by: " + "
    Level 1: 12%
    Level 2: 18%
    Level 3: 21%"); SourceFiles["SourceFile9"] = new SourceFile(9); - SourceFiles["SourceFile10"] = new SourceFile(10); + SourceFiles["SourceFile10"] = new SourceFile(10, "This Source-File unlocks Sleeve technology in other BitNodes. Each level of this " + + "Source-File also grants you a Duplicate Sleeve"); SourceFiles["SourceFile11"] = new SourceFile(11, "This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate " + "at that company by 1% per favor (rather than just the reputation gain). This Source-File also " + " increases the player's company salary and reputation gain multipliers by:

    " + @@ -187,6 +188,9 @@ function applySourceFile(srcFile) { var incMult = 1 + (mult / 100); Player.hacking_grow_mult *= incMult; break; + case 10: // Digital Carbon + // No effects, just grants sleeves + break; case 11: //The Big Crash var mult = 0; for (var i = 0; i < srcFile.lvl; ++i) { diff --git a/src/StockMarket/StockMarket.js b/src/StockMarket/StockMarket.js index 6483e2c07..4b3262615 100644 --- a/src/StockMarket/StockMarket.js +++ b/src/StockMarket/StockMarket.js @@ -230,35 +230,35 @@ function initStockMarket() { const randInt = getRandomInt; var ecorp = Locations.AevumECorp; - var ecorpStk = new Stock(ecorp, StockSymbols[ecorp], randInt(40, 50) / 100, true, 19, randInt(17e3, 28e3), 3e12); + var ecorpStk = new Stock(ecorp, StockSymbols[ecorp], randInt(40, 50) / 100, true, 19, randInt(17e3, 28e3), 2.4e12); StockMarket[ecorp] = ecorpStk; var megacorp = Locations.Sector12MegaCorp; - var megacorpStk = new Stock(megacorp, StockSymbols[megacorp], randInt(40,50)/100, true, 19, randInt(24e3, 34e3), 3e12); + var megacorpStk = new Stock(megacorp, StockSymbols[megacorp], randInt(40,50)/100, true, 19, randInt(24e3, 34e3), 2.4e12); StockMarket[megacorp] = megacorpStk; var blade = Locations.Sector12BladeIndustries; - var bladeStk = new Stock(blade, StockSymbols[blade], randInt(70, 80)/100, true, 13, randInt(12e3, 25e3), 1.9e12); + var bladeStk = new Stock(blade, StockSymbols[blade], randInt(70, 80)/100, true, 13, randInt(12e3, 25e3), 1.6e12); StockMarket[blade] = bladeStk; var clarke = Locations.AevumClarkeIncorporated; - var clarkeStk = new Stock(clarke, StockSymbols[clarke], randInt(65, 75)/100, true, 12, randInt(10e3, 25e3), 1.8e12); + var clarkeStk = new Stock(clarke, StockSymbols[clarke], randInt(65, 75)/100, true, 12, randInt(10e3, 25e3), 1.5e12); StockMarket[clarke] = clarkeStk; var omnitek = Locations.VolhavenOmniTekIncorporated; - var omnitekStk = new Stock(omnitek, StockSymbols[omnitek], randInt(60, 70)/100, true, 12, randInt(32e3, 43e3), 2.1e12); + var omnitekStk = new Stock(omnitek, StockSymbols[omnitek], randInt(60, 70)/100, true, 12, randInt(32e3, 43e3), 1.8e12); StockMarket[omnitek] = omnitekStk; var foursigma = Locations.Sector12FourSigma; - var foursigmaStk = new Stock(foursigma, StockSymbols[foursigma], randInt(100, 110)/100, true, 17, randInt(50e3, 80e3), 2.4e12); + var foursigmaStk = new Stock(foursigma, StockSymbols[foursigma], randInt(100, 110)/100, true, 17, randInt(50e3, 80e3), 2e12); StockMarket[foursigma] = foursigmaStk; var kuaigong = Locations.ChongqingKuaiGongInternational; - var kuaigongStk = new Stock(kuaigong, StockSymbols[kuaigong], randInt(75, 85)/100, true, 10, randInt(16e3, 28e3), 2.3e12); + var kuaigongStk = new Stock(kuaigong, StockSymbols[kuaigong], randInt(75, 85)/100, true, 10, randInt(16e3, 28e3), 1.9e12); StockMarket[kuaigong] = kuaigongStk; var fulcrum = Locations.AevumFulcrumTechnologies; - var fulcrumStk = new Stock(fulcrum, StockSymbols[fulcrum], randInt(120, 130)/100, true, 16, randInt(29e3, 36e3), 2.4e12); + var fulcrumStk = new Stock(fulcrum, StockSymbols[fulcrum], randInt(120, 130)/100, true, 16, randInt(29e3, 36e3), 2e12); StockMarket[fulcrum] = fulcrumStk; var storm = Locations.IshimaStormTechnologies; diff --git a/src/engine.js b/src/engine.js index 6de473f63..ef8b7a324 100644 --- a/src/engine.js +++ b/src/engine.js @@ -66,6 +66,10 @@ import {StockMarket, StockSymbols, displayStockMarketContent} from "./StockMarket/StockMarket"; import {Terminal, postNetburnerText} from "./Terminal"; +import { Sleeve } from "./PersonObjects/Sleeve/Sleeve"; +import { clearSleevesPage, + createSleevesPage, + updateSleevesPage } from "./PersonObjects/Sleeve/SleeveUI"; import { clearResleevesPage, createResleevesPage } from "./PersonObjects/Resleeving/ResleevingUI"; @@ -111,6 +115,8 @@ import "../css/missions.scss"; import "../css/companymanagement.scss"; import "../css/bladeburner.scss"; import "../css/gang.scss"; +import "../css/sleeves.scss"; +import "../css/resleeving.scss"; import "../css/treant.css"; @@ -472,6 +478,13 @@ const Engine = { loadSleevesContent: function() { // This is for Duplicate Sleeves page, not Re-sleeving @ Vita Life + try { + Engine.hideAllContent(); + routing.navigateTo(Page.Sleeves); + createSleevesPage(Player); + } catch(e) { + exceptionAlert(e); + } }, loadResleevingContent: function() { @@ -520,6 +533,9 @@ const Engine = { Player.bladeburner.clearContent(); } + clearResleevesPage(); + clearSleevesPage(); + //Location lists Engine.aevumLocationsList.style.display = "none"; Engine.chongqingLocationsList.style.display = "none"; @@ -944,6 +960,20 @@ const Engine = { Player.bladeburner.storeCycles(numCycles); } + // Sleeves + for (let i = 0; i < Player.sleeves.length; ++i) { + if (Player.sleeves[i] instanceof Sleeve) { + const expForOtherSleeves = Player.sleeves[i].process(Player, numCycles); + + // This sleeve earns experience for other sleeves + if (expForOtherSleeves == null) { continue; } + for (let j = 0; j < Player.sleeves.length; ++j) { + if (j === i) { continue; } + Player.sleeves[j].gainExperience(Player, expForOtherSleeves, numCycles); + } + } + } + //Counters Engine.decrementAllCounters(numCycles); Engine.checkCounters(); @@ -1024,6 +1054,8 @@ const Engine = { updateHacknetNodesContent(); } else if (routing.isOn(Page.CreateProgram)) { displayCreateProgramContent(); + } else if (routing.isOn(Page.Sleeves)) { + updateSleevesPage(); } if (logBoxOpened) { @@ -1295,6 +1327,20 @@ const Engine = { Player.bladeburner.storeCycles(numCyclesOffline); } + // Sleeves offline progress + for (let i = 0; i < Player.sleeves.length; ++i) { + if (Player.sleeves[i] instanceof Sleeve) { + const expForOtherSleeves = Player.sleeves[i].process(Player, numCyclesOffline); + + // This sleeve earns experience for other sleeves + if (expForOtherSleeves == null) { continue; } + for (let j = 0; j < Player.sleeves.length; ++j) { + if (j === i) { continue; } + Player.sleeves[j].gainExperience(Player, expForOtherSleeves, numCyclesOffline); + } + } + } + //Update total playtime var time = numCyclesOffline * Engine._idleSpeed; if (Player.totalPlaytime == null) {Player.totalPlaytime = 0;} @@ -1582,6 +1628,11 @@ const Engine = { return false; }); + MainMenuLinks.Sleeves.addEventListener("click", function() { + Engine.loadSleevesContent(); + return false; + }); + MainMenuLinks.City.addEventListener("click", function() { Engine.loadWorldContent(); return false; diff --git a/src/index.html b/src/index.html index aa36c5df4..9bbb3b7b1 100644 --- a/src/index.html +++ b/src/index.html @@ -67,6 +67,9 @@ if (htmlWebpackPlugin.options.googleAnalytics.trackingId) { %>
  • +
  • diff --git a/src/ui/MainMenu/Headers.ts b/src/ui/MainMenu/Headers.ts index d77fdd097..485a64610 100644 --- a/src/ui/MainMenu/Headers.ts +++ b/src/ui/MainMenu/Headers.ts @@ -84,11 +84,14 @@ export function initializeMainMenuHeaders(p: IPlayer, dev: boolean=false): boole const factions: HTMLElement = safeGetElement("factions-tab"); const augmentations: HTMLElement = safeGetElement("augmentations-tab"); const hacknetnodes: HTMLElement = safeGetElement("hacknet-nodes-tab"); + const sleeves: HTMLElement = safeGetElement("sleeves-tab"); + sleeves.style.display = p.sleeves.length > 0 ? "list-item" : "none"; + this.classList.toggle("opened"); - const elems: HTMLElement[] = [stats, factions, augmentations, hacknetnodes]; - const links: HTMLElement[] = [MainMenuLinks.Stats!, MainMenuLinks.Factions!, MainMenuLinks.Augmentations!, MainMenuLinks.HacknetNodes!]; + const elems: HTMLElement[] = [stats, factions, augmentations, hacknetnodes, sleeves]; + const links: HTMLElement[] = [MainMenuLinks.Stats!, MainMenuLinks.Factions!, MainMenuLinks.Augmentations!, MainMenuLinks.HacknetNodes!, MainMenuLinks.Sleeves!]; if (stats.style.maxHeight) { toggleHeader(false, elems, links); } else { diff --git a/src/ui/MainMenu/Links.ts b/src/ui/MainMenu/Links.ts index fa950adb5..4dd08d478 100644 --- a/src/ui/MainMenu/Links.ts +++ b/src/ui/MainMenu/Links.ts @@ -11,6 +11,7 @@ interface IMainMenuLinks { Factions: HTMLElement | null; Augmentations: HTMLElement | null; HacknetNodes: HTMLElement | null; + Sleeves: HTMLElement | null; City: HTMLElement | null; Travel: HTMLElement | null; Job: HTMLElement | null; @@ -32,6 +33,7 @@ export const MainMenuLinks: IMainMenuLinks = { Factions: null, Augmentations: null, HacknetNodes: null, + Sleeves: null, City: null, Travel: null, Job: null, @@ -63,6 +65,7 @@ export function initializeMainMenuLinks(): boolean { MainMenuLinks.Factions = safeGetLink("factions-menu-link"); MainMenuLinks.Augmentations = safeGetLink("augmentations-menu-link"); MainMenuLinks.HacknetNodes = safeGetLink("hacknet-nodes-menu-link"); + MainMenuLinks.Sleeves = safeGetLink("sleeves-menu-link"); MainMenuLinks.City = safeGetLink("city-menu-link"); MainMenuLinks.Travel = safeGetLink("travel-menu-link"); MainMenuLinks.Job = safeGetLink("job-menu-link"); diff --git a/utils/uiHelpers/getSelectData.ts b/utils/uiHelpers/getSelectData.ts index ff460632e..13b21ce86 100644 --- a/utils/uiHelpers/getSelectData.ts +++ b/utils/uiHelpers/getSelectData.ts @@ -1,9 +1,11 @@ export function getSelectValue(selector: HTMLSelectElement | null): string { if (selector == null) { return ""; } - return selector[selector.selectedIndex].value; + if (selector.options.length <= 0) { return ""; } + return selector.options[selector.selectedIndex].value; } export function getSelectText(selector: HTMLSelectElement | null): string { if (selector == null) { return ""; } - return selector[selector.selectedIndex].text; + if (selector.options.length <= 0) { return ""; } + return selector.options[selector.selectedIndex].text; }