\u6d3b\u52a8\u5341\u4e8c\uff1a\u6210\u957f\u57fa\u91d1<\/div>\r\n \u8d2d\u4e70\u8d85\u503c\u6210\u957f\u8ba1\u5212\uff0c\u52a9\u529b\u65b0\u4eba\u6210\u957f\uff0c\u7d2f\u8ba130\u500d\u8fd4\u8fd8\u94bb\u77f3\r\n \r\n
\u6d3b\u52a8\u5341\u56db\uff1a\u70b9\u77f3\u6210\u91d1<\/div>\r\n \u6d3b\u52a8\u671f\u95f4\uff0c\u70b9\u91d1\u6b21\u6570\u8d85\u5927\u5e45\u63d0\u5347\uff01\u70b9\u91d1\u8fbe\u5230\u6307\u5b9a\u6b21\u6570\u66f4\u6709\u4e30\u539a\u5956\u52b1\u9886~\u8fbe\u5230\u6700\u7ec8\u76ee\u6807\u53ef\u83b7\u6ce2\u585e\u51ac\u788e\u7247*50,\uff0c\u8fd8\u6709\u9650\u65f6\u6392\u884c\u5956\u52b1\uff0c\u5927\u91cf\u94bb\u77f3\uff0c\u9ad8\u7ea7\u5bfb\u5b9d\u5377\uff0c\u592a\u9633\u7b26\u6587\u7b49\u4f60\u6765\u62a2\r\n \r\n
\u6d3b\u52a8\u5341\u4e94\uff1a\u9650\u65f6\u7b49\u7ea7\u793c\u5305<\/div>\r\n \u5168\u670d\u9650\u91cf\u793c\u5305\uff0c\u8fbe\u5230\u7b49\u7ea7\u5373\u53ef\u514d\u8d39\u9886\u53d6\uff01\u6570\u91cf\u6709\u9650\uff0c\u8fd8\u4e0d\u8d76\u7d27\u5feb\u5feb\u5347\u7ea7\uff0c\u62a2\u5168\u670d\u793c\u5305~\r\n \r\n \t\u671f\u5f85\u5192\u9669\u8005\u5927\u4eba\u7684\u5149\u4e34\uff0c\u795d\u5927\u4eba\u5192\u9669\u6109\u5feb~\r\n \r\n P.S. \u5927\u4eba\u7684\u53cd\u9988\u5efa\u8bae\u5c31\u662f\u6211\u4eec\u524d\u8fdb\u7684\u52a8\u529b\uff0c\u5728\u6e38\u620f\u4e2d\u5982\u6709\u9047\u5230\u95ee\u9898\u6216\u5bf9\u5192\u9669\u4e16\u754c\u6709\u4ec0\u4e48\u5efa\u8bae\uff0c\u8bf7\u70b9\u51fb\u3010\u5934\u50cf\u3011->\u3010BUG\u53cd\u9988\u3011\u8054\u7cfb\u5c0f\u52a9\u624b\uff0c\u5c0f\u52a9\u624b\u4f1a\u9010\u6761\u67e5\u770b\u5927\u4eba\u4eec\u7684\u53cd\u9988\uff0c\u8ba9\u5192\u9669\u4e16\u754c\u53d8\u5f97\u66f4\u597d~"}]}'
// // str = str.replace(/</g, "<");
// // str = str.replace(/>/g, ">");
// // str = str.replace(/'/g, "'");
// // str = str.replace(/"/g, '"');
// // str = str.replace(/\9/g, ' ');
// str = str.replace(/\r\n/g,"\\r\\n");
// str = str.replace(/\t/g,"");
// // cc.log(str)
// let _str = JSON.parse(str);
// let cont = _str.data[0].content
// cc.log(cont);
// this.notice_content = StringUtil.parseStr(cont).string;
// cc.log(StringUtil.parseStr(cont))
// var list = this.notice_content.split("|");
// cc.log(list)
// this.addNoticeContent(list)
// }
var srvurl = this.ctrl.get_notice_url(svrDays, loginData); // console.log(srvurl);
if (srvurl) {
DownloadManager.getInstance().downloadText(srvurl, function (status, responseText) {
// console.log("url+++++++++++", status, responseText)
// console.log("type=", typeof (responseText));
// var response = JSON.parse(responseText);
// console.log(response);
var str = StringUtil.parseStr(responseText); // console.log(str);
if (status == null && responseText != null) {
var _str2 = responseText;
_str2 = _str2.replace(/\r\n/g, "\\r\\n");
_str2 = _str2.replace(/\t/g, "");
var _str = JSON.parse(_str2);
if (_str.data && _str.data[0]) {
this.notice_content = StringUtil.parseStr(_str.data[0].content).string;
var list = this.notice_content.split("|"); // console.log(list)
this.addNoticeContent(list);
this.ctrl.setNoticeContent(this.notice_content);
}
} else {
cc.log("status==>", status, "responseText==>", responseText);
}
}.bind(this));
}
} else {
var list = this.notice_content.split("|");
this.addNoticeContent(list);
}
},
addNoticeContent: function addNoticeContent(list) {
if (list == null || list.length == 0) return; //更新先情况,防止加载不到文件时候多次加载
this.main_container.stopAllActions();
var curY = -80; //取出第一个用于称谓显示
this.title_lab.string = list.shift() || "";
this.list_index = 0;
var _y = 0;
this.startUpdate(list.length, function () {
var index = this.list_index;
var vo = list[index];
var sub = this.createSubContent(2, 20, vo, this.container_size.width - 4, 0);
this.node_list.push(sub);
curY = curY + sub.node.getContentSize().height + 3; //60
cc.log(curY);
var maxY = Math.max(curY, this.container_size.height);
this.scroll_content.setContentSize(this.container_size.width, maxY + 80);
sub.node.y = _y - sub.node.getContentSize().height + 5;
_y = sub.node.y;
this.list_index += 1;
}.bind(this), 100);
this.notice_scroll_sv.scrollToTop(0.5);
},
createSubContent: function createSubContent(x, y, content, width, linespce) {
var label = Utils.createRichLabel(24, this.color, cc.v2(0, 0), cc.v2(0, 0), 30, width, this.scroll_content);
label.string = content;
label.horizontalAlign = cc.macro.TextAlignment.LEFT;
label.node.setPosition(x, y);
return label;
},
// 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
onShow: function onShow(params) {
this.setMessage();
},
setVisibleStatus: function setVisibleStatus(status) {
this.setVisible(status);
},
// 面板设置不可见的回调,这里做一些不可见的屏蔽处理
onHide: function onHide() {},
// 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
onDelete: function onDelete() {
if (this.node_list) {
for (var i in this.node_list) {
var v = this.node_list[i];
if (v instanceof cc.Node) {
v.destroy();
v = null;
} else {
v.node.destroy();
v = null;
}
}
this.node_list = null;
}
if (this.main_container) {
this.main_container.stopAllActions();
}
}
});
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx3ZWxmYXJlXFx2aWV3XFxub3RpY2VfcGFuZWwuanMiXSwibmFtZXMiOlsiUGF0aFRvb2wiLCJyZXF1aXJlIiwiV2VsZmFyZUNvbnN0IiwiUGFzdGVQYW5lbCIsImNjIiwiQ2xhc3MiLCJCYXNlUGFuZWwiLCJjdG9yIiwicHJlZmFiUGF0aCIsImdldFByZWZhYlBhdGgiLCJpbml0Q29uZmlnIiwiY3RybCIsImdldEluc3RhbmNlIiwiZGVuZ2x1TWdyIiwiZ2V0TW9kZWwiLCJub2RlX2xpc3QiLCJjb2xvciIsIkNvbG9yIiwiaW5pdFBhbmVsIiwibWFpbl9jb250YWluZXIiLCJzZWVrQ2hpbGQiLCJ0aXRsZV9sYWIiLCJMYWJlbCIsInFxX2xhYiIsInN0cmluZyIsIm5vdGljZV9zY3JvbGwiLCJub3RpY2Vfc2Nyb2xsX3N2IiwiU2Nyb2xsVmlldyIsInNjcm9sbF9jb250ZW50IiwiY29udGFpbmVyX3NpemUiLCJnZXRDb250ZW50U2l6ZSIsInJlZ2lzdGVyRXZlbnQiLCJzZXRNZXNzYWdlIiwibm90aWNlX2NvbnRlbnQiLCJnZXROb3RpY2VDb250ZW50IiwibG9naW5EYXRhIiwiZ2V0TG9naW5JbmZvIiwic3ZyTmFtZSIsImdldFN2ck5hbWUiLCJzcnZfaWQiLCJzdnJUaW1lIiwib3Blbl90aW1lIiwic3ZyRGF5cyIsInNydnVybCIsImdldF9ub3RpY2VfdXJsIiwiRG93bmxvYWRNYW5hZ2VyIiwiZG93bmxvYWRUZXh0Iiwic3RhdHVzIiwicmVzcG9uc2VUZXh0Iiwic3RyIiwiU3RyaW5nVXRpbCIsInBhcnNlU3RyIiwicmVwbGFjZSIsIl9zdHIiLCJKU09OIiwicGFyc2UiLCJkYXRhIiwiY29udGVudCIsImxpc3QiLCJzcGxpdCIsImFkZE5vdGljZUNvbnRlbnQiLCJzZXROb3RpY2VDb250ZW50IiwibG9nIiwiYmluZCIsImxlbmd0aCIsInN0b3BBbGxBY3Rpb25zIiwiY3VyWSIsInNoaWZ0IiwibGlzdF9pbmRleCIsIl95Iiwic3RhcnRVcGRhdGUiLCJpbmRleCIsInZvIiwic3ViIiwiY3JlYXRlU3ViQ29udGVudCIsIndpZHRoIiwicHVzaCIsIm5vZGUiLCJoZWlnaHQiLCJtYXhZIiwiTWF0aCIsIm1heCIsInNldENvbnRlbnRTaXplIiwieSIsInNjcm9sbFRvVG9wIiwieCIsImxpbmVzcGNlIiwibGFiZWwiLCJVdGlscyIsImNyZWF0ZVJpY2hMYWJlbCIsInYyIiwiaG9yaXpvbnRhbEFsaWduIiwibWFjcm8iLCJUZXh0QWxpZ25tZW50IiwiTEVGVCIsInNldFBvc2l0aW9uIiwib25TaG93IiwicGFyYW1zIiwic2V0VmlzaWJsZVN0YXR1cyIsInNldFZpc2libGUiLCJvbkhpZGUiLCJvbkRlbGV0ZSIsImkiLCJ2IiwiTm9kZSIsImRlc3Ryb3kiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxZQUFZLEdBQUdELE9BQU8sQ0FBQyxlQUFELENBQTFCOztBQUVBLElBQUlFLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDdEIsYUFBU0MsU0FEYTtBQUV0QkMsRUFBQUEsSUFBSSxFQUFFLGdCQUFZO0FBQ2QsU0FBS0MsVUFBTCxHQUFrQlIsUUFBUSxDQUFDUyxhQUFULENBQXVCLFNBQXZCLEVBQWtDLGNBQWxDLENBQWxCO0FBQ0gsR0FKcUI7QUFNdEI7QUFDQUMsRUFBQUEsVUFBVSxFQUFFLHNCQUFZO0FBQ3BCLFNBQUtDLElBQUwsR0FBWVYsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJXLFdBQTdCLEVBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCWixPQUFPLENBQUMsa0JBQUQsQ0FBUCxDQUE0QlcsV0FBNUIsR0FBMENFLFFBQTFDLEVBQWpCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixFQUFqQjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFJWixF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QUo7QUFDSCxTQUhELE1BR087QUFDSEEsVUFBQUEsQ0FBQyxDQUFDMUIsSUFBRixDQUFPNEIsT0FBUDtBQUNBRixVQUFBQSxDQUFDLEdBQUcsSUFBSjtBQUNIO0FBQ0o7O0FBQ0QsV0FBS3hGLFNBQUwsR0FBaUIsSUFBakI7QUFDSDs7QUFDRCxRQUFHLEtBQUtJLGNBQVIsRUFBdUI7QUFDbkIsV0FBS0EsY0FBTCxDQUFvQjhDLGNBQXBCO0FBQ0g7QUFDSjtBQTFLcUIsQ0FBVCxDQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHh4eEBzeWcuY29tKOW/heWhqywg5Yib5bu65qih5Z2X55qE5Lq65ZGYKVxuLy8gQGRlc2NyaXB0aW9uOlxuLy8gICAgIOWFrOWRilxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDgtOCAyMDo1MzoxM1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBQYXRoVG9vbCA9IHJlcXVpcmUoXCJwYXRodG9vbFwiKVxudmFyIFdlbGZhcmVDb25zdCA9IHJlcXVpcmUoXCJ3ZWxmYXJlX2NvbnN0XCIpO1xuXG52YXIgUGFzdGVQYW5lbCA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlUGFuZWwsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnByZWZhYlBhdGggPSBQYXRoVG9vbC5nZXRQcmVmYWJQYXRoKFwid2VsZmFyZVwiLCBcIm5vdGljZV9wYW5lbFwiKTtcbiAgICB9LFxuXG4gICAgLy8g5Y+v5Lul5Yid5aeL5YyW5aOw5piO5LiA5Lqb5Y+Y6YeP55qEXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmN0cmwgPSByZXF1aXJlKFwibm90aWNlX2NvbnRyb2xsZXJcIikuZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgdGhpcy5kZW5nbHVNZ3IgPSByZXF1aXJlKFwibG9naW5fY29udHJvbGxlclwiKS5nZXRJbnN0YW5jZSgpLmdldE1vZGVsKCk7XG4gICAgICAgIHRoaXMubm9kZV9saXN0ID0gW107XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgY2MuQ29sb3IoMHg2NCwgMHgzMiwgMHgyMywgMHhmZik7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMluS4gOS6m+mFjee9ruaVsOaNrizlj6/ku6XnlKjkuo7lo7DmmI7kuIDkupvlj5jph4/kuYvnsbvnmoRcbiAgICBpbml0UGFuZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5tYWluX2NvbnRhaW5lciA9IHRoaXMuc2Vla0NoaWxkKFwibWFpbl9jb250YWluZXJcIik7XG5cbiAgICAgICAgdGhpcy50aXRsZV9sYWIgPSB0aGlzLnNlZWtDaGlsZChcInRpdGxlX2xhYlwiLCBjYy5MYWJlbCk7XG4gICAgICAgIHRoaXMucXFfbGFiID0gdGhpcy5zZWVrQ2hpbGQoXCJxcV9sYWJcIiwgY2MuTGFiZWwpO1xuICAgICAgICB0aGlzLnFxX2xhYi5zdHJpbmcgPSBcIlwiO1xuICAgICAgICB0aGlzLm5vdGljZV9zY3JvbGwgPSB0aGlzLnNlZWtDaGlsZChcIm5vdGljZV9zY3JvbGxcIik7XG4gICAgICAgIHRoaXMubm90aWNlX3Njcm9sbF9zdiA9IHRoaXMuc2Vla0NoaWxkKFwibm90aWNlX3Njcm9sbFwiLCBjYy5TY3JvbGxWaWV3KTtcbiAgICAgICAgdGhpcy5zY3JvbGxfY29udGVudCA9IHRoaXMuc2Vla0NoaWxkKHRoaXMubm90aWNlX3Njcm9sbCwgXCJjb250ZW50XCIpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyX3NpemUgPSB0aGlzLm5vdGljZV9zY3JvbGwuZ2V0Q29udGVudFNpemUoKTtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM5LqL5Lu255uR5ZCs55qE5o6l5Y+jLOS4jemcgOimgeaJi+WKqOiwg+eUqCzlpoLmnpzmmK/kvb/nlKhnY29yZS5HbG9iYWxFdmVudOebkeWQrCzlj6/ku6Xnm7TmjqXosIPnlKhhZGRHbG9iYWxFdmVudFxuICAgIHJlZ2lzdGVyRXZlbnQ6IGZ1bmN0aW9uICgpIHtcblxuICAgIH0sXG5cblxuICAgIHNldE1lc3NhZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgXG4gICAgICAgIHRoaXMubm90aWNlX2NvbnRlbnQgPSB0aGlzLmN0cmwuZ2V0Tm90aWNlQ29udGVudCgpO1xuICAgICAgICBpZiAodGhpcy5ub3RpY2VfY29udGVudCA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9naW5EYXRhID0gdGhpcy5kZW5nbHVNZ3IuZ2V0TG9naW5JbmZvKCk7XG4gICAgICAgICAgICB2YXIgc3ZyTmFtZSA9IHRoaXMuZGVuZ2x1TWdyLmdldFN2ck5hbWUobG9naW5EYXRhLnNydl9pZCk7XG4gICAgICAgICAgICB2YXIgc3ZyVGltZSA9IGxvZ2luRGF0YS5vcGVuX3RpbWUgfHwgMDtcbiAgICAgICAgICAgIHZhciBzdnJEYXlzID0gMDtcblxuICAgICAgICAgICAgLy8gbGV0IHN0ciA9ICd7XCJlcnJvclwiOlwic3VjY2Vzc1wiLFwibXNnXCI6XCJcXHU4M2I3XFx1NTNkNlxcdTYyMTBcXHU1MjlmXCIsXCJkYXRhXCI6W3tcInR5cGVcIjpcIjJcIixcInRpdGxlXCI6XCJcXHU2NWIwXFx1NjcwZFxcdTUxNmNcXHU1NDRhXCIsXCJjb250ZW50XCI6XCJcXHU0ZWIyXFx1NzIzMVxcdTc2ODRcXHU1MTkyXFx1OTY2OVxcdTgwMDVcXHU1OTI3XFx1NGViYTp8XFxyXFxuICAgICAgICA8ZGl2IGZvbnRjb2xvcj0jYzIzZjM1PjIwMTktMDgtMDcgMTE6MDA6MDA8XFwvZGl2PlxcdWZmMGNcXHU1MTkyXFx1OTY2OVxcdTRlMTZcXHU3NTRjXFx1NWMwNlxcdTVmMDBcXHU1NDJmXFx1NTE2OFxcdTY1YjBcXHU2NzBkXFx1NTJhMVxcdTU2NjhcXHUyMDE0XFx1MjAxNDxkaXYgZm9udGNvbG9yPSNjMjNmMzU+XFx1ODJmMVxcdTk2YzRcXHU0ZTRiXFx1OGRlZlMxPFxcL2Rpdj5cXHUzMDAyXFx1Nzk1ZFxcdTYxM2ZcXHU1ZTdmXFx1NTkyN1xcdTUxOTJcXHU5NjY5XFx1ODAwNVxcdTgwZmRcXHU1NzI4XFx1NTE5MlxcdTk2NjlcXHU1OTI3XFx1OTY0NlxcdTRlNGJcXHU0ZTJkXFx1NWMzZFxcdTYwYzVcXHU1MTkyXFx1OTY2OVxcdWZmMGNcXHU1YmZiXFx1ODljNVxcdTVmZWJcXHU0ZTUwflxcdTc5NWRcXHU1OTI3XFx1NWJiNlxcdTUxOTJcXHU5NjY5XFx1NjEwOVxcdTVmZWJcXHVmZjAxXFxyXFxuXFxyXFxuIFxcclxcblxcdTMwMGNcXHU2NWIwXFx1NjcwZFxcdTZkM2JcXHU1MmE4XFx1MzAwZFxcclxcbiAgXFxyXFxuPGRpdlxcdTAwYTBmb250Y29sb3I9I2MyM2YzNT5cXHU2ZDNiXFx1NTJhOFxcdTRlMDBcXHVmZjFhXFx1NGUwM1xcdTU5MjlcXHU3NjdiXFx1NWY1NVxcdTk4ODZcXHU1OTdkXFx1NzkzY1xcdTAwYjdcXHU2YjIxXFx1NjVlNVxcdTc2N2JcXHU1ZjU1XFx1OTAwMTVcXHU2NjFmXFx1NTk2NVxcdTRlMDE8XFwvZGl2PlxcclxcbiAgICAgICBcXHU2YmNmXFx1NjVlNVxcdTc2N2JcXHU5NjQ2XFx1NWMzMVxcdTgwZmRcXHU5ODg2XFx1NTNkNlxcdTRlMzBcXHU1MzlhXFx1NTk1NlxcdTUyYjFcXHVmZjBjXFx1OTk5NlxcdTY1ZTVcXHU3NjdiXFx1NWY1NVxcdTkwMDFcXHU1OTI3XFx1OTFjZlxcdTk0YmJcXHU3N2YzXFx1ZmYwY1xcdTZiMjFcXHU2NWU1XFx1NzY3YlxcdTk2NDZcXHU5MDAxNVxcdTY2MWZcXHU4MDg5XFx1NzZmZVxcdTgyZjFcXHU5NmM0LVxcdTU5NjVcXHU0ZTAxXFx1ZmYwMVxcdTdiMmNcXHU0ZTA5XFx1NjVlNVxcdTkwMDE1XFx1NjYxZlxcdThmOTNcXHU1MWZhXFx1ODJmMVxcdTk2YzQtLVxcdTdmOGVcXHU2NzVjXFx1ODM4ZVxcdTMwMDJcXHJcXG4gIFxcclxcbjxkaXZcXHUwMGEwZm9udGNvbG9yPSNjMjNmMzU+XFx1NmQzYlxcdTUyYThcXHU0ZThjXFx1ZmYxYVxcdTk5OTZcXHU1MTQ1XFx1NTNjY1xcdTUwMGQ8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1OTk5NlxcdTZiMjFcXHU1MzU1XFx1N2IxNFxcdTUxNDVcXHU1MDNjXFx1NjMwN1xcdTViOWFcXHU5ODlkXFx1NWVhNlxcdWZmMGNcXHU3YWNiXFx1NTM3M1xcdTgzYjdcXHU1Zjk3XFx1NTNjY1xcdTUwMGRcXHU5NGJiXFx1NzdmM1xcdWZmMGNcXHU4ZDg1XFx1NTAzY1xcdThmZDRcXHU1MjI5XFx1NGUwZFxcdTUwNWNcXHU2YjQ3XFx1ZmYwMVxcclxcbiBcXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NGUwOVxcdWZmMWFcXHU4NDBjXFx1NjViMFxcdTg4NjVcXHU3ZWQ5PFxcL2Rpdj5cXHJcXG4gICAgICAgXFx1OTk5NlxcdTUxNDVcXHU2ZWUxNlxcdTUxNDNcXHU1MzczXFx1NTNlZlxcdTgzYjdcXHU1Zjk3NVxcdTY2MWZcXHU4ZDg1XFx1NWYzYVxcdThmOTNcXHU1MWZhXFx1ODJmMVxcdTk2YzRcXHUzMDEwXFx1OTZjNVxcdTUxNzhcXHU1YTFjXFx1MzAxMVxcdWZmMDFcXHU2NmY0XFx1NjcwOVxcdTUxNzZcXHU0ZWQ2XFx1OGQ4NVxcdTUwM2NcXHU1OTU2XFx1NTJiMVxcdTRlMDBcXHU2Y2UyXFx1NWUyNlxcdThkNzBcXHVmZjBjXFx1NGUwZFxcdTViYjlcXHU5NTE5XFx1OGZjN1xcdWZmMDFcXHJcXG4gIFxcclxcbjxkaXZcXHUwMGEwZm9udGNvbG9yPSNjMjNmMzU+XFx1NmQzYlxcdTUyYThcXHU1NmRiXFx1ZmYxYVxcdTRlMDNcXHU2NWU1XFx1NzZlZVxcdTY4MDc8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1OGZkZVxcdTdlZWRcXHU0ZTAzXFx1NjVlNVxcdTViOGNcXHU2MjEwXFx1NmJjZlxcdTY1ZTVcXHU0ZWZiXFx1NTJhMVxcdWZmMGNcXHU2YmNmXFx1NTkyOVxcdTkwZmRcXHU2NzA5XFx1NTk3ZFxcdTc5M2NcXHU5MDAxXFx1ZmYwY1xcdThkODVcXHU1MDNjXFx1ODJmMVxcdTk2YzRcXHVmZjBjXFx1NTM0N1xcdTdlYTdcXHU5MDUzXFx1NTE3N1xcdWZmMGNcXHU1MmE5XFx1NTI5YlxcdTUxOTJcXHU5NjY5XFx1ODAwNVxcdTU5MjdcXHU0ZWJhXFx1NjNkMFxcdTUzNDdcXHU0ZTBkXFx1OTVmNFxcdTY1YWRcXHVmZjAxN1xcdTY1ZTVcXHU3ZDJmXFx1NTE0NVxcdTU5NTZcXHU1MmIxXFx1OTg5ZFxcdTU5MTZcXHU5MDAxXFx1NTFmYVxcdTVmM2FcXHU1MjliXFx1NTE0OVxcdTY2OTdcXHU4MmYxXFx1OTZjNFxcdTMwMDJcXHJcXG4gICBcXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NGU5NFxcdWZmMWFcXHU3ZDJmXFx1OGJhMVxcdTUxNDVcXHU1MDNjPFxcL2Rpdj5cXHJcXG4gICAgICAgIFxcdTZiY2ZcXHU2NWU1XFx1N2QyZlxcdThiYTFcXHU1MTQ1XFx1NTAzY1xcdTkwMDE1XFx1NjYxZlxcdTgyZjFcXHU5NmM0XFx1ZmYwY1xcdThmZDhcXHU5MDAxXFx1N2VhMlxcdTgyNzJcXHU4OGM1XFx1NTkwN1xcdTRlMGVcXHU1OTI3XFx1OTFjZlxcdThkNDRcXHU2ZTkwXFx1ZmYwMVxcclxcbiAgICBcXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NTE2ZFxcdWZmMWFcXHU3OTNjXFx1NTMwNVxcdTYyYTJcXHU4ZDJkXFwvXFx1NmJjZlxcdTY3MDhcXHU3OThmXFx1NTIyOVxcL1xcdTZiY2ZcXHU1NDY4XFx1Nzk4ZlxcdTUyMjk8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1NmJjZlxcdTU0NjhcXHU5NjUwXFx1OGQyZFxcdThkODVcXHU1MDNjXFx1NzkzY1xcdTUzMDVcXHU5NjRkXFx1NGVmN1xcdTU5MjdcXHU3NTI5XFx1NTM1NlxcdWZmMGNcXHU1NDA0XFx1N2M3YlxcdTk2OGZcXHU2NzNhXFx1Nzk4ZlxcdTg4OGJcXHU1OTdkXFx1NzkzY1xcdTU5MTZcXHVmZjBjXFx1NTE0NVxcdTUwM2M2NDhcXHU4ZmQ4XFx1NjcwOVxcdTVmM2FcXHU1MjliXFx1NTE0OVxcdTY2OTdcXHU4MmYxXFx1OTZjNFxcdTc4OGVcXHU3MjQ3XFx1NGUwZVxcdTVmNjlcXHU4Njc5XFx1N2IyNlxcdTY1ODdcXHVmZjAxXFxyXFxuIFxcclxcbjxkaXZcXHUwMGEwZm9udGNvbG9yPSNjMjNmMzU+XFx1NmQzYlxcdTUyYThcXHU0ZTAzXFx1ZmYxYVxcdTc5ZWZcXHU1OTI5XFx1OGM2YVxcdTc5M2M8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1OGZkZVxcdTdlZWRcXHU1MTQ1XFx1NTAzY1xcdTU5N2RcXHU3OTNjXFx1NGUwZFxcdTUwNWNcXHU2YjQ3XFx1ZmYwY1xcdTUxYjJcXHU3Njg0XFx1NTkyOVxcdTY1NzBcXHU4ZDhhXFx1NTkxYVxcdWZmMGNcXHU1OTU2XFx1NTJiMVxcdThkOGFcXHU1OTFhXFx1MzAwMlxcdTU5MjdcXHU5MWNmXFx1NGU5NFxcdTY2MWZcXHU5NjhmXFx1NjczYVxcdTc4OGVcXHU3MjQ3XFx1OTAwMVxcdWZmMDFcXHJcXG5cXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NTE2YlxcdWZmMWFcXHU2YmNmXFx1NjVlNVxcdTc5M2NcXHU1MzA1PFxcL2Rpdj5cXHJcXG4gICAgICAgIFxcdTZiY2ZcXHU2NWU1XFx1OGQ4NVxcdTUwM2NcXHU1OTdkXFx1NzkzY1xcdThkODVcXHU0ZjRlXFx1NGVmN1xcdTY1M2VcXHU5MDAxXFx1ZmYwY1xcdTk4OWRcXHU1OTE2XFx1OGQ2MFxcdTkwMDFcXHU1M2NjXFx1NTAwZFxcdTk0YmJcXHU3N2YzXFx1ZmYwMVxcclxcbiAgXFxyXFxuPGRpdlxcdTAwYTBmb250Y29sb3I9I2MyM2YzNT5cXHU2ZDNiXFx1NTJhOFxcdTRlNWRcXHVmZjFhXFx1NzI3OVxcdTY3NDNcXHU1NTQ2XFx1NTdjZTxcXC9kaXY+XFxyXFxuICAgICAgICBcXHU1ZjNhXFx1NTI5YlxcdTUxOTJcXHU5NjY5XFx1ODAwNVxcdTVmYzVcXHU1OTA3XFx1ZmYwY1xcdThkODVcXHU1MDNjXFx1NGYxOFxcdTYwZTBcXHU3OTNjXFx1NTMwNVxcdTU0OGNcXHU4ZDg1XFx1OGM2YVxcdTUzNGVcXHU3Mjc5XFx1Njc0M1xcdWZmMDFcXHU1MmE5XFx1NTI5YlxcdTUxOTJcXHU5NjY5XFx1ODAwNVxcdTVmZWJcXHU5MDFmXFx1NTM0N1xcdTdlYTdcXHUzMDAyXFxyXFxuICBcXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NTM0MVxcdWZmMWFcXHU4MzYzXFx1ODAwMFxcL1xcdTgxZjNcXHU1YzBhXFx1NjcwOFxcdTUzNjE8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1N2QyZlxcdThiYTFcXHU1MTQ1XFx1NTAzYzMwXFwvOThcXHU1M2VmXFx1NmZjMFxcdTZkM2JcXHU4MzYzXFx1ODAwMFxcL1xcdTgxZjNcXHU1YzBhXFx1NjcwOFxcdTUzNjFcXHVmZjBjXFx1NmJjZlxcdTY1ZTVcXHU5NGJiXFx1NzdmM1xcdTk4ODZcXHU0ZTBkXFx1NTA1Y1xcdWZmMGNcXHU4ZmQ4XFx1ODBmZFxcdTk4OWRcXHU1OTE2XFx1NmZjMFxcdTZkM2JcXHU4ZDg1XFx1NTAzY1xcdTU3ZmFcXHU5MWQxXFx1OGQyZFxcdTRlNzBcXHU2NzNhXFx1NGYxYVxcdWZmMDFcXHJcXG4gIFxcclxcbjxkaXZcXHUwMGEwZm9udGNvbG9yPSNjMjNmMzU+XFx1NmQzYlxcdTUyYThcXHU1MzQxXFx1NGUwMFxcdWZmMWFcXHU4ZDg1XFx1NTAzY1xcdTU3ZmFcXHU5MWQxPFxcL2Rpdj5cXHJcXG4yMFxcdTUwMGRcXHU4ZDg1XFx1NTAzY1xcdThmZDRcXHU1MjI5XFx1ZmYwY1xcdThmZGVcXHU3ZWVkMzBcXHU2NWU1XFx1OTg4NlxcdTUzZDZcXHU4YzZhXFx1NTM0ZVxcdTU5NTZcXHU1MmIxXFxyXFxuICBcXHJcXG48ZGl2XFx1MDBhMGZvbnRjb2xvcj0jYzIzZjM1PlxcdTZkM2JcXHU1MmE4XFx1NTM0MVxcdTRlOGNcXHVmZjFhXFx1NjIxMFxcdTk1N2ZcXHU1N2ZhXFx1OTFkMTxcXC9kaXY+XFxyXFxuICAgICAgICBcXHU4ZDJkXFx1NGU3MFxcdThkODVcXHU1MDNjXFx1NjIxMFxcdTk1N2ZcXHU4YmExXFx1NTIxMlxcdWZmMGNcXHU1MmE5XFx1NTI5YlxcdTY1YjBcXHU0ZWJhXFx1NjIxMFxcdTk1N2ZcXHVmZjBjXFx1N2QyZlxcdThiYTEzMFxcdTUwMGRcXHU4ZmQ0XFx1OGZkOFxcdTk0YmJcXHU3N2YzXFxyXFxuICAgXFxyXFxuPGRpdlxcdTAwYTBmb250Y29sb3I9I2MyM2YzNT5cXHU2ZDNiXFx1NTJhOFxcdTUzNDFcXHU1NmRiXFx1ZmYxYVxcdTcwYjlcXHU3N2YzXFx1NjIxMFxcdTkxZDE8XFwvZGl2PlxcclxcbiAgICAgICAgXFx1NmQzYlxcdTUyYThcXHU2NzFmXFx1OTVmNFxcdWZmMGNcXHU3MGI5XFx1OTFkMVxcdTZiMjFcXHU2NTcwXFx1OGQ4NVxcdTU5MjdcXHU1ZTQ1XFx1NjNkMFxcdTUzNDdcXHVmZjAxXFx1NzBiOVxcdTkxZDFcXHU4ZmJlXFx1NTIzMFxcdTYzMDdcXHU1YjlhXFx1NmIyMVxcdTY1NzBcXHU2NmY0XFx1NjcwOVxcdTRlMzBcXHU1MzlhXFx1NTk1NlxcdTUyYjFcXHU5ODg2flxcdThmYmVcXHU1MjMwXFx1NjcwMFxcdTdlYzhcXHU3NmVlXFx1NjgwN1xcdTUzZWZcXHU4M2I3XFx1NmNlMlxcdTU4NWVcXHU1MWFjXFx1Nzg4ZVxcdTcyNDcqNTAsXFx1ZmYwY1xcdThmZDhcXHU2NzA5XFx1OTY1MFxcdTY1ZjZcXHU2MzkyXFx1ODg0Y1xcdTU5NTZcXHU1MmIxXFx1ZmYwY1xcdTU5MjdcXHU5MWNmXFx1OTRiYlxcdTc3ZjNcXHVmZjBjXFx1OWFkOFxcdTdlYTdcXHU1YmZiXFx1NWI5ZFxcdTUzNzdcXHVmZjBjXFx1NTkyYVxcdTk2MzNcXHU3YjI2XFx1NjU4N1xcdTdiNDlcXHU0ZjYwXFx1Njc2NVxcdTYyYTJcXHJcXG4gIFxcclxcbjxkaXZcXHUwMGEwZm9udGNvbG9yPSNjMjNmMzU+XFx1NmQzYlxcdTUyYThcXHU1MzQxXFx1NGU5NFxcdWZmMWFcXHU5NjUwXFx1NjVmNlxcdTdiNDlcXHU3ZWE3XFx1NzkzY1xcdTUzMDU8XFwvZGl2PlxcclxcbiAgICAgICBcXHU1MTY4XFx1NjcwZFxcdTk2NTBcXHU5MWNmXFx1NzkzY1xcdTUzMDVcXHVmZjBjXFx1OGZiZVxcdTUyMzBcXHU3YjQ5XFx1N2VhN1xcdTUzNzNcXHU1M2VmXFx1NTE0ZFxcdThkMzlcXHU5ODg2XFx1NTNkNlxcdWZmMDFcXHU2NTcwXFx1OTFjZlxcdTY3MDlcXHU5NjUwXFx1ZmYwY1xcdThmZDhcXHU0ZTBkXFx1OGQ3NlxcdTdkMjdcXHU1ZmViXFx1NWZlYlxcdTUzNDdcXHU3ZWE3XFx1ZmYwY1xcdTYyYTJcXHU1MTY4XFx1NjcwZFxcdTc5M2NcXHU1MzA1flxcclxcbiAgICBcXHJcXG4gICBcXHRcXHU2NzFmXFx1NWY4NVxcdTUxOTJcXHU5NjY5XFx1ODAwNVxcdTU5MjdcXHU0ZWJhXFx1NzY4NFxcdTUxNDlcXHU0ZTM0XFx1ZmYwY1xcdTc5NWRcXHU1OTI3XFx1NGViYVxcdTUxOTJcXHU5NjY5XFx1NjEwOVxcdTVmZWJ+XFxyXFxuICBcXHJcXG4gICAgICAgIFAuUy4gXFx1NTkyN1xcdTRlYmFcXHU3Njg0XFx1NTNjZFxcdTk5ODhcXHU1ZWZhXFx1OGJhZVxcdTVjMzFcXHU2NjJmXFx1NjIxMVxcdTRlZWNcXHU1MjRkXFx1OGZkYlxcdTc2ODRcXHU1MmE4XFx1NTI5YlxcdWZmMGNcXHU1NzI4XFx1NmUzOFxcdTYyMGZcXHU0ZTJkXFx1NTk4MlxcdTY3MDlcXHU5MDQ3XFx1NTIzMFxcdTk1ZWVcXHU5ODk4XFx1NjIxNlxcdTViZjlcXHU1MTkyXFx1OTY2OVxcdTRlMTZcXHU3NTRjXFx1NjcwOVxcdTRlYzBcXHU0ZTQ4XFx1NWVmYVxcdThiYWVcXHVmZjBjXFx1OGJmN1xcdTcwYjlcXHU1MWZiXFx1MzAxMFxcdTU5MzRcXHU1MGNmXFx1MzAxMS0+XFx1MzAxMEJVR1xcdTUzY2RcXHU5OTg4XFx1MzAxMVxcdTgwNTRcXHU3Y2ZiXFx1NWMwZlxcdTUyYTlcXHU2MjRiXFx1ZmYwY1xcdTVjMGZcXHU1MmE5XFx1NjI0YlxcdTRmMWFcXHU5MDEwXFx1Njc2MVxcdTY3ZTVcXHU3NzBiXFx1NTkyN1xcdTRlYmFcXHU0ZWVjXFx1NzY4NFxcdTUzY2RcXHU5OTg4XFx1ZmYwY1xcdThiYTlcXHU1MTkyXFx1OTY2OVxcdTRlMTZcXHU3NTRjXFx1NTNkOFxcdTVmOTdcXHU2NmY0XFx1NTk3ZH5cIn1dfSdcbiAgICAgICAgICAgIC8vIC8vIHN0ciA9IHN0ci5yZXBsYWNlKC8mbHQvZywgXCI8XCIpO1xuICAgICAgICAgICAgLy8gLy8gc3RyID0gc3RyLnJlcGxhY2UoLyZndC9nLCBcIj5cIik7XG4gICAgICAgICAgICAvLyAvLyBzdHIgPSBzdHIucmVwbGFjZSgvJiMwMzkvZywgXCInXCIpO1xuICAgICAgICAgICAgLy8gLy8gc3RyID0gc3RyLnJlcGxhY2UoLyZxdW90L2csICdcIicpO1xuICAgICAgICAgICAgLy8gLy8gc3RyID0gc3RyLnJlcGxhY2UoL1xcOS9nLCAnICAgICcpO1xuICAgICAgICAgICAgLy8gc3RyID0gc3RyLnJlcGxhY2UoL1xcclxcbi9nLFwiXFxcXHJcXFxcblwiKTtcbiAgICAgICAgICAgIC8vIHN0ciA9IHN0ci5yZXBsYWNlKC9cXHQvZyxcIlwiKTtcblxuICAgICAgICAgICAgLy8gLy8gY2MubG9nKHN0cilcbiAgICAgICAgICAgIC8vIGxldCBfc3RyID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICAgICAgLy8gbGV0IGNvbnQgPSBfc3RyLmRhdGFbMF0uY29udGVudFxuICAgICAgICAgICAgLy8gY2MubG9nKGNvbnQpO1xuICAgICAgICAgICAgLy8gdGhpcy5ub3RpY2VfY29udGVudCA9IFN0cmluZ1V0aWwucGFyc2VTdHIoY29udCkuc3RyaW5nO1xuICAgICAgICAgICAgLy8gY2MubG9nKFN0cmluZ1V0aWwucGFyc2VTdHIoY29udCkpXG4gICAgICAgICAgICAvLyB2YXIgbGlzdCA9IHRoaXMubm90aWNlX2NvbnRlbnQuc3BsaXQoXCJ8XCIpO1xuICAgICAgICAgICAgLy8gY2MubG9nKGxpc3QpXG4gICAgICAgICAgICAvLyB0aGlzLmFkZE5vdGljZUNvbnRlbnQobGlzdClcblxuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgdmFyIHNydnVybCA9IHRoaXMuY3RybC5nZXRfbm90aWNlX3VybChzdnJEYXlzLCBsb2dpbkRhdGEpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coc3J2dXJsKTtcbiAgICAgICAgICAgIGlmIChzcnZ1cmwpIHtcbiAgICAgICAgICAgICAgICBEb3dubG9hZE1hbmFnZXIuZ2V0SW5zdGFuY2UoKS5kb3dubG9hZFRleHQoc3J2dXJsLCBmdW5jdGlvbiAoc3RhdHVzLCByZXNwb25zZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ1cmwrKysrKysrKysrK1wiLCBzdGF0dXMsIHJlc3BvbnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ0eXBlPVwiLCB0eXBlb2YgKHJlc3BvbnNlVGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAvLyB2YXIgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ciA9IFN0cmluZ1V0aWwucGFyc2VTdHIocmVzcG9uc2VUZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coc3RyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBudWxsICYmIHJlc3BvbnNlVGV4dCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyID0gcmVzcG9uc2VUZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xcclxcbi9nLCBcIlxcXFxyXFxcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZSgvXFx0L2csIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9zdHIgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3N0ci5kYXRhICYmIF9zdHIuZGF0YVswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWNlX2NvbnRlbnQgPSBTdHJpbmdVdGlsLnBhcnNlU3RyKF9zdHIuZGF0YVswXS5jb250ZW50KS5zdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSB0aGlzLm5vdGljZV9jb250ZW50LnNwbGl0KFwifFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhsaXN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTm90aWNlQ29udGVudChsaXN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3RybC5zZXROb3RpY2VDb250ZW50KHRoaXMubm90aWNlX2NvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5sb2coXCJzdGF0dXM9PT5cIiwgc3RhdHVzLCBcInJlc3BvbnNlVGV4dD09PlwiLCByZXNwb25zZVRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGxpc3QgPSB0aGlzLm5vdGljZV9jb250ZW50LnNwbGl0KFwifFwiKTtcbiAgICAgICAgICAgIHRoaXMuYWRkTm90aWNlQ29udGVudChsaXN0KVxuICAgICAgICB9XG4gICAgfSxcblxuXG4gICAgYWRkTm90aWNlQ29udGVudDogZnVuY3Rpb24gKGxpc3QpIHtcbiAgICAgICAgaWYgKGxpc3QgPT0gbnVsbCB8fCBsaXN0Lmxlbmd0aCA9PSAwKSByZXR1cm5cblxuICAgICAgICAvL+abtOaWsOWFiOaDheWGtSzpmLLmraLliqDovb3kuI3liLDmlofku7bml7blgJnlpJrmrKHliqDovb1cblxuICAgICAgICB0aGlzLm1haW5fY29udGFpbmVyLnN0b3BBbGxBY3Rpb25zKCk7XG4gICAgICAgIHZhciBjdXJZID0gLTgwO1xuXG4gICAgICAgIC8v5Y+W5Ye656ys5LiA5Liq55So5LqO56ew6LCT5pi+56S6XG4gICAgICAgIHRoaXMudGl0bGVfbGFiLnN0cmluZyA9IGxpc3Quc2hpZnQoKSB8fCBcIlwiO1xuXG4gICAgICAgIHRoaXMubGlzdF9pbmRleCA9IDA7XG4gICAgICAgIGxldCBfeSA9IDA7XG4gICAgICAgIHRoaXMuc3RhcnRVcGRhdGUobGlzdC5sZW5ndGgsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMubGlzdF9pbmRleDtcbiAgICAgICAgICAgIGxldCB2byA9IGxpc3RbaW5kZXhdO1xuICAgICAgICAgICAgbGV0IHN1YiA9IHRoaXMuY3JlYXRlU3ViQ29udGVudCgyLCAyMCwgdm8sIHRoaXMuY29udGFpbmVyX3NpemUud2lkdGggLSA0LCAwKTtcbiAgICAgICAgICAgIHRoaXMubm9kZV9saXN0LnB1c2goc3ViKTtcbiAgICAgICAgICAgIGN1clkgPSBjdXJZICsgc3ViLm5vZGUuZ2V0Q29udGVudFNpemUoKS5oZWlnaHQgKyAzOy8vNjBcbiAgICAgICAgICAgIGNjLmxvZyhjdXJZKTtcbiAgICAgICAgICAgIGxldCBtYXhZID0gTWF0aC5tYXgoY3VyWSwgdGhpcy5jb250YWluZXJfc2l6ZS5oZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxfY29udGVudC5zZXRDb250ZW50U2l6ZSh0aGlzLmNvbnRhaW5lcl9zaXplLndpZHRoLCBtYXhZKzgwKTtcblxuICAgICAgICAgICAgc3ViLm5vZGUueSA9IF95IC0gc3ViLm5vZGUuZ2V0Q29udGVudFNpemUoKS5oZWlnaHQgKyA1O1xuICAgICAgICAgICAgX3kgPSBzdWIubm9kZS55O1xuICAgICAgICAgICAgdGhpcy5saXN0X2luZGV4ICs9IDE7XG4gICAgICAgIH0uYmluZCh0aGlzKSwgMTAwKVxuICAgICAgICB0aGlzLm5vdGljZV9zY3JvbGxfc3Yuc2Nyb2xsVG9Ub3AoMC41KTtcbiAgICB9LFxuXG4gICAgY3JlYXRlU3ViQ29udGVudDogZnVuY3Rpb24gKHgsIHksIGNvbnRlbnQsIHdpZHRoLCBsaW5lc3BjZSkge1xuICAgICAgICB2YXIgbGFiZWwgPSBVdGlscy5jcmVhdGVSaWNoTGFiZWwoMjQsIHRoaXMuY29sb3IsIGNjLnYyKDAsIDApLCBjYy52MigwLCAwKSwgMzAsIHdpZHRoLCB0aGlzLnNjcm9sbF9jb250ZW50KTtcbiAgICAgICAgbGFiZWwuc3RyaW5nID0gY29udGVudDtcbiAgICAgICAgbGFiZWwuaG9yaXpvbnRhbEFsaWduID0gY2MubWFjcm8uVGV4dEFsaWdubWVudC5MRUZUO1xuICAgICAgICBsYWJlbC5ub2RlLnNldFBvc2l0aW9uKHgsIHkpO1xuICAgICAgICByZXR1cm4gbGFiZWxcbiAgICB9LFxuXG4gICAgLy8g6aKE5Yi25L2T5Yqg6L295a6M5oiQ5LmL5ZCOLOa3u+WKoOWIsOWvueW6lOS4u+iKgueCueS5i+WQjueahOWbnuiwg+WPr+S7peiuvue9ruS4gOS6m+aVsOaNruS6hlxuICAgIG9uU2hvdzogZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICB0aGlzLnNldE1lc3NhZ2UoKTtcbiAgICB9LFxuXG5cblxuICAgIHNldFZpc2libGVTdGF0dXM6IGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgdGhpcy5zZXRWaXNpYmxlKHN0YXR1cylcbiAgICB9LFxuXG4gICAgLy8g6Z2i5p2/6K6+572u5LiN5Y+v6KeB55qE5Zue6LCDLOi/memHjOWBmuS4gOS6m+S4jeWPr+ingeeahOWxj+iUveWkhOeQhlxuICAgIG9uSGlkZTogZnVuY3Rpb24gKCkge1xuXG4gICAgfSxcblxuICAgIC8vIOW9k+mdouadv+S7juS4u+iKgueCuemHiuaUvuaOieeahOiwg+eUqOaOpeWPoyzpnIDopoHmiYvliqjosIPnlKgs6ICM5LiU5Lmf5LiA5a6a6KaB6LCD55SoXG4gICAgb25EZWxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICh0aGlzLm5vZGVfbGlzdCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSBpbiB0aGlzLm5vZGVfbGlzdCkge1xuICAgICAgICAgICAgICAgIHZhciB2ID0gdGhpcy5ub2RlX2xpc3RbaV07XG4gICAgICAgICAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBjYy5Ob2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHYuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB2ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2Lm5vZGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB2ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5vZGVfbGlzdCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5tYWluX2NvbnRhaW5lcil7XG4gICAgICAgICAgICB0aGlzLm1haW5fY29udGFpbmVyLnN0b3BBbGxBY3Rpb25zKCk7XG4gICAgICAgIH1cbiAgICB9LFxufSkiXX0=