@drincs/pixi-vn 1.5.19 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{HistoryChoiceMenuOption-BOHqf57l.d.ts → HistoryChoiceMenuOption-BQc_jAe-.d.ts} +2 -7
- package/dist/{HistoryChoiceMenuOption-PzBGGqOC.d.cts → HistoryChoiceMenuOption-ok3Zd5pB.d.cts} +2 -7
- package/dist/{StoredClassModel-BgRY86sq.d.ts → StoredClassModel-CUrGRJi0.d.cts} +5 -2
- package/dist/{StoredClassModel-BgRY86sq.d.cts → StoredClassModel-D-s0mEVj.d.ts} +5 -2
- package/dist/canvas.cjs +2 -3
- package/dist/canvas.d.cts +32 -38
- package/dist/canvas.d.ts +32 -38
- package/dist/canvas.mjs +2 -3
- package/dist/characters.cjs +1 -2
- package/dist/characters.d.cts +3 -2
- package/dist/characters.d.ts +3 -2
- package/dist/characters.mjs +1 -2
- package/dist/chunk-D45QSSXG.mjs +1 -0
- package/dist/chunk-HACUDOYJ.mjs +1 -0
- package/dist/chunk-IWAXXFXE.mjs +1 -0
- package/dist/chunk-L4IHQ3VT.mjs +1 -0
- package/dist/{chunk-JJFD2BVW.mjs → chunk-TTRUPDAB.mjs} +1 -2
- package/dist/chunk-XSN6P5JL.mjs +0 -0
- package/dist/chunk-ZW3MIPMS.mjs +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +43 -16
- package/dist/core.d.ts +43 -16
- package/dist/core.mjs +1 -1
- package/dist/history.cjs +1 -2
- package/dist/history.d.cts +3 -4
- package/dist/history.d.ts +3 -4
- package/dist/history.mjs +1 -2
- package/dist/index.cjs +2 -3
- package/dist/index.d.cts +294 -122
- package/dist/index.d.ts +294 -122
- package/dist/index.mjs +2 -3
- package/dist/motion.cjs +1 -2
- package/dist/motion.d.cts +18 -0
- package/dist/motion.d.ts +18 -0
- package/dist/motion.mjs +1 -2
- package/dist/narration.cjs +2 -3
- package/dist/narration.d.cts +9 -20
- package/dist/narration.d.ts +9 -20
- package/dist/narration.mjs +2 -3
- package/dist/pixi/browser.js +35 -35
- package/dist/sound.cjs +1 -2
- package/dist/sound.d.cts +193 -72
- package/dist/sound.d.ts +193 -72
- package/dist/sound.mjs +1 -2
- package/dist/storage.cjs +1 -2
- package/dist/storage.d.cts +20 -71
- package/dist/storage.d.ts +20 -71
- package/dist/storage.mjs +1 -2
- package/dist/vite-listener.cjs +1 -2
- package/dist/vite-listener.mjs +1 -2
- package/dist/vite.cjs +1 -2
- package/dist/vite.mjs +1 -2
- package/package.json +10 -12
- package/dist/chunk-46QBDRUK.mjs +0 -2
- package/dist/chunk-52EK6LYW.mjs +0 -2
- package/dist/chunk-INJYRMJ3.mjs +0 -2
- package/dist/chunk-JJFD2BVW.mjs.map +0 -1
- package/dist/chunk-OXRIVLY2.mjs +0 -2
- package/dist/chunk-SOFV7YZ5.mjs +0 -2
- package/dist/chunk-XZMYXKAY.mjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/motion.cjs.map +0 -1
- package/dist/motion.mjs.map +0 -1
- package/dist/vite-listener.cjs.map +0 -1
- package/dist/vite-listener.mjs.map +0 -1
- package/dist/vite.cjs.map +0 -1
- package/dist/vite.mjs.map +0 -1
package/dist/history.d.cts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { GameStepState, HistoryInfo } from '@drincs/pixi-vn';
|
|
2
|
-
import deepDiff from 'deep-diff';
|
|
3
2
|
import { Difference } from 'microdiff';
|
|
4
3
|
import { C as CachedMap } from './CachedMap-DZLvJAnA.cjs';
|
|
5
|
-
import { H as HistoryStep, N as NarrationHistory, d as StepLabelPropsType, e as StepLabelResultType } from './HistoryChoiceMenuOption-
|
|
4
|
+
import { H as HistoryStep, N as NarrationHistory, d as StepLabelPropsType, e as StepLabelResultType } from './HistoryChoiceMenuOption-ok3Zd5pB.cjs';
|
|
6
5
|
import 'lru-cache';
|
|
7
6
|
import './StorageElementType-dAIVJeiw.cjs';
|
|
8
7
|
|
|
@@ -115,7 +114,7 @@ interface HistoryManagerInterface {
|
|
|
115
114
|
*
|
|
116
115
|
* **Don't edit unless you're sure what you're doing.**
|
|
117
116
|
*/
|
|
118
|
-
readonly diffMap: CachedMap<number,
|
|
117
|
+
readonly diffMap: CachedMap<number, Difference[]>;
|
|
119
118
|
/**
|
|
120
119
|
* Map that contains all the narration history.
|
|
121
120
|
*
|
|
@@ -135,7 +134,7 @@ interface HistoryManagerInterface {
|
|
|
135
134
|
}
|
|
136
135
|
|
|
137
136
|
declare class HistoryManagerStatic {
|
|
138
|
-
static _diffHistory: CachedMap<number, Difference[]
|
|
137
|
+
static _diffHistory: CachedMap<number, Difference[]>;
|
|
139
138
|
static _stepsInfoHistory: CachedMap<number, Omit<HistoryStep, "diff">>;
|
|
140
139
|
static _narrationHistory: CachedMap<number, NarrationHistory>;
|
|
141
140
|
static stepLimitSaved: number;
|
package/dist/history.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { GameStepState, HistoryInfo } from '@drincs/pixi-vn';
|
|
2
|
-
import deepDiff from 'deep-diff';
|
|
3
2
|
import { Difference } from 'microdiff';
|
|
4
3
|
import { C as CachedMap } from './CachedMap-DZLvJAnA.js';
|
|
5
|
-
import { H as HistoryStep, N as NarrationHistory, d as StepLabelPropsType, e as StepLabelResultType } from './HistoryChoiceMenuOption-
|
|
4
|
+
import { H as HistoryStep, N as NarrationHistory, d as StepLabelPropsType, e as StepLabelResultType } from './HistoryChoiceMenuOption-BQc_jAe-.js';
|
|
6
5
|
import 'lru-cache';
|
|
7
6
|
import './StorageElementType-dAIVJeiw.js';
|
|
8
7
|
|
|
@@ -115,7 +114,7 @@ interface HistoryManagerInterface {
|
|
|
115
114
|
*
|
|
116
115
|
* **Don't edit unless you're sure what you're doing.**
|
|
117
116
|
*/
|
|
118
|
-
readonly diffMap: CachedMap<number,
|
|
117
|
+
readonly diffMap: CachedMap<number, Difference[]>;
|
|
119
118
|
/**
|
|
120
119
|
* Map that contains all the narration history.
|
|
121
120
|
*
|
|
@@ -135,7 +134,7 @@ interface HistoryManagerInterface {
|
|
|
135
134
|
}
|
|
136
135
|
|
|
137
136
|
declare class HistoryManagerStatic {
|
|
138
|
-
static _diffHistory: CachedMap<number, Difference[]
|
|
137
|
+
static _diffHistory: CachedMap<number, Difference[]>;
|
|
139
138
|
static _stepsInfoHistory: CachedMap<number, Omit<HistoryStep, "diff">>;
|
|
140
139
|
static _narrationHistory: CachedMap<number, NarrationHistory>;
|
|
141
140
|
static stepLimitSaved: number;
|
package/dist/history.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import'./chunk-
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9taWNyb2RpZmYvZGlzdC9pbmRleC5qcyIsIi4uL3NyYy91dGlscy9kaWZmLXV0aWxpdHkudHMiLCIuLi9zcmMvaGlzdG9yeS9IaXN0b3J5TWFuYWdlclN0YXRpYy50cyIsIi4uL3NyYy9oaXN0b3J5L0hpc3RvcnlNYW5hZ2VyLnRzIiwiLi4vc3JjL2hpc3RvcnkvaW5kZXgudHMiXSwibmFtZXMiOlsicmljaFR5cGVzIiwiZGlmZiIsIm9iaiIsIm5ld09iaiIsIm9wdGlvbnMiLCJfc3RhY2siLCJkaWZmcyIsImlzT2JqQXJyYXkiLCJrZXkiLCJvYmpLZXkiLCJwYXRoIiwibmV3T2JqS2V5IiwiYXJlQ29tcGF0aWJsZU9iamVjdHMiLCJkaWZmZXJlbmNlIiwiaXNOZXdPYmpBcnJheSIsInJlc3RvcmVEaWZmQ2hhbmdlcyIsImRhdGEiLCJkaWZmZXJlbmNlcyIsInJlc3VsdCIsImNyZWF0ZUV4cG9ydGFibGVFbGVtZW50IiwicmVzdG9yZU1pY3JvRGlmZkNoYW5nZXMiLCJyZXN0b3JlRGVlcERpZmZDaGFuZ2VzIiwiZGF0YVRvRWRpdCIsImluZGV4IiwibG9nZ2VyIiwiX0hpc3RvcnlNYW5hZ2VyU3RhdGljIiwidmFsdWUiLCJfX3B1YmxpY0ZpZWxkIiwiQ2FjaGVkTWFwIiwiSGlzdG9yeU1hbmFnZXJTdGF0aWMiLCJIaXN0b3J5TWFuYWdlciIsInN0ZXBJbmRleCIsIml0ZW0iLCJzdGVwcyIsInJlc3RvcmVkU3RlcCIsImxhc3RLZXkiLCJHYW1lVW5pZmllciIsImUiLCJwcm9wcyIsInN0ZXBDb3VudGVyIiwiaGlzdG9yeUluZm8iLCJuYXJyYXRpdmVIaXN0b3J5Iiwib3JpZ2luYWxTdGVwRGF0YSIsImlnbm9yZVNhbWVTdGVwIiwiY3VycmVudFN0ZXBEYXRhIiwibGFzdFN0ZXBIaXN0b3J5IiwibGFzdE5hcnJhdGl2ZUhpc3RvcnkiLCJwcmV2aW91c0l0ZW0iLCJwcmV2aW91c05hcnJhdGl2ZUhpc3RvcnkiLCJzdGVwIiwiY2hvaWNlSW5kZXhNYWRlIiwiaW5wdXRWYWx1ZSIsInJlbW92ZURpYWxvZ3VlIiwiZGlhbG9ndWUiLCJyZXF1aXJlZENob2ljZXMiLCJjaG9pY2VzIiwiY2hvaWNlIiwiaGlkZGVuIiwib25seUhhdmVOb0Nob2ljZSIsImEiLCJiIiwia2V5cyIsImxhc3RJdGVtIiwib3BlbmVkTGFiZWxzIiwiY3VycmVudFN0ZXBJbmRleCIsImxhYmVsIiwiaW5mbyIsIm9wZW5lZExhYmVsc1RlbXAiLCJpdGVtc051bWJlciIsIm9yaWdpbmFsU3RhdGUiLCJuZXdTdGF0ZSIsImxhc3RTdGVwRGF0YU9wZW5lZExhYmVsc1N0cmluZyIsImhpc3RvcnlTdGVwT3BlbmVkTGFiZWxzU3RyaW5nIiwibGltaXQiLCJzdGVwc0hpc3RvcnkiLCJtb3JlSW5mbyIsInJlcyIsInN0ZXBIaXN0b3J5Il0sIm1hcHBpbmdzIjoiaUtBQUEsSUFBTUEsQ0FBQUEsQ0FBWSxDQUFFLElBQUEsQ0FBTSxJQUFBLENBQU0sTUFBQSxDQUFRLElBQUEsQ0FBTSxNQUFBLENBQVEsSUFBQSxDQUFNLE9BQVEsSUFBSyxDQUFBLENBQzFELFNBQVJDLENBQUFBLENBQXNCQyxDQUFBQSxDQUFLQyxDQUFBQSxDQUFRQyxFQUFVLENBQUUsU0FBQSxDQUFXLElBQUssQ0FBQSxDQUFHQyxDQUFBQSxDQUFTLEdBQUksQ0FDbEYsSUFBSUMsQ0FBQUEsQ0FBUSxFQUFDLENBQ1BDLENBQUFBLENBQWEsTUFBTSxPQUFBLENBQVFMLENBQUcsQ0FBQSxDQUNwQyxJQUFBLElBQVdNLENBQUFBLElBQU9OLENBQUFBLENBQUssQ0FDbkIsSUFBTU8sQ0FBQUEsQ0FBU1AsQ0FBQUEsQ0FBSU0sQ0FBRyxDQUFBLENBQ2hCRSxDQUFBQSxDQUFPSCxDQUFBQSxDQUFhLENBQUNDLENBQUFBLENBQU1BLENBQUFBLENBQ2pDLEdBQUksRUFBRUEsQ0FBQUEsSUFBT0wsQ0FBQUEsQ0FBQUEsQ0FBUyxDQUNsQkcsQ0FBQUEsQ0FBTSxJQUFBLENBQUssQ0FDUCxJQUFBLENBQU0sUUFBQSxDQUNO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Q0FBU2lDLENBQUFBLEVBQXNCLENBQ3BDQSxDQUFBQSxDQUFLLElBQUEsRUFDTHBCLENBQUFBLENBQXFCLGFBQWEsR0FBQSxDQUFJb0IsQ0FBQUEsQ0FBSyxLQUFBLENBQU9BLENBQUFBLENBQUssSUFBSSxDQUFBLENBRS9ELElBQUlpQixDQUFBQSxDQUFPLENBQUUsR0FBR2pCLENBQUFBLENBQU0sSUFBQSxDQUFNLEtBQUEsQ0FBVSxFQUN0Q3BCLENBQUFBLENBQXFCLGlCQUFBLENBQWtCLEdBQUEsQ0FBSW9CLENBQUFBLENBQUssS0FBQSxDQUFPaUIsQ0FBSSxFQUMvRCxDQUFDLENBQUEsQ0FDRCxJQUFBLENBQUssdUJBQUEsRUFBd0IsRUFFN0IxQyxDQUFBQSxDQUFPLElBQUEsQ0FBSyx3REFBd0QsQ0FBQSxDQUVwRVIsQ0FBQUEsQ0FBSyxjQUFBLENBQWUsa0JBQWtCLENBQUEsQ0FDdENhLENBQUFBLENBQXFCLGtCQUFxQmIsQ0FBQUEsQ0FBMEIsZ0JBQUEsQ0FFcEVRLENBQUFBLENBQU8sSUFBQSxDQUFLLDREQUE0RCxFQUVoRixPQUFTYSxDQUFBQSxDQUFHLENBQ1JiLENBQUFBLENBQU8sS0FBQSxDQUFNLHNCQUFBLENBQXdCYSxDQUFDLEVBQzFDLENBQ0osQ0FDSixDQUFBLENDOWJBLElBQU13QyxDQUFBQSxDQUF1QyxJQUFJL0MiLCJmaWxlIjoiaGlzdG9yeS5tanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByaWNoVHlwZXMgPSB7IERhdGU6IHRydWUsIFJlZ0V4cDogdHJ1ZSwgU3RyaW5nOiB0cnVlLCBOdW1iZXI6IHRydWUgfTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpZmYob2JqLCBuZXdPYmosIG9wdGlvbnMgPSB7IGN5Y2xlc0ZpeDogdHJ1ZSB9LCBfc3RhY2sgPSBbXSkge1xuICAgIGxldCBkaWZmcyA9IFtdO1xuICAgIGNvbnN0IGlzT2JqQXJyYXkgPSBBcnJheS5pc0FycmF5KG9iaik7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGNvbnN0IG9iaktleSA9IG9ialtrZXldO1xuICAgICAgICBjb25zdCBwYXRoID0gaXNPYmpBcnJheSA/ICtrZXkgOiBrZXk7XG4gICAgICAgIGlmICghKGtleSBpbiBuZXdPYmopKSB7XG4gICAgICAgICAgICBkaWZmcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcIlJFTU9WRVwiLFxuICAgICAgICAgICAgICAgIHBhdGg6IFtwYXRoXSxcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogb2JqW2tleV0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld09iaktleSA9IG5ld09ialtrZXldO1xuICAgICAgICBjb25zdCBhcmVDb21wYXRpYmxlT2JqZWN0cyA9IHR5cGVvZiBvYmpLZXkgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgIHR5cGVvZiBuZXdPYmpLZXkgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkob2JqS2V5KSA9PT0gQXJyYXkuaXNBcnJheShuZXdPYmpLZXkpO1xuICAgICAgICBpZiAob2JqS2V5ICYmXG4gICAgICAgICAgICBuZXdPYmpLZXkgJiZcbiAgICAgICAgICAgIGFyZUNvbXBhdGlibGVPYmplY3RzICYmXG4gICAgICAgICAgICAhcmljaFR5cGVzW09iamVjdC5nZXRQcm90b3R5cGVPZihvYmpLZXkpPy5jb25zdHJ1Y3Rvcj8ubmFtZV0gJiZcbiAgICAgICAgICAgICghb3B0aW9ucy5jeWNsZXNGaXggfHwgIV9zdGFjay5pbmNsdWRlcyhvYmpLZXkpKSkge1xuICAgICAgICAgICAgZGlmZnMucHVzaC5hcHBseShkaWZmcywgZGlmZihvYmpLZXksIG5ld09iaktleSwgb3B0aW9ucywgb3B0aW9ucy5jeWNsZXNGaXggPyBfc3RhY2suY29uY2F0KFtvYmpLZXldKSA6IFtdKS5tYXAoKGRpZmZlcmVuY2UpID0+IHtcbiAgICAgICAgICAgICAgICBkaWZmZXJlbmNlLnBhdGgudW5zaGlmdChwYXRoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlmZmVyZW5jZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvYmpLZXkgIT09IG5ld09iaktleSAmJlxuICAgICAgICAgICAgLy8gdHJlYXQgTmFOIHZhbHVlcyBhcyBlcXVpdmFsZW50XG4gICAgICAgICAgICAhKE51bWJlci5pc05hTihvYmpLZXkpICYmIE51bWJlci5pc05hTihuZXdPYmpLZXkpKSAmJlxuICAgICAgICAgICAgIShhcmVDb21wYXRpYmxlT2JqZWN0cyAmJlxuICAgICAgICAgICAgICAgIChpc05hTihvYmpLZXkpXG4gICAgICAgICAgICAgICAgICAgID8gb2JqS2V5ICsgXCJcIiA9PT0gbmV3T2JqS2V5ICsgXCJcIlxuICAgICAgICAgICAgICAgICAgICA6ICtvYmpLZXkgPT09ICtuZXdPYmpLZXkpKSkge1xuICAgICAgICAgICAgZGlmZnMucHVzaCh7XG4gICAgICAgICAgICAgICAgcGF0aDogW3BhdGhdLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiQ0hBTkdFXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG5ld09iaktleSxcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogb2JqS2V5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaXNOZXdPYmpBcnJheSA9IEFycmF5LmlzQXJyYXkobmV3T2JqKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdPYmopIHtcbiAgICAgICAgaWYgKCEoa2V5IGluIG9iaikpIHtcbiAgICAgICAgICAgIGRpZmZzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiQ1JFQVRFXCIsXG4gICAgICAgICAgICAgICAgcGF0aDogW2lzTmV3T2JqQXJyYXkgPyAra2V5IDoga2V5XSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbmV3T2JqW2tleV0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlmZnM7XG59XG4iLCJpbXBvcnQgZGVlcERpZmYgZnJvbSBcImRlZXAtZGlmZlwiO1xuaW1wb3J0IHsgRGlmZmVyZW5jZSB9IGZyb20gXCJtaWNyb2RpZmZcIjtcbmltcG9ydCB7IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50IH0gZnJvbSBcIi4vZXhwb3J0LXV0aWxpdHlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZy11dGlsaXR5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN0b3JlRGlmZkNoYW5nZXM8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4oXG4gICAgZGF0YTogVCxcbiAgICBkaWZmZXJlbmNlczogZGVlcERpZmYuRGlmZjxULCBUPltdIHwgRGlmZmVyZW5jZVtdXG4pOiBUIHtcbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoZGF0YSk7XG4gICAgaWYgKGRpZmZlcmVuY2VzLmxlbmd0aCA+IDEgJiYgXCJ0eXBlXCIgaW4gZGlmZmVyZW5jZXNbMF0pIHtcbiAgICAgICAgZGlmZmVyZW5jZXMgPSBkaWZmZXJlbmNlcy5yZXZlcnNlKCk7XG4gICAgfVxuICAgIGRpZmZlcmVuY2VzLmZvckVhY2goKGRpZmYpID0+IHtcbiAgICAgICAgaWYgKFwidHlwZVwiIGluIGRpZmYpIHtcbiAgICAgICAgICAgIHJlc3RvcmVNaWNyb0RpZmZDaGFuZ2VzPFQ+KHJlc3VsdCwgZGlmZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN0b3JlRGVlcERpZmZDaGFuZ2VzPFQ+KHJlc3VsdCwgZGlmZik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZXN0b3JlTWljcm9EaWZmQ2hhbmdlczxUIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PihyZXN1bHQ6IFQsIGRpZmY6IERpZmZlcmVuY2UpIHtcbiAgICBsZXQgZGF0YVRvRWRpdDogYW55ID0gcmVzdWx0O1xuICAgIGlmIChkaWZmLnBhdGggJiYgZGlmZi5wYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGlmZi5wYXRoLmZvckVhY2goKHBhdGgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlmZi5wYXRoICYmIGluZGV4ID09PSBkaWZmLnBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZGlmZi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJDSEFOR0VcIjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlJFTU9WRVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVRvRWRpdFtwYXRoXSA9IGRpZmYub2xkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNSRUFURVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgcGF0aCBpcyBhIG51bWJlciwgZGF0YVRvRWRpdCBpcyBhbiBhcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVRvRWRpdCkgJiYgdHlwZW9mIHBhdGggPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhVG9FZGl0LnNwbGljZShwYXRoLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHBhdGggaXMgYSBzdHJpbmcsIGRhdGFUb0VkaXQgaXMgYW4gb2JqZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUga2V5IGZyb20gb2JqZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFUb0VkaXRbcGF0aF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGFUb0VkaXQgPSBkYXRhVG9FZGl0W3BhdGhdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIud2FybihcIk5vIHBhdGggZm91bmQsIHNraXBwaW5nIGRpZmZcIiwgZGlmZik7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgaXMgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbi4gd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuXG4gKi9cbmZ1bmN0aW9uIHJlc3RvcmVEZWVwRGlmZkNoYW5nZXM8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ocmVzdWx0OiBULCBkaWZmOiBkZWVwRGlmZi5EaWZmPFQsIFQ+KSB7XG4gICAgbGV0IGRhdGFUb0VkaXQ6IGFueSA9IHJlc3VsdDtcbiAgICBpZiAoZGlmZi5wYXRoICYmIGRpZmYucGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRpZmYucGF0aC5mb3JFYWNoKChwYXRoLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRpZmYucGF0aCAmJiBpbmRleCA9PT0gZGlmZi5wYXRoLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlmZi5raW5kID09PSBcIkVcIiB8fCBkaWZmLmtpbmQgPT09IFwiRFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFUb0VkaXRbcGF0aF0gPSBkaWZmLmxocztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRpZmYua2luZCA9PT0gXCJOXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgcGF0aCBpcyBhIG51bWJlciwgZGF0YVRvRWRpdCBpcyBhbiBhcnJheVxuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihwYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGluZGV4IGZyb20gYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFUb0VkaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVRvRWRpdC5zcGxpY2UocGF0aCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgcGF0aCBpcyBhIHN0cmluZywgZGF0YVRvRWRpdCBpcyBhbiBvYmplY3RcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhdGggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBrZXkgZnJvbSBvYmplY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkYXRhVG9FZGl0W3BhdGhdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkaWZmLmtpbmQgPT09IFwiQVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGRpZmYuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWZmLml0ZW0ua2luZCA9PT0gXCJOXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBpbmRleCBmcm9tIGFycmF5XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0YVRvRWRpdFtwYXRoXSBhcyBhbnlbXSkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkaWZmLml0ZW0ua2luZCA9PT0gXCJFXCIgfHwgZGlmZi5pdGVtLmtpbmQgPT09IFwiRFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlZGl0IGluZGV4IGluIGFycmF5XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0YVRvRWRpdFtwYXRoXSBhcyBhbnlbXSlbaW5kZXhdID0gZGlmZi5pdGVtLmxocztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkaWZmLml0ZW0ua2luZCA9PT0gXCJBXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiTmVzdGVkIGFycmF5IGZvdW5kLCBza2lwcGluZyBkaWZmXCIsIGRpZmYpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oXCJObyBhcnJheSBmb3VuZCwgc2tpcHBpbmcgZGlmZlwiLCBkaWZmKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YVRvRWRpdCA9IGRhdGFUb0VkaXRbcGF0aF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci53YXJuKFwiTm8gcGF0aCBmb3VuZCwgc2tpcHBpbmcgZGlmZlwiLCBkaWZmKTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBHYW1lU3RlcFN0YXRlIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12blwiO1xuaW1wb3J0IGRlZXBEaWZmIGZyb20gXCJkZWVwLWRpZmZcIjtcbmltcG9ydCB7IERpZmZlcmVuY2UgfSBmcm9tIFwibWljcm9kaWZmXCI7XG5pbXBvcnQgeyBDYWNoZWRNYXAgfSBmcm9tIFwiLi4vY2xhc3Nlc1wiO1xuaW1wb3J0IHsgSGlzdG9yeVN0ZXAsIE5hcnJhdGlvbkhpc3RvcnkgfSBmcm9tIFwiLi4vbmFycmF0aW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIaXN0b3J5TWFuYWdlclN0YXRpYyB7XG4gICAgc3RhdGljIF9kaWZmSGlzdG9yeSA9IG5ldyBDYWNoZWRNYXA8bnVtYmVyLCBkZWVwRGlmZi5EaWZmPEdhbWVTdGVwU3RhdGUsIEdhbWVTdGVwU3RhdGU+W10gfCBEaWZmZXJlbmNlW10+KHtcbiAgICAgICAgY2FjaGVTaXplOiA1LFxuICAgIH0pO1xuICAgIHN0YXRpYyBfc3RlcHNJbmZvSGlzdG9yeSA9IG5ldyBDYWNoZWRNYXA8bnVtYmVyLCBPbWl0PEhpc3RvcnlTdGVwLCBcImRpZmZcIj4+KHsgY2FjaGVTaXplOiA1IH0pO1xuICAgIHN0YXRpYyBfbmFycmF0aW9uSGlzdG9yeSA9IG5ldyBDYWNoZWRNYXA8bnVtYmVyLCBOYXJyYXRpb25IaXN0b3J5Pih7IGNhY2hlU2l6ZTogNTAgfSk7XG4gICAgc3RhdGljIHN0ZXBMaW1pdFNhdmVkOiBudW1iZXIgPSAyMDtcbiAgICBzdGF0aWMgX29yaWdpbmFsU3RlcERhdGE6IEdhbWVTdGVwU3RhdGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldCBvcmlnaW5hbFN0ZXBEYXRhKCk6IEdhbWVTdGVwU3RhdGUge1xuICAgICAgICBpZiAoIUhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHBhdGg6IFwiXCIsXG4gICAgICAgICAgICAgICAgc3RvcmFnZToge30sXG4gICAgICAgICAgICAgICAgY2FudmFzOiB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRBbGlhc2VzT3JkZXI6IFtdLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czoge30sXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGlja2Vyczoge30sXG4gICAgICAgICAgICAgICAgICAgIHRpY2tlcnNTdGVwczoge30sXG4gICAgICAgICAgICAgICAgICAgIHRpY2tlcnNPblBhdXNlOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGlja2Vyc1RvQ29tcGxldGVPblN0ZXBFbmQ6IHsgdGlrZXJzSWRzOiBbXSwgc3RlcEFsaWFzOiBbXSB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc291bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgc291bmRBbGlhc2VzT3JkZXI6IFtdLFxuICAgICAgICAgICAgICAgICAgICBzb3VuZHNQbGF5aW5nOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgcGxheUluU3RlcEluZGV4OiB7fSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGFiZWxJbmRleDogLTEsXG4gICAgICAgICAgICAgICAgb3BlbmVkTGFiZWxzOiBbXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhKTtcbiAgICB9XG4gICAgc3RhdGljIHNldCBvcmlnaW5hbFN0ZXBEYXRhKHZhbHVlOiBHYW1lU3RlcFN0YXRlKSB7XG4gICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhID0gY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQodmFsdWUpO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEdhbWVTdGVwU3RhdGUsIEhpc3RvcnlJbmZvIH0gZnJvbSBcIkBkcmluY3MvcGl4aS12blwiO1xuaW1wb3J0IHsgR2FtZVVuaWZpZXIgfSBmcm9tIFwiQGRyaW5jcy9waXhpLXZuL2NvcmVcIjtcbmltcG9ydCBkaWZmIGZyb20gXCJtaWNyb2RpZmZcIjtcbmltcG9ydCB7IEhpc3RvcnlDaG9pY2VNZW51T3B0aW9uLCBIaXN0b3J5U3RlcCwgTmFycmF0aW9uSGlzdG9yeSwgU3RlcExhYmVsUHJvcHNUeXBlIH0gZnJvbSBcIi4uL25hcnJhdGlvblwiO1xuaW1wb3J0IHsgU3RvcmFnZUVsZW1lbnRUeXBlIH0gZnJvbSBcIi4uL3N0b3JhZ2UvdHlwZXMvU3RvcmFnZUVsZW1lbnRUeXBlXCI7XG5pbXBvcnQgeyBjcmVhdGVFeHBvcnRhYmxlRWxlbWVudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcmVzdG9yZURpZmZDaGFuZ2VzIH0gZnJvbSBcIi4uL3V0aWxzL2RpZmYtdXRpbGl0eVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uL3V0aWxzL2xvZy11dGlsaXR5XCI7XG5pbXBvcnQgSGlzdG9yeU1hbmFnZXJTdGF0aWMgZnJvbSBcIi4vSGlzdG9yeU1hbmFnZXJTdGF0aWNcIjtcbmltcG9ydCBIaXN0b3J5R2FtZVN0YXRlIGZyb20gXCIuL2ludGVyZmFjZXMvSGlzdG9yeUdhbWVTdGF0ZVwiO1xuaW1wb3J0IEhpc3RvcnlNYW5hZ2VySW50ZXJmYWNlIGZyb20gXCIuL2ludGVyZmFjZXMvSGlzdG9yeU1hbmFnZXJJbnRlcmZhY2VcIjtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgY2xhc3MgdGhhdCBtYW5hZ2VzIHRoZSBzdGVwcyBhbmQgbGFiZWxzIG9mIHRoZSBnYW1lLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIaXN0b3J5TWFuYWdlciBpbXBsZW1lbnRzIEhpc3RvcnlNYW5hZ2VySW50ZXJmYWNlIHtcbiAgICBnZXQgc3RlcHNJbmZvTWFwKCkge1xuICAgICAgICByZXR1cm4gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3Rvcnk7XG4gICAgfVxuICAgIGdldCBkaWZmTWFwKCkge1xuICAgICAgICByZXR1cm4gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX2RpZmZIaXN0b3J5O1xuICAgIH1cbiAgICBnZXQgbmFycmF0aW9uTWFwKCkge1xuICAgICAgICByZXR1cm4gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX25hcnJhdGlvbkhpc3Rvcnk7XG4gICAgfVxuICAgIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIaXN0b3J5TWFuYWdlclN0YXRpYy5fc3RlcHNJbmZvSGlzdG9yeS5zaXplO1xuICAgIH1cbiAgICBnZXQgbGFzdEtleSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLkFycmF5LmZyb20odGhpcy5rZXlzKCkpKTtcbiAgICB9XG4gICAga2V5cygpIHtcbiAgICAgICAgcmV0dXJuIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9zdGVwc0luZm9IaXN0b3J5LmtleXMoKTtcbiAgICB9XG4gICAgZ2V0KHN0ZXBJbmRleDogbnVtYmVyKTogTmFycmF0aW9uSGlzdG9yeSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBIaXN0b3J5TWFuYWdlclN0YXRpYy5fbmFycmF0aW9uSGlzdG9yeS5nZXQoc3RlcEluZGV4KTtcbiAgICAgICAgaWYgKGl0ZW0gJiYgT2JqZWN0LmtleXMoaXRlbSkubGVuZ3RoID09PSAxICYmIGl0ZW0uc3RlcEluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICAgIGRlbGV0ZShzdGVwSW5kZXg6IG51bWJlcikge1xuICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5fc3RlcHNJbmZvSGlzdG9yeS5kZWxldGUoc3RlcEluZGV4KTtcbiAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX2RpZmZIaXN0b3J5LmRlbGV0ZShzdGVwSW5kZXgpO1xuICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5fbmFycmF0aW9uSGlzdG9yeS5kZWxldGUoc3RlcEluZGV4KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRPbGRHYW1lU3RhdGUoc3RlcHM6IG51bWJlciwgcmVzdG9yZWRTdGVwOiBHYW1lU3RlcFN0YXRlKTogR2FtZVN0ZXBTdGF0ZSB7XG4gICAgICAgIGlmIChzdGVwcyA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdG9yZWRTdGVwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNpemUgPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3RvcmVkU3RlcDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0S2V5ID0gdGhpcy5sYXN0S2V5O1xuICAgICAgICBpZiAodHlwZW9mIGxhc3RLZXkgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiWW91IGNhbid0IGdvIGJhY2ssIHRoZXJlIGlzIG5vIHN0ZXAgdG8gZ28gYmFja1wiKTtcbiAgICAgICAgICAgIHJldHVybiByZXN0b3JlZFN0ZXA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlmZiA9IEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9kaWZmSGlzdG9yeS5nZXQobGFzdEtleSk7XG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXN0b3JlRGlmZkNoYW5nZXMocmVzdG9yZWRTdGVwLCBkaWZmKTtcbiAgICAgICAgICAgICAgICBHYW1lVW5pZmllci5zdGVwQ291bnRlciA9IGxhc3RLZXk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGUobGFzdEtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2xkR2FtZVN0YXRlKHN0ZXBzIC0gMSwgcmVzdWx0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJFcnJvciBhcHBseWluZyBkaWZmXCIsIGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN0b3JlZFN0ZXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2dnZXIud2FybihcIk5vIGRpZmYgZm91bmQgZm9yIHRoZSBsYXN0IHN0ZXAsIGNhbm5vdCBnbyBiYWNrXCIpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3RvcmVkU3RlcDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgYXN5bmMgYmFjayhwcm9wczogU3RlcExhYmVsUHJvcHNUeXBlLCBvcHRpb25zOiB7IHN0ZXBzPzogbnVtYmVyIH0gPSB7fSkge1xuICAgICAgICBjb25zdCB7IHN0ZXBzID0gMSB9ID0gb3B0aW9ucztcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoc3RlcHMpKSB7XG4gICAgICAgICAgICBsb2dnZXIud2FybihgW2JhY2tdIFRoZSBwYXJhbWV0ZXIgc3RlcHMgbXVzdCBiZSBhIHZhbGlkIGZpbml0ZSBudW1iZXIsIHJlY2VpdmVkOiAke3N0ZXBzfWApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGVwcyA8PSAwKSB7XG4gICAgICAgICAgICBsb2dnZXIud2FybihgW2JhY2tdIFRoZSBwYXJhbWV0ZXIgc3RlcHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCwgcmVjZWl2ZWQ6ICR7c3RlcHN9YCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEdhbWVVbmlmaWVyLnJ1bm5pbmdTdGVwc0NvdW50ID4gMCkge1xuICAgICAgICAgICAgR2FtZVVuaWZpZXIuaW5jcmVhc2VCYWNrUmVxdWVzdChzdGVwcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9kaWZmSGlzdG9yeS5zaXplIDwgMSkge1xuICAgICAgICAgICAgbG9nZ2VyLndhcm4oXCJZb3UgY2FuJ3QgZ28gYmFjaywgdGhlcmUgaXMgbm8gc3RlcCB0byBnbyBiYWNrXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIEdhbWVVbmlmaWVyLnJ1bm5pbmdTdGVwc0NvdW50Kys7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzdG9yZWRTdGVwID0gY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRPbGRHYW1lU3RhdGUoc3RlcHMsIEhpc3RvcnlNYW5hZ2VyU3RhdGljLm9yaWdpbmFsU3RlcERhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChyZXN0b3JlZFN0ZXApIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBHYW1lVW5pZmllci5yZXN0b3JlR2FtZVN0ZXBTdGF0ZShyZXN0b3JlZFN0ZXAsIEdhbWVVbmlmaWVyLm5hdmlnYXRlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGVwQ291bnRlciA9IEdhbWVVbmlmaWVyLnN0ZXBDb3VudGVyIC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX25hcnJhdGlvbkhpc3RvcnkuZ2V0KHN0ZXBDb3VudGVyKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAmJiBPYmplY3Qua2V5cyhpdGVtKS5sZW5ndGggPT09IDEgJiYgaXRlbS5zdGVwSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoaXN0b3J5SW5mbyA9IEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9zdGVwc0luZm9IaXN0b3J5LmdldChzdGVwQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoaXN0b3J5SW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFycmF0aXZlSGlzdG9yeSA9IHRoaXMuaXRlbU1hcHBlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcDogaGlzdG9yeUluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9uYXJyYXRpb25IaXN0b3J5LnNldChoaXN0b3J5SW5mby5pbmRleCwgbmFycmF0aXZlSGlzdG9yeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkVycm9yIGdvaW5nIGJhY2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5vcmlnaW5hbFN0ZXBEYXRhID0gcmVzdG9yZWRTdGVwO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJFcnJvciBnb2luZyBiYWNrXCIsIGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgR2FtZVVuaWZpZXIucnVubmluZ1N0ZXBzQ291bnQtLTtcbiAgICAgICAgICAgIGlmIChHYW1lVW5pZmllci5ydW5uaW5nU3RlcHNDb3VudCA9PT0gMCAmJiBHYW1lVW5pZmllci5iYWNrUmVxdWVzdHNDb3VudCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBHYW1lVW5pZmllci5wcm9jZXNzTmF2aWdhdGlvblJlcXVlc3RzKHByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGQoXG4gICAgICAgIGhpc3RvcnlJbmZvOiBIaXN0b3J5SW5mbyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgaWdub3JlU2FtZVN0ZXA/OiBib29sZWFuO1xuICAgICAgICB9ID0ge30sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU3RlcERhdGEgPSBIaXN0b3J5TWFuYWdlclN0YXRpYy5vcmlnaW5hbFN0ZXBEYXRhO1xuICAgICAgICBjb25zdCB7IGlnbm9yZVNhbWVTdGVwIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcERhdGE6IEdhbWVTdGVwU3RhdGUgPSBHYW1lVW5pZmllci5jdXJyZW50R2FtZVN0ZXBTdGF0ZTtcbiAgICAgICAgaWYgKCFpZ25vcmVTYW1lU3RlcCAmJiB0aGlzLmlzU2FtZVN0ZXAob3JpZ2luYWxTdGVwRGF0YSwgY3VycmVudFN0ZXBEYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RLZXkgPSB0aGlzLmxhc3RLZXk7XG4gICAgICAgIGNvbnN0IGFzeW5jRnVuY3Rpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBsYXN0U3RlcEhpc3Rvcnk6IE9taXQ8SGlzdG9yeVN0ZXAsIFwiZGlmZlwiPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdE5hcnJhdGl2ZUhpc3Rvcnk6IE5hcnJhdGlvbkhpc3RvcnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0S2V5ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RTdGVwSGlzdG9yeSA9IEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9zdGVwc0luZm9IaXN0b3J5LmdldChsYXN0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdE5hcnJhdGl2ZUhpc3RvcnkgPSBIaXN0b3J5TWFuYWdlclN0YXRpYy5fbmFycmF0aW9uSGlzdG9yeS5nZXQobGFzdEtleSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3Rvcnkuc2V0KGhpc3RvcnlJbmZvLmluZGV4LCBoaXN0b3J5SW5mbyk7XG4gICAgICAgICAgICAgICAgaWYgKGhpc3RvcnlJbmZvLmluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0gZGlmZihvcmlnaW5hbFN0ZXBEYXRhLCBjdXJyZW50U3RlcERhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX2RpZmZIaXN0b3J5LnNldChoaXN0b3J5SW5mby5pbmRleCwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIud2FybihcIkl0IHdhcyBub3QgcG9zc2libGUgdG8gY3JlYXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBzdGVwc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNJdGVtID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgbmFycmF0aXZlSGlzdG9yeSA9IHRoaXMuaXRlbU1hcHBlcihcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcDogaGlzdG9yeUluZm8sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzSXRlbSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9uYXJyYXRpb25IaXN0b3J5LnNldChoaXN0b3J5SW5mby5pbmRleCwgbmFycmF0aXZlSGlzdG9yeSk7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3RTdGVwSGlzdG9yeSAmJiBsYXN0TmFycmF0aXZlSGlzdG9yeSAmJiB0eXBlb2YgbGFzdEtleSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c05hcnJhdGl2ZUhpc3RvcnkgPSB0aGlzLml0ZW1NYXBwZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldmlvdXNJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXA6IGxhc3RTdGVwSGlzdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX25hcnJhdGlvbkhpc3Rvcnkuc2V0KGxhc3RLZXksIHByZXZpb3VzTmFycmF0aXZlSGlzdG9yeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkVycm9yIGFkZGluZyBoaXN0b3J5IHN0ZXBcIiwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGFzeW5jRnVuY3Rpb24oKTtcbiAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMub3JpZ2luYWxTdGVwRGF0YSA9IGN1cnJlbnRTdGVwRGF0YTtcbiAgICB9XG4gICAgaXRlbU1hcHBlcihcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgc3RlcDogT21pdDxIaXN0b3J5U3RlcCwgXCJkaWZmXCI+O1xuICAgICAgICAgICAgY2hvaWNlSW5kZXhNYWRlPzogbnVtYmVyO1xuICAgICAgICAgICAgaW5wdXRWYWx1ZT86IFN0b3JhZ2VFbGVtZW50VHlwZTtcbiAgICAgICAgICAgIHJlbW92ZURpYWxvZ3VlPzogYm9vbGVhbjtcbiAgICAgICAgfSxcbiAgICAgICAgcHJldmlvdXNJdGVtPzogeyBjaG9pY2VJbmRleE1hZGU/OiBudW1iZXI7IGlucHV0VmFsdWU/OiBTdG9yYWdlRWxlbWVudFR5cGU7IHJlbW92ZURpYWxvZ3VlPzogYm9vbGVhbiB9LFxuICAgICk6IE5hcnJhdGlvbkhpc3Rvcnkge1xuICAgICAgICBjb25zdCB7IHN0ZXAsIGNob2ljZUluZGV4TWFkZSwgaW5wdXRWYWx1ZSwgcmVtb3ZlRGlhbG9ndWUgfSA9IGl0ZW07XG4gICAgICAgIGxldCBkaWFsb2d1ZSA9IHN0ZXAuZGlhbG9ndWUgfHwgc3RlcC5kaWFsb2dlO1xuICAgICAgICBpZiAocHJldmlvdXNJdGVtICYmIHN0ZXAuaXNHbHVlZCkge1xuICAgICAgICAgICAgcHJldmlvdXNJdGVtLnJlbW92ZURpYWxvZ3VlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVtb3ZlRGlhbG9ndWUpIHtcbiAgICAgICAgICAgIGRpYWxvZ3VlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXF1aXJlZENob2ljZXMgPSBzdGVwLmNob2ljZXM7XG4gICAgICAgIGlmIChwcmV2aW91c0l0ZW0gJiYgc3RlcC5jdXJyZW50TGFiZWwpIHtcbiAgICAgICAgICAgIGlmIChzdGVwLmNob2ljZUluZGV4TWFkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNJdGVtLmNob2ljZUluZGV4TWFkZSA9IHN0ZXAuY2hvaWNlSW5kZXhNYWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGVwLmlucHV0VmFsdWUgJiYgcHJldmlvdXNJdGVtKSB7XG4gICAgICAgICAgICBwcmV2aW91c0l0ZW0uaW5wdXRWYWx1ZSA9IHN0ZXAuaW5wdXRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlhbG9ndWUgfHwgcmVxdWlyZWRDaG9pY2VzIHx8IGlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBjaG9pY2VzOiBIaXN0b3J5Q2hvaWNlTWVudU9wdGlvbltdIHwgdW5kZWZpbmVkID0gcmVxdWlyZWRDaG9pY2VzPy5tYXAoKGNob2ljZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgaGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGNob2ljZS5vbmVUaW1lICYmIHN0ZXAuYWxyZWFkeU1hZGVDaG9pY2VzICYmIHN0ZXAuYWxyZWFkeU1hZGVDaG9pY2VzLmluY2x1ZGVzKGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICBoaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjaG9pY2UudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogY2hvaWNlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGlzUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoaWRkZW46IGhpZGRlbixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2hvaWNlcykge1xuICAgICAgICAgICAgICAgIC8vIGlmIGFsbCBjaG9pY2VzIGFyZSBoaWRkZW4gZmluZCBvbmx5SGF2ZU5vQ2hvaWNlXG4gICAgICAgICAgICAgICAgaWYgKGNob2ljZXMuZXZlcnkoKGNob2ljZSkgPT4gY2hvaWNlLmhpZGRlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9ubHlIYXZlTm9DaG9pY2UgPSBjaG9pY2VzLmZpbmQoKGNob2ljZSkgPT4gY2hvaWNlLmhpZGRlbiA9PT0gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob25seUhhdmVOb0Nob2ljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25seUhhdmVOb0Nob2ljZS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2hvaWNlSW5kZXhNYWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hvaWNlc1tjaG9pY2VJbmRleE1hZGVdLmlzUmVzcG9uc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGlhbG9ndWU6IGRpYWxvZ3VlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5kaWFsb2d1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyOiBkaWFsb2d1ZS5jaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gR2FtZVVuaWZpZXIuZ2V0Q2hhcmFjdGVyKGRpYWxvZ3VlLmNoYXJhY3RlcikgfHwgZGlhbG9ndWUuY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBsYXllck1hZGVDaG9pY2U6IHR5cGVvZiBjaG9pY2VJbmRleE1hZGUgPT09IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgY2hvaWNlczogY2hvaWNlcyxcbiAgICAgICAgICAgICAgICBzdGVwSW5kZXg6IHN0ZXAuaW5kZXgsXG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0ZXBJbmRleDogc3RlcC5pbmRleCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IG5hcnJhdGl2ZUhpc3RvcnkoKTogTmFycmF0aW9uSGlzdG9yeVtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBOYXJyYXRpb25IaXN0b3J5W10gPSBbXTtcbiAgICAgICAgY29uc3Qga2V5cyA9IEFycmF5LmZyb20odGhpcy5rZXlzKCkpLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGdldCBjdXJyZW50TGFiZWxIaXN0b3J5KCk6IE5hcnJhdGlvbkhpc3RvcnlbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogTmFycmF0aW9uSGlzdG9yeVtdID0gW107XG4gICAgICAgIGNvbnN0IGtleXMgPSBBcnJheS5mcm9tKHRoaXMua2V5cygpKS5zb3J0KChhLCBiKSA9PiBiIC0gYSk7XG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0S2V5ID0ga2V5c1swXTtcbiAgICAgICAgaWYgKHR5cGVvZiBsYXN0S2V5ICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3RvcnkuZ2V0KGxhc3RLZXkpO1xuICAgICAgICBpZiAoIWxhc3RJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wZW5lZExhYmVscyA9IGxhc3RJdGVtLm9wZW5lZExhYmVscztcbiAgICAgICAgaWYgKCFvcGVuZWRMYWJlbHMgfHwgIUFycmF5LmlzQXJyYXkob3BlbmVkTGFiZWxzKSB8fCBvcGVuZWRMYWJlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGxldCBjdXJyZW50U3RlcEluZGV4ID0gb3BlbmVkTGFiZWxzWzBdLmN1cnJlbnRTdGVwSW5kZXg7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gb3BlbmVkTGFiZWxzWzBdLmxhYmVsO1xuXG4gICAgICAgIGtleXMuZXZlcnkoKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3RvcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBvcGVuZWRMYWJlbHNUZW1wID0gaW5mby5vcGVuZWRMYWJlbHM7XG4gICAgICAgICAgICAgICAgaWYgKCFvcGVuZWRMYWJlbHNUZW1wIHx8ICFBcnJheS5pc0FycmF5KG9wZW5lZExhYmVsc1RlbXApIHx8IG9wZW5lZExhYmVsc1RlbXAubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wZW5lZExhYmVsc1RlbXBbMF0ubGFiZWwgIT09IGxhYmVsIHx8IG9wZW5lZExhYmVsc1RlbXBbMF0uY3VycmVudFN0ZXBJbmRleCA+PSBjdXJyZW50U3RlcEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFN0ZXBJbmRleCA9IG9wZW5lZExhYmVsc1RlbXBbMF0uY3VycmVudFN0ZXBJbmRleDtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0LnJldmVyc2UoKTtcbiAgICB9XG4gICAgcmVtb3ZlTmFycmF0aXZlSGlzdG9yeShpdGVtc051bWJlcj86IG51bWJlcikge1xuICAgICAgICBpZiAoaXRlbXNOdW1iZXIpIHtcbiAgICAgICAgICAgIGxldCBrZXlzID0gQXJyYXkuZnJvbSh0aGlzLmtleXMoKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaXJzdCBpdGVtc051bWJlciBrZXlzXG4gICAgICAgICAgICBrZXlzID0ga2V5cy5zbGljZSgwLCBpdGVtc051bWJlcik7XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9uYXJyYXRpb25IaXN0b3J5LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9zdGVwc0luZm9IaXN0b3J5LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9kaWZmSGlzdG9yeS5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3RvcnkuY2xlYXIoKTtcbiAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9kaWZmSGlzdG9yeS5jbGVhcigpO1xuICAgICAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX25hcnJhdGlvbkhpc3RvcnkuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgY2FuR29CYWNrKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBsYXN0S2V5ID0gdGhpcy5sYXN0S2V5O1xuICAgICAgICBpZiAodHlwZW9mIGxhc3RLZXkgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX2RpZmZIaXN0b3J5LmhhcyhsYXN0S2V5KTtcbiAgICB9XG4gICAgYmxvY2tHb0JhY2soKSB7XG4gICAgICAgIGlmIChHYW1lVW5pZmllci5ydW5uaW5nU3RlcHNDb3VudCAhPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9kaWZmSGlzdG9yeS5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTYW1lU3RlcChvcmlnaW5hbFN0YXRlOiBHYW1lU3RlcFN0YXRlLCBuZXdTdGF0ZTogR2FtZVN0ZXBTdGF0ZSkge1xuICAgICAgICBpZiAob3JpZ2luYWxTdGF0ZS5vcGVuZWRMYWJlbHMubGVuZ3RoID09PSBuZXdTdGF0ZS5vcGVuZWRMYWJlbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBsYXN0U3RlcERhdGFPcGVuZWRMYWJlbHNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShvcmlnaW5hbFN0YXRlLm9wZW5lZExhYmVscyk7XG4gICAgICAgICAgICAgICAgbGV0IGhpc3RvcnlTdGVwT3BlbmVkTGFiZWxzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobmV3U3RhdGUub3BlbmVkTGFiZWxzKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGxhc3RTdGVwRGF0YU9wZW5lZExhYmVsc1N0cmluZyA9PT0gaGlzdG9yeVN0ZXBPcGVuZWRMYWJlbHNTdHJpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5wYXRoID09PSBuZXdTdGF0ZS5wYXRoICYmXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUubGFiZWxJbmRleCA9PT0gbmV3U3RhdGUubGFiZWxJbmRleFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiRXJyb3IgY29tcGFyaW5nIG9wZW5lZCBsYWJlbHNcIiwgZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3RvcnkuY2xlYXIoKTtcbiAgICAgICAgSGlzdG9yeU1hbmFnZXJTdGF0aWMuX2RpZmZIaXN0b3J5LmNsZWFyKCk7XG4gICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9uYXJyYXRpb25IaXN0b3J5LmNsZWFyKCk7XG4gICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldCBzdGVwTGltaXRTYXZlZCgpIHtcbiAgICAgICAgcmV0dXJuIEhpc3RvcnlNYW5hZ2VyU3RhdGljLnN0ZXBMaW1pdFNhdmVkO1xuICAgIH1cbiAgICBzZXQgc3RlcExpbWl0U2F2ZWQobGltaXQ6IG51bWJlcikge1xuICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5zdGVwTGltaXRTYXZlZCA9IGxpbWl0O1xuICAgIH1cblxuICAgIC8qIEV4cG9ydCBhbmQgSW1wb3J0IE1ldGhvZHMgKi9cblxuICAgIHB1YmxpYyBleHBvcnQoKTogSGlzdG9yeUdhbWVTdGF0ZSB7XG4gICAgICAgIGxldCBrZXlzID0gQXJyYXkuZnJvbSh0aGlzLmtleXMoKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgICAgICAvLyB0YWtlIG9ubHkgbGFzdCB0aGUgdGhpcy5zdGVwTGltaXRTYXZlZCBzdGVwc1xuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiB0aGlzLnN0ZXBMaW1pdFNhdmVkKSB7XG4gICAgICAgICAgICBrZXlzID0ga2V5cy5zbGljZShrZXlzLmxlbmd0aCAtIHRoaXMuc3RlcExpbWl0U2F2ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdGVwc0hpc3Rvcnk6IEhpc3RvcnlTdGVwW10gPSBbXTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBIaXN0b3J5TWFuYWdlclN0YXRpYy5fc3RlcHNJbmZvSGlzdG9yeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGlmIChzdGVwKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBIaXN0b3J5TWFuYWdlclN0YXRpYy5fZGlmZkhpc3RvcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgc3RlcHNIaXN0b3J5LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGVwLFxuICAgICAgICAgICAgICAgICAgICBkaWZmOiBkaWZmLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0ZXBzSGlzdG9yeTogY3JlYXRlRXhwb3J0YWJsZUVsZW1lbnQoc3RlcHNIaXN0b3J5KSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RlcERhdGE6IGNyZWF0ZUV4cG9ydGFibGVFbGVtZW50KEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmVzdG9yZU5hcnJhdGl2ZUhpc3RvcnkoKSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBBcnJheS5mcm9tKHRoaXMua2V5cygpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIGxldCBwcmV2aW91c0l0ZW06IHtcbiAgICAgICAgICAgIGNob2ljZUluZGV4TWFkZT86IG51bWJlcjtcbiAgICAgICAgICAgIGlucHV0VmFsdWU/OiBTdG9yYWdlRWxlbWVudFR5cGU7XG4gICAgICAgICAgICByZW1vdmVEaWFsb2d1ZT86IGJvb2xlYW47XG4gICAgICAgIH0gPSB7fTtcblxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHN0ZXBzSGlzdG9yeSBhcnJheSBpbiByZXZlcnNlIG9yZGVyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gSGlzdG9yeU1hbmFnZXJTdGF0aWMuX3N0ZXBzSW5mb0hpc3RvcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBpZiAoc3RlcCkge1xuICAgICAgICAgICAgICAgIGxldCBtb3JlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldmlvdXNJdGVtLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcHJldmlvdXNJdGVtID0ge307XG4gICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuaXRlbU1hcHBlcihcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcDogc3RlcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZUluZGV4TWFkZTogbW9yZUluZm8uY2hvaWNlSW5kZXhNYWRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRWYWx1ZTogbW9yZUluZm8uaW5wdXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZURpYWxvZ3VlOiBtb3JlSW5mby5yZW1vdmVEaWFsb2d1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNJdGVtLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5fbmFycmF0aW9uSGlzdG9yeS5zZXQoa2V5LCByZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHB1YmxpYyBhc3luYyByZXN0b3JlKGRhdGE6IG9iamVjdCkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShcInN0ZXBzSGlzdG9yeVwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXBzSGlzdG9yeSA9IChkYXRhIGFzIEhpc3RvcnlHYW1lU3RhdGUpW1wic3RlcHNIaXN0b3J5XCJdO1xuICAgICAgICAgICAgICAgIHN0ZXBzSGlzdG9yeS5mb3JFYWNoKChzdGVwOiBIaXN0b3J5U3RlcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcC5kaWZmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5fZGlmZkhpc3Rvcnkuc2V0KHN0ZXAuaW5kZXgsIHN0ZXAuZGlmZik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7IC4uLnN0ZXAsIGRpZmY6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgICAgICAgICBIaXN0b3J5TWFuYWdlclN0YXRpYy5fc3RlcHNJbmZvSGlzdG9yeS5zZXQoc3RlcC5pbmRleCwgaW5mbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXN0b3JlTmFycmF0aXZlSGlzdG9yeSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIud2FybihcIkNvdWxkIG5vdCBpbXBvcnQgc3RlcHNIaXN0b3J5IGRhdGEsIHNvIHdpbGwgYmUgaWdub3JlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwib3JpZ2luYWxTdGVwRGF0YVwiKSkge1xuICAgICAgICAgICAgICAgIEhpc3RvcnlNYW5hZ2VyU3RhdGljLl9vcmlnaW5hbFN0ZXBEYXRhID0gKGRhdGEgYXMgSGlzdG9yeUdhbWVTdGF0ZSlbXCJvcmlnaW5hbFN0ZXBEYXRhXCJdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIud2FybihcIkNvdWxkIG5vdCBpbXBvcnQgb3JpZ2luYWxTdGVwRGF0YSBkYXRhLCBzbyB3aWxsIGJlIGlnbm9yZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkVycm9yIGltcG9ydGluZyBkYXRhXCIsIGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaW1wb3J0IEhpc3RvcnlNYW5hZ2VyIGZyb20gXCIuL0hpc3RvcnlNYW5hZ2VyXCI7XG5pbXBvcnQgSGlzdG9yeU1hbmFnZXJJbnRlcmZhY2UgZnJvbSBcIi4vaW50ZXJmYWNlcy9IaXN0b3J5TWFuYWdlckludGVyZmFjZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEhpc3RvcnlNYW5hZ2VyU3RhdGljIH0gZnJvbSBcIi4vSGlzdG9yeU1hbmFnZXJTdGF0aWNcIjtcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBIaXN0b3J5R2FtZVN0YXRlIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9IaXN0b3J5R2FtZVN0YXRlXCI7XG5leHBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgSGlzdG9yeU1hbmFnZXJJbnRlcmZhY2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL0hpc3RvcnlNYW5hZ2VySW50ZXJmYWNlXCI7XG5leHBvcnQgeyBzdGVwSGlzdG9yeSB9O1xuXG5jb25zdCBzdGVwSGlzdG9yeTogSGlzdG9yeU1hbmFnZXJJbnRlcmZhY2UgPSBuZXcgSGlzdG9yeU1hbmFnZXIoKTtcbiJdfQ==
|
|
1
|
+
import'./chunk-XSN6P5JL.mjs';import {a}from'./chunk-ZW3MIPMS.mjs';import {d,k,j as j$1}from'./chunk-D45QSSXG.mjs';import {GameUnifier}from'@drincs/pixi-vn/core';var _={Date:true,RegExp:true,String:true,Number:true};function x(m,e,r={cyclesFix:true},t=[]){let a=[],s=Array.isArray(m);for(let o in m){let n=m[o],u=s?+o:o;if(!(o in e)){a.push({type:"REMOVE",path:[u],oldValue:m[o]});continue}let p=e[o],d=typeof n=="object"&&typeof p=="object"&&Array.isArray(n)===Array.isArray(p);n&&p&&d&&!_[Object.getPrototypeOf(n)?.constructor?.name]&&(!r.cyclesFix||!t.includes(n))?a.push.apply(a,x(n,p,r,r.cyclesFix?t.concat([n]):[]).map(f=>(f.path.unshift(u),f))):n!==p&&!(Number.isNaN(n)&&Number.isNaN(p))&&!(d&&(isNaN(n)?n+""==p+"":+n==+p))&&a.push({path:[u],type:"CHANGE",value:p,oldValue:n});}let l=Array.isArray(e);for(let o in e)o in m||a.push({type:"CREATE",path:[l?+o:o],value:e[o]});return a}function I(m,e){let r=k(m);return e.length>1&&"type"in e[0]&&(e=e.slice().reverse()),e.forEach(t=>{v(r,t);}),r}function v(m,e){let r=m;e.path&&e.path.length>0?e.path.forEach((t,a)=>{if(e.path&&a===e.path.length-1)switch(e.type){case "CHANGE":case "REMOVE":r[t]=e.oldValue;break;case "CREATE":Array.isArray(r)&&typeof t=="number"?r.splice(t,1):delete r[t];break}else r=r[t];}):j$1.warn("No path found, skipping diff",e);}var g=class g{static get originalStepData(){return g._originalStepData?k(g._originalStepData):{path:"",storage:{},canvas:{elementAliasesOrder:[],elements:{},stage:{},tickers:{},tickersSteps:{},tickersOnPause:{},tickersToCompleteOnStepEnd:{tikersIds:[],stepAlias:[]}},sound:{soundAliasesOrder:[],soundsPlaying:{},playInStepIndex:{},filters:void 0},labelIndex:-1,openedLabels:[]}}static set originalStepData(e){g._originalStepData=k(e);}};d(g,"_diffHistory",new a({cacheSize:5})),d(g,"_stepsInfoHistory",new a({cacheSize:5})),d(g,"_narrationHistory",new a({cacheSize:50})),d(g,"stepLimitSaved",20),d(g,"_originalStepData");var i=g;var b=class{get stepsInfoMap(){return i._stepsInfoHistory}get diffMap(){return i._diffHistory}get narrationMap(){return i._narrationHistory}get size(){return i._stepsInfoHistory.size}get lastKey(){return this.size===0?null:Math.max(...Array.from(this.keys()))}keys(){return i._stepsInfoHistory.keys()}get(e){let r=i._narrationHistory.get(e);if(!(r&&Object.keys(r).length===1&&r.stepIndex!==void 0))return r}delete(e){i._stepsInfoHistory.delete(e),i._diffHistory.delete(e),i._narrationHistory.delete(e);}getOldGameState(e,r){if(e<=0||this.size==0)return r;let t=this.lastKey;if(typeof t!="number")return j$1.warn("You can't go back, there is no step to go back"),r;let a=i._diffHistory.get(t);if(a)try{let s=I(r,a);return GameUnifier.stepCounter=t,this.delete(t),this.getOldGameState(e-1,s)}catch(s){return j$1.error("Error applying diff",s),r}else return j$1.warn("No diff found for the last step, cannot go back"),r}async back(e,r={}){let{steps:t=1}=r;if(!Number.isFinite(t)){j$1.warn(`[back] The parameter steps must be a valid finite number, received: ${t}`);return}if(t<=0){j$1.warn(`[back] The parameter steps must be greater than 0, received: ${t}`);return}if(GameUnifier.runningStepsCount>0){GameUnifier.increaseBackRequest(t);return}if(i._diffHistory.size<1){j$1.warn("You can't go back, there is no step to go back");return}GameUnifier.runningStepsCount++;try{let a=k(this.getOldGameState(t,i.originalStepData));if(a){await GameUnifier.restoreGameStepState(a,GameUnifier.navigate);let s=GameUnifier.stepCounter-1,l=i._narrationHistory.get(s);if(l&&Object.keys(l).length===1&&l.stepIndex!==void 0){let o=i._stepsInfoHistory.get(s);if(o){let n=this.itemMapper({step:o});i._narrationHistory.set(o.index,n);}}}else j$1.error("Error going back");i.originalStepData=a;}catch(a){j$1.error("Error going back",a);}finally{if(GameUnifier.runningStepsCount--,GameUnifier.runningStepsCount===0&&GameUnifier.backRequestsCount!==0)return await GameUnifier.processNavigationRequests(e)}}add(e,r={}){let t=i.originalStepData,{ignoreSameStep:a}=r,s=GameUnifier.currentGameStepState;if(!a&&this.isSameStep(t,s))return;let l=this.lastKey;(async()=>{try{let n,u;if(typeof l=="number"&&(n=i._stepsInfoHistory.get(l),u=i._narrationHistory.get(l)),i._stepsInfoHistory.set(e.index,e),e.index!==0){let f=x(t,s);f?i._diffHistory.set(e.index,f):j$1.warn("It was not possible to create the difference between the two steps");}let p={},d=this.itemMapper({step:e},p);if(i._narrationHistory.set(e.index,d),n&&u&&typeof l=="number"){let f=this.itemMapper({...p,step:n},{});i._narrationHistory.set(l,f);}}catch(n){j$1.error("Error adding history step",n);}})(),i.originalStepData=s;}itemMapper(e,r){let{step:t,choiceIndexMade:a,inputValue:s,removeDialogue:l}=e,o=t.dialogue;r&&t.isGlued&&(r.removeDialogue=true),l&&(o=void 0);let n=t.choices;if(r&&t.currentLabel&&t.choiceIndexMade!==void 0&&(r.choiceIndexMade=t.choiceIndexMade),t.inputValue&&r&&(r.inputValue=t.inputValue),o||n||s){let u=n?.map((p,d)=>{let f=false;return p.oneTime&&t.alreadyMadeChoices&&t.alreadyMadeChoices.includes(d)&&(f=true),{text:p.text,type:p.type,isResponse:false,hidden:f}});if(u){if(u.every(p=>p.hidden)){let p=u.find(d=>d.hidden===false);p&&(p.hidden=false);}a!==void 0&&(u[a].isResponse=true);}return {dialogue:o?{...o,character:o.character?GameUnifier.getCharacter(o.character)||o.character:void 0}:void 0,playerMadeChoice:typeof a=="number",choices:u,stepIndex:t.index,inputValue:s}}return {stepIndex:t.index}}get narrativeHistory(){let e=[];return Array.from(this.keys()).sort((t,a)=>t-a).forEach(t=>{let a=this.get(t);a&&e.push(a);}),e}get currentLabelHistory(){let e=[],r=Array.from(this.keys()).sort((n,u)=>u-n);if(r.length===0)return e;let t=r[0];if(typeof t!="number")return e;let a=i._stepsInfoHistory.get(t);if(!a)return e;let s=a.openedLabels;if(!s||!Array.isArray(s)||s.length===0)return e;let l=s[0].currentStepIndex,o=s[0].label;return r.every((n,u)=>{let p=this.get(n);if(p){if(u===0)return e.push(p),true;let d=i._stepsInfoHistory.get(n);if(!d)return true;let f=d.openedLabels;if(!f||!Array.isArray(f)||f.length===0||f[0].label!==o||f[0].currentStepIndex>=l)return false;l=f[0].currentStepIndex,e.push(p);}return true}),e.reverse()}removeNarrativeHistory(e){if(e){let r=Array.from(this.keys()).sort((t,a)=>t-a);r=r.slice(0,e),r.forEach(t=>{i._narrationHistory.delete(t),i._stepsInfoHistory.delete(t),i._diffHistory.delete(t);});}else i._stepsInfoHistory.clear(),i._diffHistory.clear(),i._narrationHistory.clear();}get canGoBack(){let e=this.lastKey;return typeof e!="number"?false:i._diffHistory.has(e)}blockGoBack(){GameUnifier.runningStepsCount===0&&i._diffHistory.clear();}isSameStep(e,r){if(e.openedLabels.length===r.openedLabels.length)try{let t=JSON.stringify(e.openedLabels),a=JSON.stringify(r.openedLabels);if(t===a&&e.path===r.path&&e.labelIndex===r.labelIndex)return !0}catch(t){return j$1.error("Error comparing opened labels",t),true}return false}clear(){i._stepsInfoHistory.clear(),i._diffHistory.clear(),i._narrationHistory.clear(),i._originalStepData=void 0;}get stepLimitSaved(){return i.stepLimitSaved}set stepLimitSaved(e){i.stepLimitSaved=e;}export(){let e=Array.from(this.keys()).sort((t,a)=>t-a);e.length>this.stepLimitSaved&&(e=e.slice(e.length-this.stepLimitSaved));let r=[];return e.forEach(t=>{let a=i._stepsInfoHistory.get(t);if(a){let s=i._diffHistory.get(t);r.push({...a,diff:s});}}),{stepsHistory:k(r),originalStepData:k(i._originalStepData)}}restoreNarrativeHistory(){let e=Array.from(this.keys()).sort((t,a)=>t-a),r={};e.forEach(t=>{let a=i._stepsInfoHistory.get(t);if(a){let s={...r};r={};let l=this.itemMapper({step:a,choiceIndexMade:s.choiceIndexMade,inputValue:s.inputValue,removeDialogue:s.removeDialogue},r);l&&i._narrationHistory.set(t,l);}});}async restore(e){this.clear();try{e.hasOwnProperty("stepsHistory")?(e.stepsHistory.forEach(t=>{t.diff&&i._diffHistory.set(t.index,t.diff);let a={...t,diff:void 0};i._stepsInfoHistory.set(t.index,a);}),this.restoreNarrativeHistory()):j$1.warn("Could not import stepsHistory data, so will be ignored"),e.hasOwnProperty("originalStepData")?i._originalStepData=e.originalStepData:j$1.warn("Could not import originalStepData data, so will be ignored");}catch(r){j$1.error("Error importing data",r);}}};var j=new b;export{i as HistoryManagerStatic,j as stepHistory};
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var I=require('@drincs/pixi-vn/canvas'),Bt=require('@drincs/pixi-vn/characters'),core=require('@drincs/pixi-vn/core'),tt=require('@drincs/pixi-vn/history'),P=require('@drincs/pixi-vn/narration'),ct=require('@drincs/pixi-vn/sound'),N=require('@drincs/pixi-vn/storage'),motion=require('@drincs/pixi-vn/motion');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var I__namespace=/*#__PURE__*/_interopNamespace(I);var Bt__namespace=/*#__PURE__*/_interopNamespace(Bt);var tt__namespace=/*#__PURE__*/_interopNamespace(tt);var P__namespace=/*#__PURE__*/_interopNamespace(P);var ct__namespace=/*#__PURE__*/_interopNamespace(ct);var N__namespace=/*#__PURE__*/_interopNamespace(N);var Xt=Object.defineProperty;var Yt=h=>{throw TypeError(h)};var le=(h,e,i)=>e in h?Xt(h,e,{enumerable:true,configurable:true,writable:true,value:i}):h[e]=i;var he=(h,e)=>{for(var i in e)Xt(h,i,{get:e[i],enumerable:true});};var b=(h,e,i)=>le(h,typeof e!="symbol"?e+"":e,i),zt=(h,e,i)=>e.has(h)||Yt("Cannot "+i);var t=(h,e,i)=>(zt(h,e,"read from private field"),i?i.call(h):e.get(h)),g=(h,e,i)=>e.has(h)?Yt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(h):e.set(h,i),u=(h,e,i,s)=>(zt(h,e,"write to private field"),e.set(h,i),i),c=(h,e,i)=>(zt(h,e,"access private method"),i);var Dt=(h,e,i,s)=>({set _(r){u(h,e,r);},get _(){return t(h,e,s)}});var ce=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,te=new Set,It=typeof process=="object"&&process?process:{},ee=(h,e,i,s)=>{typeof It.emitWarning=="function"?It.emitWarning(h,e,i,s):console.error(`[${i}] ${e}: ${h}`);},Pt=globalThis.AbortController,Jt=globalThis.AbortSignal;if(typeof Pt>"u"){Jt=class{constructor(){b(this,"onabort");b(this,"_onabort",[]);b(this,"reason");b(this,"aborted",false);}addEventListener(i,s){this._onabort.push(s);}},Pt=class{constructor(){b(this,"signal",new Jt);e();}abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i);}}};let h=It.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{h&&(h=false,ee("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var pe=h=>!te.has(h);var ot=h=>h&&h===Math.floor(h)&&h>0&&isFinite(h),ie=h=>ot(h)?h<=Math.pow(2,8)?Uint8Array:h<=Math.pow(2,16)?Uint16Array:h<=Math.pow(2,32)?Uint32Array:h<=Number.MAX_SAFE_INTEGER?Ct:null:null,Ct=class extends Array{constructor(h){super(h),this.fill(0);}},et,_t,de=(et=class{constructor(e,i){b(this,"heap");b(this,"length");if(!t(et,_t))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e),this.length=0;}static create(e){let i=ie(e);if(!i)return [];u(et,_t,true);let s=new et(e,i);return u(et,_t,false),s}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},_t=new WeakMap,g(et,_t,false),et),Qt,Zt,q,M,K,pt,$,yt,St,B,D,X,T,E,m,L,V,R,F,Y,j,J,Q,W,H,Z,ht,z,xt,l,Nt,dt,st,Ut,k,re,ut,wt,Ot,nt,at,Gt,Ft,jt,A,Mt,Et,lt,Vt,bt,se=(bt=class{constructor(e){g(this,l);g(this,q);g(this,M);g(this,K);g(this,pt);g(this,$);g(this,yt);g(this,St);g(this,B);b(this,"ttl");b(this,"ttlResolution");b(this,"ttlAutopurge");b(this,"updateAgeOnGet");b(this,"updateAgeOnHas");b(this,"allowStale");b(this,"noDisposeOnSet");b(this,"noUpdateTTL");b(this,"maxEntrySize");b(this,"sizeCalculation");b(this,"noDeleteOnFetchRejection");b(this,"noDeleteOnStaleGet");b(this,"allowStaleOnFetchAbort");b(this,"allowStaleOnFetchRejection");b(this,"ignoreFetchAbort");g(this,D);g(this,X);g(this,T);g(this,E);g(this,m);g(this,L);g(this,V);g(this,R);g(this,F);g(this,Y);g(this,j);g(this,J);g(this,Q);g(this,W);g(this,H);g(this,Z);g(this,ht);g(this,z);g(this,xt);g(this,dt,()=>{});g(this,st,()=>{});g(this,Ut,()=>{});g(this,k,()=>false);g(this,ut,e=>{});g(this,wt,(e,i,s)=>{});g(this,Ot,(e,i,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});b(this,Qt,"LRUCache");let{max:i=0,ttl:s,ttlResolution:r=1,ttlAutopurge:a,updateAgeOnGet:o,updateAgeOnHas:p,allowStale:d,dispose:v,onInsert:C,disposeAfter:x,noDisposeOnSet:it,noUpdateTTL:G,maxSize:f=0,maxEntrySize:S=0,sizeCalculation:_,fetchMethod:n,memoMethod:y,noDeleteOnFetchRejection:U,noDeleteOnStaleGet:O,allowStaleOnFetchRejection:w,allowStaleOnFetchAbort:rt,ignoreFetchAbort:mt,perf:gt}=e;if(gt!==void 0&&typeof gt?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(u(this,B,gt??ce),i!==0&&!ot(i))throw new TypeError("max option must be a nonnegative integer");let vt=i?ie(i):Array;if(!vt)throw new Error("invalid max value: "+i);if(u(this,q,i),u(this,M,f),this.maxEntrySize=S||t(this,M),this.sizeCalculation=_,this.sizeCalculation){if(!t(this,M)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(y!==void 0&&typeof y!="function")throw new TypeError("memoMethod must be a function if defined");if(u(this,St,y),n!==void 0&&typeof n!="function")throw new TypeError("fetchMethod must be a function if specified");if(u(this,yt,n),u(this,ht,!!n),u(this,T,new Map),u(this,E,new Array(i).fill(void 0)),u(this,m,new Array(i).fill(void 0)),u(this,L,new vt(i)),u(this,V,new vt(i)),u(this,R,0),u(this,F,0),u(this,Y,de.create(i)),u(this,D,0),u(this,X,0),typeof v=="function"&&u(this,K,v),typeof C=="function"&&u(this,pt,C),typeof x=="function"?(u(this,$,x),u(this,j,[])):(u(this,$,void 0),u(this,j,void 0)),u(this,Z,!!t(this,K)),u(this,xt,!!t(this,pt)),u(this,z,!!t(this,$)),this.noDisposeOnSet=!!it,this.noUpdateTTL=!!G,this.noDeleteOnFetchRejection=!!U,this.allowStaleOnFetchRejection=!!w,this.allowStaleOnFetchAbort=!!rt,this.ignoreFetchAbort=!!mt,this.maxEntrySize!==0){if(t(this,M)!==0&&!ot(t(this,M)))throw new TypeError("maxSize must be a positive integer if specified");if(!ot(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");c(this,l,re).call(this);}if(this.allowStale=!!d,this.noDeleteOnStaleGet=!!O,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!p,this.ttlResolution=ot(r)||r===0?r:1,this.ttlAutopurge=!!a,this.ttl=s||0,this.ttl){if(!ot(this.ttl))throw new TypeError("ttl must be a positive integer if specified");c(this,l,Nt).call(this);}if(t(this,q)===0&&this.ttl===0&&t(this,M)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!t(this,q)&&!t(this,M)){let Lt="LRU_CACHE_UNBOUNDED";pe(Lt)&&(te.add(Lt),ee("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Lt,bt));}}get perf(){return t(this,B)}static unsafeExposeInternals(e){return {starts:t(e,Q),ttls:t(e,W),autopurgeTimers:t(e,H),sizes:t(e,J),keyMap:t(e,T),keyList:t(e,E),valList:t(e,m),next:t(e,L),prev:t(e,V),get head(){return t(e,R)},get tail(){return t(e,F)},free:t(e,Y),isBackgroundFetch:i=>{var s;return c(s=e,l,A).call(s,i)},backgroundFetch:(i,s,r,a)=>{var o;return c(o=e,l,jt).call(o,i,s,r,a)},moveToTail:i=>{var s;return c(s=e,l,Et).call(s,i)},indexes:i=>{var s;return c(s=e,l,nt).call(s,i)},rindexes:i=>{var s;return c(s=e,l,at).call(s,i)},isStale:i=>{var s;return t(s=e,k).call(s,i)}}}get max(){return t(this,q)}get maxSize(){return t(this,M)}get calculatedSize(){return t(this,X)}get size(){return t(this,D)}get fetchMethod(){return t(this,yt)}get memoMethod(){return t(this,St)}get dispose(){return t(this,K)}get onInsert(){return t(this,pt)}get disposeAfter(){return t(this,$)}getRemainingTTL(e){return t(this,T).has(e)?1/0:0}*entries(){for(let e of c(this,l,nt).call(this))t(this,m)[e]!==void 0&&t(this,E)[e]!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield [t(this,E)[e],t(this,m)[e]]);}*rentries(){for(let e of c(this,l,at).call(this))t(this,m)[e]!==void 0&&t(this,E)[e]!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield [t(this,E)[e],t(this,m)[e]]);}*keys(){for(let e of c(this,l,nt).call(this)){let i=t(this,E)[e];i!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield i);}}*rkeys(){for(let e of c(this,l,at).call(this)){let i=t(this,E)[e];i!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield i);}}*values(){for(let e of c(this,l,nt).call(this))t(this,m)[e]!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield t(this,m)[e]);}*rvalues(){for(let e of c(this,l,at).call(this))t(this,m)[e]!==void 0&&!c(this,l,A).call(this,t(this,m)[e])&&(yield t(this,m)[e]);}[(Zt=Symbol.iterator,Qt=Symbol.toStringTag,Zt)](){return this.entries()}find(e,i={}){for(let s of c(this,l,nt).call(this)){let r=t(this,m)[s],a=c(this,l,A).call(this,r)?r.__staleWhileFetching:r;if(a!==void 0&&e(a,t(this,E)[s],this))return this.get(t(this,E)[s],i)}}forEach(e,i=this){for(let s of c(this,l,nt).call(this)){let r=t(this,m)[s],a=c(this,l,A).call(this,r)?r.__staleWhileFetching:r;a!==void 0&&e.call(i,a,t(this,E)[s],this);}}rforEach(e,i=this){for(let s of c(this,l,at).call(this)){let r=t(this,m)[s],a=c(this,l,A).call(this,r)?r.__staleWhileFetching:r;a!==void 0&&e.call(i,a,t(this,E)[s],this);}}purgeStale(){let e=false;for(let i of c(this,l,at).call(this,{allowStale:true}))t(this,k).call(this,i)&&(c(this,l,lt).call(this,t(this,E)[i],"expire"),e=true);return e}info(e){let i=t(this,T).get(e);if(i===void 0)return;let s=t(this,m)[i],r=c(this,l,A).call(this,s)?s.__staleWhileFetching:s;if(r===void 0)return;let a={value:r};if(t(this,W)&&t(this,Q)){let o=t(this,W)[i],p=t(this,Q)[i];if(o&&p){let d=o-(t(this,B).now()-p);a.ttl=d,a.start=Date.now();}}return t(this,J)&&(a.size=t(this,J)[i]),a}dump(){let e=[];for(let i of c(this,l,nt).call(this,{allowStale:true})){let s=t(this,E)[i],r=t(this,m)[i],a=c(this,l,A).call(this,r)?r.__staleWhileFetching:r;if(a===void 0||s===void 0)continue;let o={value:a};if(t(this,W)&&t(this,Q)){o.ttl=t(this,W)[i];let p=t(this,B).now()-t(this,Q)[i];o.start=Math.floor(Date.now()-p);}t(this,J)&&(o.size=t(this,J)[i]),e.unshift([s,o]);}return e}load(e){this.clear();for(let[i,s]of e){if(s.start){let r=Date.now()-s.start;s.start=t(this,B).now()-r;}this.set(i,s.value,s);}}set(e,i,s={}){var it,G,f,S;if(i===void 0)return this.delete(e),this;let{ttl:r=this.ttl,start:a,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:p=this.sizeCalculation,status:d}=s,{noUpdateTTL:v=this.noUpdateTTL}=s,C=t(this,Ot).call(this,e,i,s.size||0,p);if(this.maxEntrySize&&C>this.maxEntrySize)return d&&(d.set="miss",d.maxEntrySizeExceeded=true),c(this,l,lt).call(this,e,"set"),this;let x=t(this,D)===0?void 0:t(this,T).get(e);if(x===void 0)x=t(this,D)===0?t(this,F):t(this,Y).length!==0?t(this,Y).pop():t(this,D)===t(this,q)?c(this,l,Ft).call(this,false):t(this,D),t(this,E)[x]=e,t(this,m)[x]=i,t(this,T).set(e,x),t(this,L)[t(this,F)]=x,t(this,V)[x]=t(this,F),u(this,F,x),Dt(this,D)._++,t(this,wt).call(this,x,C,d),d&&(d.set="add"),v=false,t(this,xt)&&((it=t(this,pt))==null||it.call(this,i,e,"add"));else {c(this,l,Et).call(this,x);let _=t(this,m)[x];if(i!==_){if(t(this,ht)&&c(this,l,A).call(this,_)){_.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:n}=_;n!==void 0&&!o&&(t(this,Z)&&((G=t(this,K))==null||G.call(this,n,e,"set")),t(this,z)&&t(this,j)?.push([n,e,"set"]));}else o||(t(this,Z)&&((f=t(this,K))==null||f.call(this,_,e,"set")),t(this,z)&&t(this,j)?.push([_,e,"set"]));if(t(this,ut).call(this,x),t(this,wt).call(this,x,C,d),t(this,m)[x]=i,d){d.set="replace";let n=_&&c(this,l,A).call(this,_)?_.__staleWhileFetching:_;n!==void 0&&(d.oldValue=n);}}else d&&(d.set="update");t(this,xt)&&this.onInsert?.(i,e,i===_?"update":"replace");}if(r!==0&&!t(this,W)&&c(this,l,Nt).call(this),t(this,W)&&(v||t(this,Ut).call(this,x,r,a),d&&t(this,st).call(this,d,x)),!o&&t(this,z)&&t(this,j)){let _=t(this,j),n;for(;n=_?.shift();)(S=t(this,$))==null||S.call(this,...n);}return this}pop(){var e;try{for(;t(this,D);){let i=t(this,m)[t(this,R)];if(c(this,l,Ft).call(this,!0),c(this,l,A).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(t(this,z)&&t(this,j)){let i=t(this,j),s;for(;s=i?.shift();)(e=t(this,$))==null||e.call(this,...s);}}}has(e,i={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=i,a=t(this,T).get(e);if(a!==void 0){let o=t(this,m)[a];if(c(this,l,A).call(this,o)&&o.__staleWhileFetching===void 0)return false;if(t(this,k).call(this,a))r&&(r.has="stale",t(this,st).call(this,r,a));else return s&&t(this,dt).call(this,a),r&&(r.has="hit",t(this,st).call(this,r,a)),true}else r&&(r.has="miss");return false}peek(e,i={}){let{allowStale:s=this.allowStale}=i,r=t(this,T).get(e);if(r===void 0||!s&&t(this,k).call(this,r))return;let a=t(this,m)[r];return c(this,l,A).call(this,a)?a.__staleWhileFetching:a}async fetch(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:p=this.noDisposeOnSet,size:d=0,sizeCalculation:v=this.sizeCalculation,noUpdateTTL:C=this.noUpdateTTL,noDeleteOnFetchRejection:x=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:it=this.allowStaleOnFetchRejection,ignoreFetchAbort:G=this.ignoreFetchAbort,allowStaleOnFetchAbort:f=this.allowStaleOnFetchAbort,context:S,forceRefresh:_=false,status:n,signal:y}=i;if(!t(this,ht))return n&&(n.fetch="get"),this.get(e,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:a,status:n});let U={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:a,ttl:o,noDisposeOnSet:p,size:d,sizeCalculation:v,noUpdateTTL:C,noDeleteOnFetchRejection:x,allowStaleOnFetchRejection:it,allowStaleOnFetchAbort:f,ignoreFetchAbort:G,status:n,signal:y},O=t(this,T).get(e);if(O===void 0){n&&(n.fetch="miss");let w=c(this,l,jt).call(this,e,O,U,S);return w.__returned=w}else {let w=t(this,m)[O];if(c(this,l,A).call(this,w)){let vt=s&&w.__staleWhileFetching!==void 0;return n&&(n.fetch="inflight",vt&&(n.returnedStale=true)),vt?w.__staleWhileFetching:w.__returned=w}let rt=t(this,k).call(this,O);if(!_&&!rt)return n&&(n.fetch="hit"),c(this,l,Et).call(this,O),r&&t(this,dt).call(this,O),n&&t(this,st).call(this,n,O),w;let mt=c(this,l,jt).call(this,e,O,U,S),gt=mt.__staleWhileFetching!==void 0&&s;return n&&(n.fetch=rt?"stale":"refresh",gt&&rt&&(n.returnedStale=true)),gt?mt.__staleWhileFetching:mt.__returned=mt}}async forceFetch(e,i={}){let s=await this.fetch(e,i);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e,i={}){let s=t(this,St);if(!s)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:a,...o}=i,p=this.get(e,o);if(!a&&p!==void 0)return p;let d=s(e,p,{options:o,context:r});return this.set(e,d,o),d}get(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:o}=i,p=t(this,T).get(e);if(p!==void 0){let d=t(this,m)[p],v=c(this,l,A).call(this,d);return o&&t(this,st).call(this,o,p),t(this,k).call(this,p)?(o&&(o.get="stale"),v?(o&&s&&d.__staleWhileFetching!==void 0&&(o.returnedStale=true),s?d.__staleWhileFetching:void 0):(a||c(this,l,lt).call(this,e,"expire"),o&&s&&(o.returnedStale=true),s?d:void 0)):(o&&(o.get="hit"),v?d.__staleWhileFetching:(c(this,l,Et).call(this,p),r&&t(this,dt).call(this,p),d))}else o&&(o.get="miss");}delete(e){return c(this,l,lt).call(this,e,"delete")}clear(){return c(this,l,Vt).call(this,"delete")}},q=new WeakMap,M=new WeakMap,K=new WeakMap,pt=new WeakMap,$=new WeakMap,yt=new WeakMap,St=new WeakMap,B=new WeakMap,D=new WeakMap,X=new WeakMap,T=new WeakMap,E=new WeakMap,m=new WeakMap,L=new WeakMap,V=new WeakMap,R=new WeakMap,F=new WeakMap,Y=new WeakMap,j=new WeakMap,J=new WeakMap,Q=new WeakMap,W=new WeakMap,H=new WeakMap,Z=new WeakMap,ht=new WeakMap,z=new WeakMap,xt=new WeakMap,l=new WeakSet,Nt=function(){let e=new Ct(t(this,q)),i=new Ct(t(this,q));u(this,W,e),u(this,Q,i);let s=this.ttlAutopurge?new Array(t(this,q)):void 0;u(this,H,s),u(this,Ut,(p,d,v=t(this,B).now())=>{i[p]=d!==0?v:0,e[p]=d,r(p,d);}),u(this,dt,p=>{i[p]=e[p]!==0?t(this,B).now():0,r(p,e[p]);});let r=this.ttlAutopurge?(p,d)=>{if(s?.[p]&&(clearTimeout(s[p]),s[p]=void 0),d&&d!==0&&s){let v=setTimeout(()=>{t(this,k).call(this,p)&&c(this,l,lt).call(this,t(this,E)[p],"expire");},d+1);v.unref&&v.unref(),s[p]=v;}}:()=>{};u(this,st,(p,d)=>{if(e[d]){let v=e[d],C=i[d];if(!v||!C)return;p.ttl=v,p.start=C,p.now=a||o();let x=p.now-C;p.remainingTTL=v-x;}});let a=0,o=()=>{let p=t(this,B).now();if(this.ttlResolution>0){a=p;let d=setTimeout(()=>a=0,this.ttlResolution);d.unref&&d.unref();}return p};this.getRemainingTTL=p=>{let d=t(this,T).get(p);if(d===void 0)return 0;let v=e[d],C=i[d];if(!v||!C)return 1/0;let x=(a||o())-C;return v-x},u(this,k,p=>{let d=i[p],v=e[p];return !!v&&!!d&&(a||o())-d>v});},dt=new WeakMap,st=new WeakMap,Ut=new WeakMap,k=new WeakMap,re=function(){let e=new Ct(t(this,q));u(this,X,0),u(this,J,e),u(this,ut,i=>{u(this,X,t(this,X)-e[i]),e[i]=0;}),u(this,Ot,(i,s,r,a)=>{if(c(this,l,A).call(this,s))return 0;if(!ot(r))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(r=a(s,i),!ot(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return r}),u(this,wt,(i,s,r)=>{if(e[i]=s,t(this,M)){let a=t(this,M)-e[i];for(;t(this,X)>a;)c(this,l,Ft).call(this,true);}u(this,X,t(this,X)+e[i]),r&&(r.entrySize=s,r.totalCalculatedSize=t(this,X));});},ut=new WeakMap,wt=new WeakMap,Ot=new WeakMap,nt=function*({allowStale:e=this.allowStale}={}){if(t(this,D))for(let i=t(this,F);!(!c(this,l,Gt).call(this,i)||((e||!t(this,k).call(this,i))&&(yield i),i===t(this,R)));)i=t(this,V)[i];},at=function*({allowStale:e=this.allowStale}={}){if(t(this,D))for(let i=t(this,R);!(!c(this,l,Gt).call(this,i)||((e||!t(this,k).call(this,i))&&(yield i),i===t(this,F)));)i=t(this,L)[i];},Gt=function(e){return e!==void 0&&t(this,T).get(t(this,E)[e])===e},Ft=function(e){var a;let i=t(this,R),s=t(this,E)[i],r=t(this,m)[i];return t(this,ht)&&c(this,l,A).call(this,r)?r.__abortController.abort(new Error("evicted")):(t(this,Z)||t(this,z))&&(t(this,Z)&&((a=t(this,K))==null||a.call(this,r,s,"evict")),t(this,z)&&t(this,j)?.push([r,s,"evict"])),t(this,ut).call(this,i),t(this,H)?.[i]&&(clearTimeout(t(this,H)[i]),t(this,H)[i]=void 0),e&&(t(this,E)[i]=void 0,t(this,m)[i]=void 0,t(this,Y).push(i)),t(this,D)===1?(u(this,R,u(this,F,0)),t(this,Y).length=0):u(this,R,t(this,L)[i]),t(this,T).delete(s),Dt(this,D)._--,i},jt=function(e,i,s,r){let a=i===void 0?void 0:t(this,m)[i];if(c(this,l,A).call(this,a))return a;let o=new Pt,{signal:p}=s;p?.addEventListener("abort",()=>o.abort(p.reason),{signal:o.signal});let d={signal:o.signal,options:s,context:r},v=(S,_=false)=>{let{aborted:n}=o.signal,y=s.ignoreFetchAbort&&S!==void 0,U=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&S!==void 0);if(s.status&&(n&&!_?(s.status.fetchAborted=true,s.status.fetchError=o.signal.reason,y&&(s.status.fetchAbortIgnored=true)):s.status.fetchResolved=true),n&&!y&&!_)return x(o.signal.reason,U);let O=G,w=t(this,m)[i];return (w===G||y&&_&&w===void 0)&&(S===void 0?O.__staleWhileFetching!==void 0?t(this,m)[i]=O.__staleWhileFetching:c(this,l,lt).call(this,e,"fetch"):(s.status&&(s.status.fetchUpdated=true),this.set(e,S,d.options))),S},C=S=>(s.status&&(s.status.fetchRejected=true,s.status.fetchError=S),x(S,false)),x=(S,_)=>{let{aborted:n}=o.signal,y=n&&s.allowStaleOnFetchAbort,U=y||s.allowStaleOnFetchRejection,O=U||s.noDeleteOnFetchRejection,w=G;if(t(this,m)[i]===G&&(!O||!_&&w.__staleWhileFetching===void 0?c(this,l,lt).call(this,e,"fetch"):y||(t(this,m)[i]=w.__staleWhileFetching)),U)return s.status&&w.__staleWhileFetching!==void 0&&(s.status.returnedStale=true),w.__staleWhileFetching;if(w.__returned===w)throw S},it=(S,_)=>{var y;let n=(y=t(this,yt))==null?void 0:y.call(this,e,a,d);n&&n instanceof Promise&&n.then(U=>S(U===void 0?void 0:U),_),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(S(void 0),s.allowStaleOnFetchAbort&&(S=U=>v(U,true)));});};s.status&&(s.status.fetchDispatched=true);let G=new Promise(it).then(v,C),f=Object.assign(G,{__abortController:o,__staleWhileFetching:a,__returned:void 0});return i===void 0?(this.set(e,f,{...d.options,status:void 0}),i=t(this,T).get(e)):t(this,m)[i]=f,f},A=function(e){if(!t(this,ht))return false;let i=e;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof Pt},Mt=function(e,i){t(this,V)[i]=e,t(this,L)[e]=i;},Et=function(e){e!==t(this,F)&&(e===t(this,R)?u(this,R,t(this,L)[e]):c(this,l,Mt).call(this,t(this,V)[e],t(this,L)[e]),c(this,l,Mt).call(this,t(this,F),e),u(this,F,e));},lt=function(e,i){var r,a;let s=false;if(t(this,D)!==0){let o=t(this,T).get(e);if(o!==void 0)if(t(this,H)?.[o]&&(clearTimeout(t(this,H)?.[o]),t(this,H)[o]=void 0),s=true,t(this,D)===1)c(this,l,Vt).call(this,i);else {t(this,ut).call(this,o);let p=t(this,m)[o];if(c(this,l,A).call(this,p)?p.__abortController.abort(new Error("deleted")):(t(this,Z)||t(this,z))&&(t(this,Z)&&((r=t(this,K))==null||r.call(this,p,e,i)),t(this,z)&&t(this,j)?.push([p,e,i])),t(this,T).delete(e),t(this,E)[o]=void 0,t(this,m)[o]=void 0,o===t(this,F))u(this,F,t(this,V)[o]);else if(o===t(this,R))u(this,R,t(this,L)[o]);else {let d=t(this,V)[o];t(this,L)[d]=t(this,L)[o];let v=t(this,L)[o];t(this,V)[v]=t(this,V)[o];}Dt(this,D)._--,t(this,Y).push(o);}}if(t(this,z)&&t(this,j)?.length){let o=t(this,j),p;for(;p=o?.shift();)(a=t(this,$))==null||a.call(this,...p);}return s},Vt=function(e){var i,s;for(let r of c(this,l,at).call(this,{allowStale:true})){let a=t(this,m)[r];if(c(this,l,A).call(this,a))a.__abortController.abort(new Error("deleted"));else {let o=t(this,E)[r];t(this,Z)&&((i=t(this,K))==null||i.call(this,a,o,e)),t(this,z)&&t(this,j)?.push([a,o,e]);}}if(t(this,T).clear(),t(this,m).fill(void 0),t(this,E).fill(void 0),t(this,W)&&t(this,Q)){t(this,W).fill(0),t(this,Q).fill(0);for(let r of t(this,H)??[])r!==void 0&&clearTimeout(r);t(this,H)?.fill(void 0);}if(t(this,J)&&t(this,J).fill(0),u(this,R,0),u(this,F,0),t(this,Y).length=0,u(this,X,0),u(this,D,0),t(this,z)&&t(this,j)){let r=t(this,j),a;for(;a=r?.shift();)(s=t(this,$))==null||s.call(this,...a);}},bt);var Rt=class{constructor(e){b(this,"cache");b(this,"map",new Map);this.cache=new se({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var Tt="1.5.19";var Wt="repeat";function Ht(h){return {type:"pause",duration:h}}var kt="__game_layer__";var oe={};var qt={};he(qt,{createExportableElement:()=>ne});var At;(r=>(r.log=(a,...o)=>console.log(`[Pixi\u2019VN] ${a}`,...o),r.warn=(a,...o)=>console.warn(`[Pixi\u2019VN] ${a}`,...o),r.error=(a,...o)=>console.error(`[Pixi\u2019VN] ${a}`,...o),r.info=(a,...o)=>console.info(`[Pixi\u2019VN] ${a}`,...o)))(At||(At={}));function ne(h){try{if(typeof h>"u")return h;let e=JSON.stringify(h);return JSON.parse(e)}catch(e){throw At.error("Error creating exportable element",h,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}function ae(){console.info(`
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var et=require('@drincs/pixi-vn/canvas'),Xt=require('@drincs/pixi-vn/characters'),core=require('@drincs/pixi-vn/core'),it=require('@drincs/pixi-vn/history'),C=require('@drincs/pixi-vn/narration'),at=require('@drincs/pixi-vn/sound'),I=require('@drincs/pixi-vn/storage'),motion=require('@drincs/pixi-vn/motion');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var et__namespace=/*#__PURE__*/_interopNamespace(et);var Xt__namespace=/*#__PURE__*/_interopNamespace(Xt);var it__namespace=/*#__PURE__*/_interopNamespace(it);var C__namespace=/*#__PURE__*/_interopNamespace(C);var at__namespace=/*#__PURE__*/_interopNamespace(at);var I__namespace=/*#__PURE__*/_interopNamespace(I);var $t=Object.defineProperty;var Bt=h=>{throw TypeError(h)};var le=(h,e,i)=>e in h?$t(h,e,{enumerable:true,configurable:true,writable:true,value:i}):h[e]=i;var he=(h,e)=>{for(var i in e)$t(h,i,{get:e[i],enumerable:true});};var y=(h,e,i)=>le(h,typeof e!="symbol"?e+"":e,i),jt=(h,e,i)=>e.has(h)||Bt("Cannot "+i);var t=(h,e,i)=>(jt(h,e,"read from private field"),i?i.call(h):e.get(h)),g=(h,e,i)=>e.has(h)?Bt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(h):e.set(h,i),u=(h,e,i,s)=>(jt(h,e,"write to private field"),e.set(h,i),i),d=(h,e,i)=>(jt(h,e,"access private method"),i);var Rt=(h,e,i,s)=>({set _(r){u(h,e,r);},get _(){return t(h,e,s)}});var de=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,te=new Set,It=typeof process=="object"&&process?process:{},ee=(h,e,i,s)=>{typeof It.emitWarning=="function"?It.emitWarning(h,e,i,s):console.error(`[${i}] ${e}: ${h}`);},Nt=globalThis.AbortController,Jt=globalThis.AbortSignal;if(typeof Nt>"u"){Jt=class{constructor(){y(this,"onabort");y(this,"_onabort",[]);y(this,"reason");y(this,"aborted",false);}addEventListener(i,s){this._onabort.push(s);}},Nt=class{constructor(){y(this,"signal",new Jt);e();}abort(i){if(!this.signal.aborted){this.signal.reason=i,this.signal.aborted=true;for(let s of this.signal._onabort)s(i);this.signal.onabort?.(i);}}};let h=It.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{h&&(h=false,ee("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var ce=h=>!te.has(h);var lt=h=>h&&h===Math.floor(h)&&h>0&&isFinite(h),ie=h=>lt(h)?h<=Math.pow(2,8)?Uint8Array:h<=Math.pow(2,16)?Uint16Array:h<=Math.pow(2,32)?Uint32Array:h<=Number.MAX_SAFE_INTEGER?Dt:null:null,Dt=class extends Array{constructor(h){super(h),this.fill(0);}},st,St,pe=(st=class{constructor(e,i){y(this,"heap");y(this,"length");if(!t(st,St))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new i(e),this.length=0;}static create(e){let i=ie(e);if(!i)return [];u(st,St,true);let s=new st(e,i);return u(st,St,false),s}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},St=new WeakMap,g(st,St,false),st),Qt,Zt,K,G,q,ut,X,yt,Et,$,U,B,T,b,m,F,z,N,D,J,L,Q,Z,V,W,tt,pt,P,xt,l,Mt,ft,ot,Ot,Y,re,mt,At,Tt,ht,dt,Gt,Lt,Ct,A,zt,wt,ct,Vt,bt,se=(bt=class{constructor(e){g(this,l);g(this,K);g(this,G);g(this,q);g(this,ut);g(this,X);g(this,yt);g(this,Et);g(this,$);y(this,"ttl");y(this,"ttlResolution");y(this,"ttlAutopurge");y(this,"updateAgeOnGet");y(this,"updateAgeOnHas");y(this,"allowStale");y(this,"noDisposeOnSet");y(this,"noUpdateTTL");y(this,"maxEntrySize");y(this,"sizeCalculation");y(this,"noDeleteOnFetchRejection");y(this,"noDeleteOnStaleGet");y(this,"allowStaleOnFetchAbort");y(this,"allowStaleOnFetchRejection");y(this,"ignoreFetchAbort");g(this,U);g(this,B);g(this,T);g(this,b);g(this,m);g(this,F);g(this,z);g(this,N);g(this,D);g(this,J);g(this,L);g(this,Q);g(this,Z);g(this,V);g(this,W);g(this,tt);g(this,pt);g(this,P);g(this,xt);g(this,ft,()=>{});g(this,ot,()=>{});g(this,Ot,()=>{});g(this,Y,()=>false);g(this,mt,e=>{});g(this,At,(e,i,s)=>{});g(this,Tt,(e,i,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});y(this,Qt,"LRUCache");let{max:i=0,ttl:s,ttlResolution:r=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:c,allowStale:p,dispose:v,onInsert:R,disposeAfter:S,noDisposeOnSet:rt,noUpdateTTL:M,maxSize:k=0,maxEntrySize:w=0,sizeCalculation:E,fetchMethod:a,memoMethod:x,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:f,allowStaleOnFetchRejection:_,allowStaleOnFetchAbort:j,ignoreFetchAbort:H,perf:gt}=e;if(gt!==void 0&&typeof gt?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(u(this,$,gt??de),i!==0&&!lt(i))throw new TypeError("max option must be a nonnegative integer");let vt=i?ie(i):Array;if(!vt)throw new Error("invalid max value: "+i);if(u(this,K,i),u(this,G,k),this.maxEntrySize=w||t(this,G),this.sizeCalculation=E,this.sizeCalculation){if(!t(this,G)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(x!==void 0&&typeof x!="function")throw new TypeError("memoMethod must be a function if defined");if(u(this,Et,x),a!==void 0&&typeof a!="function")throw new TypeError("fetchMethod must be a function if specified");if(u(this,yt,a),u(this,pt,!!a),u(this,T,new Map),u(this,b,new Array(i).fill(void 0)),u(this,m,new Array(i).fill(void 0)),u(this,F,new vt(i)),u(this,z,new vt(i)),u(this,N,0),u(this,D,0),u(this,J,pe.create(i)),u(this,U,0),u(this,B,0),typeof v=="function"&&u(this,q,v),typeof R=="function"&&u(this,ut,R),typeof S=="function"?(u(this,X,S),u(this,L,[])):(u(this,X,void 0),u(this,L,void 0)),u(this,tt,!!t(this,q)),u(this,xt,!!t(this,ut)),u(this,P,!!t(this,X)),this.noDisposeOnSet=!!rt,this.noUpdateTTL=!!M,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!_,this.allowStaleOnFetchAbort=!!j,this.ignoreFetchAbort=!!H,this.maxEntrySize!==0){if(t(this,G)!==0&&!lt(t(this,G)))throw new TypeError("maxSize must be a positive integer if specified");if(!lt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");d(this,l,re).call(this);}if(this.allowStale=!!p,this.noDeleteOnStaleGet=!!f,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!c,this.ttlResolution=lt(r)||r===0?r:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!lt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");d(this,l,Mt).call(this);}if(t(this,K)===0&&this.ttl===0&&t(this,G)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!t(this,K)&&!t(this,G)){let Pt="LRU_CACHE_UNBOUNDED";ce(Pt)&&(te.add(Pt),ee("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Pt,bt));}}get perf(){return t(this,$)}static unsafeExposeInternals(e){return {starts:t(e,Z),ttls:t(e,V),autopurgeTimers:t(e,W),sizes:t(e,Q),keyMap:t(e,T),keyList:t(e,b),valList:t(e,m),next:t(e,F),prev:t(e,z),get head(){return t(e,N)},get tail(){return t(e,D)},free:t(e,J),isBackgroundFetch:i=>{var s;return d(s=e,l,A).call(s,i)},backgroundFetch:(i,s,r,n)=>{var o;return d(o=e,l,Ct).call(o,i,s,r,n)},moveToTail:i=>{var s;return d(s=e,l,wt).call(s,i)},indexes:i=>{var s;return d(s=e,l,ht).call(s,i)},rindexes:i=>{var s;return d(s=e,l,dt).call(s,i)},isStale:i=>{var s;return t(s=e,Y).call(s,i)}}}get max(){return t(this,K)}get maxSize(){return t(this,G)}get calculatedSize(){return t(this,B)}get size(){return t(this,U)}get fetchMethod(){return t(this,yt)}get memoMethod(){return t(this,Et)}get dispose(){return t(this,q)}get onInsert(){return t(this,ut)}get disposeAfter(){return t(this,X)}getRemainingTTL(e){return t(this,T).has(e)?1/0:0}*entries(){for(let e of d(this,l,ht).call(this))t(this,m)[e]!==void 0&&t(this,b)[e]!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield [t(this,b)[e],t(this,m)[e]]);}*rentries(){for(let e of d(this,l,dt).call(this))t(this,m)[e]!==void 0&&t(this,b)[e]!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield [t(this,b)[e],t(this,m)[e]]);}*keys(){for(let e of d(this,l,ht).call(this)){let i=t(this,b)[e];i!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield i);}}*rkeys(){for(let e of d(this,l,dt).call(this)){let i=t(this,b)[e];i!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield i);}}*values(){for(let e of d(this,l,ht).call(this))t(this,m)[e]!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield t(this,m)[e]);}*rvalues(){for(let e of d(this,l,dt).call(this))t(this,m)[e]!==void 0&&!d(this,l,A).call(this,t(this,m)[e])&&(yield t(this,m)[e]);}[(Zt=Symbol.iterator,Qt=Symbol.toStringTag,Zt)](){return this.entries()}find(e,i={}){for(let s of d(this,l,ht).call(this)){let r=t(this,m)[s],n=d(this,l,A).call(this,r)?r.__staleWhileFetching:r;if(n!==void 0&&e(n,t(this,b)[s],this))return this.get(t(this,b)[s],i)}}forEach(e,i=this){for(let s of d(this,l,ht).call(this)){let r=t(this,m)[s],n=d(this,l,A).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e.call(i,n,t(this,b)[s],this);}}rforEach(e,i=this){for(let s of d(this,l,dt).call(this)){let r=t(this,m)[s],n=d(this,l,A).call(this,r)?r.__staleWhileFetching:r;n!==void 0&&e.call(i,n,t(this,b)[s],this);}}purgeStale(){let e=false;for(let i of d(this,l,dt).call(this,{allowStale:true}))t(this,Y).call(this,i)&&(d(this,l,ct).call(this,t(this,b)[i],"expire"),e=true);return e}info(e){let i=t(this,T).get(e);if(i===void 0)return;let s=t(this,m)[i],r=d(this,l,A).call(this,s)?s.__staleWhileFetching:s;if(r===void 0)return;let n={value:r};if(t(this,V)&&t(this,Z)){let o=t(this,V)[i],c=t(this,Z)[i];if(o&&c){let p=o-(t(this,$).now()-c);n.ttl=p,n.start=Date.now();}}return t(this,Q)&&(n.size=t(this,Q)[i]),n}dump(){let e=[];for(let i of d(this,l,ht).call(this,{allowStale:true})){let s=t(this,b)[i],r=t(this,m)[i],n=d(this,l,A).call(this,r)?r.__staleWhileFetching:r;if(n===void 0||s===void 0)continue;let o={value:n};if(t(this,V)&&t(this,Z)){o.ttl=t(this,V)[i];let c=t(this,$).now()-t(this,Z)[i];o.start=Math.floor(Date.now()-c);}t(this,Q)&&(o.size=t(this,Q)[i]),e.unshift([s,o]);}return e}load(e){this.clear();for(let[i,s]of e){if(s.start){let r=Date.now()-s.start;s.start=t(this,$).now()-r;}this.set(i,s.value,s);}}set(e,i,s={}){var rt,M,k,w;if(i===void 0)return this.delete(e),this;let{ttl:r=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:c=this.sizeCalculation,status:p}=s,{noUpdateTTL:v=this.noUpdateTTL}=s,R=t(this,Tt).call(this,e,i,s.size||0,c);if(this.maxEntrySize&&R>this.maxEntrySize)return p&&(p.set="miss",p.maxEntrySizeExceeded=true),d(this,l,ct).call(this,e,"set"),this;let S=t(this,U)===0?void 0:t(this,T).get(e);if(S===void 0)S=t(this,U)===0?t(this,D):t(this,J).length!==0?t(this,J).pop():t(this,U)===t(this,K)?d(this,l,Lt).call(this,false):t(this,U),t(this,b)[S]=e,t(this,m)[S]=i,t(this,T).set(e,S),t(this,F)[t(this,D)]=S,t(this,z)[S]=t(this,D),u(this,D,S),Rt(this,U)._++,t(this,At).call(this,S,R,p),p&&(p.set="add"),v=false,t(this,xt)&&((rt=t(this,ut))==null||rt.call(this,i,e,"add"));else {d(this,l,wt).call(this,S);let E=t(this,m)[S];if(i!==E){if(t(this,pt)&&d(this,l,A).call(this,E)){E.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:a}=E;a!==void 0&&!o&&(t(this,tt)&&((M=t(this,q))==null||M.call(this,a,e,"set")),t(this,P)&&t(this,L)?.push([a,e,"set"]));}else o||(t(this,tt)&&((k=t(this,q))==null||k.call(this,E,e,"set")),t(this,P)&&t(this,L)?.push([E,e,"set"]));if(t(this,mt).call(this,S),t(this,At).call(this,S,R,p),t(this,m)[S]=i,p){p.set="replace";let a=E&&d(this,l,A).call(this,E)?E.__staleWhileFetching:E;a!==void 0&&(p.oldValue=a);}}else p&&(p.set="update");t(this,xt)&&this.onInsert?.(i,e,i===E?"update":"replace");}if(r!==0&&!t(this,V)&&d(this,l,Mt).call(this),t(this,V)&&(v||t(this,Ot).call(this,S,r,n),p&&t(this,ot).call(this,p,S)),!o&&t(this,P)&&t(this,L)){let E=t(this,L),a;for(;a=E?.shift();)(w=t(this,X))==null||w.call(this,...a);}return this}pop(){var e;try{for(;t(this,U);){let i=t(this,m)[t(this,N)];if(d(this,l,Lt).call(this,!0),d(this,l,A).call(this,i)){if(i.__staleWhileFetching)return i.__staleWhileFetching}else if(i!==void 0)return i}}finally{if(t(this,P)&&t(this,L)){let i=t(this,L),s;for(;s=i?.shift();)(e=t(this,X))==null||e.call(this,...s);}}}has(e,i={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=i,n=t(this,T).get(e);if(n!==void 0){let o=t(this,m)[n];if(d(this,l,A).call(this,o)&&o.__staleWhileFetching===void 0)return false;if(t(this,Y).call(this,n))r&&(r.has="stale",t(this,ot).call(this,r,n));else return s&&t(this,ft).call(this,n),r&&(r.has="hit",t(this,ot).call(this,r,n)),true}else r&&(r.has="miss");return false}peek(e,i={}){let{allowStale:s=this.allowStale}=i,r=t(this,T).get(e);if(r===void 0||!s&&t(this,Y).call(this,r))return;let n=t(this,m)[r];return d(this,l,A).call(this,n)?n.__staleWhileFetching:n}async fetch(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:c=this.noDisposeOnSet,size:p=0,sizeCalculation:v=this.sizeCalculation,noUpdateTTL:R=this.noUpdateTTL,noDeleteOnFetchRejection:S=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:rt=this.allowStaleOnFetchRejection,ignoreFetchAbort:M=this.ignoreFetchAbort,allowStaleOnFetchAbort:k=this.allowStaleOnFetchAbort,context:w,forceRefresh:E=false,status:a,signal:x}=i;if(!t(this,pt))return a&&(a.fetch="get"),this.get(e,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,status:a});let O={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:c,size:p,sizeCalculation:v,noUpdateTTL:R,noDeleteOnFetchRejection:S,allowStaleOnFetchRejection:rt,allowStaleOnFetchAbort:k,ignoreFetchAbort:M,status:a,signal:x},f=t(this,T).get(e);if(f===void 0){a&&(a.fetch="miss");let _=d(this,l,Ct).call(this,e,f,O,w);return _.__returned=_}else {let _=t(this,m)[f];if(d(this,l,A).call(this,_)){let vt=s&&_.__staleWhileFetching!==void 0;return a&&(a.fetch="inflight",vt&&(a.returnedStale=true)),vt?_.__staleWhileFetching:_.__returned=_}let j=t(this,Y).call(this,f);if(!E&&!j)return a&&(a.fetch="hit"),d(this,l,wt).call(this,f),r&&t(this,ft).call(this,f),a&&t(this,ot).call(this,a,f),_;let H=d(this,l,Ct).call(this,e,f,O,w),gt=H.__staleWhileFetching!==void 0&&s;return a&&(a.fetch=j?"stale":"refresh",gt&&j&&(a.returnedStale=true)),gt?H.__staleWhileFetching:H.__returned=H}}async forceFetch(e,i={}){let s=await this.fetch(e,i);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e,i={}){let s=t(this,Et);if(!s)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:n,...o}=i,c=this.get(e,o);if(!n&&c!==void 0)return c;let p=s(e,c,{options:o,context:r});return this.set(e,p,o),p}get(e,i={}){let{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=i,c=t(this,T).get(e);if(c!==void 0){let p=t(this,m)[c],v=d(this,l,A).call(this,p);return o&&t(this,ot).call(this,o,c),t(this,Y).call(this,c)?(o&&(o.get="stale"),v?(o&&s&&p.__staleWhileFetching!==void 0&&(o.returnedStale=true),s?p.__staleWhileFetching:void 0):(n||d(this,l,ct).call(this,e,"expire"),o&&s&&(o.returnedStale=true),s?p:void 0)):(o&&(o.get="hit"),v?p.__staleWhileFetching:(d(this,l,wt).call(this,c),r&&t(this,ft).call(this,c),p))}else o&&(o.get="miss");}delete(e){return d(this,l,ct).call(this,e,"delete")}clear(){return d(this,l,Vt).call(this,"delete")}},K=new WeakMap,G=new WeakMap,q=new WeakMap,ut=new WeakMap,X=new WeakMap,yt=new WeakMap,Et=new WeakMap,$=new WeakMap,U=new WeakMap,B=new WeakMap,T=new WeakMap,b=new WeakMap,m=new WeakMap,F=new WeakMap,z=new WeakMap,N=new WeakMap,D=new WeakMap,J=new WeakMap,L=new WeakMap,Q=new WeakMap,Z=new WeakMap,V=new WeakMap,W=new WeakMap,tt=new WeakMap,pt=new WeakMap,P=new WeakMap,xt=new WeakMap,l=new WeakSet,Mt=function(){let e=new Dt(t(this,K)),i=new Dt(t(this,K));u(this,V,e),u(this,Z,i);let s=this.ttlAutopurge?new Array(t(this,K)):void 0;u(this,W,s),u(this,Ot,(c,p,v=t(this,$).now())=>{i[c]=p!==0?v:0,e[c]=p,r(c,p);}),u(this,ft,c=>{i[c]=e[c]!==0?t(this,$).now():0,r(c,e[c]);});let r=this.ttlAutopurge?(c,p)=>{if(s?.[c]&&(clearTimeout(s[c]),s[c]=void 0),p&&p!==0&&s){let v=setTimeout(()=>{t(this,Y).call(this,c)&&d(this,l,ct).call(this,t(this,b)[c],"expire");},p+1);v.unref&&v.unref(),s[c]=v;}}:()=>{};u(this,ot,(c,p)=>{if(e[p]){let v=e[p],R=i[p];if(!v||!R)return;c.ttl=v,c.start=R,c.now=n||o();let S=c.now-R;c.remainingTTL=v-S;}});let n=0,o=()=>{let c=t(this,$).now();if(this.ttlResolution>0){n=c;let p=setTimeout(()=>n=0,this.ttlResolution);p.unref&&p.unref();}return c};this.getRemainingTTL=c=>{let p=t(this,T).get(c);if(p===void 0)return 0;let v=e[p],R=i[p];if(!v||!R)return 1/0;let S=(n||o())-R;return v-S},u(this,Y,c=>{let p=i[c],v=e[c];return !!v&&!!p&&(n||o())-p>v});},ft=new WeakMap,ot=new WeakMap,Ot=new WeakMap,Y=new WeakMap,re=function(){let e=new Dt(t(this,K));u(this,B,0),u(this,Q,e),u(this,mt,i=>{u(this,B,t(this,B)-e[i]),e[i]=0;}),u(this,Tt,(i,s,r,n)=>{if(d(this,l,A).call(this,s))return 0;if(!lt(r))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(r=n(s,i),!lt(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return r}),u(this,At,(i,s,r)=>{if(e[i]=s,t(this,G)){let n=t(this,G)-e[i];for(;t(this,B)>n;)d(this,l,Lt).call(this,true);}u(this,B,t(this,B)+e[i]),r&&(r.entrySize=s,r.totalCalculatedSize=t(this,B));});},mt=new WeakMap,At=new WeakMap,Tt=new WeakMap,ht=function*({allowStale:e=this.allowStale}={}){if(t(this,U))for(let i=t(this,D);!(!d(this,l,Gt).call(this,i)||((e||!t(this,Y).call(this,i))&&(yield i),i===t(this,N)));)i=t(this,z)[i];},dt=function*({allowStale:e=this.allowStale}={}){if(t(this,U))for(let i=t(this,N);!(!d(this,l,Gt).call(this,i)||((e||!t(this,Y).call(this,i))&&(yield i),i===t(this,D)));)i=t(this,F)[i];},Gt=function(e){return e!==void 0&&t(this,T).get(t(this,b)[e])===e},Lt=function(e){var n;let i=t(this,N),s=t(this,b)[i],r=t(this,m)[i];return t(this,pt)&&d(this,l,A).call(this,r)?r.__abortController.abort(new Error("evicted")):(t(this,tt)||t(this,P))&&(t(this,tt)&&((n=t(this,q))==null||n.call(this,r,s,"evict")),t(this,P)&&t(this,L)?.push([r,s,"evict"])),t(this,mt).call(this,i),t(this,W)?.[i]&&(clearTimeout(t(this,W)[i]),t(this,W)[i]=void 0),e&&(t(this,b)[i]=void 0,t(this,m)[i]=void 0,t(this,J).push(i)),t(this,U)===1?(u(this,N,u(this,D,0)),t(this,J).length=0):u(this,N,t(this,F)[i]),t(this,T).delete(s),Rt(this,U)._--,i},Ct=function(e,i,s,r){let n=i===void 0?void 0:t(this,m)[i];if(d(this,l,A).call(this,n))return n;let o=new Nt,{signal:c}=s;c?.addEventListener("abort",()=>o.abort(c.reason),{signal:o.signal});let p={signal:o.signal,options:s,context:r},v=(w,E=false)=>{let{aborted:a}=o.signal,x=s.ignoreFetchAbort&&w!==void 0,O=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&w!==void 0);if(s.status&&(a&&!E?(s.status.fetchAborted=true,s.status.fetchError=o.signal.reason,x&&(s.status.fetchAbortIgnored=true)):s.status.fetchResolved=true),a&&!x&&!E)return S(o.signal.reason,O);let f=M,_=t(this,m)[i];return (_===M||x&&E&&_===void 0)&&(w===void 0?f.__staleWhileFetching!==void 0?t(this,m)[i]=f.__staleWhileFetching:d(this,l,ct).call(this,e,"fetch"):(s.status&&(s.status.fetchUpdated=true),this.set(e,w,p.options))),w},R=w=>(s.status&&(s.status.fetchRejected=true,s.status.fetchError=w),S(w,false)),S=(w,E)=>{let{aborted:a}=o.signal,x=a&&s.allowStaleOnFetchAbort,O=x||s.allowStaleOnFetchRejection,f=O||s.noDeleteOnFetchRejection,_=M;if(t(this,m)[i]===M&&(!f||!E&&_.__staleWhileFetching===void 0?d(this,l,ct).call(this,e,"fetch"):x||(t(this,m)[i]=_.__staleWhileFetching)),O)return s.status&&_.__staleWhileFetching!==void 0&&(s.status.returnedStale=true),_.__staleWhileFetching;if(_.__returned===_)throw w},rt=(w,E)=>{var x;let a=(x=t(this,yt))==null?void 0:x.call(this,e,n,p);a&&a instanceof Promise&&a.then(O=>w(O===void 0?void 0:O),E),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(w(void 0),s.allowStaleOnFetchAbort&&(w=O=>v(O,true)));});};s.status&&(s.status.fetchDispatched=true);let M=new Promise(rt).then(v,R),k=Object.assign(M,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return i===void 0?(this.set(e,k,{...p.options,status:void 0}),i=t(this,T).get(e)):t(this,m)[i]=k,k},A=function(e){if(!t(this,pt))return false;let i=e;return !!i&&i instanceof Promise&&i.hasOwnProperty("__staleWhileFetching")&&i.__abortController instanceof Nt},zt=function(e,i){t(this,z)[i]=e,t(this,F)[e]=i;},wt=function(e){e!==t(this,D)&&(e===t(this,N)?u(this,N,t(this,F)[e]):d(this,l,zt).call(this,t(this,z)[e],t(this,F)[e]),d(this,l,zt).call(this,t(this,D),e),u(this,D,e));},ct=function(e,i){var r,n;let s=false;if(t(this,U)!==0){let o=t(this,T).get(e);if(o!==void 0)if(t(this,W)?.[o]&&(clearTimeout(t(this,W)?.[o]),t(this,W)[o]=void 0),s=true,t(this,U)===1)d(this,l,Vt).call(this,i);else {t(this,mt).call(this,o);let c=t(this,m)[o];if(d(this,l,A).call(this,c)?c.__abortController.abort(new Error("deleted")):(t(this,tt)||t(this,P))&&(t(this,tt)&&((r=t(this,q))==null||r.call(this,c,e,i)),t(this,P)&&t(this,L)?.push([c,e,i])),t(this,T).delete(e),t(this,b)[o]=void 0,t(this,m)[o]=void 0,o===t(this,D))u(this,D,t(this,z)[o]);else if(o===t(this,N))u(this,N,t(this,F)[o]);else {let p=t(this,z)[o];t(this,F)[p]=t(this,F)[o];let v=t(this,F)[o];t(this,z)[v]=t(this,z)[o];}Rt(this,U)._--,t(this,J).push(o);}}if(t(this,P)&&t(this,L)?.length){let o=t(this,L),c;for(;c=o?.shift();)(n=t(this,X))==null||n.call(this,...c);}return s},Vt=function(e){var i,s;for(let r of d(this,l,dt).call(this,{allowStale:true})){let n=t(this,m)[r];if(d(this,l,A).call(this,n))n.__abortController.abort(new Error("deleted"));else {let o=t(this,b)[r];t(this,tt)&&((i=t(this,q))==null||i.call(this,n,o,e)),t(this,P)&&t(this,L)?.push([n,o,e]);}}if(t(this,T).clear(),t(this,m).fill(void 0),t(this,b).fill(void 0),t(this,V)&&t(this,Z)){t(this,V).fill(0),t(this,Z).fill(0);for(let r of t(this,W)??[])r!==void 0&&clearTimeout(r);t(this,W)?.fill(void 0);}if(t(this,Q)&&t(this,Q).fill(0),u(this,N,0),u(this,D,0),t(this,J).length=0,u(this,B,0),u(this,U,0),t(this,P)&&t(this,L)){let r=t(this,L),n;for(;n=r?.shift();)(s=t(this,X))==null||s.call(this,...n);}},bt);var Ft=class{constructor(e){y(this,"cache");y(this,"map",new Map);this.cache=new se({max:e.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(e){let i=this.map.delete(e);return i&&this.cache.delete(e),i}get forEach(){return this.map.forEach}get(e){let i=this.cache.get(e);return i||this.map.get(e)}has(e){return this.map.has(e)}set(e,i){return this.map.set(e,i),this.cache.set(e,i),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var Ut="1.6.1";var Wt="repeat";function Yt(h){return {type:"pause",duration:h}}var Ht="__game_layer__";var fe="general";var me={CURRENT_DIALOGUE_MEMORY_KEY:"dialogue",LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY:"dialogue:step_counter",CURRENT_MENU_OPTIONS_MEMORY_KEY:"choice:options",LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY:"choice:step_counter",CURRENT_INPUT_VALUE_MEMORY_KEY:"input:value",LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY:"input:step_counter",CURRENT_INPUT_INFO_MEMORY_KEY:"input:info",CHARACTER_CATEGORY_KEY:"character",ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY:"___glue___",OPENED_LABELS_COUNTER_KEY:"label:opened",ALL_CHOICES_MADE_KEY:"choices:made",CURRENT_STEP_TIMES_COUNTER_KEY:"label:history",LAST_STEP_GLUED:"glue:last_step"};var oe={};var Kt={};he(Kt,{createExportableElement:()=>ne});var _t;(r=>(r.log=(n,...o)=>console.log(`[Pixi\u2019VN] ${n}`,...o),r.warn=(n,...o)=>console.warn(`[Pixi\u2019VN] ${n}`,...o),r.error=(n,...o)=>console.error(`[Pixi\u2019VN] ${n}`,...o),r.info=(n,...o)=>console.info(`[Pixi\u2019VN] ${n}`,...o)))(_t||(_t={}));function ne(h){try{if(typeof h>"u")return h;let e=JSON.stringify(h);return JSON.parse(e)}catch(e){throw _t.error("Error creating exportable element",h,e),new core.PixiError("not_json_serializable","Error creating exportable element")}}function ae(){console.info(`
|
|
2
2
|
_______ _ _ _ ____ ____ ____ _____
|
|
3
3
|
|_ __ \\ (_) (_) | | |_ _| |_ _||_ \\|_ _|
|
|
4
4
|
| |__) |__ _ __ __ \\_| \\ \\ / / | \\ | |
|
|
@@ -6,5 +6,4 @@
|
|
|
6
6
|
_| |_ | | > ' < | | \\ ' / _| |_\\ |_
|
|
7
7
|
|_____| [___][__]\`\\_][___] \\_/ |_____|\\____|
|
|
8
8
|
|
|
9
|
-
`);}function
|
|
10
|
-
//# sourceMappingURL=index.cjs.map
|
|
9
|
+
`);}function kt(){let h=window.location.pathname+window.location.hash;return h.includes("#")&&(h=h.split("#")[1]),h}exports.Game=void 0;(E=>{async function h(a,x,O){if(core.GameUnifier.init({navigate:x?.navigate,getCurrentGameStepState:()=>{let f={};try{f=et__namespace.canvas.export();}catch{}return {path:kt(),storage:I__namespace.storage.export(),canvas:f,sound:at__namespace.sound.export(),labelIndex:C__namespace.NarrationManagerStatic.currentLabelStepIndex||0,openedLabels:C__namespace.narration.openedLabels}},restoreGameStepState:async(f,_)=>{it__namespace.HistoryManagerStatic._originalStepData=f,C__namespace.NarrationManagerStatic.openedLabels=f.openedLabels,I__namespace.storage.restore(f.storage);try{await et__namespace.canvas.restore(f.canvas),await at__namespace.sound.restore(f.sound);}catch{}_(f.path);},getStepCounter:()=>C__namespace.narration.stepCounter,setStepCounter:f=>{C__namespace.NarrationManagerStatic._stepCounter=f;},getOpenedLabels:()=>C__namespace.narration.openedLabels.length,addHistoryItem:(f,_)=>it__namespace.stepHistory.add(f,_),getCharacter:f=>Xt__namespace.RegisteredCharacters.get(f),processNavigationRequests:(f,_)=>{let j=f,H=Promise.resolve();return f>0?(j--,H=C__namespace.narration.continue(_)):f<0&&(j=0,H=it__namespace.stepHistory.back(_,{steps:f*-1})),{newValue:j,result:H}},animate:(f,_,j,H)=>motion.motion.animate(f,_,j,H),getVariable:(f,_)=>I__namespace.StorageManagerStatic.getVariable(f,_),setVariable:(f,_,j)=>I__namespace.StorageManagerStatic.setVariable(f,_,j),removeVariable:(f,_)=>I__namespace.StorageManagerStatic.removeVariable(f,_),getFlag:f=>I__namespace.storage.getFlag(f),setFlag:(f,_)=>I__namespace.storage.setFlag(f,_),onLabelClosing:f=>I__namespace.StorageManagerStatic.clearOldTempVariables(f)}),ae(),!a||!x){_t.warn("The canvas element or options are not defined. The canvas will not be initialized.");return}return await et__namespace.canvas.init(a,x,O)}E.init=h;function e(){I__namespace.storage.clear();try{et__namespace.canvas.clear();}catch{}at__namespace.sound.clear(),C__namespace.narration.clear(),it__namespace.stepHistory.clear();}E.clear=e;function i(){let a={};try{a=et__namespace.canvas.export();}catch{}return {pixivn_version:Ut,stepData:C__namespace.narration.export(),storageData:I__namespace.storage.export(),canvasData:a,soundData:at__namespace.sound.export(),historyData:it__namespace.stepHistory.export(),path:kt()}}E.exportGameState=i;async function s(a,x){it__namespace.stepHistory.restore(a.historyData);let O=it__namespace.stepHistory.lastKey;if(typeof O=="number"){let f=it__namespace.stepHistory.stepsInfoMap.get(O)||null;await C__namespace.narration.restore(a.stepData,f);}I__namespace.storage.restore(a.storageData);try{await et__namespace.canvas.restore(a.canvasData),await at__namespace.sound.restore(a.soundData);}catch{}await x(a.path);}E.restoreGameState=s;async function r(a,x){return et__namespace.canvas.removeAll(),et__namespace.canvas.clear(),at__namespace.sound.stopAll(),await C__namespace.narration.call(a,x)}E.start=r;function n(a){return JSON.parse(a)}E.jsonToGameState=n;function o(a){core.GameUnifier.onEnd=a;}E.onEnd=o;function c(a){return _t.warn("Game.onError is deprecated. Use Game.addOnError / Game.removeOnError to register multiple handlers."),core.GameUnifier.addOnError((x,O)=>a("step",x,O))}E.onError=c;function p(a){return core.GameUnifier.addOnError(a)}E.addOnError=p;function v(a){return core.GameUnifier.removeOnError(a)}E.removeOnError=v;function R(a){C__namespace.NarrationManagerStatic.onStepStart=a;}E.onStepStart=R;function S(a){C__namespace.NarrationManagerStatic.onLoadingLabel=a;}E.onLoadingLabel=S;function rt(a){C__namespace.NarrationManagerStatic.onStepEnd=a;}E.onStepEnd=rt;function M(a){core.GameUnifier.navigate=a;}E.onNavigate=M;function k(a){return core.GameUnifier.addOnPreContinue(a)}E.addOnPreContinue=k;function w(a){return core.GameUnifier.removeOnPreContinue(a)}E.removeOnPreContinue=w;})(exports.Game||(exports.Game={}));var Ke={characterUtils:Xt__namespace,canvasUtils:et__namespace,narrationUtils:C__namespace,soundUtils:at__namespace,CANVAS_APP_GAME_LAYER_ALIAS:Ht,Pause:Yt,Repeat:Wt,PIXIVN_VERSION:Ut,...Kt,...oe,canvas:et__namespace.canvas,narration:C__namespace.narration,sound:at__namespace.sound,storage:I__namespace.storage,history:it__namespace.stepHistory,Game:exports.Game,GameUnifier:core.GameUnifier};exports.CANVAS_APP_GAME_LAYER_ALIAS=Ht;exports.CachedMap=Ft;exports.GENERAL_CHANNEL=fe;exports.PIXIVN_VERSION=Ut;exports.Pause=Yt;exports.Repeat=Wt;exports.SYSTEM_RESERVED_STORAGE_KEYS=me;exports.createExportableElement=ne;exports.default=Ke;Object.keys(et).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return et[k]}})});Object.keys(Xt).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return Xt[k]}})});Object.keys(core).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return core[k]}})});Object.keys(it).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return it[k]}})});Object.keys(C).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return C[k]}})});Object.keys(at).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return at[k]}})});Object.keys(I).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return I[k]}})});
|