(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/scripts/prefabs/ObjBaseView.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, '6a05czkMzFF2JvUisi8c1Xp', 'ObjBaseView'); // scripts/prefabs/ObjBaseView.ts "use strict"; 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 Global_1 = require("../Global"); var TableDefine_1 = require("../kernel/table/TableDefine"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var ObjBaseView = /** @class */ (function (_super) { __extends(ObjBaseView, _super); function ObjBaseView() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._owner = null; /**主体图像 */ _this._img = null; _this._imgOffset = cc.v2(); _this._needMove = false; _this._destroyed = false; return _this; //#endregion //#region private method //#endregion } Object.defineProperty(ObjBaseView.prototype, "owner", { get: function () { return this._owner; }, enumerable: false, configurable: true }); //#region interface ObjBaseView.prototype.onImgChanged = function () { this.updateImg(); }; ObjBaseView.prototype.onDroped = function () { this.setColliderEnable(false); }; ObjBaseView.prototype.onDead = function () { this._img.destroy(); this.node.destroy(); }; ObjBaseView.prototype.onHit = function () { }; //#endregion //#region life cycle ObjBaseView.prototype.start = function () { this.schedule(this.onLazyUpdate, 1 / 20); }; ObjBaseView.prototype.init = function (owner, mapView) { this._owner = owner; this._owner.bindView(this); this._img = this.node.getChildByName('img'); this._imgOffset.x = this._img.x; this._imgOffset.y = this._img.y; //分层显示 this._img.removeFromParent(); mapView.colliderLayer.addChild(this.node); this.node.active = true; mapView.blockImgLayer.addChild(this._img); // this.updateImg(); this.onImgChanged(); this.onPositionChange(this._owner.pixelPos.x, this._owner.pixelPos.y); }; ObjBaseView.prototype.onPreview = function () { //预览状态下,在init后被调用 this._visible = true; this._img.active = true; this.setColliderEnable(false); this.onVisibleChange(); }; ObjBaseView.prototype.update = function (dt) { if (this._destroyed) { return; } // let needMove = (this.node.position.y != this._owner.pixelPos.y); this.onUpdateMoveState(); if (this._needMove) { var speed = this._owner.droped ? 600 : Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, 1).Value; var step = -speed * dt; var dis = this._owner.pixelPos.y - this.node.y; if (Math.abs(step) >= Math.abs(dis)) { step = dis; } this.onPositionChange(this._owner.pixelPos.x, this.node.position.y + step); } }; /**更改是否需要移动的接口,更改 _needMove变量 */ ObjBaseView.prototype.onUpdateMoveState = function () { this._needMove = (this.node.position.y != this._owner.pixelPos.y); }; // onEndContact(contact: cc.PhysicsContact, selfCollider: cc.Collider, otherCollider: cc.Collider) { // if (otherCollider.node.name == "ball") { // contact.disabled = true; // this._owner.onCollisonToBall(otherCollider); // } // } ObjBaseView.prototype.onBeginContact = function (contact, selfCollider, otherCollider) { if (otherCollider.node.name == "ball") { this._owner.onCollisonToBall(otherCollider); } }; ObjBaseView.prototype.onDestroy = function () { this._destroyed = true; this._owner = null; this._img = null; }; //#endregion //#region public method ObjBaseView.prototype.setColliderEnable = function (value) { this.node.getComponent(cc.PhysicsCollider).enabled = value; }; //#endregion //#region children override ObjBaseView.prototype.onLazyUpdate = function () { }; ObjBaseView.prototype.onImageLoaded = function () { }; ObjBaseView.prototype.updateImg = function () { var _this = this; if (this._owner.imgName != "") { // this._img.active = true; cc.resources.load("battle/" + this._owner.imgName, cc.SpriteFrame, function (err, spf) { // const frame = (spf as cc.SpriteAtlas).getSpriteFrame(this._owner.iconName); if (!err) { if (!_this._destroyed) { _this._img.getComponent(cc.Sprite).spriteFrame = spf; _this.onImageLoaded(); } } else { console.error(err.message); } }); } else { this._img.active = false; } }; ObjBaseView.prototype.onVisibleChange = function () { }; ObjBaseView.prototype.onPositionChange = function (x, y) { this._img.setPosition(x + this._imgOffset.x, y + this._imgOffset.y); this.node.setPosition(x, y); var visible = (this._owner.gridPos.y > this._owner.map.viewSplitRow); if (this._visible != visible) { this._visible = visible; this.setColliderEnable(visible); this._img.active = visible; this.onVisibleChange(); } }; ObjBaseView = __decorate([ ccclass ], ObjBaseView); return ObjBaseView; }(cc.Component)); exports.default = ObjBaseView; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcT2JqQmFzZVZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBQWlDO0FBSWpDLDJEQUF1RTtBQUVqRSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUF5QywrQkFBWTtJQUFyRDtRQUFBLHFFQTRMQztRQXpMYSxZQUFNLEdBQVksSUFBSSxDQUFDO1FBRWpDLFVBQVU7UUFDQSxVQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLGdCQUFVLEdBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRzlCLGVBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVUsR0FBWSxLQUFLLENBQUM7O1FBNEt0QyxZQUFZO1FBRVosd0JBQXdCO1FBRXhCLFlBQVk7SUFDaEIsQ0FBQztJQXhMRyxzQkFBSSw4QkFBSzthQUFULGNBQXVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7OztPQUFBO0lBUzVDLG1CQUFtQjtJQUVuQixrQ0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCw4QkFBUSxHQUFSO1FBQ0ksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELFlBQVk7SUFFWixvQkFBb0I7SUFFViwyQkFBSyxHQUFmO1FBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxF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QVMsR0E0THBEO2tCQTVMb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRNZ3IgfSBmcm9tIFwiLi4vR2xvYmFsXCI7XG5pbXBvcnQgeyBJT2JqVmlldyB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL2ludGVyL0lPYmpWaWV3XCI7XG5pbXBvcnQgeyBNYXBWaWV3IH0gZnJvbSBcIi4uL2tlcm5lbC9iYXR0bGUvbWFwL01hcFZpZXdcIjtcbmltcG9ydCB7IE9iakRhdGEgfSBmcm9tIFwiLi4va2VybmVsL2JhdHRsZS9tYXAvT2JqRGF0YVwiO1xuaW1wb3J0IHsgVGFibGVOYW1lLCBHYW1lUGxheVRhYmxlIH0gZnJvbSBcIi4uL2tlcm5lbC90YWJsZS9UYWJsZURlZmluZVwiO1xuXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xuXG5AY2NjbGFzc1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT2JqQmFzZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQgaW1wbGVtZW50cyBJT2JqVmlldyB7XG5cblxuICAgIHByb3RlY3RlZCBfb3duZXI6IE9iakRhdGEgPSBudWxsO1xuICAgIGdldCBvd25lcigpOiBPYmpEYXRhIHsgcmV0dXJuIHRoaXMuX293bmVyOyB9XG4gICAgLyoq5Li75L2T5Zu+5YOPICovXG4gICAgcHJvdGVjdGVkIF9pbWc6IGNjLk5vZGUgPSBudWxsO1xuICAgIHByb3RlY3RlZCBfaW1nT2Zmc2V0OiBjYy5WZWMyID0gY2MudjIoKTtcbiAgICBwcm90ZWN0ZWQgX3Zpc2libGU6IGJvb2xlYW47XG5cbiAgICBwcm90ZWN0ZWQgX25lZWRNb3ZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9kZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vI3JlZ2lvbiBpbnRlcmZhY2VcblxuICAgIG9uSW1nQ2hhbmdlZCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbWcoKTtcbiAgICB9XG5cbiAgICBvbkRyb3BlZCgpIHtcbiAgICAgICAgdGhpcy5zZXRDb2xsaWRlckVuYWJsZShmYWxzZSk7XG4gICAgfVxuXG4gICAgb25EZWFkKCkge1xuICAgICAgICB0aGlzLl9pbWcuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIG9uSGl0KCkge1xuXG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gbGlmZSBjeWNsZVxuXG4gICAgcHJvdGVjdGVkIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMub25MYXp5VXBkYXRlLCAxIC8gMjApO1xuICAgIH1cblxuICAgIGluaXQob3duZXI6IE9iakRhdGEsIG1hcFZpZXc6IE1hcFZpZXcpIHtcblxuICAgICAgICB0aGlzLl9vd25lciA9IG93bmVyO1xuICAgICAgICB0aGlzLl9vd25lci5iaW5kVmlldyh0aGlzKTtcblxuICAgICAgICB0aGlzLl9pbWcgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ltZycpO1xuICAgICAgICB0aGlzLl9pbWdPZmZzZXQueCA9IHRoaXMuX2ltZy54O1xuICAgICAgICB0aGlzLl9pbWdPZmZzZXQueSA9IHRoaXMuX2ltZy55O1xuICAgICAgICAvL+WIhuWxguaYvuekulxuICAgICAgICB0aGlzLl9pbWcucmVtb3ZlRnJvbVBhcmVudCgpO1xuICAgICAgICBtYXBWaWV3LmNvbGxpZGVyTGF5ZXIuYWRkQ2hpbGQodGhpcy5ub2RlKTtcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIG1hcFZpZXcuYmxvY2tJbWdMYXllci5hZGRDaGlsZCh0aGlzLl9pbWcpO1xuXG4gICAgICAgIC8vIHRoaXMudXBkYXRlSW1nKCk7XG4gICAgICAgIHRoaXMub25JbWdDaGFuZ2VkKCk7XG4gICAgICAgIHRoaXMub25Qb3NpdGlvbkNoYW5nZSh0aGlzLl9vd25lci5waXhlbFBvcy54LCB0aGlzLl9vd25lci5waXhlbFBvcy55KTtcblxuICAgIH1cblxuICAgIG9uUHJldmlldygpIHtcbiAgICAgICAgLy/pooTop4jnirbmgIHkuIss5ZyoaW5pdOWQjuiiq+iwg+eUqFxuICAgICAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5faW1nLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Q29sbGlkZXJFbmFibGUoZmFsc2UpO1xuICAgICAgICB0aGlzLm9uVmlzaWJsZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxldCBuZWVkTW92ZSA9ICh0aGlzLm5vZGUucG9zaXRpb24ueSAhPSB0aGlzLl9vd25lci5waXhlbFBvcy55KTtcbiAgICAgICAgdGhpcy5vblVwZGF0ZU1vdmVTdGF0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9uZWVkTW92ZSkge1xuICAgICAgICAgICAgbGV0IHNwZWVkID0gdGhpcy5fb3duZXIuZHJvcGVkID8gNjAwIDogKHRNZ3IuZ2V0Q29uZmlnKFRhYmxlTmFtZS5HQU1FX1BMQVksIDEpIGFzIEdhbWVQbGF5VGFibGUpLlZhbHVlO1xuXG4gICAgICAgICAgICBsZXQgc3RlcCA9IC1zcGVlZCAqIGR0O1xuICAgICAgICAgICAgbGV0IGRpcyA9IHRoaXMuX293bmVyLnBpeGVsUG9zLnkgLSB0aGlzLm5vZGUueTtcblxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHN0ZXApID49IE1hdGguYWJzKGRpcykpIHtcbiAgICAgICAgICAgICAgICBzdGVwID0gZGlzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uUG9zaXRpb25DaGFuZ2UodGhpcy5fb3duZXIucGl4ZWxQb3MueCwgdGhpcy5ub2RlLnBvc2l0aW9uLnkgKyBzdGVwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKuabtOaUueaYr+WQpumcgOimgeenu+WKqOeahOaOpeWPo++8jOabtOaUuSBfbmVlZE1vdmXlj5jph48gKi9cbiAgICBwcm90ZWN0ZWQgb25VcGRhdGVNb3ZlU3RhdGUoKSB7XG4gICAgICAgIHRoaXMuX25lZWRNb3ZlID0gKHRoaXMubm9kZS5wb3NpdGlvbi55ICE9IHRoaXMuX293bmVyLnBpeGVsUG9zLnkpO1xuICAgIH1cblxuICAgIC8vIG9uRW5kQ29udGFjdChjb250YWN0OiBjYy5QaHlzaWNzQ29udGFjdCwgc2VsZkNvbGxpZGVyOiBjYy5Db2xsaWRlciwgb3RoZXJDb2xsaWRlcjogY2MuQ29sbGlkZXIpIHtcbiAgICAvLyAgICAgaWYgKG90aGVyQ29sbGlkZXIubm9kZS5uYW1lID09IFwiYmFsbFwiKSB7XG4gICAgLy8gICAgICAgICBjb250YWN0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAvLyAgICAgICAgIHRoaXMuX293bmVyLm9uQ29sbGlzb25Ub0JhbGwob3RoZXJDb2xsaWRlcik7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICBvbkJlZ2luQ29udGFjdChjb250YWN0OiBjYy5QaHlzaWNzQ29udGFjdCwgc2VsZkNvbGxpZGVyOiBjYy5Db2xsaWRlciwgb3RoZXJDb2xsaWRlcjogY2MuQ29sbGlkZXIpIHtcbiAgICAgICAgaWYgKG90aGVyQ29sbGlkZXIubm9kZS5uYW1lID09IFwiYmFsbFwiKSB7XG4gICAgICAgICAgICB0aGlzLl9vd25lci5vbkNvbGxpc29uVG9CYWxsKG90aGVyQ29sbGlkZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fb3duZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9pbWcgPSBudWxsO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIHB1YmxpYyBtZXRob2RcblxuICAgIHNldENvbGxpZGVyRW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuUGh5c2ljc0NvbGxpZGVyKS5lbmFibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gY2hpbGRyZW4gb3ZlcnJpZGUgXG5cbiAgICBwcm90ZWN0ZWQgb25MYXp5VXBkYXRlKCkge1xuXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW1hZ2VMb2FkZWQoKSB7XG5cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlSW1nKCkge1xuXG4gICAgICAgIGlmICh0aGlzLl9vd25lci5pbWdOYW1lICE9IFwiXCIpIHtcblxuICAgICAgICAgICAgLy8gdGhpcy5faW1nLmFjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIGNjLnJlc291cmNlcy5sb2FkKFwiYmF0dGxlL1wiICsgdGhpcy5fb3duZXIuaW1nTmFtZSwgY2MuU3ByaXRlRnJhbWUsIChlcnIsIHNwZikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGZyYW1lID0gKHNwZiBhcyBjYy5TcHJpdGVBdGxhcykuZ2V0U3ByaXRlRnJhbWUodGhpcy5fb3duZXIuaWNvbk5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICghZXJyKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ltZy5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwZiBhcyBjYy5TcHJpdGVGcmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25JbWFnZUxvYWRlZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ltZy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVmlzaWJsZUNoYW5nZSgpIHtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qb3NpdGlvbkNoYW5nZSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuXG4gICAgICAgIHRoaXMuX2ltZy5zZXRQb3NpdGlvbih4ICsgdGhpcy5faW1nT2Zmc2V0LngsIHkgKyB0aGlzLl9pbWdPZmZzZXQueSk7XG4gICAgICAgIHRoaXMubm9kZS5zZXRQb3NpdGlvbih4LCB5KTtcblxuICAgICAgICBsZXQgdmlzaWJsZSA9ICh0aGlzLl9vd25lci5ncmlkUG9zLnkgPiB0aGlzLl9vd25lci5tYXAudmlld1NwbGl0Um93KTtcbiAgICAgICAgaWYgKHRoaXMuX3Zpc2libGUgIT0gdmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0Q29sbGlkZXJFbmFibGUodmlzaWJsZSk7XG4gICAgICAgICAgICB0aGlzLl9pbWcuYWN0aXZlID0gdmlzaWJsZTtcblxuICAgICAgICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIHByaXZhdGUgbWV0aG9kXG5cbiAgICAvLyNlbmRyZWdpb25cbn0iXX0=