London/temp/quick-scripts/dst/assets/Script/Ball.js
2024-08-16 14:16:40 +08:00

180 lines
20 KiB
JavaScript

(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/Script/Ball.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, 'bcbd5UwI81JAqDJwTXtPRoq', 'Ball');
// Script/Ball.ts
"use strict";
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var Ball = /** @class */ (function (_super) {
__extends(Ball, _super);
function Ball() {
return _super !== null && _super.apply(this, arguments) || this;
}
// LIFE-CYCLE CALLBACKS:
Ball.prototype.onLoad = function () {
// this.init();
this._touch = false;
this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this);
this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this);
this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this);
};
Ball.prototype.init = function (type, id) {
this.GameManager = this.node.parent.getComponent("GameManager");
this.tube_Array = this.GameManager.tube_Array;
this._posX = this.node.x;
this._posY = this.node.y;
this.size = cc.winSize;
this._touch = type;
this._id = id;
};
Ball.prototype.start = function () {
};
//开始点击,提高层级
Ball.prototype.touchStart = function (event) {
if (this._touch) {
return true;
}
else {
return false;
}
};
//移动小球,跟随手指移动
Ball.prototype.touchMove = function (event) {
if (this._touch) {
var touchTemp = cc.v2(event.touch._point.x - this.size.width / 2, event.touch._point.y - this.size.height / 2);
this.node.x = touchTemp.x;
this.node.y = touchTemp.y;
}
};
//松手,还原层级,判断是否落到玻璃管内
Ball.prototype.touchEnd = function (event) {
//先判断是否是回收
if (this._touch) {
var jg = this.getPos(cc.v2(this.node.x, this.node.y));
if (jg == 0) {
this.node.x = this._posX;
this.node.y = this._posY;
}
else {
this.runEnter(jg);
}
this._posX = this.node.x;
this._posY = this.node.y;
}
// this.node.zIndex = 1;
};
//执行进管子动画
Ball.prototype.runEnter = function (jg) {
var _this = this;
if (jg == 1 && this.tube_Array[0].length < 3) {
var height = 50 + this.tube_Array[0].length * 100;
cc.fx.Notifications.emit("moveTube", { id: this._id, tube: 0, pos: cc.v2(this._posX, this._posY) });
cc.tween(this.node)
.to(0.2, { x: -210 })
.to(0.25, { y: height })
.call(function () {
_this._posX = _this.node.x;
_this._posY = _this.node.y;
})
.start();
}
else if (jg == 3 && this.tube_Array[1].length < 2) {
var height = 50 + this.tube_Array[1].length * 100;
cc.fx.Notifications.emit("moveTube", { id: this._id, tube: 1, pos: cc.v2(this._posX, this._posY) });
cc.tween(this.node)
.to(0.2, { x: 0 })
.to(0.25, { y: height })
.call(function () {
_this._posX = _this.node.x;
_this._posY = _this.node.y;
})
.start();
}
else if (jg == 5 && this.tube_Array[2].length < 1) {
var height = 50 + this.tube_Array[2].length * 100;
cc.fx.Notifications.emit("moveTube", { id: this._id, tube: 2, pos: cc.v2(this._posX, this._posY) });
cc.tween(this.node)
.to(0.2, { x: 210 })
.to(0.25, { y: height })
.call(function () {
_this._posX = _this.node.x;
_this._posY = _this.node.y;
})
.start();
}
};
Ball.prototype.getPos = function (point) {
var jg = 0;
var rect = this.GameManager.tube1.getBoundingBox();
if (rect.contains(point)) {
jg = 1;
return jg;
}
rect = this.GameManager.tube3.getBoundingBox();
if (rect.contains(point)) {
jg = 3;
return jg;
}
rect = this.GameManager.tube5.getBoundingBox();
if (rect.contains(point)) {
jg = 5;
return jg;
}
return jg;
};
Ball = __decorate([
ccclass
], Ball);
return Ball;
}(cc.Component));
exports.default = Ball;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQWtDLHdCQUFZO0lBQTlDOztJQXdJQSxDQUFDO0lBL0hHLHdCQUF3QjtJQUV4QixxQkFBTSxHQUFOO1FBQ0ksZUFBZTtRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxtQkFBSSxHQUFKLFVBQUssSUFBSSxFQUFDLEVBQUU7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELG9CQUFLLEdBQUw7SUFFQSxDQUFDO0lBQ0QsV0FBVztJQUNYLHlCQUFVLEdBQVYsVUFBWSxLQUFLO1FBQ2IsSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNHO1lBQ0EsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFHTCxDQUFDO0lBQ0QsYUFBYTtJQUNiLHdCQUFTLEdBQVQsVUFBVyxLQUFLO1FBQ1osSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQ1gsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBQ0Qsb0JBQW9CO0lBQ3BCLHVCQUFRLEdBQVIsVUFBVSxLQUFLO1FBQ1gsVUFBVTtRQUNWLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQztZQUNYLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBRyxFQUFFLElBQUksQ0FBQyxFQUFDO2dCQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDNUI7aUJBQ0c7Z0JBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyQjtZQUdELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUVELHdCQUF3QjtJQUM1QixDQUFDO0lBQ0QsU0FBUztJQUNULHVCQUFRLEdBQVIsVUFBUyxFQUFFO1FBQVgsaUJBdUNDO1FBdENHLElBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDeEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxHQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFDLEdBQUcsQ0FBQztZQUM5QyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLEVBQUMsRUFBRSxFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDM0YsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNsQixFQUFFLENBQUMsR0FBRyxFQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFDLENBQUM7aUJBQ2hCLEVBQUUsQ0FBQyxJQUFJLEVBQUMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUM7aUJBQ25CLElBQUksQ0FBQztnQkFDRixLQUFJLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixLQUFJLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQztpQkFDRCxLQUFLLEVBQUUsQ0FBQztTQUNaO2FBQ0ksSUFBRyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUM3QyxJQUFJLE1BQU0sR0FBRyxFQUFFLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUMsR0FBRyxDQUFDO1lBQzlDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsRUFBQyxFQUFFLEVBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUMzRixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7aUJBQ2IsRUFBRSxDQUFDLElBQUksRUFBQyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztpQkFDbkIsSUFBSSxDQUFDO2dCQUNGLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDO2lCQUNELEtBQUssRUFBRSxDQUFDO1NBQ1o7YUFDSSxJQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQzdDLElBQUksTUFBTSxHQUFHLEVBQUUsR0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQyxHQUFHLENBQUM7WUFDOUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxFQUFDLEVBQUUsRUFBQyxJQUFJLENBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQzNGLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDbEIsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQztpQkFDZixFQUFFLENBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDO2lCQUNuQixJQUFJLENBQUM7Z0JBQ0YsS0FBSSxDQUFDLEtBQUssR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDekIsS0FBSSxDQUFDLEtBQUssR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7aUJBQ0QsS0FBSyxFQUFFLENBQUM7U0FDWjtJQUdMLENBQUM7SUFFRCxxQkFBTSxHQUFOLFVBQU8sS0FBSztRQUNSLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDUCxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBcElnQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBd0l4QjtJQUFELFdBQUM7Q0F4SUQsQUF3SUMsQ0F4SWlDLEVBQUUsQ0FBQyxTQUFTLEdBd0k3QztrQkF4SW9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbGwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc2l6ZTogY2MuU2l6ZTtcclxuICAgIF9wb3NYOiBudW1iZXI7XHJcbiAgICBfcG9zWTogbnVtYmVyO1xyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG4gICAgX2lkOiBudW1iZXI7XHJcbiAgICBHYW1lTWFuYWdlcjogYW55O1xyXG4gICAgdHViZV9BcnJheTogbnVtYmVyW11bXTsvL+euoeWtkOaVsOe7hFxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5pbml0KCk7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfU1RBUlQsIHRoaXMudG91Y2hTdGFydCwgdGhpcyk7XHJcblx0XHR0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpO1xyXG5cdFx0dGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7XHJcblx0XHR0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfQ0FOQ0VMLCB0aGlzLnRvdWNoRW5kLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHR5cGUsaWQpe1xyXG4gICAgICAgIHRoaXMuR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIHRoaXMudHViZV9BcnJheSA9IHRoaXMuR2FtZU1hbmFnZXIudHViZV9BcnJheTtcclxuICAgICAgICB0aGlzLl9wb3NYID0gdGhpcy5ub2RlLng7XHJcbiAgICAgICAgdGhpcy5fcG9zWSA9IHRoaXMubm9kZS55O1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9ICBjYy53aW5TaXplOyAgXHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuX2lkID0gaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8v5byA5aeL54K55Ye777yM5o+Q6auY5bGC57qnXHJcbiAgICB0b3VjaFN0YXJ0IChldmVudCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3RvdWNoKXtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgXHJcbiAgICB9XHJcbiAgICAvL+enu+WKqOWwj+eQg++8jOi3n+maj+aJi+aMh+enu+WKqFxyXG4gICAgdG91Y2hNb3ZlIChldmVudCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3RvdWNoKXtcclxuICAgICAgICAgICAgdmFyIHRvdWNoVGVtcCA9IGNjLnYyKGV2ZW50LnRvdWNoLl9wb2ludC54LXRoaXMuc2l6ZS53aWR0aC8yLGV2ZW50LnRvdWNoLl9wb2ludC55LXRoaXMuc2l6ZS5oZWlnaHQvMik7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdG91Y2hUZW1wLng7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdG91Y2hUZW1wLnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/mnb7miYvvvIzov5jljp/lsYLnuqfvvIzliKTmlq3mmK/lkKbokL3liLDnjrvnkoPnrqHlhoVcclxuICAgIHRvdWNoRW5kIChldmVudCkge1xyXG4gICAgICAgIC8v5YWI5Yik5pat5piv5ZCm5piv5Zue5pS2XHJcbiAgICAgICAgaWYodGhpcy5fdG91Y2gpe1xyXG4gICAgICAgICAgICB2YXIgamcgPSB0aGlzLmdldFBvcyhjYy52Mih0aGlzLm5vZGUueCx0aGlzLm5vZGUueSkpO1xyXG4gICAgICAgICAgICBpZihqZyA9PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS54ID0gdGhpcy5fcG9zWDtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS55ID0gdGhpcy5fcG9zWTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5FbnRlcihqZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5fcG9zWCA9IHRoaXMubm9kZS54O1xyXG4gICAgICAgICAgICB0aGlzLl9wb3NZID0gdGhpcy5ub2RlLnk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuekluZGV4ID0gMTtcclxuICAgIH1cclxuICAgIC8v5omn6KGM6L+b566h5a2Q5Yqo55S7XHJcbiAgICBydW5FbnRlcihqZyl7XHJcbiAgICAgICAgaWYoamcgPT0gMSAmJiB0aGlzLnR1YmVfQXJyYXlbMF0ubGVuZ3RoIDwgMyl7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSA1MCt0aGlzLnR1YmVfQXJyYXlbMF0ubGVuZ3RoKjEwMDtcclxuICAgICAgICAgICAgY2MuZnguTm90aWZpY2F0aW9ucy5lbWl0KFwibW92ZVR1YmVcIix7aWQ6dGhpcy5faWQsdHViZTowLHBvczpjYy52Mih0aGlzLl9wb3NYLHRoaXMuX3Bvc1kpfSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuMix7eDotMjEwfSlcclxuICAgICAgICAgICAgLnRvKDAuMjUse3k6aGVpZ2h0fSlcclxuICAgICAgICAgICAgLmNhbGwoKCk9PntcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Bvc1ggPSB0aGlzLm5vZGUueDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Bvc1kgPSB0aGlzLm5vZGUueTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoamcgPT0gMyAmJiB0aGlzLnR1YmVfQXJyYXlbMV0ubGVuZ3RoIDwgMil7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSA1MCt0aGlzLnR1YmVfQXJyYXlbMV0ubGVuZ3RoKjEwMDtcclxuICAgICAgICAgICAgY2MuZnguTm90aWZpY2F0aW9ucy5lbWl0KFwibW92ZVR1YmVcIix7aWQ6dGhpcy5faWQsdHViZToxLHBvczpjYy52Mih0aGlzLl9wb3NYLHRoaXMuX3Bvc1kpfSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuMix7eDowfSlcclxuICAgICAgICAgICAgLnRvKDAuMjUse3k6aGVpZ2h0fSlcclxuICAgICAgICAgICAgLmNhbGwoKCk9PntcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Bvc1ggPSB0aGlzLm5vZGUueDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Bvc1kgPSB0aGlzLm5vZGUueTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoamcgPT0gNSAmJiB0aGlzLnR1YmVfQXJyYXlbMl0ubGVuZ3RoIDwgMSl7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSA1MCt0aGlzLnR1YmVfQXJyYXlbMl0ubGVuZ3RoKjEwMDtcclxuICAgICAgICAgICAgY2MuZnguTm90aWZpY2F0aW9ucy5lbWl0KFwibW92ZVR1YmVcIix7aWQ6dGhpcy5faWQsdHViZToyLHBvczpjYy52Mih0aGlzLl9wb3NYLHRoaXMuX3Bvc1kpfSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuMix7eDoyMTB9KVxyXG4gICAgICAgICAgICAudG8oMC4yNSx7eTpoZWlnaHR9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9zWCA9IHRoaXMubm9kZS54O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9zWSA9IHRoaXMubm9kZS55O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UG9zKHBvaW50KXtcclxuICAgICAgICB2YXIgamcgPSAwO1xyXG4gICAgICAgIHZhciByZWN0ID0gdGhpcy5HYW1lTWFuYWdlci50dWJlMS5nZXRCb3VuZGluZ0JveCgpO1xyXG4gICAgICAgIGlmIChyZWN0LmNvbnRhaW5zKHBvaW50KSkge1xyXG4gICAgICAgICAgICBqZyA9IDE7XHJcbiAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVjdCA9IHRoaXMuR2FtZU1hbmFnZXIudHViZTMuZ2V0Qm91bmRpbmdCb3goKTtcclxuICAgICAgICBpZiAocmVjdC5jb250YWlucyhwb2ludCkpIHtcclxuICAgICAgICAgICAgamcgPSAzO1xyXG4gICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlY3QgPSB0aGlzLkdhbWVNYW5hZ2VyLnR1YmU1LmdldEJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgaWYgKHJlY3QuY29udGFpbnMocG9pbnQpKSB7XHJcbiAgICAgICAgICAgIGpnID0gNTtcclxuICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19