ShenNong_Simple/temp/quick-scripts/dst/assets/Script/GuideManager.js
2024-10-30 15:28:42 +08:00

322 lines
41 KiB
JavaScript

(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/Script/GuideManager.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, 'effe2nlNnBES4H9tFM4r38Z', 'GuideManager');
// Script/GuideManager.ts
"use strict";
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 GuideManager = /** @class */ (function (_super) {
__extends(GuideManager, _super);
function GuideManager() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.Tip = null;
_this.FoodPlist = null;
_this.Btn_New = null;
_this.Btn_Old = null;
_this.Plant = null;
return _this;
}
GuideManager.prototype.onLoad = function () {
this.custom = 1;
};
GuideManager.prototype.start = function () {
this.fit();
};
GuideManager.prototype.fit = function () {
var jg = cc.fx.GameTool.setFit();
if (!jg) {
}
};
//初始化数据
GuideManager.prototype.init = function () {
this.voiceSpriteFrame = this.Plant.getChildByName("icon").getComponent(cc.Sprite).spriteFrame;
"";
this.node.getChildByName("nextBtn").active = false;
var name = cc.fx.GameConfig.GM_INFO.gameId + "_guide";
if (cc.fx.StorageMessage.getStorage(name) != null)
cc.fx.GameConfig.GM_INFO.guide = cc.fx.StorageMessage.getStorage(name);
if (cc.fx.GameConfig.GM_INFO.guide == false) {
this.node.getChildByName("jumpBtn").active = true;
cc.tween(this.node.getChildByName("jumpBtn"))
.to(0.35, { opacity: 255 })
.start();
}
var tip = cc.fx.tipType.tipOne;
var label = this.node.getChildByName("tip1").getComponent(cc.Label);
cc.fx.GameTool.typingAni(label, tip, this.startGame.bind(this), this);
this.initData();
};
GuideManager.prototype.initData = function () {
this.customData = [
{
"item": "putao",
"type": 1,
"right": 1,
},
{
"item": "taozi",
"type": 2,
"right": 1,
},
{
"item": "putao",
"type": 2,
"right": 2,
},
{
"item": "taozi",
"type": 1,
"right": 2,
}
];
};
GuideManager.prototype.passVoice = function () {
var _this = this;
// cc.fx.AudioManager._instance.playMusicGame();
var voice = this.node.getChildByName("voiceTip");
voice.getChildByName("startBtn").getComponent(cc.Button).interactable = false;
voice.getChildByName("playBtn").getComponent(cc.Button).interactable = false;
cc.tween(voice)
.to(0.5, { opacity: 0 })
.call(function () {
voice.active = false;
})
.start();
setTimeout(function () {
_this.init();
}, 1000);
};
GuideManager.prototype.playVoice = function () {
cc.fx.AudioManager._instance.playEffect("taozi_audio", null);
};
GuideManager.prototype.jumpClick = function () {
cc.director.loadScene("GameScene");
};
GuideManager.prototype.nextClick = function () {
var _this = this;
//第一步
this.node.getChildByName("nextBtn").active = false;
var label = this.node.getChildByName("tip1").getComponent(cc.Label);
if (this.custom == 0) {
cc.tween(this.node.getChildByName("tip1"))
.to(0.2, { opacity: 0 })
.call(function () {
label.string = "";
})
.to(0.1, { opacity: 255 })
.call(function () {
var tip = cc.fx.tipType.tipTwo;
cc.fx.GameTool.typingAni(label, tip, _this.startGame.bind(_this), _this);
})
.start();
}
else if (this.custom == 1) {
this.node.getChildByName("nextBtn").active = false;
this.node.getChildByName("jumpBtn").active = false;
cc.tween(this.node.getChildByName("tip1"))
.to(0.2, { opacity: 0 })
.call(function () {
label.string = "";
_this.nextLevel();
})
.start();
}
this.custom += 1;
};
GuideManager.prototype.nextLevel = function () {
var _this = this;
this.choice = 0;
this.Btn_Old.active = true;
this.Btn_New.active = true;
this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = false;
this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = false;
var name = this.customData[this.custom - 2].item;
if (this.customData[this.custom - 2].type == 1) {
this.Plant.getChildByName("name").getComponent(cc.Label).string = cc.fx.GameTool.getFoodName(name);
name = "prop_" + name;
this.Plant.getChildByName("icon").getComponent(cc.Sprite).spriteFrame = this.FoodPlist["_spriteFrames"][name];
this.now_Food = name;
cc.tween(this.Plant)
.to(0.2, { opacity: 255 })
.call(function () {
_this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = true;
_this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = true;
})
.start();
}
else {
this.Plant.getChildByName("name").getComponent(cc.Label).string = "";
this.Plant.getChildByName("icon").getComponent(cc.Sprite).spriteFrame = this.voiceSpriteFrame;
var audioName = name + "_audio";
name = "audio" + name;
this.now_Food = name;
cc.fx.AudioManager._instance.playEffect(audioName, null);
cc.tween(this.Plant)
.to(0.2, { opacity: 255 })
.call(function () {
_this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = true;
_this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = true;
})
.start();
}
//关卡+1
};
//新植物按钮
GuideManager.prototype.click_Btn = function (customData, data) {
var _this = this;
//关掉计时器 处理逻辑之前,先行关掉按钮开关
if (data == "Btn_New") {
this.choice = 1;
this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = false;
}
else if (data == "Btn_Old") {
this.choice = 2;
this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = false;
}
var target = this[data];
var label = this.Tip.getChildByName("content").getComponent(cc.Label);
//正确
if (this.choice == this.customData[this.custom - 2].right) {
cc.fx.AudioManager._instance.playEffect("yes", null);
this.Tip.stopAllActions();
this.Tip.active = false;
this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = false;
this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = false;
target.getChildByName("err").active = false;
target.getChildByName("correct").active = true;
setTimeout(function () {
_this.Btn_New.getChildByName("nomal").active = true;
_this.Btn_New.getChildByName("err").active = false;
_this.Btn_New.getChildByName("correct").active = false;
_this.Btn_Old.getChildByName("nomal").active = true;
_this.Btn_Old.getChildByName("err").active = false;
_this.Btn_Old.getChildByName("correct").active = false;
_this.Btn_Old.getChildByName("nomal").getComponent(cc.Button).interactable = false;
_this.Btn_New.getChildByName("nomal").getComponent(cc.Button).interactable = false;
_this.custom += 1;
if (_this.custom >= 6) {
_this.node.getChildByName("againBtn").active = true;
_this.node.getChildByName("startBtn").active = true;
_this.Btn_Old.active = false;
_this.Btn_New.active = false;
cc.fx.GameConfig.GM_INFO.guide = false;
var name = cc.fx.GameConfig.GM_INFO.gameId + "_guide";
cc.fx.StorageMessage.setStorage(name, cc.fx.GameConfig.GM_INFO.guide);
}
else
_this.nextLevel();
}, 1000);
}
else {
cc.fx.AudioManager._instance.playEffect("yes", null);
var tipTemp = '葡萄刚才出现过呢';
this.Tip.active = true;
target.getChildByName("err").active = true;
target.getChildByName("correct").active = false;
switch ((this.custom - 2)) {
case 0:
tipTemp = "这是这局游戏第一次出现葡萄";
break;
case 1:
tipTemp = "这是这局游戏第一次出现桃子";
break;
case 2:
tipTemp = '这不是这局游戏第一次出现葡萄';
break;
case 3:
tipTemp = "这不是这局游戏第一次出现桃子";
break;
}
label.string = tipTemp;
this.Tip.opacity = 255;
this.Tip.stopAllActions();
var self = this;
var action = cc.callFunc(function () {
self.Tip.active = false;
});
this.Tip.runAction(cc.sequence(cc.delayTime(2), cc.fadeIn(0.5), action));
}
};
//开始游戏
GuideManager.prototype.startGame = function () {
this.node.getChildByName("nextBtn").active = true;
cc.tween(this.node.getChildByName("nextBtn"))
.to(0.35, { opacity: 255 })
.start();
};
GuideManager.prototype.againClick = function () {
cc.director.loadScene("GuideScene");
};
GuideManager.prototype.onEnable = function () {
// cc.fx.Notifications.on("clickSun", this.clickSun, this);
};
GuideManager.prototype.onDisable = function () {
// cc.fx.Notifications.off("clickSun", this.clickSun);
};
GuideManager.prototype.update = function (dt) {
};
__decorate([
property(cc.Node)
], GuideManager.prototype, "Tip", void 0);
__decorate([
property(cc.SpriteAtlas)
], GuideManager.prototype, "FoodPlist", void 0);
__decorate([
property(cc.Node)
], GuideManager.prototype, "Btn_New", void 0);
__decorate([
property(cc.Node)
], GuideManager.prototype, "Btn_Old", void 0);
__decorate([
property(cc.Node)
], GuideManager.prototype, "Plant", void 0);
GuideManager = __decorate([
ccclass
], GuideManager);
return GuideManager;
}(cc.Component));
exports.default = GuideManager;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHdWlkZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsU0FBUztBQUNILElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRTFDO0lBQTBDLGdDQUFZO0lBQXREO1FBQUEscUVBb1NDO1FBalNHLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFHcEIsZUFBUyxHQUFtQixJQUFJLENBQUM7UUFHakMsYUFBTyxHQUFZLElBQUksQ0FBQztRQUV4QixhQUFPLEdBQVksSUFBSSxDQUFDO1FBSXhCLFdBQUssR0FBWSxJQUFJLENBQUM7O0lBcVIxQixDQUFDO0lBelFHLDZCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsNEJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCwwQkFBRyxHQUFIO1FBQ0ksSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsSUFBRyxDQUFDLEVBQUUsRUFBQztTQUVOO0lBRUwsQ0FBQztJQUVELE9BQU87SUFDUCwyQkFBSSxHQUFKO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQUEsRUFBRSxDQUFBO1FBQ2hHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FB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QUM7SUFFRCxpQ0FBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUlELCtCQUFRLEdBQVI7UUFDSSwyREFBMkQ7SUFDL0QsQ0FBQztJQUNELGdDQUFTLEdBQVQ7UUFDSSxzREFBc0Q7SUFDMUQsQ0FBQztJQUNELDZCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWhTRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNFO0lBR3BCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ1E7SUFHakM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztpREFDTTtJQUV4QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2lEQUNNO0lBSXhCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7K0NBQ0k7SUFmTCxZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBb1NoQztJQUFELG1CQUFDO0NBcFNELEFBb1NDLENBcFN5QyxFQUFFLENBQUMsU0FBUyxHQW9TckQ7a0JBcFNvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1ZGlvTWFuYWdlciBmcm9tIFwiLi9tb2R1bGUvTXVzaWMvQXVkaW9NYW5hZ2VyXCI7XHJcblxyXG4vLyDkuLvmuLjmiI/mjqfliLbnsbtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEd1aWRlTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBUaXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICBGb29kUGxpc3Q6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIEJ0bl9OZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBCdG5fT2xkOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBQbGFudDogY2MuTm9kZSA9IG51bGw7XHJcbiAgICB2b2ljZVNwcml0ZUZyYW1lOiBjYy5TcHJpdGVGcmFtZTsgICAgIC8v5piv5ZCm5Y+v54K55Ye7XHJcblxyXG4gICAgbmVlZGxlVHdlZW46IGNjLlR3ZWVuPGNjLlNwcml0ZT47XHJcbiAgICBmdW5jOiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIGN1c3RvbTpudW1iZXI7XHJcblxyXG4gICAgbm93X0Zvb2Q6IHN0cmluZzsgICAgICAgLy/lvZPliY3lhbPljaHlkI3lrZfkv6Hmga9cclxuICAgIGN1c3RvbURhdGE6IHsgaXRlbTogc3RyaW5nOyB0eXBlOiBudW1iZXI7IHJpZ2h0OiBudW1iZXI7IH1bXTtcclxuICAgIGNob2ljZTogbnVtYmVyO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5jdXN0b20gPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICB0aGlzLmZpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpdCgpe1xyXG4gICAgICAgIHZhciBqZyA9IGNjLmZ4LkdhbWVUb29sLnNldEZpdCgpO1xyXG4gICAgICAgIGlmKCFqZyl7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJ3lp4vljJbmlbDmja5cclxuICAgIGluaXQoKXtcclxuICAgICAgICB0aGlzLnZvaWNlU3ByaXRlRnJhbWUgPSB0aGlzLlBsYW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZTtgYFxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5leHRCdG5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkICsgXCJfZ3VpZGVcIjtcclxuICAgICAgICBpZihjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKG5hbWUpICE9IG51bGwpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ndWlkZSA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UobmFtZSk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmd1aWRlID09IGZhbHNlKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwianVtcEJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJqdW1wQnRuXCIpKVxyXG4gICAgICAgICAgICAudG8oMC4zNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5meC50aXBUeXBlLnRpcE9uZTtcclxuXHJcbiAgICAgICAgbGV0IGxhYmVsID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGlwMVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLnR5cGluZ0FuaShsYWJlbCx0aXAsdGhpcy5zdGFydEdhbWUuYmluZCh0aGlzKSx0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXREYXRhKCl7XHJcbiAgICAgICAgdGhpcy5jdXN0b21EYXRhID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcIml0ZW1cIjogXCJwdXRhb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IDEsXHJcbiAgICAgICAgICAgICAgICBcInJpZ2h0XCI6MSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgXCJpdGVtXCI6IFwidGFvemlcIixcclxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiAyLFxyXG4gICAgICAgICAgICAgICAgXCJyaWdodFwiOjEsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFwiaXRlbVwiOiBcInB1dGFvXCIsXHJcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogMixcclxuICAgICAgICAgICAgICAgIFwicmlnaHRcIjoyLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBcIml0ZW1cIjogXCJ0YW96aVwiLFxyXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IDEsXHJcbiAgICAgICAgICAgICAgICBcInJpZ2h0XCI6MixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXHJcbiAgICBwYXNzVm9pY2UoKXtcclxuICAgICAgICAvLyBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlNdXNpY0dhbWUoKTtcclxuICAgICAgICBsZXQgdm9pY2UgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ2b2ljZVRpcFwiKTtcclxuICAgICAgICB2b2ljZS5nZXRDaGlsZEJ5TmFtZShcInN0YXJ0QnRuXCIpLmdldENvbXBvbmVudChjYy5CdXR0b24pLmludGVyYWN0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHZvaWNlLmdldENoaWxkQnlOYW1lKFwicGxheUJ0blwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuICAgICAgICBjYy50d2Vlbih2b2ljZSlcclxuICAgICAgICAudG8oMC41LHtvcGFjaXR5OjB9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIHZvaWNlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHBsYXlWb2ljZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInRhb3ppX2F1ZGlvXCIsbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAganVtcENsaWNrKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5leHRDbGljaygpe1xyXG4gICAgICAgIC8v56ys5LiA5q2lXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmV4dEJ0blwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBsZXQgbGFiZWwgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXAxXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgXHJcbiAgICAgICAgaWYodGhpcy5jdXN0b20gPT0gMCl7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpcDFcIikpXHJcbiAgICAgICAgICAgIC50bygwLjIse29wYWNpdHk6MH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gXCJcIjtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnRvKDAuMSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PnsgXHJcbiAgICAgICAgICAgICAgICBsZXQgdGlwID0gY2MuZngudGlwVHlwZS50aXBUd287XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC50eXBpbmdBbmkobGFiZWwsdGlwLHRoaXMuc3RhcnRHYW1lLmJpbmQodGhpcyksdGhpcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuY3VzdG9tID09IDEpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJuZXh0QnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJqdW1wQnRuXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aXAxXCIpKVxyXG4gICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIGxhYmVsLnN0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5leHRMZXZlbCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXN0b20gKz0gMTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0TGV2ZWwoKXtcclxuICAgICAgICB0aGlzLmNob2ljZSA9IDA7XHJcbiAgICAgICAgdGhpcy5CdG5fT2xkLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5CdG5fTmV3LmFjdGl2ZSA9IHRydWU7XHJcblxyXG5cclxuICAgICAgICB0aGlzLkJ0bl9PbGQuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkJ0bl9OZXcuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuXHJcblxyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jdXN0b21EYXRhW3RoaXMuY3VzdG9tLTJdLml0ZW07XHJcbiAgICAgICAgaWYodGhpcy5jdXN0b21EYXRhW3RoaXMuY3VzdG9tLTJdLnR5cGUgPT0gMSl7XHJcbiAgICAgICAgICAgIHRoaXMuUGxhbnQuZ2V0Q2hpbGRCeU5hbWUoXCJuYW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gY2MuZnguR2FtZVRvb2wuZ2V0Rm9vZE5hbWUobmFtZSk7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInByb3BfXCIrbmFtZTtcclxuICAgICAgICAgICAgdGhpcy5QbGFudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLkZvb2RQbGlzdFtcIl9zcHJpdGVGcmFtZXNcIl1bbmFtZV07XHJcbiAgICAgICAgICAgIHRoaXMubm93X0Zvb2QgPSBuYW1lO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLlBsYW50KVxyXG4gICAgICAgICAgICAudG8oMC4yLHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLkJ0bl9PbGQuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5CdG5fTmV3LmdldENoaWxkQnlOYW1lKFwibm9tYWxcIikuZ2V0Q29tcG9uZW50KGNjLkJ1dHRvbikuaW50ZXJhY3RhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuUGxhbnQuZ2V0Q2hpbGRCeU5hbWUoXCJuYW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCJcIlxyXG4gICAgICAgICAgICB0aGlzLlBsYW50LmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHRoaXMudm9pY2VTcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgbGV0IGF1ZGlvTmFtZSA9IG5hbWUgKyBcIl9hdWRpb1wiO1xyXG4gICAgICAgICAgICBuYW1lID0gXCJhdWRpb1wiKyBuYW1lO1xyXG4gICAgICAgICAgICB0aGlzLm5vd19Gb29kID0gbmFtZTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KGF1ZGlvTmFtZSxudWxsKTtcclxuICAgICAgICAgICAgY2MudHdlZW4odGhpcy5QbGFudClcclxuICAgICAgICAgICAgLnRvKDAuMix7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5CdG5fT2xkLmdldENoaWxkQnlOYW1lKFwibm9tYWxcIikuZ2V0Q29tcG9uZW50KGNjLkJ1dHRvbikuaW50ZXJhY3RhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuQnRuX05ldy5nZXRDaGlsZEJ5TmFtZShcIm5vbWFsXCIpLmdldENvbXBvbmVudChjYy5CdXR0b24pLmludGVyYWN0YWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPljaErMVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+aWsOakjeeJqeaMiemSrlxyXG4gICAgY2xpY2tfQnRuKGN1c3RvbURhdGEsZGF0YSl7XHJcbiAgICAgICAgLy/lhbPmjonorqHml7blmaggICDlpITnkIbpgLvovpHkuYvliY3vvIzlhYjooYzlhbPmjonmjInpkq7lvIDlhbNcclxuICAgICAgICBpZihkYXRhID09IFwiQnRuX05ld1wiKXtcclxuICAgICAgICAgICAgdGhpcy5jaG9pY2UgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLkJ0bl9OZXcuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcIkJ0bl9PbGRcIil7XHJcbiAgICAgICAgICAgIHRoaXMuY2hvaWNlID0gMjtcclxuICAgICAgICAgICAgdGhpcy5CdG5fT2xkLmdldENoaWxkQnlOYW1lKFwibm9tYWxcIikuZ2V0Q29tcG9uZW50KGNjLkJ1dHRvbikuaW50ZXJhY3RhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgbGV0IHRhcmdldCA9IHRoaXNbZGF0YV07XHJcbiAgICAgICAgdmFyIGxhYmVsID0gdGhpcy5UaXAuZ2V0Q2hpbGRCeU5hbWUoXCJjb250ZW50XCIpLmdldENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgLy/mraPnoa5cclxuICAgICAgICBpZih0aGlzLmNob2ljZSA9PSB0aGlzLmN1c3RvbURhdGFbdGhpcy5jdXN0b20tMl0ucmlnaHQpe1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ5ZXNcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5UaXAuc3RvcEFsbEFjdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5UaXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuQnRuX05ldy5nZXRDaGlsZEJ5TmFtZShcIm5vbWFsXCIpLmdldENvbXBvbmVudChjYy5CdXR0b24pLmludGVyYWN0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLkJ0bl9PbGQuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHRhcmdldC5nZXRDaGlsZEJ5TmFtZShcImVyclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiY29ycmVjdFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuQnRuX05ldy5nZXRDaGlsZEJ5TmFtZShcIm5vbWFsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkJ0bl9OZXcuZ2V0Q2hpbGRCeU5hbWUoXCJlcnJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkJ0bl9OZXcuZ2V0Q2hpbGRCeU5hbWUoXCJjb3JyZWN0XCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5CdG5fT2xkLmdldENoaWxkQnlOYW1lKFwibm9tYWxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuQnRuX09sZC5nZXRDaGlsZEJ5TmFtZShcImVyclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuQnRuX09sZC5nZXRDaGlsZEJ5TmFtZShcImNvcnJlY3RcIikuYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5CdG5fT2xkLmdldENoaWxkQnlOYW1lKFwibm9tYWxcIikuZ2V0Q29tcG9uZW50KGNjLkJ1dHRvbikuaW50ZXJhY3RhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkJ0bl9OZXcuZ2V0Q2hpbGRCeU5hbWUoXCJub21hbFwiKS5nZXRDb21wb25lbnQoY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jdXN0b20gPj0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYWdhaW5CdG5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQnRuX09sZC5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkJ0bl9OZXcuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmd1aWRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkICsgXCJfZ3VpZGVcIjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKG5hbWUsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmd1aWRlKTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMubmV4dExldmVsKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ5ZXNcIixudWxsKTtcclxuICAgICAgICAgICAgdmFyIHRpcFRlbXAgPSAn6JGh6JCE5Yia5omN5Ye6546w6L+H5ZGiJ1xyXG4gICAgICAgICAgICB0aGlzLlRpcC5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0YXJnZXQuZ2V0Q2hpbGRCeU5hbWUoXCJlcnJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGFyZ2V0LmdldENoaWxkQnlOYW1lKFwiY29ycmVjdFwiKS5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCgodGhpcy5jdXN0b20tMikpe1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgICAgIHRpcFRlbXAgPSBcIui/meaYr+i/meWxgOa4uOaIj+esrOS4gOasoeWHuueOsOiRoeiQhFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgICAgICAgICAgIHRpcFRlbXAgPSBcIui/meaYr+i/meWxgOa4uOaIj+esrOS4gOasoeWHuueOsOahg+WtkFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgIHRpcFRlbXAgPSAn6L+Z5LiN5piv6L+Z5bGA5ri45oiP56ys5LiA5qyh5Ye6546w6JGh6JCEJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICB0aXBUZW1wID0gXCLov5nkuI3mmK/ov5nlsYDmuLjmiI/nrKzkuIDmrKHlh7rnjrDmoYPlrZBcIjtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYWJlbC5zdHJpbmcgPSB0aXBUZW1wO1xyXG4gICAgICAgICAgICB0aGlzLlRpcC5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICB0aGlzLlRpcC5zdG9wQWxsQWN0aW9ucygpO1xyXG4gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgICAgIHZhciBhY3Rpb24gPSBjYy5jYWxsRnVuYyhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgc2VsZi5UaXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuVGlwLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5kZWxheVRpbWUoMiksY2MuZmFkZUluKDAuNSksYWN0aW9uKSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/lvIDlp4vmuLjmiI9cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5leHRCdG5cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJuZXh0QnRuXCIpKVxyXG4gICAgICAgIC50bygwLjM1LHtvcGFjaXR5OjI1NX0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWdhaW5DbGljaygpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgb25FbmFibGUgKCkge1xyXG4gICAgICAgIC8vIGNjLmZ4Lk5vdGlmaWNhdGlvbnMub24oXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuLCB0aGlzKTtcclxuICAgIH1cclxuICAgIG9uRGlzYWJsZSAoKSB7XHJcbiAgICAgICAgLy8gY2MuZnguTm90aWZpY2F0aW9ucy5vZmYoXCJjbGlja1N1blwiLCB0aGlzLmNsaWNrU3VuKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgIH1cclxufVxyXG4iXX0=