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
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/common/common_explain_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, '30b0bjFY85GjrR9Du6UKr6X', 'common_explain_window');
// Scripts/common/common_explain_window.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
//      通用的规则说明面板,只需要传固定格式的就行了
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var CommonExplainWindow = cc.Class({
  "extends": BaseView,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("common", "common_explain_view");
    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.max_height = 0;
    this.cache_list = [];
    this.title_str = Utils.TI18N("规则");
    this.color_1 = new cc.Color(0x68, 0x45, 0x2a, 0xff);
  },
  openCallBack: function openCallBack() {
    this.background = this.root_wnd.getChildByName("background");
    this.background.scale = FIT_SCALE;
    this.container = this.root_wnd.getChildByName("container");
    this.close_btn = this.container.getChildByName("close_btn");
    this.scroll_view = this.container.getChildByName("scroll_view");
    this.scroll_content = this.scroll_view.getChildByName("content");
    this.scroll_view_compend = this.scroll_view.getComponent(cc.ScrollView);
    this.scroll_width = this.scroll_view.getContentSize().width;
    this.scroll_height = this.scroll_view.getContentSize().height;
    this.win_title = this.container.getChildByName("win_title").getComponent(cc.Label);
    this.win_title.string = this.title_str;
  },
  registerEvent: function registerEvent() {
    Utils.onTouchEnd(this.background, function () {
      this.ctrl.openCommonExplainView(false);
    }.bind(this), 2);
    Utils.onTouchEnd(this.close_btn, function () {
      this.ctrl.openCommonExplainView(false);
    }.bind(this), 2);
  },
  openRootWnd: function openRootWnd(tmpInfo) {
    if (tmpInfo && tmpInfo.length >= 2) {
      this.title_str = tmpInfo[1];
      this.setDataList(tmpInfo[0]);
    }
  },
  setDataList: function setDataList(list) {
    this.render_list = list;
 
    for (var i in this.render_list) {
      gcore.Timer.set(function (v) {
        this.createList(v);
      }.bind(this, this.render_list[i]), i / 60, 1, "render_list" + i);
    }
  },
  createList: function createList(data) {
    var info = this.createTitleContent(data);
    this.scroll_content.addChild(info.container);
    this.cache_list.push(info.container);
    this.max_height = this.max_height + info.height + 30;
    var max_height = Math.max(this.max_height, this.scroll_height);
    this.scroll_content.setContentSize(cc.size(this.scroll_width, max_height));
    var off_y = 0;
 
    for (var i in this.cache_list) {
      this.cache_list[i].setPosition(8, max_height - off_y);
      off_y = off_y + this.cache_list[i].getContentSize().height + 30;
    }
 
    this.scroll_view_compend.scrollToTop(0);
  },
  createTitleContent: function createTitleContent(data) {
    if (data == null) return;
    var container = new cc.Node();
    container.setAnchorPoint(cc.v2(0, 1));
    var _height = 0;
 
    if (data.title == " " || data.title == "") {
      var content = Utils.createRichLabel(24, this.color_1, cc.v2(0, 1), cc.v2(0, 0), 30, 605);
      content.horizontalAlign = cc.macro.TextAlignment.LEFT;
      content.string = Utils.splitDataStr(data.desc);
      container.addChild(content.node);
 
      var _width = this.scroll_width - 8;
 
      _height = content.node.getContentSize().height;
      container.node.setContentSize(cc.size(_width, _height));
      content.node.y = _height - 8;
    } else {
      //  重新矫正一下位置坐标
      var title_bg = Utils.createImage(container, null, 0, 0, cc.v2(0, 1), true, 0, true);
      title_bg.type = cc.Sprite.Type.SLICED;
      title_bg.sizeMode = cc.Sprite.SizeMode.CUSTOM;
      title_bg.node.setContentSize(cc.size(617, 44));
      var title = Utils.createLabel(26, this.color_1, null, 5, -title_bg.node.height * 0.5, data.title, title_bg.node, 0, cc.v2(0, 0.5));
      this.loadRes(PathTool.getCommonIcomPath("common_90025"), function (resObject) {
        title_bg.spriteFrame = resObject;
      }.bind(this));
      var content = Utils.createRichLabel(24, this.color_1, cc.v2(0, 1), cc.v2(0, 0), 30, 605);
      content.horizontalAlign = cc.macro.TextAlignment.LEFT;
      content.string = Utils.splitDataStr(data.desc);
      container.addChild(content.node);
 
      var _width = this.scroll_width - 8;
 
      _height = title_bg.node.height + content.node.height;
      container.setContentSize(cc.size(_width, _height));
      title_bg.node.y = 0;
      content.node.y = title_bg.node.y - title_bg.node.height - 8;
    }
 
    return {
      container: container,
      height: _height
    };
  },
  closeCallBack: function closeCallBack() {
    if (this.render_list) {
      for (var i in this.render_list) {
        gcore.Timer.del("render_list" + i);
      }
    }
 
    this.cache_list = null;
    this.title_str = null;
    this.max_height = null;
    this.ctrl.openCommonExplainView(false);
  }
});
module.exports = CommonExplainWindow;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcY29tbW9uXFxjb21tb25fZXhwbGFpbl93aW5kb3cuanMiXSwibmFtZXMiOlsiUGF0aFRvb2wiLCJyZXF1aXJlIiwiQ29tbW9uRXhwbGFpbldpbmRvdyIsImNjIiwiQ2xhc3MiLCJCYXNlVmlldyIsImN0b3IiLCJwcmVmYWJQYXRoIiwiZ2V0UHJlZmFiUGF0aCIsInZpZXdUYWciLCJTQ0VORV9UQUciLCJkaWFsb2d1ZSIsIndpbl90eXBlIiwiV2luVHlwZSIsIk1pbmkiLCJjdHJsIiwiYXJndW1lbnRzIiwiaW5pdENvbmZpZyIsIm1heF9oZWlnaHQiLCJjYWNoZV9saXN0IiwidGl0bGVfc3RyIiwiVXRpbHMiLCJUSTE4TiIsImNvbG9yXzEiLCJDb2xvciIsIm9wZW5DYWxsQmFjayIsImJhY2tncm91bmQiLCJyb290X3duZCIsImdldENoaWxkQnlOYW1lIiwic2NhbGUiLCJGSVRfU0NBTEUiLCJjb250YWluZXIiLCJjbG9zZV9idG4iLCJzY3JvbGxfdmlldyIsInNjcm9sbF9jb250ZW50Iiwic2Nyb2xsX3ZpZXdfY29tcGVuZCIsImdldENvbXBvbmVudCIsIlNjcm9sbFZpZXciLCJzY3JvbGxfd2lkdGgiLCJnZXRDb250ZW50U2l6ZSIsIndpZHRoIiwic2Nyb2xsX2hlaWdodCIsImhlaWdodCIsIndpbl90aXRsZSIsIkxhYmVsIiwic3RyaW5nIiwicmVnaXN0ZXJFdmVudCIsIm9uVG91Y2hFbmQiLCJvcGVuQ29tbW9uRXhwbGFpblZpZXciLCJiaW5kIiwib3BlblJvb3RXbmQiLCJ0bXBJbmZvIiwibGVuZ3RoIiwic2V0RGF0YUxpc3QiLCJsaXN0IiwicmVuZGVyX2xpc3QiLCJpIiwiZ2NvcmUiLCJUaW1lciIsInNldCIsInYiLCJjcmVhdGVMaXN0IiwiZGF0YSIsImluZm8iLCJjcmVhdGVUaXRsZUNvbnRlbnQiLCJhZGRDaGlsZCIsInB1c2giLCJNYXRoIiwibWF4Iiwic2V0Q29udGVudFNpemUiLCJzaXplIiwib2ZmX3kiLCJzZXRQb3NpdGlvbiIsInNjcm9sbFRvVG9wIiwiTm9kZSIsInNldEFuY2hvclBvaW50IiwidjIiLCJfaGVpZ2h0IiwidGl0bGUiLCJjb250ZW50IiwiY3JlYXRlUmljaExhYmVsIiwiaG9yaXpvbnRhbEFsaWduIiwibWFjcm8iLCJUZXh0QWxpZ25tZW50IiwiTEVGVCIsInNwbGl0RGF0YVN0ciIsImRlc2MiLCJub2RlIiwiX3dpZHRoIiwieSIsInRpdGxlX2JnIiwiY3JlYXRlSW1hZ2UiLCJ0eXBlIiwiU3ByaXRlIiwiVHlwZSIsIlNMSUNFRCIsInNpemVNb2RlIiwiU2l6ZU1vZGUiLCJDVVNUT00iLCJjcmVhdGVMYWJlbCIsImxvYWRSZXMiLCJnZXRDb21tb25JY29tUGF0aCIsInJlc09iamVjdCIsInNwcml0ZUZyYW1lIiwiY2xvc2VDYWxsQmFjayIsImRlbCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFFQSxJQUFJQyxtQkFBbUIsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDL0IsYUFBU0MsUUFEc0I7QUFHL0JDLEVBQUFBLElBQUksRUFBQyxnQkFBVTtBQUNYLFNBQUtDLFVBQUwsR0FBa0JQLFFBQVEsQ0FBQ1EsYUFBVCxDQUF1QixRQUF2QixFQUFpQyxxQkFBakMsQ0FBbEI7QUFDQSxTQUFLQyxPQUFMLEdBQWVDLFNBQVMsQ0FBQ0MsUUFBekIsQ0FGVyxDQUV1Qzs7QUFDbEQsU0FBS0MsUUFBTCxHQUFnQkMsT0FBTyxDQUFDQyxJQUF4QixDQUhXLENBR2lDOztBQUM1QyxTQUFLQyxJQUFMLEdBQVlDLFNBQVMsQ0FBQyxDQUFELENBQXJCO0FBQ0gsR0FSOEI7QUFVL0I7QUFDQUMsRUFBQUEsVUFBVSxFQUFDLHNCQUFVO0FBQ2pCLFNBQUtDLFVBQUwsR0FBa0IsQ0FBbEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtC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LHlCQUFZO0FBQ3ZCLFFBQUcsS0FBS2pELFdBQVIsRUFBb0I7QUFDaEIsV0FBSSxJQUFJQyxDQUFSLElBQWEsS0FBS0QsV0FBbEIsRUFBOEI7QUFDMUJFLFFBQUFBLEtBQUssQ0FBQ0MsS0FBTixDQUFZK0MsR0FBWixDQUFnQixnQkFBY2pELENBQTlCO0FBQ0g7QUFDSjs7QUFDRCxTQUFLckMsVUFBTCxHQUFpQixJQUFqQjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDQSxTQUFLRixVQUFMLEdBQWtCLElBQWxCO0FBQ0EsU0FBS0gsSUFBTCxDQUFVaUMscUJBQVYsQ0FBZ0MsS0FBaEM7QUFDSDtBQW5JOEIsQ0FBVCxDQUExQjtBQXNJQTBELE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQnpHLG1CQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHNoaXJhaG9Ac3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg6YCa55So55qE6KeE5YiZ6K+05piO6Z2i5p2/LOWPqumcgOimgeS8oOWbuuWumuagvOW8j+eahOWwseihjOS6hlxuLy8gPGJyLz5DcmVhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIFBhdGhUb29sID0gcmVxdWlyZShcInBhdGh0b29sXCIpO1xuXG52YXIgQ29tbW9uRXhwbGFpbldpbmRvdyA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlVmlldyxcblxuICAgIGN0b3I6ZnVuY3Rpb24oKXtcbiAgICAgICAgdGhpcy5wcmVmYWJQYXRoID0gUGF0aFRvb2wuZ2V0UHJlZmFiUGF0aChcImNvbW1vblwiLCBcImNvbW1vbl9leHBsYWluX3ZpZXdcIik7XG4gICAgICAgIHRoaXMudmlld1RhZyA9IFNDRU5FX1RBRy5kaWFsb2d1ZTsgICAgICAgICAgICAgICAgLy/or6XnqpfkvZPmiYDlsZ51aeWxgue6pyzlhajlsY91aemcgOimgeWcqHVp5bGCLOmdnuWFqOWxj3Vp5ZyoZGlhbG9ndWXlsYIs6L+Z5Liq6KaB5rOo5oSPXG4gICAgICAgIHRoaXMud2luX3R5cGUgPSBXaW5UeXBlLk1pbmk7ICAgICAgICAgICAgICAgLy/mmK/lkKbmmK/lhajlsY/nqpfkvZMgIFdpblR5cGUuRnVsbCwgV2luVHlwZS5CaWcsIFdpblR5cGUuTWluaSwgV2luVHlwZS5UaXBzXG4gICAgICAgIHRoaXMuY3RybCA9IGFyZ3VtZW50c1swXTtcbiAgICB9LFxuXG4gICAgLy8g5Yid5aeL5YyW5LiA5Lqb6YWN572u5pWw5o2uLOWPr+S7peeUqOS6juWjsOaYjuS4gOS6m+WPmOmHj+S5i+exu+eahFxuICAgIGluaXRDb25maWc6ZnVuY3Rpb24oKXtcbiAgICAgICAgdGhpcy5tYXhfaGVpZ2h0ID0gMDtcbiAgICAgICAgdGhpcy5jYWNoZV9saXN0ID0gW107XG4gICAgICAgIHRoaXMudGl0bGVfc3RyID0gVXRpbHMuVEkxOE4oXCLop4TliJlcIik7XG4gICAgICAgIHRoaXMuY29sb3JfMSA9IG5ldyBjYy5Db2xvcigweDY4LDB4NDUsMHgyYSwgMHhmZik7XG4gICAgfSxcblxuICAgIG9wZW5DYWxsQmFjazogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmJhY2tncm91bmQgPSB0aGlzLnJvb3Rfd25kLmdldENoaWxkQnlOYW1lKFwiYmFja2dyb3VuZFwiKTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kLnNjYWxlID0gRklUX1NDQUxFO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMucm9vdF93bmQuZ2V0Q2hpbGRCeU5hbWUoXCJjb250YWluZXJcIik7XG4gICAgICAgIHRoaXMuY2xvc2VfYnRuID0gdGhpcy5jb250YWluZXIuZ2V0Q2hpbGRCeU5hbWUoXCJjbG9zZV9idG5cIik7XG4gICAgICAgIHRoaXMuc2Nyb2xsX3ZpZXcgPSB0aGlzLmNvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcInNjcm9sbF92aWV3XCIpO1xuICAgICAgICB0aGlzLnNjcm9sbF9jb250ZW50ID0gdGhpcy5zY3JvbGxfdmlldy5nZXRDaGlsZEJ5TmFtZShcImNvbnRlbnRcIik7XG4gICAgICAgIHRoaXMuc2Nyb2xsX3ZpZXdfY29tcGVuZCA9IHRoaXMuc2Nyb2xsX3ZpZXcuZ2V0Q29tcG9uZW50KGNjLlNjcm9sbFZpZXcpXG5cbiAgICAgICAgdGhpcy5zY3JvbGxfd2lkdGggPSB0aGlzLnNjcm9sbF92aWV3LmdldENvbnRlbnRTaXplKCkud2lkdGg7XG4gICAgICAgIHRoaXMuc2Nyb2xsX2hlaWdodCA9IHRoaXMuc2Nyb2xsX3ZpZXcuZ2V0Q29udGVudFNpemUoKS5oZWlnaHQ7XG4gICAgICAgIHRoaXMud2luX3RpdGxlID0gdGhpcy5jb250YWluZXIuZ2V0Q2hpbGRCeU5hbWUoXCJ3aW5fdGl0bGVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcbiAgICAgICAgdGhpcy53aW5fdGl0bGUuc3RyaW5nID0gdGhpcy50aXRsZV9zdHI7XG4gICAgfSxcblxuICAgIHJlZ2lzdGVyRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgVXRpbHMub25Ub3VjaEVuZCh0aGlzLmJhY2tncm91bmQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuY3RybC5vcGVuQ29tbW9uRXhwbGFpblZpZXcoZmFsc2UpO1xuICAgICAgICB9LmJpbmQodGhpcyksIDIpO1xuXG4gICAgICAgIFV0aWxzLm9uVG91Y2hFbmQodGhpcy5jbG9zZV9idG4sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuY3RybC5vcGVuQ29tbW9uRXhwbGFpblZpZXcoZmFsc2UpO1xuICAgICAgICB9LmJpbmQodGhpcyksIDIpO1xuICAgIH0sXG5cbiAgICBvcGVuUm9vdFduZDogZnVuY3Rpb24odG1wSW5mbykge1xuICAgICAgICBpZih0bXBJbmZvICYmIHRtcEluZm8ubGVuZ3RoPj0yKXtcbiAgICAgICAgICAgIHRoaXMudGl0bGVfc3RyID0gdG1wSW5mb1sxXTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YUxpc3QodG1wSW5mb1swXSlcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzZXREYXRhTGlzdDpmdW5jdGlvbihsaXN0KXtcbiAgICAgICAgdGhpcy5yZW5kZXJfbGlzdCA9IGxpc3Q7XG4gICAgICAgIGZvcih2YXIgaSBpbiB0aGlzLnJlbmRlcl9saXN0KXtcbiAgICAgICAgICAgIGdjb3JlLlRpbWVyLnNldChmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTGlzdCh2KTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzLHRoaXMucmVuZGVyX2xpc3RbaV0pLCBpIC8gNjAsIDEsXCJyZW5kZXJfbGlzdFwiK2kpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNyZWF0ZUxpc3Q6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIHZhciBpbmZvID0gdGhpcy5jcmVhdGVUaXRsZUNvbnRlbnQoZGF0YSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsX2NvbnRlbnQuYWRkQ2hpbGQoaW5mby5jb250YWluZXIpO1xuXG4gICAgICAgIHRoaXMuY2FjaGVfbGlzdC5wdXNoKGluZm8uY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5tYXhfaGVpZ2h0ID0gdGhpcy5tYXhfaGVpZ2h0ICsgaW5mby5oZWlnaHQgKyAzMDtcblxuICAgICAgICB2YXIgbWF4X2hlaWdodCA9IE1hdGgubWF4KHRoaXMubWF4X2hlaWdodCwgdGhpcy5zY3JvbGxfaGVpZ2h0KVxuICAgICAgICB0aGlzLnNjcm9sbF9jb250ZW50LnNldENvbnRlbnRTaXplKGNjLnNpemUodGhpcy5zY3JvbGxfd2lkdGgsIG1heF9oZWlnaHQpKTtcbiAgICAgICAgdmFyIG9mZl95ID0gMDtcbiAgICAgICAgZm9yKHZhciBpIGluIHRoaXMuY2FjaGVfbGlzdCl7XG4gICAgICAgICAgICB0aGlzLmNhY2hlX2xpc3RbaV0uc2V0UG9zaXRpb24oOCwgbWF4X2hlaWdodC1vZmZfeSk7XG4gICAgICAgICAgICBvZmZfeSA9IG9mZl95ICsgdGhpcy5jYWNoZV9saXN0W2ldLmdldENvbnRlbnRTaXplKCkuaGVpZ2h0ICsgMzBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbF92aWV3X2NvbXBlbmQuc2Nyb2xsVG9Ub3AoMCk7XG4gICAgfSxcblxuICAgIGNyZWF0ZVRpdGxlQ29udGVudDpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgaWYoZGF0YSA9PSBudWxsKXJldHVybjtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IG5ldyBjYy5Ob2RlKCk7XG4gICAgICAgIGNvbnRhaW5lci5zZXRBbmNob3JQb2ludChjYy52MigwLCAxKSk7XG5cbiAgICAgICAgdmFyIF9oZWlnaHQgPSAwO1xuICAgICAgICBpZihkYXRhLnRpdGxlID09IFwiIFwiIHx8IGRhdGEudGl0bGUgPT0gXCJcIil7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IFV0aWxzLmNyZWF0ZVJpY2hMYWJlbCgyNCwgdGhpcy5jb2xvcl8xLCBjYy52MigwLCAxKSwgY2MudjIoMCwgMCksMzAsNjA1KTtcbiAgICAgICAgICAgIGNvbnRlbnQuaG9yaXpvbnRhbEFsaWduID0gY2MubWFjcm8uVGV4dEFsaWdubWVudC5MRUZUO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb250ZW50LnN0cmluZyA9IFV0aWxzLnNwbGl0RGF0YVN0cihkYXRhLmRlc2MpO1xuICAgICAgICAgICAgY29udGFpbmVyLmFkZENoaWxkKGNvbnRlbnQubm9kZSk7XG4gICAgICAgICAgICB2YXIgX3dpZHRoID0gdGhpcy5zY3JvbGxfd2lkdGggLSA4O1xuICAgICAgICAgICAgX2hlaWdodCA9IGNvbnRlbnQubm9kZS5nZXRDb250ZW50U2l6ZSgpLmhlaWdodFxuICAgICAgICAgICAgY29udGFpbmVyLm5vZGUuc2V0Q29udGVudFNpemUoY2Muc2l6ZShfd2lkdGgsIF9oZWlnaHQpKVxuICAgICAgICAgICAgY29udGVudC5ub2RlLnkgPSBfaGVpZ2h0IC0gODtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAvLyAg6YeN5paw55+r5q2j5LiA5LiL5L2N572u5Z2Q5qCHXG4gICAgICAgICAgICB2YXIgdGl0bGVfYmcgPSBVdGlscy5jcmVhdGVJbWFnZShjb250YWluZXIsIG51bGwsIDAsIDAsIGNjLnYyKDAsMSksIHRydWUsIDAsIHRydWUpO1xuICAgICAgICAgICAgdGl0bGVfYmcudHlwZSA9IGNjLlNwcml0ZS5UeXBlLlNMSUNFRDtcbiAgICAgICAgICAgIHRpdGxlX2JnLnNpemVNb2RlID0gY2MuU3ByaXRlLlNpemVNb2RlLkNVU1RPTTtcbiAgICAgICAgICAgIHRpdGxlX2JnLm5vZGUuc2V0Q29udGVudFNpemUoY2Muc2l6ZSg2MTcsIDQ0KSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciB0aXRsZSA9IFV0aWxzLmNyZWF0ZUxhYmVsKDI2LHRoaXMuY29sb3JfMSxudWxsLDUsLXRpdGxlX2JnLm5vZGUuaGVpZ2h0ICogMC41LGRhdGEudGl0bGUsdGl0bGVfYmcubm9kZSwwLGNjLnYyKDAsMC41KSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRSZXMoUGF0aFRvb2wuZ2V0Q29tbW9uSWNvbVBhdGgoXCJjb21tb25fOTAwMjVcIiksIChmdW5jdGlvbihyZXNPYmplY3Qpe1xuICAgICAgICAgICAgICAgIHRpdGxlX2JnLnNwcml0ZUZyYW1lID0gcmVzT2JqZWN0O1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gVXRpbHMuY3JlYXRlUmljaExhYmVsKDI0LCB0aGlzLmNvbG9yXzEsIGNjLnYyKDAsIDEpLCBjYy52MigwLCAwKSwzMCw2MDUpO1xuICAgICAgICAgICAgY29udGVudC5ob3Jpem9udGFsQWxpZ24gPSBjYy5tYWNyby5UZXh0QWxpZ25tZW50LkxFRlQ7XG4gICAgICAgICAgICBjb250ZW50LnN0cmluZyA9IFV0aWxzLnNwbGl0RGF0YVN0cihkYXRhLmRlc2MpXG4gICAgICAgICAgICBjb250YWluZXIuYWRkQ2hpbGQoY29udGVudC5ub2RlKTtcblxuICAgICAgICAgICAgdmFyIF93aWR0aCA9IHRoaXMuc2Nyb2xsX3dpZHRoIC0gODtcbiAgICAgICAgICAgIF9oZWlnaHQgPSB0aXRsZV9iZy5ub2RlLmhlaWdodCArIGNvbnRlbnQubm9kZS5oZWlnaHQ7XG4gICAgICAgICAgICBjb250YWluZXIuc2V0Q29udGVudFNpemUoY2Muc2l6ZShfd2lkdGgsIF9oZWlnaHQpKVxuXG5cbiAgICAgICAgICAgIHRpdGxlX2JnLm5vZGUueSA9IDA7XG4gICAgICAgICAgICBjb250ZW50Lm5vZGUueSA9IHRpdGxlX2JnLm5vZGUueSAtIHRpdGxlX2JnLm5vZGUuaGVpZ2h0IC0gODtcblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7Y29udGFpbmVyOmNvbnRhaW5lciwgaGVpZ2h0Ol9oZWlnaHR9O1xuICAgIH0sXG5cbiAgICBjbG9zZUNhbGxCYWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmKHRoaXMucmVuZGVyX2xpc3Qpe1xuICAgICAgICAgICAgZm9yKHZhciBpIGluIHRoaXMucmVuZGVyX2xpc3Qpe1xuICAgICAgICAgICAgICAgIGdjb3JlLlRpbWVyLmRlbChcInJlbmRlcl9saXN0XCIraSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYWNoZV9saXN0PSBudWxsO1xuICAgICAgICB0aGlzLnRpdGxlX3N0ciA9IG51bGw7XG4gICAgICAgIHRoaXMubWF4X2hlaWdodCA9IG51bGw7XG4gICAgICAgIHRoaXMuY3RybC5vcGVuQ29tbW9uRXhwbGFpblZpZXcoZmFsc2UpO1xuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBDb21tb25FeHBsYWluV2luZG93O1xuIl19