|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/pokedex/pokedex_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, '0bcfflnB4FJFKqb5h4viHFs', 'pokedex_controller');
|
// Scripts/mod/pokedex/pokedex_controller.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里填写详细说明,主要填写该模块的功能简要
|
// <br/>Create: 2019-04-08 10:31:20
|
// --------------------------------------------------------------------
|
var RoleController = require("role_controller");
|
|
var PokedexEvent = require("pokedex_event");
|
|
var PokedexController = cc.Class({
|
"extends": BaseController,
|
ctor: function ctor() {},
|
// 初始化配置数据
|
initConfig: function initConfig() {
|
var PokedexModel = require("pokedex_model");
|
|
this.model = new PokedexModel();
|
this.model.initConfig();
|
},
|
// 返回当前的model
|
getModel: function getModel() {
|
return this.model;
|
},
|
// 注册监听事件
|
registerEvents: function registerEvents() {// var self = this
|
// if (!self.init_role_event){
|
// self.init_role_event = gcore.GlobalEvent.bind(EventId.ROLE_CREATE_SUCCESS, function(){
|
// gcore.GlobalEvent.unBind(self.init_role_event)
|
// self.role_vo = RoleController.getInstance().getRoleVo()
|
// // self.sender11040() 登录先请求一下当前的图书馆信息
|
// })
|
// }
|
// if not self.add_goods_event then
|
// self.add_goods_event = GlobalEvent:getInstance():Bind(BackpackEvent.ADD_GOODS, function(bag_code,temp_add)
|
// if bag_code == BackPackConst.Bag_Code.BACKPACK then
|
// self:checkRedPoint(temp_add)
|
// end
|
// end)
|
// end
|
// if not self.del_goods_event then
|
// self.del_goods_event = GlobalEvent:getInstance():Bind(BackpackEvent.DELETE_GOODS, function(bag_code,temp_del)
|
// if bag_code == BackPackConst.Bag_Code.BACKPACK then
|
// self:checkRedPoint(temp_del)
|
// end
|
// end)
|
// end
|
// if not self.modify_goods_event then
|
// self.modify_goods_event = GlobalEvent:getInstance():Bind(BackpackEvent.MODIFY_GOODS_NUM, function(bag_code,temp_list)
|
// if bag_code == BackPackConst.Bag_Code.BACKPACK then
|
// self:checkRedPoint(temp_list)
|
// end
|
// end)
|
// end
|
// if not self.add_partner_event then
|
// self.add_partner_event = GlobalEvent:getInstance():Bind(PartnerEvent.Partner_Data_Update, function(_partner_vo, is_add)
|
// if is_add then
|
// -- self:checkIsCanCall()
|
// end
|
// end)
|
// end
|
// if not self.get_all_data then
|
// self.get_all_data = GlobalEvent:getInstance():Bind(BackpackEvent.GET_ALL_DATA, function(bag_code)
|
// if bag_code == BackPackConst.Bag_Code.BACKPACK then
|
// -- self:checkIsCanCall()
|
// end
|
// end)
|
// end
|
},
|
// 注册协议接受事件
|
registerProtocals: function registerProtocals() {
|
var self = this; // this.RegisterProtocal(1110, this.on1110);
|
|
self.RegisterProtocal(11041, this.handle11041.bind(this)); //--请求指定英雄评论信息
|
|
self.RegisterProtocal(11042, this.handle11042.bind(this)); //--设置伙伴为喜欢
|
|
self.RegisterProtocal(11043, this.handle11043.bind(this)); //--伙伴评论
|
|
self.RegisterProtocal(11044, this.handle11044.bind(this)); //--评论点赞
|
|
self.RegisterProtocal(11046, this.handle11046.bind(this)); //--推送伙伴总星数改变
|
|
self.RegisterProtocal(11047, this.handle11047.bind(this)); //--图书馆加成等级升级
|
},
|
handle11041: function handle11041(data) {
|
gcore.GlobalEvent.fire(PokedexEvent.Comment_List_Event, data);
|
},
|
handle11042: function handle11042(data) {
|
message(data.msg);
|
|
if (data.result == 1) {
|
gcore.GlobalEvent.fire(PokedexEvent.Comment_Like_Event, data);
|
}
|
},
|
handle11043: function handle11043(data) {
|
message(data.msg);
|
|
if (data.result == 1) {
|
gcore.GlobalEvent.fire(PokedexEvent.Comment_Say_Event, data);
|
}
|
},
|
handle11044: function handle11044(data) {
|
message(data.msg);
|
|
if (data.result == 1) {
|
gcore.GlobalEvent.fire(PokedexEvent.Comment_Zan_Event, data);
|
}
|
},
|
// --推送伙伴总星数改变
|
handle11046: function handle11046(data) {
|
message(data.msg);
|
|
if (data) {
|
var all_data = this.model.getAllData();
|
all_data.all_star = data.new_star; // this.checkIsCanCall()
|
}
|
},
|
handle11047: function handle11047(data) {
|
message(data.msg);
|
var self = this;
|
|
if (data.result == 1) {
|
var config = Config.partner_data.data_pokedex_attr;
|
var all_data = self.model.getAllData();
|
var cur_lev = all_data.lev;
|
if (!cur_lev) return;
|
all_data.lev = data.lev;
|
var next_lev = Math.min(data.lev + 1, tableLen(config));
|
var next_config = Config.partner_data.data_pokedex_attr[next_lev];
|
self.star_data = {
|
old_star: all_data.all_star,
|
new_star: next_config.star,
|
old_lev: cur_lev,
|
cur_lev: data.lev
|
};
|
|
if (self.star_data) {
|
self.openStarUpWindow(true, self.star_data);
|
}
|
|
gcore.GlobalEvent.fire(PokedexEvent.Up_End_Event, self.star_data);
|
}
|
},
|
// --评论
|
openCommentWindow: function openCommentWindow(bool, data, callFunc) {
|
var self = this;
|
|
if (bool == false) {
|
if (self.commentWindow) {
|
self.commentWindow.close();
|
self.commentWindow = null;
|
}
|
} else {
|
if (!self.commentWindow) {
|
var PartnerCommentWindow = require("partner_comment_window");
|
|
self.commentWindow = new PartnerCommentWindow();
|
}
|
|
if (self.commentWindow.isOpen() == false) {
|
self.commentWindow.open(data);
|
|
if (callFunc) {
|
self.commentWindow.addCallBack(callFunc);
|
}
|
}
|
}
|
},
|
// --总星数提升一级
|
openStarUpWindow: function openStarUpWindow(bool, data) {// if bool == false then
|
// if self.star_window ~= nil then
|
// self.star_window:close()
|
// self.star_window = nil
|
// self:checkIsCanCall()
|
// end
|
// else
|
// if self.star_window == nil then
|
// self.star_window = PokedexStarWindow.New(data)
|
// end
|
// if self.star_window:isOpen() == false then
|
// self.star_window:open()
|
// end
|
// end
|
},
|
// --请求指定英雄评论信息
|
sender11041: function sender11041(partner_id, start, num) {
|
var protocal = {};
|
protocal.partner_id = partner_id;
|
protocal.start = start;
|
protocal.num = num;
|
this.SendProtocal(11041, protocal);
|
},
|
// --伙伴评论
|
sender11043: function sender11043(partner_id, msg) {
|
var protocal = {};
|
protocal.partner_id = partner_id;
|
protocal.msg = msg;
|
this.SendProtocal(11043, protocal);
|
},
|
// --设置伙伴为喜欢
|
sender11042: function sender11042(partner_id) {
|
var protocal = {};
|
protocal.partner_id = partner_id;
|
this.SendProtocal(11042, protocal);
|
},
|
// --评论点赞
|
sender11044: function sender11044(partner_id, comment_id, type) {
|
var protocal = {};
|
protocal.partner_id = partner_id;
|
protocal.comment_id = comment_id;
|
protocal.type = type;
|
this.SendProtocal(11044, protocal);
|
}
|
});
|
module.exports = PokedexController;
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxwb2tlZGV4XFxwb2tlZGV4X2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUm9sZUNvbnRyb2xsZXIiLCJyZXF1aXJlIiwiUG9rZWRleEV2ZW50IiwiUG9rZWRleENvbnRyb2xsZXIiLCJjYyIsIkNsYXNzIiwiQmFzZUNvbnRyb2xsZXIiLCJjdG9yIiwiaW5pdENvbmZpZyIsIlBva2VkZXhNb2RlbCIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJyZWdpc3RlckV2ZW50cyIsInJlZ2lzdGVyUHJvdG9jYWxzIiwic2VsZiIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJoYW5kbGUxMTA0MSIsImJpbmQiLCJoYW5kbGUxMTA0MiIsImhhbmRsZTExMDQzIiwiaGFuZGxlMTEwNDQiLCJoYW5kbGUxMTA0NiIsImhhbmRsZTExMDQ3IiwiZGF0YSIsImdjb3JlIiwiR2xvYmFsRXZlbnQiLCJmaXJlIiwiQ29tbWVudF9MaXN0X0V2ZW50IiwibWVzc2FnZSIsIm1zZyIsInJlc3VsdCIsIkNvbW1lbnRfTGlrZV9FdmVudCIsIkNvbW1lbnRfU2F5X0V2ZW50IiwiQ29tbWVudF9aYW5fRXZlbnQiLCJhbGxfZGF0YSIsImdldEFsbERhdGEiLCJhbGxfc3RhciIsIm5ld19zdGFyIiwiY29uZmlnIiwiQ29uZmlnIiwicGFydG5lcl9kYXRhIiwiZGF0YV9wb2tlZGV4X2F0dHIiLCJjdXJfbGV2IiwibGV2IiwibmV4dF9sZXYiLCJNYXRoIiwibWluIiwidGFibGVMZW4iLCJuZXh0X2NvbmZpZyIsInN0YXJfZGF0YSIsIm9sZF9zdGFyIiwic3RhciIsIm9sZF9sZXYiLCJvcGVuU3RhclVwV2luZG93IiwiVXBfRW5kX0V2ZW50Iiwib3BlbkNvbW1lbnRXaW5kb3ciLCJib29sIiwiY2FsbEZ1bmMiLCJjb21tZW50V2luZG93IiwiY2xvc2UiLCJQYXJ0bmVyQ29tbWVudFdpbmRvdyIsImlzT3BlbiIsIm9wZW4iLCJhZGRDYWxsQmFjayIsInNlbmRlcjExMDQxIiwicGFydG5lcl9pZCIsInN0YXJ0IiwibnVtIiwicHJvdG9jYWwiLCJTZW5kUHJvdG9jYWwiLCJzZW5kZXIxMTA0MyIsInNlbmRlcjExMDQyIiwic2VuZGVyMTEwNDQiLCJjb21tZW50X2lkIiwidHlwZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsY0FBYyxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSUMsWUFBWSxHQUFHRCxPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFDQSxJQUFJRSxpQkFBaUIsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDN0IsYUFBU0MsY0FEb0I7QUFFN0JDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUg0QjtBQUs3QjtBQUNBQyxFQUFBQSxVQUFVLEVBQUUsc0JBQVk7QUFDcEIsUUFBSUMsWUFBWSxHQUFHUixPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFFQSxTQUFLUyxLQUFMLEdBQWEsSUFBSUQsWUFBSixFQUFiO0FBQ0EsU0FBS0MsS0FBTCxDQUFXRixVQUFYO0FBQ0gsR0FYNEI7QUFhN0I7QUFDQUcsRUFBQUEsUUFBUSxFQUFFLG9CQUFZO0FBQ2xCLFdBQU8sS0FBS0QsS0FBWjtBQUNILEdBaEI0QjtBQWtCN0I7QUFDQUUsRUFBQUEsY0FBYyxFQUFFLDBCQUFZLENBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0gsR0FqRTRCO0FBbUU3QjtBQUNBQyxFQUFBQSxpQkFBaUIsRUFB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QyxPQUFQLEdBQWlCekUsaUJBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTA0LTA4IDEwOjMxOjIwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFJvbGVDb250cm9sbGVyID0gcmVxdWlyZShcInJvbGVfY29udHJvbGxlclwiKVxudmFyIFBva2VkZXhFdmVudCA9IHJlcXVpcmUoXCJwb2tlZGV4X2V2ZW50XCIpXG52YXIgUG9rZWRleENvbnRyb2xsZXIgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNvbnRyb2xsZXIsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbphY3nva7mlbDmja5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBQb2tlZGV4TW9kZWwgPSByZXF1aXJlKFwicG9rZWRleF9tb2RlbFwiKTtcblxuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IFBva2VkZXhNb2RlbCgpO1xuICAgICAgICB0aGlzLm1vZGVsLmluaXRDb25maWcoKTtcbiAgICB9LFxuXG4gICAgLy8g6L+U5Zue5b2T5YmN55qEbW9kZWxcbiAgICBnZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM55uR5ZCs5LqL5Lu2XG4gICAgcmVnaXN0ZXJFdmVudHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gdmFyIHNlbGYgPSB0aGlzXG4gICAgICAgIC8vIGlmICghc2VsZi5pbml0X3JvbGVfZXZlbnQpe1xuICAgICAgICAvLyAgICAgc2VsZi5pbml0X3JvbGVfZXZlbnQgPSBnY29yZS5HbG9iYWxFdmVudC5iaW5kKEV2ZW50SWQuUk9MRV9DUkVBVEVfU1VDQ0VTUywgZnVuY3Rpb24oKXtcbiAgICAgICAgLy8gICAgICAgICBnY29yZS5HbG9iYWxFdmVudC51bkJpbmQoc2VsZi5pbml0X3JvbGVfZXZlbnQpXG4gICAgICAgIC8vICAgICAgICAgc2VsZi5yb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKVxuICAgICAgICAvLyAgICAgICAgIC8vIHNlbGYuc2VuZGVyMTEwNDAoKSDnmbvlvZXlhYjor7fmsYLkuIDkuIvlvZPliY3nmoTlm77kuabppobkv6Hmga9cbiAgICAgICAgLy8gICAgIH0pXG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgbm90IHNlbGYuYWRkX2dvb2RzX2V2ZW50IHRoZW5cbiAgICAgICAgLy8gICAgIHNlbGYuYWRkX2dvb2RzX2V2ZW50ID0gR2xvYmFsRXZlbnQ6Z2V0SW5zdGFuY2UoKTpCaW5kKEJhY2twYWNrRXZlbnQuQUREX0dPT0RTLCBmdW5jdGlvbihiYWdfY29kZSx0ZW1wX2FkZClcbiAgICAgICAgLy8gICAgICAgICBpZiBiYWdfY29kZSA9PSBCYWNrUGFja0NvbnN0LkJhZ19Db2RlLkJBQ0tQQUNLIHRoZW4gXG4gICAgICAgIC8vICAgICAgICAgICAgIHNlbGY6Y2hlY2tSZWRQb2ludCh0ZW1wX2FkZClcbiAgICAgICAgLy8gICAgICAgICBlbmRcbiAgICAgICAgLy8gICAgIGVuZClcbiAgICAgICAgLy8gZW5kXG5cbiAgICAgICAgLy8gaWYgbm90IHNlbGYuZGVsX2dvb2RzX2V2ZW50IHRoZW5cbiAgICAgICAgLy8gICAgIHNlbGYuZGVsX2dvb2RzX2V2ZW50ID0gR2xvYmFsRXZlbnQ6Z2V0SW5zdGFuY2UoKTpCaW5kKEJhY2twYWNrRXZlbnQuREVMRVRFX0dPT0RTLCBmdW5jdGlvbihiYWdfY29kZSx0ZW1wX2RlbClcbiAgICAgICAgLy8gICAgICAgICBpZiBiYWdfY29kZSA9PSBCYWNrUGFja0NvbnN0LkJhZ19Db2RlLkJBQ0tQQUNLIHRoZW4gXG4gICAgICAgIC8vICAgICAgICAgICAgIHNlbGY6Y2hlY2tSZWRQb2ludCh0ZW1wX2RlbClcbiAgICAgICAgLy8gICAgICAgICBlbmRcbiAgICAgICAgLy8gICAgIGVuZClcbiAgICAgICAgLy8gZW5kXG5cbiAgICAgICAgLy8gaWYgbm90IHNlbGYubW9kaWZ5X2dvb2RzX2V2ZW50IHRoZW5cbiAgICAgICAgLy8gICAgIHNlbGYubW9kaWZ5X2dvb2RzX2V2ZW50ID0gR2xvYmFsRXZlbnQ6Z2V0SW5zdGFuY2UoKTpCaW5kKEJhY2twYWNrRXZlbnQuTU9ESUZZX0dPT0RTX05VTSwgZnVuY3Rpb24oYmFnX2NvZGUsdGVtcF9saXN0KVxuICAgICAgICAvLyAgICAgICAgIGlmIGJhZ19jb2RlID09IEJhY2tQYWNrQ29uc3QuQmFnX0NvZGUuQkFDS1BBQ0sgdGhlbiBcbiAgICAgICAgLy8gICAgICAgICAgICAgc2VsZjpjaGVja1JlZFBvaW50KHRlbXBfbGlzdClcbiAgICAgICAgLy8gICAgICAgICBlbmRcbiAgICAgICAgLy8gICAgIGVuZClcbiAgICAgICAgLy8gZW5kXG4gICAgICAgIC8vIGlmIG5vdCBzZWxmLmFkZF9wYXJ0bmVyX2V2ZW50IHRoZW5cbiAgICAgICAgLy8gICAgIHNlbGYuYWRkX3BhcnRuZXJfZXZlbnQgPSBHbG9iYWxFdmVudDpnZXRJbnN0YW5jZSgpOkJpbmQoUGFydG5lckV2ZW50LlBhcnRuZXJfRGF0YV9VcGRhdGUsIGZ1bmN0aW9uKF9wYXJ0bmVyX3ZvLCBpc19hZGQpXG4gICAgICAgIC8vICAgICAgICAgaWYgaXNfYWRkIHRoZW4gXG4gICAgICAgIC8vICAgICAgICAgICAgIC0tIHNlbGY6Y2hlY2tJc0NhbkNhbGwoKVxuICAgICAgICAvLyAgICAgICAgIGVuZFxuICAgICAgICAvLyAgICAgZW5kKVxuICAgICAgICAvLyBlbmRcbiAgICAgICAgLy8gaWYgbm90IHNlbGYuZ2V0X2FsbF9kYXRhIHRoZW4gXG4gICAgICAgIC8vICAgICBzZWxmLmdldF9hbGxfZGF0YSA9ICBHbG9iYWxFdmVudDpnZXRJbnN0YW5jZSgpOkJpbmQoQmFja3BhY2tFdmVudC5HRVRfQUxMX0RBVEEsIGZ1bmN0aW9uKGJhZ19jb2RlKVxuICAgICAgICAvLyAgICAgICAgIGlmIGJhZ19jb2RlID09IEJhY2tQYWNrQ29uc3QuQmFnX0NvZGUuQkFDS1BBQ0sgdGhlbiBcbiAgICAgICAgLy8gICAgICAgICAgICAgLS0gc2VsZjpjaGVja0lzQ2FuQ2FsbCgpXG4gICAgICAgIC8vICAgICAgICAgZW5kXG4gICAgICAgIC8vICAgICBlbmQpXG4gICAgICAgIC8vIGVuZFxuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXNcbiAgICAgICAgLy8gdGhpcy5SZWdpc3RlclByb3RvY2FsKDExMTAsIHRoaXMub24xMTEwKTtcbiAgICAgICAgc2VsZi5SZWdpc3RlclByb3RvY2FsKDExMDQxLCB0aGlzLmhhbmRsZTExMDQxLmJpbmQodGhpcykpICAgICAvLy0t6K+35rGC5oyH5a6a6Iux6ZuE6K+E6K665L+h5oGvXG4gICAgICAgIHNlbGYuUmVnaXN0ZXJQcm90b2NhbCgxMTA0MiwgdGhpcy5oYW5kbGUxMTA0Mi5iaW5kKHRoaXMpKSAgICAgLy8tLeiuvue9ruS8meS8tOS4uuWWnOasolxuICAgICAgICBzZWxmLlJlZ2lzdGVyUHJvdG9jYWwoMTEwNDMsIHRoaXMuaGFuZGxlMTEwNDMuYmluZCh0aGlzKSkgICAgIC8vLS3kvJnkvLTor4TorrpcbiAgICAgICAgc2VsZi5SZWdpc3RlclByb3RvY2FsKDExMDQ0LCB0aGlzLmhhbmRsZTExMDQ0LmJpbmQodGhpcykpICAgICAvLy0t6K+E6K6654K56LWeICAgIFxuICAgICAgICBzZWxmLlJlZ2lzdGVyUHJvdG9jYWwoMTEwNDYsIHRoaXMuaGFuZGxlMTEwNDYuYmluZCh0aGlzKSkgICAgIC8vLS3mjqjpgIHkvJnkvLTmgLvmmJ/mlbDmlLnlj5ggICAgXG4gICAgICAgIHNlbGYuUmVnaXN0ZXJQcm90b2NhbCgxMTA0NywgdGhpcy5oYW5kbGUxMTA0Ny5iaW5kKHRoaXMpKSAgICAgLy8tLeWbvuS5pummhuWKoOaIkOetiee6p+WNh+e6p1xuICAgIH0sXG4gICAgaGFuZGxlMTEwNDEoIGRhdGEgKXtcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQb2tlZGV4RXZlbnQuQ29tbWVudF9MaXN0X0V2ZW50LGRhdGEpXG4gICAgICAgIFxuICAgIH0sXG4gICAgaGFuZGxlMTEwNDIoIGRhdGEgKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZylcbiAgICAgICAgaWYgKGRhdGEucmVzdWx0ID09IDEpe1xuICAgICAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQb2tlZGV4RXZlbnQuQ29tbWVudF9MaWtlX0V2ZW50LGRhdGEpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhhbmRsZTExMDQzKCBkYXRhICl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpXG4gICAgICAgIGlmKGRhdGEucmVzdWx0ID09IDEpe1xuICAgICAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQb2tlZGV4RXZlbnQuQ29tbWVudF9TYXlfRXZlbnQsZGF0YSkgICBcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaGFuZGxlMTEwNDQoIGRhdGEgKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZylcbiAgICAgICAgaWYgKGRhdGEucmVzdWx0ID09IDEpe1xuICAgICAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQb2tlZGV4RXZlbnQuQ29tbWVudF9aYW5fRXZlbnQsZGF0YSlcbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy8gLS3mjqjpgIHkvJnkvLTmgLvmmJ/mlbDmlLnlj5hcbiAgICBoYW5kbGUxMTA0NiggZGF0YSApe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKVxuICAgICAgICBpZiAoZGF0YSl7XG4gICAgICAgICAgICBsZXQgYWxsX2RhdGEgPSB0aGlzLm1vZGVsLmdldEFsbERhdGEoKVxuICAgICAgICAgICAgYWxsX2RhdGEuYWxsX3N0YXIgPSBkYXRhLm5ld19zdGFyXG4gICAgICAgICAgICAvLyB0aGlzLmNoZWNrSXNDYW5DYWxsKClcbiAgICAgICAgfSAgICBcbiAgICB9LFxuICAgIGhhbmRsZTExMDQ3KGRhdGEpe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKVxuICAgICAgICB2YXIgc2VsZiA9IHRoaXNcbiAgICAgICAgaWYgKGRhdGEucmVzdWx0ID09IDEpe1xuICAgICAgICAgICAgbGV0IGNvbmZpZyA9IENvbmZpZy5wYXJ0bmVyX2RhdGEuZGF0YV9wb2tlZGV4X2F0dHJcbiAgICAgICAgICAgIGxldCBhbGxfZGF0YSA9IHNlbGYubW9kZWwuZ2V0QWxsRGF0YSgpXG4gICAgICAgICAgICBsZXQgY3VyX2xldiA9IGFsbF9kYXRhLmxldlxuICAgICAgICAgICAgaWYgKCFjdXJfbGV2KXJldHVyblxuICAgICAgICAgICAgYWxsX2RhdGEubGV2ID0gZGF0YS5sZXZcbiAgICAgICAgICAgIGxldCBuZXh0X2xldiA9IE1hdGgubWluKGRhdGEubGV2ICsgMSwgdGFibGVMZW4oY29uZmlnKSlcbiAgICAgICAgICAgIGxldCBuZXh0X2NvbmZpZyA9IENvbmZpZy5wYXJ0bmVyX2RhdGEuZGF0YV9wb2tlZGV4X2F0dHJbbmV4dF9sZXZdXG4gICAgICAgICAgICBzZWxmLnN0YXJfZGF0YSA9IHtvbGRfc3RhciA6IGFsbF9kYXRhLmFsbF9zdGFyLCBuZXdfc3RhciA6IG5leHRfY29uZmlnLnN0YXIsb2xkX2xldiA6IGN1cl9sZXYsY3VyX2xldiA6IGRhdGEubGV2fVxuICAgICAgICAgICAgaWYgKHNlbGYuc3Rhcl9kYXRhKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5vcGVuU3RhclVwV2luZG93KHRydWUsIHNlbGYuc3Rhcl9kYXRhKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQb2tlZGV4RXZlbnQuVXBfRW5kX0V2ZW50LHNlbGYuc3Rhcl9kYXRhKVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvLyAtLeivhOiuulxuICAgIG9wZW5Db21tZW50V2luZG93KGJvb2wsZGF0YSxjYWxsRnVuYyl7XG4gICAgICAgIHZhciBzZWxmID0gdGhpc1xuICAgICAgICBpZiAoYm9vbCA9PSBmYWxzZSl7XG4gICAgICAgICAgICBpZiAoc2VsZi5jb21tZW50V2luZG93KXtcbiAgICAgICAgICAgICAgICBzZWxmLmNvbW1lbnRXaW5kb3cuY2xvc2UoKVxuICAgICAgICAgICAgICAgIHNlbGYuY29tbWVudFdpbmRvdyA9IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZiAoIXNlbGYuY29tbWVudFdpbmRvdyl7XG4gICAgICAgICAgICAgICAgdmFyIFBhcnRuZXJDb21tZW50V2luZG93ID0gcmVxdWlyZShcInBhcnRuZXJfY29tbWVudF93aW5kb3dcIilcbiAgICAgICAgICAgICAgICBzZWxmLmNvbW1lbnRXaW5kb3cgPSBuZXcgUGFydG5lckNvbW1lbnRXaW5kb3coKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoc2VsZi5jb21tZW50V2luZG93LmlzT3BlbigpID09IGZhbHNlKXtcbiAgICAgICAgICAgICAgICBzZWxmLmNvbW1lbnRXaW5kb3cub3BlbihkYXRhKVxuICAgICAgICAgICAgICAgIGlmKGNhbGxGdW5jKXtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21tZW50V2luZG93LmFkZENhbGxCYWNrKGNhbGxGdW5jKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9LFxuICAgIC8vIC0t5oC75pif5pWw5o+Q5Y2H5LiA57qnXG4gICAgb3BlblN0YXJVcFdpbmRvdyhib29sLGRhdGEpe1xuICAgICAgICAvLyBpZiBib29sID09IGZhbHNlIHRoZW5cbiAgICAgICAgLy8gICAgIGlmIHNlbGYuc3Rhcl93aW5kb3cgfj0gbmlsIHRoZW5cbiAgICAgICAgLy8gICAgICAgICBzZWxmLnN0YXJfd2luZG93OmNsb3NlKClcbiAgICAgICAgLy8gICAgICAgICBzZWxmLnN0YXJfd2luZG93ID0gbmlsXG4gICAgICAgIC8vICAgICAgICAgc2VsZjpjaGVja0lzQ2FuQ2FsbCgpXG4gICAgICAgIC8vICAgICBlbmRcbiAgICAgICAgLy8gZWxzZVxuICAgICAgICAvLyAgICAgaWYgc2VsZi5zdGFyX3dpbmRvdyA9PSBuaWwgdGhlblxuICAgICAgICAvLyAgICAgICAgIHNlbGYuc3Rhcl93aW5kb3cgPSBQb2tlZGV4U3RhcldpbmRvdy5OZXcoZGF0YSlcbiAgICAgICAgLy8gICAgIGVuZFxuICAgICAgICAvLyAgICAgaWYgc2VsZi5zdGFyX3dpbmRvdzppc09wZW4oKSA9PSBmYWxzZSB0aGVuXG4gICAgICAgIC8vICAgICAgICAgc2VsZi5zdGFyX3dpbmRvdzpvcGVuKClcbiAgICAgICAgLy8gICAgIGVuZFxuICAgICAgICAvLyBlbmQgIFxuICAgIH0sXG4gICAgLy8gLS3or7fmsYLmjIflrproi7Hpm4Tor4Torrrkv6Hmga9cbiAgICBzZW5kZXIxMTA0MShwYXJ0bmVyX2lkLHN0YXJ0LG51bSl7XG4gICAgICAgIGxldCBwcm90b2NhbCA9e31cbiAgICAgICAgcHJvdG9jYWwucGFydG5lcl9pZCA9IHBhcnRuZXJfaWRcbiAgICAgICAgcHJvdG9jYWwuc3RhcnQgPSBzdGFydFxuICAgICAgICBwcm90b2NhbC5udW0gPSBudW1cbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTEwNDEscHJvdG9jYWwpXG4gICAgfSxcbiAgICAvLyAtLeS8meS8tOivhOiuulxuICAgIHNlbmRlcjExMDQzKHBhcnRuZXJfaWQsbXNnKXtcbiAgICAgICAgbGV0IHByb3RvY2FsID17fVxuICAgICAgICBwcm90b2NhbC5wYXJ0bmVyX2lkID0gcGFydG5lcl9pZFxuICAgICAgICBwcm90b2NhbC5tc2cgPSBtc2dcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTEwNDMscHJvdG9jYWwpXG4gICAgfSxcbiAgICAvLyAtLeiuvue9ruS8meS8tOS4uuWWnOasolxuICAgIHNlbmRlcjExMDQyKHBhcnRuZXJfaWQpe1xuICAgICAgICBsZXQgcHJvdG9jYWwgPXt9XG4gICAgICAgIHByb3RvY2FsLnBhcnRuZXJfaWQgPSBwYXJ0bmVyX2lkXG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDExMDQyLHByb3RvY2FsKVxuICAgIH0sXG4gICAgLy8gLS3or4TorrrngrnotZ5cbiAgICBzZW5kZXIxMTA0NChwYXJ0bmVyX2lkLGNvbW1lbnRfaWQsdHlwZSl7XG4gICAgICAgIGxldCBwcm90b2NhbCA9e31cbiAgICAgICAgcHJvdG9jYWwucGFydG5lcl9pZCA9IHBhcnRuZXJfaWRcbiAgICAgICAgcHJvdG9jYWwuY29tbWVudF9pZCA9IGNvbW1lbnRfaWRcbiAgICAgICAgcHJvdG9jYWwudHlwZSA9IHR5cGVcbiAgICAgICAgXG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDExMDQ0LHByb3RvY2FsKVxuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBQb2tlZGV4Q29udHJvbGxlcjsiXX0=
|