(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/limitexercise/limitexercise_controller.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, 'f8a8cOctShCb5V2PuPgXYZN', 'limitexercise_controller'); // Scripts/mod/limitexercise/limitexercise_controller.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 试炼之境 //
Create: 2019-09-09 19:11:57 // -------------------------------------------------------------------- var LimitExerciseEvent = require("limitexercise_event"); var LimitexerciseController = cc.Class({ "extends": BaseController, ctor: function ctor() {}, // 初始化配置数据 initConfig: function initConfig() { var LimitexerciseModel = require("limitexercise_model"); this.model = new LimitexerciseModel(); this.model.initConfig(); }, // 返回当前的model getModel: function getModel() { return this.model; }, // 注册监听事件 registerEvents: function registerEvents() {}, // 注册协议接受事件 registerProtocals: function registerProtocals() { // this.RegisterProtocal(1110, this.on1110); this.RegisterProtocal(25410, this.handle25410); this.RegisterProtocal(25411, this.handle25411); this.RegisterProtocal(25412, this.handle25412); this.RegisterProtocal(25413, this.handle25413); this.RegisterProtocal(25414, this.handle25414); }, // --活动boss信息 send25410: function send25410() { this.SendProtocal(25410, {}); }, handle25410: function handle25410(data) { this.model.setLimitExerciseData(data); gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_Message_Event, data); }, //购买挑战次数 send25411: function send25411() { this.SendProtocal(25411, {}); }, handle25411: function handle25411(data) { message(data.msg); if (data.code == 1) { this.model.setChangeCount(data.count, data.buy_count); if (this.touch_buy_change && data.count == 1) { this.send25413(); } this.touch_buy_change = null; gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_BuyCount_Event, data); } }, //当挑战次数为0的时候,可以根据购买次数是否为0来判断出战 checkJoinFight: function checkJoinFight() { var const_data = Config.holiday_boss_new_data.data_const; if (!const_data) return; var max_count = const_data.fight_buy_max_count.val; var cur_count = this.model.getDayBuyCount(); var remain_count = this.model.getReaminCount(); // cc.log("max_count,cur_count,remain_count",max_count,cur_count,remain_count) if (cur_count >= max_count && remain_count == 0) { message(Utils.TI18N("今日次数已用完~~")); } else { if (remain_count <= 0) { var CommonAlert = require("commonalert"); var str = cc.js.formatStr("是否花费%s购买一次挑战次数?", Config.item_data.data_assets_label2id.gold, const_data.action_num_espensive.val); var res = PathTool.getItemRes(Config.item_data.data_assets_label2id.gold); var call_back = function () { this.touch_buy_change = true; this.send25411(); }.bind(this); CommonAlert.show(str, Utils.TI18N("确认"), call_back, Utils.TI18N("取消"), null, 2, null, { resArr: [res] }); } else { this.send25413(); } } }, send25412: function send25412() { this.SendProtocal(25412, {}); }, handle25412: function handle25412(data) { message(data.msg); gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_GetBox_Event, data); }, // 挑战活动boss send25413: function send25413() { this.SendProtocal(25413, {}); }, handle25413: function handle25413(data) { message(data.msg); if (data.code == 1) { var HeroController = require("hero_controller"); HeroController.getInstance().openFormGoFightPanel(false); } }, //当前伙伴已使用次数 send25414: function send25414() { this.SendProtocal(25414, {}); }, handle25414: function handle25414(data) { this.model.setHeroUseId(data.p_list); }, openLimitExerciseChangeView: function openLimitExerciseChangeView(status) { if (status == true) { if (!this.limit_exercise_view) { var LimitExerciseChangeWindow = require("limitexercise_change_window"); this.limit_exercise_view = new LimitExerciseChangeWindow(this); } this.limit_exercise_view.open(); } else { if (this.limit_exercise_view) { this.limit_exercise_view.close(); this.limit_exercise_view = null; } } }, //打开查看奖励界面 openLimitExerciseRewardView: function openLimitExerciseRewardView(status) { if (status == true) { if (!this.open_reward_view) { var LimitExerciseRewardWindow = require("limitexercise_reward_window"); this.open_reward_view = new LimitExerciseRewardWindow(this); } this.open_reward_view.open(); } else { if (this.open_reward_view) { this.open_reward_view.close(); this.open_reward_view = null; } } } }); module.exports = LimitexerciseController; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxsaW1pdGV4ZXJjaXNlXFxsaW1pdGV4ZXJjaXNlX2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiTGltaXRFeGVyY2lzZUV2ZW50IiwicmVxdWlyZSIsIkxpbWl0ZXhlcmNpc2VDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJMaW1pdGV4ZXJjaXNlTW9kZWwiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJoYW5kbGUyNTQxMCIsImhhbmRsZTI1NDExIiwiaGFuZGxlMjU0MTIiLCJoYW5kbGUyNTQxMyIsImhhbmRsZTI1NDE0Iiwic2VuZDI1NDEwIiwiU2VuZFByb3RvY2FsIiwiZGF0YSIsInNldExpbWl0RXhlcmNpc2VEYXRhIiwiZ2NvcmUiLCJHbG9iYWxFdmVudCIsImZpcmUiLCJMaW1pdEV4ZXJjaXNlX01lc3NhZ2VfRXZlbnQiLCJzZW5kMjU0MTEiLCJtZXNzYWdlIiwibXNnIiwiY29kZSIsInNldENoYW5nZUNvdW50IiwiY291bnQiLCJidXlfY291bnQiLCJ0b3VjaF9idXlfY2hhbmdlIiwic2VuZDI1NDEzIiwiTGltaXRFeGVyY2lzZV9CdXlDb3VudF9FdmVudCIsImNoZWNrSm9pbkZpZ2h0IiwiY29uc3RfZGF0YSIsIkNvbmZpZyIsImhvbGlkYXlfYm9zc19uZXdfZGF0YSIsImRhdGFfY29uc3QiLCJtYXhfY291bnQiLCJmaWdodF9idXlfbWF4X2NvdW50IiwidmFsIiwiY3VyX2NvdW50IiwiZ2V0RGF5QnV5Q291bnQiLCJyZW1haW5fY291bnQiLCJnZXRSZWFtaW5Db3VudCIsIlV0aWxzIiwiVEkxOE4iLCJDb21tb25BbGVydCIsInN0ciIsImpzIiwiZm9ybWF0U3RyIiwiaXRlbV9kYXRhIiwiZGF0YV9hc3NldHNfbGFiZWwyaWQiLCJnb2xkIiwiYWN0aW9uX251bV9lc3BlbnNpdmUiLCJyZXMiLCJQYXRoVG9vbCIsImdldEl0ZW1SZXMiLCJjYWxsX2JhY2siLCJiaW5kIiwic2hvdyIsInJlc0FyciIsInNlbmQyNTQxMiIsIkxpbWl0RXhlcmNpc2VfR2V0Qm94X0V2ZW50IiwiSGVyb0NvbnRyb2xsZXIiLCJnZXRJbnN0YW5jZSIsIm9wZW5Gb3JtR29GaWdodFBhbmVsIiwic2VuZDI1NDE0Iiwic2V0SGVyb1VzZUlkIiwicF9saXN0Iiwib3BlbkxpbWl0RXhlcmNpc2VDaGFuZ2VWaWV3Iiwic3RhdHVzIiwibGltaXRfZXhlcmNpc2VfdmlldyIsIkxpbWl0RXhlcmNpc2VDaGFuZ2VXaW5kb3ciLCJvcGVuIiwiY2xvc2UiLCJvcGVuTGltaXRFeGVyY2lzZVJld2FyZFZpZXciLCJvcGVuX3Jld2FyZF92aWV3IiwiTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsa0JBQWtCLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQzs7QUFDQSxJQUFJQyx1QkFBdUIsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDbkMsYUFBU0MsY0FEMEI7QUFFbkNDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUhrQztBQUtuQztBQUNBQyxFQUFBQSxVQUFVLEVBQUUsc0JBQVk7QUFDcEIsUUFBSUMsa0JBQWtCLEdBQUdQLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQzs7QUFFQSxTQUFLUSxLQUFMLEdBQWEsSUFBSUQsa0JBQUosRUFBYjtBQUNBLFNBQUtDLEtBQUwsQ0FBV0YsVUFBWDtBQUNILEdBWGtDO0FBYW5DO0FBQ0FHLEVBQUFBLFFBQVEsRUFBRSxvQkFBWTtBQUNsQixXQUFPLEtBQUtELEtBQVo7QUFDSCxHQWhCa0M7QUFrQm5DO0FBQ0FFLEVBQUFBLGNBQWMsRUFBRSwwQkFBWSxDQUMzQixDQXBCa0M7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V0FBS0QsZ0JBQUwsQ0FBc0JILElBQXRCO0FBQ0gsS0FORCxNQU1LO0FBQ0QsVUFBRyxLQUFLRyxnQkFBUixFQUF5QjtBQUNyQixhQUFLQSxnQkFBTCxDQUFzQkYsS0FBdEI7QUFDQSxhQUFLRSxnQkFBTCxHQUF3QixJQUF4QjtBQUNIO0FBQ0o7QUFDSjtBQXJJa0MsQ0FBVCxDQUE5QjtBQXdJQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEYsdUJBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOivleeCvOS5i+Wig1xuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDktMDkgMTk6MTE6NTdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgTGltaXRFeGVyY2lzZUV2ZW50ID0gcmVxdWlyZShcImxpbWl0ZXhlcmNpc2VfZXZlbnRcIilcbnZhciBMaW1pdGV4ZXJjaXNlQ29udHJvbGxlciA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ29udHJvbGxlcixcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMlumFjee9ruaVsOaNrlxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIExpbWl0ZXhlcmNpc2VNb2RlbCA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX21vZGVsXCIpO1xuXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgTGltaXRleGVyY2lzZU1vZGVsKCk7XG4gICAgICAgIHRoaXMubW9kZWwuaW5pdENvbmZpZygpO1xuICAgIH0sXG5cbiAgICAvLyDov5Tlm57lvZPliY3nmoRtb2RlbFxuICAgIGdldE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhoznm5HlkKzkuovku7ZcbiAgICByZWdpc3RlckV2ZW50czogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTExMCwgdGhpcy5vbjExMTApO1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjU0MTAsIHRoaXMuaGFuZGxlMjU0MTApXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyNTQxMSwgdGhpcy5oYW5kbGUyNTQxMSlcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDI1NDEyLCB0aGlzLmhhbmRsZTI1NDEyKVxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjU0MTMsIHRoaXMuaGFuZGxlMjU0MTMpXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyNTQxNCwgdGhpcy5oYW5kbGUyNTQxNClcbiAgICB9LFxuICAgIC8vIC0t5rS75YqoYm9zc+S/oeaBr1xuICAgIHNlbmQyNTQxMCgpe1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyNTQxMCwge30pXG4gICAgfSxcbiAgICBoYW5kbGUyNTQxMChkYXRhKXtcbiAgICAgICAgdGhpcy5tb2RlbC5zZXRMaW1pdEV4ZXJjaXNlRGF0YShkYXRhKVxuICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKExpbWl0RXhlcmNpc2VFdmVudC5MaW1pdEV4ZXJjaXNlX01lc3NhZ2VfRXZlbnQsZGF0YSlcbiAgICB9LFxuICAgIC8v6LSt5Lmw5oyR5oiY5qyh5pWwXG4gICAgc2VuZDI1NDExKCl7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDI1NDExLCB7fSlcbiAgICB9LFxuICAgIGhhbmRsZTI1NDExKGRhdGEpe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKVxuICAgICAgICBpZihkYXRhLmNvZGUgPT0gMSl7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNldENoYW5nZUNvdW50KGRhdGEuY291bnQsZGF0YS5idXlfY291bnQpXG4gICAgICAgICAgICBpZih0aGlzLnRvdWNoX2J1eV9jaGFuZ2UgJiYgZGF0YS5jb3VudCA9PSAxKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmQyNTQxMygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvdWNoX2J1eV9jaGFuZ2UgPSBudWxsXG4gICAgICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKExpbWl0RXhlcmNpc2VFdmVudC5MaW1pdEV4ZXJjaXNlX0J1eUNvdW50X0V2ZW50LGRhdGEpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8v5b2T5oyR5oiY5qyh5pWw5Li6MOeahOaXtuWAme+8jOWPr+S7peagueaNrui0reS5sOasoeaVsOaYr+WQpuS4ujDmnaXliKTmlq3lh7rmiJhcbiAgICBjaGVja0pvaW5GaWdodCgpe1xuICAgICAgICBsZXQgY29uc3RfZGF0YSA9IENvbmZpZy5ob2xpZGF5X2Jvc3NfbmV3X2RhdGEuZGF0YV9jb25zdFxuICAgICAgICBpZighY29uc3RfZGF0YSkgcmV0dXJuO1xuXG4gICAgICAgIGxldCBtYXhfY291bnQgPSBjb25zdF9kYXRhLmZpZ2h0X2J1eV9tYXhfY291bnQudmFsXG4gICAgICAgIGxldCBjdXJfY291bnQgPSB0aGlzLm1vZGVsLmdldERheUJ1eUNvdW50KClcbiAgICAgICAgbGV0IHJlbWFpbl9jb3VudCA9IHRoaXMubW9kZWwuZ2V0UmVhbWluQ291bnQoKVxuICAgICAgICAvLyBjYy5sb2coXCJtYXhfY291bnQsY3VyX2NvdW50LHJlbWFpbl9jb3VudFwiLG1heF9jb3VudCxjdXJfY291bnQscmVtYWluX2NvdW50KVxuICAgICAgICBpZihjdXJfY291bnQgPj0gbWF4X2NvdW50ICYmIHJlbWFpbl9jb3VudCA9PSAwKXtcbiAgICAgICAgICAgIG1lc3NhZ2UoVXRpbHMuVEkxOE4oXCLku4rml6XmrKHmlbDlt7LnlKjlrox+flwiKSlcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZihyZW1haW5fY291bnQgPD0gMCl7XG4gICAgICAgICAgICAgICAgdmFyIENvbW1vbkFsZXJ0ID0gcmVxdWlyZShcImNvbW1vbmFsZXJ0XCIpO1xuICAgICAgICAgICAgICAgIHZhciBzdHIgPSBjYy5qcy5mb3JtYXRTdHIoXCLmmK/lkKboirHotLk8aW1nIHNyYz0nJXMnIHNjYWxlPTAuMyAvPiVz6LSt5Lmw5LiA5qyh5oyR5oiY5qyh5pWw77yfXCIsIENvbmZpZy5pdGVtX2RhdGEuZGF0YV9hc3NldHNfbGFiZWwyaWQuZ29sZCxjb25zdF9kYXRhLmFjdGlvbl9udW1fZXNwZW5zaXZlLnZhbClcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gUGF0aFRvb2wuZ2V0SXRlbVJlcyhDb25maWcuaXRlbV9kYXRhLmRhdGFfYXNzZXRzX2xhYmVsMmlkLmdvbGQpXG4gICAgICAgICAgICAgICAgdmFyIGNhbGxfYmFjayA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG91Y2hfYnV5X2NoYW5nZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kMjU0MTEoKVxuICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIENvbW1vbkFsZXJ0LnNob3coc3RyLCBVdGlscy5USTE4TihcIuehruiupFwiKSwgY2FsbF9iYWNrLCBVdGlscy5USTE4TihcIuWPlua2iFwiKSwgbnVsbCwgMiwgbnVsbCwgeyByZXNBcnI6IFtyZXNdIH0pXG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmQyNTQxMygpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNlbmQyNTQxMigpe1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyNTQxMiwge30pXG4gICAgfSxcbiAgICBoYW5kbGUyNTQxMihkYXRhKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZylcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShMaW1pdEV4ZXJjaXNlRXZlbnQuTGltaXRFeGVyY2lzZV9HZXRCb3hfRXZlbnQsZGF0YSlcbiAgICB9LFxuICAgIC8vIOaMkeaImOa0u+WKqGJvc3NcbiAgICBzZW5kMjU0MTMoKXtcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMjU0MTMsIHt9KVxuICAgIH0sXG4gICAgaGFuZGxlMjU0MTMoZGF0YSl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpXG4gICAgICAgIGlmKGRhdGEuY29kZSA9PSAxKXtcbiAgICAgICAgICAgIHZhciBIZXJvQ29udHJvbGxlciA9IHJlcXVpcmUoXCJoZXJvX2NvbnRyb2xsZXJcIilcbiAgICAgICAgICAgIEhlcm9Db250cm9sbGVyLmdldEluc3RhbmNlKCkub3BlbkZvcm1Hb0ZpZ2h0UGFuZWwoZmFsc2UpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8v5b2T5YmN5LyZ5Ly05bey5L2/55So5qyh5pWwXG4gICAgc2VuZDI1NDE0KCl7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDI1NDE0LCB7fSlcbiAgICB9LFxuICAgIGhhbmRsZTI1NDE0KGRhdGEpe1xuICAgICAgICB0aGlzLm1vZGVsLnNldEhlcm9Vc2VJZChkYXRhLnBfbGlzdClcbiAgICB9LFxuICAgIG9wZW5MaW1pdEV4ZXJjaXNlQ2hhbmdlVmlldyhzdGF0dXMpe1xuICAgICAgICBpZihzdGF0dXMgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZighdGhpcy5saW1pdF9leGVyY2lzZV92aWV3KXtcbiAgICAgICAgICAgICAgICB2YXIgTGltaXRFeGVyY2lzZUNoYW5nZVdpbmRvdyA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX2NoYW5nZV93aW5kb3dcIilcbiAgICAgICAgICAgICAgICB0aGlzLmxpbWl0X2V4ZXJjaXNlX3ZpZXcgPSBuZXcgTGltaXRFeGVyY2lzZUNoYW5nZVdpbmRvdyh0aGlzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5saW1pdF9leGVyY2lzZV92aWV3Lm9wZW4oKVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlmKHRoaXMubGltaXRfZXhlcmNpc2Vfdmlldyl7IFxuICAgICAgICAgICAgICAgIHRoaXMubGltaXRfZXhlcmNpc2Vfdmlldy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5saW1pdF9leGVyY2lzZV92aWV3ID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL+aJk+W8gOafpeeci+WlluWKseeVjOmdolxuICAgIG9wZW5MaW1pdEV4ZXJjaXNlUmV3YXJkVmlldyhzdGF0dXMpe1xuICAgICAgICBpZihzdGF0dXMgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZighdGhpcy5vcGVuX3Jld2FyZF92aWV3KXtcbiAgICAgICAgICAgICAgICB2YXIgTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX3Jld2FyZF93aW5kb3dcIilcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5fcmV3YXJkX3ZpZXcgPSBuZXcgTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyh0aGlzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuX3Jld2FyZF92aWV3Lm9wZW4oKVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbl9yZXdhcmRfdmlldyl7IFxuICAgICAgICAgICAgICAgIHRoaXMub3Blbl9yZXdhcmRfdmlldy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuX3Jld2FyZF92aWV3ID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gTGltaXRleGVyY2lzZUNvbnRyb2xsZXI7Il19