(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.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, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); // Script/module/Music/AudioManager.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 _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var AudioManager = /** @class */ (function (_super) { __extends(AudioManager, _super); function AudioManager() { var _this = _super !== null && _super.apply(this, arguments) || this; //背景音乐 _this.audioGameBgm0 = null; _this.baishao_audio = null; _this.cha_audio = null; _this.chixiaodou_audio = null; _this.danggui_audio = null; _this.danshen_audio = null; _this.dazao_audio = null; _this.gancao_audio = null; _this.ganjiang_audio = null; _this.gouqi_audio = null; _this.jingjie_audio = null; _this.jinju_audio = null; _this.lizhi_audio = null; _this.lizi_audio = null; _this.longyan_audio = null; _this.moli_audio = null; _this.muchai_audio = null; _this.mudan_audio = null; _this.mulan_audio = null; _this.pugongying_audio = null; _this.putao_audio = null; _this.renshen_audio = null; _this.taozi_audio = null; _this.zhuye_audio = null; return _this; } AudioManager_1 = AudioManager; AudioManager.prototype.onLoad = function () { if (AudioManager_1._instance == null) { AudioManager_1._instance = this; cc.game.addPersistRootNode(this.node); } else { return; } this.reward = false; this.finish = false; this.rewardCount = 0; this.ctor(); this.preload(); }; AudioManager.prototype.ctor = function () { this.mAudioMap = {}; /** * 默认音量大小 * @type {number} */ this.bgMusicVolume = 0.1; this.effectMusicVolume = 1; this.mMusicSwitch = 1; this.mEffectSwitch = 1; }; AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { if (isBgMusic && !this.mMusicSwitch) return; if (!isBgMusic && !this.mEffectSwitch) return; var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; if (cc.sys.isBrowser) { if (audioSource == this.brickSound) { volume = 0.1; } volume = 1; var context = cc.audioEngine.play(audioSource, loop, volume); if (callback) { cc.audioEngine.setFinishCallback(context, function () { callback.call(this); }.bind(this)); } // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); this.mAudioMap[audioSource] = context; return audioSource; } else { return audioSource; } }; AudioManager.prototype.save = function () { // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); }; // static get Instance() // { // if (this._instance == null) // { // this._instance = new AudioManager(); // } // return this._instance; // } AudioManager.prototype.preload = function () { if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; } var musics = [ this.audioGameBgm0, ]; musics.forEach(function (path) { }); }; AudioManager.prototype.getAudioMusicSwitch = function () { return this.mMusicSwitch; }; AudioManager.prototype.getAudioEffectSwitch = function () { return this.mEffectSwitch; }; AudioManager.prototype.trunAudioSound = function (on) { this.switchMusic(on); this.switchEffect(on); }; AudioManager.prototype.switchMusic = function (on) { if (this.mMusicSwitch != (on ? 1 : 0)) { this.mMusicSwitch = 1 - this.mMusicSwitch; // this.save(); } if (on) { this.playMusicGame(); } else { this.stopMusic(); } }; AudioManager.prototype.switchEffect = function (on) { if (this.mEffectSwitch != (on ? 1 : 0)) { this.mEffectSwitch = 1 - this.mEffectSwitch; // this.save(); } }; AudioManager.prototype.onHide = function () { cc.audioEngine.pauseAll(); }; AudioManager.prototype.onShow = function () { cc.audioEngine.resumeAll(); }; //播放音效 AudioManager.prototype.playEffect = function (name, callback) { if (this[name]) return this.play(this[name], false, callback, this.mEffectSwitch); }; AudioManager.prototype.playMusic = function (key, callback, loop) { loop = typeof loop == 'undefined' || loop ? true : false; this.stopMusic(); this.mMusicKey = this.play(key, loop, callback, true); }; /** * 游戏背景音乐 */ AudioManager.prototype.playMusicGame = function () { this.playMusic(this.audioGameBgm0, {}, true); }; /** * 停止背景音乐播放 */ AudioManager.prototype.stopMusic = function () { // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); var context = this.mAudioMap[this.mMusicKey]; if (typeof (context) != 'undefined') { if (cc.sys.isBrowser) { cc.audioEngine.stop(context); } else { context.stop(); } cc.audioEngine.stop(context); } }; /* * 游戏开始音效 * */ AudioManager.prototype.playGameStart = function () { }; /* * 失败的游戏结束 */ AudioManager.prototype.playGameOver = function () { }; /* * 成功的游戏结束 */ AudioManager.prototype.playGameResultFailed = function () { }; /* * 成功的游戏结束 */ AudioManager.prototype.playGameResultSuccess = function () { }; /** * 报警的音效 */ /** * 按钮 */ AudioManager.prototype.playAudioButton = function () { // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); }; var AudioManager_1; __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "audioGameBgm0", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "baishao_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "cha_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "chixiaodou_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "danggui_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "danshen_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "dazao_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "gancao_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "ganjiang_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "gouqi_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "jingjie_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "jinju_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "lizhi_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "lizi_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "longyan_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "moli_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "muchai_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "mudan_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "mulan_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "pugongying_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "putao_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "renshen_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "taozi_audio", void 0); __decorate([ property(cc.AudioClip) ], AudioManager.prototype, "zhuye_audio", void 0); AudioManager = AudioManager_1 = __decorate([ ccclass ], AudioManager); return AudioManager; }(cc.Component)); exports.default = AudioManager; ; // export { AudioManager }; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUFvUUM7UUFsUUcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxtQkFBYSxHQUFpQixJQUFJLENBQUM7UUFFbkMsZUFBUyxHQUFpQixJQUFJLENBQUM7UUFFL0Isc0JBQWdCLEdBQWlCLElBQUksQ0FBQztRQUV0QyxtQkFBYSxHQUFpQixJQUFJLENBQUM7UUFFbkMsbUJBQWEsR0FBaUIsSUFBSSxDQUFDO1FBRW5DLGlCQUFXLEdBQWlCLElBQUksQ0FBQztRQUVqQyxrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsb0JBQWMsR0FBaUIsSUFBSSxDQUFDO1FBRXBDLGlCQUFXLEdBQWlCLElBQUksQ0FBQztRQUVqQyxtQkFBYSxHQUFpQixJQUFJLENBQUM7UUFFbkMsaUJBQVcsR0FBaUIsSUFBSSxDQUFDO1FBRWpDLGlCQUFXLEdBQWlCLElBQUksQ0FBQztRQUVqQyxnQkFBVSxHQUFpQixJQUFJLENBQUM7UUFFaEMsbUJBQWEsR0FBaUIsSUFBSSxDQUFDO1FBRW5DLGdCQUFVLEdBQWlCLElBQUksQ0FBQztRQUVoQyxrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsaUJBQVcsR0FBaUIsSUFBSSxDQUFDO1FBRWpDLGlCQUFXLEdBQWlCLElBQUksQ0FBQztRQUVqQyxzQkFBZ0IsR0FBaUIsSUFBSSxDQUFDO1FBRXRDLGlCQUFXLEdBQWlCLElBQUksQ0FBQztRQUVqQyxtQkFBYSxHQUFpQixJQUFJLENBQUM7UUFFbkMsaUJBQVcsR0FBaUIsSUFBSSxDQUFDO1FBRWpDLGlC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REMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0RBQ1M7SUFFaEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO3FEQUNVO0lBRWpDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7cURBQ1U7SUFFakM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzswREFDZTtJQUV0QztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO3FEQUNVO0lBRWpDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7dURBQ1k7SUFFbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztxREFDVTtJQUVqQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO3FEQUNVO0lBbkRoQixZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBb1FoQztJQUFELG1CQUFDO0NBcFFELEFBb1FDLENBcFF5QyxFQUFFLENBQUMsU0FBUyxHQW9RckQ7a0JBcFFvQixZQUFZO0FBb1FoQyxDQUFDO0FBRUYsMkJBQTJCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xuQGNjY2xhc3NcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZGlvTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xuICAgIC8v6IOM5pmv6Z+z5LmQXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0dhbWVCZ20wOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBiYWlzaGFvX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgY2hhX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgY2hpeGlhb2RvdV9hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGRhbmdndWlfYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBkYW5zaGVuX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgZGF6YW9fYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBnYW5jYW9fYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBnYW5qaWFuZ19hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGdvdXFpX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgamluZ2ppZV9hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGppbmp1X2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgbGl6aGlfYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBsaXppX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgbG9uZ3lhbl9hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIG1vbGlfYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBtdWNoYWlfYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBtdWRhbl9hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIG11bGFuX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgcHVnb25neWluZ19hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHB1dGFvX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgcmVuc2hlbl9hdWRpbzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHRhb3ppX2F1ZGlvOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgemh1eWVfYXVkaW86IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG5cblxuICAgIG1BdWRpb01hcDoge307XG4gICAgYmdNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIGVmZmVjdE11c2ljVm9sdW1lOiBudW1iZXI7XG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XG4gICAgbUVmZmVjdFN3aXRjaDogbnVtYmVyO1xuICAgIGJyaWNrU291bmQ6IGFueTtcbiAgICByZXdhcmQ6IGJvb2xlYW47XG4gICAgZmluaXNoOiBib29sZWFuO1xuICAgIHJld2FyZENvdW50OiBudW1iZXI7XG4gICAgbU11c2ljS2V5OiBhbnk7XG5cbiAgICBvbkxvYWQoKSB7XG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5jdG9yKCk7XG5cbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY3RvciAoKSB7XG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDpu5jorqTpn7Pph4/lpKflsI9cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmdNdXNpY1ZvbHVtZSA9IDAuMTtcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XG5cbiAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxO1xuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xuICAgIH1cbiAgICBwbGF5IChhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xuXG4gICAgICAgIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICBpZihhdWRpb1NvdXJjZSA9PSB0aGlzLmJyaWNrU291bmQpe1xuICAgICAgICAgICAgICAgIHZvbHVtZSA9IDAuMTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB2b2x1bWUgPSAxO1xuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvU291cmNlLCBsb29wLCB2b2x1bWUpO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrKXtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygncGxheSBhdWRpbyBlZmZlY3QgaXNCcm93c2VyOiAnICsgY29udGV4dC5zcmMpO1xuXG4gICAgICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZSAoKSB7XG4gICAgICAgIC8vIGNjLnd3eC5TdG9yYWdlLnNldEl0ZW0oY2Mud3d4LlN0b3JhZ2UuS2V5X1NldHRpbmdfTXVzaWNfVm9sdW1lLCB0aGlzLm1NdXNpY1N3aXRjaCk7XG4gICAgICAgIC8vIGNjLnd3eC5TdG9yYWdlLnNldEl0ZW0oY2Mud3d4LlN0b3JhZ2UuS2V5X1NldHRpbmdfRWZmZWN0X1ZvbHVtZSwgdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgZ2V0IEluc3RhbmNlKClcbiAgICAvLyB7XG4gICAgLy8gICAgIGlmICh0aGlzLl9pbnN0YW5jZSA9PSBudWxsKVxuICAgIC8vICAgICB7XG4gICAgLy8gICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBBdWRpb01hbmFnZXIoKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XG4gICAgLy8gfVxuXG4gICAgcHJlbG9hZCAoKSB7XG4gICAgICAgIGlmICghKGNjLnN5cy5wbGF0Zm9ybSA9PT0gY2Muc3lzLldFQ0hBVF9HQU1FKSkgeyByZXR1cm47IH1cblxuICAgICAgICB2YXIgbXVzaWNzID0gW1xuICAgICAgICAgICAgdGhpcy5hdWRpb0dhbWVCZ20wLFxuICAgICAgICBdO1xuICAgICAgICBtdXNpY3MuZm9yRWFjaChmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZ2V0QXVkaW9NdXNpY1N3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tTXVzaWNTd2l0Y2g7XG5cbiAgICB9XG4gICAgZ2V0QXVkaW9FZmZlY3RTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubUVmZmVjdFN3aXRjaDtcbiAgICB9XG4gICAgdHJ1bkF1ZGlvU291bmQob24pXG4gICAge1xuICAgICAgICB0aGlzLnN3aXRjaE11c2ljKG9uKTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFZmZlY3Qob24pXG4gICAgfVxuICAgIHN3aXRjaE11c2ljIChvbikge1xuICAgICAgICBpZiAodGhpcy5tTXVzaWNTd2l0Y2ggIT0gKG9uPzE6MCkpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMS10aGlzLm1NdXNpY1N3aXRjaDtcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmKG9uKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnBsYXlNdXNpY0dhbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3dpdGNoRWZmZWN0IChvbikge1xuICAgICAgICBpZiAodGhpcy5tRWZmZWN0U3dpdGNoICE9IChvbj8xOjApKXtcbiAgICAgICAgICAgIHRoaXMubUVmZmVjdFN3aXRjaCA9IDEtdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG5cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkhpZGUgKCkge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5wYXVzZUFsbCgpO1xuICAgIH1cblxuICAgIG9uU2hvdyAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZUFsbCgpO1xuICAgIH1cblxuICAgIC8v5pKt5pS+6Z+z5pWIXG4gICAgcGxheUVmZmVjdChuYW1lLGNhbGxiYWNrKXtcbiAgICAgICAgaWYodGhpc1tuYW1lXSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYXkodGhpc1tuYW1lXSwgZmFsc2UsY2FsbGJhY2ssdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG4gICAgcGxheU11c2ljIChrZXksIGNhbGxiYWNrLCBsb29wKSB7XG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyAgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5tTXVzaWNLZXkgPSB0aGlzLnBsYXkoa2V5LCBsb29wLCBjYWxsYmFjaywgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIOa4uOaIj+iDjOaZr+mfs+S5kFxuICAgICAqL1xuICAgIHBsYXlNdXNpY0dhbWUgKCkge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTAse30sdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIOWBnOatouiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHN0b3BNdXNpYyAoKSB7XG4gICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdzdG9wTXVzaWMgYXVkaW8gZWZmZWN0IHd4OiAnICsgdGhpcy5tTXVzaWNLZXkpO1xuXG4gICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5tQXVkaW9NYXBbdGhpcy5tTXVzaWNLZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YoY29udGV4dCkgIT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcChjb250ZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wKGNvbnRleHQpO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19