crx-monkey-next 0.3.0 → 0.3.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/node/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import cac from 'cac';
2
2
  import sourceMapSupport from 'source-map-support';
3
3
  import { injectable, inject, Container } from 'inversify';
4
- import path, { dirname, resolve, isAbsolute, basename } from 'path';
4
+ import path, { dirname, resolve, basename, isAbsolute } from 'path';
5
5
  import fse, { exists } from 'fs-extra';
6
6
  import crypto$1 from 'crypto';
7
7
  import { fileURLToPath } from 'url';
@@ -11,14 +11,14 @@ import fs, { promises, watch, readFile } from 'fs';
11
11
  import chalk from 'chalk';
12
12
  import moment from 'moment';
13
13
  import { WebSocketServer } from 'ws';
14
- import express from 'express';
15
- import consola from 'consola';
16
- import fsExtra from 'fs-extra/esm';
17
14
  import MurmurHash3 from 'murmurhash3js';
15
+ import fsExtra from 'fs-extra/esm';
16
+ import consola from 'consola';
18
17
  import prettier from 'prettier';
19
18
  import { parse, Node } from 'node-html-parser';
19
+ import express from 'express';
20
20
 
21
- var version = "0.3.0";
21
+ var version = "0.3.1";
22
22
  var packageJson = {
23
23
  version: version};
24
24
 
