difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/limitexercise/view/limitexercise_reward_window.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, 'c71aey4g2FN4YMVxS+TjXEn', 'limitexercise_reward_window');
// Scripts/mod/limitexercise/view/limitexercise_reward_window.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//     这里是描述这个窗体的作用的
// <br/>Create: 2019-09-11 15:50:59
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var LimitExerciseRewardItem = require("limit_exercise_reward_item_panel");
 
var Limitexercise_rewardWindow = cc.Class({
  "extends": BaseView,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("limitexercise", "reward_window");
    this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
 
    this.win_type = WinType.Mini; //是否是全屏窗体  WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
 
    this.ctrl = arguments[0];
  },
  // 初始化一些配置数据,可以用于声明一些变量之类的
  initConfig: function initConfig() {
    this.length = Config.holiday_boss_new_data.data_lev_reward_list_length;
    this.lev_reward_list = Config.holiday_boss_new_data.data_lev_reward_list;
    this.item_list = [];
    this.item_list_panel = [];
  },
  // 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
  openCallBack: function openCallBack() {
    this.background = this.root_wnd.getChildByName("background");
    var main_container = this.root_wnd.getChildByName("main_container");
    main_container.getChildByName("Image_2").getChildByName("Text_1").getComponent(cc.Label).string = Utils.TI18N("奖励详情");
    this.name = main_container.getChildByName("name").getComponent(cc.Label);
    this.name.string = "";
    this.btn_left = main_container.getChildByName("btn_left");
    this.btn_right = main_container.getChildByName("btn_right");
    var txt2 = main_container.getChildByName("Text_3").getComponent(cc.Label);
    txt2.string = Utils.TI18N("通关boss关卡即可升级结算奖励,完成所有关卡可直接获得\n当期奖励。若未完成所有关卡,奖励会在本期结束时邮件发放"); // let real_label = txt2.getVirtualRenderer()
    // if real_label then
    // real_label:setLineSpacing(10)
    // end
 
    this.item_scrollview = main_container.getChildByName("item_scrollview").getComponent(cc.ScrollView);
    this.btn_close = main_container.getChildByName("btn_close");
  },
  // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
  registerEvent: function registerEvent() {
    this.background.on("touchend", function () {
      this.ctrl.openLimitExerciseRewardView(false);
      Utils.playButtonSound(2);
    }, this);
    this.background.on("touchend", function () {
      this.ctrl.openLimitExerciseRewardView(false);
      Utils.playButtonSound(2);
    }, this);
    this.btn_close.on("click", function () {
      this.ctrl.openLimitExerciseRewardView(false);
      Utils.playButtonSound(2);
    }, this);
    this.btn_left.on('click', function () {
      this.show_minus();
      Utils.playButtonSound(3);
    }, this);
    this.btn_right.on('click', function () {
      this.show_add();
      Utils.playButtonSound(3);
    }, this);
  },
  // 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
  openRootWnd: function openRootWnd(params) {
    this.cur_index = this.ctrl.getModel().getCurrentDiff();
    this.dropItem(this.cur_index);
  },
  dropItem: function dropItem(id) {
    id = id || 0;
 
    if (id >= this.length + 1) {
      this.cur_index = this.length;
      message(Utils.TI18N("已经是最大等级啦~~~~"));
      return;
    }
 
    if (id <= 0) {
      this.cur_index = 1;
      message(Utils.TI18N("已经是最小等级啦~~~~"));
      return;
    }
 
    this.name.string = Utils.TI18N("难度 ") + id;
 
    if (id >= this.length) {
      id = this.length;
    }
 
    if (id <= 0) {
      id = 1;
    }
 
    if (!this.lev_reward_list[id]) return;
    var arr = [];
 
    for (var i in this.lev_reward_list[id]) {
      arr.push(this.lev_reward_list[id][i]);
    }
 
    arr.sort(function (a, b) {
      return a.order_id - b.order_id;
    });
 
    if (this.item_list.length == 0) {
      this.item_list = arr;
      this.timer = this.startUpdate(this.item_list.length, function (index) {
        var cell = this.createAreaChangeCell();
        cell.setPosition(0, -144 * index);
        cell.setData(this.item_list[index]);
        this.item_list_panel.push(cell);
      }.bind(this), 100);
    } else {
      this.item_list = arr;
 
      for (var _i = 0; _i < this.item_list.length; ++_i) {
        var cell = this.item_list_panel[_i];
 
        if (!cell) {
          cell = this.createAreaChangeCell();
          this.item_list_panel[_i] = cell;
        }
 
        this.item_list_panel[_i].setData(this.item_list[_i]);
      }
    }
 
    this.item_scrollview.content.height = 144 * this.item_list.length;
  },
  createAreaChangeCell: function createAreaChangeCell() {
    var item = new LimitExerciseRewardItem();
    item.setParent(this.item_scrollview.content);
    item.show();
    return item;
  },
  show_minus: function show_minus() {
    this.cur_index = this.cur_index - 1;
    this.dropItem(this.cur_index);
  },
  show_add: function show_add() {
    this.cur_index = this.cur_index + 1;
    this.dropItem(this.cur_index);
  },
  // 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
  closeCallBack: function closeCallBack() {
    if (this.item_list_panel) {
      for (var i = 0; i < this.item_list_panel.length; ++i) {
        if (this.item_list_panel[i]) {
          this.item_list_panel[i].deleteMe();
          this.item_list_panel[i] = null;
        }
      }
 
      this.item_list_panel = null;
    }
 
    if (this.timer) {
      this.stopUpdate(this.timer);
      this.timer = null;
    }
 
    this.ctrl.openLimitExerciseRewardView(false);
  }
});
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxsaW1pdGV4ZXJjaXNlXFx2aWV3XFxsaW1pdGV4ZXJjaXNlX3Jld2FyZF93aW5kb3cuanMiXSwibmFtZXMiOlsiUGF0aFRvb2wiLCJyZXF1aXJlIiwiTGltaXRFeGVyY2lzZVJld2FyZEl0ZW0iLCJMaW1pdGV4ZXJjaXNlX3Jld2FyZFdpbmRvdyIsImNjIiwiQ2xhc3MiLCJCYXNlVmlldyIsImN0b3IiLCJwcmVmYWJQYXRoIiwiZ2V0UHJlZmFiUGF0aCIsInZpZXdUYWciLCJTQ0VORV9UQUciLCJkaWFsb2d1ZSIsIndpbl90eXBlIiwiV2luVHlwZSIsIk1pbmkiLCJjdHJsIiwiYXJndW1lbnRzIiwiaW5pdENvbmZpZyIsImxlbmd0aCIsIkNvbmZpZyIsImhvbGlkYXlfYm9zc19uZXdfZGF0YSIsImRhdGFfbGV2X3Jld2FyZF9saXN0X2xlbmd0aCIsImxldl9yZXdhcmRfbGlzdCIsImRhdGFfbGV2X3Jld2FyZF9saXN0IiwiaXRlbV9saXN0IiwiaXRlbV9saXN0X3BhbmVsIiwib3BlbkNhbGxCYWNrIiwiYmFja2dyb3VuZCIsInJvb3Rfd25kIiwiZ2V0Q2hpbGRCeU5hbWUiLCJtYWluX2NvbnRhaW5lciIsImdldENvbXBvbmVudCIsIkxhYmVsIiwic3RyaW5nIiwiVXRpbHMiLCJUSTE4TiIsIm5hbWUiLCJidG5fbGVmdCIsImJ0bl9yaWdodCIsInR4dDIiLCJpdGVtX3Njcm9sbHZpZXciLCJTY3JvbGxWaWV3IiwiYnRuX2Nsb3NlIiwicmVnaXN0ZXJFdmVudCIsIm9uIiwib3BlbkxpbWl0RXhlcmNpc2VSZXdhcmRWaWV3IiwicGxheUJ1dHRvblNvdW5kIiwic2hvd19taW51cyIsInNob3dfYWRkIiwib3BlblJvb3RXbmQiLCJwYXJhbXMiLCJjdXJfaW5kZXgiLCJnZXRNb2RlbCIsImdldEN1cnJlbnREaWZmIiwiZHJvcEl0ZW0iLCJpZCIsIm1lc3NhZ2UiLCJhcnIiLCJpIiwicHVzaCIsInNvcnQiLCJhIiwiYiIsIm9yZGVyX2lkIiwidGltZXIiLCJzdGFydFVwZGF0ZSIsImluZGV4IiwiY2VsbCIsImNyZWF0ZUFyZWFDaGFuZ2VDZWxsIiwic2V0UG9zaXRpb24iLCJzZXREYXRhIiwiYmluZCIsImNvbnRlbnQiLCJoZWlnaHQiLCJpdGVtIiwic2V0UGFyZW50Iiwic2hvdyIsImNsb3NlQ2FsbEJhY2siLCJkZWxldGVNZSIsInN0b3BVcGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyx1QkFBdUIsR0FBR0QsT0FBTyxDQUFDLGtDQUFELENBQXJDOztBQUNBLElBQUlFLDBCQUEwQixHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUN0QyxhQUFTQyxRQUQ2QjtBQUV0Q0MsRUFBQUEsSUFBSSxFQUFFLGdCQUFZO0FBQ2QsU0FBS0MsVUFBTCxHQUFrQlIsUUFBUSxDQUFDUyxhQUFULENBQXVCLGVBQXZCLEVBQXdDLGVBQXhDLENBQWxCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQyxTQUFTLENBQUNDLFFBQXpCLENBRmMsQ0FFb0M7O0FBQ2xELFNBQUtDLFFBQUwsR0FBZ0JDLE9BQU8sQ0FBQ0MsSUFBeEIsQ0FIYyxDQUc4Qjs7QUFDNUMsU0FBS0MsSUFBTCxHQUFZQyxTQUFTLENBQUMsQ0FBRCxDQUFyQjtBQUNILEdBUHFDO0FBU3RDO0FBQ0FDLEVBQUFBLFVBQVUsRUFBQyxzQkFBVTtBQUNqQixTQUFLQyxNQUFMLEdBQWNDLE1BQU0sQ0FBQ0MscUJBQVAsQ0FBNkJDLDJCQUEzQztBQUNBLFNBQUtDLGVBQUwsR0FBdUJILE1BQU0sQ0FBQ0MscUJBQVAsQ0FBNkJHLG9CQUFwRDtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsRUFBakI7QUFDQSxTQUFLQyxlQUFMLEdBQXVCLEVBQXZCO0FBQ0gsR0FmcUM7QUFpQnRDO0FBQ0FDLEVBQUFBLFlBQVksRUFBQyx3QkFBVTtB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QWdCLEtBQUtmLEtBQXJCO0FBQ0EsV0FBS0EsS0FBTCxHQUFhLElBQWI7QUFDSDs7QUFDRCxTQUFLakQsSUFBTCxDQUFVOEIsMkJBQVYsQ0FBc0MsS0FBdEM7QUFDSDtBQW5KcUMsQ0FBVCxDQUFqQyIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHh4eEBzeWcuY29tKOW/heWhqywg5Yib5bu65qih5Z2X55qE5Lq65ZGYKVxuLy8gQGRlc2NyaXB0aW9uOlxuLy8gICAgIOi/memHjOaYr+aPj+i/sOi/meS4queql+S9k+eahOS9nOeUqOeahFxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDktMTEgMTU6NTA6NTlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgUGF0aFRvb2wgPSByZXF1aXJlKFwicGF0aHRvb2xcIik7XG52YXIgTGltaXRFeGVyY2lzZVJld2FyZEl0ZW0gPSByZXF1aXJlKFwibGltaXRfZXhlcmNpc2VfcmV3YXJkX2l0ZW1fcGFuZWxcIilcbnZhciBMaW1pdGV4ZXJjaXNlX3Jld2FyZFdpbmRvdyA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlVmlldyxcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMucHJlZmFiUGF0aCA9IFBhdGhUb29sLmdldFByZWZhYlBhdGgoXCJsaW1pdGV4ZXJjaXNlXCIsIFwicmV3YXJkX3dpbmRvd1wiKTtcbiAgICAgICAgdGhpcy52aWV3VGFnID0gU0NFTkVfVEFHLmRpYWxvZ3VlOyAgICAgICAgICAgICAgICAvL+ivpeeql+S9k+aJgOWxnnVp5bGC57qnLOWFqOWxj3Vp6ZyA6KaB5ZyodWnlsYIs6Z2e5YWo5bGPdWnlnKhkaWFsb2d1ZeWxgizov5nkuKropoHms6jmhI9cbiAgICAgICAgdGhpcy53aW5fdHlwZSA9IFdpblR5cGUuTWluaTsgICAgICAgICAgICAgICAvL+aYr+WQpuaYr+WFqOWxj+eql+S9kyAgV2luVHlwZS5GdWxsLCBXaW5UeXBlLkJpZywgV2luVHlwZS5NaW5pLCBXaW5UeXBlLlRpcHNcbiAgICAgICAgdGhpcy5jdHJsID0gYXJndW1lbnRzWzBdXG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMluS4gOS6m+mFjee9ruaVsOaNrizlj6/ku6XnlKjkuo7lo7DmmI7kuIDkupvlj5jph4/kuYvnsbvnmoRcbiAgICBpbml0Q29uZmlnOmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gQ29uZmlnLmhvbGlkYXlfYm9zc19uZXdfZGF0YS5kYXRhX2xldl9yZXdhcmRfbGlzdF9sZW5ndGhcbiAgICAgICAgdGhpcy5sZXZfcmV3YXJkX2xpc3QgPSBDb25maWcuaG9saWRheV9ib3NzX25ld19kYXRhLmRhdGFfbGV2X3Jld2FyZF9saXN0XG4gICAgICAgIHRoaXMuaXRlbV9saXN0ID0gW11cbiAgICAgICAgdGhpcy5pdGVtX2xpc3RfcGFuZWwgPSBbXVxuICAgIH0sXG5cbiAgICAvLyDpooTliLbkvZPliqDovb3lrozmiJDkuYvlkI7nmoTlm57osIMs5Y+v5Lul5Zyo6L+Z6YeM5o2V6I6355u45YWz6IqC54K55oiW6ICF57uE5Lu2XG4gICAgb3BlbkNhbGxCYWNrOmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZCA9IHRoaXMucm9vdF93bmQuZ2V0Q2hpbGRCeU5hbWUoXCJiYWNrZ3JvdW5kXCIpXG4gICAgICAgIGxldCBtYWluX2NvbnRhaW5lciA9IHRoaXMucm9vdF93bmQuZ2V0Q2hpbGRCeU5hbWUoXCJtYWluX2NvbnRhaW5lclwiKVxuICAgICAgICBtYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcIkltYWdlXzJcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUZXh0XzFcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSAoVXRpbHMuVEkxOE4oXCLlpZblirHor6bmg4VcIikpXG4gICAgICAgIHRoaXMubmFtZSA9IG1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwibmFtZVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpXG4gICAgICAgIHRoaXMubmFtZS5zdHJpbmcgPSAoXCJcIilcbiAgICAgICAgdGhpcy5idG5fbGVmdCA9IG1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiYnRuX2xlZnRcIilcbiAgICAgICAgdGhpcy5idG5fcmlnaHQgPSBtYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcImJ0bl9yaWdodFwiKVxuICAgICAgICBsZXQgdHh0MiA9IG1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiVGV4dF8zXCIpLmdldENvbXBvbmVudChjYy5MYWJlbClcbiAgICAgICAgdHh0Mi5zdHJpbmcgPSAoVXRpbHMuVEkxOE4oXCLpgJrlhbNib3Nz5YWz5Y2h5Y2z5Y+v5Y2H57qn57uT566X5aWW5Yqx77yM5a6M5oiQ5omA5pyJ5YWz5Y2h5Y+v55u05o6l6I635b6XXFxu5b2T5pyf5aWW5Yqx44CC6Iul5pyq5a6M5oiQ5omA5pyJ5YWz5Y2h77yM5aWW5Yqx5Lya5Zyo5pys5pyf57uT5p2f5pe26YKu5Lu25Y+R5pS+XCIpKVxuICAgICAgICAvLyBsZXQgcmVhbF9sYWJlbCA9IHR4dDIuZ2V0VmlydHVhbFJlbmRlcmVyKClcbiAgICAgICAgLy8gaWYgcmVhbF9sYWJlbCB0aGVuXG4gICAgICAgICAgICAvLyByZWFsX2xhYmVsOnNldExpbmVTcGFjaW5nKDEwKVxuICAgICAgICAvLyBlbmRcbiAgICBcbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcgPSBtYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcIml0ZW1fc2Nyb2xsdmlld1wiKS5nZXRDb21wb25lbnQoY2MuU2Nyb2xsVmlldylcbiAgICAgICAgdGhpcy5idG5fY2xvc2UgPSBtYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcImJ0bl9jbG9zZVwiKVxuXG4gICAgfSxcblxuICAgIC8vIOazqOWGjOS6i+S7tuebkeWQrOeahOaOpeWPoyzkuI3pnIDopoHmiYvliqjosIPnlKgs5aaC5p6c5piv5L2/55SoZ2NvcmUuR2xvYmFsRXZlbnTnm5HlkKws5Y+v5Lul55u05o6l6LCD55SoYWRkR2xvYmFsRXZlbnRcbiAgICByZWdpc3RlckV2ZW50OmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZC5vbihcInRvdWNoZW5kXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRoaXMuY3RybC5vcGVuTGltaXRFeGVyY2lzZVJld2FyZFZpZXcoZmFsc2UpXG4gICAgICAgICAgICBVdGlscy5wbGF5QnV0dG9uU291bmQoMilcbiAgICAgICAgfSx0aGlzKVxuICAgICAgICB0aGlzLmJhY2tncm91bmQub24oXCJ0b3VjaGVuZFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0aGlzLmN0cmwub3BlbkxpbWl0RXhlcmNpc2VSZXdhcmRWaWV3KGZhbHNlKVxuICAgICAgICAgICAgVXRpbHMucGxheUJ1dHRvblNvdW5kKDIpXG4gICAgICAgIH0sdGhpcylcbiAgICAgICAgdGhpcy5idG5fY2xvc2Uub24oXCJjbGlja1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0aGlzLmN0cmwub3BlbkxpbWl0RXhlcmNpc2VSZXdhcmRWaWV3KGZhbHNlKVxuICAgICAgICAgICAgVXRpbHMucGxheUJ1dHRvblNvdW5kKDIpXG4gICAgICAgIH0sdGhpcylcbiAgICAgICAgdGhpcy5idG5fbGVmdC5vbignY2xpY2snLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0aGlzLnNob3dfbWludXMoKVxuICAgICAgICAgICAgVXRpbHMucGxheUJ1dHRvblNvdW5kKDMpXG4gICAgICAgIH0sdGhpcylcbiAgICAgICAgdGhpcy5idG5fcmlnaHQub24oJ2NsaWNrJyxmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGhpcy5zaG93X2FkZCgpXG4gICAgICAgICAgICBVdGlscy5wbGF5QnV0dG9uU291bmQoMylcbiAgICAgICAgfSx0aGlzKVxuICAgIH0sXG5cbiAgICAvLyDpooTliLbkvZPliqDovb3lrozmiJDkuYvlkI4s5re75Yqg5Yiw5a+55bqU5Li76IqC54K55LmL5ZCO55qE5Zue6LCDLOS5n+WwseaYr+S4gOS4queql+S9k+eahOato+W8j+WFpeWPoyzlj6/ku6Xorr7nva7kuIDkupvmlbDmja7kuoZcbiAgICBvcGVuUm9vdFduZDpmdW5jdGlvbihwYXJhbXMpe1xuICAgICAgICB0aGlzLmN1cl9pbmRleCA9IHRoaXMuY3RybC5nZXRNb2RlbCgpLmdldEN1cnJlbnREaWZmKClcbiAgICAgICAgdGhpcy5kcm9wSXRlbSh0aGlzLmN1cl9pbmRleClcbiAgICB9LFxuICAgIGRyb3BJdGVtKGlkKXtcbiAgICAgICAgaWQgPSBpZCB8fCAwXG4gICAgICAgIGlmKGlkID49ICh0aGlzLmxlbmd0aCsxKSl7XG4gICAgICAgICAgICB0aGlzLmN1cl9pbmRleCA9IHRoaXMubGVuZ3RoXG4gICAgICAgICAgICBtZXNzYWdlKFV0aWxzLlRJMThOKFwi5bey57uP5piv5pyA5aSn562J57qn5ZWmfn5+flwiKSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmKGlkIDw9IDApe1xuICAgICAgICAgICAgdGhpcy5jdXJfaW5kZXggPSAxXG4gICAgICAgICAgICBtZXNzYWdlKFV0aWxzLlRJMThOKFwi5bey57uP5piv5pyA5bCP562J57qn5ZWmfn5+flwiKSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgXG4gICAgICAgIHRoaXMubmFtZS5zdHJpbmcgPSAoVXRpbHMuVEkxOE4oXCLpmr7luqYgXCIpK2lkKVxuICAgICAgICBpZihpZCA+PSB0aGlzLmxlbmd0aCl7XG4gICAgICAgICAgICBpZCA9IHRoaXMubGVuZ3RoXG4gICAgICAgIH1cbiAgICAgICAgaWYoaWQgPD0gMCl7XG4gICAgICAgICAgICBpZCA9IDFcbiAgICAgICAgfVxuICAgICAgICBpZighdGhpcy5sZXZfcmV3YXJkX2xpc3RbaWRdKSByZXR1cm47XG4gICAgICAgIGxldCBhcnIgPSBbXVxuICAgICAgICBmb3IobGV0IGkgaW4gdGhpcy5sZXZfcmV3YXJkX2xpc3RbaWRdKXtcbiAgICAgICAgICAgIGFyci5wdXNoKHRoaXMubGV2X3Jld2FyZF9saXN0W2lkXVtpXSkgICBcbiAgICAgICAgfVxuICAgICAgICBhcnIuc29ydChmdW5jdGlvbihhLGIpe1xuICAgICAgICAgICAgcmV0dXJuIGEub3JkZXJfaWQgLSBiLm9yZGVyX2lkXG4gICAgICAgIH0pXG4gICAgICAgIGlmKHRoaXMuaXRlbV9saXN0Lmxlbmd0aCA9PSAwKXtcbiAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0ID0gYXJyXG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gdGhpcy5zdGFydFVwZGF0ZSh0aGlzLml0ZW1fbGlzdC5sZW5ndGgsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgIGxldCBjZWxsID0gdGhpcy5jcmVhdGVBcmVhQ2hhbmdlQ2VsbCgpXG4gICAgICAgICAgICAgICAgY2VsbC5zZXRQb3NpdGlvbigwLC0xNDQqaW5kZXgpXG4gICAgICAgICAgICAgICAgY2VsbC5zZXREYXRhKHRoaXMuaXRlbV9saXN0W2luZGV4XSlcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1fbGlzdF9wYW5lbC5wdXNoKGNlbGwpXG4gICAgICAgICAgICB9LmJpbmQodGhpcyksMTAwKVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0ID0gYXJyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDtpPHRoaXMuaXRlbV9saXN0Lmxlbmd0aDsrK2kpe1xuICAgICAgICAgICAgICAgIGxldCBjZWxsID0gdGhpcy5pdGVtX2xpc3RfcGFuZWxbaV1cbiAgICAgICAgICAgICAgICBpZighY2VsbCl7XG4gICAgICAgICAgICAgICAgICAgIGNlbGwgPSB0aGlzLmNyZWF0ZUFyZWFDaGFuZ2VDZWxsKClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtX2xpc3RfcGFuZWxbaV0gPSBjZWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0X3BhbmVsW2ldLnNldERhdGEodGhpcy5pdGVtX2xpc3RbaV0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcuY29udGVudC5oZWlnaHQgPSAxNDQgKiB0aGlzLml0ZW1fbGlzdC5sZW5ndGg7XG5cbiAgICB9LFxuICAgIGNyZWF0ZUFyZWFDaGFuZ2VDZWxsKCl7XG4gICAgICAgIGxldCBpdGVtID0gbmV3IExpbWl0RXhlcmNpc2VSZXdhcmRJdGVtKCk7XG4gICAgICAgIGl0ZW0uc2V0UGFyZW50KHRoaXMuaXRlbV9zY3JvbGx2aWV3LmNvbnRlbnQpXG4gICAgICAgIGl0ZW0uc2hvdygpXG4gICAgICAgIHJldHVybiBpdGVtXG4gICAgfSxcbiAgICBzaG93X21pbnVzKCl7XG4gICAgICAgIHRoaXMuY3VyX2luZGV4ID0gdGhpcy5jdXJfaW5kZXggLSAxXG4gICAgICAgIHRoaXMuZHJvcEl0ZW0odGhpcy5jdXJfaW5kZXgpXG4gICAgfSxcbiAgICBzaG93X2FkZCgpe1xuICAgICAgICB0aGlzLmN1cl9pbmRleCA9IHRoaXMuY3VyX2luZGV4ICsgMVxuICAgICAgICB0aGlzLmRyb3BJdGVtKHRoaXMuY3VyX2luZGV4KVxuICAgIH0sXG4gICAgLy8g5YWz6Zet56qX5L2T5Zue6LCDLOmcgOimgeWcqOi/memHjOiwg+eUqOivpeeql+S9k+aJgOWxnmNvbnRyb2xsZXLnmoRjbG9zZeaWueazleayoeeUqOS6jue9ruepuuivpeeql+S9k+WunuS+i+WvueixoVxuICAgIGNsb3NlQ2FsbEJhY2s6ZnVuY3Rpb24oKXtcbiAgICAgICAgaWYodGhpcy5pdGVtX2xpc3RfcGFuZWwpe1xuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTx0aGlzLml0ZW1fbGlzdF9wYW5lbC5sZW5ndGg7KytpKXtcbiAgICAgICAgICAgICAgICBpZih0aGlzLml0ZW1fbGlzdF9wYW5lbFtpXSl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0X3BhbmVsW2ldLmRlbGV0ZU1lKClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtX2xpc3RfcGFuZWxbaV0gPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0X3BhbmVsID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnRpbWVyKXtcbiAgICAgICAgICAgIHRoaXMuc3RvcFVwZGF0ZSh0aGlzLnRpbWVyKVxuICAgICAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdHJsLm9wZW5MaW1pdEV4ZXJjaXNlUmV3YXJkVmlldyhmYWxzZSlcbiAgICB9LFxufSkiXX0=