@kamiazya/ngx-speech-synthesis
Advanced tools
Comparing version 0.0.3 to 0.0.4
@@ -9,3 +9,3 @@ (function (global, factory) { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -43,3 +43,3 @@ /** @type {?} */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -289,3 +289,3 @@ var SpeechSynthesisService = /** @class */ (function () { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -385,6 +385,11 @@ /** | ||
this.internal | ||
.addEventListener('voiceschanged', function () { | ||
.addEventListener('voiceschanged', ( /** | ||
* @return {?} | ||
*/function () { | ||
_this._voice = _this.internal | ||
.getVoices().find(function (v) { return v.name === voice; }); | ||
}); | ||
.getVoices().find(( /** | ||
* @param {?} v | ||
* @return {?} | ||
*/function (v) { return v.name === voice; })); | ||
})); | ||
} | ||
@@ -775,3 +780,3 @@ else { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -812,3 +817,3 @@ var SpeechSynthesisModule = /** @class */ (function () { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -818,3 +823,3 @@ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -827,3 +832,3 @@ /* tslint:disable */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -830,0 +835,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@kamiazya/ngx-speech-synthesis",["exports","@angular/core"],n):n((e.kamiazya=e.kamiazya||{},e.kamiazya["ngx-speech-synthesis"]={}),e.ng.core)}(this,function(e,t){"use strict";var n=new t.InjectionToken("speech-synthesis.lang"),o=new t.InjectionToken("speech-synthesis.voice"),r=new t.InjectionToken("speech-synthesis.volume"),i=new t.InjectionToken("speech-synthesis.rate"),s=new t.InjectionToken("speech-synthesis.pitch"),c=new t.InjectionToken("speech-synthesis.onstart"),a=new t.InjectionToken("speech-synthesis.onend"),p=new t.InjectionToken("speech-synthesis.onerror"),u=new t.InjectionToken("speech-synthesis.onpause"),h=new t.InjectionToken("speech-synthesis.onresume"),y=new t.InjectionToken("speech-synthesis.onmark"),f=new t.InjectionToken("speech-synthesis.onboundary"),d=new t.InjectionToken("speech-synthesis.params"),l=new t.InjectionToken("speech-synthesis.config"),g=function(){function e(){this.internal=window.speechSynthesis}return Object.defineProperty(e.prototype,"pending",{get:function(){return this.internal.pending},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"speaking",{get:function(){return this.internal.speaking},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paused",{get:function(){return this.internal.paused},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onvoiceschanged",{set:function(e){this.internal.onvoiceschanged=e},enumerable:!0,configurable:!0}),e.prototype.speak=function(e){this.internal.speak(e)},e.prototype.cancel=function(){this.internal.cancel()},e.prototype.pause=function(){this.internal.pause()},e.prototype.resume=function(){this.internal.resume()},e.prototype.getVoices=function(){return this.internal.getVoices()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=t.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),b=function(){function e(e,n,t,o,r,i,s,c,a,p,u,h,y){var f=this;this.internal=window.speechSynthesis,this._config=e,this._lang=n,"string"==typeof t?this.internal.addEventListener("voiceschanged",function(){f._voice=f.internal.getVoices().find(function(e){return e.name===t})}):this._voice=t,this._volume=o,this._rate=r,this._pitch=i,this._onstart=s,this._onend=c,this._onerror=a,this._onpause=p,this._onresume=u,this._onmark=h,this._onboundary=y}return Object.defineProperty(e.prototype,"lang",{get:function(){return this._lang||this._config.lang},set:function(e){this._lang=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"voice",{get:function(){return this._voice||this._config.voice},set:function(e){this._voice=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._volume||this._config.volume},set:function(e){this._volume=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rate",{get:function(){return this._rate||this._config.rate},set:function(e){this._rate=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pitch",{get:function(){return this._pitch||this._config.pitch},set:function(e){this._pitch=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onstart",{get:function(){return this._onstart||this._config.onstart},set:function(e){this._onstart=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onend",{get:function(){return this._onend||this._config.onend},set:function(e){this._onend=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onerror",{get:function(){return this._onerror||this._config.onerror},set:function(e){this._onerror=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onpause",{get:function(){return this._onpause||this._config.onpause},set:function(e){this._onpause=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onresume",{get:function(){return this._onresume||this._config.onresume},set:function(e){this._onresume=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onmark",{get:function(){return this._onmark||this._config.onmark},set:function(e){this._onmark=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onboundary",{get:function(){return this._onboundary||this._config.onboundary},set:function(e){this._onboundary=e},enumerable:!0,configurable:!0}),e.prototype.text=function(e){var n=new SpeechSynthesisUtterance(e);return n.lang=this.lang,n.voice=this.voice,n.volume=this.volume,n.rate=this.rate,n.pitch=this.pitch,n.onstart=this.onstart,n.onend=this.onend,n.onerror=this.onerror,n.onpause=this.onpause,n.onresume=this.onresume,n.onmark=this.onmark,n.onboundary=this.onboundary,n},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[l]}]},{type:String,decorators:[{type:t.Optional},{type:t.Inject,args:[n]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[o]}]},{type:Number,decorators:[{type:t.Optional},{type:t.Inject,args:[r]}]},{type:Number,decorators:[{type:t.Optional},{type:t.Inject,args:[i]}]},{type:Number,decorators:[{type:t.Optional},{type:t.Inject,args:[s]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[c]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[a]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[p]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[u]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[h]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[y]}]},{type:undefined,decorators:[{type:t.Optional},{type:t.Inject,args:[f]}]}]},e.ngInjectableDef=t.defineInjectable({factory:function(){return new e(t.inject(l,8),t.inject(n,8),t.inject(o,8),t.inject(r,8),t.inject(i,8),t.inject(s,8),t.inject(c,8),t.inject(a,8),t.inject(p,8),t.inject(u,8),t.inject(h,8),t.inject(y,8),t.inject(f,8))},token:e,providedIn:"root"}),e}(),j=function(){function n(){}return n.forRoot=function(e){return{ngModule:n,providers:[{provide:l,useValue:e}]}},n.decorators=[{type:t.NgModule,args:[{declarations:[],imports:[],exports:[]}]}],n}(),m=window.SpeechSynthesisVoice;e.Lang=n,e.Voice=o,e.Volume=r,e.Rate=i,e.Pitch=s,e.OnStartHandler=c,e.OnEndHandler=a,e.OnErrorHandler=p,e.OnPauseHandler=u,e.OnResumeHandler=h,e.OnMarkHandler=y,e.OnBoundaryHandler=f,e.Params=d,e.Config=l,e.SpeechSynthesisService=g,e.SpeechSynthesisUtteranceFactoryService=b,e.SpeechSynthesisModule=j,e.ɵa=m,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@kamiazya/ngx-speech-synthesis",["exports","@angular/core"],n):n((e.kamiazya=e.kamiazya||{},e.kamiazya["ngx-speech-synthesis"]={}),e.ng.core)}(this,function(e,n){"use strict";var t=new n.InjectionToken("speech-synthesis.lang"),o=new n.InjectionToken("speech-synthesis.voice"),r=new n.InjectionToken("speech-synthesis.volume"),i=new n.InjectionToken("speech-synthesis.rate"),s=new n.InjectionToken("speech-synthesis.pitch"),c=new n.InjectionToken("speech-synthesis.onstart"),a=new n.InjectionToken("speech-synthesis.onend"),p=new n.InjectionToken("speech-synthesis.onerror"),u=new n.InjectionToken("speech-synthesis.onpause"),h=new n.InjectionToken("speech-synthesis.onresume"),y=new n.InjectionToken("speech-synthesis.onmark"),f=new n.InjectionToken("speech-synthesis.onboundary"),d=new n.InjectionToken("speech-synthesis.params"),l=new n.InjectionToken("speech-synthesis.config"),g=(Object.defineProperty(b.prototype,"pending",{get:function(){return this.internal.pending},enumerable:!0,configurable:!0}),Object.defineProperty(b.prototype,"speaking",{get:function(){return this.internal.speaking},enumerable:!0,configurable:!0}),Object.defineProperty(b.prototype,"paused",{get:function(){return this.internal.paused},enumerable:!0,configurable:!0}),Object.defineProperty(b.prototype,"onvoiceschanged",{set:function(e){this.internal.onvoiceschanged=e},enumerable:!0,configurable:!0}),b.prototype.speak=function(e){this.internal.speak(e)},b.prototype.cancel=function(){this.internal.cancel()},b.prototype.pause=function(){this.internal.pause()},b.prototype.resume=function(){this.internal.resume()},b.prototype.getVoices=function(){return this.internal.getVoices()},b.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],b.ctorParameters=function(){return[]},b.ngInjectableDef=n.defineInjectable({factory:function(){return new b},token:b,providedIn:"root"}),b);function b(){this.internal=window.speechSynthesis}var j=(Object.defineProperty(m.prototype,"lang",{get:function(){return this._lang||this._config.lang},set:function(e){this._lang=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"voice",{get:function(){return this._voice||this._config.voice},set:function(e){this._voice=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"volume",{get:function(){return this._volume||this._config.volume},set:function(e){this._volume=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"rate",{get:function(){return this._rate||this._config.rate},set:function(e){this._rate=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"pitch",{get:function(){return this._pitch||this._config.pitch},set:function(e){this._pitch=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onstart",{get:function(){return this._onstart||this._config.onstart},set:function(e){this._onstart=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onend",{get:function(){return this._onend||this._config.onend},set:function(e){this._onend=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onerror",{get:function(){return this._onerror||this._config.onerror},set:function(e){this._onerror=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onpause",{get:function(){return this._onpause||this._config.onpause},set:function(e){this._onpause=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onresume",{get:function(){return this._onresume||this._config.onresume},set:function(e){this._onresume=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onmark",{get:function(){return this._onmark||this._config.onmark},set:function(e){this._onmark=e},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"onboundary",{get:function(){return this._onboundary||this._config.onboundary},set:function(e){this._onboundary=e},enumerable:!0,configurable:!0}),m.prototype.text=function(e){var n=new SpeechSynthesisUtterance(e);return n.lang=this.lang,n.voice=this.voice,n.volume=this.volume,n.rate=this.rate,n.pitch=this.pitch,n.onstart=this.onstart,n.onend=this.onend,n.onerror=this.onerror,n.onpause=this.onpause,n.onresume=this.onresume,n.onmark=this.onmark,n.onboundary=this.onboundary,n},m.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],m.ctorParameters=function(){return[{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[l]}]},{type:String,decorators:[{type:n.Optional},{type:n.Inject,args:[t]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[o]}]},{type:Number,decorators:[{type:n.Optional},{type:n.Inject,args:[r]}]},{type:Number,decorators:[{type:n.Optional},{type:n.Inject,args:[i]}]},{type:Number,decorators:[{type:n.Optional},{type:n.Inject,args:[s]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[c]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[a]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[p]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[u]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[h]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[y]}]},{type:undefined,decorators:[{type:n.Optional},{type:n.Inject,args:[f]}]}]},m.ngInjectableDef=n.defineInjectable({factory:function(){return new m(n.inject(l,8),n.inject(t,8),n.inject(o,8),n.inject(r,8),n.inject(i,8),n.inject(s,8),n.inject(c,8),n.inject(a,8),n.inject(p,8),n.inject(u,8),n.inject(h,8),n.inject(y,8),n.inject(f,8))},token:m,providedIn:"root"}),m);function m(e,n,t,o,r,i,s,c,a,p,u,h,y){var f=this;this.internal=window.speechSynthesis,this._config=e,this._lang=n,"string"==typeof t?this.internal.addEventListener("voiceschanged",function(){f._voice=f.internal.getVoices().find(function(e){return e.name===t})}):this._voice=t,this._volume=o,this._rate=r,this._pitch=i,this._onstart=s,this._onend=c,this._onerror=a,this._onpause=p,this._onresume=u,this._onmark=h,this._onboundary=y}var _=(I.forRoot=function(e){return{ngModule:I,providers:[{provide:l,useValue:e}]}},I.decorators=[{type:n.NgModule,args:[{declarations:[],imports:[],exports:[]}]}],I);function I(){}var O=window.SpeechSynthesisVoice;e.Lang=t,e.Voice=o,e.Volume=r,e.Rate=i,e.Pitch=s,e.OnStartHandler=c,e.OnEndHandler=a,e.OnErrorHandler=p,e.OnPauseHandler=u,e.OnResumeHandler=h,e.OnMarkHandler=y,e.OnBoundaryHandler=f,e.Params=d,e.Config=l,e.SpeechSynthesisService=g,e.SpeechSynthesisUtteranceFactoryService=j,e.SpeechSynthesisModule=_,e.ɵa=O,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=kamiazya-ngx-speech-synthesis.umd.min.js.map |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /** |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /* tslint:disable */ |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { InjectionToken } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -116,6 +116,13 @@ import { Injectable, Optional, Inject } from '@angular/core'; | ||
this.internal | ||
.addEventListener('voiceschanged', () => { | ||
.addEventListener('voiceschanged', (/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this._voice = this.internal | ||
.getVoices().find(v => v.name === voice); | ||
}); | ||
.getVoices().find((/** | ||
* @param {?} v | ||
* @return {?} | ||
*/ | ||
v => v.name === voice)); | ||
})); | ||
} | ||
@@ -462,2 +469,2 @@ else { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXN5bnRoZXNpcy11dHRlcmFuY2UtZmFjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGthbWlhenlhL25neC1zcGVlY2gtc3ludGhlc2lzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NwZWVjaC1zeW50aGVzaXMtdXR0ZXJhbmNlLWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixNQUFNLEdBRVAsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU1wQixNQUFNLE9BQU8sc0NBQXNDOzs7Ozs7Ozs7Ozs7Ozs7O0lBc0JqRCxZQUVFLE1BQXVDLEVBRXZDO0lBQ0E7Ozs7Ozs7T0FPRztJQUNILElBQWEsRUFFYjtJQUNBOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFxQyxFQUVyQztJQUNBOzs7O09BSUc7SUFDSCxNQUFlLEVBRWY7SUFDQTs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBYSxFQUViO0lBQ0E7Ozs7OztPQU1HO0lBQ0gsS0FBYyxFQUVkO0lBQ0E7O09BRUc7SUFDSCxPQUE4QyxFQUU5QztJQUNBOzs7T0FHRztJQUNILEtBQTRDLEVBRTVDO0lBQ0E7OztPQUdHO0lBQ0gsT0FBbUQsRUFFbkQ7SUFDQTs7T0FFRztJQUNILE9BQThDLEVBRTlDO0lBQ0E7Ozs7O09BS0c7SUFDSCxRQUErQyxFQUUvQztJQUNBOzs7T0FHRztJQUNILE1BQTZDLEVBRTdDO0lBQ0E7OztPQUdHO0lBQ0gsVUFBaUQ7UUFHakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENB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QUFJLE1BQU0sU0FBQyxNQUFNO3lDQVF6QixRQUFRLFlBQUksTUFBTSxTQUFDLElBQUk7eUNBY3ZCLFFBQVEsWUFBSSxNQUFNLFNBQUMsS0FBSzs0Q0FVeEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzRDQU1qQyxRQUFRLFlBQUksTUFBTSxTQUFDLFlBQVk7NENBTy9CLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs0Q0FPakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzRDQU1qQyxRQUFRLFlBQUksTUFBTSxTQUFDLGVBQWU7NENBU2xDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTs0Q0FPaEMsUUFBUSxZQUFJLE1BQU0sU0FBQyxpQkFBaUI7Ozs7Ozs7O0lBNUh2Qyx5REFBaUQ7Ozs7O0lBQ2pELHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXNDOzs7OztJQUN0Qyx5REFBeUI7Ozs7O0lBQ3pCLHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXdCOzs7OztJQUN4QiwwREFBd0Q7Ozs7O0lBQ3hELHdEQUFzRDs7Ozs7SUFDdEQsMERBQTZEOzs7OztJQUM3RCwwREFBd0Q7Ozs7O0lBQ3hELDJEQUF5RDs7Ozs7SUFDekQseURBQXVEOzs7OztJQUN2RCw2REFBMkQ7Ozs7Ozs7SUFPM0QsMERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBMYW5nLFxuICBWb2ljZSxcbiAgVm9sdW1lLFxuICBSYXRlLFxuICBQaXRjaCxcbiAgT25TdGFydEhhbmRsZXIsXG4gIE9uRW5kSGFuZGxlcixcbiAgT25FcnJvckhhbmRsZXIsXG4gIE9uUGF1c2VIYW5kbGVyLFxuICBPblJlc3VtZUhhbmRsZXIsXG4gIE9uTWFya0hhbmRsZXIsXG4gIE9uQm91bmRhcnlIYW5kbGVyLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG4gIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcbiAgQ29uZmlnLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcbn0gZnJvbSAnLi4vY29uZmlncyc7XG5pbXBvcnQgeyBTcGVlY2hTeW50aGVzaXNWb2ljZSB9IGZyb20gJy4uL2FkYXB0ZXJzL2FkYXB0ZXInO1xuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VGYWN0b3J5U2VydmljZSB7XG4gIHByaXZhdGUgX2NvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZztcbiAgcHJpdmF0ZSBfbGFuZz86IHN0cmluZztcbiAgcHJpdmF0ZSBfdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZTtcbiAgcHJpdmF0ZSBfdm9sdW1lPzogbnVtYmVyO1xuICBwcml2YXRlIF9yYXRlPzogbnVtYmVyO1xuICBwcml2YXRlIF9waXRjaD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfb25zdGFydD86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25yZXN1bWU/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25ib3VuZGFyeT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcblxuXG4gIC8qKlxuICAgKiBJZiBTcGVlY2hTeW50aGVzaXMgQVBJIGlzIHN1cHBvcnRlZFxuICAgKiBieSB0aGUgYnJvd3NlciBpbnN0YW5jZSB3aWxsIGJlIGluY2x1ZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbDogU3BlZWNoU3ludGhlc2lzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ29uZmlnKVxuICAgIGNvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTGFuZylcbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGZvciB0aGUgdXR0ZXJhbmNlLFxuICAgICAqIHVzaW5nIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgICAqIGJ1dCB3aWxsIGRlZmF1bHQgdG8gdXNlIHRoZSBsYW5ndWFnZSBvZiB0aGUgaHRtbCBkb2N1bWVudCByb290IGVsZW1lbnQgYW5kIGFzc29jaWF0ZWQgaGllcmFyY2h5LlxuICAgICAqIFRoaXMgZGVmYXVsdCB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgdXNlZCB3aGVuIHRoZSBpbnB1dCByZXF1ZXN0IG9wZW5zIGEgY29ubmVjdGlvblxuICAgICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgICAqL1xuICAgIGxhbmc/OiBzdHJpbmcsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZvaWNlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICAgKiBXaGVuIGEgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIG9iamVjdCBpcyBjcmVhdGVkIHRoaXMgYXR0cmlidXRlIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC5cbiAgICAgKiBJZiwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKCkgbWV0aG9kIGNhbGwsXG4gICAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICAgKiB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIHRoYXQgdm9pY2UuIElmIHRoaXMgYXR0cmlidXRlIGlzIHVuc2V0IG9yIG51bGwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKClcbiAgICAgKiBtZXRob2QgY2FsbCwgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSBhIHVzZXIgYWdlbnQgZGVmYXVsdCB2b2ljZS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAgICogY2FuIGJlIGEgbG9jYWwgb3IgcmVtb3RlIHNwZWVjaCBzZXJ2aWNlIGFuZCBjYW4gaW5jb3Jwb3JhdGUgZW5kIHVzZXIgY2hvaWNlcyB2aWEgaW50ZXJmYWNlc1xuICAgICAqIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGFnZW50IHN1Y2ggYXMgYnJvd3NlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZSB8IHN0cmluZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVm9sdW1lKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgdm9sdW1lIGZvciB0aGUgdXR0ZXJhbmNlLlxuICAgICAqIEl0IHJhbmdlcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVzaXZlLCB3aXRoIDAgYmVpbmcgdGhlIGxvd2VzdCB2b2x1bWUgYW5kIDEgdGhlIGhpZ2hlc3Qgdm9sdW1lLFxuICAgICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgdm9sdW1lPzogbnVtYmVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSYXRlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgcmF0ZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCBpcyByZWxhdGl2ZSB0byB0aGUgZGVmYXVsdCByYXRlIGZvciB0aGlzIHZvaWNlLlxuICAgICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAgICogKHdoaWNoIHNob3VsZCBjb3JyZXNwb25kIHRvIGEgbm9ybWFsIHNwZWFraW5nIHJhdGUpLlxuICAgICAqIDIgaXMgdHdpY2UgYXMgZmFzdCwgYW5kIDAuNSBpcyBoYWxmIGFzIGZhc3QuIFZhbHVlcyBiZWxvdyAwLjEgb3IgYWJvdmUgMTAgYXJlIHN0cmljdGx5IGRpc2FsbG93ZWQsXG4gICAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgICAqIGZvciBleGFtcGxlLCBhIHBhcnRpY3VsYXIgdm9pY2UgbWF5IG5vdCBhY3R1YWxseSBzcGVhayBmYXN0ZXIgdGhhbiAzIHRpbWVzIG5vcm1hbFxuICAgICAqIGV2ZW4gaWYgeW91IHNwZWNpZnkgYSB2YWx1ZSBsYXJnZXIgdGhhbiAzLlxuICAgICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgcmF0ZT86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUGl0Y2gpXG4gICAgLyoqXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCByYW5nZXMgYmV0d2VlbiAwIGFuZCAyIGluY2x1c2l2ZSwgd2l0aCAwIGJlaW5nIHRoZSBsb3dlc3QgcGl0Y2ggYW5kIDIgdGhlIGhpZ2hlc3QgcGl0Y2guXG4gICAgICogMSBjb3JyZXNwb25kcyB0byB0aGUgZGVmYXVsdCBwaXRjaCBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgb3Igc3BlY2lmaWMgdm9pY2UuXG4gICAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAgICogSWYgU1NNTCBpcyB1c2VkLCB0aGlzIHZhbHVlIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSBwcm9zb2R5IHRhZ3MgaW4gdGhlIG1hcmt1cC5cbiAgICAgKi9cbiAgICBwaXRjaD86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25TdGFydEhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGlzIHV0dGVyYW5jZSBoYXMgYmVndW4gdG8gYmUgc3Bva2VuLlxuICAgICAqL1xuICAgIG9uc3RhcnQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRW5kSGFuZGxlcilcbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgICAqIHRoZSBlcnJvciBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRXJyb3JIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB0aGF0IHByZXZlbnRlZCBzdWNjZXNzZnVsIHNwZWFraW5nIG9mIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqIElmIHRoaXMgZXZlbnQgZmlyZXMsIHRoZSBlbmQgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqL1xuICAgIG9uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25QYXVzZUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiBhbmQgaWYgdGhpcyB1dHRlcmFuY2UgaXMgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25SZXN1bWVIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICogQWRkaW5nIHRoZSB1dHRlcmFuY2UgdG8gdGhlIHF1ZXVlIHdoaWxlIHRoZSBnbG9iYWwgU3BlZWNoU3ludGhlc2lzIGluc3RhbmNlIGlzIGluIHRoZSBwYXVzZWQgc3RhdGUsXG4gICAgICogYW5kIHRoZW4gY2FsbGluZyB0aGUgcmVzdW1lIG1ldGhvZCBkb2VzIG5vdCBjYXVzZSB0aGUgcmVzdW1lIGV2ZW50IHRvIGJlIGZpcmVkLFxuICAgICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgICAqL1xuICAgIG9ucmVzdW1lPzogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPbk1hcmtIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHNwb2tlbiB1dHRlcmFuY2UgcmVhY2hlcyBhIG5hbWVkIFwibWFya1wiIHRhZyBpbiBTU01MLlxuICAgICAqIFtTU01MXSBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25Cb3VuZGFyeUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgc3Bva2VuIHV0dGVyYW5jZSByZWFjaGVzIGEgd29yZCBvciBzZW50ZW5jZSBib3VuZGFyeS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9uYm91bmRhcnk/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgKSB7XG4gICAgdGhpcy5pbnRlcm5hbCA9IHdpbmRvdy5zcGVlY2hTeW50aGVzaXM7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICAgIGlmICh0eXBlb2Ygdm9pY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmludGVybmFsXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCd2b2ljZXNjaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZvaWNlID0gdGhpcy5pbnRlcm5hbFxuICAgICAgICAgICAgLmdldFZvaWNlcygpLmZpbmQodiA9PiB2Lm5hbWUgPT09IHZvaWNlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZvaWNlID0gdm9pY2U7XG4gICAgfVxuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgICB0aGlzLl9yYXRlID0gcmF0ZTtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICAgIHRoaXMuX29uc3RhcnQgPSBvbnN0YXJ0O1xuICAgIHRoaXMuX29uZW5kID0gb25lbmQ7XG4gICAgdGhpcy5fb25lcnJvciA9IG9uZXJyb3I7XG4gICAgdGhpcy5fb25wYXVzZSA9IG9ucGF1c2U7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgICB0aGlzLl9vbm1hcmsgPSBvbm1hcms7XG4gICAgdGhpcy5fb25ib3VuZGFyeSA9IG9uYm91bmRhcnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBmb3IgdGhlIHV0dGVyYW5jZSxcbiAgICogdXNpbmcgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLlxuICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgKiBidXQgd2lsbCBkZWZhdWx0IHRvIHVzZSB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGh0bWwgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGFuZCBhc3NvY2lhdGVkIGhpZXJhcmNoeS5cbiAgICogVGhpcyBkZWZhdWx0IHZhbHVlIGlzIGNvbXB1dGVkIGFuZCB1c2VkIHdoZW4gdGhlIGlucHV0IHJlcXVlc3Qgb3BlbnMgYSBjb25uZWN0aW9uXG4gICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZyB8fCB0aGlzLl9jb25maWcubGFuZztcbiAgfVxuXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICogV2hlbiBhIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBvYmplY3QgaXMgY3JlYXRlZCB0aGlzIGF0dHJpYnV0ZSBtdXN0IGJlIGluaXRpYWxpemVkIHRvIG51bGwuXG4gICAqIElmLCBhdCB0aGUgdGltZSBvZiB0aGUgc3BlYWsoKSBtZXRob2QgY2FsbCxcbiAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICogdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSB0aGF0IHZvaWNlLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyB1bnNldCBvciBudWxsIGF0IHRoZSB0aW1lIG9mIHRoZSBzcGVhaygpXG4gICAqIG1ldGhvZCBjYWxsLCB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIGEgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlLlxuICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAqIGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBzcGVlY2ggc2VydmljZSBhbmQgY2FuIGluY29ycG9yYXRlIGVuZCB1c2VyIGNob2ljZXMgdmlhIGludGVyZmFjZXNcbiAgICogcHJvdmlkZWQgYnkgdGhlIHVzZXIgYWdlbnQgc3VjaCBhcyBicm93c2VyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy5cbiAgICovXG4gIGdldCB2b2ljZSgpOiBTcGVlY2hTeW50aGVzaXNWb2ljZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvaWNlIHx8IHRoaXMuX2NvbmZpZy52b2ljZTtcbiAgfVxuICBzZXQgdm9pY2Uodm9pY2U6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlKSB7XG4gICAgdGhpcy5fdm9pY2UgPSB2b2ljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHZvbHVtZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHZvbHVtZSBhbmQgMSB0aGUgaGlnaGVzdCB2b2x1bWUsXG4gICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgdm9sdW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvbHVtZSB8fCB0aGlzLl9jb25maWcudm9sdW1lO1xuICB9XG5cbiAgc2V0IHZvbHVtZSh2b2x1bWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHJhdGUgZm9yIHRoZSB1dHRlcmFuY2UuXG4gICAqIEl0IGlzIHJlbGF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhdGUgZm9yIHRoaXMgdm9pY2UuXG4gICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAqICh3aGljaCBzaG91bGQgY29ycmVzcG9uZCB0byBhIG5vcm1hbCBzcGVha2luZyByYXRlKS5cbiAgICogMiBpcyB0d2ljZSBhcyBmYXN0LCBhbmQgMC41IGlzIGhhbGYgYXMgZmFzdC4gVmFsdWVzIGJlbG93IDAuMSBvciBhYm92ZSAxMCBhcmUgc3RyaWN0bHkgZGlzYWxsb3dlZCxcbiAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgKiBmb3IgZXhhbXBsZSwgYSBwYXJ0aWN1bGFyIHZvaWNlIG1heSBub3QgYWN0dWFsbHkgc3BlYWsgZmFzdGVyIHRoYW4gMyB0aW1lcyBub3JtYWxcbiAgICogZXZlbiBpZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGxhcmdlciB0aGFuIDMuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcmF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yYXRlIHx8IHRoaXMuX2NvbmZpZy5yYXRlO1xuICB9XG5cbiAgc2V0IHJhdGUocmF0ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcmF0ZSA9IHJhdGU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMiBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHBpdGNoIGFuZCAyIHRoZSBoaWdoZXN0IHBpdGNoLlxuICAgKiAxIGNvcnJlc3BvbmRzIHRvIHRoZSBkZWZhdWx0IHBpdGNoIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBvciBzcGVjaWZpYyB2b2ljZS5cbiAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcGl0Y2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGl0Y2ggfHwgdGhpcy5fY29uZmlnLnBpdGNoO1xuICB9XG5cbiAgc2V0IHBpdGNoKHBpdGNoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyB1dHRlcmFuY2UgaGFzIGJlZ3VuIHRvIGJlIHNwb2tlbi5cbiAgICovXG4gIGdldCBvbnN0YXJ0KCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uc3RhcnQgfHwgdGhpcy5fY29uZmlnLm9uc3RhcnQ7XG4gIH1cblxuICBzZXQgb25zdGFydChvbnN0YXJ0OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIpIHtcbiAgICB0aGlzLl9vbnN0YXJ0ID0gb25zdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgKiB0aGUgZXJyb3IgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9uZW5kKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZW5kIHx8IHRoaXMuX2NvbmZpZy5vbmVuZDtcbiAgfVxuXG4gIHNldCBvbmVuZChvbmVuZDogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25lbmQgPSBvbmVuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgdGhhdCBwcmV2ZW50ZWQgc3VjY2Vzc2Z1bCBzcGVha2luZyBvZiB0aGlzIHV0dGVyYW5jZS5cbiAgICogSWYgdGhpcyBldmVudCBmaXJlcywgdGhlIGVuZCBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAqL1xuICBnZXQgb25lcnJvcigpOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZXJyb3IgfHwgdGhpcy5fY29uZmlnLm9uZXJyb3I7XG4gIH1cblxuICBzZXQgb25lcnJvcihvbmVycm9yOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uZXJyb3IgPSBvbmVycm9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHBhdXNlZCBtaWQtdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9ucGF1c2UoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25wYXVzZSB8fCB0aGlzLl9jb25maWcub25wYXVzZTtcbiAgfVxuXG4gIHNldCBvbnBhdXNlKG9ucGF1c2U6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ucGF1c2UgPSBvbnBhdXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAqIEFkZGluZyB0aGUgdXR0ZXJhbmNlIHRvIHRoZSBxdWV1ZSB3aGlsZSB0aGUgZ2xvYmFsIFNwZWVjaFN5bnRoZXNpcyBpbnN0YW5jZSBpcyBpbiB0aGUgcGF1c2VkIHN0YXRlLFxuICAgKiBhbmQgdGhlbiBjYWxsaW5nIHRoZSByZXN1bWUgbWV0aG9kIGRvZXMgbm90IGNhdXNlIHRoZSByZXN1bWUgZXZlbnQgdG8gYmUgZmlyZWQsXG4gICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgKi9cbiAgZ2V0IG9ucmVzdW1lKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ucmVzdW1lIHx8IHRoaXMuX2NvbmZpZy5vbnJlc3VtZTtcbiAgfVxuXG4gIHNldCBvbnJlc3VtZShvbnJlc3VtZTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSBuYW1lZCBcIm1hcmtcIiB0YWcgaW4gU1NNTC5cbiAgICogW1NTTUxdIFRoZSB1c2VyIGFnZW50IG11c3QgZmlyZSB0aGlzIGV2ZW50IGlmIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBwcm92aWRlcyB0aGUgZXZlbnQuXG4gICAqL1xuICBnZXQgb25tYXJrKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ubWFyayB8fCB0aGlzLl9jb25maWcub25tYXJrO1xuICB9XG5cbiAgc2V0IG9ubWFyayhvbm1hcms6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ubWFyayA9IG9ubWFyaztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSB3b3JkIG9yIHNlbnRlbmNlIGJvdW5kYXJ5LlxuICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgKi9cbiAgZ2V0IG9uYm91bmRhcnkoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25ib3VuZGFyeSB8fCB0aGlzLl9jb25maWcub25ib3VuZGFyeTtcbiAgfVxuXG4gIHNldCBvbmJvdW5kYXJ5KG9uYm91bmRhcnk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uYm91bmRhcnkgPSBvbmJvdW5kYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgdGV4dCB0byBiZSBzeW50aGVzaXplZCBhbmQgc3Bva2VuIGZvciB0aGlzIHV0dGVyYW5jZS5cbiAgICogVGhpcyBtYXkgYmUgZWl0aGVyIHBsYWluIHRleHQgb3IgYSBjb21wbGV0ZSwgd2VsbC1mb3JtZWQgU1NNTCBkb2N1bWVudC5cbiAgICogW1NTTUxdIEZvciBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBTU01MLFxuICAgKiBvciBvbmx5IHN1cHBvcnQgY2VydGFpbiB0YWdzLCB0aGUgdXNlciBhZ2VudCBvciBzcGVlY2ggZW5naW5lIG11c3Qgc3RyaXAgYXdheVxuICAgKiB0aGUgdGFncyB0aGV5IGRvIG5vdCBzdXBwb3J0IGFuZCBzcGVhayB0aGUgdGV4dC4gVGhlcmUgbWF5IGJlIGEgbWF4aW11bSBsZW5ndGggb2YgdGhlIHRleHQsXG4gICAqIGl0IG1heSBiZSBsaW1pdGVkIHRvIDMyLDc2NyBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcHVibGljIHRleHQodGV4dDogc3RyaW5nKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHtcbiAgICBjb25zdCB1dHRlcmFuY2UgPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKHRleHQpO1xuXG4gICAgdXR0ZXJhbmNlLmxhbmcgICAgICAgPSB0aGlzLmxhbmc7XG4gICAgdXR0ZXJhbmNlLnZvaWNlICAgICAgPSB0aGlzLnZvaWNlO1xuICAgIHV0dGVyYW5jZS52b2x1bWUgICAgID0gdGhpcy52b2x1bWU7XG4gICAgdXR0ZXJhbmNlLnJhdGUgICAgICAgPSB0aGlzLnJhdGU7XG4gICAgdXR0ZXJhbmNlLnBpdGNoICAgICAgPSB0aGlzLnBpdGNoO1xuICAgIHV0dGVyYW5jZS5vbnN0YXJ0ICAgID0gdGhpcy5vbnN0YXJ0O1xuICAgIHV0dGVyYW5jZS5vbmVuZCAgICAgID0gdGhpcy5vbmVuZDtcbiAgICB1dHRlcmFuY2Uub25lcnJvciAgICA9IHRoaXMub25lcnJvcjtcbiAgICB1dHRlcmFuY2Uub25wYXVzZSAgICA9IHRoaXMub25wYXVzZTtcbiAgICB1dHRlcmFuY2Uub25yZXN1bWUgICA9IHRoaXMub25yZXN1bWU7XG4gICAgdXR0ZXJhbmNlLm9ubWFyayAgICAgPSB0aGlzLm9ubWFyaztcbiAgICB1dHRlcmFuY2Uub25ib3VuZGFyeSA9IHRoaXMub25ib3VuZGFyeTtcblxuICAgIHJldHVybiB1dHRlcmFuY2U7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXN5bnRoZXNpcy11dHRlcmFuY2UtZmFjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGthbWlhenlhL25neC1zcGVlY2gtc3ludGhlc2lzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NwZWVjaC1zeW50aGVzaXMtdXR0ZXJhbmNlLWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixNQUFNLEdBRVAsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU1wQixNQUFNLE9BQU8sc0NBQXNDOzs7Ozs7Ozs7Ozs7Ozs7O0lBc0JqRCxZQUVFLE1BQXVDLEVBRXZDO0lBQ0E7Ozs7Ozs7T0FPRztJQUNILElBQWEsRUFFYjtJQUNBOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFxQyxFQUVyQztJQUNBOzs7O09BSUc7SUFDSCxNQUFlLEVBRWY7SUFDQTs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBYSxFQUViO0lBQ0E7Ozs7OztPQU1HO0lBQ0gsS0FBYyxFQUVkO0lBQ0E7O09BRUc7SUFDSCxPQUE4QyxFQUU5QztJQUNBOzs7T0FHRztJQUNILEtBQTRDLEVBRTVDO0lBQ0E7OztPQUdHO0lBQ0gsT0FBbUQsRUFFbkQ7SUFDQTs7T0FFRztJQUNILE9BQThDLEVBRTlDO0lBQ0E7Ozs7O09BS0c7SUFDSCxRQUErQyxFQUUvQztJQUNBOzs7T0FHRztJQUNILE1BQTZDLEVBRTdDO0lBQ0E7OztPQUdHO0lBQ0gsVUFBaUQ7UUFHakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENB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UUFBUSxZQUFJLE1BQU0sU0FBQyxNQUFNO3lDQVF6QixRQUFRLFlBQUksTUFBTSxTQUFDLElBQUk7eUNBY3ZCLFFBQVEsWUFBSSxNQUFNLFNBQUMsS0FBSzs0Q0FVeEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzRDQU1qQyxRQUFRLFlBQUksTUFBTSxTQUFDLFlBQVk7NENBTy9CLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs0Q0FPakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzRDQU1qQyxRQUFRLFlBQUksTUFBTSxTQUFDLGVBQWU7NENBU2xDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTs0Q0FPaEMsUUFBUSxZQUFJLE1BQU0sU0FBQyxpQkFBaUI7Ozs7Ozs7O0lBNUh2Qyx5REFBaUQ7Ozs7O0lBQ2pELHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXNDOzs7OztJQUN0Qyx5REFBeUI7Ozs7O0lBQ3pCLHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXdCOzs7OztJQUN4QiwwREFBd0Q7Ozs7O0lBQ3hELHdEQUFzRDs7Ozs7SUFDdEQsMERBQTZEOzs7OztJQUM3RCwwREFBd0Q7Ozs7O0lBQ3hELDJEQUF5RDs7Ozs7SUFDekQseURBQXVEOzs7OztJQUN2RCw2REFBMkQ7Ozs7Ozs7SUFPM0QsMERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBMYW5nLFxuICBWb2ljZSxcbiAgVm9sdW1lLFxuICBSYXRlLFxuICBQaXRjaCxcbiAgT25TdGFydEhhbmRsZXIsXG4gIE9uRW5kSGFuZGxlcixcbiAgT25FcnJvckhhbmRsZXIsXG4gIE9uUGF1c2VIYW5kbGVyLFxuICBPblJlc3VtZUhhbmRsZXIsXG4gIE9uTWFya0hhbmRsZXIsXG4gIE9uQm91bmRhcnlIYW5kbGVyLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG4gIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcbiAgQ29uZmlnLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcbn0gZnJvbSAnLi4vY29uZmlncyc7XG5pbXBvcnQgeyBTcGVlY2hTeW50aGVzaXNWb2ljZSB9IGZyb20gJy4uL2FkYXB0ZXJzL2FkYXB0ZXInO1xuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VGYWN0b3J5U2VydmljZSB7XG4gIHByaXZhdGUgX2NvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZztcbiAgcHJpdmF0ZSBfbGFuZz86IHN0cmluZztcbiAgcHJpdmF0ZSBfdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZTtcbiAgcHJpdmF0ZSBfdm9sdW1lPzogbnVtYmVyO1xuICBwcml2YXRlIF9yYXRlPzogbnVtYmVyO1xuICBwcml2YXRlIF9waXRjaD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfb25zdGFydD86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25yZXN1bWU/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25ib3VuZGFyeT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcblxuXG4gIC8qKlxuICAgKiBJZiBTcGVlY2hTeW50aGVzaXMgQVBJIGlzIHN1cHBvcnRlZFxuICAgKiBieSB0aGUgYnJvd3NlciBpbnN0YW5jZSB3aWxsIGJlIGluY2x1ZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbDogU3BlZWNoU3ludGhlc2lzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ29uZmlnKVxuICAgIGNvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTGFuZylcbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGZvciB0aGUgdXR0ZXJhbmNlLFxuICAgICAqIHVzaW5nIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgICAqIGJ1dCB3aWxsIGRlZmF1bHQgdG8gdXNlIHRoZSBsYW5ndWFnZSBvZiB0aGUgaHRtbCBkb2N1bWVudCByb290IGVsZW1lbnQgYW5kIGFzc29jaWF0ZWQgaGllcmFyY2h5LlxuICAgICAqIFRoaXMgZGVmYXVsdCB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgdXNlZCB3aGVuIHRoZSBpbnB1dCByZXF1ZXN0IG9wZW5zIGEgY29ubmVjdGlvblxuICAgICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgICAqL1xuICAgIGxhbmc/OiBzdHJpbmcsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZvaWNlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICAgKiBXaGVuIGEgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIG9iamVjdCBpcyBjcmVhdGVkIHRoaXMgYXR0cmlidXRlIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC5cbiAgICAgKiBJZiwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKCkgbWV0aG9kIGNhbGwsXG4gICAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICAgKiB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIHRoYXQgdm9pY2UuIElmIHRoaXMgYXR0cmlidXRlIGlzIHVuc2V0IG9yIG51bGwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKClcbiAgICAgKiBtZXRob2QgY2FsbCwgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSBhIHVzZXIgYWdlbnQgZGVmYXVsdCB2b2ljZS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAgICogY2FuIGJlIGEgbG9jYWwgb3IgcmVtb3RlIHNwZWVjaCBzZXJ2aWNlIGFuZCBjYW4gaW5jb3Jwb3JhdGUgZW5kIHVzZXIgY2hvaWNlcyB2aWEgaW50ZXJmYWNlc1xuICAgICAqIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGFnZW50IHN1Y2ggYXMgYnJvd3NlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZSB8IHN0cmluZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVm9sdW1lKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgdm9sdW1lIGZvciB0aGUgdXR0ZXJhbmNlLlxuICAgICAqIEl0IHJhbmdlcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVzaXZlLCB3aXRoIDAgYmVpbmcgdGhlIGxvd2VzdCB2b2x1bWUgYW5kIDEgdGhlIGhpZ2hlc3Qgdm9sdW1lLFxuICAgICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgdm9sdW1lPzogbnVtYmVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSYXRlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgcmF0ZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCBpcyByZWxhdGl2ZSB0byB0aGUgZGVmYXVsdCByYXRlIGZvciB0aGlzIHZvaWNlLlxuICAgICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAgICogKHdoaWNoIHNob3VsZCBjb3JyZXNwb25kIHRvIGEgbm9ybWFsIHNwZWFraW5nIHJhdGUpLlxuICAgICAqIDIgaXMgdHdpY2UgYXMgZmFzdCwgYW5kIDAuNSBpcyBoYWxmIGFzIGZhc3QuIFZhbHVlcyBiZWxvdyAwLjEgb3IgYWJvdmUgMTAgYXJlIHN0cmljdGx5IGRpc2FsbG93ZWQsXG4gICAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgICAqIGZvciBleGFtcGxlLCBhIHBhcnRpY3VsYXIgdm9pY2UgbWF5IG5vdCBhY3R1YWxseSBzcGVhayBmYXN0ZXIgdGhhbiAzIHRpbWVzIG5vcm1hbFxuICAgICAqIGV2ZW4gaWYgeW91IHNwZWNpZnkgYSB2YWx1ZSBsYXJnZXIgdGhhbiAzLlxuICAgICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgcmF0ZT86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUGl0Y2gpXG4gICAgLyoqXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCByYW5nZXMgYmV0d2VlbiAwIGFuZCAyIGluY2x1c2l2ZSwgd2l0aCAwIGJlaW5nIHRoZSBsb3dlc3QgcGl0Y2ggYW5kIDIgdGhlIGhpZ2hlc3QgcGl0Y2guXG4gICAgICogMSBjb3JyZXNwb25kcyB0byB0aGUgZGVmYXVsdCBwaXRjaCBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgb3Igc3BlY2lmaWMgdm9pY2UuXG4gICAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAgICogSWYgU1NNTCBpcyB1c2VkLCB0aGlzIHZhbHVlIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSBwcm9zb2R5IHRhZ3MgaW4gdGhlIG1hcmt1cC5cbiAgICAgKi9cbiAgICBwaXRjaD86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25TdGFydEhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGlzIHV0dGVyYW5jZSBoYXMgYmVndW4gdG8gYmUgc3Bva2VuLlxuICAgICAqL1xuICAgIG9uc3RhcnQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRW5kSGFuZGxlcilcbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgICAqIHRoZSBlcnJvciBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRXJyb3JIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB0aGF0IHByZXZlbnRlZCBzdWNjZXNzZnVsIHNwZWFraW5nIG9mIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqIElmIHRoaXMgZXZlbnQgZmlyZXMsIHRoZSBlbmQgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqL1xuICAgIG9uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25QYXVzZUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiBhbmQgaWYgdGhpcyB1dHRlcmFuY2UgaXMgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25SZXN1bWVIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICogQWRkaW5nIHRoZSB1dHRlcmFuY2UgdG8gdGhlIHF1ZXVlIHdoaWxlIHRoZSBnbG9iYWwgU3BlZWNoU3ludGhlc2lzIGluc3RhbmNlIGlzIGluIHRoZSBwYXVzZWQgc3RhdGUsXG4gICAgICogYW5kIHRoZW4gY2FsbGluZyB0aGUgcmVzdW1lIG1ldGhvZCBkb2VzIG5vdCBjYXVzZSB0aGUgcmVzdW1lIGV2ZW50IHRvIGJlIGZpcmVkLFxuICAgICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgICAqL1xuICAgIG9ucmVzdW1lPzogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPbk1hcmtIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHNwb2tlbiB1dHRlcmFuY2UgcmVhY2hlcyBhIG5hbWVkIFwibWFya1wiIHRhZyBpbiBTU01MLlxuICAgICAqIFtTU01MXSBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25Cb3VuZGFyeUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgc3Bva2VuIHV0dGVyYW5jZSByZWFjaGVzIGEgd29yZCBvciBzZW50ZW5jZSBib3VuZGFyeS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9uYm91bmRhcnk/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgKSB7XG4gICAgdGhpcy5pbnRlcm5hbCA9IHdpbmRvdy5zcGVlY2hTeW50aGVzaXM7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICAgIGlmICh0eXBlb2Ygdm9pY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmludGVybmFsXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCd2b2ljZXNjaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZvaWNlID0gdGhpcy5pbnRlcm5hbFxuICAgICAgICAgICAgLmdldFZvaWNlcygpLmZpbmQodiA9PiB2Lm5hbWUgPT09IHZvaWNlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZvaWNlID0gdm9pY2U7XG4gICAgfVxuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgICB0aGlzLl9yYXRlID0gcmF0ZTtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICAgIHRoaXMuX29uc3RhcnQgPSBvbnN0YXJ0O1xuICAgIHRoaXMuX29uZW5kID0gb25lbmQ7XG4gICAgdGhpcy5fb25lcnJvciA9IG9uZXJyb3I7XG4gICAgdGhpcy5fb25wYXVzZSA9IG9ucGF1c2U7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgICB0aGlzLl9vbm1hcmsgPSBvbm1hcms7XG4gICAgdGhpcy5fb25ib3VuZGFyeSA9IG9uYm91bmRhcnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBmb3IgdGhlIHV0dGVyYW5jZSxcbiAgICogdXNpbmcgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLlxuICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgKiBidXQgd2lsbCBkZWZhdWx0IHRvIHVzZSB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGh0bWwgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGFuZCBhc3NvY2lhdGVkIGhpZXJhcmNoeS5cbiAgICogVGhpcyBkZWZhdWx0IHZhbHVlIGlzIGNvbXB1dGVkIGFuZCB1c2VkIHdoZW4gdGhlIGlucHV0IHJlcXVlc3Qgb3BlbnMgYSBjb25uZWN0aW9uXG4gICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZyB8fCB0aGlzLl9jb25maWcubGFuZztcbiAgfVxuXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICogV2hlbiBhIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBvYmplY3QgaXMgY3JlYXRlZCB0aGlzIGF0dHJpYnV0ZSBtdXN0IGJlIGluaXRpYWxpemVkIHRvIG51bGwuXG4gICAqIElmLCBhdCB0aGUgdGltZSBvZiB0aGUgc3BlYWsoKSBtZXRob2QgY2FsbCxcbiAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICogdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSB0aGF0IHZvaWNlLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyB1bnNldCBvciBudWxsIGF0IHRoZSB0aW1lIG9mIHRoZSBzcGVhaygpXG4gICAqIG1ldGhvZCBjYWxsLCB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIGEgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlLlxuICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAqIGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBzcGVlY2ggc2VydmljZSBhbmQgY2FuIGluY29ycG9yYXRlIGVuZCB1c2VyIGNob2ljZXMgdmlhIGludGVyZmFjZXNcbiAgICogcHJvdmlkZWQgYnkgdGhlIHVzZXIgYWdlbnQgc3VjaCBhcyBicm93c2VyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy5cbiAgICovXG4gIGdldCB2b2ljZSgpOiBTcGVlY2hTeW50aGVzaXNWb2ljZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvaWNlIHx8IHRoaXMuX2NvbmZpZy52b2ljZTtcbiAgfVxuICBzZXQgdm9pY2Uodm9pY2U6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlKSB7XG4gICAgdGhpcy5fdm9pY2UgPSB2b2ljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHZvbHVtZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHZvbHVtZSBhbmQgMSB0aGUgaGlnaGVzdCB2b2x1bWUsXG4gICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgdm9sdW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvbHVtZSB8fCB0aGlzLl9jb25maWcudm9sdW1lO1xuICB9XG5cbiAgc2V0IHZvbHVtZSh2b2x1bWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHJhdGUgZm9yIHRoZSB1dHRlcmFuY2UuXG4gICAqIEl0IGlzIHJlbGF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhdGUgZm9yIHRoaXMgdm9pY2UuXG4gICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAqICh3aGljaCBzaG91bGQgY29ycmVzcG9uZCB0byBhIG5vcm1hbCBzcGVha2luZyByYXRlKS5cbiAgICogMiBpcyB0d2ljZSBhcyBmYXN0LCBhbmQgMC41IGlzIGhhbGYgYXMgZmFzdC4gVmFsdWVzIGJlbG93IDAuMSBvciBhYm92ZSAxMCBhcmUgc3RyaWN0bHkgZGlzYWxsb3dlZCxcbiAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgKiBmb3IgZXhhbXBsZSwgYSBwYXJ0aWN1bGFyIHZvaWNlIG1heSBub3QgYWN0dWFsbHkgc3BlYWsgZmFzdGVyIHRoYW4gMyB0aW1lcyBub3JtYWxcbiAgICogZXZlbiBpZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGxhcmdlciB0aGFuIDMuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcmF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yYXRlIHx8IHRoaXMuX2NvbmZpZy5yYXRlO1xuICB9XG5cbiAgc2V0IHJhdGUocmF0ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcmF0ZSA9IHJhdGU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMiBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHBpdGNoIGFuZCAyIHRoZSBoaWdoZXN0IHBpdGNoLlxuICAgKiAxIGNvcnJlc3BvbmRzIHRvIHRoZSBkZWZhdWx0IHBpdGNoIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBvciBzcGVjaWZpYyB2b2ljZS5cbiAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcGl0Y2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGl0Y2ggfHwgdGhpcy5fY29uZmlnLnBpdGNoO1xuICB9XG5cbiAgc2V0IHBpdGNoKHBpdGNoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyB1dHRlcmFuY2UgaGFzIGJlZ3VuIHRvIGJlIHNwb2tlbi5cbiAgICovXG4gIGdldCBvbnN0YXJ0KCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uc3RhcnQgfHwgdGhpcy5fY29uZmlnLm9uc3RhcnQ7XG4gIH1cblxuICBzZXQgb25zdGFydChvbnN0YXJ0OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIpIHtcbiAgICB0aGlzLl9vbnN0YXJ0ID0gb25zdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgKiB0aGUgZXJyb3IgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9uZW5kKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZW5kIHx8IHRoaXMuX2NvbmZpZy5vbmVuZDtcbiAgfVxuXG4gIHNldCBvbmVuZChvbmVuZDogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25lbmQgPSBvbmVuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgdGhhdCBwcmV2ZW50ZWQgc3VjY2Vzc2Z1bCBzcGVha2luZyBvZiB0aGlzIHV0dGVyYW5jZS5cbiAgICogSWYgdGhpcyBldmVudCBmaXJlcywgdGhlIGVuZCBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAqL1xuICBnZXQgb25lcnJvcigpOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZXJyb3IgfHwgdGhpcy5fY29uZmlnLm9uZXJyb3I7XG4gIH1cblxuICBzZXQgb25lcnJvcihvbmVycm9yOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uZXJyb3IgPSBvbmVycm9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHBhdXNlZCBtaWQtdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9ucGF1c2UoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25wYXVzZSB8fCB0aGlzLl9jb25maWcub25wYXVzZTtcbiAgfVxuXG4gIHNldCBvbnBhdXNlKG9ucGF1c2U6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ucGF1c2UgPSBvbnBhdXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAqIEFkZGluZyB0aGUgdXR0ZXJhbmNlIHRvIHRoZSBxdWV1ZSB3aGlsZSB0aGUgZ2xvYmFsIFNwZWVjaFN5bnRoZXNpcyBpbnN0YW5jZSBpcyBpbiB0aGUgcGF1c2VkIHN0YXRlLFxuICAgKiBhbmQgdGhlbiBjYWxsaW5nIHRoZSByZXN1bWUgbWV0aG9kIGRvZXMgbm90IGNhdXNlIHRoZSByZXN1bWUgZXZlbnQgdG8gYmUgZmlyZWQsXG4gICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgKi9cbiAgZ2V0IG9ucmVzdW1lKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ucmVzdW1lIHx8IHRoaXMuX2NvbmZpZy5vbnJlc3VtZTtcbiAgfVxuXG4gIHNldCBvbnJlc3VtZShvbnJlc3VtZTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSBuYW1lZCBcIm1hcmtcIiB0YWcgaW4gU1NNTC5cbiAgICogW1NTTUxdIFRoZSB1c2VyIGFnZW50IG11c3QgZmlyZSB0aGlzIGV2ZW50IGlmIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBwcm92aWRlcyB0aGUgZXZlbnQuXG4gICAqL1xuICBnZXQgb25tYXJrKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ubWFyayB8fCB0aGlzLl9jb25maWcub25tYXJrO1xuICB9XG5cbiAgc2V0IG9ubWFyayhvbm1hcms6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ubWFyayA9IG9ubWFyaztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSB3b3JkIG9yIHNlbnRlbmNlIGJvdW5kYXJ5LlxuICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgKi9cbiAgZ2V0IG9uYm91bmRhcnkoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25ib3VuZGFyeSB8fCB0aGlzLl9jb25maWcub25ib3VuZGFyeTtcbiAgfVxuXG4gIHNldCBvbmJvdW5kYXJ5KG9uYm91bmRhcnk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uYm91bmRhcnkgPSBvbmJvdW5kYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgdGV4dCB0byBiZSBzeW50aGVzaXplZCBhbmQgc3Bva2VuIGZvciB0aGlzIHV0dGVyYW5jZS5cbiAgICogVGhpcyBtYXkgYmUgZWl0aGVyIHBsYWluIHRleHQgb3IgYSBjb21wbGV0ZSwgd2VsbC1mb3JtZWQgU1NNTCBkb2N1bWVudC5cbiAgICogW1NTTUxdIEZvciBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBTU01MLFxuICAgKiBvciBvbmx5IHN1cHBvcnQgY2VydGFpbiB0YWdzLCB0aGUgdXNlciBhZ2VudCBvciBzcGVlY2ggZW5naW5lIG11c3Qgc3RyaXAgYXdheVxuICAgKiB0aGUgdGFncyB0aGV5IGRvIG5vdCBzdXBwb3J0IGFuZCBzcGVhayB0aGUgdGV4dC4gVGhlcmUgbWF5IGJlIGEgbWF4aW11bSBsZW5ndGggb2YgdGhlIHRleHQsXG4gICAqIGl0IG1heSBiZSBsaW1pdGVkIHRvIDMyLDc2NyBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcHVibGljIHRleHQodGV4dDogc3RyaW5nKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHtcbiAgICBjb25zdCB1dHRlcmFuY2UgPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKHRleHQpO1xuXG4gICAgdXR0ZXJhbmNlLmxhbmcgICAgICAgPSB0aGlzLmxhbmc7XG4gICAgdXR0ZXJhbmNlLnZvaWNlICAgICAgPSB0aGlzLnZvaWNlO1xuICAgIHV0dGVyYW5jZS52b2x1bWUgICAgID0gdGhpcy52b2x1bWU7XG4gICAgdXR0ZXJhbmNlLnJhdGUgICAgICAgPSB0aGlzLnJhdGU7XG4gICAgdXR0ZXJhbmNlLnBpdGNoICAgICAgPSB0aGlzLnBpdGNoO1xuICAgIHV0dGVyYW5jZS5vbnN0YXJ0ICAgID0gdGhpcy5vbnN0YXJ0O1xuICAgIHV0dGVyYW5jZS5vbmVuZCAgICAgID0gdGhpcy5vbmVuZDtcbiAgICB1dHRlcmFuY2Uub25lcnJvciAgICA9IHRoaXMub25lcnJvcjtcbiAgICB1dHRlcmFuY2Uub25wYXVzZSAgICA9IHRoaXMub25wYXVzZTtcbiAgICB1dHRlcmFuY2Uub25yZXN1bWUgICA9IHRoaXMub25yZXN1bWU7XG4gICAgdXR0ZXJhbmNlLm9ubWFyayAgICAgPSB0aGlzLm9ubWFyaztcbiAgICB1dHRlcmFuY2Uub25ib3VuZGFyeSA9IHRoaXMub25ib3VuZGFyeTtcblxuICAgIHJldHVybiB1dHRlcmFuY2U7XG4gIH1cbn1cbiJdfQ== |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { Injectable } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { NgModule } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /* |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /** |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /* tslint:disable */ |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { InjectionToken } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -102,6 +102,13 @@ import { Injectable, Optional, Inject } from '@angular/core'; | ||
this.internal | ||
.addEventListener('voiceschanged', function () { | ||
.addEventListener('voiceschanged', (/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this._voice = _this.internal | ||
.getVoices().find(function (v) { return v.name === voice; }); | ||
}); | ||
.getVoices().find((/** | ||
* @param {?} v | ||
* @return {?} | ||
*/ | ||
function (v) { return v.name === voice; })); | ||
})); | ||
} | ||
@@ -586,2 +593,2 @@ else { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXN5bnRoZXNpcy11dHRlcmFuY2UtZmFjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGthbWlhenlhL25neC1zcGVlY2gtc3ludGhlc2lzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NwZWVjaC1zeW50aGVzaXMtdXR0ZXJhbmNlLWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixNQUFNLEdBRVAsTUFBTSxZQUFZLENBQUM7Ozs7OztBQUdwQjtJQXlCRSxnREFFRSxNQUF1QyxFQUV2QztJQUNBOzs7Ozs7O09BT0c7SUFDSCxJQUFhLEVBRWI7SUFDQTs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBcUMsRUFFckM7SUFDQTs7OztPQUlHO0lBQ0gsTUFBZSxFQUVmO0lBQ0E7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQWEsRUFFYjtJQUNBOzs7Ozs7T0FNRztJQUNILEtBQWMsRUFFZDtJQUNBOztPQUVHO0lBQ0gsT0FBOEMsRUFFOUM7SUFDQTs7O09BR0c7SUFDSCxLQUE0QyxFQUU1QztJQUNBOzs7T0FHRztJQUNILE9BQW1ELEVBRW5EO0lBQ0E7O09BRUc7SUFDSCxPQUE4QyxFQUU5QztJQUNBOzs7OztPQUtHO0lBQ0gsUUFBK0MsRUFFL0M7SUFDQTs7O09BR0c7SUFDSCxNQUE2QyxFQUU3QztJQUNBOzs7T0FHRztJQUNILFVBQWlEO1FBNUduRCxpQkFxSUM7UUF0QkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQ3ZD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QyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Z0JBOVZGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0RBd0JJLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTs2Q0FHekIsUUFBUSxZQUFJLE1BQU0sU0FBQyxJQUFJO2dEQVd2QixRQUFRLFlBQUksTUFBTSxTQUFDLEtBQUs7NkNBY3hCLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTs2Q0FRekIsUUFBUSxZQUFJLE1BQU0sU0FBQyxJQUFJOzZDQWN2QixRQUFRLFlBQUksTUFBTSxTQUFDLEtBQUs7Z0RBVXhCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYztnREFNakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxZQUFZO2dEQU8vQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7Z0RBT2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYztnREFNakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxlQUFlO2dEQVNsQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7Z0RBT2hDLFFBQVEsWUFBSSxNQUFNLFNBQUMsaUJBQWlCOzs7aURBdEp6QztDQXFYQyxBQS9WRCxJQStWQztTQTVWWSxzQ0FBc0M7Ozs7OztJQUNqRCx5REFBaUQ7Ozs7O0lBQ2pELHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXNDOzs7OztJQUN0Qyx5REFBeUI7Ozs7O0lBQ3pCLHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXdCOzs7OztJQUN4QiwwREFBd0Q7Ozs7O0lBQ3hELHdEQUFzRDs7Ozs7SUFDdEQsMERBQTZEOzs7OztJQUM3RCwwREFBd0Q7Ozs7O0lBQ3hELDJEQUF5RDs7Ozs7SUFDekQseURBQXVEOzs7OztJQUN2RCw2REFBMkQ7Ozs7Ozs7SUFPM0QsMERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBMYW5nLFxuICBWb2ljZSxcbiAgVm9sdW1lLFxuICBSYXRlLFxuICBQaXRjaCxcbiAgT25TdGFydEhhbmRsZXIsXG4gIE9uRW5kSGFuZGxlcixcbiAgT25FcnJvckhhbmRsZXIsXG4gIE9uUGF1c2VIYW5kbGVyLFxuICBPblJlc3VtZUhhbmRsZXIsXG4gIE9uTWFya0hhbmRsZXIsXG4gIE9uQm91bmRhcnlIYW5kbGVyLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG4gIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcbiAgQ29uZmlnLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcbn0gZnJvbSAnLi4vY29uZmlncyc7XG5pbXBvcnQgeyBTcGVlY2hTeW50aGVzaXNWb2ljZSB9IGZyb20gJy4uL2FkYXB0ZXJzL2FkYXB0ZXInO1xuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VGYWN0b3J5U2VydmljZSB7XG4gIHByaXZhdGUgX2NvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZztcbiAgcHJpdmF0ZSBfbGFuZz86IHN0cmluZztcbiAgcHJpdmF0ZSBfdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZTtcbiAgcHJpdmF0ZSBfdm9sdW1lPzogbnVtYmVyO1xuICBwcml2YXRlIF9yYXRlPzogbnVtYmVyO1xuICBwcml2YXRlIF9waXRjaD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfb25zdGFydD86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25yZXN1bWU/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25ib3VuZGFyeT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcblxuXG4gIC8qKlxuICAgKiBJZiBTcGVlY2hTeW50aGVzaXMgQVBJIGlzIHN1cHBvcnRlZFxuICAgKiBieSB0aGUgYnJvd3NlciBpbnN0YW5jZSB3aWxsIGJlIGluY2x1ZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbDogU3BlZWNoU3ludGhlc2lzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ29uZmlnKVxuICAgIGNvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTGFuZylcbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGZvciB0aGUgdXR0ZXJhbmNlLFxuICAgICAqIHVzaW5nIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgICAqIGJ1dCB3aWxsIGRlZmF1bHQgdG8gdXNlIHRoZSBsYW5ndWFnZSBvZiB0aGUgaHRtbCBkb2N1bWVudCByb290IGVsZW1lbnQgYW5kIGFzc29jaWF0ZWQgaGllcmFyY2h5LlxuICAgICAqIFRoaXMgZGVmYXVsdCB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgdXNlZCB3aGVuIHRoZSBpbnB1dCByZXF1ZXN0IG9wZW5zIGEgY29ubmVjdGlvblxuICAgICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgICAqL1xuICAgIGxhbmc/OiBzdHJpbmcsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZvaWNlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICAgKiBXaGVuIGEgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIG9iamVjdCBpcyBjcmVhdGVkIHRoaXMgYXR0cmlidXRlIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC5cbiAgICAgKiBJZiwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKCkgbWV0aG9kIGNhbGwsXG4gICAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICAgKiB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIHRoYXQgdm9pY2UuIElmIHRoaXMgYXR0cmlidXRlIGlzIHVuc2V0IG9yIG51bGwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKClcbiAgICAgKiBtZXRob2QgY2FsbCwgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSBhIHVzZXIgYWdlbnQgZGVmYXVsdCB2b2ljZS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAgICogY2FuIGJlIGEgbG9jYWwgb3IgcmVtb3RlIHNwZWVjaCBzZXJ2aWNlIGFuZCBjYW4gaW5jb3Jwb3JhdGUgZW5kIHVzZXIgY2hvaWNlcyB2aWEgaW50ZXJmYWNlc1xuICAgICAqIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGFnZW50IHN1Y2ggYXMgYnJvd3NlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZSB8IHN0cmluZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVm9sdW1lKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgdm9sdW1lIGZvciB0aGUgdXR0ZXJhbmNlLlxuICAgICAqIEl0IHJhbmdlcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVzaXZlLCB3aXRoIDAgYmVpbmcgdGhlIGxvd2VzdCB2b2x1bWUgYW5kIDEgdGhlIGhpZ2hlc3Qgdm9sdW1lLFxuICAgICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgdm9sdW1lPzogbnVtYmVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSYXRlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgcmF0ZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCBpcyByZWxhdGl2ZSB0byB0aGUgZGVmYXVsdCByYXRlIGZvciB0aGlzIHZvaWNlLlxuICAgICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAgICogKHdoaWNoIHNob3VsZCBjb3JyZXNwb25kIHRvIGEgbm9ybWFsIHNwZWFraW5nIHJhdGUpLlxuICAgICAqIDIgaXMgdHdpY2UgYXMgZmFzdCwgYW5kIDAuNSBpcyBoYWxmIGFzIGZhc3QuIFZhbHVlcyBiZWxvdyAwLjEgb3IgYWJvdmUgMTAgYXJlIHN0cmljdGx5IGRpc2FsbG93ZWQsXG4gICAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgICAqIGZvciBleGFtcGxlLCBhIHBhcnRpY3VsYXIgdm9pY2UgbWF5IG5vdCBhY3R1YWxseSBzcGVhayBmYXN0ZXIgdGhhbiAzIHRpbWVzIG5vcm1hbFxuICAgICAqIGV2ZW4gaWYgeW91IHNwZWNpZnkgYSB2YWx1ZSBsYXJnZXIgdGhhbiAzLlxuICAgICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgcmF0ZT86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUGl0Y2gpXG4gICAgLyoqXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCByYW5nZXMgYmV0d2VlbiAwIGFuZCAyIGluY2x1c2l2ZSwgd2l0aCAwIGJlaW5nIHRoZSBsb3dlc3QgcGl0Y2ggYW5kIDIgdGhlIGhpZ2hlc3QgcGl0Y2guXG4gICAgICogMSBjb3JyZXNwb25kcyB0byB0aGUgZGVmYXVsdCBwaXRjaCBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgb3Igc3BlY2lmaWMgdm9pY2UuXG4gICAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAgICogSWYgU1NNTCBpcyB1c2VkLCB0aGlzIHZhbHVlIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSBwcm9zb2R5IHRhZ3MgaW4gdGhlIG1hcmt1cC5cbiAgICAgKi9cbiAgICBwaXRjaD86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25TdGFydEhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGlzIHV0dGVyYW5jZSBoYXMgYmVndW4gdG8gYmUgc3Bva2VuLlxuICAgICAqL1xuICAgIG9uc3RhcnQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRW5kSGFuZGxlcilcbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgICAqIHRoZSBlcnJvciBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRXJyb3JIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB0aGF0IHByZXZlbnRlZCBzdWNjZXNzZnVsIHNwZWFraW5nIG9mIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqIElmIHRoaXMgZXZlbnQgZmlyZXMsIHRoZSBlbmQgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqL1xuICAgIG9uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25QYXVzZUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiBhbmQgaWYgdGhpcyB1dHRlcmFuY2UgaXMgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25SZXN1bWVIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICogQWRkaW5nIHRoZSB1dHRlcmFuY2UgdG8gdGhlIHF1ZXVlIHdoaWxlIHRoZSBnbG9iYWwgU3BlZWNoU3ludGhlc2lzIGluc3RhbmNlIGlzIGluIHRoZSBwYXVzZWQgc3RhdGUsXG4gICAgICogYW5kIHRoZW4gY2FsbGluZyB0aGUgcmVzdW1lIG1ldGhvZCBkb2VzIG5vdCBjYXVzZSB0aGUgcmVzdW1lIGV2ZW50IHRvIGJlIGZpcmVkLFxuICAgICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgICAqL1xuICAgIG9ucmVzdW1lPzogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPbk1hcmtIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHNwb2tlbiB1dHRlcmFuY2UgcmVhY2hlcyBhIG5hbWVkIFwibWFya1wiIHRhZyBpbiBTU01MLlxuICAgICAqIFtTU01MXSBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25Cb3VuZGFyeUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgc3Bva2VuIHV0dGVyYW5jZSByZWFjaGVzIGEgd29yZCBvciBzZW50ZW5jZSBib3VuZGFyeS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9uYm91bmRhcnk/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgKSB7XG4gICAgdGhpcy5pbnRlcm5hbCA9IHdpbmRvdy5zcGVlY2hTeW50aGVzaXM7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICAgIGlmICh0eXBlb2Ygdm9pY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmludGVybmFsXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCd2b2ljZXNjaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZvaWNlID0gdGhpcy5pbnRlcm5hbFxuICAgICAgICAgICAgLmdldFZvaWNlcygpLmZpbmQodiA9PiB2Lm5hbWUgPT09IHZvaWNlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZvaWNlID0gdm9pY2U7XG4gICAgfVxuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgICB0aGlzLl9yYXRlID0gcmF0ZTtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICAgIHRoaXMuX29uc3RhcnQgPSBvbnN0YXJ0O1xuICAgIHRoaXMuX29uZW5kID0gb25lbmQ7XG4gICAgdGhpcy5fb25lcnJvciA9IG9uZXJyb3I7XG4gICAgdGhpcy5fb25wYXVzZSA9IG9ucGF1c2U7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgICB0aGlzLl9vbm1hcmsgPSBvbm1hcms7XG4gICAgdGhpcy5fb25ib3VuZGFyeSA9IG9uYm91bmRhcnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBmb3IgdGhlIHV0dGVyYW5jZSxcbiAgICogdXNpbmcgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLlxuICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgKiBidXQgd2lsbCBkZWZhdWx0IHRvIHVzZSB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGh0bWwgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGFuZCBhc3NvY2lhdGVkIGhpZXJhcmNoeS5cbiAgICogVGhpcyBkZWZhdWx0IHZhbHVlIGlzIGNvbXB1dGVkIGFuZCB1c2VkIHdoZW4gdGhlIGlucHV0IHJlcXVlc3Qgb3BlbnMgYSBjb25uZWN0aW9uXG4gICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZyB8fCB0aGlzLl9jb25maWcubGFuZztcbiAgfVxuXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICogV2hlbiBhIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBvYmplY3QgaXMgY3JlYXRlZCB0aGlzIGF0dHJpYnV0ZSBtdXN0IGJlIGluaXRpYWxpemVkIHRvIG51bGwuXG4gICAqIElmLCBhdCB0aGUgdGltZSBvZiB0aGUgc3BlYWsoKSBtZXRob2QgY2FsbCxcbiAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICogdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSB0aGF0IHZvaWNlLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyB1bnNldCBvciBudWxsIGF0IHRoZSB0aW1lIG9mIHRoZSBzcGVhaygpXG4gICAqIG1ldGhvZCBjYWxsLCB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIGEgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlLlxuICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAqIGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBzcGVlY2ggc2VydmljZSBhbmQgY2FuIGluY29ycG9yYXRlIGVuZCB1c2VyIGNob2ljZXMgdmlhIGludGVyZmFjZXNcbiAgICogcHJvdmlkZWQgYnkgdGhlIHVzZXIgYWdlbnQgc3VjaCBhcyBicm93c2VyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy5cbiAgICovXG4gIGdldCB2b2ljZSgpOiBTcGVlY2hTeW50aGVzaXNWb2ljZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvaWNlIHx8IHRoaXMuX2NvbmZpZy52b2ljZTtcbiAgfVxuICBzZXQgdm9pY2Uodm9pY2U6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlKSB7XG4gICAgdGhpcy5fdm9pY2UgPSB2b2ljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHZvbHVtZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHZvbHVtZSBhbmQgMSB0aGUgaGlnaGVzdCB2b2x1bWUsXG4gICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgdm9sdW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvbHVtZSB8fCB0aGlzLl9jb25maWcudm9sdW1lO1xuICB9XG5cbiAgc2V0IHZvbHVtZSh2b2x1bWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHJhdGUgZm9yIHRoZSB1dHRlcmFuY2UuXG4gICAqIEl0IGlzIHJlbGF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhdGUgZm9yIHRoaXMgdm9pY2UuXG4gICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAqICh3aGljaCBzaG91bGQgY29ycmVzcG9uZCB0byBhIG5vcm1hbCBzcGVha2luZyByYXRlKS5cbiAgICogMiBpcyB0d2ljZSBhcyBmYXN0LCBhbmQgMC41IGlzIGhhbGYgYXMgZmFzdC4gVmFsdWVzIGJlbG93IDAuMSBvciBhYm92ZSAxMCBhcmUgc3RyaWN0bHkgZGlzYWxsb3dlZCxcbiAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgKiBmb3IgZXhhbXBsZSwgYSBwYXJ0aWN1bGFyIHZvaWNlIG1heSBub3QgYWN0dWFsbHkgc3BlYWsgZmFzdGVyIHRoYW4gMyB0aW1lcyBub3JtYWxcbiAgICogZXZlbiBpZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGxhcmdlciB0aGFuIDMuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcmF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yYXRlIHx8IHRoaXMuX2NvbmZpZy5yYXRlO1xuICB9XG5cbiAgc2V0IHJhdGUocmF0ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcmF0ZSA9IHJhdGU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMiBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHBpdGNoIGFuZCAyIHRoZSBoaWdoZXN0IHBpdGNoLlxuICAgKiAxIGNvcnJlc3BvbmRzIHRvIHRoZSBkZWZhdWx0IHBpdGNoIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBvciBzcGVjaWZpYyB2b2ljZS5cbiAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcGl0Y2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGl0Y2ggfHwgdGhpcy5fY29uZmlnLnBpdGNoO1xuICB9XG5cbiAgc2V0IHBpdGNoKHBpdGNoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyB1dHRlcmFuY2UgaGFzIGJlZ3VuIHRvIGJlIHNwb2tlbi5cbiAgICovXG4gIGdldCBvbnN0YXJ0KCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uc3RhcnQgfHwgdGhpcy5fY29uZmlnLm9uc3RhcnQ7XG4gIH1cblxuICBzZXQgb25zdGFydChvbnN0YXJ0OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIpIHtcbiAgICB0aGlzLl9vbnN0YXJ0ID0gb25zdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgKiB0aGUgZXJyb3IgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9uZW5kKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZW5kIHx8IHRoaXMuX2NvbmZpZy5vbmVuZDtcbiAgfVxuXG4gIHNldCBvbmVuZChvbmVuZDogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25lbmQgPSBvbmVuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgdGhhdCBwcmV2ZW50ZWQgc3VjY2Vzc2Z1bCBzcGVha2luZyBvZiB0aGlzIHV0dGVyYW5jZS5cbiAgICogSWYgdGhpcyBldmVudCBmaXJlcywgdGhlIGVuZCBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAqL1xuICBnZXQgb25lcnJvcigpOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZXJyb3IgfHwgdGhpcy5fY29uZmlnLm9uZXJyb3I7XG4gIH1cblxuICBzZXQgb25lcnJvcihvbmVycm9yOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uZXJyb3IgPSBvbmVycm9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHBhdXNlZCBtaWQtdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9ucGF1c2UoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25wYXVzZSB8fCB0aGlzLl9jb25maWcub25wYXVzZTtcbiAgfVxuXG4gIHNldCBvbnBhdXNlKG9ucGF1c2U6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ucGF1c2UgPSBvbnBhdXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAqIEFkZGluZyB0aGUgdXR0ZXJhbmNlIHRvIHRoZSBxdWV1ZSB3aGlsZSB0aGUgZ2xvYmFsIFNwZWVjaFN5bnRoZXNpcyBpbnN0YW5jZSBpcyBpbiB0aGUgcGF1c2VkIHN0YXRlLFxuICAgKiBhbmQgdGhlbiBjYWxsaW5nIHRoZSByZXN1bWUgbWV0aG9kIGRvZXMgbm90IGNhdXNlIHRoZSByZXN1bWUgZXZlbnQgdG8gYmUgZmlyZWQsXG4gICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgKi9cbiAgZ2V0IG9ucmVzdW1lKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ucmVzdW1lIHx8IHRoaXMuX2NvbmZpZy5vbnJlc3VtZTtcbiAgfVxuXG4gIHNldCBvbnJlc3VtZShvbnJlc3VtZTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSBuYW1lZCBcIm1hcmtcIiB0YWcgaW4gU1NNTC5cbiAgICogW1NTTUxdIFRoZSB1c2VyIGFnZW50IG11c3QgZmlyZSB0aGlzIGV2ZW50IGlmIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBwcm92aWRlcyB0aGUgZXZlbnQuXG4gICAqL1xuICBnZXQgb25tYXJrKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ubWFyayB8fCB0aGlzLl9jb25maWcub25tYXJrO1xuICB9XG5cbiAgc2V0IG9ubWFyayhvbm1hcms6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ubWFyayA9IG9ubWFyaztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSB3b3JkIG9yIHNlbnRlbmNlIGJvdW5kYXJ5LlxuICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgKi9cbiAgZ2V0IG9uYm91bmRhcnkoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25ib3VuZGFyeSB8fCB0aGlzLl9jb25maWcub25ib3VuZGFyeTtcbiAgfVxuXG4gIHNldCBvbmJvdW5kYXJ5KG9uYm91bmRhcnk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uYm91bmRhcnkgPSBvbmJvdW5kYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgdGV4dCB0byBiZSBzeW50aGVzaXplZCBhbmQgc3Bva2VuIGZvciB0aGlzIHV0dGVyYW5jZS5cbiAgICogVGhpcyBtYXkgYmUgZWl0aGVyIHBsYWluIHRleHQgb3IgYSBjb21wbGV0ZSwgd2VsbC1mb3JtZWQgU1NNTCBkb2N1bWVudC5cbiAgICogW1NTTUxdIEZvciBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBTU01MLFxuICAgKiBvciBvbmx5IHN1cHBvcnQgY2VydGFpbiB0YWdzLCB0aGUgdXNlciBhZ2VudCBvciBzcGVlY2ggZW5naW5lIG11c3Qgc3RyaXAgYXdheVxuICAgKiB0aGUgdGFncyB0aGV5IGRvIG5vdCBzdXBwb3J0IGFuZCBzcGVhayB0aGUgdGV4dC4gVGhlcmUgbWF5IGJlIGEgbWF4aW11bSBsZW5ndGggb2YgdGhlIHRleHQsXG4gICAqIGl0IG1heSBiZSBsaW1pdGVkIHRvIDMyLDc2NyBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcHVibGljIHRleHQodGV4dDogc3RyaW5nKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHtcbiAgICBjb25zdCB1dHRlcmFuY2UgPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKHRleHQpO1xuXG4gICAgdXR0ZXJhbmNlLmxhbmcgICAgICAgPSB0aGlzLmxhbmc7XG4gICAgdXR0ZXJhbmNlLnZvaWNlICAgICAgPSB0aGlzLnZvaWNlO1xuICAgIHV0dGVyYW5jZS52b2x1bWUgICAgID0gdGhpcy52b2x1bWU7XG4gICAgdXR0ZXJhbmNlLnJhdGUgICAgICAgPSB0aGlzLnJhdGU7XG4gICAgdXR0ZXJhbmNlLnBpdGNoICAgICAgPSB0aGlzLnBpdGNoO1xuICAgIHV0dGVyYW5jZS5vbnN0YXJ0ICAgID0gdGhpcy5vbnN0YXJ0O1xuICAgIHV0dGVyYW5jZS5vbmVuZCAgICAgID0gdGhpcy5vbmVuZDtcbiAgICB1dHRlcmFuY2Uub25lcnJvciAgICA9IHRoaXMub25lcnJvcjtcbiAgICB1dHRlcmFuY2Uub25wYXVzZSAgICA9IHRoaXMub25wYXVzZTtcbiAgICB1dHRlcmFuY2Uub25yZXN1bWUgICA9IHRoaXMub25yZXN1bWU7XG4gICAgdXR0ZXJhbmNlLm9ubWFyayAgICAgPSB0aGlzLm9ubWFyaztcbiAgICB1dHRlcmFuY2Uub25ib3VuZGFyeSA9IHRoaXMub25ib3VuZGFyeTtcblxuICAgIHJldHVybiB1dHRlcmFuY2U7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXN5bnRoZXNpcy11dHRlcmFuY2UtZmFjdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGthbWlhenlhL25neC1zcGVlY2gtc3ludGhlc2lzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NwZWVjaC1zeW50aGVzaXMtdXR0ZXJhbmNlLWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixNQUFNLEdBRVAsTUFBTSxZQUFZLENBQUM7Ozs7OztBQUdwQjtJQXlCRSxnREFFRSxNQUF1QyxFQUV2QztJQUNBOzs7Ozs7O09BT0c7SUFDSCxJQUFhLEVBRWI7SUFDQTs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBcUMsRUFFckM7SUFDQTs7OztPQUlHO0lBQ0gsTUFBZSxFQUVmO0lBQ0E7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQWEsRUFFYjtJQUNBOzs7Ozs7T0FNRztJQUNILEtBQWMsRUFFZDtJQUNBOztPQUVHO0lBQ0gsT0FBOEMsRUFFOUM7SUFDQTs7O09BR0c7SUFDSCxLQUE0QyxFQUU1QztJQUNBOzs7T0FHRztJQUNILE9BQW1ELEVBRW5EO0lBQ0E7O09BRUc7SUFDSCxPQUE4QyxFQUU5QztJQUNBOzs7OztPQUtHO0lBQ0gsUUFBK0MsRUFFL0M7SUFDQTs7O09BR0c7SUFDSCxNQUE2QyxFQUU3QztJQUNBOzs7T0FHRztJQUNILFVBQWlEO1FBNUduRCxpQkFxSUM7UUF0QkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQ3ZD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QztRQUNuQyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Z0JBOVZGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0RBd0JJLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTs2Q0FHekIsUUFBUSxZQUFJLE1BQU0sU0FBQyxJQUFJO2dEQVd2QixRQUFRLFlBQUksTUFBTSxTQUFDLEtBQUs7NkNBY3hCLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTs2Q0FRekIsUUFBUSxZQUFJLE1BQU0sU0FBQyxJQUFJOzZDQWN2QixRQUFRLFlBQUksTUFBTSxTQUFDLEtBQUs7Z0RBVXhCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYztnREFNakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxZQUFZO2dEQU8vQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7Z0RBT2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYztnREFNakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxlQUFlO2dEQVNsQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7Z0RBT2hDLFFBQVEsWUFBSSxNQUFNLFNBQUMsaUJBQWlCOzs7aURBdEp6QztDQXFYQyxBQS9WRCxJQStWQztTQTVWWSxzQ0FBc0M7Ozs7OztJQUNqRCx5REFBaUQ7Ozs7O0lBQ2pELHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXNDOzs7OztJQUN0Qyx5REFBeUI7Ozs7O0lBQ3pCLHVEQUF1Qjs7Ozs7SUFDdkIsd0RBQXdCOzs7OztJQUN4QiwwREFBd0Q7Ozs7O0lBQ3hELHdEQUFzRDs7Ozs7SUFDdEQsMERBQTZEOzs7OztJQUM3RCwwREFBd0Q7Ozs7O0lBQ3hELDJEQUF5RDs7Ozs7SUFDekQseURBQXVEOzs7OztJQUN2RCw2REFBMkQ7Ozs7Ozs7SUFPM0QsMERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBMYW5nLFxuICBWb2ljZSxcbiAgVm9sdW1lLFxuICBSYXRlLFxuICBQaXRjaCxcbiAgT25TdGFydEhhbmRsZXIsXG4gIE9uRW5kSGFuZGxlcixcbiAgT25FcnJvckhhbmRsZXIsXG4gIE9uUGF1c2VIYW5kbGVyLFxuICBPblJlc3VtZUhhbmRsZXIsXG4gIE9uTWFya0hhbmRsZXIsXG4gIE9uQm91bmRhcnlIYW5kbGVyLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG4gIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcbiAgQ29uZmlnLFxuICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcbn0gZnJvbSAnLi4vY29uZmlncyc7XG5pbXBvcnQgeyBTcGVlY2hTeW50aGVzaXNWb2ljZSB9IGZyb20gJy4uL2FkYXB0ZXJzL2FkYXB0ZXInO1xuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VGYWN0b3J5U2VydmljZSB7XG4gIHByaXZhdGUgX2NvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZztcbiAgcHJpdmF0ZSBfbGFuZz86IHN0cmluZztcbiAgcHJpdmF0ZSBfdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZTtcbiAgcHJpdmF0ZSBfdm9sdW1lPzogbnVtYmVyO1xuICBwcml2YXRlIF9yYXRlPzogbnVtYmVyO1xuICBwcml2YXRlIF9waXRjaD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfb25zdGFydD86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25yZXN1bWU/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXI7XG4gIHByaXZhdGUgX29ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcbiAgcHJpdmF0ZSBfb25ib3VuZGFyeT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcjtcblxuXG4gIC8qKlxuICAgKiBJZiBTcGVlY2hTeW50aGVzaXMgQVBJIGlzIHN1cHBvcnRlZFxuICAgKiBieSB0aGUgYnJvd3NlciBpbnN0YW5jZSB3aWxsIGJlIGluY2x1ZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbDogU3BlZWNoU3ludGhlc2lzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ29uZmlnKVxuICAgIGNvbmZpZz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNvbmZpZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTGFuZylcbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGZvciB0aGUgdXR0ZXJhbmNlLFxuICAgICAqIHVzaW5nIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgICAqIGJ1dCB3aWxsIGRlZmF1bHQgdG8gdXNlIHRoZSBsYW5ndWFnZSBvZiB0aGUgaHRtbCBkb2N1bWVudCByb290IGVsZW1lbnQgYW5kIGFzc29jaWF0ZWQgaGllcmFyY2h5LlxuICAgICAqIFRoaXMgZGVmYXVsdCB2YWx1ZSBpcyBjb21wdXRlZCBhbmQgdXNlZCB3aGVuIHRoZSBpbnB1dCByZXF1ZXN0IG9wZW5zIGEgY29ubmVjdGlvblxuICAgICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgICAqL1xuICAgIGxhbmc/OiBzdHJpbmcsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZvaWNlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICAgKiBXaGVuIGEgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIG9iamVjdCBpcyBjcmVhdGVkIHRoaXMgYXR0cmlidXRlIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC5cbiAgICAgKiBJZiwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKCkgbWV0aG9kIGNhbGwsXG4gICAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICAgKiB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIHRoYXQgdm9pY2UuIElmIHRoaXMgYXR0cmlidXRlIGlzIHVuc2V0IG9yIG51bGwgYXQgdGhlIHRpbWUgb2YgdGhlIHNwZWFrKClcbiAgICAgKiBtZXRob2QgY2FsbCwgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSBhIHVzZXIgYWdlbnQgZGVmYXVsdCB2b2ljZS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAgICogY2FuIGJlIGEgbG9jYWwgb3IgcmVtb3RlIHNwZWVjaCBzZXJ2aWNlIGFuZCBjYW4gaW5jb3Jwb3JhdGUgZW5kIHVzZXIgY2hvaWNlcyB2aWEgaW50ZXJmYWNlc1xuICAgICAqIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGFnZW50IHN1Y2ggYXMgYnJvd3NlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgdm9pY2U/OiBTcGVlY2hTeW50aGVzaXNWb2ljZSB8IHN0cmluZyxcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVm9sdW1lKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgdm9sdW1lIGZvciB0aGUgdXR0ZXJhbmNlLlxuICAgICAqIEl0IHJhbmdlcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVzaXZlLCB3aXRoIDAgYmVpbmcgdGhlIGxvd2VzdCB2b2x1bWUgYW5kIDEgdGhlIGhpZ2hlc3Qgdm9sdW1lLFxuICAgICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgdm9sdW1lPzogbnVtYmVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSYXRlKVxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlYWtpbmcgcmF0ZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCBpcyByZWxhdGl2ZSB0byB0aGUgZGVmYXVsdCByYXRlIGZvciB0aGlzIHZvaWNlLlxuICAgICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAgICogKHdoaWNoIHNob3VsZCBjb3JyZXNwb25kIHRvIGEgbm9ybWFsIHNwZWFraW5nIHJhdGUpLlxuICAgICAqIDIgaXMgdHdpY2UgYXMgZmFzdCwgYW5kIDAuNSBpcyBoYWxmIGFzIGZhc3QuIFZhbHVlcyBiZWxvdyAwLjEgb3IgYWJvdmUgMTAgYXJlIHN0cmljdGx5IGRpc2FsbG93ZWQsXG4gICAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgICAqIGZvciBleGFtcGxlLCBhIHBhcnRpY3VsYXIgdm9pY2UgbWF5IG5vdCBhY3R1YWxseSBzcGVhayBmYXN0ZXIgdGhhbiAzIHRpbWVzIG5vcm1hbFxuICAgICAqIGV2ZW4gaWYgeW91IHNwZWNpZnkgYSB2YWx1ZSBsYXJnZXIgdGhhbiAzLlxuICAgICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAgICovXG4gICAgcmF0ZT86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUGl0Y2gpXG4gICAgLyoqXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICAgKiBJdCByYW5nZXMgYmV0d2VlbiAwIGFuZCAyIGluY2x1c2l2ZSwgd2l0aCAwIGJlaW5nIHRoZSBsb3dlc3QgcGl0Y2ggYW5kIDIgdGhlIGhpZ2hlc3QgcGl0Y2guXG4gICAgICogMSBjb3JyZXNwb25kcyB0byB0aGUgZGVmYXVsdCBwaXRjaCBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgb3Igc3BlY2lmaWMgdm9pY2UuXG4gICAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAgICogSWYgU1NNTCBpcyB1c2VkLCB0aGlzIHZhbHVlIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSBwcm9zb2R5IHRhZ3MgaW4gdGhlIG1hcmt1cC5cbiAgICAgKi9cbiAgICBwaXRjaD86IG51bWJlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25TdGFydEhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGlzIHV0dGVyYW5jZSBoYXMgYmVndW4gdG8gYmUgc3Bva2VuLlxuICAgICAqL1xuICAgIG9uc3RhcnQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRW5kSGFuZGxlcilcbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgICAqIHRoZSBlcnJvciBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25lbmQ/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9uRXJyb3JIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB0aGF0IHByZXZlbnRlZCBzdWNjZXNzZnVsIHNwZWFraW5nIG9mIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqIElmIHRoaXMgZXZlbnQgZmlyZXMsIHRoZSBlbmQgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgICAqL1xuICAgIG9uZXJyb3I/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25QYXVzZUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiBhbmQgaWYgdGhpcyB1dHRlcmFuY2UgaXMgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICovXG4gICAgb25wYXVzZT86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25SZXN1bWVIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAgICogQWRkaW5nIHRoZSB1dHRlcmFuY2UgdG8gdGhlIHF1ZXVlIHdoaWxlIHRoZSBnbG9iYWwgU3BlZWNoU3ludGhlc2lzIGluc3RhbmNlIGlzIGluIHRoZSBwYXVzZWQgc3RhdGUsXG4gICAgICogYW5kIHRoZW4gY2FsbGluZyB0aGUgcmVzdW1lIG1ldGhvZCBkb2VzIG5vdCBjYXVzZSB0aGUgcmVzdW1lIGV2ZW50IHRvIGJlIGZpcmVkLFxuICAgICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgICAqL1xuICAgIG9ucmVzdW1lPzogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyLFxuXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPbk1hcmtIYW5kbGVyKVxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHNwb2tlbiB1dHRlcmFuY2UgcmVhY2hlcyBhIG5hbWVkIFwibWFya1wiIHRhZyBpbiBTU01MLlxuICAgICAqIFtTU01MXSBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9ubWFyaz86IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcixcblxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT25Cb3VuZGFyeUhhbmRsZXIpXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgc3Bva2VuIHV0dGVyYW5jZSByZWFjaGVzIGEgd29yZCBvciBzZW50ZW5jZSBib3VuZGFyeS5cbiAgICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9uYm91bmRhcnk/OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIsXG5cbiAgKSB7XG4gICAgdGhpcy5pbnRlcm5hbCA9IHdpbmRvdy5zcGVlY2hTeW50aGVzaXM7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICAgIGlmICh0eXBlb2Ygdm9pY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmludGVybmFsXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCd2b2ljZXNjaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZvaWNlID0gdGhpcy5pbnRlcm5hbFxuICAgICAgICAgICAgLmdldFZvaWNlcygpLmZpbmQodiA9PiB2Lm5hbWUgPT09IHZvaWNlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZvaWNlID0gdm9pY2U7XG4gICAgfVxuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgICB0aGlzLl9yYXRlID0gcmF0ZTtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICAgIHRoaXMuX29uc3RhcnQgPSBvbnN0YXJ0O1xuICAgIHRoaXMuX29uZW5kID0gb25lbmQ7XG4gICAgdGhpcy5fb25lcnJvciA9IG9uZXJyb3I7XG4gICAgdGhpcy5fb25wYXVzZSA9IG9ucGF1c2U7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgICB0aGlzLl9vbm1hcmsgPSBvbm1hcms7XG4gICAgdGhpcy5fb25ib3VuZGFyeSA9IG9uYm91bmRhcnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBmb3IgdGhlIHV0dGVyYW5jZSxcbiAgICogdXNpbmcgYSB2YWxpZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLlxuICAgKiBbQkNQNDddIElmIHVuc2V0IGl0IHJlbWFpbnMgdW5zZXQgZm9yIGdldHRpbmcgaW4gc2NyaXB0LFxuICAgKiBidXQgd2lsbCBkZWZhdWx0IHRvIHVzZSB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGh0bWwgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGFuZCBhc3NvY2lhdGVkIGhpZXJhcmNoeS5cbiAgICogVGhpcyBkZWZhdWx0IHZhbHVlIGlzIGNvbXB1dGVkIGFuZCB1c2VkIHdoZW4gdGhlIGlucHV0IHJlcXVlc3Qgb3BlbnMgYSBjb25uZWN0aW9uXG4gICAqIHRvIHRoZSByZWNvZ25pdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZyB8fCB0aGlzLl9jb25maWcubGFuZztcbiAgfVxuXG4gIHNldCBsYW5nKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgc3BlZWNoIHN5bnRoZXNpcyB2b2ljZSB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gd2lzaGVzIHRvIHVzZS5cbiAgICogV2hlbiBhIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBvYmplY3QgaXMgY3JlYXRlZCB0aGlzIGF0dHJpYnV0ZSBtdXN0IGJlIGluaXRpYWxpemVkIHRvIG51bGwuXG4gICAqIElmLCBhdCB0aGUgdGltZSBvZiB0aGUgc3BlYWsoKSBtZXRob2QgY2FsbCxcbiAgICogdGhpcyBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIG9uZSBvZiB0aGUgU3BlZWNoU3ludGhlc2lzVm9pY2Ugb2JqZWN0cyByZXR1cm5lZCBieSBnZXRWb2ljZXMoKSxcbiAgICogdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSB0aGF0IHZvaWNlLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyB1bnNldCBvciBudWxsIGF0IHRoZSB0aW1lIG9mIHRoZSBzcGVhaygpXG4gICAqIG1ldGhvZCBjYWxsLCB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3QgdXNlIGEgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlLlxuICAgKiBUaGUgdXNlciBhZ2VudCBkZWZhdWx0IHZvaWNlIHNob3VsZCBzdXBwb3J0IHRoZSBjdXJyZW50IGxhbmd1YWdlIChzZWUgbGFuZykgYW5kXG4gICAqIGNhbiBiZSBhIGxvY2FsIG9yIHJlbW90ZSBzcGVlY2ggc2VydmljZSBhbmQgY2FuIGluY29ycG9yYXRlIGVuZCB1c2VyIGNob2ljZXMgdmlhIGludGVyZmFjZXNcbiAgICogcHJvdmlkZWQgYnkgdGhlIHVzZXIgYWdlbnQgc3VjaCBhcyBicm93c2VyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy5cbiAgICovXG4gIGdldCB2b2ljZSgpOiBTcGVlY2hTeW50aGVzaXNWb2ljZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvaWNlIHx8IHRoaXMuX2NvbmZpZy52b2ljZTtcbiAgfVxuICBzZXQgdm9pY2Uodm9pY2U6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlKSB7XG4gICAgdGhpcy5fdm9pY2UgPSB2b2ljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHZvbHVtZSBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHZvbHVtZSBhbmQgMSB0aGUgaGlnaGVzdCB2b2x1bWUsXG4gICAqIHdpdGggYSBkZWZhdWx0IG9mIDEuIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgdm9sdW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZvbHVtZSB8fCB0aGlzLl9jb25maWcudm9sdW1lO1xuICB9XG5cbiAgc2V0IHZvbHVtZSh2b2x1bWU6IG51bWJlcikge1xuICAgIHRoaXMuX3ZvbHVtZSA9IHZvbHVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHNwZWFraW5nIHJhdGUgZm9yIHRoZSB1dHRlcmFuY2UuXG4gICAqIEl0IGlzIHJlbGF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhdGUgZm9yIHRoaXMgdm9pY2UuXG4gICAqIDEgaXMgdGhlIGRlZmF1bHQgcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHNwZWVjaCBzeW50aGVzaXMgZW5naW5lIG9yIHNwZWNpZmljIHZvaWNlXG4gICAqICh3aGljaCBzaG91bGQgY29ycmVzcG9uZCB0byBhIG5vcm1hbCBzcGVha2luZyByYXRlKS5cbiAgICogMiBpcyB0d2ljZSBhcyBmYXN0LCBhbmQgMC41IGlzIGhhbGYgYXMgZmFzdC4gVmFsdWVzIGJlbG93IDAuMSBvciBhYm92ZSAxMCBhcmUgc3RyaWN0bHkgZGlzYWxsb3dlZCxcbiAgICogYnV0IHNwZWVjaCBzeW50aGVzaXMgZW5naW5lcyBvciBzcGVjaWZpYyB2b2ljZXMgbWF5IGNvbnN0cmFpbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSByYXRlcyBmdXJ0aGVyLFxuICAgKiBmb3IgZXhhbXBsZSwgYSBwYXJ0aWN1bGFyIHZvaWNlIG1heSBub3QgYWN0dWFsbHkgc3BlYWsgZmFzdGVyIHRoYW4gMyB0aW1lcyBub3JtYWxcbiAgICogZXZlbiBpZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGxhcmdlciB0aGFuIDMuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcmF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yYXRlIHx8IHRoaXMuX2NvbmZpZy5yYXRlO1xuICB9XG5cbiAgc2V0IHJhdGUocmF0ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcmF0ZSA9IHJhdGU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBzcGVha2luZyBwaXRjaCBmb3IgdGhlIHV0dGVyYW5jZS5cbiAgICogSXQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMiBpbmNsdXNpdmUsIHdpdGggMCBiZWluZyB0aGUgbG93ZXN0IHBpdGNoIGFuZCAyIHRoZSBoaWdoZXN0IHBpdGNoLlxuICAgKiAxIGNvcnJlc3BvbmRzIHRvIHRoZSBkZWZhdWx0IHBpdGNoIG9mIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBvciBzcGVjaWZpYyB2b2ljZS5cbiAgICogU3BlZWNoIHN5bnRoZXNpcyBlbmdpbmVzIG9yIHZvaWNlcyBtYXkgY29uc3RyYWluIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHJhdGVzIGZ1cnRoZXIuXG4gICAqIElmIFNTTUwgaXMgdXNlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgcHJvc29keSB0YWdzIGluIHRoZSBtYXJrdXAuXG4gICAqL1xuICBnZXQgcGl0Y2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGl0Y2ggfHwgdGhpcy5fY29uZmlnLnBpdGNoO1xuICB9XG5cbiAgc2V0IHBpdGNoKHBpdGNoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9waXRjaCA9IHBpdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyB1dHRlcmFuY2UgaGFzIGJlZ3VuIHRvIGJlIHNwb2tlbi5cbiAgICovXG4gIGdldCBvbnN0YXJ0KCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uc3RhcnQgfHwgdGhpcy5fY29uZmlnLm9uc3RhcnQ7XG4gIH1cblxuICBzZXQgb25zdGFydChvbnN0YXJ0OiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudEhhbmRsZXIpIHtcbiAgICB0aGlzLl9vbnN0YXJ0ID0gb25zdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoaXMgdXR0ZXJhbmNlIGhhcyBjb21wbGV0ZWQgYmVpbmcgc3Bva2VuLiBJZiB0aGlzIGV2ZW50IGZpcmVzLFxuICAgKiB0aGUgZXJyb3IgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgZm9yIHRoaXMgdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9uZW5kKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZW5kIHx8IHRoaXMuX2NvbmZpZy5vbmVuZDtcbiAgfVxuXG4gIHNldCBvbmVuZChvbmVuZDogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25lbmQgPSBvbmVuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgdGhhdCBwcmV2ZW50ZWQgc3VjY2Vzc2Z1bCBzcGVha2luZyBvZiB0aGlzIHV0dGVyYW5jZS5cbiAgICogSWYgdGhpcyBldmVudCBmaXJlcywgdGhlIGVuZCBldmVudCBtdXN0IG5vdCBiZSBmaXJlZCBmb3IgdGhpcyB1dHRlcmFuY2UuXG4gICAqL1xuICBnZXQgb25lcnJvcigpOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29uZXJyb3IgfHwgdGhpcy5fY29uZmlnLm9uZXJyb3I7XG4gIH1cblxuICBzZXQgb25lcnJvcihvbmVycm9yOiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFcnJvckV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uZXJyb3IgPSBvbmVycm9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHBhdXNlZCBtaWQtdXR0ZXJhbmNlLlxuICAgKi9cbiAgZ2V0IG9ucGF1c2UoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25wYXVzZSB8fCB0aGlzLl9jb25maWcub25wYXVzZTtcbiAgfVxuXG4gIHNldCBvbnBhdXNlKG9ucGF1c2U6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ucGF1c2UgPSBvbnBhdXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYW5kIGlmIHRoaXMgdXR0ZXJhbmNlIGlzIHJlc3VtZWQgYWZ0ZXIgYmVpbmcgcGF1c2VkIG1pZC11dHRlcmFuY2UuXG4gICAqIEFkZGluZyB0aGUgdXR0ZXJhbmNlIHRvIHRoZSBxdWV1ZSB3aGlsZSB0aGUgZ2xvYmFsIFNwZWVjaFN5bnRoZXNpcyBpbnN0YW5jZSBpcyBpbiB0aGUgcGF1c2VkIHN0YXRlLFxuICAgKiBhbmQgdGhlbiBjYWxsaW5nIHRoZSByZXN1bWUgbWV0aG9kIGRvZXMgbm90IGNhdXNlIHRoZSByZXN1bWUgZXZlbnQgdG8gYmUgZmlyZWQsXG4gICAqIGluIHRoaXMgY2FzZSB0aGUgdXR0ZXJhbmNl4oCZcyBzdGFydCBldmVudCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSB1dHRlcmFuY2Ugc3RhcnRzLlxuICAgKi9cbiAgZ2V0IG9ucmVzdW1lKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ucmVzdW1lIHx8IHRoaXMuX2NvbmZpZy5vbnJlc3VtZTtcbiAgfVxuXG4gIHNldCBvbnJlc3VtZShvbnJlc3VtZTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyKSB7XG4gICAgdGhpcy5fb25yZXN1bWUgPSBvbnJlc3VtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSBuYW1lZCBcIm1hcmtcIiB0YWcgaW4gU1NNTC5cbiAgICogW1NTTUxdIFRoZSB1c2VyIGFnZW50IG11c3QgZmlyZSB0aGlzIGV2ZW50IGlmIHRoZSBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZSBwcm92aWRlcyB0aGUgZXZlbnQuXG4gICAqL1xuICBnZXQgb25tYXJrKCk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX29ubWFyayB8fCB0aGlzLl9jb25maWcub25tYXJrO1xuICB9XG5cbiAgc2V0IG9ubWFyayhvbm1hcms6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29ubWFyayA9IG9ubWFyaztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBzcG9rZW4gdXR0ZXJhbmNlIHJlYWNoZXMgYSB3b3JkIG9yIHNlbnRlbmNlIGJvdW5kYXJ5LlxuICAgKiBUaGUgdXNlciBhZ2VudCBtdXN0IGZpcmUgdGhpcyBldmVudCBpZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBlbmdpbmUgcHJvdmlkZXMgdGhlIGV2ZW50LlxuICAgKi9cbiAgZ2V0IG9uYm91bmRhcnkoKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fb25ib3VuZGFyeSB8fCB0aGlzLl9jb25maWcub25ib3VuZGFyeTtcbiAgfVxuXG4gIHNldCBvbmJvdW5kYXJ5KG9uYm91bmRhcnk6IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX29uYm91bmRhcnkgPSBvbmJvdW5kYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgdGV4dCB0byBiZSBzeW50aGVzaXplZCBhbmQgc3Bva2VuIGZvciB0aGlzIHV0dGVyYW5jZS5cbiAgICogVGhpcyBtYXkgYmUgZWl0aGVyIHBsYWluIHRleHQgb3IgYSBjb21wbGV0ZSwgd2VsbC1mb3JtZWQgU1NNTCBkb2N1bWVudC5cbiAgICogW1NTTUxdIEZvciBzcGVlY2ggc3ludGhlc2lzIGVuZ2luZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBTU01MLFxuICAgKiBvciBvbmx5IHN1cHBvcnQgY2VydGFpbiB0YWdzLCB0aGUgdXNlciBhZ2VudCBvciBzcGVlY2ggZW5naW5lIG11c3Qgc3RyaXAgYXdheVxuICAgKiB0aGUgdGFncyB0aGV5IGRvIG5vdCBzdXBwb3J0IGFuZCBzcGVhayB0aGUgdGV4dC4gVGhlcmUgbWF5IGJlIGEgbWF4aW11bSBsZW5ndGggb2YgdGhlIHRleHQsXG4gICAqIGl0IG1heSBiZSBsaW1pdGVkIHRvIDMyLDc2NyBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcHVibGljIHRleHQodGV4dDogc3RyaW5nKTogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHtcbiAgICBjb25zdCB1dHRlcmFuY2UgPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKHRleHQpO1xuXG4gICAgdXR0ZXJhbmNlLmxhbmcgICAgICAgPSB0aGlzLmxhbmc7XG4gICAgdXR0ZXJhbmNlLnZvaWNlICAgICAgPSB0aGlzLnZvaWNlO1xuICAgIHV0dGVyYW5jZS52b2x1bWUgICAgID0gdGhpcy52b2x1bWU7XG4gICAgdXR0ZXJhbmNlLnJhdGUgICAgICAgPSB0aGlzLnJhdGU7XG4gICAgdXR0ZXJhbmNlLnBpdGNoICAgICAgPSB0aGlzLnBpdGNoO1xuICAgIHV0dGVyYW5jZS5vbnN0YXJ0ICAgID0gdGhpcy5vbnN0YXJ0O1xuICAgIHV0dGVyYW5jZS5vbmVuZCAgICAgID0gdGhpcy5vbmVuZDtcbiAgICB1dHRlcmFuY2Uub25lcnJvciAgICA9IHRoaXMub25lcnJvcjtcbiAgICB1dHRlcmFuY2Uub25wYXVzZSAgICA9IHRoaXMub25wYXVzZTtcbiAgICB1dHRlcmFuY2Uub25yZXN1bWUgICA9IHRoaXMub25yZXN1bWU7XG4gICAgdXR0ZXJhbmNlLm9ubWFyayAgICAgPSB0aGlzLm9ubWFyaztcbiAgICB1dHRlcmFuY2Uub25ib3VuZGFyeSA9IHRoaXMub25ib3VuZGFyeTtcblxuICAgIHJldHVybiB1dHRlcmFuY2U7XG4gIH1cbn1cbiJdfQ== |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { Injectable } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ import { NgModule } from '@angular/core'; |
/** | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -5,0 +5,0 @@ /* |
@@ -5,3 +5,3 @@ import { InjectionToken, Injectable, NgModule, Optional, Inject, defineInjectable, inject } from '@angular/core'; | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -39,3 +39,3 @@ /** @type {?} */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -161,3 +161,3 @@ class SpeechSynthesisService { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -271,6 +271,13 @@ /** | ||
this.internal | ||
.addEventListener('voiceschanged', () => { | ||
.addEventListener('voiceschanged', (/** | ||
* @return {?} | ||
*/ | ||
() => { | ||
this._voice = this.internal | ||
.getVoices().find(v => v.name === voice); | ||
}); | ||
.getVoices().find((/** | ||
* @param {?} v | ||
* @return {?} | ||
*/ | ||
v => v.name === voice)); | ||
})); | ||
} | ||
@@ -546,3 +553,3 @@ else { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -576,3 +583,3 @@ class SpeechSynthesisModule { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -582,3 +589,3 @@ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -591,3 +598,3 @@ /* tslint:disable */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -594,0 +601,0 @@ |
@@ -5,3 +5,3 @@ import { InjectionToken, Injectable, NgModule, Optional, Inject, defineInjectable, inject } from '@angular/core'; | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -39,3 +39,3 @@ /** @type {?} */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -289,3 +289,3 @@ var SpeechSynthesisService = /** @class */ (function () { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -385,6 +385,13 @@ /** | ||
this.internal | ||
.addEventListener('voiceschanged', function () { | ||
.addEventListener('voiceschanged', (/** | ||
* @return {?} | ||
*/ | ||
function () { | ||
_this._voice = _this.internal | ||
.getVoices().find(function (v) { return v.name === voice; }); | ||
}); | ||
.getVoices().find((/** | ||
* @param {?} v | ||
* @return {?} | ||
*/ | ||
function (v) { return v.name === voice; })); | ||
})); | ||
} | ||
@@ -797,3 +804,3 @@ else { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -834,3 +841,3 @@ var SpeechSynthesisModule = /** @class */ (function () { | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -840,3 +847,3 @@ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -849,3 +856,3 @@ /* tslint:disable */ | ||
* @fileoverview added by tsickle | ||
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc | ||
*/ | ||
@@ -852,0 +859,0 @@ |
{ | ||
"name": "@kamiazya/ngx-speech-synthesis", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Angular 7+ speech synthesis service (based on browser implementation such as Chrome).", | ||
"repository": "https://github.com/kamiazya/ngx-speech-synthesis.git", | ||
"author": "kamiazya <yuki@kamiazya.tech>", | ||
"license": "MIT", | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"keywords": [ | ||
@@ -12,2 +16,6 @@ "angular", | ||
], | ||
"bugs": { | ||
"url": "https://github.com/kamiazya/ngx-speech-synthesis/issues" | ||
}, | ||
"homepage": "https://github.com/kamiazya/ngx-speech-synthesis", | ||
"peerDependencies": { | ||
@@ -14,0 +22,0 @@ "@angular/common": "^7.0.0", |
@@ -146,1 +146,7 @@ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/082267c017e047a7b9ecb888d0779860)](https://app.codacy.com/app/kamiazya/ngx-speech-synthesis?utm_source=github.com&utm_medium=referral&utm_content=kamiazya/ngx-speech-synthesis&utm_campaign=Badge_Grade_Dashboard) [![Maintainability](https://api.codeclimate.com/v1/badges/9723b4dde56568506ec5/maintainability)](https://codeclimate.com/github/kamiazya/ngx-speech-synthesis/maintainability) [![CodeFactor](https://www.codefactor.io/repository/github/kamiazya/ngx-speech-synthesis/badge)](https://www.codefactor.io/repository/github/kamiazya/ngx-speech-synthesis) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkamiazya%2Fngx-speech-synthesis.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkamiazya%2Fngx-speech-synthesis?ref=badge_shield) [![BCH compliance](https://bettercodehub.com/edge/badge/kamiazya/ngx-speech-synthesis?branch=master)](https://bettercodehub.com/) [![npm version](https://badge.fury.io/js/%40kamiazya%2Fngx-speech-synthesis.svg)](https://badge.fury.io/js/%40kamiazya%2Fngx-speech-synthesis) | ||
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkamiazya%2Fngx-speech-synthesis.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkamiazya%2Fngx-speech-synthesis?ref=badge_large) | ||
## Author | ||
[kamiazya(Yuki Yamazaki)](https://github.com/kamiazya) | ||
[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W5VDNO) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
416345
4352
1
2
152