@@ -572,7 +572,7 @@ Logger = __decorate([
572
572
  let SockServer = class SockServer {
573
573
  configLoader;
574
574
  logger;
575
- wserver = null;
575
+ _wserver = null;
576
576
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
577
577
  listeners = [];
578
578
  _host;
@@ -603,17 +603,19 @@ let SockServer = class SockServer {
603
603
  addMsgListener(listener) {
604
604
  this.listeners.push(listener);
605
605
  }
606
- dispatch(msg) {
606
+ dispatch(msg, target) {
607
607
  this.listeners.forEach((l) => {
608
- l(msg);
608
+ l(msg, (response) => {
609
+ this.sendMsg(target, response);
610
+ });
609
611
  });
610
612
  }
611
613
  setup() {
612
- this.wserver = new WebSocketServer({
614
+ this._wserver = new WebSocketServer({
613
615
  port: this._port,
614
616
  host: this._host,
615
617
  });
616
- this.wserver.addListener('connection', (socket) => {
618
+ this._wserver.addListener('connection', (socket) => {
617
619
  this.sendMsg(socket, {
618
620
  type: 'connected',
619
621
  content: null,
@@ -622,11 +624,11 @@ let SockServer = class SockServer {
622
624
  if (typeof e.data === 'string') {
623
625
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
624
626
  const data = JSON.parse(e.data);
625
- this.dispatch(data);
627
+ this.dispatch(data, e.target);
626
628
  }
627
629
  this.sendMsg(socket, {
628
630
  type: 'send_ok',
629
- content: null,
631
+ content: e.data,
630
632
  });
631
633
  });
632
634
  });
@@ -636,10 +638,10 @@ let SockServer = class SockServer {
636
638
  * @param token
637
639
  */
638
640
  reload(token, data) {
639
- if (this.wserver === null) {
641
+ if (this._wserver === null) {
640
642
  throw new Error('Websocket server has never been setuped');
641
643
  }
642
- this.wserver.clients.forEach((client) => {
644
+ this._wserver.clients.forEach((client) => {
643
645
  this.sendMsg(client, {
644
646
  type: 'reload',
645
647
  content: { reloadType: token, data },
@@ -651,10 +653,10 @@ let SockServer = class SockServer {
651
653
  socket.send(JSON.stringify(data));
652
654
  }
653
655
  dispose() {
654
- if (this.wserver === null) {
656
+ if (this._wserver === null) {
655
657
  throw new Error('Websocket server has never been setuped');
656
658
  }
657
- this.wserver.close();
659
+ this._wserver.close();
658
660
  }
659
661
  };
660
662
  SockServer = __decorate([
@@ -665,318 +667,35 @@ SockServer = __decorate([
665
667
  Logger])
666
668
  ], SockServer);
667
669
 
668
- /*
669
- /**
670
- * The server of send to script code.
671
- */
672
- let FileServer = class FileServer {
673
- configLoader;
674
- app;
675
- server = null;
676
- constructor(configLoader) {
677
- this.configLoader = configLoader;
678
- const { server: { host, port }, } = this.configLoader.useConfig();
679
- if (host === undefined || port === undefined) {
680
- throw new Error("Server host, port or websocket's port were not specificated");
681
- }
682
- this.app = express();
683
- }
684
- /**
685
- * Start server.
686
- * @returns
687
- */
688
- async start() {
689
- this.setup();
690
- const { server: { host, port }, } = this.configLoader.useConfig();
691
- if (host === undefined || port === undefined) {
692
- throw new Error("Server host, port or websocket's port were not specificated");
693
- }
694
- return new Promise((resolve) => {
695
- this.server = this.app.listen(port, host, () => {
696
- resolve(1);
697
- });
698
- });
699
- }
700
- async dispose() {
701
- if (this.server === null) {
702
- throw consola.error(new Error('Dispose can be used after Watch is started'));
703
- }
704
- this.server.close();
705
- this.server = null;
706
- }
707
- setup() {
708
- const { output: { chrome, userjs }, manifest, } = this.configLoader.useConfig();
709
- if (chrome === undefined || userjs === undefined) {
710
- throw new Error('');
711
- }
712
- this.app.get('/userscript', (req, res) => {
713
- let filepath = userjs;
714
- if (!isAbsolute(userjs)) {
715
- filepath = resolve(dirname(manifest), userjs);
716
- }
717
- if (fse.existsSync(filepath)) {
718
- res.sendFile(filepath);
719
- }
720
- else {
721
- res.send(400);
722
- }
723
- });
724
- this.app.get('/dev.user.js', (req, res) => {
725
- let filepath = userjs;
726
- if (!isAbsolute(userjs)) {
727
- filepath = resolve(dirname(manifest), dirname(userjs), 'dev.user.js');
728
- }
729
- if (fse.existsSync(filepath)) {
730
- res.sendFile(filepath);
731
- }
732
- else {
733
- res.send(400);
734
- }
735
- });
736
- }
737
- };
738
- FileServer = __decorate([
739
- injectable(),
740
- __param(0, inject(TYPES.ConfigLoader)),
741
- __metadata("design:paramtypes", [ConfigLoader])
742
- ], FileServer);
743
-
744
- /**
745
- * Get all messages each language in a locale dir in the project.
746
- * @param key
747
- * @returns All messages each language.
748
- */
749
- async function geti18nMessages(key) {
750
- const result = { en: key };
751
- const match = key.match(/__MSG_(.*)__/);
752
- if (match !== null) {
753
- const i18nKey = match[1];
754
- const localesPath = getlocalesPath();
755
- if (fsExtra.pathExistsSync(localesPath)) {
756
- const langKeys = getEnableLangs(localesPath);
757
- await Promise.all(langKeys.map(async (langKey) => {
758
- const msg = await getMessage(langKey, i18nKey);
759
- if (msg !== null) {
760
- result[langKey] = msg;
761
- }
762
- }));
763
- }
764
- }
765
- return result;
766
- }
767
- /**
768
- * Get a message in a locale dir in the project.
769
- * @param key
770
- * @returns A message
771
- */
772
- async function getMessage(langKey, key) {
773
- const localesPath = getlocalesPath();
774
- const messagesJsonPath = path.resolve(localesPath, langKey, 'messages.json');
775
- const messagesJson = await fsExtra.readJSON(messagesJsonPath);
776
- const message = messagesJson[key].message;
777
- if (message !== undefined) {
778
- return message;
779
- }
780
- else {
781
- return null;
782
- }
783
- }
784
- /**
785
- * Get exist languages in a locale dir in the project.
786
- * @param localesPath
787
- * @returns Exist languages in a locale dir in the project.
788
- */
789
- function getEnableLangs(localesPath) {
790
- const langs = fs.readdirSync(localesPath);
791
- if (!langs.includes('en')) {
792
- throw consola.error(new Error('There is no en directory in the _locales directory.'));
793
- }
794
- return langs;
795
- }
796
- function getlocalesPath() {
797
- const config = container.get(TYPES.ConfigLoader).useConfig();
798
- const dir = path.dirname(config.manifest);
799
- return path.resolve(dir, '_locales');
800
- }
801
- /**
802
- * Copy a locales dir in the src to dist in the project.
803
- */
804
- async function copyLocales() {
805
- const localesPath = getlocalesPath();
806
- const config = container.get(TYPES.ConfigLoader).useConfig();
807
- if ((await fsExtra.pathExists(localesPath)) && config.output.chrome !== undefined) {
808
- await fsExtra.copy(localesPath, path.join(config.output.chrome, '_locales'));
809
- }
810
- }
811
-
812
- /**
813
- * Create post-build manifest from original manifest
814
- */
815
- let ManifestFactory = class ManifestFactory {
816
- manifestLoader;
817
- rawManifest;
818
- workspace;
819
- definedCustomKeysByCrxMonkeyInContentScrpt = [
820
- 'use_isolated_connection',
821
- 'userscript_direct_inject',
822
- 'trusted_inject',
823
- ];
824
- constructor(manifestLoader) {
825
- this.manifestLoader = manifestLoader;
826
- this.rawManifest = this.manifestLoader.useManifest();
827
- this.workspace = structuredClone(this.rawManifest);
828
- }
829
- /**
830
- * Reload manifest from loader.
831
- */
832
- initialize() {
833
- this.rawManifest = this.manifestLoader.useManifest();
834
- this.workspace = structuredClone(this.rawManifest);
835
- }
836
- /**
837
- * Extension Name -> [Dev] Extension Name
838
- */
839
- enableDevMode() {
840
- const i18nNameMatch = this.workspace.name.match(/__MSG_(.*)__/);
841
- if (i18nNameMatch !== null) {
842
- getMessage('en', i18nNameMatch[1]).then((msg) => {
843
- if (msg !== null) {
844
- this.workspace.name = '[Dev] ' + msg;
845
- }
846
- });
847
- }
848
- else {
849
- this.workspace.name = '[Dev] ' + this.workspace.name;
850
- }
851
- }
852
- /**
853
- * Output the current manifest data.
854
- * @returns
855
- */
856
- getWorkspace() {
857
- return this.absorbCustomKeys(this.workspace);
858
- }
859
- /**
860
- * Get manifest data absorbed defined custom keys by crx-monkey.
861
- * @returns
862
- */
863
- getResult() {
864
- return this.absorbCustomKeys(this.workspace);
865
- }
866
- resolve(sourcePath, targetPath) {
867
- // sw
868
- if (this.workspace.background !== undefined &&
869
- this.workspace.background.service_worker === sourcePath) {
870
- this.workspace.background = {
871
- ...this.workspace.background,
872
- service_worker: targetPath,
873
- };
874
- }
875
- // popup
876
- if (this.workspace.action !== undefined && this.workspace.action.default_popup === sourcePath) {
877
- this.workspace.action = {
878
- ...this.workspace.action,
879
- default_popup: targetPath,
880
- };
881
- }
882
- if (this.workspace.content_scripts !== undefined) {
883
- // content js
884
- this.workspace.content_scripts.forEach((script) => {
885
- if (script.js !== undefined) {
886
- script.js = script.js.map((js) => {
887
- if (js === sourcePath) {
888
- return targetPath;
889
- }
890
- else {
891
- return js;
892
- }
893
- });
894
- }
895
- // content css
896
- if (script.css !== undefined) {
897
- script.css = script.css.map((css) => {
898
- if (css === sourcePath) {
899
- return targetPath;
900
- }
901
- else {
902
- return css;
903
- }
904
- });
905
- }
906
- });
907
- }
908
- // Icons
909
- const icons = structuredClone(this.workspace.icons);
910
- if (icons !== undefined) {
911
- const newIcons = {
912
- ...icons,
913
- };
914
- Object.keys(icons).forEach((size) => {
915
- const sizeN = size;
916
- const icon = icons[sizeN];
917
- if (icon === sourcePath) {
918
- newIcons[sizeN] = targetPath;
919
- }
920
- });
921
- this.workspace.icons = newIcons;
922
- }
923
- }
924
- addContentScript(js, css, matches, world = 'ISOLATED', run_at = undefined) {
925
- if (this.workspace.content_scripts !== undefined) {
926
- this.workspace.content_scripts.push({
927
- matches,
928
- js,
929
- css,
930
- world,
931
- run_at,
932
- });
933
- }
934
- }
935
- absorbCustomKeys(original) {
936
- const result = structuredClone(original);
937
- if (original.content_scripts !== undefined && result.content_scripts !== undefined) {
938
- original.content_scripts.forEach((content_script, index) => {
939
- Object.keys(content_script).forEach((key) => {
940
- if (this.definedCustomKeysByCrxMonkeyInContentScrpt.includes(key)) {
941
- if (result.content_scripts !== undefined) {
942
- delete result.content_scripts[index][key];
943
- }
944
- }
945
- });
946
- });
947
- }
948
- return result;
949
- }
950
- setCsp(value) {
951
- if (this.workspace.content_security_policy === undefined) {
952
- this.workspace.content_security_policy = {
953
- extension_pages: value,
954
- };
955
- }
956
- else {
957
- this.workspace.content_security_policy.extension_pages = value;
958
- }
959
- }
960
- };
961
- ManifestFactory = __decorate([
962
- injectable(),
963
- __param(0, inject(TYPES.ManifestLoader)),
964
- __metadata("design:paramtypes", [ManifestLoader])
965
- ], ManifestFactory);
966
-
967
670
  let HMR = class HMR {
968
671
  sockServer;
969
- fileServer;
970
- manifestFactory;
971
672
  configLoader;
972
- constructor(sockServer, fileServer, manifestFactory, configLoader) {
673
+ // Record<entryPoint, buildResult>
674
+ storedResults = {};
675
+ constructor(sockServer, configLoader) {
973
676
  this.sockServer = sockServer;
974
- this.fileServer = fileServer;
975
- this.manifestFactory = manifestFactory;
976
677
  this.configLoader = configLoader;
977
678
  }
978
- enable() {
979
- this.manifestFactory.setCsp("script-src 'self'; script-src-elem 'self'");
679
+ setup() {
680
+ this.sockServer.addMsgListener((msg, sendResponse) => {
681
+ if (msg.type === 'request_result') {
682
+ // A HMR client requests being sent the build result.
683
+ const { content: { entryPoint }, } = msg;
684
+ if (this.storedResults[entryPoint] === undefined) {
685
+ throw new Error(`The build result of "${entryPoint}" does not found`);
686
+ }
687
+ const decoder = new TextDecoder();
688
+ const text = decoder.decode(this.storedResults[entryPoint]);
689
+ // Response build result to client
690
+ const response = {
691
+ type: 'request_result_response',
692
+ content: {
693
+ js: text,
694
+ },
695
+ };
696
+ sendResponse(response);
697
+ }
698
+ });
980
699
  }
981
700
  async dispatchResult(entry, buildResult) {
982
701
  const { output: { chrome }, } = this.configLoader.useConfig();
@@ -984,9 +703,13 @@ let HMR = class HMR {
984
703
  throw new Error('chrome');
985
704
  }
986
705
  const cacheFileName = this.getCacheFileName(entry);
987
- await fse.outputFile(resolve(chrome, cacheFileName), buildResult);
706
+ const decoder = new TextDecoder();
707
+ const decodedResult = decoder.decode(buildResult);
708
+ this.storedResults[entry] = buildResult;
709
+ await fse.outputFile(resolve(chrome, cacheFileName), decodedResult);
988
710
  this.sockServer.reload('HMR_' + entry, {
989
- js: cacheFileName,
711
+ js: decodedResult,
712
+ fileName: cacheFileName,
990
713
  });
991
714
  }
992
715
  getCacheFileName(entry) {
@@ -1001,12 +724,8 @@ let HMR = class HMR {
1001
724
  HMR = __decorate([
1002
725
  injectable(),
1003
726
  __param(0, inject(TYPES.SockServer)),
1004
- __param(1, inject(TYPES.FileServer)),
1005
- __param(2, inject(TYPES.ManifestFactory)),
1006
- __param(3, inject(TYPES.ConfigLoader)),
727
+ __param(1, inject(TYPES.ConfigLoader)),
1007
728
  __metadata("design:paramtypes", [SockServer,
1008
- FileServer,
1009
- ManifestFactory,
1010
729
  ConfigLoader])
1011
730
  ], HMR);
1012
731
 
@@ -1115,7 +834,7 @@ let CrxmBundler = class CrxmBundler {
1115
834
  Object.entries(hashs).map(async ([, hash]) => {
1116
835
  const filePath = absolutePaths[hash];
1117
836
  this.logger.dispatchDebug(filePath);
1118
- const onEndFirstBuild = () => {
837
+ const onEndFirstBuild = (result) => {
1119
838
  const newHashs = notSucceedFirstBuildHashs.filter((h) => h !== hash);
1120
839
  notSucceedFirstBuildHashs = newHashs;
1121
840
  if (notSucceedFirstBuildHashs.length == 0) {
@@ -1129,7 +848,7 @@ let CrxmBundler = class CrxmBundler {
1129
848
  }
1130
849
  async watchFile(hash, onEndFirstBuild) {
1131
850
  const absolutePaths = await this.getTargetAbsolutePaths();
1132
- const absolutePath = resolveFilePath(absolutePaths[hash]);
851
+ const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
1133
852
  const { usingPlugin } = this._targets[hash];
1134
853
  if (await fse.exists(absolutePath)) {
1135
854
  const { plugin, name } = usingPlugin.watch;
@@ -1144,9 +863,12 @@ let CrxmBundler = class CrxmBundler {
1144
863
  });
1145
864
  if (isFirst) {
1146
865
  isFirst = false;
1147
- onEndFirstBuild();
866
+ onEndFirstBuild(result);
1148
867
  }
1149
868
  };
869
+ if (typeof plugin !== 'function') {
870
+ throw new Error(`Plugin "${name}" is not function.`);
871
+ }
1150
872
  const watcher = await plugin(absolutePath, resultSender, this);
1151
873
  this.watchers.push(watcher);
1152
874
  this.logger.dispatchDebugStack(`🩹 [${name}] Registered plugin for ${chalk.gray('"' + absolutePath + '"')}`);
@@ -1161,7 +883,7 @@ let CrxmBundler = class CrxmBundler {
1161
883
  throw new Error(this.logger.dispatchErr(`hash "${hash}" is not registered with Bundler."`));
1162
884
  }
1163
885
  const absolutePaths = await this.getTargetAbsolutePaths();
1164
- const absolutePath = resolveFilePath(absolutePaths[hash]);
886
+ const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
1165
887
  this._compileResults[hash] = await target.usingPlugin.build.plugin(absolutePath, this);
1166
888
  return target;
1167
889
  }
@@ -1172,7 +894,7 @@ let CrxmBundler = class CrxmBundler {
1172
894
  const compileResults = {};
1173
895
  const absolutePaths = await this.getTargetAbsolutePaths();
1174
896
  await Promise.all(Object.keys(absolutePaths).map(async (hash) => {
1175
- const absolutePath = resolveFilePath(absolutePaths[hash]);
897
+ const absolutePath = resolveFilePath(absolutePaths[hash].absolute);
1176
898
  const { usingPlugin } = this._targets[hash];
1177
899
  if (await fse.exists(absolutePath)) {
1178
900
  compileResults[hash] = await usingPlugin.build.plugin(absolutePath, this);
@@ -1195,7 +917,7 @@ let CrxmBundler = class CrxmBundler {
1195
917
  const paths = {};
1196
918
  Object.keys(this._targets).map((hash) => {
1197
919
  const { entryPoint } = this._targets[hash];
1198
- paths[hash] = resolve(projectDir, entryPoint);
920
+ paths[hash] = { absolute: resolve(projectDir, entryPoint), entryPoint };
1199
921
  });
1200
922
  return paths;
1201
923
  }
@@ -1302,47 +1024,270 @@ let Watcher = class Watcher {
1302
1024
  }
1303
1025
  }
1304
1026
  /**
1305
- * Run on updated config file.
1027
+ * Run on updated config file.
1028
+ */
1029
+ async onUpdateConfig() {
1030
+ await this.configLoader.loadConfig();
1031
+ const manifestPath = this.getManifestPath();
1032
+ await this.manifestLoader.loadManifest();
1033
+ this.stopManifestWatch();
1034
+ await Promise.all(this.updateHandlers.map(async (h) => {
1035
+ await h('config');
1036
+ }));
1037
+ this.startManifestWatch(manifestPath);
1038
+ }
1039
+ /**
1040
+ * Run on updated manifest file.
1041
+ */
1042
+ async onUpdateManifest() {
1043
+ await this.manifestLoader.loadManifest();
1044
+ await Promise.all(this.updateHandlers.map(async (h) => {
1045
+ await h('manifest');
1046
+ }));
1047
+ }
1048
+ /**
1049
+ * Get manifest's filepath from config.
1050
+ * @returns
1051
+ */
1052
+ getManifestPath() {
1053
+ const confPath = this.configLoader.useConfigPath();
1054
+ const projectDir = dirname(confPath);
1055
+ const manifestPath = resolve(projectDir, this.configLoader.useConfig().manifest);
1056
+ return manifestPath;
1057
+ }
1058
+ };
1059
+ Watcher = __decorate([
1060
+ injectable(),
1061
+ __param(0, inject(TYPES.ConfigLoader)),
1062
+ __param(1, inject(TYPES.ManifestLoader)),
1063
+ __param(2, inject(TYPES.Logger)),
1064
+ __metadata("design:paramtypes", [ConfigLoader,
1065
+ ManifestLoader,
1066
+ Logger])
1067
+ ], Watcher);
1068
+
1069
+ /**
1070
+ * Get all messages each language in a locale dir in the project.
1071
+ * @param key
1072
+ * @returns All messages each language.
1073
+ */
1074
+ async function geti18nMessages(key) {
1075
+ const result = { en: key };
1076
+ const match = key.match(/__MSG_(.*)__/);
1077
+ if (match !== null) {
1078
+ const i18nKey = match[1];
1079
+ const localesPath = getlocalesPath();
1080
+ if (fsExtra.pathExistsSync(localesPath)) {
1081
+ const langKeys = getEnableLangs(localesPath);
1082
+ await Promise.all(langKeys.map(async (langKey) => {
1083
+ const msg = await getMessage(langKey, i18nKey);
1084
+ if (msg !== null) {
1085
+ result[langKey] = msg;
1086
+ }
1087
+ }));
1088
+ }
1089
+ }
1090
+ return result;
1091
+ }
1092
+ /**
1093
+ * Get a message in a locale dir in the project.
1094
+ * @param key
1095
+ * @returns A message
1096
+ */
1097
+ async function getMessage(langKey, key) {
1098
+ const localesPath = getlocalesPath();
1099
+ const messagesJsonPath = path.resolve(localesPath, langKey, 'messages.json');
1100
+ const messagesJson = await fsExtra.readJSON(messagesJsonPath);
1101
+ const message = messagesJson[key].message;
1102
+ if (message !== undefined) {
1103
+ return message;
1104
+ }
1105
+ else {
1106
+ return null;
1107
+ }
1108
+ }
1109
+ /**
1110
+ * Get exist languages in a locale dir in the project.
1111
+ * @param localesPath
1112
+ * @returns Exist languages in a locale dir in the project.
1113
+ */
1114
+ function getEnableLangs(localesPath) {
1115
+ const langs = fs.readdirSync(localesPath);
1116
+ if (!langs.includes('en')) {
1117
+ throw consola.error(new Error('There is no en directory in the _locales directory.'));
1118
+ }
1119
+ return langs;
1120
+ }
1121
+ function getlocalesPath() {
1122
+ const config = container.get(TYPES.ConfigLoader).useConfig();
1123
+ const dir = path.dirname(config.manifest);
1124
+ return path.resolve(dir, '_locales');
1125
+ }
1126
+ /**
1127
+ * Copy a locales dir in the src to dist in the project.
1128
+ */
1129
+ async function copyLocales() {
1130
+ const localesPath = getlocalesPath();
1131
+ const config = container.get(TYPES.ConfigLoader).useConfig();
1132
+ if ((await fsExtra.pathExists(localesPath)) && config.output.chrome !== undefined) {
1133
+ await fsExtra.copy(localesPath, path.join(config.output.chrome, '_locales'));
1134
+ }
1135
+ }
1136
+
1137
+ /**
1138
+ * Create post-build manifest from original manifest
1139
+ */
1140
+ let ManifestFactory = class ManifestFactory {
1141
+ manifestLoader;
1142
+ rawManifest;
1143
+ workspace;
1144
+ definedCustomKeysByCrxMonkeyInContentScrpt = [
1145
+ 'use_isolated_connection',
1146
+ 'userscript_direct_inject',
1147
+ 'trusted_inject',
1148
+ ];
1149
+ constructor(manifestLoader) {
1150
+ this.manifestLoader = manifestLoader;
1151
+ this.rawManifest = this.manifestLoader.useManifest();
1152
+ this.workspace = structuredClone(this.rawManifest);
1153
+ }
1154
+ /**
1155
+ * Reload manifest from loader.
1156
+ */
1157
+ initialize() {
1158
+ this.rawManifest = this.manifestLoader.useManifest();
1159
+ this.workspace = structuredClone(this.rawManifest);
1160
+ }
1161
+ /**
1162
+ * Extension Name -> [Dev] Extension Name
1306
1163
  */
1307
- async onUpdateConfig() {
1308
- await this.configLoader.loadConfig();
1309
- const manifestPath = this.getManifestPath();
1310
- await this.manifestLoader.loadManifest();
1311
- this.stopManifestWatch();
1312
- await Promise.all(this.updateHandlers.map(async (h) => {
1313
- await h('config');
1314
- }));
1315
- this.startManifestWatch(manifestPath);
1164
+ enableDevMode() {
1165
+ const i18nNameMatch = this.workspace.name.match(/__MSG_(.*)__/);
1166
+ if (i18nNameMatch !== null) {
1167
+ getMessage('en', i18nNameMatch[1]).then((msg) => {
1168
+ if (msg !== null) {
1169
+ this.workspace.name = '[Dev] ' + msg;
1170
+ }
1171
+ });
1172
+ }
1173
+ else {
1174
+ this.workspace.name = '[Dev] ' + this.workspace.name;
1175
+ }
1316
1176
  }
1317
1177
  /**
1318
- * Run on updated manifest file.
1178
+ * Output the current manifest data.
1179
+ * @returns
1319
1180
  */
1320
- async onUpdateManifest() {
1321
- await this.manifestLoader.loadManifest();
1322
- await Promise.all(this.updateHandlers.map(async (h) => {
1323
- await h('manifest');
1324
- }));
1181
+ getWorkspace() {
1182
+ return this.absorbCustomKeys(this.workspace);
1325
1183
  }
1326
1184
  /**
1327
- * Get manifest's filepath from config.
1185
+ * Get manifest data absorbed defined custom keys by crx-monkey.
1328
1186
  * @returns
1329
1187
  */
1330
- getManifestPath() {
1331
- const confPath = this.configLoader.useConfigPath();
1332
- const projectDir = dirname(confPath);
1333
- const manifestPath = resolve(projectDir, this.configLoader.useConfig().manifest);
1334
- return manifestPath;
1188
+ getResult() {
1189
+ return this.absorbCustomKeys(this.workspace);
1190
+ }
1191
+ resolve(sourcePath, targetPath) {
1192
+ // sw
1193
+ if (this.workspace.background !== undefined &&
1194
+ this.workspace.background.service_worker === sourcePath) {
1195
+ this.workspace.background = {
1196
+ ...this.workspace.background,
1197
+ service_worker: targetPath,
1198
+ };
1199
+ }
1200
+ // popup
1201
+ if (this.workspace.action !== undefined && this.workspace.action.default_popup === sourcePath) {
1202
+ this.workspace.action = {
1203
+ ...this.workspace.action,
1204
+ default_popup: targetPath,
1205
+ };
1206
+ }
1207
+ if (this.workspace.content_scripts !== undefined) {
1208
+ // content js
1209
+ this.workspace.content_scripts.forEach((script) => {
1210
+ if (script.js !== undefined) {
1211
+ script.js = script.js.map((js) => {
1212
+ if (js === sourcePath) {
1213
+ return targetPath;
1214
+ }
1215
+ else {
1216
+ return js;
1217
+ }
1218
+ });
1219
+ }
1220
+ // content css
1221
+ if (script.css !== undefined) {
1222
+ script.css = script.css.map((css) => {
1223
+ if (css === sourcePath) {
1224
+ return targetPath;
1225
+ }
1226
+ else {
1227
+ return css;
1228
+ }
1229
+ });
1230
+ }
1231
+ });
1232
+ }
1233
+ // Icons
1234
+ const icons = structuredClone(this.workspace.icons);
1235
+ if (icons !== undefined) {
1236
+ const newIcons = {
1237
+ ...icons,
1238
+ };
1239
+ Object.keys(icons).forEach((size) => {
1240
+ const sizeN = size;
1241
+ const icon = icons[sizeN];
1242
+ if (icon === sourcePath) {
1243
+ newIcons[sizeN] = targetPath;
1244
+ }
1245
+ });
1246
+ this.workspace.icons = newIcons;
1247
+ }
1248
+ }
1249
+ addContentScript(js, css, matches, world = 'ISOLATED', run_at = undefined) {
1250
+ if (this.workspace.content_scripts !== undefined) {
1251
+ this.workspace.content_scripts.push({
1252
+ matches,
1253
+ js,
1254
+ css,
1255
+ world,
1256
+ run_at,
1257
+ });
1258
+ }
1259
+ }
1260
+ absorbCustomKeys(original) {
1261
+ const result = structuredClone(original);
1262
+ if (original.content_scripts !== undefined && result.content_scripts !== undefined) {
1263
+ original.content_scripts.forEach((content_script, index) => {
1264
+ Object.keys(content_script).forEach((key) => {
1265
+ if (this.definedCustomKeysByCrxMonkeyInContentScrpt.includes(key)) {
1266
+ if (result.content_scripts !== undefined) {
1267
+ delete result.content_scripts[index][key];
1268
+ }
1269
+ }
1270
+ });
1271
+ });
1272
+ }
1273
+ return result;
1274
+ }
1275
+ setCsp(value) {
1276
+ if (this.workspace.content_security_policy === undefined) {
1277
+ this.workspace.content_security_policy = {
1278
+ extension_pages: value,
1279
+ };
1280
+ }
1281
+ else {
1282
+ this.workspace.content_security_policy.extension_pages = value;
1283
+ }
1335
1284
  }
1336
1285
  };
1337
- Watcher = __decorate([
1286
+ ManifestFactory = __decorate([
1338
1287
  injectable(),
1339
- __param(0, inject(TYPES.ConfigLoader)),
1340
- __param(1, inject(TYPES.ManifestLoader)),
1341
- __param(2, inject(TYPES.Logger)),
1342
- __metadata("design:paramtypes", [ConfigLoader,
1343
- ManifestLoader,
1344
- Logger])
1345
- ], Watcher);
1288
+ __param(0, inject(TYPES.ManifestLoader)),
1289
+ __metadata("design:paramtypes", [ManifestLoader])
1290
+ ], ManifestFactory);
1346
1291
 
1347
1292
  class Codeblock {
1348
1293
  _filePath;
@@ -2221,34 +2166,28 @@ function isolatedConnector(crxContentBuildId, config) {
2221
2166
  * However, due to design changes to support UserJS popups, the plugin no longer handles transpilation.
2222
2167
  * Instead, the HTML is now processed internally via popup/Popup.ts.
2223
2168
  */
2224
- const htmlBundler = {
2225
- name: 'HTML File loader',
2226
- plugin: async (filePath) => {
2227
- return new Promise((resolve, reject) => {
2228
- readFile(filePath, (err, data) => {
2229
- if (err !== null) {
2230
- reject(err);
2231
- }
2232
- else {
2233
- resolve(data);
2234
- }
2169
+ function htmlBundler() {
2170
+ return {
2171
+ name: 'HTML File loader',
2172
+ plugin: async (filePath) => {
2173
+ return new Promise((resolve, reject) => {
2174
+ readFile(filePath, (err, data) => {
2175
+ if (err !== null) {
2176
+ reject(err);
2177
+ }
2178
+ else {
2179
+ resolve(data);
2180
+ }
2181
+ });
2235
2182
  });
2236
- });
2237
- },
2238
- };
2239
- const htmlBundlerWatch = {
2240
- name: 'HTML File loader watch',
2241
- plugin: async (filePath, sendResult) => {
2242
- const watcher = watch(filePath);
2243
- readFile(filePath, (err, data) => {
2244
- if (err !== null) {
2245
- throw err;
2246
- }
2247
- else {
2248
- sendResult(data);
2249
- }
2250
- });
2251
- watcher.addListener('change', async () => {
2183
+ },
2184
+ };
2185
+ }
2186
+ function htmlBundlerWatch() {
2187
+ return {
2188
+ name: 'HTML File loader watch',
2189
+ plugin: async (filePath, sendResult) => {
2190
+ const watcher = watch(filePath);
2252
2191
  readFile(filePath, (err, data) => {
2253
2192
  if (err !== null) {
2254
2193
  throw err;
@@ -2257,14 +2196,24 @@ const htmlBundlerWatch = {
2257
2196
  sendResult(data);
2258
2197
  }
2259
2198
  });
2260
- });
2261
- return {
2262
- stop: async () => {
2263
- watcher.close();
2264
- },
2265
- };
2266
- },
2267
- };
2199
+ watcher.addListener('change', async () => {
2200
+ readFile(filePath, (err, data) => {
2201
+ if (err !== null) {
2202
+ throw err;
2203
+ }
2204
+ else {
2205
+ sendResult(data);
2206
+ }
2207
+ });
2208
+ });
2209
+ return {
2210
+ stop: async () => {
2211
+ watcher.close();
2212
+ },
2213
+ };
2214
+ },
2215
+ };
2216
+ }
2268
2217
 
2269
2218
  let Popup = class Popup {
2270
2219
  bundler;
@@ -2611,8 +2560,8 @@ let Popup = class Popup {
2611
2560
  async syncBundler(htmlEntry, diff) {
2612
2561
  // register html
2613
2562
  this.bundler.addTarget(htmlEntry, {
2614
- build: htmlBundler,
2615
- watch: htmlBundlerWatch,
2563
+ build: htmlBundler(),
2564
+ watch: htmlBundlerWatch(),
2616
2565
  }, 'html');
2617
2566
  // register script or css
2618
2567
  const result = [];
@@ -3527,6 +3476,82 @@ UserscriptRegisterer = __decorate([
3527
3476
  ConfigLoader])
3528
3477
  ], UserscriptRegisterer);
3529
3478
 
3479
+ /*
3480
+ /**
3481
+ * The server of send to script code.
3482
+ */
3483
+ let FileServer = class FileServer {
3484
+ configLoader;
3485
+ app;
3486
+ server = null;
3487
+ constructor(configLoader) {
3488
+ this.configLoader = configLoader;
3489
+ const { server: { host, port }, } = this.configLoader.useConfig();
3490
+ if (host === undefined || port === undefined) {
3491
+ throw new Error("Server host, port or websocket's port were not specificated");
3492
+ }
3493
+ this.app = express();
3494
+ }
3495
+ /**
3496
+ * Start server.
3497
+ * @returns
3498
+ */
3499
+ async start() {
3500
+ this.setup();
3501
+ const { server: { host, port }, } = this.configLoader.useConfig();
3502
+ if (host === undefined || port === undefined) {
3503
+ throw new Error("Server host, port or websocket's port were not specificated");
3504
+ }
3505
+ return new Promise((resolve) => {
3506
+ this.server = this.app.listen(port, host, () => {
3507
+ resolve(1);
3508
+ });
3509
+ });
3510
+ }
3511
+ async dispose() {
3512
+ if (this.server === null) {
3513
+ throw consola.error(new Error('Dispose can be used after Watch is started'));
3514
+ }
3515
+ this.server.close();
3516
+ this.server = null;
3517
+ }
3518
+ setup() {
3519
+ const { output: { chrome, userjs }, manifest, } = this.configLoader.useConfig();
3520
+ if (chrome === undefined || userjs === undefined) {
3521
+ throw new Error('');
3522
+ }
3523
+ this.app.get('/userscript', (req, res) => {
3524
+ let filepath = userjs;
3525
+ if (!isAbsolute(userjs)) {
3526
+ filepath = resolve(dirname(manifest), userjs);
3527
+ }
3528
+ if (fse.existsSync(filepath)) {
3529
+ res.sendFile(filepath);
3530
+ }
3531
+ else {
3532
+ res.send(400);
3533
+ }
3534
+ });
3535
+ this.app.get('/dev.user.js', (req, res) => {
3536
+ let filepath = userjs;
3537
+ if (!isAbsolute(userjs)) {
3538
+ filepath = resolve(dirname(manifest), dirname(userjs), 'dev.user.js');
3539
+ }
3540
+ if (fse.existsSync(filepath)) {
3541
+ res.sendFile(filepath);
3542
+ }
3543
+ else {
3544
+ res.send(400);
3545
+ }
3546
+ });
3547
+ }
3548
+ };
3549
+ FileServer = __decorate([
3550
+ injectable(),
3551
+ __param(0, inject(TYPES.ConfigLoader)),
3552
+ __metadata("design:paramtypes", [ConfigLoader])
3553
+ ], FileServer);
3554
+
3530
3555
  /**
3531
3556
  * DI container
3532
3557
  */
@@ -3588,6 +3613,7 @@ async function dev() {
3588
3613
  const userscriptHeaderFactory = container.get(TYPES.UserscriptHeaderFactory);
3589
3614
  const userscriptBundler = container.get(TYPES.UserscriptBundler);
3590
3615
  const sockServer = container.get(TYPES.SockServer);
3616
+ const hmr = container.get(TYPES.Hmr);
3591
3617
  const createDevClient = container.get(TYPES.CreateDevClient);
3592
3618
  const fileServer = container.get(TYPES.FileServer);
3593
3619
  await distributior.cleanupDist();
@@ -3595,6 +3621,7 @@ async function dev() {
3595
3621
  // The websocket server for hotreload.
3596
3622
  sockServer.setup();
3597
3623
  fileServer.start();
3624
+ hmr.setup();
3598
3625
  // Register all build targets for bundler from manifest.
3599
3626
  await registerer.registerAll();
3600
3627
  userscriptBundler.initialize();
@@ -3735,4 +3762,4 @@ if (cli.matchedCommand === undefined) {
3735
3762
  else {
3736
3763
  await cli.runMatchedCommand();
3737
3764
  }
3738
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvU29ja1NlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL3NlcnZlci9GaWxlU2VydmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvaTE4bi50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0RmFjdG9yeS50cyIsIi4uLy4uL3NyYy9ub2RlL0htci50cyIsIi4uLy4uL3NyYy9ub2RlL0NyeG1CdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvV2F0Y2hlci50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvQ29kZUJsb2NrLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Db2RlSW5qZWN0b3IudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRIZWFkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRCdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvc3cudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy91c2VyanMudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9jb2Rlcy9leHRlbnNpb24udHMiLCIuLi8uLi9zcmMvbm9kZS91dGlscy50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L0NyZWF0ZURldkNsaWVudC50cyIsIi4uLy4uL3NyYy9ub2RlL2lzb2xhdGVkQ29ubmVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvcGx1Z2lucy9odG1sQnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL3BvcHVwL1BvcHVwLnRzIiwiLi4vLi4vc3JjL25vZGUvRGlzdHJpYnV0aW9yLnRzIiwiLi4vLi4vc3JjL25vZGUvQnVuZGxlclJlZ2lzdGVyZXIudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L1VzZXJzY3JpcHRSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvaW52ZXJzaWZ5LmNvbmZpZy50cyIsIi4uLy4uL3NyYy9ub2RlL2Rldi50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwibmFtZXMiOlsiY3J5cHRvIiwicGFja2FnZUoiLCJmc0V4dHJhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXNDQTtBQUNPLFNBQVMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMxRCxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqSSxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkksU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFB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
3765
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uLy4uL3NyYy9ub2RlL2ZpbGUudHMiLCIuLi8uLi9zcmMvbm9kZS9Db25maWdMb2FkZXIudHMiLCIuLi8uLi9zcmMvbm9kZS90eXBlcy50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L01hbmlmZXN0TG9hZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFuaWZlc3QvTWFuaWZlc3RQYXJzZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9Mb2dnZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9zZXJ2ZXIvU29ja1NlcnZlci50cyIsIi4uLy4uL3NyYy9ub2RlL0htci50cyIsIi4uLy4uL3NyYy9ub2RlL0NyeG1CdW5kbGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvV2F0Y2hlci50cyIsIi4uLy4uL3NyYy9ub2RlL21hbmlmZXN0L2kxOG4udHMiLCIuLi8uLi9zcmMvbm9kZS9tYW5pZmVzdC9NYW5pZmVzdEZhY3RvcnkudHMiLCIuLi8uLi9zcmMvbm9kZS91c2Vyc2NyaXB0L0NvZGVCbG9jay50cyIsIi4uLy4uL3NyYy9ub2RlL3VzZXJzY3JpcHQvQ29kZUluamVjdG9yLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0SGVhZGVyLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0QnVuZGxlci50cyIsIi4uLy4uL3NyYy9ub2RlL2RldmVsb3BtZW50L2NvZGVzL3N3LnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvdXNlcmpzLnRzIiwiLi4vLi4vc3JjL25vZGUvZGV2ZWxvcG1lbnQvY29kZXMvZXh0ZW5zaW9uLnRzIiwiLi4vLi4vc3JjL25vZGUvdXRpbHMudHMiLCIuLi8uLi9zcmMvbm9kZS9kZXZlbG9wbWVudC9DcmVhdGVEZXZDbGllbnQudHMiLCIuLi8uLi9zcmMvbm9kZS9pc29sYXRlZENvbm5lY3Rvci50cyIsIi4uLy4uL3NyYy9ub2RlL3BsdWdpbnMvaHRtbEJ1bmRsZXIudHMiLCIuLi8uLi9zcmMvbm9kZS9wb3B1cC9Qb3B1cC50cyIsIi4uLy4uL3NyYy9ub2RlL0Rpc3RyaWJ1dGlvci50cyIsIi4uLy4uL3NyYy9ub2RlL0J1bmRsZXJSZWdpc3RlcmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvdXNlcnNjcmlwdC9Vc2Vyc2NyaXB0UmVnaXN0ZXJlci50cyIsIi4uLy4uL3NyYy9ub2RlL3NlcnZlci9GaWxlU2VydmVyLnRzIiwiLi4vLi4vc3JjL25vZGUvaW52ZXJzaWZ5LmNvbmZpZy50cyIsIi4uLy4uL3NyYy9ub2RlL2Rldi50cyIsIi4uLy4uL3NyYy9ub2RlL2J1aWxkLnRzIiwiLi4vLi4vc3JjL25vZGUvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XHJcbiAgICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcclxuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XHJcbiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XHJcbiAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICB2YXIgYXIgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xyXG4gICAgICAgIHJldHVybiBhcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gb3duS2V5cyhvKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xyXG4gICAgICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhc3luYykge1xyXG4gICAgICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcblxyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIHIsIHMgPSAwO1xyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoci5kaXNwb3NlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHMgfD0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgZmFpbChlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dCgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcclxuICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fZXNEZWNvcmF0ZTogX19lc0RlY29yYXRlLFxyXG4gICAgX19ydW5Jbml0aWFsaXplcnM6IF9fcnVuSW5pdGlhbGl6ZXJzLFxyXG4gICAgX19wcm9wS2V5OiBfX3Byb3BLZXksXHJcbiAgICBfX3NldEZ1bmN0aW9uTmFtZTogX19zZXRGdW5jdGlvbk5hbWUsXHJcbiAgICBfX21ldGFkYXRhOiBfX21ldGFkYXRhLFxyXG4gICAgX19hd2FpdGVyOiBfX2F3YWl0ZXIsXHJcbiAgICBfX2dlbmVyYXRvcjogX19nZW5lcmF0b3IsXHJcbiAgICBfX2NyZWF0ZUJpbmRpbmc6IF9fY3JlYXRlQmluZGluZyxcclxuICAgIF9fZXhwb3J0U3RhcjogX19leHBvcnRTdGFyLFxyXG4gICAgX192YWx1ZXM6IF9fdmFsdWVzLFxyXG4gICAgX19yZWFkOiBfX3JlYWQsXHJcbiAgICBfX3NwcmVhZDogX19zcHJlYWQsXHJcbiAgICBfX3NwcmVhZEFycmF5czogX19zcHJlYWRBcnJheXMsXHJcbiAgICBfX3NwcmVhZEFycmF5OiBfX3NwcmVhZEFycmF5LFxyXG4gICAgX19hd2FpdDogX19hd2FpdCxcclxuICAgIF9fYXN5bmNHZW5lcmF0b3I6IF9fYXN5bmNHZW5lcmF0b3IsXHJcbiAgICBfX2FzeW5jRGVsZWdhdG9yOiBfX2FzeW5jRGVsZWdhdG9yLFxyXG4gICAgX19hc3luY1ZhbHVlczogX19hc3luY1ZhbHVlcyxcclxuICAgIF9fbWFrZVRlbXBsYXRlT2JqZWN0OiBfX21ha2VUZW1wbGF0ZU9iamVjdCxcclxuICAgIF9faW1wb3J0U3RhcjogX19pbXBvcnRTdGFyLFxyXG4gICAgX19pbXBvcnREZWZhdWx0OiBfX2ltcG9ydERlZmF1bHQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldDogX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRJbjogX19jbGFzc1ByaXZhdGVGaWVsZEluLFxyXG4gICAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6IF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxyXG4gICAgX19kaXNwb3NlUmVzb3VyY2VzOiBfX2Rpc3Bvc2VSZXNvdXJjZXMsXHJcbiAgICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjogX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXHJcbn07XHJcbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwibmFtZXMiOlsiY3J5cHRvIiwicGFja2FnZUoiLCJmc0V4dHJhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXNDQTtBQUNPLFNBQVMsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMxRCxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqSSxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkksU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFB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