WaterControl/temp/quick-scripts/dst/assets/Script/ControlManager.js
2024-08-07 19:03:37 +08:00

211 lines
23 KiB
JavaScript

(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/Script/ControlManager.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, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager');
// Script/ControlManager.ts
"use strict";
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var NewClass = /** @class */ (function (_super) {
__extends(NewClass, _super);
function NewClass() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.Map = null;
_this.tip = null;
_this.reinforce = null;
_this.soil = null;
return _this;
// update (dt) {}
}
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
NewClass.prototype.start = function () {
this.tipArray = [];
this.controlArray = [];
this.canTouch = true;
this.Reinforce = false;
this.Soil = false;
};
NewClass.prototype.setPosition = function (tip) {
tip.setPosition(30, -35);
if (this.tipArray.length > 0) {
var length = this.tipArray.length + 1;
var posY = Math.ceil(length / 8) - 1;
var posX = length - Math.floor(posY) * 8 - 1;
tip.setPosition(30 + 48 * posX, -35 - 48 * posY);
}
};
//清空所有
NewClass.prototype.removeAllTip = function () {
if (!this.canTouch)
return;
if (this.tipArray.length > 0) {
cc.fx.AudioManager._instance.playEffect("qingkong", null);
for (var i = 0; i < this.tipArray.length; i++) {
var tip = this.tipArray[i];
tip.active = false;
tip.removeFromParent(this.Map);
tip = null;
}
this.tipArray = [];
this.controlArray = [];
var drawingReset = cc.fx.GameConfig.CLICK_DATA.drawingReset + 1;
cc.fx.GameConfig.CLICK_SET("drawingReset", drawingReset);
cc.fx.Notifications.emit(cc.fx.Message.removeTip, "remove");
}
};
//撤回一步
NewClass.prototype.back_Click = function () {
if (!this.canTouch)
return;
if (this.tipArray.length > 0) {
cc.fx.AudioManager._instance.playEffect("chehui", null);
var tip = this.tipArray[this.tipArray.length - 1];
tip.active = false;
tip.removeFromParent(this.Map);
tip = null;
this.tipArray.pop();
this.controlArray.pop();
var drawingBack = cc.fx.GameConfig.CLICK_DATA.drawingBack + 1;
cc.fx.GameConfig.CLICK_SET("drawingBack", drawingBack);
cc.fx.Notifications.emit(cc.fx.Message.removeTip, "back");
}
};
//点击事件
NewClass.prototype.btn_Click = function (target, data) {
var GameManager = this.node.parent.getComponent("GameManager");
if (GameManager.btnClick == true) {
GameManager.btnClick = false;
cc.fx.Notifications.emit(cc.fx.Message.guideNext);
}
cc.fx.Notifications.emit(cc.fx.Message.control, data);
if (!this.canTouch)
return;
var prefab = this.tip;
if (data == "reinforce" || data == "soil") {
prefab = this[data];
if (data == "reinforce") {
if (this.Reinforce) {
this.Reinforce = false;
this.back_Click();
return;
}
else {
cc.fx.AudioManager._instance.playEffect("jineng", null);
this.Reinforce = true;
this.Soil = false;
}
}
else if (data == "soil") {
if (this.Soil) {
this.Soil = false;
this.back_Click();
return;
}
else {
cc.fx.AudioManager._instance.playEffect("jineng", null);
this.Soil = true;
this.Reinforce = false;
}
}
}
else {
cc.fx.AudioManager._instance.playEffect("fangxiang", null);
this.Reinforce = false;
this.Soil = false;
}
var tip = cc.instantiate(prefab);
if (data == "up")
tip.angle = 180;
if (data == "left")
tip.angle = -90;
if (data == "right")
tip.angle = 90;
tip.parent = this.Map;
if (this.controlArray[this.controlArray.length - 1] == "reinforce" ||
this.controlArray[this.controlArray.length - 1] == "soil") {
if (data == "reinforce" || data == "soil") {
this.tipArray[this.tipArray.length - 1].removeFromParent();
this.tipArray[this.tipArray.length - 1] = null;
this.tipArray.pop();
this.controlArray.pop();
}
}
this.setPosition(tip);
this.tipArray.push(tip);
this.controlArray.push(data);
};
//点击开始 创建河道
NewClass.prototype.start_Click = function () {
if (!this.canTouch)
return;
this.canTouch = false;
cc.fx.AudioManager._instance.playEffect("build", null);
cc.fx.Notifications.emit(cc.fx.Message.startGame, this.controlArray);
};
__decorate([
property(cc.Node)
], NewClass.prototype, "Map", void 0);
__decorate([
property(cc.Prefab)
], NewClass.prototype, "tip", void 0);
__decorate([
property(cc.Prefab)
], NewClass.prototype, "reinforce", void 0);
__decorate([
property(cc.Prefab)
], NewClass.prototype, "soil", void 0);
NewClass = __decorate([
ccclass
], NewClass);
return NewClass;
}(cc.Component));
exports.default = NewClass;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQWdKQztRQTdJRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQXNJdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUEvSEcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFN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UUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7K0NBQ1E7SUFFNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzswQ0FDRztJQVROLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FnSjVCO0lBQUQsZUFBQztDQWhKRCxBQWdKQyxDQWhKcUMsRUFBRSxDQUFDLFNBQVMsR0FnSmpEO2tCQWhKb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgTWFwOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICB0aXA6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcmVpbmZvcmNlOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHNvaWw6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBcclxuXHJcbiAgICB0aXBBcnJheTphbnk7XHJcbiAgICBjb250cm9sQXJyYXk6YW55O1xyXG4gICAgY2FuVG91Y2g6Ym9vbGVhbjtcclxuICAgIFJlaW5mb3JjZTpib29sZWFuO1xyXG4gICAgU29pbDpib29sZWFuO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UG9zaXRpb24odGlwKXtcclxuICAgICAgICB0aXAuc2V0UG9zaXRpb24oMzAsLTM1KTtcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICBsZXQgbGVuZ3RoID0gdGhpcy50aXBBcnJheS5sZW5ndGgrMTtcclxuICAgICAgICAgICAgbGV0IHBvc1kgPSBNYXRoLmNlaWwobGVuZ3RoLzgpIC0gMTtcclxuICAgICAgICAgICAgbGV0IHBvc1ggPSBsZW5ndGggLSBNYXRoLmZsb29yKHBvc1kpKjggLSAxO1xyXG4gICAgICAgICAgICB0aXAuc2V0UG9zaXRpb24oMzAgKyA0OCpwb3NYLC0zNSAtNDgqcG9zWSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/mkqTlm57kuIDmraVcclxuICAgIGJhY2tfQ2xpY2soKXtcclxuICAgICAgICBpZighdGhpcy5jYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImNoZWh1aVwiLG51bGwpO1xyXG4gICAgICAgICAgICBsZXQgdGlwID0gdGhpcy50aXBBcnJheVt0aGlzLnRpcEFycmF5Lmxlbmd0aC0xXTtcclxuICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aXAucmVtb3ZlRnJvbVBhcmVudCh0aGlzLk1hcCk7XHJcbiAgICAgICAgICAgIHRpcCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMudGlwQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICB2YXIgZHJhd2luZ0JhY2sgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ0JhY2sgKyAxO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX1NFVChcImRyYXdpbmdCYWNrXCIsZHJhd2luZ0JhY2spO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJiYWNrXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/ngrnlh7vlvIDlp4sg5Yib5bu65rKz6YGTXHJcbiAgICBzdGFydF9DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImJ1aWxkXCIsbnVsbCk7XHJcbiAgICAgICAgY2MuZnguTm90aWZpY2F0aW9ucy5lbWl0KGNjLmZ4Lk1lc3NhZ2Uuc3RhcnRHYW1lLHRoaXMuY29udHJvbEFycmF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ==