(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/newfirstcharge/newfirstcharge_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, '966e4GnW1BIsIjuBPIZS+yw', 'newfirstcharge_controller'); // Scripts/mod/newfirstcharge/newfirstcharge_controller.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-03-22 11:01:46 // -------------------------------------------------------------------- var NewfirstchargeController = cc.Class({ "extends": BaseController, ctor: function ctor() {}, // 初始化配置数据 initConfig: function initConfig() { var NewfirstchargeModel = require("newfirstcharge_model"); this.model = new NewfirstchargeModel(); this.model.initConfig(); }, // 返回当前的model getModel: function getModel() { return this.model; }, // 注册监听事件 registerEvents: function registerEvents() {}, // 注册协议接受事件 registerProtocals: function registerProtocals() { this.RegisterProtocal(21012, this.handle21012); this.RegisterProtocal(21013, this.handle21013); this.RegisterProtocal(21014, this.handle21014); this.RegisterProtocal(21015, this.handle21015); this.RegisterProtocal(21000, this.handle21000); this.RegisterProtocal(21001, this.handle21001); }, openNewFirstChargeView: function openNewFirstChargeView(bool) { if (bool == true) { var MainuiController = require("mainui_controller"); var MainuiConst = require("mainui_const"); var first_icon = MainuiController.getInstance().getFunctionIconById(MainuiConst.icon.first_charge_new1); if (first_icon) { if (!this.new_first_charge_window) { this.new_first_charge_window = Utils.createClass("newfirstcharge1_window", this); } } var first_icon1 = MainuiController.getInstance().getFunctionIconById(MainuiConst.icon.first_charge_new); if (first_icon1) { if (!this.new_first_charge_window) { this.new_first_charge_window = Utils.createClass("newfirstcharge_window", this); } } if (!this.new_first_charge_window) return; var RoleController = require("role_controller"); var role_vo = RoleController.getInstance().getRoleVo(); var index = 1; if (role_vo.vip_exp != 0) { index = 2; } if (this.new_first_get_data) { // 首充是否可以领取 var first_status = false; for (var i = 1; i <= 3; i++) { if (this.new_first_get_data[i - 1] && this.new_first_get_data[i - 1].status == 1) { first_status = true; index = 1; break; } } // 累充是否可以领取 var total_status = false; for (var i = 4; i <= 6; i++) { if (this.new_first_get_data[i - 1] && this.new_first_get_data[i - 1].status == 1) { total_status = true; index = 2; break; } } if (first_status == true && total_status == true) { index = 1; } } this.new_first_charge_window.open(index); } else { if (this.new_first_charge_window) { this.new_first_charge_window.close(); this.new_first_charge_window = null; } } }, // 信息 sender21012: function sender21012() { this.SendProtocal(21012, {}); }, handle21012: function handle21012(data) { this.new_first_get_data = data.first_gift; //首充是否可领取的数据 this.model.setFirstBtnStatus(data.first_gift); var NewFirstChargeEvent = require("newfirstcharge_event"); gcore.GlobalEvent.fire(NewFirstChargeEvent.New_First_Charge_Event, data); }, // 领取 sender21013: function sender21013(id) { var proto = {}; proto.id = id; this.SendProtocal(21013, proto); }, handle21013: function handle21013(data) { message(data.msg); }, // 自选英雄 sender21014: function sender21014(id) { var proto = {}; proto.id = id; this.SendProtocal(21014, proto); }, handle21014: function handle21014(data) { message(data.msg); }, // 每日礼包红点 handle21015: function handle21015(data) { if (data.open_id && Utils.next(data.open_id) != null) {// WelfareController.getInstance().getModel().updateDailyGiftRedStatus(true) } }, //新版首充礼包信息 sender21000: function sender21000() { this.SendProtocal(21000, {}); }, handle21000: function handle21000(data) { this.new_first_get_data = data.first_gift; //--首充是否可领取的数据 this.model.setFirstBtnNewStatus(data.first_gift); var NewFirstChargeEvent = require("newfirstcharge_event"); gcore.GlobalEvent.fire(NewFirstChargeEvent.New_First_Charge_Event, data); }, //--领取新版首冲礼包 sender21001: function sender21001(id) { var protocal = {}; protocal.id = id; this.SendProtocal(21001, protocal); }, handle21001: function handle21001(data) { message(data.msg); }, getNewFirstChargeView: function getNewFirstChargeView() { return this.new_first_charge_window; }, __delete: function __delete() {// if(this.model != null){ // this.model.DeleteMe(); // this.model = null; // } } }); module.exports = NewfirstchargeController; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxuZXdmaXJzdGNoYXJnZVxcbmV3Zmlyc3RjaGFyZ2VfY29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJOZXdmaXJzdGNoYXJnZUNvbnRyb2xsZXIiLCJjYyIsIkNsYXNzIiwiQmFzZUNvbnRyb2xsZXIiLCJjdG9yIiwiaW5pdENvbmZpZyIsIk5ld2ZpcnN0Y2hhcmdlTW9kZWwiLCJyZXF1aXJlIiwibW9kZWwiLCJnZXRNb2RlbCIsInJlZ2lzdGVyRXZlbnRzIiwicmVnaXN0ZXJQcm90b2NhbHMiLCJSZWdpc3RlclByb3RvY2FsIiwiaGFuZGxlMjEwMTIiLCJoYW5kbGUyMTAxMyIsImhhbmRsZTIxMDE0IiwiaGFuZGxlMjEwMTUiLCJoYW5kbGUyMTAwMCIsImhhbmRsZTIxMDAxIiwib3Blbk5ld0ZpcnN0Q2hhcmdlVmlldyIsImJvb2wiLCJNYWludWlDb250cm9sbGVyIiwiTWFpbnVpQ29uc3QiLCJmaXJzdF9pY29uIiwiZ2V0SW5zdGFuY2UiLCJnZXRGdW5jdGlvbkljb25CeUlkIiwiaWNvbiIsImZpcnN0X2NoYXJnZV9uZXcxIiwibmV3X2ZpcnN0X2NoYXJnZV93aW5kb3ciLCJVdGlscyIsImNyZWF0ZUNsYXNzIiwiZmlyc3RfaWNvbjEiLCJmaXJzdF9jaGFyZ2VfbmV3IiwiUm9sZUNvbnRyb2xsZXIiLCJyb2xlX3ZvIiwiZ2V0Um9sZVZvIiwiaW5kZXgiLCJ2aXBfZXhwIiwibmV3X2ZpcnN0X2dldF9kYXRhIiwiZmlyc3Rfc3RhdHVzIiwiaSIsInN0YXR1cyIsInRvdGFsX3N0YXR1cyIsIm9wZW4iLCJjbG9zZSIsInNlbmRlcjIxMDEyIiwiU2VuZFByb3RvY2FsIiwiZGF0YSIsImZpcnN0X2dpZnQiLCJzZXRGaXJzdEJ0blN0YXR1cyIsIk5ld0ZpcnN0Q2hhcmdlRXZlbnQiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiZmlyZSIsIk5ld19GaXJzdF9DaGFyZ2VfRXZlbnQiLCJzZW5kZXIyMTAxMyIsImlkIiwicHJvdG8iLCJtZXNzYWdlIiwibXNnIiwic2VuZGVyMjEwMTQiLCJvcGVuX2lkIiwibmV4dCIsInNlbmRlcjIxMDAwIiwic2V0Rmlyc3RCdG5OZXdTdGF0dXMiLCJzZW5kZXIyMTAwMSIsInByb3RvY2FsIiwiZ2V0TmV3Rmlyc3RDaGFyZ2VWaWV3IiwiX19kZWxldGUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLHdCQUF3QixHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUNwQyxhQUFTQyxjQUQyQjtBQUVwQ0MsRUFBQUEsSUFBSSxFQUFFLGdCQUFZLENBQ2pCLENBSG1DO0FBS3BDO0FBQ0FDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixRQUFJQyxtQkFBbUIsR0FBR0MsT0FBTyxDQUFDLHNCQUFELENBQWpDOztBQUVBLFNBQUtDLEtBQUwsR0FBYSxJQUFJRixtQkFBSixFQUFiO0FBQ0EsU0FBS0UsS0FBTCxDQUFXSCxVQUFYO0FBQ0gsR0FYbUM7QUFhcEM7QUFDQUksRUFBQUEsUUFBUSxFQUFFLG9CQUFZO0FBQ2xCLFdBQU8sS0FBS0QsS0FBWjtBQUNILEdBaEJtQztBQWtCcEM7QUFDQUUsRUFBQUEsY0FBYyxFQUFFLDBCQUFZLENBQzNCLENBcEJtQztBQXNCcEM7QUFDQUMsRUFBQUEsaUJBQWlCLEVBQUUsNkJBQVk7QUFDM0IsU0FBS0MsZ0JBQUwsQ0FBc0IsS0FBdEIsRUFBNkIsS0FBS0MsV0FBbEM7QUFDQSxTQUFLRCxnQkFBTCxDQUFzQixLQUF0QixFQUE2QixLQUFLRSxXQUFsQztBQUNBLFNBQUtGLGdCQUFMLENBQXNCLEtBQXRCLEVBQTZCLEtBQUtHLFdBQWxDO0FBQ0EsU0FBS0gsZ0JBQUwsQ0FBc0IsS0FBdEIsRUFBNkIsS0FBS0ksV0FBbEM7QUFDQSxTQUFLSixnQkFBTCxDQUFzQixLQUF0QixFQUE2QixLQUFLSyxXQUFsQztBQUNBLFNBQUtMLGdCQUFMLENBQXNCLEtB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S3ZDLHVCQUFaO0FBQ0gsR0FuSm1DO0FBb0pwQ3dDLEVBQUFBLFFBQVEsRUFBQyxvQkFBVSxDQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUF6Sm1DLENBQVQsQ0FBL0I7QUE2SkFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQnRFLHdCQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHh4eEBzeWcuY29tKOW/heWhqywg5Yib5bu65qih5Z2X55qE5Lq65ZGYKVxuLy8gQGRlc2NyaXB0aW9uOlxuLy8gICAgICDov5nph4zloavlhpnor6bnu4bor7TmmI4s5Li76KaB5aGr5YaZ6K+l5qih5Z2X55qE5Yqf6IO9566A6KaBXG4vLyA8YnIvPkNyZWF0ZTogMjAxOS0wMy0yMiAxMTowMTo0NlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBOZXdmaXJzdGNoYXJnZUNvbnRyb2xsZXIgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNvbnRyb2xsZXIsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbphY3nva7mlbDmja5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBOZXdmaXJzdGNoYXJnZU1vZGVsID0gcmVxdWlyZShcIm5ld2ZpcnN0Y2hhcmdlX21vZGVsXCIpO1xuXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgTmV3Zmlyc3RjaGFyZ2VNb2RlbCgpO1xuICAgICAgICB0aGlzLm1vZGVsLmluaXRDb25maWcoKTtcbiAgICB9LFxuXG4gICAgLy8g6L+U5Zue5b2T5YmN55qEbW9kZWxcbiAgICBnZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM55uR5ZCs5LqL5Lu2XG4gICAgcmVnaXN0ZXJFdmVudHM6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM5Y2P6K6u5o6l5Y+X5LqL5Lu2XG4gICAgcmVnaXN0ZXJQcm90b2NhbHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMDEyLCB0aGlzLmhhbmRsZTIxMDEyKTtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMDEzLCB0aGlzLmhhbmRsZTIxMDEzKTtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMDE0LCB0aGlzLmhhbmRsZTIxMDE0KTtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMDE1LCB0aGlzLmhhbmRsZTIxMDE1KTtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMDAwLCB0aGlzLmhhbmRsZTIxMDAwKVxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjEwMDEsdGhpcy5oYW5kbGUyMTAwMSlcbiAgICB9LFxuXG4gICAgb3Blbk5ld0ZpcnN0Q2hhcmdlVmlldzpmdW5jdGlvbihib29sKXtcbiAgICAgICAgaWYoYm9vbCA9PSB0cnVlKXtcbiAgICAgICAgICAgIHZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpXG4gICAgICAgICAgICB2YXIgTWFpbnVpQ29uc3QgPSByZXF1aXJlKFwibWFpbnVpX2NvbnN0XCIpXG4gICAgICAgICAgICBsZXQgZmlyc3RfaWNvbiA9IE1haW51aUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRGdW5jdGlvbkljb25CeUlkKE1haW51aUNvbnN0Lmljb24uZmlyc3RfY2hhcmdlX25ldzEpXG4gICAgICAgICAgICBpZihmaXJzdF9pY29uKXtcbiAgICAgICAgICAgICAgICBpZighdGhpcy5uZXdfZmlyc3RfY2hhcmdlX3dpbmRvdyl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV3X2ZpcnN0X2NoYXJnZV93aW5kb3cgPSBVdGlscy5jcmVhdGVDbGFzcyhcIm5ld2ZpcnN0Y2hhcmdlMV93aW5kb3dcIix0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZmlyc3RfaWNvbjEgPSBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0RnVuY3Rpb25JY29uQnlJZChNYWludWlDb25zdC5pY29uLmZpcnN0X2NoYXJnZV9uZXcpXG4gICAgICAgICAgICBpZihmaXJzdF9pY29uMSl7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMubmV3X2ZpcnN0X2NoYXJnZV93aW5kb3cpe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld19maXJzdF9jaGFyZ2Vfd2luZG93ID0gVXRpbHMuY3JlYXRlQ2xhc3MoXCJuZXdmaXJzdGNoYXJnZV93aW5kb3dcIix0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZighdGhpcy5uZXdfZmlyc3RfY2hhcmdlX3dpbmRvdykgcmV0dXJuXG4gICAgICAgICAgICB2YXIgUm9sZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwicm9sZV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgdmFyIHJvbGVfdm8gPSBSb2xlQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldFJvbGVWbygpO1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gMTtcbiAgICAgICAgICAgIGlmKHJvbGVfdm8udmlwX2V4cCE9MCl7XG4gICAgICAgICAgICAgICAgaW5kZXggPSAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYodGhpcy5uZXdfZmlyc3RfZ2V0X2RhdGEpe1xuICAgICAgICAgICAgICAgIC8vIOmmluWFheaYr+WQpuWPr+S7pemihuWPllxuICAgICAgICAgICAgICAgIHZhciBmaXJzdF9zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAxO2k8PTM7aSsrKXtcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5uZXdfZmlyc3RfZ2V0X2RhdGFbaS0xXSAmJiB0aGlzLm5ld19maXJzdF9nZXRfZGF0YVtpLTFdLnN0YXR1cyA9PSAxKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X3N0YXR1cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyDntK/lhYXmmK/lkKblj6/ku6Xpooblj5ZcbiAgICAgICAgICAgICAgICB2YXIgdG90YWxfc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBpID0gNDtpPD02O2krKyl7XG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubmV3X2ZpcnN0X2dldF9kYXRhW2ktMV0gJiYgdGhpcy5uZXdfZmlyc3RfZ2V0X2RhdGFbaS0xXS5zdGF0dXMgPT0gMSl7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9zdGF0dXMgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZihmaXJzdF9zdGF0dXMgPT0gdHJ1ZSAmJiB0b3RhbF9zdGF0dXMgPT0gdHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5ld19maXJzdF9jaGFyZ2Vfd2luZG93Lm9wZW4oaW5kZXgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X2ZpcnN0X2NoYXJnZV93aW5kb3cpe1xuICAgICAgICAgICAgICAgIHRoaXMubmV3X2ZpcnN0X2NoYXJnZV93aW5kb3cuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19maXJzdF9jaGFyZ2Vfd2luZG93ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyAg5L+h5oGvXG4gICAgc2VuZGVyMjEwMTI6ZnVuY3Rpb24oKXtcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMjEwMTIse30pO1xuICAgIH0sXG5cbiAgICBoYW5kbGUyMTAxMjpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5uZXdfZmlyc3RfZ2V0X2RhdGEgPSBkYXRhLmZpcnN0X2dpZnQ7IC8v6aaW5YWF5piv5ZCm5Y+v6aKG5Y+W55qE5pWw5o2uXG4gICAgICAgIHRoaXMubW9kZWwuc2V0Rmlyc3RCdG5TdGF0dXMoZGF0YS5maXJzdF9naWZ0KTtcbiAgICAgICAgdmFyIE5ld0ZpcnN0Q2hhcmdlRXZlbnQgPSByZXF1aXJlKFwibmV3Zmlyc3RjaGFyZ2VfZXZlbnRcIik7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoTmV3Rmlyc3RDaGFyZ2VFdmVudC5OZXdfRmlyc3RfQ2hhcmdlX0V2ZW50LCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy8g6aKG5Y+WXG4gICAgc2VuZGVyMjEwMTM6ZnVuY3Rpb24oaWQpe1xuICAgICAgICB2YXIgcHJvdG8gPSB7fVxuICAgICAgICBwcm90by5pZCA9IGlkXG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDIxMDEzLHByb3RvKVxuICAgIH0sXG5cbiAgICBoYW5kbGUyMTAxMzpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZyk7XG4gICAgfSxcbiAgICBcbiAgICAvLyDoh6rpgInoi7Hpm4RcbiAgICBzZW5kZXIyMTAxNDpmdW5jdGlvbihpZCl7XG4gICAgICAgIHZhciBwcm90byA9IHt9O1xuICAgICAgICBwcm90by5pZCA9IGlkO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyMTAxNCxwcm90byk7XG4gICAgfSxcblxuICAgIGhhbmRsZTIxMDE0OmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKVxuICAgIH0sXG4gICAgLy8gIOavj+aXpeekvOWMhee6oueCuVxuICAgIGhhbmRsZTIxMDE1OmZ1bmN0aW9uKCBkYXRhICl7XG4gICAgICAgIGlmKGRhdGEub3Blbl9pZCAmJiBVdGlscy5uZXh0KGRhdGEub3Blbl9pZCkhPW51bGwpe1xuICAgICAgICAgICAgLy8gV2VsZmFyZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRNb2RlbCgpLnVwZGF0ZURhaWx5R2lmdFJlZFN0YXR1cyh0cnVlKVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL+aWsOeJiOmmluWFheekvOWMheS/oeaBr1xuICAgIHNlbmRlcjIxMDAwKCl7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDIxMDAwLCB7fSlcbiAgICB9LFxuICAgIGhhbmRsZTIxMDAwKGRhdGEpe1xuICAgICAgICB0aGlzLm5ld19maXJzdF9nZXRfZGF0YSA9IGRhdGEuZmlyc3RfZ2lmdCAvLy0t6aaW5YWF5piv5ZCm5Y+v6aKG5Y+W55qE5pWw5o2uXG4gICAgICAgIHRoaXMubW9kZWwuc2V0Rmlyc3RCdG5OZXdTdGF0dXMoZGF0YS5maXJzdF9naWZ0KVxuICAgICAgICB2YXIgTmV3Rmlyc3RDaGFyZ2VFdmVudCA9IHJlcXVpcmUoXCJuZXdmaXJzdGNoYXJnZV9ldmVudFwiKTtcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShOZXdGaXJzdENoYXJnZUV2ZW50Lk5ld19GaXJzdF9DaGFyZ2VfRXZlbnQsZGF0YSlcbiAgICB9LFxuICAgIC8vLS3pooblj5bmlrDniYjpppblhrLnpLzljIVcbiAgICBzZW5kZXIyMTAwMShpZCl7XG4gICAgICAgIGxldCBwcm90b2NhbCA9IHt9XG4gICAgICAgIHByb3RvY2FsLmlkID0gaWRcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMjEwMDEsIHByb3RvY2FsKVxuICAgIH0sXG4gICAgaGFuZGxlMjEwMDEoZGF0YSl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpXG4gICAgfSxcbiAgICBnZXROZXdGaXJzdENoYXJnZVZpZXcoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3X2ZpcnN0X2NoYXJnZV93aW5kb3dcbiAgICB9LFxuICAgIF9fZGVsZXRlOmZ1bmN0aW9uKCl7XG4gICAgICAgIC8vIGlmKHRoaXMubW9kZWwgIT0gbnVsbCl7XG4gICAgICAgIC8vICAgICB0aGlzLm1vZGVsLkRlbGV0ZU1lKCk7XG4gICAgICAgIC8vICAgICB0aGlzLm1vZGVsID0gbnVsbDtcbiAgICAgICAgLy8gfVxuICAgIH1cblxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gTmV3Zmlyc3RjaGFyZ2VDb250cm9sbGVyOyJdfQ==