StartScene.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/Script/StartScene.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, '9129bZ2zN5I673xCbm79sLC', 'StartScene');
  13. // Script/StartScene.ts
  14. "use strict";
  15. var __extends = (this && this.__extends) || (function () {
  16. var extendStatics = function (d, b) {
  17. extendStatics = Object.setPrototypeOf ||
  18. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  19. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  20. return extendStatics(d, b);
  21. };
  22. return function (d, b) {
  23. extendStatics(d, b);
  24. function __() { this.constructor = d; }
  25. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  26. };
  27. })();
  28. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  29. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  30. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  31. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  32. return c > 3 && r && Object.defineProperty(target, key, r), r;
  33. };
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. var Global_1 = require("./Global");
  36. var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
  37. var StartScene = /** @class */ (function (_super) {
  38. __extends(StartScene, _super);
  39. function StartScene() {
  40. var _this = _super !== null && _super.apply(this, arguments) || this;
  41. _this.paihangbang = null;
  42. // LIFE-CYCLE CALLBACKS:
  43. _this.mainNode = null;
  44. _this.UpAni = null;
  45. _this.DownAni = null;
  46. /**
  47. * 玩家信息
  48. */
  49. _this.USERINFO = {
  50. userId: '12312313',
  51. score: 0,
  52. };
  53. _this.channel = "test";
  54. return _this;
  55. }
  56. StartScene.prototype.onLoad = function () {
  57. console.log("find --------------------1");
  58. // // this.LifeDing.zIndex = 5;
  59. // cc.sys.localStorage.removeItem("info");
  60. var infostr = cc.sys.localStorage.getItem("info");
  61. if (infostr == null || infostr == undefined || infostr == "") {
  62. infostr = { userId: '', score: 0, };
  63. infostr = JSON.stringify(infostr);
  64. cc.sys.localStorage.setItem("info", infostr);
  65. }
  66. console.log("------------------4 : " + infostr);
  67. this.USERINFO = JSON.parse(infostr);
  68. if (this.USERINFO == null || this.USERINFO == undefined) {
  69. this.USERINFO = {
  70. userId: '',
  71. score: 0,
  72. };
  73. this.LoadData();
  74. console.log("------------------5");
  75. this.USERINFO = JSON.parse(cc.sys.localStorage.getItem("info"));
  76. }
  77. Global_1.default.instance.setSN(this);
  78. Global_1.default.instance.OverFlag = false;
  79. var startNode = this.node.getChildByName("BgNode").getChildByName("kaiji");
  80. var Ani = startNode.getComponent(cc.Animation);
  81. var Anistate = Ani.play("kaiji");
  82. Anistate.wrapMode = cc.WrapMode.Loop;
  83. this.UpAni = startNode.getChildByName("Up").getComponent(cc.Animation);
  84. this.DownAni = startNode.getChildByName("Down").getComponent(cc.Animation);
  85. console.log("find --------------------1#");
  86. };
  87. StartScene.prototype.start = function () {
  88. var self = this;
  89. // self.USERINFO.userId = "playerB10";
  90. // self.USERINFO.score = 0;
  91. self.scheduleOnce(function () {
  92. Global_1.default.instance.SetUser(self.USERINFO);
  93. Global_1.default.instance.Channel = self.channel;
  94. //this.Login();
  95. }, 0.5);
  96. };
  97. StartScene.prototype.update = function (dt) {
  98. // cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,this.onKeyBackSpace,this);
  99. // cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN,this.onKeyDown,this);
  100. };
  101. /**
  102. * start game
  103. */
  104. StartScene.prototype.StartGame = function () {
  105. var self = this;
  106. var startTime = Date.now();
  107. var endTime;
  108. Global_1.default.instance.OverFlag = false;
  109. Global_1.default.instance.AniFalg = false;
  110. Global_1.default.instance.LorR = 0;
  111. Global_1.default.instance.InitSpeed = 8.5;
  112. Global_1.default.instance.moveSpeed = 1;
  113. Global_1.default.instance.FHFallSpeed = 2;
  114. cc.sys.localStorage.setItem("hfsj", "99");
  115. self.UpAnistate = self.UpAni.play();
  116. self.DownAnistate = self.DownAni.play();
  117. self.scheduleOnce(function () {
  118. self.node.runAction(cc.sequence(cc.fadeOut(0.5), cc.callFunc(function () {
  119. cc.director.loadScene("MainScene");
  120. endTime = Date.now();
  121. if (endTime - startTime > 330) {
  122. self.destroy();
  123. }
  124. console.log("场景跳转成功");
  125. })));
  126. }, 0.33);
  127. };
  128. /**
  129. * use the backSpace start game
  130. * @param event
  131. */
  132. StartScene.prototype.onKeyBackSpace = function (event) {
  133. if (event.keyCode == cc.KEY.space) {
  134. this.StartGame();
  135. }
  136. };
  137. /**
  138. * 登录
  139. */
  140. StartScene.prototype.Login = function () {
  141. var self = this;
  142. var channelStr = Global_1.default.instance.Channel;
  143. var uNam = Global_1.default.instance.GetUSer().userId;
  144. /* Http.sendRequest("/login",{channel:channelStr,userId:uNam},function(msg){
  145. console.log("------------------6");
  146. let code = JSON.parse(msg.code);
  147. console.log(code);
  148. if(code!=0){
  149. Global.instance.NetStatus = false;
  150. }
  151. console.log("------------------7");
  152. let mmsg = JSON.parse(msg.msg);
  153. self.USERINFO.userId = mmsg.userId;
  154. self.USERINFO.score = mmsg.score;
  155. Global.instance.getLocalScore().BestScore = mmsg.score;
  156. Global.instance.SetUser(self.USERINFO);
  157. });*/
  158. var ux = {
  159. userId: '',
  160. };
  161. ux.userId = channelStr + Global_1.default.instance.GetUSer().userId;
  162. /* Http.sendRequest("/rank",ux,function(mmsg){
  163. console.log("------------------8");
  164. let MM = JSON.parse(mmsg.msg);
  165. console.log(MM);
  166. if(Global.instance.GetR()==null||Global.instance.GetR().rank==undefined||Global.instance.GetR().rank<MM.my.rank){
  167. Global.instance.SetR(MM.my.rank);
  168. Global.instance.SetS(MM.other);
  169. }
  170. });*/
  171. };
  172. //需要更多源码联系Q:852183691
  173. //或者
  174. //关注微信公众号“史于二”
  175. StartScene.prototype.CheckRank = function () {
  176. this.destroy();
  177. cc.director.loadScene("EndScene");
  178. };
  179. StartScene.prototype.IdGenerater = function () {
  180. var str = "";
  181. var suffix = "";
  182. var Id;
  183. var Word;
  184. for (var i = 0; i < 2; i++) {
  185. var ranNum = Math.ceil(Math.random() * 25);
  186. Word = String.fromCharCode(65 + ranNum);
  187. str += Word;
  188. }
  189. for (var i = 0; i < 7; i++) {
  190. var suffixNum = Math.ceil(Math.random() * 9);
  191. suffix += suffixNum.toString();
  192. }
  193. Id = str + suffix;
  194. return Id;
  195. };
  196. StartScene.prototype.LoadData = function () {
  197. var self = this;
  198. var id = self.IdGenerater();
  199. self.USERINFO.userId = id;
  200. self.USERINFO.score = 0;
  201. cc.sys.localStorage.setItem("info", JSON.stringify(self.USERINFO));
  202. // cc.sys.localStorage.removeItem("info");
  203. // let url = cc.url.raw("resources/INFO/data.json");
  204. // let infotem;
  205. // cc.loader.load(url,function(err,res){
  206. // if(err){
  207. // console.log("load"+url,err+"err result:"+JSON.stringify(res));
  208. // }
  209. // infotem = res;
  210. // });
  211. };
  212. __decorate([
  213. property(cc.Prefab)
  214. ], StartScene.prototype, "paihangbang", void 0);
  215. StartScene = __decorate([
  216. ccclass
  217. ], StartScene);
  218. return StartScene;
  219. }(cc.Component));
  220. exports.default = StartScene;
  221. /**
  222. * 联网登录放在开始游戏的时候,期间获取一次排行数据
  223. * 这里有一个逻辑上的问题:如果第一次玩的分数是0,就
  224. */
  225. cc._RF.pop();
  226. }
  227. if (nodeEnv) {
  228. __define(__module.exports, __require, __module);
  229. }
  230. else {
  231. __quick_compile_project__.registerModuleFunc(__filename, function () {
  232. __define(__module.exports, __require, __module);
  233. });
  234. }
  235. })();
  236. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTdGFydFNjZW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUE4QjtBQUd4QixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUF3Qyw4QkFBWTtJQUFwRDtRQUFBLHFFQXFNQztRQWxNRyxpQkFBVyxHQUFhLElBQUksQ0FBQztRQUc3Qix3QkFBd0I7UUFFeEIsY0FBUSxHQUFHLElBQUksQ0FBQztRQUVoQixXQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsYUFBTyxHQUFHLElBQUksQ0FBQztRQUtmOztXQUVHO1FBQ0gsY0FBUSxHQUFDO1lBQ0wsTUFBTSxFQUFDLFVBQVU7WUFDakIsS0FBSyxFQUFDLENBQUM7U0FDVixDQUFBO1FBQ08sYUFBTyxHQUFHLE1BQU0sQ0FBQzs7SUE4SzdCLENBQUM7SUE1S0csMkJBQU0sR0FBTjtRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNwQywrQkFBK0I7UUFDL0IsMENBQTBDO1FBQ2hELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRCxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLFNBQVMsSUFBSyxPQUFPLElBQUksRUFBRSxFQUM3RDtZQUNDLE9BQU8sR0FBRyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFDLENBQUMsR0FBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFHLElBQUksQ0FBQyxRQUFRLElBQUUsSUFBSSxJQUFFLElBQUksQ0FBQyxRQUFRLElBQUUsU0FBUyxFQUFDO1lBRTdDLElBQUksQ0FBQyxRQUFRLEdBQUM7Z0JBQ1YsTUFBTSxFQUFDLEVBQUU7Z0JBQ1QsS0FBSyxFQUFDLENBQUM7YUFDVixDQUFBO1lBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDbkU7UUFDRCxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsMEJBQUssR0FBTDtRQUNJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixzQ0FBc0M7UUFDdEMsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDZCxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLGdCQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLGVBQWU7UUFDbkIsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRVgsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO1FBQ1AsaUZBQWlGO1FBQ2pGLDRFQUE0RTtJQUMvRSxDQUFDO0lBSUQ7O09BRUc7SUFDSCw4QkFBUyxHQUFUO1FBQ0ksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLE9BQU8sQ0FBQztRQUNaLGdCQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDaEMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUM5QixnQkFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hELEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFHLE9BQU8sR0FBQyxTQUFTLEdBQUMsR0FBRyxFQUFDO29CQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ2xCO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDO0lBRVosQ0FBQztJQUdEOzs7T0FHRztJQUNILG1DQUFjLEdBQWQsVUFBZSxLQUFLO1FBQ2hCLElBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQztZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUc7O0dBRUQ7SUFDTywwQkFBSyxHQUFmO1FBQ0ksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksVUFBVSxHQUFHLGdCQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLElBQUksR0FBRyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDN0M7Ozs7Ozs7Ozs7Ozs7Y0FhTTtRQUNMLElBQUksRUFBRSxHQUFDO1lBQ0gsTUFBTSxFQUFDLEVBQUU7U0FDWixDQUFBO1FBQ0QsRUFBRSxDQUFDLE1BQU0sR0FBRyxVQUFVLEdBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3pEOzs7Ozs7OztjQVFNO0lBQ1QsQ0FBQztJQUVMLHFCQUFxQjtJQUNyQixJQUFJO0lBQ0osY0FBYztJQUNWLDhCQUFTLEdBQVQ7UUFDSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0NBQVcsR0FBWDtRQUNJLElBQUksR0FBRyxHQUFDLEVBQUUsQ0FBQTtRQUNWLElBQUksTUFBTSxHQUFDLEVBQUUsQ0FBQTtRQUNiLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUM7UUFDVCxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQ2hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLElBQUksR0FBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxHQUFHLElBQUksSUFBSSxDQUFDO1NBQ2Y7UUFDRCxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQ2hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbEM7UUFDRCxFQUFFLEdBQUcsR0FBRyxHQUFDLE1BQU0sQ0FBQztRQUNoQixPQUFPLEVBQUUsQ0FBQTtJQUNiLENBQUM7SUFFTyw2QkFBUSxHQUFoQjtRQUNJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN4QixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEUsMENBQTBDO1FBQzFDLG9EQUFvRDtRQUNwRCxlQUFlO1FBQ2Ysd0NBQXdDO1FBQ3hDLGVBQWU7UUFDZixxRUFBcUU7UUFDckUsUUFBUTtRQUNSLHFCQUFxQjtRQUNyQixNQUFNO0lBQ1YsQ0FBQztJQWpNRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO21EQUNTO0lBSFosVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXFNOUI7SUFBRCxpQkFBQztDQXJNRCxBQXFNQyxDQXJNdUMsRUFBRSxDQUFDLFNBQVMsR0FxTW5EO2tCQXJNb0IsVUFBVTtBQXNNL0I7OztHQUdHIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdsb2JhbCBmcm9tIFwiLi9HbG9iYWxcIjtcclxuaW1wb3J0IEh0dHAgZnJvbSBcIi4vSHR0cFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdGFydFNjZW5lIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgcGFpaGFuZ2Jhbmc6Y2MuUHJlZmFiID0gbnVsbDtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgbWFpbk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFVwQW5pID0gbnVsbDtcclxuICAgIERvd25BbmkgPSBudWxsO1xyXG4gICAgVXBBbmlzdGF0ZTtcclxuICAgIERvd25BbmlzdGF0ZTtcclxuXHJcbiAgICBDaGVja0J0bjpjYy5CdXR0b247XHJcbiAgICAvKipcclxuICAgICAqIOeOqeWutuS/oeaBr1xyXG4gICAgICovXHJcbiAgICBVU0VSSU5GTz17XHJcbiAgICAgICAgdXNlcklkOicxMjMxMjMxMycsXHJcbiAgICAgICAgc2NvcmU6MCxcclxuICAgIH1cclxuICAgIHByaXZhdGUgY2hhbm5lbCA9IFwidGVzdFwiO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblx0XHRjb25zb2xlLmxvZyhcImZpbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0xXCIpO1xyXG4gICAgICAgIC8vIC8vIHRoaXMuTGlmZURpbmcuekluZGV4ID0gNTtcclxuICAgICAgICAvLyBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJpbmZvXCIpO1xyXG5cdFx0bGV0IGluZm9zdHIgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJpbmZvXCIpO1xyXG5cdFx0XHJcblx0XHRpZiggaW5mb3N0ciA9PSBudWxsIHx8IGluZm9zdHIgPT0gdW5kZWZpbmVkIHx8ICBpbmZvc3RyID09IFwiXCIgKVxyXG5cdFx0e1xyXG5cdFx0XHRpbmZvc3RyID0ge3VzZXJJZDonJywgc2NvcmU6MCx9O1xyXG5cdFx0XHRpbmZvc3RyID0gSlNPTi5zdHJpbmdpZnkoaW5mb3N0cik7XHJcblx0XHRcdGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImluZm9cIixpbmZvc3RyKTtcclxuXHRcdH1cclxuIGNvbnNvbGUubG9nKFwiLS0tLS0tLS0tLS0tLS0tLS0tNCA6IFwiICsgaW5mb3N0cik7XHJcbiAgICAgICAgdGhpcy5VU0VSSU5GTyA9IEpTT04ucGFyc2UoaW5mb3N0cik7XHJcbiAgICAgICAgaWYodGhpcy5VU0VSSU5GTz09bnVsbHx8dGhpcy5VU0VSSU5GTz09dW5kZWZpbmVkKXtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuVVNFUklORk89e1xyXG4gICAgICAgICAgICAgICAgdXNlcklkOicnLFxyXG4gICAgICAgICAgICAgICAgc2NvcmU6MCxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLkxvYWREYXRhKCk7XHJcblx0XHRcdCBjb25zb2xlLmxvZyhcIi0tLS0tLS0tLS0tLS0tLS0tLTVcIik7XHJcbiAgICAgICAgICAgIHRoaXMuVVNFUklORk8gPSBKU09OLnBhcnNlKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImluZm9cIikpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBHbG9iYWwuaW5zdGFuY2Uuc2V0U04odGhpcyk7XHJcbiAgICAgICAgR2xvYmFsLmluc3RhbmNlLk92ZXJGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHN0YXJ0Tm9kZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkJnTm9kZVwiKS5nZXRDaGlsZEJ5TmFtZShcImthaWppXCIpO1xyXG4gICAgICAgIGxldCBBbmkgPSBzdGFydE5vZGUuZ2V0Q29tcG9uZW50KGNjLkFuaW1hdGlvbik7XHJcbiAgICAgICAgbGV0IEFuaXN0YXRlID0gQW5pLnBsYXkoXCJrYWlqaVwiKTtcclxuICAgICAgICBBbmlzdGF0ZS53cmFwTW9kZSA9IGNjLldyYXBNb2RlLkxvb3A7XHJcbiAgICAgICAgdGhpcy5VcEFuaSA9IHN0YXJ0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIlVwXCIpLmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgIHRoaXMuRG93bkFuaSA9IHN0YXJ0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIkRvd25cIikuZ2V0Q29tcG9uZW50KGNjLkFuaW1hdGlvbik7XHJcblx0XHRjb25zb2xlLmxvZyhcImZpbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0xI1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIHNlbGYuVVNFUklORk8udXNlcklkID0gXCJwbGF5ZXJCMTBcIjtcclxuICAgICAgICAvLyBzZWxmLlVTRVJJTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBzZWxmLnNjaGVkdWxlT25jZShmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuU2V0VXNlcihzZWxmLlVTRVJJTkZPKTtcclxuICAgICAgICAgICAgR2xvYmFsLmluc3RhbmNlLkNoYW5uZWwgPSBzZWxmLmNoYW5uZWw7XHJcbiAgICAgICAgICAgIC8vdGhpcy5Mb2dpbigpO1xyXG4gICAgICAgIH0sMC41KTtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAvLyBjYy5zeXN0ZW1FdmVudC5vbihjYy5TeXN0ZW1FdmVudC5FdmVudFR5cGUuS0VZX0RPV04sdGhpcy5vbktleUJhY2tTcGFjZSx0aGlzKTtcclxuICAgICAgIC8vIGNjLnN5c3RlbUV2ZW50Lm9uKGNjLlN5c3RlbUV2ZW50LkV2ZW50VHlwZS5LRVlfRE9XTix0aGlzLm9uS2V5RG93bix0aGlzKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RhcnQgZ2FtZVxyXG4gICAgICovXHJcbiAgICBTdGFydEdhbWUoKXtcclxuICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGVuZFRpbWU7XHJcbiAgICAgICAgR2xvYmFsLmluc3RhbmNlLk92ZXJGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgR2xvYmFsLmluc3RhbmNlLkFuaUZhbGcgPSBmYWxzZTtcclxuICAgICAgICBHbG9iYWwuaW5zdGFuY2UuTG9yUiA9IDA7XHJcbiAgICAgICAgR2xvYmFsLmluc3RhbmNlLkluaXRTcGVlZCA9IDguNTtcclxuICAgICAgICBHbG9iYWwuaW5zdGFuY2UubW92ZVNwZWVkID0gMTtcclxuICAgICAgICBHbG9iYWwuaW5zdGFuY2UuRkhGYWxsU3BlZWQgPSAyO1xyXG5cdFx0IGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImhmc2pcIixcIjk5XCIpO1xyXG4gICAgICAgIHNlbGYuVXBBbmlzdGF0ZSA9IHNlbGYuVXBBbmkucGxheSgpO1xyXG4gICAgICAgIHNlbGYuRG93bkFuaXN0YXRlID0gc2VsZi5Eb3duQW5pLnBsYXkoKTtcclxuICAgICAgICBzZWxmLnNjaGVkdWxlT25jZShmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBzZWxmLm5vZGUucnVuQWN0aW9uKGNjLnNlcXVlbmNlKGNjLmZhZGVPdXQoMC41KSxjYy5jYWxsRnVuYyhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTWFpblNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgZW5kVGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICBpZihlbmRUaW1lLXN0YXJ0VGltZT4zMzApe1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlnLrmma/ot7PovazmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0pKSk7XHJcbiAgICAgICAgfSwwLjMzKTtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB1c2UgdGhlIGJhY2tTcGFjZSBzdGFydCBnYW1lXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICAgKi9cclxuICAgIG9uS2V5QmFja1NwYWNlKGV2ZW50KXtcclxuICAgICAgICBpZihldmVudC5rZXlDb2RlID09IGNjLktFWS5zcGFjZSl7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAqIOeZu+W9lVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgTG9naW4oKXtcclxuICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgbGV0IGNoYW5uZWxTdHIgPSBHbG9iYWwuaW5zdGFuY2UuQ2hhbm5lbDtcclxuICAgICAgICBsZXQgdU5hbSA9IEdsb2JhbC5pbnN0YW5jZS5HZXRVU2VyKCkudXNlcklkO1xyXG4gICAgICAgLyogSHR0cC5zZW5kUmVxdWVzdChcIi9sb2dpblwiLHtjaGFubmVsOmNoYW5uZWxTdHIsdXNlcklkOnVOYW19LGZ1bmN0aW9uKG1zZyl7XHJcblx0XHRcdCBjb25zb2xlLmxvZyhcIi0tLS0tLS0tLS0tLS0tLS0tLTZcIik7XHJcbiAgICAgICAgICAgIGxldCBjb2RlID0gSlNPTi5wYXJzZShtc2cuY29kZSk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvZGUpO1xyXG4gICAgICAgICAgICBpZihjb2RlIT0wKXtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cdFx0XHQgY29uc29sZS5sb2coXCItLS0tLS0tLS0tLS0tLS0tLS03XCIpO1xyXG4gICAgICAgICAgICBsZXQgbW1zZyA9IEpTT04ucGFyc2UobXNnLm1zZyk7XHJcbiAgICAgICAgICAgIHNlbGYuVVNFUklORk8udXNlcklkID0gbW1zZy51c2VySWQ7XHJcbiAgICAgICAgICAgIHNlbGYuVVNFUklORk8uc2NvcmUgPSBtbXNnLnNjb3JlO1xyXG4gICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuZ2V0TG9jYWxTY29yZSgpLkJlc3RTY29yZSA9IG1tc2cuc2NvcmU7XHJcbiAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5TZXRVc2VyKHNlbGYuVVNFUklORk8pO1xyXG4gICAgICAgIH0pOyovXHJcbiAgICAgICAgbGV0IHV4PXtcclxuICAgICAgICAgICAgdXNlcklkOicnLFxyXG4gICAgICAgIH1cclxuICAgICAgICB1eC51c2VySWQgPSBjaGFubmVsU3RyK0dsb2JhbC5pbnN0YW5jZS5HZXRVU2VyKCkudXNlcklkO1xyXG4gICAgICAgLyogSHR0cC5zZW5kUmVxdWVzdChcIi9yYW5rXCIsdXgsZnVuY3Rpb24obW1zZyl7XHJcblx0XHRcdCBjb25zb2xlLmxvZyhcIi0tLS0tLS0tLS0tLS0tLS0tLThcIik7XHJcbiAgICAgICAgICAgIGxldCBNTSA9IEpTT04ucGFyc2UobW1zZy5tc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhNTSk7XHJcbiAgICAgICAgICAgIGlmKEdsb2JhbC5pbnN0YW5jZS5HZXRSKCk9PW51bGx8fEdsb2JhbC5pbnN0YW5jZS5HZXRSKCkucmFuaz09dW5kZWZpbmVkfHxHbG9iYWwuaW5zdGFuY2UuR2V0UigpLnJhbms8TU0ubXkucmFuayl7XHJcbiAgICAgICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuU2V0UihNTS5teS5yYW5rKTtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5TZXRTKE1NLm90aGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pOyovXHJcbiAgICB9XHJcblxyXG4vL+mcgOimgeabtOWkmua6kOeggeiBlOezu1E6ODUyMTgzNjkxXHJcbi8v5oiW6ICFXHJcbi8v5YWz5rOo5b6u5L+h5YWs5LyX5Y+34oCc5Y+y5LqO5LqM4oCdXHJcbiAgICBDaGVja1JhbmsoKXtcclxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJFbmRTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBJZEdlbmVyYXRlcigpe1xyXG4gICAgICAgIGxldCBzdHI9XCJcIlxyXG4gICAgICAgIGxldCBzdWZmaXg9XCJcIlxyXG4gICAgICAgIGxldCBJZDtcclxuICAgICAgICBsZXQgV29yZDtcclxuICAgICAgICBmb3IobGV0IGk9MDtpPDI7aSsrKXtcclxuICAgICAgICAgICAgbGV0IHJhbk51bSA9IE1hdGguY2VpbChNYXRoLnJhbmRvbSgpKjI1KTtcclxuICAgICAgICAgICAgV29yZCA9U3RyaW5nLmZyb21DaGFyQ29kZSg2NStyYW5OdW0pO1xyXG4gICAgICAgICAgICBzdHIgKz0gV29yZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw3O2krKyl7XHJcbiAgICAgICAgICAgIGxldCBzdWZmaXhOdW0gPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSo5KTtcclxuICAgICAgICAgICAgc3VmZml4ICs9IHN1ZmZpeE51bS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBJZCA9IHN0citzdWZmaXg7XHJcbiAgICAgICAgcmV0dXJuIElkXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBMb2FkRGF0YSgpe1xyXG4gICAgICAgIGxldCBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgaWQgPSBzZWxmLklkR2VuZXJhdGVyKCk7XHJcbiAgICAgICAgc2VsZi5VU0VSSU5GTy51c2VySWQgPSBpZDtcclxuICAgICAgICBzZWxmLlVTRVJJTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJpbmZvXCIsSlNPTi5zdHJpbmdpZnkoc2VsZi5VU0VSSU5GTykpO1xyXG4gICAgICAgIC8vIGNjLnN5cy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImluZm9cIik7XHJcbiAgICAgICAgLy8gbGV0IHVybCA9IGNjLnVybC5yYXcoXCJyZXNvdXJjZXMvSU5GTy9kYXRhLmpzb25cIik7XHJcbiAgICAgICAgLy8gbGV0IGluZm90ZW07XHJcbiAgICAgICAgLy8gY2MubG9hZGVyLmxvYWQodXJsLGZ1bmN0aW9uKGVycixyZXMpe1xyXG4gICAgICAgIC8vICAgICBpZihlcnIpe1xyXG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcImxvYWRcIit1cmwsZXJyK1wiZXJyIHJlc3VsdDpcIitKU09OLnN0cmluZ2lmeShyZXMpKTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgICBpbmZvdGVtID0gcmVzO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiDogZTnvZHnmbvlvZXmlL7lnKjlvIDlp4vmuLjmiI/nmoTml7blgJnvvIzmnJ/pl7Tojrflj5bkuIDmrKHmjpLooYzmlbDmja5cclxuICog6L+Z6YeM5pyJ5LiA5Liq6YC76L6R5LiK55qE6Zeu6aKY77ya5aaC5p6c56ys5LiA5qyh546p55qE5YiG5pWw5pivMO+8jOWwsVxyXG4gKi9cclxuIl19