123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/script/utils/AssetsBundleMgr.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
- cc._RF.push(module, '00419U23F9CII7KkG7MblBt', 'AssetsBundleMgr');
- // script/utils/AssetsBundleMgr.ts
- "use strict";
- // 预加载某个bundle
- // 释放某个bundle,并清理相关的UI
- // 打开UI前,根据其归属bundle加载后再打开
- // 同一个bundle下的图片,预制体,放在一个文件夹下(脚本不可放在bundle下)
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- var Load_1 = require("./Load");
- var AssetsBundleMgr = /** @class */ (function () {
- function AssetsBundleMgr() {
- }
- // //bundle预加载
- // public static preloadBundle(bundleName: string) {
- // if (this.bundleList[bundleName] != null) {
- // return
- // }
- // cc.assetManager.loadBundle(bundleName, (err, bundle: cc.AssetManager.Bundle) => {
- // if (err) {
- // console.warn("bundle预加载失败: " + bundleName)
- // return
- // }
- // this.bundleList[bundleName] = bundle
- // })
- // }
- /** 获取缓存中的资源 */
- AssetsBundleMgr.get = function (bundleKey, path, type) {
- if (!cc.assetManager.getBundle(bundleKey))
- return null;
- return cc.assetManager.getBundle(bundleKey).get(path, type);
- };
- //加载bundle
- AssetsBundleMgr.loadBundle = function (bundleName, callback) {
- var _this = this;
- if (callback === void 0) { callback = function (error, bundle) { }; }
- if (this.bundleList[bundleName] != null) {
- callback(null, this.bundleList[bundleName]);
- }
- else {
- cc.assetManager.loadBundle(bundleName, function (err, bundle) {
- if (err) {
- callback(err, null);
- return;
- }
- _this.bundleList[bundleName] = bundle;
- callback(null, bundle);
- });
- }
- };
- // 加载bundle中的prefab
- AssetsBundleMgr.loadBundlePrefab = function (url, callback) {
- var _this = this;
- if (callback === void 0) { callback = function (error, prefab) { }; }
- var bundleName = url.split("/")[0];
- var realUrl = url.slice(url.indexOf("/") + 1);
- if (this.bundleList[bundleName] != null) {
- this.bundleList[bundleName].load(realUrl, cc.Prefab, function (err, prefab) {
- if (err) {
- callback(err, null);
- return;
- }
- callback(null, prefab);
- });
- }
- else {
- cc.assetManager.loadBundle(bundleName, function (err, bundle) {
- if (err) {
- callback(err, null);
- return;
- }
- _this.bundleList[bundleName] = bundle;
- _this.bundleList[bundleName].load(realUrl, cc.Prefab, function (err, prefab) {
- if (err) {
- callback(err, null);
- return;
- }
- callback(null, prefab);
- });
- });
- }
- };
- /** 同步加载bundle中的prefab */
- AssetsBundleMgr.loadAsynBundlePrefab = function (url) {
- return __awaiter(this, void 0, Promise, function () {
- var _this = this;
- return __generator(this, function (_a) {
- return [2 /*return*/, new Promise(function (resolve, reject) {
- var bundleName = url.split("/")[0];
- var realUrl = url.slice(url.indexOf("/") + 1);
- if (_this.bundleList[bundleName] != null) {
- _this.bundleList[bundleName].load(realUrl, cc.Prefab, function (err, prefab) {
- if (err) {
- reject(null);
- return;
- }
- resolve(prefab);
- });
- }
- else {
- cc.assetManager.loadBundle(bundleName, function (err, bundle) {
- if (err) {
- reject(null);
- return;
- }
- _this.bundleList[bundleName] = bundle;
- _this.bundleList[bundleName].load(realUrl, cc.Prefab, function (err, prefab) {
- if (err) {
- reject(null);
- return;
- }
- resolve(prefab);
- });
- });
- }
- })];
- });
- });
- };
- // 加载bundle中的资源
- AssetsBundleMgr.loadBundleAsset = function (url, T, callback) {
- var _this = this;
- var bundleName = url.split("/")[0];
- var realUrl = url.slice(url.indexOf("/") + 1);
- cc.assetManager.loadBundle(bundleName, function (err, bundle) {
- if (err) {
- callback(err, null);
- return;
- }
- _this.bundleList[bundleName] = bundle;
- _this.bundleList[bundleName].load(realUrl, T, function (err, asset) {
- if (err) {
- callback(err, null);
- return;
- }
- callback(null, asset);
- });
- });
- };
- // 加载bundle中的资源文件夹
- AssetsBundleMgr.loadBundleAssetDir = function (url, callback) {
- var _this = this;
- if (callback === void 0) { callback = function (error, asset) { }; }
- var bundleName = url.split("/")[0];
- var realUrl = url.slice(url.indexOf("/") + 1);
- cc.assetManager.loadBundle(bundleName, function (err, bundle) {
- if (err) {
- callback(err, null);
- return;
- }
- _this.bundleList[bundleName] = bundle;
- _this.bundleList[bundleName].loadDir(realUrl, function (err, assets) {
- if (err) {
- callback(err, null);
- return;
- }
- callback(null, assets);
- });
- });
- };
- //释放单个bundle
- AssetsBundleMgr.releaseBundle = function (bundleName) {
- if (this.bundleList[bundleName] != null) {
- console.log("releaseBundle:" + bundleName);
- this.bundleList[bundleName].releaseAll();
- Load_1.default.clearByBundle(bundleName);
- delete this.bundleList[bundleName];
- }
- };
- //释放所有bundle
- AssetsBundleMgr.releaseAllBundle = function () {
- for (var bundleName in this.bundleList) {
- console.log("releaseBundle:" + bundleName);
- var element = this.bundleList[bundleName];
- element.releaseAll();
- Load_1.default.clearByBundle(bundleName);
- }
- this.bundleList = {};
- };
- AssetsBundleMgr.bundleList = {};
- return AssetsBundleMgr;
- }());
- exports.default = AssetsBundleMgr;
- cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvdXRpbHMvQXNzZXRzQnVuZGxlTWdyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxjQUFjO0FBQ2Qsc0JBQXNCO0FBQ3RCLDBCQUEwQjtBQUMxQiw0Q0FBNEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVDLCtCQUF5QjtBQUV6QjtJQUFBO0lBbUtBLENBQUM7SUEvSkcsY0FBYztJQUNkLG9EQUFvRDtJQUNwRCxpREFBaUQ7SUFDakQsaUJBQWlCO0lBQ2pCLFFBQVE7SUFDUix3RkFBd0Y7SUFDeEYscUJBQXFCO0lBQ3JCLHlEQUF5RDtJQUN6RCxxQkFBcUI7SUFDckIsWUFBWTtJQUNaLCtDQUErQztJQUMvQyxTQUFTO0lBQ1QsSUFBSTtJQUVKLGVBQWU7SUFDRCxtQkFBRyxHQUFqQixVQUFzQyxTQUFpQixFQUFFLElBQVksRUFBRSxJQUFVO1FBQzdFLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN2RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFVBQVU7SUFDSSwwQkFBVSxHQUF4QixVQUF5QixVQUFrQixFQUFFLFFBQXlEO1FBQXRHLGlCQWFDO1FBYjRDLHlCQUFBLEVBQUEscUJBQVksS0FBSyxFQUFFLE1BQThCLElBQU8sQ0FBQztRQUNsRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO1NBQzlDO2FBQU07WUFDSCxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFV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5p+Q5LiqYnVuZGxlXG4vLyDph4rmlL7mn5DkuKpidW5kbGUs5bm25riF55CG55u45YWz55qEVUlcbi8vIOaJk+W8gFVJ5YmNLOagueaNruWFtuW9kuWxnmJ1bmRsZeWKoOi9veWQjuWGjeaJk+W8gFxuLy8g5ZCM5LiA5LiqYnVuZGxl5LiL55qE5Zu+54mHLOmihOWItuS9kyzmlL7lnKjkuIDkuKrmlofku7blpLnkuIso6ISa5pys5LiN5Y+v5pS+5ZyoYnVuZGxl5LiLKVxuXG5pbXBvcnQgTG9hZCBmcm9tIFwiLi9Mb2FkXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXNzZXRzQnVuZGxlTWdyIHtcblxuICAgIHByaXZhdGUgc3RhdGljIGJ1bmRsZUxpc3Q6IHsgW2tleTogc3RyaW5nXTogY2MuQXNzZXRNYW5hZ2VyLkJ1bmRsZSB9ID0ge31cblxuICAgIC8vIC8vYnVuZGxl6aKE5Yqg6L29XG4gICAgLy8gcHVibGljIHN0YXRpYyBwcmVsb2FkQnVuZGxlKGJ1bmRsZU5hbWU6IHN0cmluZykge1xuICAgIC8vICAgICBpZiAodGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdICE9IG51bGwpIHtcbiAgICAvLyAgICAgICAgIHJldHVyblxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQnVuZGxlKGJ1bmRsZU5hbWUsIChlcnIsIGJ1bmRsZTogY2MuQXNzZXRNYW5hZ2VyLkJ1bmRsZSkgPT4ge1xuICAgIC8vICAgICAgICAgaWYgKGVycikge1xuICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUud2FybihcImJ1bmRsZemihOWKoOi9veWksei0pTogXCIgKyBidW5kbGVOYW1lKVxuICAgIC8vICAgICAgICAgICAgIHJldHVyblxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdID0gYnVuZGxlXG4gICAgLy8gICAgIH0pXG4gICAgLy8gfVxuXG4gICAgLyoqIOiOt+WPlue8k+WtmOS4reeahOi1hOa6kCAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0PFQgZXh0ZW5kcyBjYy5Bc3NldD4oYnVuZGxlS2V5OiBzdHJpbmcsIHBhdGg6IHN0cmluZywgdHlwZT86IGFueSk6IFQgfCBudWxsIHtcbiAgICAgICAgaWYgKCFjYy5hc3NldE1hbmFnZXIuZ2V0QnVuZGxlKGJ1bmRsZUtleSkpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gY2MuYXNzZXRNYW5hZ2VyLmdldEJ1bmRsZShidW5kbGVLZXkpLmdldChwYXRoLCB0eXBlKTtcbiAgICB9XG5cbiAgICAvL+WKoOi9vWJ1bmRsZVxuICAgIHB1YmxpYyBzdGF0aWMgbG9hZEJ1bmRsZShidW5kbGVOYW1lOiBzdHJpbmcsIGNhbGxiYWNrID0gKGVycm9yLCBidW5kbGU6IGNjLkFzc2V0TWFuYWdlci5CdW5kbGUpID0+IHsgfSkge1xuICAgICAgICBpZiAodGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQnVuZGxlKGJ1bmRsZU5hbWUsIChlcnIsIGJ1bmRsZTogY2MuQXNzZXRNYW5hZ2VyLkJ1bmRsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBudWxsKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdID0gYnVuZGxlXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgYnVuZGxlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyDliqDovb1idW5kbGXkuK3nmoRwcmVmYWJcbiAgICBwdWJsaWMgc3RhdGljIGxvYWRCdW5kbGVQcmVmYWIodXJsOiBzdHJpbmcsIGNhbGxiYWNrID0gKGVycm9yLCBwcmVmYWI6IGNjLlByZWZhYikgPT4geyB9KSB7XG4gICAgICAgIGxldCBidW5kbGVOYW1lID0gdXJsLnNwbGl0KFwiL1wiKVswXVxuICAgICAgICBsZXQgcmVhbFVybCA9IHVybC5zbGljZSh1cmwuaW5kZXhPZihcIi9cIikgKyAxKVxuXG4gICAgICAgIGlmICh0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdLmxvYWQocmVhbFVybCwgY2MuUHJlZmFiLCAoZXJyLCBwcmVmYWI6IGNjLlByZWZhYikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBudWxsKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgcHJlZmFiKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkQnVuZGxlKGJ1bmRsZU5hbWUsIChlcnIsIGJ1bmRsZTogY2MuQXNzZXRNYW5hZ2VyLkJ1bmRsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBudWxsKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdID0gYnVuZGxlXG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdLmxvYWQocmVhbFVybCwgY2MuUHJlZmFiLCAoZXJyLCBwcmVmYWI6IGNjLlByZWZhYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBwcmVmYWIpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiog5ZCM5q2l5Yqg6L29YnVuZGxl5Lit55qEcHJlZmFiICovXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyBsb2FkQXN5bkJ1bmRsZVByZWZhYih1cmw6IHN0cmluZyk6IFByb21pc2U8Y2MuUHJlZmFiPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBsZXQgYnVuZGxlTmFtZSA9IHVybC5zcGxpdChcIi9cIilbMF1cbiAgICAgICAgICAgIGxldCByZWFsVXJsID0gdXJsLnNsaWNlKHVybC5pbmRleE9mKFwiL1wiKSArIDEpXG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXS5sb2FkKHJlYWxVcmwsIGNjLlByZWZhYiwgKGVyciwgcHJlZmFiOiBjYy5QcmVmYWIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShwcmVmYWIpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoYnVuZGxlTmFtZSwgKGVyciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXSA9IGJ1bmRsZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0ubG9hZChyZWFsVXJsLCBjYy5QcmVmYWIsIChlcnIsIHByZWZhYjogY2MuUHJlZmFiKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShwcmVmYWIpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g5Yqg6L29YnVuZGxl5Lit55qE6LWE5rqQXG4gICAgcHVibGljIHN0YXRpYyBsb2FkQnVuZGxlQXNzZXQ8VCBleHRlbmRzIGNjLkFzc2V0Pih1cmw6IHN0cmluZywgVCwgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIGxldCBidW5kbGVOYW1lID0gdXJsLnNwbGl0KFwiL1wiKVswXVxuICAgICAgICBsZXQgcmVhbFVybCA9IHVybC5zbGljZSh1cmwuaW5kZXhPZihcIi9cIikgKyAxKVxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZEJ1bmRsZShidW5kbGVOYW1lLCAoZXJyLCBidW5kbGU6IGNjLkFzc2V0TWFuYWdlci5CdW5kbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0gPSBidW5kbGVcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXS5sb2FkKHJlYWxVcmwsIFQsIChlcnIsIGFzc2V0OiBUKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIG51bGwpXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBhc3NldClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfVxuICAgIC8vIOWKoOi9vWJ1bmRsZeS4reeahOi1hOa6kOaWh+S7tuWkuVxuICAgIHB1YmxpYyBzdGF0aWMgbG9hZEJ1bmRsZUFzc2V0RGlyKHVybDogc3RyaW5nLCBjYWxsYmFjayA9IChlcnJvciwgYXNzZXQ6IGNjLkFzc2V0W10pID0+IHsgfSkge1xuICAgICAgICBsZXQgYnVuZGxlTmFtZSA9IHVybC5zcGxpdChcIi9cIilbMF1cbiAgICAgICAgbGV0IHJlYWxVcmwgPSB1cmwuc2xpY2UodXJsLmluZGV4T2YoXCIvXCIpICsgMSlcbiAgICAgICAgY2MuYXNzZXRNYW5hZ2VyLmxvYWRCdW5kbGUoYnVuZGxlTmFtZSwgKGVyciwgYnVuZGxlOiBjYy5Bc3NldE1hbmFnZXIuQnVuZGxlKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBudWxsKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdID0gYnVuZGxlXG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0ubG9hZERpcihyZWFsVXJsLCAoZXJyLCBhc3NldHM6IGNjLkFzc2V0W10pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgbnVsbClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGFzc2V0cylcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLy/ph4rmlL7ljZXkuKpidW5kbGVcbiAgICBwdWJsaWMgc3RhdGljIHJlbGVhc2VCdW5kbGUoYnVuZGxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1bmRsZUxpc3RbYnVuZGxlTmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJyZWxlYXNlQnVuZGxlOlwiICsgYnVuZGxlTmFtZSlcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXS5yZWxlYXNlQWxsKClcbiAgICAgICAgICAgIExvYWQuY2xlYXJCeUJ1bmRsZShidW5kbGVOYW1lKVxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYnVuZGxlTGlzdFtidW5kbGVOYW1lXVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy/ph4rmlL7miYDmnIlidW5kbGVcbiAgICBwdWJsaWMgc3RhdGljIHJlbGVhc2VBbGxCdW5kbGUoKSB7XG4gICAgICAgIGZvciAoY29uc3QgYnVuZGxlTmFtZSBpbiB0aGlzLmJ1bmRsZUxpc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVsZWFzZUJ1bmRsZTpcIiArIGJ1bmRsZU5hbWUpXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5idW5kbGVMaXN0W2J1bmRsZU5hbWVdXG4gICAgICAgICAgICBlbGVtZW50LnJlbGVhc2VBbGwoKVxuICAgICAgICAgICAgTG9hZC5jbGVhckJ5QnVuZGxlKGJ1bmRsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5idW5kbGVMaXN0ID0ge31cbiAgICB9XG5cbn1cbiJdfQ==
|