(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/stronger/stronger_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, '1d70awzjyFOELEx5kpJ0r1p', 'stronger_controller'); // Scripts/mod/stronger/stronger_controller.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-03-29 11:43:16 // -------------------------------------------------------------------- var JumpController = require("jump_controller"); var StrongerEvent = require("stronger_event"); var StrongerController = cc.Class({ "extends": BaseController, ctor: function ctor() {}, // 初始化配置数据 initConfig: function initConfig() { var StrongerModel = require("stronger_model"); this.model = new StrongerModel(); this.model.initConfig(); this.is_first = true; }, // 返回当前的model getModel: function getModel() { return this.model; }, // 注册监听事件 registerEvents: function registerEvents() {}, // 注册协议接受事件 registerProtocals: function registerProtocals() { this.RegisterProtocal(11070, this.on11070.bind(this)); // -- 全服最强数据 }, on11070: function on11070(data) { this.model.setDataByBid(data); gcore.GlobalEvent.fire(StrongerEvent.UPDATE_SCROE, data); }, //--打开我要变强主界面 openMainWin: function openMainWin(status, index, partner_id) { var self = this; if (status) { if (!self.main_win) { var StrongerMainWindow = require("strong_main_window"); self.main_win = new StrongerMainWindow(partner_id); } self.main_win.open(index); } else { if (self.main_win) { self.main_win.close(); self.main_win = null; } } }, setIsFirst: function setIsFirst(bool) { this.is_first = bool; }, sender11070: function sender11070(partner_bid) { var protocal = {}; protocal.partner_bid = partner_bid; this.SendProtocal(11070, protocal); }, getStrongerRoot: function getStrongerRoot() { if (this.main_win) return this.main_win.root_wnd; }, clickCallBack: function clickCallBack(evt_type) { if (evt_type) { if (evt_type == 200) { //英雄背包 JumpController.getInstance().jumpViewByEvtData([19]); } else if (evt_type == 201) { //神器升级 JumpController.getInstance().jumpViewByEvtData([20]); } else if (evt_type == 202) { //联盟技能界面 JumpController.getInstance().jumpViewByEvtData([32]); } else if (evt_type == 203) { //玩家英雄信息界面 if (this.main_win && this.main_win.view_list[1]) { var cur_hero_item = this.main_win.view_list[1].getCurHero(); if (cur_hero_item) { var hero_vo = cur_hero_item.getData(); var HeroController = require("hero_controller"); var HeroConst = require("hero_const"); var all_role_list = HeroController.getInstance().getModel().getAllHeroArray(); HeroController.getInstance().openHeroMainInfoWindow(true, hero_vo, all_role_list, { show_model_type: HeroConst.BagTab.eBagHero }); } } } else if (evt_type == 204) { //先知殿 JumpController.getInstance().jumpViewByEvtData([24]); } else if (evt_type == 100) { //布阵阵法 JumpController.getInstance().jumpViewByEvtData([30]); } else if (evt_type == 120) { //召唤 JumpController.getInstance().jumpViewByEvtData([1]); } else if (evt_type == 121) { //背包 碎片 var BackPackConst = require("backpack_const"); JumpController.getInstance().jumpViewByEvtData([8, BackPackConst.item_tab_type.HERO]); } else if (evt_type == 122) { //英雄商城 var MallConst = require("mall_const"); JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.Recovery]); } else if (evt_type == 123 || evt_type == 162) { //金币兑换 JumpController.getInstance().jumpViewByEvtData([35]); } else if (evt_type == 125) {//金币出售 } else if (evt_type == 126) { //远航 JumpController.getInstance().jumpViewByEvtData([18]); } else if (evt_type == 128) {//银币摆摊 } else if (evt_type == 129) { JumpController.getInstance().jumpViewByEvtData([41]); } else if (evt_type == 130) { //成就 var TaskConst = require("task_const"); JumpController.getInstance().jumpViewByEvtData([41, TaskConst.type.feat]); } else if (evt_type == 131) { //充值 JumpController.getInstance().jumpViewByEvtData([7]); } else if (evt_type == 132) { //快速作战 JumpController.getInstance().jumpViewByEvtData([11]); } else if (evt_type == 134) { //杂货店 JumpController.getInstance().jumpViewByEvtData([6]); } else if (evt_type == 135) {//金币市场 突破 } else if (evt_type == 138) { //钻石商城 var MallConst = require("mall_const"); JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.GodShop]); } else if (evt_type == 144) { //道具背包 var BackPackConst = require("backpack_const"); JumpController.getInstance().jumpViewByEvtData([8, BackPackConst.item_tab_type.PROPS]); } else if (evt_type == 145) { //联盟捐献 var RoleController = require("role_controller"); var role_vo = RoleController.getInstance().getRoleVo(); if (role_vo.isHasGuild()) { JumpController.getInstance().jumpViewByEvtData([13]); } else { var MainuiController = require("mainui_controller"); var MainUiConst = require("mainui_const"); MainuiController.getInstance().changeMainUIStatus(MainUiConst.btn_index.guild); } } else if (evt_type == 146) { //公会副本 var RoleController = require("role_controller"); var role_vo = RoleController.getInstance().getRoleVo(); if (role_vo.isHasGuild()) { JumpController.getInstance().jumpViewByEvtData([31]); } else { var MainuiController = require("mainui_controller"); var MainUiConst = require("mainui_const"); MainuiController.getInstance().changeMainUIStatus(MainUiConst.btn_index.guild); } } else if (evt_type == 150) { //星河神殿 JumpController.getInstance().jumpViewByEvtData([27]); } else if (evt_type == 151) { //英雄远征 JumpController.getInstance().jumpViewByEvtData([25]); } else if (evt_type == 152) { //日常副本 JumpController.getInstance().jumpViewByEvtData([17]); } else if (evt_type == 153) { //无尽试炼 var open_data = Config.dailyplay_data.data_exerciseactivity[2]; if (open_data == null) { message(Utils.TI18N("无尽试炼数据异常")); return; } var MainuiController = require("mainui_controller"); var bool = MainuiController.getInstance().checkIsOpenByActivate(open_data.activate); if (bool == false) { message(open_data.lock_desc); return; } var Endless_trailController = require("endless_trail_controller"); var is_open = Endless_trailController.getInstance().checkIsOpen(); if (is_open) { JumpController.getInstance().jumpViewByEvtData([43]); } } else if (evt_type == 154) { //锻造屋 JumpController.getInstance().jumpViewByEvtData([26]); } else if (evt_type == 155) { //融合祭坛 JumpController.getInstance().jumpViewByEvtData([23]); } else if (evt_type == 156) { //祭祀小屋 JumpController.getInstance().jumpViewByEvtData([22]); } else if (evt_type == 157) { //剧情副本 JumpController.getInstance().jumpViewByEvtData([5]); } else if (evt_type == 158) { //竞技场 JumpController.getInstance().jumpViewByEvtData([3]); } else if (evt_type == 159) { //冠军赛 JumpController.getInstance().jumpViewByEvtData([36]); } else if (evt_type == 160) { //试练塔 JumpController.getInstance().jumpViewByEvtData([12]); } else if (evt_type == 402) { //好友 JumpController.getInstance().jumpViewByEvtData([4]); } else if (evt_type == 404) { //英雄界面 JumpController.getInstance().jumpViewByEvtData([19]); } else if (evt_type == 405) { //幸运探宝 JumpController.getInstance().jumpViewByEvtData([40]); } else if (evt_type == 406) { //探宝商店 var MallConst = require("mall_const"); JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.GuessShop]); } else if (evt_type == 407) { //冒险 JumpController.getInstance().jumpViewByEvtData([34]); } else if (evt_type == 408 || evt_type == 161) { //锻造坊的符文 var ForgeHouseConst = require("forgehouse_const"); JumpController.getInstance().jumpViewByEvtData([26, ForgeHouseConst.Tab_Index.Artifact]); } else if (evt_type == 409) { JumpController.getInstance().jumpViewByEvtData([20]); } else if (evt_type == 410) { //精英段位赛商店 var MallConst = require("mall_const"); JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.EliteShop]); } else if (evt_type == 411) { var ActionConst = require("action_const"); JumpController.getInstance().jumpViewByEvtData([45, ActionConst.ActionRankCommonType.time_summon]); } else if (evt_type == 412) { //打开录像馆 require("vedio_controller").getInstance().openVedioMainWindow(true); } else if (evt_type == 413) { //打开录像馆个人记录 require("vedio_controller").getInstance().openVedioMyselfWindow(true); } } } }); module.exports = StrongerController; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxzdHJvbmdlclxcc3Ryb25nZXJfY29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJKdW1wQ29udHJvbGxlciIsInJlcXVpcmUiLCJTdHJvbmdlckV2ZW50IiwiU3Ryb25nZXJDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJTdHJvbmdlck1vZGVsIiwibW9kZWwiLCJpc19maXJzdCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJvbjExMDcwIiwiYmluZCIsImRhdGEiLCJzZXREYXRhQnlCaWQiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiZmlyZSIsIlVQREFURV9TQ1JPRSIsIm9wZW5NYWluV2luIiwic3RhdHVzIiwiaW5kZXgiLCJwYXJ0bmVyX2lkIiwic2VsZiIsIm1haW5fd2luIiwiU3Ryb25nZXJNYWluV2luZG93Iiwib3BlbiIsImNsb3NlIiwic2V0SXNGaXJzdCIsImJvb2wiLCJzZW5kZXIxMTA3MCIsInBhcnRuZXJfYmlkIiwicHJvdG9jYWwiLCJTZW5kUHJvdG9jYWwiLCJnZXRTdHJvbmdlclJvb3QiLCJyb290X3duZCIsImNsaWNrQ2FsbEJhY2siLCJldnRfdHlwZSIsImdldEluc3RhbmNlIiwianVtcFZpZXdCeUV2dERhdGEiLCJ2aWV3X2xpc3QiLCJjdXJfaGVyb19pdGVtIiwiZ2V0Q3VySGVybyIsImhlcm9fdm8iLCJnZXREYXRhIiwiSGVyb0NvbnRyb2xsZXIiLCJIZXJvQ29uc3QiLCJhbGxfcm9sZV9saXN0IiwiZ2V0QWxsSGVyb0FycmF5Iiwib3Blbkhlcm9NYWluSW5mb1dpbmRvdyIsInNob3dfbW9kZWxfdHlwZSIsIkJhZ1RhYiIsImVCYWdIZXJvIiwiQmFja1BhY2tDb25zdCIsIml0ZW1fdGFiX3R5cGUiLCJIRVJPIiwiTWFsbENvbnN0IiwiTWFsbFR5cGUiLCJSZWNvdmVyeSIsIlRhc2tDb25zdCIsInR5cGUiLCJmZWF0IiwiR29kU2hvcCIsIlBST1BTIiwiUm9sZUNvbnRyb2xsZXIiLCJyb2xlX3ZvIiwiZ2V0Um9sZVZvIiwiaXNIYXNHdWlsZCIsIk1haW51aUNvbnRyb2xsZXIiLCJNYWluVWlDb25zdCIsImNoYW5nZU1haW5VSVN0YXR1cyIsImJ0bl9pbmRleCIsImd1aWxkIiwib3Blbl9kYXRhIiwiQ29uZmlnIiwiZGFpbHlwbGF5X2RhdGEiLCJkYXRhX2V4ZXJjaXNlYWN0aXZpdHkiLCJtZXNzYWdlIiwiVXRpbHMiLCJUSTE4TiIsImNoZWNrSXNPcGVuQnlBY3RpdmF0ZSIsImFjdGl2YXRlIiwibG9ja19kZXNjIiwiRW5kbGVzc190cmFpbENvbnRyb2xsZXIiLCJpc19vcGVuIiwiY2hlY2tJc09wZW4iLCJHdWVzc1Nob3AiLCJGb3JnZUhvdXNlQ29uc3QiLCJUYWJfSW5kZXgiLCJBcnRpZmFjdCIsIkVsaXRlU2hvcCIsIkFjdGlvbkNvbnN0IiwiQWN0aW9uUmFua0NvbW1vblR5cGUiLCJ0aW1lX3N1bW1vbiIsIm9wZW5WZWRpb01haW5XaW5kb3ciLCJvcGVuVmVkaW9NeXNlbGZXaW5kb3ciLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLGNBQWMsR0FBR0MsT0FBTyxDQUFDLGlCQUFELENBQTVCOztBQUNBLElBQUlDLGFBQWEsR0FBR0QsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQUlFLGtCQUFrQixHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUM5QixhQUFTQyxjQURxQjtBQUU5QkMsRUFBQUEsSUFBSSxFQUFFLGdCQUFZLENBQ2pCLENBSDZCO0FBSzlCO0FBQ0FDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixRQUFJQyxhQUFhLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxTQUFLUyxLQUFMLEdB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SUFBR3BELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQ3JCMUMsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxDQUEvQztBQUNILE9BRkssTUFFQSxJQUFHRixRQUFRLElBQUksR0FBZixFQUFtQjtBQUFDO0FBQ3RCLFlBQUltQixTQUFTLEdBQVE1RCxPQUFPLENBQUMsWUFBRCxDQUE1Qjs7QUFDQUQsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxFQUFJaUIsU0FBUyxDQUFDQyxRQUFWLENBQW1CaUMsU0FBdkIsQ0FBL0M7QUFDSCxPQUhLLE1BR0EsSUFBR3JELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQ3JCLFlBQUlzRCxXQUFXLEdBQUcvRixPQUFPLENBQUMsY0FBRCxDQUF6Qjs7QUFDQUQsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxFQUFJb0QsV0FBVyxDQUFDQyxvQkFBWixDQUFpQ0MsV0FBckMsQ0FBL0M7QUFDSCxPQUhLLE1BR0EsSUFBR3hELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQUM7QUFDdEJ6QyxRQUFBQSxPQUFPLENBQUMsa0JBQUQsQ0FBUCxDQUE0QjBDLFdBQTVCLEdBQTBDd0QsbUJBQTFDLENBQThELElBQTlEO0FBQ0gsT0FGSyxNQUVBLElBQUd6RCxRQUFRLElBQUksR0FBZixFQUFtQjtBQUFDO0FBQ3RCekMsUUFBQUEsT0FBTyxDQUFDLGtCQUFELENBQVAsQ0FBNEIwQyxXQUE1QixHQUEwQ3lELHFCQUExQyxDQUFnRSxJQUFoRTtBQUNIO0FBQ0o7QUFFSjtBQTlNNkIsQ0FBVCxDQUF6QjtBQWlOQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkcsa0JBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTI5IDExOjQzOjE2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIEp1bXBDb250cm9sbGVyID0gcmVxdWlyZShcImp1bXBfY29udHJvbGxlclwiKTtcbnZhciBTdHJvbmdlckV2ZW50ID0gcmVxdWlyZShcInN0cm9uZ2VyX2V2ZW50XCIpXG52YXIgU3Ryb25nZXJDb250cm9sbGVyID0gY2MuQ2xhc3Moe1xuICAgIGV4dGVuZHM6IEJhc2VDb250cm9sbGVyLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgLy8g5Yid5aeL5YyW6YWN572u5pWw5o2uXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgU3Ryb25nZXJNb2RlbCA9IHJlcXVpcmUoXCJzdHJvbmdlcl9tb2RlbFwiKTtcblxuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IFN0cm9uZ2VyTW9kZWwoKTtcbiAgICAgICAgdGhpcy5tb2RlbC5pbml0Q29uZmlnKCk7XG4gICAgICAgIHRoaXMuaXNfZmlyc3QgPSB0cnVlXG4gICAgfSwgIFxuXG4gICAgLy8g6L+U5Zue5b2T5YmN55qEbW9kZWxcbiAgICBnZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM55uR5ZCs5LqL5Lu2XG4gICAgcmVnaXN0ZXJFdmVudHM6IGZ1bmN0aW9uICgpIHtcblxuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTEwNzAsdGhpcy5vbjExMDcwLmJpbmQodGhpcykpICAvLyAtLSDlhajmnI3mnIDlvLrmlbDmja5cbiAgICB9LFxuICAgIG9uMTEwNzAoIGRhdGEgKXtcbiAgICAgICAgdGhpcy5tb2RlbC5zZXREYXRhQnlCaWQoZGF0YSlcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShTdHJvbmdlckV2ZW50LlVQREFURV9TQ1JPRSxkYXRhKVxuICAgIH0sXG4gICAgLy8tLeaJk+W8gOaIkeimgeWPmOW8uuS4u+eVjOmdolxuICAgIG9wZW5NYWluV2luKHN0YXR1cyxpbmRleCxwYXJ0bmVyX2lkKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzXG4gICAgICAgIGlmIChzdGF0dXMpIHsgXG4gICAgICAgICAgICBpZiAoIXNlbGYubWFpbl93aW4pIHtcbiAgICAgICAgICAgICAgICB2YXIgU3Ryb25nZXJNYWluV2luZG93ID0gcmVxdWlyZShcInN0cm9uZ19tYWluX3dpbmRvd1wiKVxuICAgICAgICAgICAgICAgIHNlbGYubWFpbl93aW4gPSBuZXcgU3Ryb25nZXJNYWluV2luZG93KHBhcnRuZXJfaWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxmLm1haW5fd2luLm9wZW4oaW5kZXgpXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYgKHNlbGYubWFpbl93aW4peyBcbiAgICAgICAgICAgICAgICBzZWxmLm1haW5fd2luLmNsb3NlKClcbiAgICAgICAgICAgICAgICBzZWxmLm1haW5fd2luID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXRJc0ZpcnN0KCBib29sICl7XG4gICAgICAgIHRoaXMuaXNfZmlyc3QgPSBib29sXG4gICAgfSxcbiAgICBzZW5kZXIxMTA3MChwYXJ0bmVyX2JpZCl7XG4gICAgICAgIGxldCBwcm90b2NhbCA9IHt9XG4gICAgICAgIHByb3RvY2FsLnBhcnRuZXJfYmlkID0gcGFydG5lcl9iaWRcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTEwNzAsIHByb3RvY2FsKVxuICAgIH0sXG5cbiAgICBnZXRTdHJvbmdlclJvb3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5tYWluX3dpbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1haW5fd2luLnJvb3Rfd25kO1xuICAgIH0sXG4gICAgXG4gICAgY2xpY2tDYWxsQmFjayhldnRfdHlwZSl7XG4gICAgICAgIGlmKGV2dF90eXBlKXtcbiAgICAgICAgICAgIGlmKGV2dF90eXBlID09IDIwMCl7Ly/oi7Hpm4Tog4zljIVcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxOV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMjAxKXsvL+elnuWZqOWNh+e6p1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzIwXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAyMDIpey8v6IGU55uf5oqA6IO955WM6Z2iXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzJdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDIwMyl7Ly/njqnlrrboi7Hpm4Tkv6Hmga/nlYzpnaJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1haW5fd2luICYmIHRoaXMubWFpbl93aW4udmlld19saXN0WzFdKXtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cl9oZXJvX2l0ZW0gPSB0aGlzLm1haW5fd2luLnZpZXdfbGlzdFsxXS5nZXRDdXJIZXJvKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGN1cl9oZXJvX2l0ZW0pe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlcm9fdm8gPSBjdXJfaGVyb19pdGVtLmdldERhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBIZXJvQ29udHJvbGxlciA9IHJlcXVpcmUoXCJoZXJvX2NvbnRyb2xsZXJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgSGVyb0NvbnN0ICAgICAgPSByZXF1aXJlKFwiaGVyb19jb25zdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbGxfcm9sZV9saXN0ID0gSGVyb0NvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRNb2RlbCgpLmdldEFsbEhlcm9BcnJheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgSGVyb0NvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5vcGVuSGVyb01haW5JbmZvV2luZG93KHRydWUsIGhlcm9fdm8sIGFsbF9yb2xlX2xpc3QsIHtzaG93X21vZGVsX3R5cGU6IEhlcm9Db25zdC5CYWdUYWIuZUJhZ0hlcm99KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMjA0KXsvL+WFiOefpeauv1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI0XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMDApey8v5biD6Zi16Zi15rOVXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzBdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMCl7Ly/lj6zllKRcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMjEpey8v6IOM5YyFIOeijueJh1xuICAgICAgICAgICAgICAgIHZhciBCYWNrUGFja0NvbnN0ID0gcmVxdWlyZShcImJhY2twYWNrX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzgsIEJhY2tQYWNrQ29uc3QuaXRlbV90YWJfdHlwZS5IRVJPXSlcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMil7Ly/oi7Hpm4TllYbln45cbiAgICAgICAgICAgICAgICB2YXIgTWFsbENvbnN0ICAgICAgPSByZXF1aXJlKFwibWFsbF9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxNSwgTWFsbENvbnN0Lk1hbGxUeXBlLlJlY292ZXJ5XSlcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMyB8fCBldnRfdHlwZSA9PSAxNjIpey8v6YeR5biB5YWR5o2iXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyNSl7Ly/ph5HluIHlh7rllK5cblxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTI2KXsvL+i/nOiIqlxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE4XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMjgpey8v6ZO25biB5pGG5pGKXG5cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyOSl7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbNDFdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzMCl7Ly/miJDlsLFcbiAgICAgICAgICAgICAgICB2YXIgVGFza0NvbnN0ID0gcmVxdWlyZShcInRhc2tfY29uc3RcIik7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbNDEsVGFza0NvbnN0LnR5cGUuZmVhdF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTMxKXsvL+WFheWAvFxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzddKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzMil7Ly/lv6vpgJ/kvZzmiJhcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxMV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTM0KXsvL+adgui0p+W6l1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzZdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzNSl7Ly/ph5HluIHluILlnLog56qB56C0XG5cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzOCl7Ly/pkrvnn7PllYbln45cbiAgICAgICAgICAgICAgICB2YXIgTWFsbENvbnN0ICAgICAgPSByZXF1aXJlKFwibWFsbF9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxNSxNYWxsQ29uc3QuTWFsbFR5cGUuR29kU2hvcF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTQ0KXsvL+mBk+WFt+iDjOWMhVxuICAgICAgICAgICAgICAgIHZhciBCYWNrUGFja0NvbnN0ID0gcmVxdWlyZShcImJhY2twYWNrX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzgsQmFja1BhY2tDb25zdC5pdGVtX3RhYl90eXBlLlBST1BTXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNDUpey8v6IGU55uf5o2Q54yuXG4gICAgICAgICAgICAgICAgdmFyIFJvbGVDb250cm9sbGVyID0gcmVxdWlyZShcInJvbGVfY29udHJvbGxlclwiKVxuICAgICAgICAgICAgICAgIHZhciByb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKTtcbiAgICAgICAgICAgICAgICBpZihyb2xlX3ZvLmlzSGFzR3VpbGQoKSl7XG4gICAgICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzEzXSk7XG4gICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgIHZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgTWFpblVpQ29uc3QgPSByZXF1aXJlKFwibWFpbnVpX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkuY2hhbmdlTWFpblVJU3RhdHVzKE1haW5VaUNvbnN0LmJ0bl9pbmRleC5ndWlsZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTQ2KXsvL+WFrOS8muWJr+acrFxuICAgICAgICAgICAgICAgIHZhciBSb2xlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyb2xlX2NvbnRyb2xsZXJcIilcbiAgICAgICAgICAgICAgICB2YXIgcm9sZV92byA9IFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgICAgICAgICAgICAgaWYocm9sZV92by5pc0hhc0d1aWxkKCkpe1xuICAgICAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszMV0pO1xuICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICB2YXIgTWFpbnVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIE1haW5VaUNvbnN0ID0gcmVxdWlyZShcIm1haW51aV9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoYW5nZU1haW5VSVN0YXR1cyhNYWluVWlDb25zdC5idG5faW5kZXguZ3VpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1MCl7Ly/mmJ/msrPnpZ7mrr9cbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyN10pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTUxKXsvL+iLsembhOi/nOW+gVxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI1XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTIpey8v5pel5bi45Ymv5pysXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMTddKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1Myl7Ly/ml6DlsL3or5XngrxcbiAgICAgICAgICAgICAgICB2YXIgb3Blbl9kYXRhID0gQ29uZmlnLmRhaWx5cGxheV9kYXRhLmRhdGFfZXhlcmNpc2VhY3Rpdml0eVsyXTtcbiAgICAgICAgICAgICAgICBpZihvcGVuX2RhdGEgPT0gbnVsbCl7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UoVXRpbHMuVEkxOE4oXCLml6DlsL3or5XngrzmlbDmja7lvILluLhcIikpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgICAgIHZhciBib29sID0gTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoZWNrSXNPcGVuQnlBY3RpdmF0ZShvcGVuX2RhdGEuYWN0aXZhdGUpO1xuICAgICAgICAgICAgICAgIGlmKGJvb2wgPT0gZmFsc2Upe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKG9wZW5fZGF0YS5sb2NrX2Rlc2MpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBFbmRsZXNzX3RyYWlsQ29udHJvbGxlciA9IHJlcXVpcmUoXCJlbmRsZXNzX3RyYWlsX2NvbnRyb2xsZXJcIik7XG4gICAgICAgICAgICAgICAgdmFyIGlzX29wZW4gPSBFbmRsZXNzX3RyYWlsQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoZWNrSXNPcGVuKCk7XG4gICAgICAgICAgICAgICAgaWYoaXNfb3Blbil7XG4gICAgICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzQzXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTU0KXsvL+mUu+mAoOWxi1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI2XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTUpey8v6J6N5ZCI56Wt5Z2bXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMjNdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1Nil7Ly/npa3npYDlsI/lsYtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyMl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTU3KXsvL+WJp+aDheWJr+acrFxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1OCl7Ly/nq57mioDlnLpcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTkpey8v5Yag5Yab6LWbXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzZdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE2MCl7Ly/or5Xnu4PloZRcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxMl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDAyKXsvL+WlveWPi1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzRdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQwNCl7Ly/oi7Hpm4TnlYzpnaJcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxOV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA1KXsvL+W5uOi/kOaOouWunVxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzQwXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSA0MDYpey8v5o6i5a6d5ZWG5bqXXG4gICAgICAgICAgICAgICAgdmFyIE1hbGxDb25zdCA9IHJlcXVpcmUoXCJtYWxsX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE1LE1hbGxDb25zdC5NYWxsVHlwZS5HdWVzc1Nob3BdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQwNyl7Ly/lhpLpmalcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszNF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA4IHx8IGV2dF90eXBlID09IDE2MSl7Ly/plLvpgKDlnYrnmoTnrKbmlodcbiAgICAgICAgICAgICAgICB2YXIgRm9yZ2VIb3VzZUNvbnN0ID0gcmVxdWlyZShcImZvcmdlaG91c2VfY29uc3RcIik7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMjYsRm9yZ2VIb3VzZUNvbnN0LlRhYl9JbmRleC5BcnRpZmFjdF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA5KXtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyMF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDEwKXsvL+eyvuiLseauteS9jei1m+WVhuW6l1xuICAgICAgICAgICAgICAgIHZhciBNYWxsQ29uc3QgICAgICA9IHJlcXVpcmUoXCJtYWxsX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE1LE1hbGxDb25zdC5NYWxsVHlwZS5FbGl0ZVNob3BdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQxMSl7XG4gICAgICAgICAgICAgICAgdmFyIEFjdGlvbkNvbnN0ID0gcmVxdWlyZShcImFjdGlvbl9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFs0NSxBY3Rpb25Db25zdC5BY3Rpb25SYW5rQ29tbW9uVHlwZS50aW1lX3N1bW1vbl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDEyKXsvL+aJk+W8gOW9leWDj+mmhlxuICAgICAgICAgICAgICAgIHJlcXVpcmUoXCJ2ZWRpb19jb250cm9sbGVyXCIpLmdldEluc3RhbmNlKCkub3BlblZlZGlvTWFpbldpbmRvdyh0cnVlKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQxMyl7Ly/miZPlvIDlvZXlg4/ppobkuKrkurrorrDlvZVcbiAgICAgICAgICAgICAgICByZXF1aXJlKFwidmVkaW9fY29udHJvbGxlclwiKS5nZXRJbnN0YW5jZSgpLm9wZW5WZWRpb015c2VsZldpbmRvdyh0cnVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTdHJvbmdlckNvbnRyb2xsZXI7Il19