BallSkinItem.js
22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/scripts/prefabs/BallSkinItem.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, '009caMZlnBKlLyc4SiAzWGE', 'BallSkinItem');
// scripts/prefabs/BallSkinItem.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 SaveDataManager_1 = require("../component/SaveDataManager");
var Global_1 = require("../Global");
var BattleConst_1 = require("../kernel/battle/BattleConst");
var TableDefine_1 = require("../kernel/table/TableDefine");
var UIManager_1 = require("../ui/UIManager");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var BallSkinItem = /** @class */ (function (_super) {
__extends(BallSkinItem, _super);
function BallSkinItem() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this._config = null;
return _this;
}
BallSkinItem.prototype.onLoad = function () {
BattleConst_1.getGlobalNode().on(Global_1.GlobalEvent.BALL_SKIN_UNLOCK, this.refreshState, this);
BattleConst_1.getGlobalNode().on(Global_1.GlobalEvent.BALL_SKIN_USE, this.refreshState, this);
};
BallSkinItem.prototype.onDestroy = function () {
BattleConst_1.getGlobalNode().targetOff(this);
};
BallSkinItem.prototype.setBallSkinItem = function (id) {
var _this = this;
if (id > 0) {
var config = Global_1.tMgr.getConfig(TableDefine_1.TableName.BALL_SKIN, id);
if (config) {
this._config = config;
this.node.getChildByName('icon').active = true;
cc.resources.load('battle/' + config.Img, cc.SpriteFrame, function (error, asset) {
if (!error) {
_this.node.getChildByName('icon').getComponent(cc.Sprite).spriteFrame = asset;
}
});
}
}
else {
this.node.getChildByName('icon').active = false;
this._config = null;
}
this.refreshState();
};
BallSkinItem.prototype.refreshState = function () {
var isAd = (this._config == null);
var isUnlocked = !isAd && SaveDataManager_1.SaveDataManager.ins.runtimeData.ballSkinUnlocked.includes(this._config.ID);
var isUsing = !isAd && (SaveDataManager_1.SaveDataManager.ins.runtimeData.ballSkinCurrent == this._config.ID);
this.node.getChildByName('txtName').getComponent(cc.Label).string = (isAd ? "" : this._config.Name);
//#region 显示尺寸
this.node.getChildByName('imgSize1').active = (!isAd && this._config.Size == 1);
this.node.getChildByName('imgSize2').active = (!isAd && this._config.Size == 2);
this.node.getChildByName('imgSize3').active = (!isAd && this._config.Size == 3);
//#endregion
this.node.getChildByName('btnBuy').active = !isAd && !isUnlocked;
this.node.getChildByName('btnSign').active = !isAd && !isUnlocked;
this.node.getChildByName('btnWheel').active = !isAd && !isUnlocked;
this.node.getChildByName('btnUse').active = !isAd && isUnlocked;
this.node.getChildByName('btnUsing').active = !isAd && isUnlocked;
this.node.getChildByName('btnAd').active = isAd;
if (!isAd) {
if (isUnlocked) {
//已经解锁了
this.node.getChildByName('btnUse').active = !isUsing;
this.node.getChildByName('btnUsing').active = isUsing;
}
else {
//未解锁
this.node.getChildByName('btnBuy').active = (this._config.Price > 0);
this.node.getChildByName('btnSign').active = (this._config.Price == -1);
this.node.getChildByName('btnWheel').active = (this._config.Price == -2);
if (this._config.Price > 0) {
this.node.getChildByName('btnBuy').getComponentInChildren(cc.Label).string = this._config.Price.toString();
}
}
}
else {
this.node.getChildByName('btnAd').getChildByName('Background').getChildByName('UI_Skin_btn_cjhd').active = true;
this.node.getChildByName('btnAd').getChildByName('Background').getChildByName('UI_Finish_kxsx').active = false;
// this.node.getChildByName('nodeAd').getComponent(CustomNativeAdView).showNativeAd((result) => {
// if (result) {
// this.node.getChildByName('btnAd').active = true;
// } else {
// this.node.getChildByName('btnAd').active = false;
// }
// });
}
};
BallSkinItem.prototype.onBtnBuyClick = function () {
if (this._config) {
// let wpos = this.node.getChildByName('btnBuy').convertToWorldSpaceAR(cc.v3(0, 0, 0));
// if (SaveDataManager.ins.adjustDiamond(-this._config.Price, true, wpos)) {
// SaveDataManager.ins.unlockBallSkin(this._config.ID);
// }
UIManager_1.UIManager.ins.openWindow(Global_1.WindowName.BALL_SKIN_PREVIEW, this._config.ID);
}
};
BallSkinItem.prototype.onHideAdBtn = function () {
this.node.getChildByName('btnAd').active = false;
};
BallSkinItem.prototype.onBtnWheelClick = function () {
UIManager_1.UIManager.ins.openWindow(Global_1.WindowName.WHEEL);
};
BallSkinItem.prototype.onBtnSignClick = function () {
UIManager_1.UIManager.ins.openWindow(Global_1.WindowName.SIGN);
};
BallSkinItem.prototype.onBtnAdClick = function () {
//AD 纯放广告
};
BallSkinItem.prototype.onBtnUseClick = function () {
if (this._config) {
SaveDataManager_1.SaveDataManager.ins.useBallSkin(this._config.ID);
}
};
BallSkinItem = __decorate([
ccclass
], BallSkinItem);
return BallSkinItem;
}(cc.Component));
exports.default = BallSkinItem;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcQmFsbFNraW5JdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLGdFQUErRDtBQUMvRCxvQ0FBMEQ7QUFFMUQsNERBQTZEO0FBQzdELDJEQUF1RTtBQUN2RSw2Q0FBNEM7QUFFdEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFHNUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUFnSUM7UUFwSFcsYUFBTyxHQUFrQixJQUFJLENBQUM7O0lBb0gxQyxDQUFDO0lBOUhhLDZCQUFNLEdBQWhCO1FBQ0ksMkJBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsMkJBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTNFLENBQUM7SUFFUyxnQ0FBUyxHQUFuQjtRQUNJLDJCQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUlELHNDQUFlLEdBQWYsVUFBZ0IsRUFBVTtRQUExQixpQkF3QkM7UUF0QkcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxNQUFNLEdBQUcsYUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQWtCLENBQUM7WUFFdEUsSUFBSSxNQUFNLEVBQUU7Z0JBRVIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7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QUMsT0FBTyxFQUFFO1lBQ2QsaUNBQWUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBOUhnQixZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBZ0loQztJQUFELG1CQUFDO0NBaElELEFBZ0lDLENBaEl5QyxFQUFFLENBQUMsU0FBUyxHQWdJckQ7a0JBaElvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IHsgU2F2ZURhdGFNYW5hZ2VyIH0gZnJvbSBcIi4uL2NvbXBvbmVudC9TYXZlRGF0YU1hbmFnZXJcIjtcclxuaW1wb3J0IHsgR2xvYmFsRXZlbnQsIHRNZ3IsIFdpbmRvd05hbWUgfSBmcm9tIFwiLi4vR2xvYmFsXCI7XHJcblxyXG5pbXBvcnQgeyBnZXRHbG9iYWxOb2RlIH0gZnJvbSBcIi4uL2tlcm5lbC9iYXR0bGUvQmF0dGxlQ29uc3RcIjtcclxuaW1wb3J0IHsgQmFsbFNraW5UYWJsZSwgVGFibGVOYW1lIH0gZnJvbSBcIi4uL2tlcm5lbC90YWJsZS9UYWJsZURlZmluZVwiO1xyXG5pbXBvcnQgeyBVSU1hbmFnZXIgfSBmcm9tIFwiLi4vdWkvVUlNYW5hZ2VyXCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFsbFNraW5JdGVtIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Mb2FkKCk6IHZvaWQge1xyXG4gICAgICAgIGdldEdsb2JhbE5vZGUoKS5vbihHbG9iYWxFdmVudC5CQUxMX1NLSU5fVU5MT0NLLCB0aGlzLnJlZnJlc2hTdGF0ZSwgdGhpcyk7XHJcbiAgICAgICAgZ2V0R2xvYmFsTm9kZSgpLm9uKEdsb2JhbEV2ZW50LkJBTExfU0tJTl9VU0UsIHRoaXMucmVmcmVzaFN0YXRlLCB0aGlzKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBnZXRHbG9iYWxOb2RlKCkudGFyZ2V0T2ZmKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpZzogQmFsbFNraW5UYWJsZSA9IG51bGw7XHJcblxyXG4gICAgc2V0QmFsbFNraW5JdGVtKGlkOiBudW1iZXIpIHtcclxuXHJcbiAgICAgICAgaWYgKGlkID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgY29uZmlnID0gdE1nci5nZXRDb25maWcoVGFibGVOYW1lLkJBTExfU0tJTiwgaWQpIGFzIEJhbGxTa2luVGFibGU7XHJcblxyXG4gICAgICAgICAgICBpZiAoY29uZmlnKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnaWNvbicpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjYy5yZXNvdXJjZXMubG9hZCgnYmF0dGxlLycgKyBjb25maWcuSW1nLCBjYy5TcHJpdGVGcmFtZSwgKGVycm9yLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdpY29uJykuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBhc3NldCBhcyBjYy5TcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ljb24nKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVmcmVzaFN0YXRlKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVmcmVzaFN0YXRlKCkge1xyXG5cclxuICAgICAgICBsZXQgaXNBZCA9ICh0aGlzLl9jb25maWcgPT0gbnVsbCk7XHJcbiAgICAgICAgbGV0IGlzVW5sb2NrZWQgPSAhaXNBZCAmJiBTYXZlRGF0YU1hbmFnZXIuaW5zLnJ1bnRpbWVEYXRhLmJhbGxTa2luVW5sb2NrZWQuaW5jbHVkZXModGhpcy5fY29uZmlnLklEKTtcclxuICAgICAgICBsZXQgaXNVc2luZyA9ICFpc0FkICYmIChTYXZlRGF0YU1hbmFnZXIuaW5zLnJ1bnRpbWVEYXRhLmJhbGxTa2luQ3VycmVudCA9PSB0aGlzLl9jb25maWcuSUQpO1xyXG5cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ3R4dE5hbWUnKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IChpc0FkID8gXCJcIiA6IHRoaXMuX2NvbmZpZy5OYW1lKTtcclxuXHJcbiAgICAgICAgLy8jcmVnaW9uIOaYvuekuuWwuuWvuFxyXG5cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ltZ1NpemUxJykuYWN0aXZlID0gKCFpc0FkICYmIHRoaXMuX2NvbmZpZy5TaXplID09IDEpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnaW1nU2l6ZTInKS5hY3RpdmUgPSAoIWlzQWQgJiYgdGhpcy5fY29uZmlnLlNpemUgPT0gMik7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdpbWdTaXplMycpLmFjdGl2ZSA9ICghaXNBZCAmJiB0aGlzLl9jb25maWcuU2l6ZSA9PSAzKTtcclxuXHJcbiAgICAgICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuQnV5JykuYWN0aXZlID0gIWlzQWQgJiYgIWlzVW5sb2NrZWQ7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5TaWduJykuYWN0aXZlID0gIWlzQWQgJiYgIWlzVW5sb2NrZWQ7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5XaGVlbCcpLmFjdGl2ZSA9ICFpc0FkICYmICFpc1VubG9ja2VkO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuVXNlJykuYWN0aXZlID0gIWlzQWQgJiYgaXNVbmxvY2tlZDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2J0blVzaW5nJykuYWN0aXZlID0gIWlzQWQgJiYgaXNVbmxvY2tlZDtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2J0bkFkJykuYWN0aXZlID0gaXNBZDtcclxuXHJcbiAgICAgICAgaWYgKCFpc0FkKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1VubG9ja2VkKSB7XHJcbiAgICAgICAgICAgICAgICAvL+W3sue7j+ino+mUgeS6hlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5Vc2UnKS5hY3RpdmUgPSAhaXNVc2luZztcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuVXNpbmcnKS5hY3RpdmUgPSBpc1VzaW5nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy/mnKrop6PplIFcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuQnV5JykuYWN0aXZlID0gKHRoaXMuX2NvbmZpZy5QcmljZSA+IDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5TaWduJykuYWN0aXZlID0gKHRoaXMuX2NvbmZpZy5QcmljZSA9PSAtMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2J0bldoZWVsJykuYWN0aXZlID0gKHRoaXMuX2NvbmZpZy5QcmljZSA9PSAtMik7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5QcmljZSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2J0bkJ1eScpLmdldENvbXBvbmVudEluQ2hpbGRyZW4oY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuX2NvbmZpZy5QcmljZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuQWQnKS5nZXRDaGlsZEJ5TmFtZSgnQmFja2dyb3VuZCcpLmdldENoaWxkQnlOYW1lKCdVSV9Ta2luX2J0bl9jamhkJykuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5BZCcpLmdldENoaWxkQnlOYW1lKCdCYWNrZ3JvdW5kJykuZ2V0Q2hpbGRCeU5hbWUoJ1VJX0ZpbmlzaF9reHN4JykuYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ25vZGVBZCcpLmdldENvbXBvbmVudChDdXN0b21OYXRpdmVBZFZpZXcpLnNob3dOYXRpdmVBZCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG5BZCcpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuQWQnKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQnRuQnV5Q2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZykge1xyXG5cclxuICAgICAgICAgICAgLy8gbGV0IHdwb3MgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2J0bkJ1eScpLmNvbnZlcnRUb1dvcmxkU3BhY2VBUihjYy52MygwLCAwLCAwKSk7XHJcbiAgICAgICAgICAgIC8vIGlmIChTYXZlRGF0YU1hbmFnZXIuaW5zLmFkanVzdERpYW1vbmQoLXRoaXMuX2NvbmZpZy5QcmljZSwgdHJ1ZSwgd3BvcykpIHtcclxuICAgICAgICAgICAgLy8gICAgIFNhdmVEYXRhTWFuYWdlci5pbnMudW5sb2NrQmFsbFNraW4odGhpcy5fY29uZmlnLklEKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgVUlNYW5hZ2VyLmlucy5vcGVuV2luZG93KFdpbmRvd05hbWUuQkFMTF9TS0lOX1BSRVZJRVcsIHRoaXMuX2NvbmZpZy5JRCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uSGlkZUFkQnRuKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuQWQnKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkJ0bldoZWVsQ2xpY2soKSB7XHJcbiAgICAgICAgVUlNYW5hZ2VyLmlucy5vcGVuV2luZG93KFdpbmRvd05hbWUuV0hFRUwpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQnRuU2lnbkNsaWNrKCkge1xyXG4gICAgICAgIFVJTWFuYWdlci5pbnMub3BlbldpbmRvdyhXaW5kb3dOYW1lLlNJR04pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQnRuQWRDbGljaygpIHtcclxuICAgICAgICAvL0FEIOe6r+aUvuW5v+WRilxyXG4gICAgfVxyXG5cclxuICAgIG9uQnRuVXNlQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZykge1xyXG4gICAgICAgICAgICBTYXZlRGF0YU1hbmFnZXIuaW5zLnVzZUJhbGxTa2luKHRoaXMuX2NvbmZpZy5JRCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=