/*! dustjs-linkedin - v2.7.5
* http://dustjs.com/
* Copyright (c) 2016 Aleksander Williams; Released under the MIT License */
!function(a,b){"function"==typeof define&&define.amd&&define.amd.dust===!0?define("dust.core",[],b):"object"==typeof exports?module.exports=b():a.dust=b()}(this,function(){function getTemplate(a,b){return a?"function"==typeof a&&a.template?a.template:dust.isTemplateFn(a)?a:b!==!1?dust.cache[a]:void 0:void 0}function load(a,b,c){if(!a)return b.setError(new Error("No template or template name provided to render"));var d=getTemplate(a,dust.config.cache);return d?d(b,Context.wrap(c,d.templateName)):dust.onLoad?b.map(function(b){function d(a,d){var f;if(a)return b.setError(a);if(f=getTemplate(d,!1)||getTemplate(e,dust.config.cache),!f){if(!dust.compile)return b.setError(new Error("Dust compiler not available"));f=dust.loadSource(dust.compile(d,e))}f(b,Context.wrap(c,f.templateName)).end()}var e=a;3===dust.onLoad.length?dust.onLoad(e,c.options,d):dust.onLoad(e,d)}):b.setError(new Error("Template Not Found: "+a))}function Context(a,b,c,d,e){void 0===a||a instanceof Stack||(a=new Stack(a)),this.stack=a,this.global=b,this.options=c,this.blocks=d,this.templateName=e,this._isContext=!0}function getWithResolvedData(a,b,c){return function(d){return a.push(d)._get(b,c)}}function Stack(a,b,c,d){this.tail=b,this.isObject=a&&"object"==typeof a,this.head=a,this.index=c,this.of=d}function Stub(a){this.head=new Chunk(this),this.callback=a,this.out=""}function Stream(){this.head=new Chunk(this)}function Chunk(a,b,c){this.root=a,this.next=b,this.data=[],this.flushable=!1,this.taps=c}function Tap(a,b){this.head=a,this.tail=b}var dust={version:"2.7.5"},NONE="NONE",ERROR="ERROR",WARN="WARN",INFO="INFO",DEBUG="DEBUG",EMPTY_FUNC=function(){};dust.config={whitespace:!1,amd:!1,cjs:!1,cache:!0},dust._aliases={write:"w",end:"e",map:"m",render:"r",reference:"f",section:"s",exists:"x",notexists:"nx",block:"b",partial:"p",helper:"h"},function(){var a,b,c={DEBUG:0,INFO:1,WARN:2,ERROR:3,NONE:4};"undefined"!=typeof console&&console.log?(a=console.log,b="function"==typeof a?function(){a.apply(console,arguments)}:function(){a(Array.prototype.slice.apply(arguments).join(" "))}):b=EMPTY_FUNC,dust.log=function(a,d){d=d||INFO,c[d]>=c[dust.debugLevel]&&b("[DUST:"+d+"]",a)},dust.debugLevel=NONE,"undefined"!=typeof process&&process.env&&/\bdust\b/.test(process.env.DEBUG)&&(dust.debugLevel=DEBUG)}(),dust.helpers={},dust.cache={},dust.register=function(a,b){a&&(b.templateName=a,dust.config.cache!==!1&&(dust.cache[a]=b))},dust.render=function(a,b,c){var d=new Stub(c).head;try{load(a,d,b).end()}catch(e){d.setError(e)}},dust.stream=function(a,b){var c=new Stream,d=c.head;return dust.nextTick(function(){try{load(a,d,b).end()}catch(c){d.setError(c)}}),c},dust.loadSource=function(source){return eval(source)},dust.isArray=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},dust.nextTick=function(){return function(a){setTimeout(a,0)}}(),dust.isEmpty=function(a){return 0===a?!1:dust.isArray(a)&&!a.length?!0:!a},dust.isEmptyObject=function(a){var b;if(null===a)return!1;if(void 0===a)return!1;if(a.length>0)return!1;for(b in a)if(Object.prototype.hasOwnProperty.call(a,b))return!1;return!0},dust.isTemplateFn=function(a){return"function"==typeof a&&a.__dustBody},dust.isThenable=function(a){return a&&"object"==typeof a&&"function"==typeof a.then},dust.isStreamable=function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pipe},dust.filter=function(a,b,c,d){var e,f,g,h;if(c)for(e=0,f=c.length;f>e;e++)g=c[e],g.length&&(h=dust.filters[g],"s"===g?b=null:"function"==typeof h?a=h(a,d):dust.log("Invalid filter `"+g+"`",WARN));return b&&(a=dust.filters[b](a,d)),a},dust.filters={h:function(a){return dust.escapeHtml(a)},j:function(a){return dust.escapeJs(a)},u:encodeURI,uc:encodeURIComponent,js:function(a){return dust.escapeJSON(a)},jp:function(a){return JSON?JSON.parse(a):(dust.log("JSON is undefined; could not parse `"+a+"`",WARN),a)}},dust.makeBase=dust.context=function(a,b){return new Context(void 0,a,b)},dust.isContext=function(a){return"object"==typeof a&&a._isContext===!0},Context.wrap=function(a,b){return dust.isContext(a)?a:new Context(a,{},{},null,b)},Context.prototype.get=function(a,b){return"string"==typeof a&&("."===a[0]&&(b=!0,a=a.substr(1)),a=a.split(".")),this._get(b,a)},Context.prototype._get=function(a,b){var c,d,e,f,g,h=this.stack||{},i=1;if(d=b[0],e=b.length,a&&0===e)f=h,h=h.head;else{if(a)h&&(h=h.head?h.head[d]:void 0);else{for(;h&&(!h.isObject||(f=h.head,c=h.head[d],void 0===c));)h=h.tail;h=void 0!==c?c:this.global&&this.global[d]}for(;h&&e>i;){if(dust.isThenable(h))return h.then(getWithResolvedData(this,a,b.slice(i)));f=h,h=h[b[i]],i++}}return"function"==typeof h?(g=function(){try{return h.apply(f,arguments)}catch(a){throw dust.log(a,ERROR),a}},g.__dustBody=!!h.__dustBody,g):(void 0===h&&dust.log("Cannot find reference `{"+b.join(".")+"}` in template `"+this.getTemplateName()+"`",INFO),h)},Context.prototype.getPath=function(a,b){return this._get(a,b)},Context.prototype.push=function(a,b,c){return void 0===a?(dust.log("Not pushing an undefined variable onto the context",INFO),this):this.rebase(new Stack(a,this.stack,b,c))},Context.prototype.pop=function(){var a=this.current();return this.stack=this.stack&&this.stack.tail,a},Context.prototype.rebase=function(a){return new Context(a,this.global,this.options,this.blocks,this.getTemplateName())},Context.prototype.clone=function(){var a=this.rebase();return a.stack=this.stack,a},Context.prototype.current=function(){return this.stack&&this.stack.head},Context.prototype.getBlock=function(a){var b,c,d;if("function"==typeof a&&(a=a(new Chunk,this).data.join("")),b=this.blocks,!b)return dust.log("No blocks for context `"+a+"` in template `"+this.getTemplateName()+"`",DEBUG),!1;for(c=b.length;c--;)if(d=b[c][a])return d;return dust.log("Malformed template `"+this.getTemplateName()+"` was missing one or more blocks."),!1},Context.prototype.shiftBlocks=function(a){var b,c=this.blocks;return a?(b=c?c.concat([a]):[a],new Context(this.stack,this.global,this.options,b,this.getTemplateName())):this},Context.prototype.resolve=function(a){var b;return"function"!=typeof a?a:(b=(new Chunk).render(a,this),b instanceof Chunk?b.data.join(""):b)},Context.prototype.getTemplateName=function(){return this.templateName},Stub.prototype.flush=function(){for(var a=this.head;a;){if(!a.flushable)return a.error?(this.callback(a.error),dust.log("Rendering failed with error `"+a.error+"`",ERROR),void(this.flush=EMPTY_FUNC)):void 0;this.out+=a.data.join(""),a=a.next,this.head=a}this.callback(null,this.out)},Stream.prototype.flush=function(){for(var a=this.head;a;){if(!a.flushable)return a.error?(this.emit("error",a.error),this.emit("end"),dust.log("Streaming failed with error `"+a.error+"`",ERROR),void(this.flush=EMPTY_FUNC)):void 0;this.emit("data",a.data.join("")),a=a.next,this.head=a}this.emit("end")},Stream.prototype.emit=function(a,b){var c,d,e=this.events||{},f=e[a]||[];if(!f.length)return dust.log("Stream broadcasting, but no listeners for `"+a+"`",DEBUG),!1;for(f=f.slice(0),c=0,d=f.length;d>c;c++)f[c](b);return!0},Stream.prototype.on=function(a,b){var c=this.events=this.events||{},d=c[a]=c[a]||[];return"function"!=typeof b?dust.log("No callback function provided for `"+a+"` event listener",WARN):d.push(b),this},Stream.prototype.pipe=function(a){if("function"!=typeof a.write||"function"!=typeof a.end)return dust.log("Incompatible stream passed to `pipe`",WARN),this;var b=!1;return"function"==typeof a.emit&&a.emit("pipe",this),"function"==typeof a.on&&a.on("error",function(){b=!0}),this.on("data",function(c){if(!b)try{a.write(c,"utf8")}catch(d){dust.log(d,ERROR)}}).on("end",function(){if(!b)try{a.end(),b=!0}catch(c){dust.log(c,ERROR)}})},Chunk.prototype.write=function(a){var b=this.taps;return b&&(a=b.go(a)),this.data.push(a),this},Chunk.prototype.end=function(a){return a&&this.write(a),this.flushable=!0,this.root.flush(),this},Chunk.prototype.map=function(a){var b=new Chunk(this.root,this.next,this.taps),c=new Chunk(this.root,b,this.taps);this.next=c,this.flushable=!0;try{a(c)}catch(d){dust.log(d,ERROR),c.setError(d)}return b},Chunk.prototype.tap=function(a){var b=this.taps;return this.taps=b?b.push(a):new Tap(a),this},Chunk.prototype.untap=function(){return this.taps=this.taps.tail,this},Chunk.prototype.render=function(a,b){return a(this,b)},Chunk.prototype.reference=function(a,b,c,d){return"function"==typeof a?(a=a.apply(b.current(),[this,b,null,{auto:c,filters:d}]),a instanceof Chunk?a:this.reference(a,b,c,d)):dust.isThenable(a)?this.await(a,b,null,c,d):dust.isStreamable(a)?this.stream(a,b,null,c,d):dust.isEmpty(a)?this:this.write(dust.filter(a,c,d,b))},Chunk.prototype.section=function(a,b,c,d){var e,f,g,h=c.block,i=c["else"],j=this;if("function"==typeof a&&!dust.isTemplateFn(a)){try{a=a.apply(b.current(),[this,b,c,d])}catch(k){return dust.log(k,ERROR),this.setError(k)}if(a instanceof Chunk)return a}if(dust.isEmptyObject(c))return j;if(dust.isEmptyObject(d)||(b=b.push(d)),dust.isArray(a)){if(h){if(f=a.length,f>0){for(g=b.stack&&b.stack.head||{},g.$len=f,e=0;f>e;e++)g.$idx=e,j=h(j,b.push(a[e],e,f));return g.$idx=void 0,g.$len=void 0,j}if(i)return i(this,b)}}else{if(dust.isThenable(a))return this.await(a,b,c);if(dust.isStreamable(a))return this.stream(a,b,c);if(a===!0){if(h)return h(this,b)}else if(a||0===a){if(h)return h(this,b.push(a))}else if(i)return i(this,b)}return dust.log("Section without corresponding key in template `"+b.getTemplateName()+"`",DEBUG),this},Chunk.prototype.exists=function(a,b,c){var d=c.block,e=c["else"];if(dust.isEmpty(a)){if(e)return e(this,b)}else{if(d)return d(this,b);dust.log("No block for exists check in template `"+b.getTemplateName()+"`",DEBUG)}return this},Chunk.prototype.notexists=function(a,b,c){var d=c.block,e=c["else"];if(dust.isEmpty(a)){if(d)return d(this,b);dust.log("No block for not-exists check in template `"+b.getTemplateName()+"`",DEBUG)}else if(e)return e(this,b);return this},Chunk.prototype.block=function(a,b,c){var d=a||c.block;return d?d(this,b):this},Chunk.prototype.partial=function(a,b,c,d){var e;return void 0===d&&(d=c,c=b),dust.isEmptyObject(d)||(c=c.clone(),e=c.pop(),c=c.push(d).push(e)),dust.isTemplateFn(a)?this.capture(a,b,function(a,b){c.templateName=a,load(a,b,c).end()}):(c.templateName=a,load(a,this,c))},Chunk.prototype.helper=function(a,b,c,d,e){var f,g=this,h=d.filters;if(void 0===e&&(e="h"),!dust.helpers[a])return dust.log("Helper `"+a+"` does not exist",WARN),g;try{return f=dust.helpers[a](g,b,c,d),f instanceof Chunk?f:("string"==typeof h&&(h=h.split("|")),dust.isEmptyObject(c)?g.reference(f,b,e,h):g.section(f,b,c,d))}catch(i){return dust.log("Error in helper `"+a+"`: "+i.message,ERROR),g.setError(i)}},Chunk.prototype.await=function(a,b,c,d,e){return this.map(function(f){a.then(function(a){f=c?f.section(a,b,c):f.reference(a,b,d,e),f.end()},function(a){var d=c&&c.error;d?f.render(d,b.push(a)).end():(dust.log("Unhandled promise rejection in `"+b.getTemplateName()+"`",INFO),f.end())})})},Chunk.prototype.stream=function(a,b,c,d,e){var f=c&&c.block,g=c&&c.error;return this.map(function(h){var i=!1;a.on("data",function(a){i||(f?h=h.map(function(c){c.render(f,b.push(a)).end()}):c||(h=h.reference(a,b,d,e)))}).on("error",function(a){i||(g?h.render(g,b.push(a)):dust.log("Unhandled stream error in `"+b.getTemplateName()+"`",INFO),i||(i=!0,h.end()))}).on("end",function(){i||(i=!0,h.end())})})},Chunk.prototype.capture=function(a,b,c){return this.map(function(d){var e=new Stub(function(a,b){a?d.setError(a):c(b,d)});a(e.head,b).end()})},Chunk.prototype.setError=function(a){return this.error=a,this.root.flush(),this};for(var f in Chunk.prototype)dust._aliases[f]&&(Chunk.prototype[dust._aliases[f]]=Chunk.prototype[f]);Tap.prototype.push=function(a){return new Tap(a,this)},Tap.prototype.go=function(a){for(var b=this;b;)a=b.head(a),b=b.tail;return a};var HCHARS=/[&<>"']/,AMP=/&/g,LT=/</g,GT=/>/g,QUOT=/\"/g,SQUOT=/\'/g;dust.escapeHtml=function(a){return"string"==typeof a||a&&"function"==typeof a.toString?("string"!=typeof a&&(a=a.toString()),HCHARS.test(a)?a.replace(AMP,"&amp;").replace(LT,"&lt;").replace(GT,"&gt;").replace(QUOT,"&quot;").replace(SQUOT,"&#39;"):a):a};var BS=/\\/g,FS=/\//g,CR=/\r/g,LS=/\u2028/g,PS=/\u2029/g,NL=/\n/g,LF=/\f/g,SQ=/'/g,DQ=/"/g,TB=/\t/g;return dust.escapeJs=function(a){return"string"==typeof a?a.replace(BS,"\\\\").replace(FS,"\\/").replace(DQ,'\\"').replace(SQ,"\\'").replace(CR,"\\r").replace(LS,"\\u2028").replace(PS,"\\u2029").replace(NL,"\\n").replace(LF,"\\f").replace(TB,"\\t"):a},dust.escapeJSON=function(a){return JSON?JSON.stringify(a).replace(LS,"\\u2028").replace(PS,"\\u2029").replace(LT,"\\u003c"):(dust.log("JSON is undefined; could not escape `"+a+"`",WARN),a)},dust}),"function"==typeof define&&define.amd&&define.amd.dust===!0&&define(["require","dust.core"],function(require,dust){return dust.onLoad=function(a,b){require([a],function(){b()})},dust});
/*! dustjs-helpers - v1.7.4
* http://dustjs.com/
* Copyright (c) 2017 Aleksander Williams; Released under the MIT License */
!function(a,b){"function"==typeof define&&define.amd&&define.amd.dust===!0?define(["dust.core"],b):"object"==typeof exports?(module.exports=b(require("dustjs-linkedin")),module.exports.registerWith=b):b(a.dust)}(this,function(dust){function a(a,b,c){c=c||"INFO",a=a?"{@"+a+"}: ":"",dust.log(a+b,c)}function b(b){k[b]||(a(b,"Deprecation warning: "+b+" is deprecated and will be removed in a future version of dustjs-helpers","WARN"),a(null,"For help and a deprecation timeline, see https://github.com/linkedin/dustjs-helpers/wiki/Deprecated-Features#"+b.replace(/\W+/g,""),"WARN"),k[b]=!0)}function c(a){return a.stack.tail&&a.stack.tail.head&&"undefined"!=typeof a.stack.tail.head.__select__}function d(a){return c(a)&&a.get("__select__")}function e(a,b){var c,d=a.stack.head,e=a.rebase();a.stack&&a.stack.tail&&(e.stack=a.stack.tail);var f={isPending:!1,isResolved:!1,isDeferredComplete:!1,deferreds:[]};for(c in b)f[c]=b[c];return e.push({__select__:f}).push(d,a.stack.index,a.stack.of)}function f(a){var b,c;if(a.isDeferredPending=!0,a.deferreds.length)for(a.isDeferredComplete=!0,b=0,c=a.deferreds.length;c>b;b++)a.deferreds[b]();a.isDeferredPending=!1}function g(a,b){return"function"==typeof b?b.toString().replace(/(^\s+|\s+$)/gm,"").replace(/\n/gm,"").replace(/,\s*/gm,", ").replace(/\)\{/gm,") {"):b}function h(a,b){return function(c,d,e,f){return i(c,d,e,f,a,b)}}function i(b,c,e,f,g,h){var i,k,l,m,n=e.block,o=e["else"],p=d(c)||{};if(p.isResolved&&!p.isDeferredPending)return b;if(f.hasOwnProperty("key"))k=f.key;else{if(!p.hasOwnProperty("key"))return a(g,"No key specified","WARN"),b;k=p.key}return m=f.type||p.type,k=j(c.resolve(k),m),l=j(c.resolve(f.value),m),h(k,l)?(p.isPending||(i=!0,p.isPending=!0),n&&(b=b.render(n,c)),i&&(p.isResolved=!0)):o&&(b=b.render(o,c)),b}function j(a,b){switch(b&&(b=b.toLowerCase()),b){case"number":return+a;case"string":return String(a);case"boolean":return a="false"===a?!1:a,Boolean(a);case"date":return new Date(a)}return a}var k={},l={tap:function(a,c,d){return b("tap"),d.resolve(a)},sep:function(a,b,c){var d=c.block;return b.stack.index===b.stack.of-1?a:d?d(a,b):a},first:function(a,b,c){return 0===b.stack.index?c.block(a,b):a},last:function(a,b,c){return b.stack.index===b.stack.of-1?c.block(a,b):a},contextDump:function(b,c,d,e){var f,h,i=c.resolve(e.to),j=c.resolve(e.key);switch(j){case"full":f=c.stack;break;default:f=c.stack.head}switch(h=JSON.stringify(f,g,2),i){case"console":a("contextDump",h);break;default:h=h.replace(/</g,"\\u003c"),b=b.write(h)}return b},math:function(b,c,g,h){var i,j=h.key,k=h.method,l=h.operand,m=h.round;if(!h.hasOwnProperty("key")||!h.method)return a("math","`key` or `method` was not provided","ERROR"),b;switch(j=parseFloat(c.resolve(j)),l=parseFloat(c.resolve(l)),k){case"mod":0===l&&a("math","Division by 0","ERROR"),i=j%l;break;case"add":i=j+l;break;case"subtract":i=j-l;break;case"multiply":i=j*l;break;case"divide":0===l&&a("math","Division by 0","ERROR"),i=j/l;break;case"ceil":case"floor":case"round":case"abs":i=Math[k](j);break;case"toint":i=parseInt(j,10);break;default:a("math","Method `"+k+"` is not supported","ERROR")}return"undefined"!=typeof i&&(m&&(i=Math.round(i)),g&&g.block?(c=e(c,{key:i}),b=b.render(g.block,c),f(d(c))):b=b.write(i)),b},select:function(b,c,g,h){var i=g.block,j={};return h.hasOwnProperty("key")&&(j.key=c.resolve(h.key)),h.hasOwnProperty("type")&&(j.type=h.type),i?(c=e(c,j),b=b.render(i,c),f(d(c))):a("select","Missing body block","WARN"),b},eq:h("eq",function(a,b){return a===b}),ne:h("ne",function(a,b){return a!==b}),lt:h("lt",function(a,b){return b>a}),lte:h("lte",function(a,b){return b>=a}),gt:h("gt",function(a,b){return a>b}),gte:h("gte",function(a,b){return a>=b}),any:function(b,c,e){var f=d(c);return f?f.isDeferredComplete?a("any","Must not be nested inside {@any} or {@none} block","ERROR"):b=b.map(function(a){f.deferreds.push(function(){f.isResolved&&(a=a.render(e.block,c)),a.end()})}):a("any","Must be used inside a {@select} block","ERROR"),b},none:function(b,c,e){var f=d(c);return f?f.isDeferredComplete?a("none","Must not be nested inside {@any} or {@none} block","ERROR"):b=b.map(function(a){f.deferreds.push(function(){f.isResolved||(a=a.render(e.block,c)),a.end()})}):a("none","Must be used inside a {@select} block","ERROR"),b},size:function(a,b,c,d){var e,f,g=d.key;if(g=b.resolve(d.key),g&&g!==!0)if(dust.isArray(g))e=g.length;else if(!isNaN(parseFloat(g))&&isFinite(g))e=g;else if("object"==typeof g){e=0;for(f in g)g.hasOwnProperty(f)&&e++}else e=(g+"").length;else e=0;return a.write(e)}};for(var m in l)dust.helpers[m]=l[m];return dust});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.page=e()}(this,function(){"use strict";function t(t){return a(r(t))}var p=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},i=c,e=r,n=a,o=h,l=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^()])+)\\))?|\\(((?:\\\\.|[^()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function r(t){for(var e=[],n=0,i=0,o="";null!=(c=l.exec(t));){var r,a,s,h,c,p=c[0],u=c[1],d=c.index;o+=t.slice(i,d),i=d+p.length,u?o+=u[1]:(o&&(e.push(o),o=""),r=c[2],a=c[3],s=c[4],h=c[5],d=c[6],p=c[7],u="+"===d||"*"===d,c="?"===d||"*"===d,d=r||"/",p=s||h||(p?".*":"[^"+d+"]+?"),e.push({name:a||n++,prefix:r||"",delimiter:d,optional:c,repeat:u,pattern:p.replace(/([=!:$\/()])/g,"\\$1")}))}return i<t.length&&(o+=t.substr(i)),o&&e.push(o),e}function a(h){for(var c=new Array(h.length),t=0;t<h.length;t++)"object"==typeof h[t]&&(c[t]=new RegExp("^"+h[t].pattern+"$"));return function(t){for(var e="",n=t||{},i=0;i<h.length;i++){var o=h[i];if("string"!=typeof o){var r,a=n[o.name];if(null==a){if(o.optional)continue;throw new TypeError('Expected "'+o.name+'" to be defined')}if(p(a)){if(!o.repeat)throw new TypeError('Expected "'+o.name+'" to not repeat, but received "'+a+'"');if(0===a.length){if(o.optional)continue;throw new TypeError('Expected "'+o.name+'" to not be empty')}for(var s=0;s<a.length;s++){if(r=encodeURIComponent(a[s]),!c[i].test(r))throw new TypeError('Expected all "'+o.name+'" to match "'+o.pattern+'", but received "'+r+'"');e+=(0===s?o.prefix:o.delimiter)+r}}else{if(r=encodeURIComponent(a),!c[i].test(r))throw new TypeError('Expected "'+o.name+'" to match "'+o.pattern+'", but received "'+r+'"');e+=o.prefix+r}}else e+=o}return e}}function u(t){return t.replace(/([.+*?=^!:${}()[\]|\/])/g,"\\$1")}function s(t,e){return t.keys=e,t}function d(t){return t.sensitive?"":"i"}function h(t,e){for(var n=(e=e||{}).strict,i=!1!==e.end,o="",r=t[t.length-1],r="string"==typeof r&&/\/$/.test(r),a=0;a<t.length;a++){var s,h,c=t[a];"string"==typeof c?o+=u(c):(s=u(c.prefix),h=c.pattern,c.repeat&&(h+="(?:"+s+h+")*"),o+=h=c.optional?s?"(?:"+s+"("+h+"))?":"("+h+")?":s+"("+h+")")}return n||(o=(r?o.slice(0,-2):o)+"(?:\\/(?=$))?"),o+=i?"$":n&&r?"":"(?=\\/|$)",new RegExp("^"+o,d(e))}function c(t,e,n){return p(e=e||[])?n=n||{}:(n=e,e=[]),t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)e.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return s(t,e)}(t,e):(p(t)?function(t,e,n){for(var i=[],o=0;o<t.length;o++)i.push(c(t[o],e,n).source);return s(new RegExp("(?:"+i.join("|")+")",d(n)),e)}:function(t,e,n){for(var i=r(t),n=h(i,n),o=0;o<i.length;o++)"string"!=typeof i[o]&&e.push(i[o]);return s(n,e)})(t,e,n)}i.parse=e,i.compile=t,i.tokensToFunction=n,i.tokensToRegExp=o;var f,g="undefined"!=typeof document,m="undefined"!=typeof window,w="undefined"!=typeof history,v="undefined"!=typeof process,y=g&&document.ontouchstart?"touchstart":"click",_=m&&!(!window.history.location&&!window.location);function b(){this.callbacks=[],this.exits=[],this.current="",this.len=0,this._decodeURLComponents=!0,this._base="",this._strict=!1,this._running=!1,this._hashbang=!1,this.clickHandler=this.clickHandler.bind(this),this._onpopstate=this._onpopstate.bind(this)}function x(t,e){if("function"==typeof t)return x.call(this,"*",t);if("function"==typeof e)for(var n=new R(t,null,this),i=1;i<arguments.length;++i)this.callbacks.push(n.middleware(arguments[i]));else"string"==typeof t?this["string"==typeof e?"redirect":"show"](t,e):this.start(t)}function E(t,e,n){var i=this.page=n||x,o=i._window,r=i._hashbang,a=i._getBase();"/"===t[0]&&0!==t.indexOf(a)&&(t=a+(r?"#!":"")+t);n=t.indexOf("?");this.canonicalPath=t;a=new RegExp("^"+a.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"));this.path=t.replace(a,"")||"/",r&&(this.path=this.path.replace("#!","")||"/"),this.title=g&&o.document.title,this.state=e||{},this.state.path=t,this.querystring=~n?i._decodeURLEncodedURIComponent(t.slice(n+1)):"",this.pathname=i._decodeURLEncodedURIComponent(~n?t.slice(0,n):t),this.params={},this.hash="",r||~this.path.indexOf("#")&&(r=this.path.split("#"),this.path=this.pathname=r[0],this.hash=i._decodeURLEncodedURIComponent(r[1])||"",this.querystring=this.querystring.split("#")[0])}function R(t,e,n){this.page=n||k;e=e||{};e.strict=e.strict||n._strict,this.path="*"===t?"(.*)":t,this.method="GET",this.regexp=i(this.path,this.keys=[],e)}b.prototype.configure=function(t){t=t||{};this._window=t.window||m&&window,this._decodeURLComponents=!1!==t.decodeURLComponents,this._popstate=!1!==t.popstate&&m,this._click=!1!==t.click&&g,this._hashbang=!!t.hashbang;t=this._window;this._popstate?t.addEventListener("popstate",this._onpopstate,!1):m&&t.removeEventListener("popstate",this._onpopstate,!1),this._click?t.document.addEventListener(y,this.clickHandler,!1):g&&t.document.removeEventListener(y,this.clickHandler,!1),this._hashbang&&m&&!w?t.addEventListener("hashchange",this._onpopstate,!1):m&&t.removeEventListener("hashchange",this._onpopstate,!1)},b.prototype.base=function(t){if(0===arguments.length)return this._base;this._base=t},b.prototype._getBase=function(){var t=this._base;if(t)return t;var e=m&&this._window&&this._window.location;return m&&this._hashbang&&e&&"file:"===e.protocol&&(t=e.pathname),t},b.prototype.strict=function(t){if(0===arguments.length)return this._strict;this._strict=t},b.prototype.start=function(t){var e,t=t||{};this.configure(t),!1!==t.dispatch&&(this._running=!0,_&&(e=this._window.location,e=this._hashbang&&~e.hash.indexOf("#!")?e.hash.substr(2)+e.search:this._hashbang?e.search+e.hash:e.pathname+e.search+e.hash),this.replace(e,null,!0,t.dispatch))},b.prototype.stop=function(){var t;this._running&&(this.current="",this.len=0,this._running=!1,t=this._window,this._click&&t.document.removeEventListener(y,this.clickHandler,!1),m&&t.removeEventListener("popstate",this._onpopstate,!1),m&&t.removeEventListener("hashchange",this._onpopstate,!1))},b.prototype.show=function(t,e,n,i){t=new E(t,e,this),e=this.prevContext;return this.prevContext=t,this.current=t.path,!1!==n&&this.dispatch(t,e),!1!==t.handled&&!1!==i&&t.pushState(),t},b.prototype.back=function(t,e){var n,i=this;0<this.len?(n=this._window,w&&n.history.back(),this.len--):t?setTimeout(function(){i.show(t,e)}):setTimeout(function(){i.show(i._getBase(),e)})},b.prototype.redirect=function(t,e){var n=this;"string"==typeof t&&"string"==typeof e&&x.call(this,t,function(t){setTimeout(function(){n.replace(e)},0)}),"string"==typeof t&&void 0===e&&setTimeout(function(){n.replace(t)},0)},b.prototype.replace=function(t,e,n,i){t=new E(t,e,this),e=this.prevContext;return this.prevContext=t,this.current=t.path,t.init=n,t.save(),!1!==i&&this.dispatch(t,e),t},b.prototype.dispatch=function(e,n){var i=0,o=0,r=this;function a(){var t=r.callbacks[i++];if(e.path===r.current)return t?void t(e,a):function(t){if(t.handled)return;var e,n=this._window;e=this._hashbang?_&&this._getBase()+n.location.hash.replace("#!",""):_&&n.location.pathname+n.location.search;if(e===t.canonicalPath)return;this.stop(),t.handled=!1,_&&(n.location.href=t.canonicalPath)}.call(r,e);e.handled=!1}(n?function t(){var e=r.exits[o++];if(!e)return a();e(n,t)}:a)()},b.prototype.exit=function(t,e){if("function"==typeof t)return this.exit("*",t);for(var n=new R(t,null,this),i=1;i<arguments.length;++i)this.exits.push(n.middleware(arguments[i]))},b.prototype.clickHandler=function(t){if(1===this._which(t)&&!(t.metaKey||t.ctrlKey||t.shiftKey||t.defaultPrevented)){var e,n,i,o=t.target,r=t.path||(t.composedPath?t.composedPath():null);if(r)for(var a=0;a<r.length;a++)if(r[a].nodeName&&"A"===r[a].nodeName.toUpperCase()&&r[a].href){o=r[a];break}for(;o&&"A"!==o.nodeName.toUpperCase();)o=o.parentNode;o&&"A"===o.nodeName.toUpperCase()&&(i="object"==typeof o.href&&"SVGAnimatedString"===o.href.constructor.name,o.hasAttribute("download")||"external"===o.getAttribute("rel")||(n=o.getAttribute("href"),!this._hashbang&&this._samePath(o)&&(o.hash||"#"===n)||n&&-1<n.indexOf("mailto:")||(i?o.target.baseVal:o.target)||(i||this.sameOrigin(o.href))&&(e="/"!==(e=i?o.href.baseVal:o.pathname+o.search+(o.hash||""))[0]?"/"+e:e,v&&e.match(/^\/[a-zA-Z]:\//)&&(e=e.replace(/^\/[a-zA-Z]:\//,"/")),n=e,i=this._getBase(),0===e.indexOf(i)&&(e=e.substr(i.length)),this._hashbang&&(e=e.replace("#!","")),(!i||n!==e||_&&"file:"===this._window.location.protocol)&&(t.preventDefault(),this.show(n)))))}},b.prototype._onpopstate=(f=!1,m?(g&&"complete"===document.readyState?f=!0:window.addEventListener("load",function(){setTimeout(function(){f=!0},0)}),function(t){var e;f&&(t.state?(e=t.state.path,this.replace(e,t.state)):_&&(t=this._window.location,this.show(t.pathname+t.search+t.hash,void 0,void 0,!1)))}):function(){}),b.prototype._which=function(t){return null==(t=t||m&&this._window.event).which?t.button:t.which},b.prototype._toURL=function(t){var e=this._window;if("function"==typeof URL&&_)return new URL(t,e.location.toString());if(g){e=e.document.createElement("a");return e.href=t,e}},b.prototype.sameOrigin=function(t){if(!t||!_)return!1;var e=this._toURL(t),t=this._window.location;return t.protocol===e.protocol&&t.hostname===e.hostname&&t.port===e.port},b.prototype._samePath=function(t){if(!_)return!1;var e=this._window.location;return t.pathname===e.pathname&&t.search===e.search},b.prototype._decodeURLEncodedURIComponent=function(t){return"string"==typeof t&&this._decodeURLComponents?decodeURIComponent(t.replace(/\+/g," ")):t},E.prototype.pushState=function(){var t=this.page,e=t._window,n=t._hashbang;t.len++,w&&e.history.pushState(this.state,this.title,n&&"/"!==this.path?"#!"+this.path:this.canonicalPath)},E.prototype.save=function(){var t=this.page;w&&"file:"!==t._window.location.protocol&&t._window.history.replaceState(this.state,this.title,t._hashbang&&"/"!==this.path?"#!"+this.path:this.canonicalPath)},R.prototype.middleware=function(n){var i=this;return function(t,e){if(i.match(t.path,t.params))return n(t,e);e()}},R.prototype.match=function(t,e){var n=this.keys,i=t.indexOf("?"),t=~i?t.slice(0,i):t,o=this.regexp.exec(decodeURIComponent(t));if(!o)return!1;for(var r=1,a=o.length;r<a;++r){var s=n[r-1],h=this.page._decodeURLEncodedURIComponent(o[r]);void 0===h&&hasOwnProperty.call(e,s.name)||(e[s.name]=h)}return!0};var k=function t(){var e=new b;function n(){return x.apply(e,arguments)}return n.callbacks=e.callbacks,n.exits=e.exits,n.base=e.base.bind(e),n.strict=e.strict.bind(e),n.start=e.start.bind(e),n.stop=e.stop.bind(e),n.show=e.show.bind(e),n.back=e.back.bind(e),n.redirect=e.redirect.bind(e),n.replace=e.replace.bind(e),n.dispatch=e.dispatch.bind(e),n.exit=e.exit.bind(e),n.configure=e.configure.bind(e),n.sameOrigin=e.sameOrigin.bind(e),n.clickHandler=e.clickHandler.bind(e),n.create=t,Object.defineProperty(n,"len",{get:function(){return e.len},set:function(t){e.len=t}}),Object.defineProperty(n,"current",{get:function(){return e.current},set:function(t){e.current=t}}),n.Context=E,n.Route=R,n}(),o=k;return o.default=k,o});
/*!
 * EventEmitter v5.2.4 - git.io/ee
 * Unlicense - http://unlicense.org/
 * Oliver Caldwell - http://oli.me.uk/
 * @preserve
 */
!function(e){"use strict";function t(){}function n(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function r(e){return function(){return this[e].apply(this,arguments)}}function i(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&i(e.listener)}var s=t.prototype,o=e.EventEmitter;s.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},s.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},s.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},s.addListener=function(e,t){if(!i(t))throw new TypeError("listener must be a function");var r,s=this.getListenersAsObject(e),o="object"==typeof t;for(r in s)s.hasOwnProperty(r)&&n(s[r],t)===-1&&s[r].push(o?t:{listener:t,once:!1});return this},s.on=r("addListener"),s.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},s.once=r("addOnceListener"),s.defineEvent=function(e){return this.getListeners(e),this},s.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},s.removeListener=function(e,t){var r,i,s=this.getListenersAsObject(e);for(i in s)s.hasOwnProperty(i)&&(r=n(s[i],t),r!==-1&&s[i].splice(r,1));return this},s.off=r("removeListener"),s.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},s.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},s.manipulateListeners=function(e,t,n){var r,i,s=e?this.removeListener:this.addListener,o=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)s.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?s.call(this,r,i):o.call(this,r,i));return this},s.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},s.removeAllListeners=r("removeEvent"),s.emitEvent=function(e,t){var n,r,i,s,o,u=this.getListenersAsObject(e);for(s in u)if(u.hasOwnProperty(s))for(n=u[s].slice(0),i=0;i<n.length;i++)r=n[i],r.once===!0&&this.removeListener(e,r.listener),o=r.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},s.trigger=r("emitEvent"),s.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},s.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},s._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},s._getEvents=function(){return this._events||(this._events={})},t.noConflict=function(){return e.EventEmitter=o,t},"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:e.EventEmitter=t}(this||{});
/* docma (dust) compiled templates */
(function(dust){dust.register("docma-404",body_0);function body_0(chk,ctx){return chk.p("navbar",ctx,ctx,{"boxed":"true"}).w("<div id=\"page-content-wrapper\"><div class=\"container container-boxed\"><br /><br /><h1>404</h1><hr /><h3>Page Not Found</h3><br />The file or page you have requested is not found. &nbsp;&nbsp;<br />Please make sure page address is entered correctly.<br /><br /><br /></div></div>");}body_0.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("docma-api",body_0);function body_0(chk,ctx){return chk.p("navbar",ctx,ctx,{}).w("<div id=\"wrapper\">").x(ctx.getPath(false, ["template","options","sidebar","enabled"]),ctx,{"block":body_1},{}).w("<div id=\"page-content-wrapper\"><div class=\"container\"><br />").s(ctx.get(["documentation"], false),ctx,{"block":body_2},{}).w("<br /><span class=\"docma-info\">Documentation built with <b><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://onury.io/docma\">Docma</a></b>.</span></div></div></div>");}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("<div id=\"sidebar-wrapper\">").p("sidebar",ctx,ctx,{}).w("</div>");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.p("symbol",ctx,ctx,{"symbol":ctx.getPath(true, []),"template":ctx.get(["template"], false)});}body_2.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("docma-content",body_0);function body_0(chk,ctx){return chk.p("navbar",ctx,ctx,{"boxed":"true"}).w("<div id=\"page-content-wrapper\"><div class='").h("eq",ctx,{"block":body_1},{"key":ctx.getPath(false, ["currentRoute","sourceType"]),"value":"md"},"h").w("'><div id=\"docma-content\"></div>").h("eq",ctx,{"block":body_2},{"key":ctx.getPath(false, ["currentRoute","sourceType"]),"value":"md"},"h").w("</div></div>");}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("container container-boxed");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("<br /><hr /><span class=\"docma-info\">Documentation built with <b><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://onury.io/docma\">Docma</a></b>.</span>");}body_2.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("enums",body_0);function body_0(chk,ctx){return chk.x(ctx.get(["$members"], false),ctx,{"block":body_1},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.h("eq",ctx,{"else":body_2,"block":body_4},{"key":ctx.getPath(false, ["template","options","symbols","enums"]),"value":"table"},"h");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("<div class=\"space-top-sm space-bottom-xs fw-bold\">Enumeration</div><ul class=\"param-list\">").s(ctx.get(["$members"], false),ctx,{"block":body_3},{}).w("</ul>");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("<li><div class=\"param-meta clearfix\"><span class=\"inline-block space-right-sm\"><code>").f(ctx.getPath(true, []),ctx,"h",["$longname","s","$dot_prop"]).w("</code>&nbsp;:&nbsp;<code>").f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></span><span class=\"param-info-box\"><span class=\"param-info value\">Value:&nbsp;</span><code>").f(ctx.getPath(true, []),ctx,"h",["$val"]).w("</code></span></div><div class=\"param-desc\">").f(ctx.getPath(true, []),ctx,"h",["s","$desc"]).w("</div></li>");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("<table class=\"table table-striped table-bordered\"><thead><tr><th>Enumeration</th><th>Type</th><th>Value</th><th>Description</th></tr></thead><tbody>").s(ctx.get(["$members"], false),ctx,{"block":body_5},{}).w("</tbody></table>");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<tr><td><code>").f(ctx.getPath(true, []),ctx,"h",["$longname","s","$dot_prop"]).w("</code></td><td><code>").f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></td><td><code>").f(ctx.getPath(true, []),ctx,"h",["$val"]).w("</code></td><td>").f(ctx.getPath(true, []),ctx,"h",["s","$desc"]).w("</td></tr>");}body_5.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("navbar",body_0);function body_0(chk,ctx){return chk.x(ctx.getPath(false, ["template","options","navbar","enabled"]),ctx,{"block":body_1},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("<nav class=\"navbar ").x(ctx.getPath(false, ["template","options","navbar","dark"]),ctx,{"block":body_2},{}).w("\"><div class=\"navbar-inner ").x(ctx.get(["boxed"], false),ctx,{"block":body_3},{}).w("\"><div class=\"navbar-brand\">").x(ctx.getPath(false, ["template","options","logo","dark"]),ctx,{"block":body_4},{}).w("<span class=\"navbar-title\"><a href=\"").f(ctx.getPath(false, ["template","options","title","href"]),ctx,"h").w("\">").f(ctx.getPath(false, ["template","options","title","label"]),ctx,"h").w("</a></span></div>").h("gt",ctx,{"block":body_7},{"key":ctx.getPath(false, ["template","options","navbar","menu","length"]),"value":0},"h").w("</div></nav>").x(ctx.getPath(false, ["template","options","navbar","fixed"]),ctx,{"block":body_16},{}).w("<div class=\"nav-overlay\"></div>");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("dark");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("container container-boxed");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.x(ctx.getPath(false, ["template","options","navbar","dark"]),ctx,{"else":body_5,"block":body_6},{});}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<img src=\"").f(ctx.getPath(false, ["template","options","logo","dark"]),ctx,"h").w("\" alt=\"logo\" class=\"navbar-logo\" />");}body_5.__dustBody=!0;function body_6(chk,ctx){return chk.w("<img src=\"").f(ctx.getPath(false, ["template","options","logo","light"]),ctx,"h").w("\" alt=\"logo\" class=\"navbar-logo\" />");}body_6.__dustBody=!0;function body_7(chk,ctx){return chk.w("<div class=\"navbar-menu-btn\" tabindex=\"0\"><i class=\"fas fa-lg fa-bars trans-all-ease\"></i><i class=\"fas fa-md fa-times trans-all-ease\"></i></div><div class=\"navbar-menu\"><ul class=\"navbar-list\">").s(ctx.getPath(false, ["template","options","navbar","menu"]),ctx,{"block":body_8},{}).w("</ul></div>");}body_7.__dustBody=!0;function body_8(chk,ctx){return chk.x(ctx.get(["items"], false),ctx,{"else":body_9,"block":body_10},{});}body_8.__dustBody=!0;function body_9(chk,ctx){return chk.p("navitem",ctx,ctx.rebase(ctx.getPath(true, [])),{});}body_9.__dustBody=!0;function body_10(chk,ctx){return chk.w("<li class=\"dropdown\"><a href=\"").x(ctx.get(["href"], false),ctx,{"else":body_11,"block":body_12},{}).w("\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\"><i class=\"nav-icon ").f(ctx.get(["iconClass"], false),ctx,"h").w("\" aria-hidden=\"true\"></i>").x(ctx.get(["label"], false),ctx,{"block":body_13},{}).x(ctx.get(["chevron"], false),ctx,{"block":body_14},{}).w("</a><ul>").s(ctx.get(["items"], false),ctx,{"block":body_15},{}).w("</ul></li>");}body_10.__dustBody=!0;function body_11(chk,ctx){return chk.w("#");}body_11.__dustBody=!0;function body_12(chk,ctx){return chk.f(ctx.get(["href"], false),ctx,"h");}body_12.__dustBody=!0;function body_13(chk,ctx){return chk.w("<span class=\"nav-label\">").f(ctx.get(["label"], false),ctx,"h").w("</span>");}body_13.__dustBody=!0;function body_14(chk,ctx){return chk.w("<i class=\"nav-arrow fas fa-sm fa-angle-down\"></i>");}body_14.__dustBody=!0;function body_15(chk,ctx){return chk.w(" ").p("navitem",ctx,ctx.rebase(ctx.getPath(true, [])),{}).w(" ");}body_15.__dustBody=!0;function body_16(chk,ctx){return chk.w("<div class=\"nav-spacer\"></div>");}body_16.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("navitem",body_0);function body_0(chk,ctx){return chk.x(ctx.get(["separator"], false),ctx,{"else":body_1,"block":body_6},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("<li><a href=\"").x(ctx.get(["href"], false),ctx,{"else":body_2,"block":body_3},{}).w("\" target=\"").f(ctx.get(["target"], false),ctx,"h").w("\">").x(ctx.get(["iconClass"], false),ctx,{"block":body_4},{}).x(ctx.get(["label"], false),ctx,{"block":body_5},{}).w("</a></li>");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("#");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.f(ctx.get(["href"], false),ctx,"h");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("<i class=\"nav-icon ").f(ctx.get(["iconClass"], false),ctx,"h").w("\" aria-hidden=\"true\"></i>");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<span class=\"nav-label\">").f(ctx.get(["label"], false),ctx,"h",["s"]).w("</span>");}body_5.__dustBody=!0;function body_6(chk,ctx){return chk.w("<li role=\"separator\" class=\"divider\"></li>");}body_6.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("params",body_0);function body_0(chk,ctx){return chk.x(ctx.get(["params"], false),ctx,{"block":body_1},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.h("eq",ctx,{"else":body_2,"block":body_8},{"key":ctx.getPath(false, ["template","options","symbols","params"]),"value":"table"},"h");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("<div class=\"space-top-sm space-bottom-xs fw-bold\">Parameters</div><ul class=\"param-list\">").s(ctx.get(["params"], false),ctx,{"block":body_3},{}).w("</ul>");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("<li><div class=\"param-meta clearfix\"><span class=\"inline-block space-right-sm\"><code>").x(ctx.get(["variable"], false),ctx,{"block":body_4},{}).f(ctx.get(["name"], false),ctx,"h",["s","$dot_prop"]).w("</code>&nbsp;:&nbsp;<code>").x(ctx.get(["variable"], false),ctx,{"block":body_5},{}).f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></span><span class=\"param-info-box\">").x(ctx.get(["optional"], false),ctx,{"else":body_6,"block":body_7},{}).w("</span></div><div class=\"param-desc\">").f(ctx.getPath(true, []),ctx,"h",["s","$param_desc"]).w("</div></li>");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("...");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("...");}body_5.__dustBody=!0;function body_6(chk,ctx){return chk.w("<span class=\"param-info required boxed\">Required</span>");}body_6.__dustBody=!0;function body_7(chk,ctx){return chk.w("<span class=\"param-info default\">Default:&nbsp;</span><code>").f(ctx.getPath(true, []),ctx,"h",["$def"]).w("</code>");}body_7.__dustBody=!0;function body_8(chk,ctx){return chk.w("<table class=\"table table-striped table-bordered\"><thead><tr><th>Param</th><th>Type</th><th>Description</th></tr></thead><tbody>").s(ctx.get(["params"], false),ctx,{"block":body_9},{}).w("</tbody></table>");}body_8.__dustBody=!0;function body_9(chk,ctx){return chk.w("<tr><td><code>").x(ctx.get(["variable"], false),ctx,{"block":body_10},{}).f(ctx.get(["name"], false),ctx,"h",["s","$dot_prop"]).w("</code></td><td><code>").x(ctx.get(["variable"], false),ctx,{"block":body_11},{}).f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></td><td>").x(ctx.get(["optional"], false),ctx,{"else":body_12,"block":body_13},{}).f(ctx.getPath(true, []),ctx,"h",["s","$param_desc"]).w("</td></tr>");}body_9.__dustBody=!0;function body_10(chk,ctx){return chk.w("...");}body_10.__dustBody=!0;function body_11(chk,ctx){return chk.w("...");}body_11.__dustBody=!0;function body_12(chk,ctx){return chk.w("<span class=\"param-info required boxed\">Required</span>");}body_12.__dustBody=!0;function body_13(chk,ctx){return chk.w("<span class=\"param-info default boxed\">Default</span><span class=\"color-gray\">:</span><code>").f(ctx.getPath(true, []),ctx,"h",["$def"]).w("</code>");}body_13.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("properties",body_0);function body_0(chk,ctx){return chk.x(ctx.get(["properties"], false),ctx,{"block":body_1},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.h("eq",ctx,{"else":body_2,"block":body_4},{"key":ctx.getPath(false, ["template","options","symbols","props"]),"value":"table"},"h");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("<div class=\"space-top-sm space-bottom-xs fw-bold\">Properties</div><ul class=\"param-list\">").s(ctx.get(["properties"], false),ctx,{"block":body_3},{}).w("</ul>");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("<li><div class=\"param-meta clearfix\"><span class=\"inline-block space-right-sm\"><code>").f(ctx.get(["name"], false),ctx,"h",["s","$dot_prop"]).w("</code>&nbsp;:&nbsp;<code>").f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></span></div><div class=\"param-desc\">").f(ctx.get(["description"], false),ctx,"h",["s","$p"]).w("</div></li>");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("<table class=\"table table-striped table-bordered\"><thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead><tbody>").s(ctx.get(["properties"], false),ctx,{"block":body_5},{}).w("</tbody></table>");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<tr><td><code>").f(ctx.get(["name"], false),ctx,"h",["s","$dot_prop"]).w("</code></td><td><code>").f(ctx.getPath(true, []),ctx,"h",["s","$type"]).w("</code></td><td>").f(ctx.get(["description"], false),ctx,"h",["s","$p"]).w("</td></tr>");}body_5.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("sidebar",body_0);function body_0(chk,ctx){return chk.w("<div class=\"sidebar-header\"><div id=\"sidebar-toggle\"><i class=\"fas fa-lg fa-bars trans-all-ease\"></i></div><div class=\"sidebar-brand\">").x(ctx.getPath(false, ["template","options","logo","light"]),ctx,{"block":body_1},{}).w("<span class=\"sidebar-title\"><a href=\"").f(ctx.getPath(false, ["template","options","title","href"]),ctx,"h").w("\">").f(ctx.getPath(false, ["template","options","title","label"]),ctx,"h").w("</a></span></div>").x(ctx.getPath(false, ["template","options","sidebar","search"]),ctx,{"block":body_2},{}).x(ctx.getPath(false, ["template","options","sidebar","toolbar"]),ctx,{"block":body_3},{}).w("</div><div class=\"sidebar-nav-container\"><ul class=\"sidebar-nav\">").f(ctx.get(["symbols"], false),ctx,"h",["s","$navnodes"]).w("</ul></div>");}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("<img src=\"").f(ctx.getPath(false, ["template","options","logo","light"]),ctx,"h").w("\" alt=\"logo\" class=\"sidebar-logo\" />");}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.w("<div class=\"sidebar-search\"><div class=\"sidebar-search-icon\"><i class=\"fas fa-md fa-search\"></i></div><input id=\"txt-search\" type=\"search\" placeholder=\"Search...\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" /><div class=\"sidebar-search-clean\"><i class=\"fas fa-lg fa-times-circle\"></i></div></div>");}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("<div class=\"sidebar-toolbar\"><div class=\"toolbar-scope-filters\"></div><div class=\"toolbar-kind-filters\"></div><div class=\"toolbar-buttons\"><span class=\"btn-switch-fold inline-block\" title=\"Fold Symbols\">").h("eq",ctx,{"else":body_4,"block":body_5},{"key":ctx.getPath(false, ["template","options","sidebar","itemsFolded"]),"type":"boolean","value":"true"},"h").w("</span><span class=\"btn-switch-outline inline-block space-left-xs\" title=\"Toggle Outline\">").h("eq",ctx,{"else":body_6,"block":body_7},{"key":ctx.getPath(false, ["template","options","sidebar","outline"]),"type":"string","value":"tree"},"h").w("</span></div></div>");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("<i class=\"far fa-lg fa-caret-square-down\"></i>");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<i class=\"far fa-lg fa-caret-square-right\"></i>");}body_5.__dustBody=!0;function body_6(chk,ctx){return chk.w("<i class=\"fas fa-lg fa-outdent\"></i>");}body_6.__dustBody=!0;function body_7(chk,ctx){return chk.w("<i class=\"fas fa-lg fa-indent\"></i>");}body_7.__dustBody=!0;return body_0}(dust));
(function(dust){dust.register("symbol",body_0);function body_0(chk,ctx){return chk.nx(ctx.getPath(false, ["symbol","$hide"]),ctx,{"block":body_1},{});}body_0.__dustBody=!0;function body_1(chk,ctx){return chk.w("<div id=\"").f(ctx.get(["symbol"], false),ctx,"h",["$id"]).w("\" class=\"symbol-container\"><div class=\"symbol-heading\"><div class=\"symbol\"><a href=\"#").f(ctx.get(["symbol"], false),ctx,"h",["$id"]).w("\"><i class=\"fas fa-link color-gray-light\" aria-hidden=\"true\"></i></a><code class=\"symbol-name\">").f(ctx.get(["symbol"], false),ctx,"h",["s","$longname_params"]).w("</code><span class=\"symbol-sep\">").f(ctx.get(["symbol"], false),ctx,"h",["$type_sep"]).w("</span><code class=\"symbol-type\">").f(ctx.get(["symbol"], false),ctx,"h",["s","$type"]).w("</code>").f(ctx.get(["symbol"], false),ctx,"h",["s","$tags"]).w("</div></div><div class=\"symbol-definition\"><div class=\"symbol-info\">").x(ctx.getPath(false, ["symbol","alias"]),ctx,{"block":body_2},{}).x(ctx.getPath(false, ["symbol","augments"]),ctx,{"block":body_4},{}).x(ctx.getPath(false, ["symbol","version"]),ctx,{"block":body_5},{}).x(ctx.getPath(false, ["symbol","since"]),ctx,{"block":body_6},{}).x(ctx.getPath(false, ["symbol","copyright"]),ctx,{"block":body_7},{}).x(ctx.getPath(false, ["symbol","author"]),ctx,{"block":body_8},{}).x(ctx.getPath(false, ["symbol","license"]),ctx,{"block":body_9},{}).w("</div>").x(ctx.getPath(false, ["symbol","defaultvalue"]),ctx,{"block":body_10},{}).f(ctx.get(["symbol"], false),ctx,"h",["s","$desc"]).x(ctx.getPath(false, ["symbol","see"]),ctx,{"block":body_11},{}).h("ne",ctx,{"block":body_16},{"key":ctx.getPath(false, ["symbol","meta","code","type"]),"value":"ClassDeclaration"},"h").x(ctx.getPath(false, ["symbol","fires"]),ctx,{"block":body_19},{}).x(ctx.getPath(false, ["symbol","returns"]),ctx,{"block":body_21},{}).x(ctx.getPath(false, ["symbol","generator"]),ctx,{"block":body_24},{}).x(ctx.getPath(false, ["symbol","exceptions"]),ctx,{"block":body_28},{}).x(ctx.getPath(false, ["symbol","isEnum"]),ctx,{"block":body_31},{}).x(ctx.getPath(false, ["symbol","examples"]),ctx,{"block":body_32},{}).x(ctx.getPath(false, ["template","options","symbols","meta"]),ctx,{"block":body_35},{}).w("</div></div><hr />").x(ctx.getPath(false, ["symbol","$constructor"]),ctx,{"block":body_39},{}).nx(ctx.getPath(false, ["symbol","isEnum"]),ctx,{"block":body_41},{});}body_1.__dustBody=!0;function body_2(chk,ctx){return chk.nx(ctx.get(["$constructor"], false),ctx,{"block":body_3},{});}body_2.__dustBody=!0;function body_3(chk,ctx){return chk.w("<p><b class=\"caption\">Alias:</b> <code>").f(ctx.getPath(false, ["symbol","alias"]),ctx,"h",["s","$dot_prop"]).w("</code></p>");}body_3.__dustBody=!0;function body_4(chk,ctx){return chk.w("<p><b class=\"caption\">Extends:</b> ").f(ctx.get(["symbol"], false),ctx,"h",["s","$extends"]).w("</p>");}body_4.__dustBody=!0;function body_5(chk,ctx){return chk.w("<p><b class=\"caption\">Version:</b>&nbsp;").f(ctx.getPath(false, ["symbol","version"]),ctx,"h",["s"]).w("</p>");}body_5.__dustBody=!0;function body_6(chk,ctx){return chk.w("<p><b class=\"caption\">Since:</b>&nbsp;").f(ctx.getPath(false, ["symbol","since"]),ctx,"h",["s"]).w("</p>");}body_6.__dustBody=!0;function body_7(chk,ctx){return chk.w("<p><b class=\"caption\">Copyright:</b>&nbsp;").f(ctx.getPath(false, ["symbol","copyright"]),ctx,"h",["s"]).w("</p>");}body_7.__dustBody=!0;function body_8(chk,ctx){return chk.w("<p><b class=\"caption\">Author:</b>&nbsp;").f(ctx.getPath(false, ["symbol","author"]),ctx,"h",["s","$author"]).w("</p>");}body_8.__dustBody=!0;function body_9(chk,ctx){return chk.w("<p><b class=\"caption\">License:</b>&nbsp;").f(ctx.getPath(false, ["symbol","license"]),ctx,"h",["s"]).w("</p>");}body_9.__dustBody=!0;function body_10(chk,ctx){return chk.w("<p class=\"symbol-def-val\"><b class=\"caption\"><i>Value:</i></b>&nbsp;<code>").f(ctx.get(["symbol"], false),ctx,"h",["$def"]).w("</code></p>");}body_10.__dustBody=!0;function body_11(chk,ctx){return chk.w("<p class=\"no-margin\"><b>See</b>").h("gt",ctx,{"else":body_12,"block":body_14},{"key":ctx.getPath(false, ["symbol","see","length"]),"value":1},"h").w("</p>");}body_11.__dustBody=!0;function body_12(chk,ctx){return chk.s(ctx.getPath(false, ["symbol","see"]),ctx,{"block":body_13},{});}body_12.__dustBody=!0;function body_13(chk,ctx){return chk.w("&nbsp;").f(ctx.getPath(true, []),ctx,"h",["s","$pl"]);}body_13.__dustBody=!0;function body_14(chk,ctx){return chk.w("<ul>").s(ctx.getPath(false, ["symbol","see"]),ctx,{"block":body_15},{}).w("</ul>");}body_14.__dustBody=!0;function body_15(chk,ctx){return chk.w("<li>").f(ctx.getPath(true, []),ctx,"h",["s","$pl"]).w("</li>");}body_15.__dustBody=!0;function body_16(chk,ctx){return chk.p("params",ctx,ctx.rebase(ctx.get(["symbol"], false)),{"template":ctx.get(["template"], false)}).w(" ").x(ctx.getPath(false, ["symbol","isEnum"]),ctx,{"else":body_17,"block":body_18},{});}body_16.__dustBody=!0;function body_17(chk,ctx){return chk.p("properties",ctx,ctx.rebase(ctx.get(["symbol"], false)),{"template":ctx.get(["template"], false)}).w(" ");}body_17.__dustBody=!0;function body_18(chk,ctx){return chk;}body_18.__dustBody=!0;function body_19(chk,ctx){return chk.h("gt",ctx,{"block":body_20},{"key":ctx.getPath(false, ["symbol","fires","length"]),"value":"0","type":"number"},"h");}body_19.__dustBody=!0;function body_20(chk,ctx){return chk.w("<p><b class=\"caption\">Emits:</b>&nbsp;&nbsp;").f(ctx.get(["symbol"], false),ctx,"h",["s","$emits"]).w("</p>");}body_20.__dustBody=!0;function body_21(chk,ctx){return chk.h("gt",ctx,{"else":body_22,"block":body_23},{"key":ctx.getPath(false, ["symbol","returns","length"]),"value":"1","type":"number"},"h");}body_21.__dustBody=!0;function body_22(chk,ctx){return chk.w("<p><b class=\"caption\">Returns:</b>&nbsp;&nbsp;").f(ctx.get(["symbol"], false),ctx,"h",["s","$returns"]).w("</p>");}body_22.__dustBody=!0;function body_23(chk,ctx){return chk.w("<b class=\"caption\">Returns:</b><p class=\"pad-left\">").f(ctx.get(["symbol"], false),ctx,"h",["s","$returns"]).w("</p>");}body_23.__dustBody=!0;function body_24(chk,ctx){return chk.x(ctx.getPath(false, ["symbol","yields"]),ctx,{"block":body_25},{});}body_24.__dustBody=!0;function body_25(chk,ctx){return chk.h("gt",ctx,{"else":body_26,"block":body_27},{"key":ctx.getPath(false, ["symbol","yields","length"]),"value":"1","type":"number"},"h");}body_25.__dustBody=!0;function body_26(chk,ctx){return chk.w("<p><b class=\"caption\">Yields:</b>&nbsp;&nbsp;").f(ctx.get(["symbol"], false),ctx,"h",["s","$yields"]).w("</p>");}body_26.__dustBody=!0;function body_27(chk,ctx){return chk.w("<b class=\"caption\">Yields:</b><p class=\"pad-left\">").f(ctx.get(["symbol"], false),ctx,"h",["s","$yields"]).w("</p>");}body_27.__dustBody=!0;function body_28(chk,ctx){return chk.h("gt",ctx,{"else":body_29,"block":body_30},{"key":ctx.getPath(false, ["symbol","exceptions","length"]),"value":"1","type":"number"},"h");}body_28.__dustBody=!0;function body_29(chk,ctx){return chk.w("<p><b class=\"caption\">Throws:</b>&nbsp;&nbsp;").f(ctx.get(["symbol"], false),ctx,"h",["s","$exceptions"]).w("</p>");}body_29.__dustBody=!0;function body_30(chk,ctx){return chk.w("<b class=\"caption\">Throws:</b><p class=\"pad-left\">").f(ctx.get(["symbol"], false),ctx,"h",["s","$exceptions"]).w("</p>");}body_30.__dustBody=!0;function body_31(chk,ctx){return chk.p("enums",ctx,ctx.rebase(ctx.get(["symbol"], false)),{"template":ctx.get(["template"], false)}).w(" ");}body_31.__dustBody=!0;function body_32(chk,ctx){return chk.s(ctx.getPath(false, ["symbol","examples"]),ctx,{"block":body_33},{});}body_32.__dustBody=!0;function body_33(chk,ctx){return chk.w("<p><b>Example").h("gt",ctx,{"block":body_34},{"key":ctx.getPath(false, ["symbol","examples","length"]),"value":1},"h").w("</b>").f(ctx.getPath(true, []),ctx,"h",["$get_caption","s"]).w("</p><pre><code>").f(ctx.getPath(true, []),ctx,"h",["$nt","$tnl","$remove_caption"]).w("</code></pre>");}body_33.__dustBody=!0;function body_34(chk,ctx){return chk.w("&nbsp;#").h("math",ctx,{},{"key":ctx.get(["$idx"], false),"method":"add","operand":"1"},"h");}body_34.__dustBody=!0;function body_35(chk,ctx){return chk.x(ctx.getPath(false, ["symbol","meta","lineno"]),ctx,{"block":body_36},{});}body_35.__dustBody=!0;function body_36(chk,ctx){return chk.w("<p class=\"symbol-meta\">").x(ctx.getPath(false, ["symbol","meta","filename"]),ctx,{"block":body_37},{}).x(ctx.getPath(false, ["symbol","meta","lineno"]),ctx,{"block":body_38},{}).w("</p>");}body_36.__dustBody=!0;function body_37(chk,ctx){return chk.w("<b>File:</b> ").f(ctx.getPath(false, ["symbol","meta","filename"]),ctx,"h").w("&nbsp;&nbsp;");}body_37.__dustBody=!0;function body_38(chk,ctx){return chk.w("<b>Line:</b> ").f(ctx.getPath(false, ["symbol","meta","lineno"]),ctx,"h").w("&nbsp;&nbsp;");}body_38.__dustBody=!0;function body_39(chk,ctx){return chk.h("ne",ctx,{"block":body_40},{"key":ctx.getPath(false, ["symbol","hideconstructor"]),"type":"boolean","value":"true"},"h");}body_39.__dustBody=!0;function body_40(chk,ctx){return chk.p("symbol",ctx,ctx,{"symbol":ctx.getPath(false, ["symbol","$constructor"]),"template":ctx.get(["template"], false)});}body_40.__dustBody=!0;function body_41(chk,ctx){return chk.s(ctx.getPath(false, ["symbol","$members"]),ctx,{"block":body_42},{});}body_41.__dustBody=!0;function body_42(chk,ctx){return chk.p("symbol",ctx,ctx,{"symbol":ctx.getPath(true, []),"template":ctx.get(["template"], false)});}body_42.__dustBody=!0;return body_0}(dust));
/*!
 * Docma (Web) Core
 * https://github.com/onury/docma
 * @license MIT
 */
var DocmaWeb = (function () {
'use strict';

var Utils={};function getStr(e){return"string"==typeof e?e.trim():""}function bracket(e){return/^[a-z$_][a-z\d$_]*$/i.test(e)?"."+e:'["'+e+'"]'}function fixBracket(r){return r.replace(/(.*?)\."([^"]+)"\]?$/,function(e,t,n){return n?t+bracket(n):r})}function cleanName(e){return fixBracket(e=getStr(e).replace(/([^>]+>)?~?(.*)/,"$2").replace(/^"[^"]+"\.?~?([^"]+)$/,"$1").replace(/^(module\.)?exports\./,"").replace(/^module:/,""))}function getMetaCodeName(e){return cleanName(Utils.notate(e,"meta.code.name")||"")}function identity(e){return e}function hasConstructorTag(e){return/\*\s+@construct(s|or)\b/.test(e.comment)}Utils.type=function(e){return Object.prototype.toString.call(e).match(/\s(\w+)/i)[1].toLowerCase()},Utils.notate=function(e,t){if("object"==typeof e){var n=Array.isArray(t)?t:t.split("."),t=n[0];if(t)return t=e[t],1<n.length?(n.shift(),Utils.notate(t,n)):t}},Utils.getName=function(e){if(e.alias){var t=getMetaCodeName(e);if(t)return t.replace(/.*?[#.~:](\w+)$/i,"$1")}return e.name},Utils.getLongName=function(e){var t=cleanName(e.longname),n=getMetaCodeName(e)||t,r=e.memberof||"",r=/^".*"$/.test(r)?"":cleanName(r);if(e.name===r&&Utils.isConstructor(e))return n;n=e.alias?n:t;if(!r)return n;t=new RegExp("^"+r+"[#.~:]"),e="instance"===e.scope?"#":".";return t.test(n)?n:r+e+n},Utils.getFullName=Utils.getLongName,Utils.getCodeName=function(e){return getMetaCodeName(e)||Utils.getLongName(e)},Utils.getSymbolByName=function(e,t){var n,r,i;if("object"===Utils.type(e)){for(var l=Object.keys(e),o=0;o<l.length;o++)if(r=e[l[o]].documentation,i=Utils.getSymbolByName(r,t))return i;return null}for(r=e,o=0;o<r.length;o++){if((n=r[o]).name===t||n.longname===t||Utils.getFullName(n)===t)return n;if(n.$members&&(i=Utils.getSymbolByName(n.$members,t)))return i}return null},Utils.getLevels=function(e){e=("string"==typeof e?e:e.$longname)||"";return(e=cleanName(e))?((e||"").split(/[.#~]/)||[]).length:0},Utils.getParentName=function(e){var t;if("string"!=typeof e){if(e.memberof&&!1===/^".*"$/.test(e.memberof))return cleanName(e.memberof);t=cleanName(e.$longname)}else t=cleanName(e);return t&&/[.#~]/g.test(t)?t.replace(/[.#~][^.#~]*$/,""):""},Utils.getParent=function(e,t){t="string"==typeof t?Utils.getSymbolByName(e,t):t;if(!t)return null;t=Utils.getParentName(t);return t?Utils.getSymbolByName(e,t):null},Utils.isDeprecated=function(e){return e.deprecated},Utils.isGlobal=function(e){return"global"===e.scope},Utils.isNamespace=function(e){return"namespace"===e.kind},Utils.isModule=function(e){return"module"===e.kind},Utils.isMixin=function(e){return"mixin"===e.kind},Utils.isClass=function(e){return"class"===e.kind&&"MethodDefinition"!==Utils.notate(e,"meta.code.type")&&!hasConstructorTag(e)},Utils.isConstant=function(e){return"constant"===e.kind},Utils.isConstructor=function(e){return"class"===e.kind&&("MethodDefinition"===Utils.notate(e,"meta.code.type")||hasConstructorTag(e))},Utils.isStaticMember=function(e){return"static"===e.scope},Utils.isStatic=Utils.isStaticMember,Utils.isInner=function(e){return"inner"===e.scope},Utils.isInstanceMember=function(e){return"instance"===e.scope},Utils.isInterface=function(e){return"interface"===e.scope},Utils.isMethod=function(e){var t=Utils.notate(e,"meta.code.type");return"function"===e.kind||"FunctionExpression"===t||"FunctionDeclaration"===t},Utils.isFunction=Utils.isMethod,Utils.isInstanceMethod=function(e){return Utils.isInstanceMember(e)&&Utils.isMethod(e)},Utils.isStaticMethod=function(e){return Utils.isStaticMember(e)&&Utils.isMethod(e)},Utils.isProperty=function(e){return"member"===e.kind&&!Utils.isMethod(e)},Utils.isInstanceProperty=function(e){return Utils.isInstanceMember(e)&&Utils.isProperty(e)},Utils.isStaticProperty=function(e){return Utils.isStaticMember(e)&&Utils.isProperty(e)},Utils.isTypeDef=function(e){return"typedef"===e.kind},Utils.isCustomType=Utils.isTypeDef,Utils.isCallback=function(e){var t=(e.type||{}).names||[];return"typedef"===e.kind&&0<=(e.comment||"").indexOf("@callback "+e.longname)&&1===t.length&&"function"===t[0]},Utils.isEnum=function(e){return Boolean(e.isEnum)},Utils.isEvent=function(e){return"event"===e.kind},Utils.isExternal=function(e){return"external"===e.kind},Utils.isGenerator=function(e){return e.generator&&"function"===e.kind},Utils.isReadOnly=function(e){return e.readonly},Utils.isPublic=function(e){return"string"!=typeof e.access||"public"===e.access},Utils.isPrivate=function(e){return"private"===e.access},Utils.isPackagePrivate=function(e){return"package"===e.access},Utils.isProtected=function(e){return"protected"===e.access},Utils.isUndocumented=function(e){return!e.comments},Utils.hasDescription=function(e){return Boolean(getStr(e.classdesc)||getStr(e.description))},Utils.trimLeft=function(e){return e.replace(/^[\s\n\r\-—]*/,"")},Utils.trimNewLines=function(e){return e.replace(/^[\r\n]+|[\r\n]+$/,"")},Utils.parseTicks=function(e){return"string"!=typeof e?"":e.replace(/(```\s*)([\s\S]*?)(\s*```)/g,function(e,t,n){return Utils.normalizeTabs(Utils._wrapCode(n,!0,!0).replace(/`/g,"&#x60;"))}).replace(/(`)(.*?)(`)/g,function(e,t,n){return Utils._wrapCode(n,!0)})},Utils.parseNewLines=function(e,n){return n=n||{},Utils._tokenize(e,function(e,t){if(t)return e;t=e.split(/[\r\n]{2,}/);return t.length<=1&&n.keepIfSingle?e:t.map(function(e){return"<p>"+e+"</p>"}).join("")}).join("")},Utils.parseLinks=function(e,i){if("string"!=typeof e)return"";i=i||{};e=e.replace(/\{@link +([^}]*?)\}/g,function(e,t){var n,r,t=t.split("|");return 1===t.length?n=r=t[0].trim():(n=t[0].trim(),r=t[1].trim()),!1===/[/?&=]/.test(n)&&"#"!==n[0]&&(n="#"+n),'<a href="'+n+'"'+(i.target?' target="'+i.target+'" rel="noopener noreferrer"':"")+">"+r+"</a>"});return Utils.parseTicks(e)},Utils.parse=function(e,t){return t=t||{},e=Utils.trimLeft(e),e=Utils.parseNewLines(e,t),e=Utils.parseTicks(e),Utils.parseLinks(e,t)},Utils.normalizeTabs=function(e){if("string"!=typeof e)return"";var r,t=e.match(/^\s*/gm),n=1/0;return t.forEach(function(e,t){e=e.replace(/\t/g,"  "),0<t&&(n=Math.min(e.length,n))}),n!==1/0&&(t=new RegExp("^\\s{"+n+"}","g"),e=e.replace(t,"")),(e=e.replace(/^\s*/,"")).replace(/([\r\n]+)(\s+)/gm,function(e,t,n){return r=n.replace(/\t/g,"  "),t+new Array(r.length-r.length%2+1).join(" ")})},Utils.getKeywords=function(e){if("string"==typeof e)return e.toLowerCase();var t=Utils.getFullName(e)+" "+e.longname+" "+e.name+" "+(e.alias||"")+" "+(e.memberOf||"")+" "+(e.$kind||"")+" "+(e.scope||"")+" "+(e.classdesc||"")+" "+(e.description||"")+" "+(e.filename||"")+" "+(e.readonly?"readonly":"")+(e.isEnum?"enum":"");return Utils.isConstructor(e)&&(t+=" constructor"),Utils.isMethod(e)&&(t+=" method"),Utils.isProperty(e)&&(t+=" property"),t.replace(/[><"'`\n\r]/g,"").toLowerCase()},Utils.getCodeFileInfo=function(e){return{filename:Utils.notate(e,"meta.filename"),lineno:Utils.notate(e,"meta.lineno"),path:Utils.notate(e,"meta.path")}},Utils.getSymbolLink=function(e,t){if("string"!=typeof t)return t.$docmaLink;t=Utils.getSymbolByName(e,t);return t?t.$docmaLink:""};var reEndBrackets=/\[\]$/,reTypeParts=/^([^<]+?)(?:\.)?(?:<\(([^>)]+)\)>)?(?:<([^>]+)>)?(\[\])?$/;function _link(e,t,n){var r,i=reEndBrackets.test(t)?"[]":"",l=(t||"").replace(reEndBrackets,""),o=n||{},n="";return"internal"!==o.linkType&&(r=Utils._getTypeExternalLink(l))&&(n=' target="_blank" rel="noopener noreferrer"'),r||"external"===o.linkType||(r=Utils.getSymbolLink(e,l)),r&&(t='<a href="'+r+'"'+n+">"+(o.displayText||l)+i+"</a>"),t}function serializer(r){var i=[],l=[];return function(e,t){return 2e3<i.length?"[Too Big Object]":(0<i.length?(~(n=i.indexOf(this))?(i.splice(n+1),l.splice(n,1/0,e)):(i.push(this),l.push(e)),0<=i.indexOf(t)&&(t=i[0]===t?"[Circular ~]":"[Circular ~."+l.slice(0,i.indexOf(t)).join(".")+"]")):i.push(t),r?r.call(this,e,t):t);var n}}function decodeHash(e){return decodeURIComponent(e).replace(/^#/,"")}Utils._parseAnchorLinks=function(t,e,n){var r=e.match(reTypeParts);if(!r||!r[1])return"";var i=r[4]||"",e=r[2]||r[3]||"";return e=(e=e&&e.split(",").map(function(e){return e.trim().split("|").map(function(e){return _link(t,e,n)}).join('<span class="code-delim">|</span>')}).join('<span class="code-delim">, </span>'))&&"&lt;"+e+"&gt;",_link(t,r[1],n)+e+i},Utils.getTypes=function(t,e,n){var r=n||{},n=(n="class"===e.kind?["class"]:Utils.notate(e,"type.names")||[]).map(function(e){return r.links&&(e=Utils._parseAnchorLinks(t,e,{linkType:r.links})),e}).join('<span class="code-delim">|</span>');return e.isEnum?"enum&lt;"+n+"&gt;":n},Utils.getReturnTypes=function(n,e,t){e=e.returns;if(!Array.isArray(e))return"void";var r=t||{},e=e.reduce(function(e,t){t=Utils.notate(t,"type.names")||[];return r.links&&(t=t.map(function(e){return Utils._parseAnchorLinks(n,e,{linkType:r.links})})),e.concat(t)},[]);return 0<e.length?e.join('<span class="code-delim">|</span>'):"void"},Utils.getCodeTags=function(n,e,t){var r=t||{};return e.map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(r.demileter||",")},Utils.getFormattedTypeList=function(n,e,t){if(!Array.isArray(e)||0===e.length)return"";var r=t||{},i='<span class="code-delim">'+(r.delimeter||"|")+"</span>",l="boolean"!=typeof r.descriptions||r.descriptions,o=r.descDelimeter||"&nbsp;&nbsp;—&nbsp;&nbsp;",a="",e=e.map(function(e){return l&&(a=(a=Utils.parse(e.description||"",{keepIfSingle:!0}))&&o+a),e.type?(e.type.names||[]).map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(i)+a:a?"— "+a:""});return 1<e.length?"<ul><li>"+e.join("</li><li>")+"</li></ul>":e},Utils.getEmittedEvents=function(t,e,n){if(!e||0===e.length)return"";var r,i=n||{},n=i.delimeter||", ";return(e||[]).map(function(e){if(r=e.split(/\s*[\s-—]\s*/g),r=(r[0]||"").trim(),i.links){e=Utils._parseAnchorLinks(t,r,{linkType:i.links});return Utils._wrapCode(e,!1)}return Utils._wrapCode(r,!0)}).join(n)},Utils._find=function(e,t){if(!e||!t)return null;for(var n,r=null,i=0;i<e.length;i++)if((n=e[i])&&"object"==typeof n){for(var l in t)if(void 0!==t[l]&&t.hasOwnProperty(l)){if(t[l]!==n[l]){r=null;break}r=n}if(r)break}return r},Utils._assign=function(e,t,n){for(var r in e=e||{},t)t.hasOwnProperty(r)&&(n?Object.defineProperty(e,r,{enumerable:!0,value:t[r]}):e[r]=t[r]);return e},Utils._values=function(e){if(Array.isArray(e))return e;var t,n=[];for(t in e)e.hasOwnProperty(t)&&n.push(e[t]);return n},Utils._wrapCode=function(e,t,n){return"string"!=typeof e?"":(void 0!==t&&!0!==t||(e=e.replace(/</g,"&lt;").replace(/>/g,"&gt;")),e="<code>"+e+"</code>",n?"<pre>"+e+"</pre>":e)},Utils._tokenize=function(e,t){"function"!=typeof t&&(t=identity);if(e.indexOf("```")<0)return[t(e,!1)];for(var n="```".length,r="",i="",l=[],o=!1,a=0;a<e.length;a++)r+=e[a],i+=e[a],r.length>n&&(r=r.slice(-n)),"```"===r&&(i=(o=!o)?(l.push(t(i.slice(0,-n),!1)),r):(l.push(t(i,!0)),""));return l},Utils._ensureSlash=function(e,t,n){return t?(e&&"/"!==t.slice(0,1)&&(t="/"+t),n&&"/"!==t.slice(-1)&&(t+="/"),t):e||n?"/":""},Utils._safeStringify=function(t,e,n){try{return JSON.stringify(t,serializer(e),n)}catch(e){return String(t)}},Utils.DOM={};var ATTR_BODY_STYLE="data-body-style";Utils.DOM.getOffset=function(e){var t="object"==typeof e?e:document.getElementById(e);if(t){e=t.getBoundingClientRect();if(e.width||e.height||t.getClientRects().length){t=document.documentElement;return{top:e.top+window.pageYOffset-t.clientTop,left:e.left+window.pageXOffset-t.clientLeft}}}},Utils.DOM.scrollTo=function(e){var t=document.documentElement||document.body;(e=decodeHash(e||window.location.hash||""))?!(e=document.getElementById(e))||(e=Utils.DOM.getOffset(e))&&(t.scrollTop=e.top):t.scrollTop=0},Utils.DOM._createChild=function(e,t,n){n=n||{};var r=document.createElement(t||"div");return Object.keys(n).forEach(function(e){r[e]=n[e]}),e.appendChild(r),r},Utils.DOM._removePrevBodyStyles=function(){for(var e=document.getElementsByTagName("head")[0].querySelectorAll("["+ATTR_BODY_STYLE+"]");0<e.length;)e[0].parentNode.removeChild(e[0])},Utils.DOM._moveBodyStylesToHead=function(){for(var e,t=document.getElementsByTagName("head")[0],n=document.body.getElementsByTagName("style"),r=0;r<n.length;r++)(e=n[r]).parentNode.removeChild(e),e.setAttribute(ATTR_BODY_STYLE,""),t.appendChild(e)};var _builtinURLs={globals:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/",statements:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/",operators:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/",functions:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/",web:"https://developer.mozilla.org/en-US/docs/Web/API/"},_builtins={globals:["Infinity","NaN","undefined","null","Object","Function","function","Boolean","boolean","Symbol","Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","Number","number","Math","Date","String","string","RegExp","Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Map","Set","WeakMap","WeakSet","ArrayBuffer","DataView","JSON","Promise","Generator","GeneratorFunction","Reflect","Proxy","TypedArray","Intl","Intl.Collator","Intl.DateTimeFormat","Intl.NumberFormat","WebAssembly","WebAssembly.Module","WebAssembly.Instance","WebAssembly.Memory","WebAssembly.Table","WebAssembly.CompileError","WebAssembly.LinkError","WebAssembly.RuntimeError"],statements:["function","function*","async function","class","debugger"],operators:["void","super","this"],functions:["arguments"],web:["AbstractWorker","AnalyserNode","AudioBuffer","AudioContext","AudioListener","AudioNode","BaseAudioContext","BeforeUnloadEvent","Blob","BlobEvent","BufferSource","ByteString","CSSMediaRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSValue","CSSValueList","CloseEvent","CompositionEvent","Console","Coordinates","Crypto","CryptoKey","CustomEvent","DOMException","DOMImplementation","Document","DocumentFragment","DocumentType","DoubleRange","DragEvent","Element","ErrorEvent","Event","EventListener","EventSource","EventTarget","File","FileList","FileReader","FileReaderSync","FormData","Geolocation","HTMLAnchorElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFormControlsCollection","HTMLFormElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMediaElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLSlotElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableDataCellElement","HTMLTableElement","HTMLTableHeaderCellElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","History","ImageData","InputEvent","KeyboardEvent","LinkStyle","Location","LongRange","MediaDevices","MediaDeviceInfo","MediaError","MediaRecorder","MediaStream","MessageChannel","MessageEvent","MessagePort","MouseEvent","MutationObserver","MutationRecord","NamedNodeMap","Navigator","NavigatorGeolocation","Node","NodeIterator","NodeList","NonDocumentTypeChildNode","Notification","PageTransitionEvent","PointerEvent","PopStateEvent","Position","PositionError","PositionOptions","ProgressEvent","PromiseRejectionEvent","RTCCertificate","RTCConfiguration","RTCDTMFSender","RTCDTMFToneChangeEvent","RTCDataChannel","RTCPeerConnection","RTCPeerConnection","RTCRtpCodecParameters","RTCRtpContributingSource","RTCRtpReceiver","RTCRtpSender","RTCRtpSynchronizationSource","RTCRtpTransceiver","RTCRtpTransceiverDirection","RTCRtpTransceiverInit","RTCStatsReport","RadioNodeList","RandomSource","Range","RenderingContext","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGCursorElement","SVGElement","SVGEllipseElement","SVGEvent","SVGFilterElement","SVGGeometryElement","SVGGradientElement","SVGGraphicsElement","SVGImageElement","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMaskElement","SVGMetadataElement","SVGPathElement","SVGPatternElement","SVGPolygonElement","SVGPolylineElement","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGTransformable","SVGUseElement","SVGViewElement","ShadowRoot","SharedWorker","Storage","StorageEvent","StyleSheet","StyleSheetList","Text","TextMetrics","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","Transferable","TreeWalker","UIEvent","URL","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebSocket","WheelEvent","Window","Worker","WorkerGlobalScope","WorkerLocation","WorkerNavigator","XMLHttpRequest","XMLHttpRequestEventTarget","XMLSerializer","XPathExpression","XPathResult","XSLTProcessor"]},_cats=Object.keys(_builtins);Utils._getTypeExternalLink=function(e){for(var t,n=0;n<_cats.length;n++)if(t=_cats[n],0<=_builtins[t].indexOf(e))return _builtinURLs[t]+(e||"").replace(/^([^.]*\.)/,"");return""};

function DocmaWeb(t){this._=t||{},this._.initialLoad=!1,this._.appEntranceRI=null,this._.emitter=new EventEmitter,Object.defineProperty(this,"app",{configurable:!1,get:function(){return this._.app||null}}),Object.defineProperty(this,"apis",{configurable:!1,get:function(){return this._.apis||{}}}),Object.defineProperty(this,"routes",{configurable:!1,get:function(){return this._.routes||{}}}),Object.defineProperty(this,"template",{configurable:!1,get:function(){return this._.template||{}}}),Object.defineProperty(this,"location",{configurable:!1,get:function(){var t=Utils._ensureSlash(!0,window.location.pathname,!0),e=Utils._ensureSlash(!0,docma.app.base,!0),o=t;return t.slice(0,e.length)===e&&(o=t.slice(e.length-1,t.length)),{host:window.location.host,hostname:window.location.hostname,origin:window.location.origin,port:window.location.port,protocol:(window.location.protocol||"").replace(/:$/,""),entrance:Utils._ensureSlash(!0,docma.app.entrance,!1),base:e,hash:(window.location.hash||"").replace(/^#/,""),query:(window.location.search||"").replace(/^\?/,""),href:window.location.href,fullpath:t,pathname:o,path:o+(window.location.search||""),getQuery:function(t,e){"?"===(e=void 0===e?window.location.search||"":e).slice(0,1)&&(e=e.slice(1)),t=(t||"").replace(/[[\]]/g,"\\$&");e=new RegExp("&?"+t+"(=([^&#]*)|&|#|$)").exec(e);return e&&e[2]?decodeURIComponent(e[2].replace(/\+/g," ")):""}}}}),Object.defineProperty(this,"currentRoute",{configurable:!1,get:function(){return this._.currentRoute||null}}),Object.defineProperty(this,"documentation",{configurable:!1,get:function(){return this._.documentation||[]}}),Object.defineProperty(this,"symbols",{configurable:!1,get:function(){return this._.symbols||[]}})}DocmaWeb.prototype._trigger=function(t,e){this.info("Event:",t,e?e[0]:""),this._.emitter.trigger(t,e)},DocmaWeb.Event={Ready:"ready",Render:"render",Route:"route",Navigate:"navigate"},DocmaWeb.prototype.on=function(t,e){return this._.emitter.on.apply(this._.emitter,arguments),docma},DocmaWeb.prototype.once=function(){return this._.emitter.once.apply(this._.emitter,arguments),this},DocmaWeb.prototype.off=function(){return this._.emitter.off.apply(this._.emitter,arguments),this},DocmaWeb.prototype.addListener=DocmaWeb.prototype.on,DocmaWeb.prototype.addListenerOnce=DocmaWeb.prototype.once,DocmaWeb.prototype.removeListener=DocmaWeb.prototype.off,DocmaWeb.prototype.log=function(){docma._.logsEnabled&&console.log.apply(console,arguments)},DocmaWeb.prototype.info=function(){docma._.logsEnabled&&console.info.apply(console,arguments)},DocmaWeb.prototype.warn=function(){docma._.logsEnabled&&console.warn.apply(console,arguments)},DocmaWeb.prototype.error=function(){docma._.logsEnabled&&console.error.apply(console,arguments)},DocmaWeb.prototype.getDocmaElem=function(){return document.getElementById(this._.elementID)||Utils.DOM.createChild(document.body,"div",{id:this._.elementID})},DocmaWeb.prototype.getContentElem=function(){var t=document.getElementById(this._.contentElementID);if(!t)throw new Error("Partial "+this._.partials.content+' should have an element with id="'+this._.contentElementID+'".');return t},DocmaWeb.prototype.loadContent=function(t){this.getContentElem().innerHTML=t,Utils.DOM._removePrevBodyStyles(),Utils.DOM._moveBodyStylesToHead(),Utils.DOM.scrollTo()},DocmaWeb.prototype._loadCompiledContent=function(t){this.getDocmaElem().innerHTML=t},DocmaWeb.prototype._fixAnchors=function(r){this.app.base&&setTimeout(function(){for(var t,e=document.querySelectorAll('a[href^="#"]'),o=0;o<e.length;o++){var n=(t=e[o]).getAttribute("href");"#"===n.slice(0,1)&&1<n.length&&(n=window.location.pathname+(window.location.search||"")+n,t.setAttribute("href",n))}"function"==typeof r&&r()},50)},DocmaWeb.prototype.addFilter=function(t,e){if(this.filterExists(t))throw new Error('Filter "'+t+'" already exists.');return dust.filters[t]=e,this},DocmaWeb.prototype.removeFilter=function(t){return delete dust.filters[t],this},DocmaWeb.prototype.filterExists=function(t){return"function"==typeof dust.filters[t]},DocmaWeb.prototype.createRoute=function(t,e){return new DocmaWeb.Route(this,t,e)},DocmaWeb.prototype.createRouteFromID=function(t){if("string"!=typeof t)return this.warn("Route ID is not a string: "+t),new DocmaWeb.Route(this,null);t=t.split(":");return new DocmaWeb.Route(this,t[1],t[0])},DocmaWeb.prototype.createRouteFromQuery=function(t){if(!t)return new DocmaWeb.Route(null);var e=t.split("&")[0].split("="),t=e[0].toLowerCase(),e=e[1];return new DocmaWeb.Route(this,e,t)},DocmaWeb.prototype._render=function(o,n){var r=this;dust.render(o,this,function(t,e){if(t)throw r.warn("Could not load Docma partial:",o),r.log("Compiled HTML: ",e),t;r._loadCompiledContent(e),"function"==typeof n&&n()})},DocmaWeb.prototype._triggerAfterRender=function(){this._trigger(DocmaWeb.Event.Render,[docma.currentRoute]),this._.initialLoad&&(this._trigger(DocmaWeb.Event.Ready),this._.initialLoad=!1)},DocmaWeb.prototype._render404=function(t,e){this._.currentRoute=this.createRoute(null);var o=this;this._render(this._.partials.notFound,function(){if(o._trigger(DocmaWeb.Event.Render,[null]),Utils.DOM.scrollTo(),"function"==typeof e)return e(404);throw new Error("Page or content not found for route: "+Utils._safeStringify(t))})},DocmaWeb.prototype.fetch=function(e,o){var n=new XMLHttpRequest,r=this;n.onreadystatechange=function(){if(4===n.readyState){var t=200===n.status?n.responseText:"";return r.log("XHR GET:",n.status,e),o(n.status,t)}},n.open("GET",e,!0),n.send()},DocmaWeb.prototype.render=function(o,n){if(!o||!o.exists())return this._render404(o,n);var r,i;o.isEqualTo(this.currentRoute)||(this._.currentRoute=o,r="function"==typeof n,i=this,o.type===DocmaWeb.Route.Type.API?this._render(this._.partials.api,function(){i._triggerAfterRender(),r&&n(200),i._fixAnchors(function(){Utils.DOM.scrollTo()})}):docma.fetch(o.contentPath,function(t,e){return 404===t?i._render404(o,n):void i._render(i._.partials.content,function(){i.loadContent(e),i._triggerAfterRender(),r&&n(t),i._fixAnchors(function(){Utils.DOM.scrollTo()})})}))},DocmaWeb.Utils=Utils;

var _arrRouteTypes;DocmaWeb.Route=function(t,e,o){if(this._docma=t,o&&!(_arrRouteTypes.indexOf(o)<0)){if(e)t.app.routing.caseSensitive||(e=e.toLowerCase());else{if(o!==DocmaWeb.Route.Type.API)return;e=t._.defaultApiName}e=Utils._find(t.routes,{type:o,name:e});e&&Utils._assign(this,e)}},DocmaWeb.Route.Type={API:"api",CONTENT:"content"},_arrRouteTypes=Utils._values(DocmaWeb.Route.Type),DocmaWeb.Route.SourceType={JS:"js",MD:"md",HTML:"html"},DocmaWeb.Route.prototype.exists=function(){return Boolean(this.id)},DocmaWeb.Route.prototype.isEqualTo=function(t){return!!(t&&t.exists()&&this.exists())&&t.path===this.path},DocmaWeb.Route.prototype.isCurrent=function(){return this.isEqualTo(this._docma.currentRoute)},DocmaWeb.Route.prototype.apply=function(t){return this.type===DocmaWeb.Route.Type.API?(this._docma._.documentation=this._docma.apis[this.name].documentation,this._docma._.symbols=this._docma.apis[this.name].symbols):(this._docma._.documentation=null,this._docma._.symbols=null),this._docma._trigger(DocmaWeb.Event.Route,[this.exists()?this:null]),this._docma.render(this,t),this},DocmaWeb.Route.prototype.toString=function(){var e=this.toJSON();return Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")},DocmaWeb.Route.prototype.toJSON=function(){return{id:this.id,contentPath:this.contentPath,path:this.path,type:this.type,sourceType:this.sourceType,name:this.name}};

dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils.parseTicks(e)},dust.filters.$pnl=function(e){return DocmaWeb.Utils.parseNewLines(e,{keepIfSingle:!0})},dust.filters.$pl=function(e){return DocmaWeb.Utils.parseLinks(e)},dust.filters.$tl=function(e){return DocmaWeb.Utils.trimLeft(e)},dust.filters.$tnl=function(e){return DocmaWeb.Utils.trimNewLines(e)},dust.filters.$p=function(e){return DocmaWeb.Utils.parse(e,{keepIfSingle:!0})},dust.filters.$nt=function(e){return DocmaWeb.Utils.normalizeTabs(e)},dust.filters.$desc=function(e){return DocmaWeb.Utils.parse(e.classdesc||e.description||"")};var reJSValues=/true|false|null|undefined|Infinity|NaN|\d+|Number\.\w+|Math\.(PI|E|LN(2|10)|LOG(2|10)E|SQRT(1_)?2)|\[.*?]|\{.*?}|new [a-zA-Z]+.*|\/.+\/[gmiu]*|Date\.(now\(\)|UTC\(.*)|window|document/;function getFormatValue(e,t){if(arguments.length<2&&(t=DocmaWeb.Utils.notate(e,"meta.code.value")||e.defaultvalue),"string"!=typeof t)return String(t);var n=DocmaWeb.Utils.notate(e,"type.names")||[];return!/['"`]/.test(t.slice(0,1))&&0<=n.indexOf("String")&&(1===n.length||-1===reJSValues.indexOf(t))?'"'+t+'"':String(t)}dust.filters.$def=function(e){return e.hasOwnProperty("defaultvalue")?getFormatValue(e,e.defaultvalue):"undefined"},dust.filters.$val=function(e){return getFormatValue(e)},dust.filters.$id=function(e){return("string"==typeof e?e:(DocmaWeb.Utils.isConstructor(e)?"new-":"")+e.$longname).replace(/ /g,"-")};

DocmaWeb.version = "3.2.2";
return DocmaWeb;
})();
var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n  * Shoukaku, governs the client's node connections.\n  * @class Shoukaku\n  * @extends {EventEmitter}\n  */","meta":{"filename":"Shoukaku.js","lineno":9,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Shoukaku, governs the client's node connections.</p>","kind":"class","name":"Shoukaku","augments":["EventEmitter"],"longname":"Shoukaku","scope":"global","$longname":"Shoukaku","$kind":"class","$docmaLink":"?api#Shoukaku","$members":[{"comment":"/**\n    * Function to register a new ShoukakuSocket\n    * @param {ShoukakuConstants#ShoukakuNodeOptions} nodeOptions The Node Options to be used to connect to.\n    * @memberof Shoukaku\n    * @returns {void}\n    */","meta":{"range":[4842,5427],"filename":"Shoukaku.js","lineno":121,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000258","name":"Shoukaku#addNode","type":"MethodDefinition","paramnames":["nodeOptions"]},"vars":{"":null}},"description":"<p>Function to register a new ShoukakuSocket</p>","params":[{"type":{"names":["ShoukakuConstants#ShoukakuNodeOptions"]},"description":"<p>The Node Options to be used to connect to.</p>","name":"nodeOptions"}],"memberof":"Shoukaku","returns":[{"type":{"names":["void"]}}],"name":"addNode","longname":"Shoukaku#addNode","kind":"function","scope":"instance","$longname":"Shoukaku#addNode","$kind":"method","$docmaLink":"?api#Shoukaku#addNode"},{"comment":"/**\n     * Shortcut to get the Ideal Node or a manually specified Node from the current nodes that Shoukaku governs.\n     * @param {string|Array<string>} [query] If blank, Shoukaku will return an ideal node from default group of nodes. If a string is specified, will return a node from it's name, if an array of string groups, Shoukaku will return an ideal node from the specified array of grouped nodes.\n     * @memberof Shoukaku\n     * @returns {ShoukakuSocket}\n     * @example\n     * const node = <Shoukaku>.getNode();\n     * node.rest.resolve('Kongou Burning Love', 'youtube')\n     *     .then(data => \n     *         node.joinVoiceChannel({ guildID: 'guild_id', voiceChannelID: 'voice_channel_id' })\n     *             .then(player => player.playTrack(data.track))   \n     *     )\n     */","meta":{"range":[7128,7791],"filename":"Shoukaku.js","lineno":165,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000451","name":"Shoukaku#getNode","type":"MethodDefinition","paramnames":["query"]},"vars":{"":null}},"description":"<p>Shortcut to get the Ideal Node or a manually specified Node from the current nodes that Shoukaku governs.</p>","params":[{"type":{"names":["string","Array.<string>"]},"optional":true,"description":"<p>If blank, Shoukaku will return an ideal node from default group of nodes. If a string is specified, will return a node from it's name, if an array of string groups, Shoukaku will return an ideal node from the specified array of grouped nodes.</p>","name":"query"}],"memberof":"Shoukaku","returns":[{"type":{"names":["ShoukakuSocket"]}}],"examples":["const node = <Shoukaku>.getNode();\nnode.rest.resolve('Kongou Burning Love', 'youtube')\n    .then(data => \n        node.joinVoiceChannel({ guildID: 'guild_id', voiceChannelID: 'voice_channel_id' })\n            .then(player => player.playTrack(data.track))   \n    )"],"name":"getNode","longname":"Shoukaku#getNode","kind":"function","scope":"instance","$longname":"Shoukaku#getNode","$kind":"method","$docmaLink":"?api#Shoukaku#getNode"},{"comment":"/**\n    * Shortcut to get the player of a guild, if there is any.\n    * @param {string} guildID The guildID of the guild you are trying to get.\n    * @memberof Shoukaku\n    * @returns {?ShoukakuPlayer}\n    */","meta":{"range":[8009,8272],"filename":"Shoukaku.js","lineno":185,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000520","name":"Shoukaku#getPlayer","type":"MethodDefinition","paramnames":["guildID"]},"vars":{"":null}},"description":"<p>Shortcut to get the player of a guild, if there is any.</p>","params":[{"type":{"names":["string"]},"description":"<p>The guildID of the guild you are trying to get.</p>","name":"guildID"}],"memberof":"Shoukaku","returns":[{"type":{"names":["ShoukakuPlayer"]},"nullable":true}],"name":"getPlayer","longname":"Shoukaku#getPlayer","kind":"function","scope":"instance","$longname":"Shoukaku#getPlayer","$kind":"method","$docmaLink":"?api#Shoukaku#getPlayer"},{"comment":"/**\n     * Function to remove an existing ShoukakuSocket\n     * @param {string} name The Lavalink Node to remove\n     * @param {string} [reason] Optional reason for this disconnect.\n     * @memberof Shoukaku\n     * @returns {void}\n     */","meta":{"range":[5675,6325],"filename":"Shoukaku.js","lineno":139,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000361","name":"Shoukaku#removeNode","type":"MethodDefinition","paramnames":["name","reason"]},"vars":{"":null}},"description":"<p>Function to remove an existing ShoukakuSocket</p>","params":[{"type":{"names":["string"]},"description":"<p>The Lavalink Node to remove</p>","name":"name"},{"type":{"names":["string"]},"optional":true,"description":"<p>Optional reason for this disconnect.</p>","name":"reason","defaultvalue":"Remove node executed"}],"memberof":"Shoukaku","returns":[{"type":{"names":["void"]}}],"name":"removeNode","longname":"Shoukaku#removeNode","kind":"function","scope":"instance","$longname":"Shoukaku#removeNode","$kind":"method","$docmaLink":"?api#Shoukaku#removeNode"},{"comment":"/**\n        * The instance of Discord.js client used with Shoukaku.\n        * @type {external.Client}\n        */","meta":{"range":[1557,1577],"filename":"Shoukaku.js","lineno":35,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000134","name":"this.client","type":"Identifier","value":"client","paramnames":[]}},"description":"<p>The instance of Discord.js client used with Shoukaku.</p>","type":{"names":["external.Client"]},"name":"client","longname":"Shoukaku#client","kind":"member","memberof":"Shoukaku","scope":"instance","$longname":"Shoukaku#client","$kind":"property","$docmaLink":"?api#Shoukaku#client"},{"comment":"/**\n        * The user id of the bot that is being governed by Shoukaku.\n        * @type {?string}\n        */","meta":{"range":[1705,1719],"filename":"Shoukaku.js","lineno":40,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000140","name":"this.id","type":"Literal","value":null,"paramnames":[]}},"description":"<p>The user id of the bot that is being governed by Shoukaku.</p>","type":{"names":["string"]},"nullable":true,"name":"id","longname":"Shoukaku#id","kind":"member","memberof":"Shoukaku","scope":"instance","$longname":"Shoukaku#id","$kind":"property","$docmaLink":"?api#Shoukaku#id"},{"comment":"/**\n        * The current nodes that is being handled by Shoukaku.\n        * @type {Map<string, ShoukakuSocket>}\n        */","meta":{"range":[1861,1883],"filename":"Shoukaku.js","lineno":45,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000146","name":"this.nodes","type":"NewExpression","value":"","paramnames":[]}},"description":"<p>The current nodes that is being handled by Shoukaku.</p>","type":{"names":["Map.<string, ShoukakuSocket>"]},"name":"nodes","longname":"Shoukaku#nodes","kind":"member","memberof":"Shoukaku","scope":"instance","$longname":"Shoukaku#nodes","$kind":"property","$docmaLink":"?api#Shoukaku#nodes"},{"comment":"/**\n     * Gets all the Players that is currently active on all nodes in this instance.\n     * @type {Map<string, ShoukakuPlayer>}\n     * @memberof Shoukaku\n     */","meta":{"range":[2300,2518],"filename":"Shoukaku.js","lineno":57,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000194","name":"Shoukaku#players","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Gets all the Players that is currently active on all nodes in this instance.</p>","type":{"names":["Map.<string, ShoukakuPlayer>"]},"memberof":"Shoukaku","name":"players","longname":"Shoukaku#players","kind":"member","scope":"instance","params":[],"$longname":"Shoukaku#players","$kind":"property","$docmaLink":"?api#Shoukaku#players"},{"comment":"/**\n     * Gets the number of total Players that is currently active on all nodes in this instance.\n     * @type {number}\n     * @memberof Shoukaku\n     */","meta":{"range":[2683,2836],"filename":"Shoukaku.js","lineno":69,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000230","name":"Shoukaku#totalPlayers","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Gets the number of total Players that is currently active on all nodes in this instance.</p>","type":{"names":["number"]},"memberof":"Shoukaku","name":"totalPlayers","longname":"Shoukaku#totalPlayers","kind":"member","scope":"instance","params":[],"$longname":"Shoukaku#totalPlayers","$kind":"property","$docmaLink":"?api#Shoukaku#totalPlayers"},{"comment":"/**\n     * Emitted when a ShoukakuSocket closed it's websocket connection to a Lavalink Server.\n     * @event Shoukaku#close\n     * @param {string} name The name of the ShoukakuSocket that sent a close event.\n     * @param {number} code The WebSocket close code https://github.com/Luka967/websocket-close-codes\n     * @param {reason} reason The reason for this close event.\n     * @memberof Shoukaku\n     */","meta":{"filename":"Shoukaku.js","lineno":99,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Emitted when a ShoukakuSocket closed it's websocket connection to a Lavalink Server.</p>","kind":"event","name":"close","params":[{"type":{"names":["string"]},"description":"<p>The name of the ShoukakuSocket that sent a close event.</p>","name":"name"},{"type":{"names":["number"]},"description":"<p>The WebSocket close code https://github.com/Luka967/websocket-close-codes</p>","name":"code"},{"type":{"names":["reason"]},"description":"<p>The reason for this close event.</p>","name":"reason"}],"memberof":"Shoukaku","longname":"Shoukaku#event:close","scope":"instance","$longname":"Shoukaku#event:close","$kind":"event","$docmaLink":"?api#Shoukaku#event:close"},{"comment":"/**\n     * Debug related things, enable if you have an issue and planning to report it to the developer of this Lib.\n     * @event Shoukaku#debug\n     * @param {string} name The name of the ShoukakuSocket that sent a debug event.\n     * @param {Object} data The actual debug data\n     * @memberof Shoukaku\n     */","meta":{"filename":"Shoukaku.js","lineno":75,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Debug related things, enable if you have an issue and planning to report it to the developer of this Lib.</p>","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"<p>The name of the ShoukakuSocket that sent a debug event.</p>","name":"name"},{"type":{"names":["Object"]},"description":"<p>The actual debug data</p>","name":"data"}],"memberof":"Shoukaku","longname":"Shoukaku#event:debug","scope":"instance","$longname":"Shoukaku#event:debug","$kind":"event","$docmaLink":"?api#Shoukaku#event:debug"},{"comment":"/**\n     * Emitted when a ShoukakuSocket is removed and will not try to reconnect again.\n     * @event Shoukaku#disconnected\n     * @param {string} name The name of the ShoukakuSocket that sent a close event.\n     * @param {string} reason The reason for the disconnect.\n     * @memberof Shoukaku\n     */","meta":{"filename":"Shoukaku.js","lineno":107,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Emitted when a ShoukakuSocket is removed and will not try to reconnect again.</p>","kind":"event","name":"disconnected","params":[{"type":{"names":["string"]},"description":"<p>The name of the ShoukakuSocket that sent a close event.</p>","name":"name"},{"type":{"names":["string"]},"description":"<p>The reason for the disconnect.</p>","name":"reason"}],"memberof":"Shoukaku","longname":"Shoukaku#event:disconnected","scope":"instance","$longname":"Shoukaku#event:disconnected","$kind":"event","$docmaLink":"?api#Shoukaku#event:disconnected"},{"comment":"/**\n     * Emitted when a ShoukakuSocket encounters an internal error, MUST BE HANDLED.\n     * @event Shoukaku#error\n     * @param {string} name The name of the ShoukakuSocket that sent an error event.\n     * @param {Error} error The error encountered.\n     * @memberof Shoukaku\n     * @example\n     * // <Shoukaku> is your own instance of Shoukaku\n     * <Shoukaku>.on('error', console.error);\n     */","meta":{"filename":"Shoukaku.js","lineno":82,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Emitted when a ShoukakuSocket encounters an internal error, MUST BE HANDLED.</p>","kind":"event","name":"error","params":[{"type":{"names":["string"]},"description":"<p>The name of the ShoukakuSocket that sent an error event.</p>","name":"name"},{"type":{"names":["Error"]},"description":"<p>The error encountered.</p>","name":"error"}],"memberof":"Shoukaku","examples":["// <Shoukaku> is your own instance of Shoukaku\n<Shoukaku>.on('error', console.error);"],"longname":"Shoukaku#event:error","scope":"instance","$longname":"Shoukaku#event:error","$kind":"event","$docmaLink":"?api#Shoukaku#event:error"},{"comment":"/** \n     * Emitted when a ShoukakuSocket becomes Ready from a reconnection or first initialization.\n     * @event Shoukaku#ready\n     * @param {string} name The name of the ShoukakuSocket that sent a ready event.\n     * @param {boolean} reconnect true if the session reconnected, otherwise false.\n     * @memberof Shoukaku\n     */","meta":{"filename":"Shoukaku.js","lineno":92,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{}},"description":"<p>Emitted when a ShoukakuSocket becomes Ready from a reconnection or first initialization.</p>","kind":"event","name":"ready","params":[{"type":{"names":["string"]},"description":"<p>The name of the ShoukakuSocket that sent a ready event.</p>","name":"name"},{"type":{"names":["boolean"]},"description":"<p>true if the session reconnected, otherwise false.</p>","name":"reconnect"}],"memberof":"Shoukaku","longname":"Shoukaku#event:ready","scope":"instance","$longname":"Shoukaku#event:ready","$kind":"event","$docmaLink":"?api#Shoukaku#event:ready"}],"$constructor":{"comment":"/**\n     * @param  {Client} client Your Discord.js client\n     * @param {ShoukakuConstants#ShoukakuNodes} nodes Lavalink Nodes where Shoukaku will try to connect to.\n     * @param {ShoukakuConstants#ShoukakuOptions} options Options to initialize Shoukaku with\n     */","meta":{"range":[851,2126],"filename":"Shoukaku.js","lineno":20,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src","code":{"id":"astnode100000083","name":"Shoukaku","type":"MethodDefinition","paramnames":["client","nodes","options"]},"vars":{"":null}},"params":[{"type":{"names":["Client"]},"description":"<p>Your Discord.js client</p>","name":"client"},{"type":{"names":["ShoukakuConstants#ShoukakuNodes"]},"description":"<p>Lavalink Nodes where Shoukaku will try to connect to.</p>","name":"nodes"},{"type":{"names":["ShoukakuConstants#ShoukakuOptions"]},"description":"<p>Options to initialize Shoukaku with</p>","name":"options"}],"name":"Shoukaku","longname":"Shoukaku","kind":"class","scope":"global","$longname":"Shoukaku","$kind":"constructor","$docmaLink":"?api#Shoukaku"}},{"comment":"/**\n * Constants for Shoukaku.\n * @class ShoukakuConstants\n */","meta":{"filename":"ShoukakuConstants.js","lineno":2,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Constants for Shoukaku.</p>","kind":"class","name":"ShoukakuConstants","longname":"ShoukakuConstants","scope":"global","$longname":"ShoukakuConstants","$kind":"class","$docmaLink":"?api#ShoukakuConstants","$members":[{"comment":"/**\n    * Available Status for Node / Link managers.\n    * @typedef {string} ShoukakuStatus\n    * @enum {ShoukakuStatus}\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":7,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available Status for Node / Link managers.</p>","kind":"typedef","name":"ShoukakuStatus","type":{"names":["string"]},"isEnum":true,"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuStatus","scope":"instance","$longname":"ShoukakuConstants#ShoukakuStatus","$kind":"enum","$docmaLink":"?api#ShoukakuConstants#ShoukakuStatus"},{"comment":"/**\n     * Available settings for Distortion\n     * @typedef {DistortionValue} DistortionValue\n     * @property {?number} [sinOffset] Sin Offset\n     * @property {?number} [sinScale] Sin Scale\n     * @property {?number} [cosOffset] Cos Offset\n     * @property {?number} [cosScale] Cos Scale\n     * @property {?number} [tanOffset] Tan Offset\n     * @property {?number} [tanScale] Tan Scale\n     * @property {?number} [offset] Offset\n     * @property {?number} [scale] Scale\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":216,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Distortion</p>","kind":"typedef","name":"DistortionValue","type":{"names":["DistortionValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Cos Offset</p>","name":"cosOffset"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Cos Scale</p>","name":"cosScale"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Offset</p>","name":"offset"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Scale</p>","name":"scale"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Sin Offset</p>","name":"sinOffset"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Sin Scale</p>","name":"sinScale"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Tan Offset</p>","name":"tanOffset"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Tan Scale</p>","name":"tanScale"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#DistortionValue","scope":"instance","$longname":"ShoukakuConstants#DistortionValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#DistortionValue"},{"comment":"/**\n     * Available settings for an Equalizer Band\n     * @typedef {EqualizerBand} EqualizerBand\n     * @property {number} band Equalizer Band Level\n     * @property {number} gain Equalizer Gain Level\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":136,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for an Equalizer Band</p>","kind":"typedef","name":"EqualizerBand","type":{"names":["EqualizerBand"]},"properties":[{"type":{"names":["number"]},"description":"<p>Equalizer Band Level</p>","name":"band"},{"type":{"names":["number"]},"description":"<p>Equalizer Gain Level</p>","name":"gain"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#EqualizerBand","scope":"instance","$longname":"ShoukakuConstants#EqualizerBand","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#EqualizerBand"},{"comment":"/**\n     * Available settings for Karaoke\n     * @typedef {KaraokeValue} KaraokeValue\n     * @property {?number} [level] Karaoke level\n     * @property {?number} [monoLevel] Karaoke MonoLevel\n     * @property {?number} [filterBand] Karaoke FilterBand\n     * @property {?number} [filterWidth] Karaoke FilterWidth\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":149,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Karaoke</p>","kind":"typedef","name":"KaraokeValue","type":{"names":["KaraokeValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Karaoke FilterBand</p>","name":"filterBand"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Karaoke FilterWidth</p>","name":"filterWidth"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Karaoke level</p>","name":"level"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Karaoke MonoLevel</p>","name":"monoLevel"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#KaraokeValue","scope":"instance","$longname":"ShoukakuConstants#KaraokeValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#KaraokeValue"},{"comment":"/**\n     * Available settings for Rotation\n     * @typedef {RotationValue} RotationValue\n     * @property {?number} [rotationHz] Frequency of the audio rotating\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":207,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Rotation</p>","kind":"typedef","name":"RotationValue","type":{"names":["RotationValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Frequency of the audio rotating</p>","name":"rotationHz"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#RotationValue","scope":"instance","$longname":"ShoukakuConstants#RotationValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#RotationValue"},{"comment":"/**\n    * Required Object in Shoukaku's join method.\n    * @typedef {Object} ShoukakuJoinOptions\n    * @property {string} guildID Guild ID of the Voice Channel you want to join to.\n    * @property {string} voiceChannelID Voice Channel ID of the Voice Channel you want to join to.\n    * @property {boolean} [mute=false] Whether to mute the client.\n    * @property {boolean} [deaf=false] Whether to deafen the client.\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":50,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Required Object in Shoukaku's join method.</p>","kind":"typedef","name":"ShoukakuJoinOptions","type":{"names":["Object"]},"properties":[{"type":{"names":["boolean"]},"optional":true,"defaultvalue":false,"description":"<p>Whether to deafen the client.</p>","name":"deaf"},{"type":{"names":["string"]},"description":"<p>Guild ID of the Voice Channel you want to join to.</p>","name":"guildID"},{"type":{"names":["boolean"]},"optional":true,"defaultvalue":false,"description":"<p>Whether to mute the client.</p>","name":"mute"},{"type":{"names":["string"]},"description":"<p>Voice Channel ID of the Voice Channel you want to join to.</p>","name":"voiceChannelID"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuJoinOptions","scope":"instance","$longname":"ShoukakuConstants#ShoukakuJoinOptions","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuJoinOptions"},{"comment":"/**\n    * Options that Shoukaku needs to initialize a lavalink node.\n    * @typedef {Object} ShoukakuNodeOptions\n    * @property {string} name Your Node Name, anything you want to name your node.\n    * @property {string} host Your node host / ip address of where the lavalink is hosted.\n    * @property {number} port The Port Number of your lavalink instance.\n    * @property {string} auth The authentication key you set on your lavalink config.\n    * @property {?boolean} [secure] If you want to use https and wss instead of http and ws.\n    * @property {?string} [group] Group of this node, used for grouping specific nodes.\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":107,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Options that Shoukaku needs to initialize a lavalink node.</p>","kind":"typedef","name":"ShoukakuNodeOptions","type":{"names":["Object"]},"properties":[{"type":{"names":["string"]},"description":"<p>The authentication key you set on your lavalink config.</p>","name":"auth"},{"type":{"names":["string"]},"optional":true,"nullable":true,"description":"<p>Group of this node, used for grouping specific nodes.</p>","name":"group"},{"type":{"names":["string"]},"description":"<p>Your node host / ip address of where the lavalink is hosted.</p>","name":"host"},{"type":{"names":["string"]},"description":"<p>Your Node Name, anything you want to name your node.</p>","name":"name"},{"type":{"names":["number"]},"description":"<p>The Port Number of your lavalink instance.</p>","name":"port"},{"type":{"names":["boolean"]},"optional":true,"nullable":true,"description":"<p>If you want to use https and wss instead of http and ws.</p>","name":"secure"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuNodeOptions","scope":"instance","$longname":"ShoukakuConstants#ShoukakuNodeOptions","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuNodeOptions"},{"comment":"/**\n     * An array of ShoukakuNodeOptions\n     * @typedef {Array<ShoukakuNodeOptions>} ShoukakuNodes\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":128,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>An array of ShoukakuNodeOptions</p>","kind":"typedef","name":"ShoukakuNodes","type":{"names":["Array.<ShoukakuNodeOptions>"]},"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuNodes","scope":"instance","$longname":"ShoukakuConstants#ShoukakuNodes","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuNodes"},{"comment":"/**\n    * Shoukaku's Node Stats Object.\n    * @typedef {Object} ShoukakuNodeStats\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":21,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Shoukaku's Node Stats Object.</p>","kind":"typedef","name":"ShoukakuNodeStats","type":{"names":["Object"]},"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuNodeStats","scope":"instance","$longname":"ShoukakuConstants#ShoukakuNodeStats","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuNodeStats"},{"comment":"/**\n    * Options that Shoukaku accepts upon initialization.\n    * @typedef {Object} ShoukakuOptions\n    * @property {boolean|string} [resumable=false] If you want your node to support resuming. Just replace the false with the resume-key you want to enable resuming.\n    * @property {number} [resumableTimeout=30] Timeout when Lavalink will decide a player isn't resumed and will destroy the connection to it, measured in seconds.\n    * @property {number} [reconnectTries=2] Amount of tries to connect to the lavalink Node before it decides that the node is unreconnectable.\n    * @property {boolean} [moveOnDisconnect=false] Specifies if the library will attempt to reconnect players on a disconnected node to another node.\n    * @property {number} [restTimeout=15000] Timeout on rest requests to your lavalink node, measured in milliseconds.\n    * @property {number} [reconnectInterval=5000] Timeout between reconnect attempts, measured in milliseconds.\n    * @property {string} [userAgent=\"{name}/{version} (+{url})\"] User-Agent to use on connecting to WS and REST requests\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":84,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Options that Shoukaku accepts upon initialization.</p>","kind":"typedef","name":"ShoukakuOptions","type":{"names":["Object"]},"properties":[{"type":{"names":["boolean"]},"optional":true,"defaultvalue":false,"description":"<p>Specifies if the library will attempt to reconnect players on a disconnected node to another node.</p>","name":"moveOnDisconnect"},{"type":{"names":["number"]},"optional":true,"defaultvalue":5000,"description":"<p>Timeout between reconnect attempts, measured in milliseconds.</p>","name":"reconnectInterval"},{"type":{"names":["number"]},"optional":true,"defaultvalue":2,"description":"<p>Amount of tries to connect to the lavalink Node before it decides that the node is unreconnectable.</p>","name":"reconnectTries"},{"type":{"names":["number"]},"optional":true,"defaultvalue":15000,"description":"<p>Timeout on rest requests to your lavalink node, measured in milliseconds.</p>","name":"restTimeout"},{"type":{"names":["boolean","string"]},"optional":true,"defaultvalue":false,"description":"<p>If you want your node to support resuming. Just replace the false with the resume-key you want to enable resuming.</p>","name":"resumable"},{"type":{"names":["number"]},"optional":true,"defaultvalue":30,"description":"<p>Timeout when Lavalink will decide a player isn't resumed and will destroy the connection to it, measured in seconds.</p>","name":"resumableTimeout"},{"type":{"names":["string"]},"optional":true,"defaultvalue":"\"{name}/{version} (+{url})\"","description":"<p>User-Agent to use on connecting to WS and REST requests</p>","name":"userAgent"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuOptions","scope":"instance","$longname":"ShoukakuConstants#ShoukakuOptions","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuOptions"},{"comment":"/**\n    * Required Object in Shoukaku's join method.\n    * @typedef {Object} ShoukakuPlayOptions\n    * @property {boolean} [noReplace=true] Specifies if the player will not replace the current track when executing this action.\n    * @property {boolean} [pause=false] If `true`, the player will pause when the track starts playing.\n    * @property {?number} [startTime] In milliseconds on when to start.\n    * @property {?number} [endTime] In milliseconds on when to end.\n    * @memberof ShoukakuConstants#\n    */","meta":{"filename":"ShoukakuConstants.js","lineno":67,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Required Object in Shoukaku's join method.</p>","kind":"typedef","name":"ShoukakuPlayOptions","type":{"names":["Object"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>In milliseconds on when to end.</p>","name":"endTime"},{"type":{"names":["boolean"]},"optional":true,"defaultvalue":true,"description":"<p>Specifies if the player will not replace the current track when executing this action.</p>","name":"noReplace"},{"type":{"names":["boolean"]},"optional":true,"defaultvalue":false,"description":"<p>If <code>true</code>, the player will pause when the track starts playing.</p>","name":"pause"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>In milliseconds on when to start.</p>","name":"startTime"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#ShoukakuPlayOptions","scope":"instance","$longname":"ShoukakuConstants#ShoukakuPlayOptions","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#ShoukakuPlayOptions"},{"comment":"/**\n     * Available settings for Timescale\n     * @typedef {TimescaleValue} TimescaleValue\n     * @property {?number} [speed] Timescale Speed\n     * @property {?number} [pitch] Timescale Pitch\n     * @property {?number} [rate] Timescale Rate\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":166,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Timescale</p>","kind":"typedef","name":"TimescaleValue","type":{"names":["TimescaleValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Timescale Pitch</p>","name":"pitch"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Timescale Rate</p>","name":"rate"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Timescale Speed</p>","name":"speed"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#TimescaleValue","scope":"instance","$longname":"ShoukakuConstants#TimescaleValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#TimescaleValue"},{"comment":"/**\n     * Available settings for Tremolo\n     * @typedef {TremoloValue} TremoloValue\n     * @property {?number} [frequency] Tremolo Frequency\n     * @property {?number} [depth] Tremolo Depth\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":181,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Tremolo</p>","kind":"typedef","name":"TremoloValue","type":{"names":["TremoloValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Tremolo Depth</p>","name":"depth"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Tremolo Frequency</p>","name":"frequency"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#TremoloValue","scope":"instance","$longname":"ShoukakuConstants#TremoloValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#TremoloValue"},{"comment":"/**\n     * Available settings for Vibrato\n     * @typedef {VibratoValue} VibratoValue\n     * @property {?number} [frequency] Vibrato Frequency\n     * @property {?number} [depth] Vibrato Depth\n     * @memberof ShoukakuConstants#\n     */","meta":{"filename":"ShoukakuConstants.js","lineno":194,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Available settings for Vibrato</p>","kind":"typedef","name":"VibratoValue","type":{"names":["VibratoValue"]},"properties":[{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Vibrato Depth</p>","name":"depth"},{"type":{"names":["number"]},"optional":true,"nullable":true,"description":"<p>Vibrato Frequency</p>","name":"frequency"}],"memberof":"ShoukakuConstants","longname":"ShoukakuConstants#VibratoValue","scope":"instance","$longname":"ShoukakuConstants#VibratoValue","$kind":"typedef","$docmaLink":"?api#ShoukakuConstants#VibratoValue"}]},{"comment":"/**\n     * @param message The error message\n     */","meta":{"range":[151,240],"filename":"ShoukakuError.js","lineno":9,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001142","name":"ShoukakuError","type":"MethodDefinition","paramnames":["message"]},"vars":{"":null}},"params":[{"description":"<p>The error message</p>","name":"message"}],"name":"ShoukakuError","longname":"ShoukakuError","kind":"class","scope":"global","$longname":"ShoukakuError","$kind":"constructor","$docmaLink":"?api#ShoukakuError"},{"comment":"/**\n * Filters available for customization. See https://github.com/Frederikam/Lavalink/blob/dev/IMPLEMENTATION.md#using-filters\n * @class ShoukakuFilter\n */","meta":{"filename":"ShoukakuFilter.js","lineno":1,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Filters available for customization. See https://github.com/Frederikam/Lavalink/blob/dev/IMPLEMENTATION.md#using-filters</p>","kind":"class","name":"ShoukakuFilter","longname":"ShoukakuFilter","scope":"global","$longname":"ShoukakuFilter","$kind":"class","$docmaLink":"?api#ShoukakuFilter","$members":[{"comment":"/**\n         * The distortion settings set for this filter\n         * @type {?ShoukakuConstants#DistortionValue}\n         */","meta":{"range":[2429,2474],"filename":"ShoukakuFilter.js","lineno":57,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001246","name":"this.distortion","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The distortion settings set for this filter</p>","type":{"names":["ShoukakuConstants#DistortionValue"]},"nullable":true,"name":"distortion","longname":"ShoukakuFilter#distortion","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#distortion","$kind":"property","$docmaLink":"?api#ShoukakuFilter#distortion"},{"comment":"/**\n         * The equalizer bands set for this filter\n         * @type {Array<ShoukakuConstants#EqualizerBand>}\n         */","meta":{"range":[1353,1394],"filename":"ShoukakuFilter.js","lineno":27,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001186","name":"this.equalizer","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The equalizer bands set for this filter</p>","type":{"names":["Array.<ShoukakuConstants#EqualizerBand>"]},"name":"equalizer","longname":"ShoukakuFilter#equalizer","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#equalizer","$kind":"property","$docmaLink":"?api#ShoukakuFilter#equalizer"},{"comment":"/**\n         * The karaoke settings set for this filter\n         * @type {?ShoukakuConstants#KaraokeValue}\n         */","meta":{"range":[1531,1570],"filename":"ShoukakuFilter.js","lineno":32,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001196","name":"this.karaoke","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The karaoke settings set for this filter</p>","type":{"names":["ShoukakuConstants#KaraokeValue"]},"nullable":true,"name":"karaoke","longname":"ShoukakuFilter#karaoke","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#karaoke","$kind":"property","$docmaLink":"?api#ShoukakuFilter#karaoke"},{"comment":"/**\n         * The rotation settings set for this filter\n         * @type {?ShoukakuConstants#RotationValue}\n         */","meta":{"range":[2245,2286],"filename":"ShoukakuFilter.js","lineno":52,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001236","name":"this.rotation","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The rotation settings set for this filter</p>","type":{"names":["ShoukakuConstants#RotationValue"]},"nullable":true,"name":"rotation","longname":"ShoukakuFilter#rotation","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#rotation","$kind":"property","$docmaLink":"?api#ShoukakuFilter#rotation"},{"comment":"/**\n         * The timescale settings set for this filter\n         * @type {?ShoukakuConstants#TimescaleValue}\n         */","meta":{"range":[1711,1754],"filename":"ShoukakuFilter.js","lineno":37,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001206","name":"this.timescale","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The timescale settings set for this filter</p>","type":{"names":["ShoukakuConstants#TimescaleValue"]},"nullable":true,"name":"timescale","longname":"ShoukakuFilter#timescale","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#timescale","$kind":"property","$docmaLink":"?api#ShoukakuFilter#timescale"},{"comment":"/**\n         * The tremolo settings set for this filter\n         * @type {?ShoukakuConstants#TremoloValue}\n         */","meta":{"range":[1891,1930],"filename":"ShoukakuFilter.js","lineno":42,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001216","name":"this.tremolo","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The tremolo settings set for this filter</p>","type":{"names":["ShoukakuConstants#TremoloValue"]},"nullable":true,"name":"tremolo","longname":"ShoukakuFilter#tremolo","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#tremolo","$kind":"property","$docmaLink":"?api#ShoukakuFilter#tremolo"},{"comment":"/**\n         * The vibrato settings set for this filter\n         * @type {?ShoukakuConstants#VibratoValue}\n         */","meta":{"range":[2067,2106],"filename":"ShoukakuFilter.js","lineno":47,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001226","name":"this.vibrato","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The vibrato settings set for this filter</p>","type":{"names":["ShoukakuConstants#VibratoValue"]},"nullable":true,"name":"vibrato","longname":"ShoukakuFilter#vibrato","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#vibrato","$kind":"property","$docmaLink":"?api#ShoukakuFilter#vibrato"},{"comment":"/**\n         * The volume of this filter\n         * @type {Number}\n         */","meta":{"range":[1174,1210],"filename":"ShoukakuFilter.js","lineno":22,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001176","name":"this.volume","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>The volume of this filter</p>","type":{"names":["Number"]},"name":"volume","longname":"ShoukakuFilter#volume","kind":"member","memberof":"ShoukakuFilter","scope":"instance","$longname":"ShoukakuFilter#volume","$kind":"property","$docmaLink":"?api#ShoukakuFilter#volume"}],"$constructor":{"comment":"/**\n     * @param {Object} [settings] settings to intialize this filter with\n     * @param {Number} [settings.volume=1.0] volume of this filter\n     * @param {Array<ShoukakuConstants#EqualizerBand>} [settings.equalizer=[]] equalizer of this filter\n     * @param {ShoukakuConstants#KaraokeValue} [settings.karaoke] karaoke settings of this filter\n     * @param {ShoukakuConstants#TimescaleValue} [settings.timescale] timescale settings of this filter\n     * @param {ShoukakuConstants#TremoloValue} [settings.tremolo] tremolo settings of this filter\n     * @param {ShoukakuConstants#VibratoValue} [settings.vibrato] vibrato settings of this filter\n     * @param {ShoukakuConstants#RotationValue} [settings.rotation] rotation settings of this filter\n     * @param {ShoukakuConstants#DistortionValue} [settings.distortion] distortion settings of this filter\n     */","meta":{"range":[1050,2481],"filename":"ShoukakuFilter.js","lineno":17,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001168","name":"ShoukakuFilter","type":"MethodDefinition","paramnames":["settings"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"optional":true,"description":"<p>settings to intialize this filter with</p>","name":"settings"},{"type":{"names":["Number"]},"optional":true,"defaultvalue":"1.0","description":"<p>volume of this filter</p>","name":"settings.volume"},{"type":{"names":["Array.<ShoukakuConstants#EqualizerBand>"]},"optional":true,"defaultvalue":"[]","description":"<p>equalizer of this filter</p>","name":"settings.equalizer"},{"type":{"names":["ShoukakuConstants#KaraokeValue"]},"optional":true,"description":"<p>karaoke settings of this filter</p>","name":"settings.karaoke"},{"type":{"names":["ShoukakuConstants#TimescaleValue"]},"optional":true,"description":"<p>timescale settings of this filter</p>","name":"settings.timescale"},{"type":{"names":["ShoukakuConstants#TremoloValue"]},"optional":true,"description":"<p>tremolo settings of this filter</p>","name":"settings.tremolo"},{"type":{"names":["ShoukakuConstants#VibratoValue"]},"optional":true,"description":"<p>vibrato settings of this filter</p>","name":"settings.vibrato"},{"type":{"names":["ShoukakuConstants#RotationValue"]},"optional":true,"description":"<p>rotation settings of this filter</p>","name":"settings.rotation"},{"type":{"names":["ShoukakuConstants#DistortionValue"]},"optional":true,"description":"<p>distortion settings of this filter</p>","name":"settings.distortion"}],"name":"ShoukakuFilter","longname":"ShoukakuFilter","kind":"class","scope":"global","$longname":"ShoukakuFilter","$kind":"constructor","$docmaLink":"?api#ShoukakuFilter"}},{"comment":"/**\n * ShoukakuLink, contains data about the voice connection on the guild.\n * @class ShoukakuLink\n * @extends {EventEmitter}\n */","meta":{"filename":"ShoukakuLink.js","lineno":7,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>ShoukakuLink, contains data about the voice connection on the guild.</p>","kind":"class","name":"ShoukakuLink","augments":["EventEmitter"],"longname":"ShoukakuLink","scope":"global","$longname":"ShoukakuLink","$kind":"class","$docmaLink":"?api#ShoukakuLink","$members":[{"comment":"/**\n     * Attempts to reconnect this ShoukakuLink, A use case for this is when your Discord Websocket re-identifies\n     * @memberOf ShoukakuLink\n     * @param {Object} [options] options for attemptReconnect\n     * @param {String} [options.voiceChannelID] Will throw an error if not specified, when the state of this link is disconnected, no cached serverUpdate or when forceReconnect is true\n     * @param {Boolean} [options.forceReconnect] Forces a reconnection by re-requesting a connection to Discord, also resets your player\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[3494,4710],"filename":"ShoukakuLink.js","lineno":102,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001669","name":"ShoukakuLink#attemptReconnect","type":"MethodDefinition","paramnames":[""]},"vars":{"":null}},"description":"<p>Attempts to reconnect this ShoukakuLink, A use case for this is when your Discord Websocket re-identifies</p>","memberof":"ShoukakuLink","params":[{"type":{"names":["Object"]},"optional":true,"description":"<p>options for attemptReconnect</p>","name":"options"},{"type":{"names":["String"]},"optional":true,"description":"<p>Will throw an error if not specified, when the state of this link is disconnected, no cached serverUpdate or when forceReconnect is true</p>","name":"options.voiceChannelID"},{"type":{"names":["Boolean"]},"optional":true,"description":"<p>Forces a reconnection by re-requesting a connection to Discord, also resets your player</p>","name":"options.forceReconnect"}],"returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"attemptReconnect","longname":"ShoukakuLink#attemptReconnect","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuLink#attemptReconnect","$kind":"method","$docmaLink":"?api#ShoukakuLink#attemptReconnect"},{"comment":"/**\n         * If this link detected a voice channel change.\n         * @type {boolean}\n         */","meta":{"range":[2267,2292],"filename":"ShoukakuLink.js","lineno":74,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001606","name":"this.channelMoved","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If this link detected a voice channel change.</p>","type":{"names":["boolean"]},"name":"channelMoved","longname":"ShoukakuLink#channelMoved","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#channelMoved","$kind":"property","$docmaLink":"?api#ShoukakuLink#channelMoved"},{"comment":"/**\n         * The ID of the guild that is being governed by this Link.\n         * @type {string}\n         */","meta":{"range":[1124,1147],"filename":"ShoukakuLink.js","lineno":34,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001556","name":"this.guildID","type":"MemberExpression","value":"guild.id","paramnames":[]}},"description":"<p>The ID of the guild that is being governed by this Link.</p>","type":{"names":["string"]},"name":"guildID","longname":"ShoukakuLink#guildID","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#guildID","$kind":"property","$docmaLink":"?api#ShoukakuLink#guildID"},{"comment":"/**\n         * The ID of the last voice channel that is being governed by this link.\n         * @type {?string}\n         */","meta":{"range":[1572,1602],"filename":"ShoukakuLink.js","lineno":49,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001576","name":"this.lastVoiceChannelID","type":"Literal","value":null,"paramnames":[]}},"description":"<p>The ID of the last voice channel that is being governed by this link.</p>","type":{"names":["string"]},"nullable":true,"name":"lastVoiceChannelID","longname":"ShoukakuLink#lastVoiceChannelID","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#lastVoiceChannelID","$kind":"property","$docmaLink":"?api#ShoukakuLink#lastVoiceChannelID"},{"comment":"/**\n         * The node that governs this Link\n         * @type {ShoukakuSocket}\n         */","meta":{"range":[980,996],"filename":"ShoukakuLink.js","lineno":29,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001550","name":"this.node","type":"Identifier","value":"node","paramnames":[]}},"description":"<p>The node that governs this Link</p>","type":{"names":["ShoukakuSocket"]},"name":"node","longname":"ShoukakuLink#node","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#node","$kind":"property","$docmaLink":"?api#ShoukakuLink#node"},{"comment":"/**\n         * The player class of this link.\n         * @type {ShoukakuPlayer}\n         */","meta":{"range":[849,869],"filename":"ShoukakuLink.js","lineno":24,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001544","name":"this.player","type":"Identifier","value":"player","paramnames":[]}},"description":"<p>The player class of this link.</p>","type":{"names":["ShoukakuPlayer"]},"name":"player","longname":"ShoukakuLink#player","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#player","$kind":"property","$docmaLink":"?api#ShoukakuLink#player"},{"comment":"/**\n         * If this link is reconnecting via ShoukakuLink.attemptReconnect() or ShoukakuLink.moveToNode()\n         * @type {boolean}\n         */","meta":{"range":[2598,2623],"filename":"ShoukakuLink.js","lineno":84,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001618","name":"this.reconnecting","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If this link is reconnecting via ShoukakuLink.attemptReconnect() or ShoukakuLink.moveToNode()</p>","type":{"names":["boolean"]},"name":"reconnecting","longname":"ShoukakuLink#reconnecting","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#reconnecting","$kind":"property","$docmaLink":"?api#ShoukakuLink#reconnecting"},{"comment":"/**\n         * Voice region where this link is connected.\n         * @type {?string}\n         */","meta":{"range":[1717,1735],"filename":"ShoukakuLink.js","lineno":54,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001582","name":"this.region","type":"Literal","value":null,"paramnames":[]}},"description":"<p>Voice region where this link is connected.</p>","type":{"names":["string"]},"nullable":true,"name":"region","longname":"ShoukakuLink#region","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#region","$kind":"property","$docmaLink":"?api#ShoukakuLink#region"},{"comment":"/**\n         * If the client user is self defeaned.\n         * @type {boolean}\n         */","meta":{"range":[1971,1992],"filename":"ShoukakuLink.js","lineno":64,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001594","name":"this.selfDeaf","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If the client user is self defeaned.</p>","type":{"names":["boolean"]},"name":"selfDeaf","longname":"ShoukakuLink#selfDeaf","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#selfDeaf","$kind":"property","$docmaLink":"?api#ShoukakuLink#selfDeaf"},{"comment":"/**\n         * If the client user is self muted.\n         * @type {boolean}\n         */","meta":{"range":[1841,1862],"filename":"ShoukakuLink.js","lineno":59,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001588","name":"this.selfMute","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If the client user is self muted.</p>","type":{"names":["boolean"]},"name":"selfMute","longname":"ShoukakuLink#selfMute","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#selfMute","$kind":"property","$docmaLink":"?api#ShoukakuLink#selfMute"},{"comment":"/**\n         * The sessionID of this Link\n         * @type {?string}\n         */","meta":{"range":[1246,1267],"filename":"ShoukakuLink.js","lineno":39,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001564","name":"this.sessionID","type":"Literal","value":null,"paramnames":[]}},"description":"<p>The sessionID of this Link</p>","type":{"names":["string"]},"nullable":true,"name":"sessionID","longname":"ShoukakuLink#sessionID","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#sessionID","$kind":"property","$docmaLink":"?api#ShoukakuLink#sessionID"},{"comment":"/**\n         * Voice connection status to Discord\n         * @type {ShoukakuConstants#ShoukakuStatus}\n         */","meta":{"range":[2124,2149],"filename":"ShoukakuLink.js","lineno":69,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001600","name":"this.state","type":"Identifier","value":"DISCONNECTED","paramnames":[]}},"description":"<p>Voice connection status to Discord</p>","type":{"names":["ShoukakuConstants#ShoukakuStatus"]},"name":"state","longname":"ShoukakuLink#state","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#state","$kind":"property","$docmaLink":"?api#ShoukakuLink#state"},{"comment":"/**\n         * The ID of the voice channel that is being governed by this link.\n         * @type {?string}\n         */","meta":{"range":[1404,1430],"filename":"ShoukakuLink.js","lineno":44,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001570","name":"this.voiceChannelID","type":"Literal","value":null,"paramnames":[]}},"description":"<p>The ID of the voice channel that is being governed by this link.</p>","type":{"names":["string"]},"nullable":true,"name":"voiceChannelID","longname":"ShoukakuLink#voiceChannelID","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#voiceChannelID","$kind":"property","$docmaLink":"?api#ShoukakuLink#voiceChannelID"},{"comment":"/**\n         * If this link detected a voice server change.\n         * @type {boolean}\n         */","meta":{"range":[2409,2432],"filename":"ShoukakuLink.js","lineno":79,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001612","name":"this.voiceMoved","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If this link detected a voice server change.</p>","type":{"names":["boolean"]},"name":"voiceMoved","longname":"ShoukakuLink#voiceMoved","kind":"member","memberof":"ShoukakuLink","scope":"instance","$longname":"ShoukakuLink#voiceMoved","$kind":"property","$docmaLink":"?api#ShoukakuLink#voiceMoved"}],"$constructor":{"comment":"/**\n     * @param {ShoukakuPlayer} player The player of this link.\n     * @param {ShoukakuSocket} node The node that governs this link.\n     * @param {Guild} guild A Discord.js Guild Object.\n     */","meta":{"range":[689,2805],"filename":"ShoukakuLink.js","lineno":18,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100001533","name":"ShoukakuLink","type":"MethodDefinition","paramnames":["player","node","guild"]},"vars":{"":null}},"params":[{"type":{"names":["ShoukakuPlayer"]},"description":"<p>The player of this link.</p>","name":"player"},{"type":{"names":["ShoukakuSocket"]},"description":"<p>The node that governs this link.</p>","name":"node"},{"type":{"names":["Guild"]},"description":"<p>A Discord.js Guild Object.</p>","name":"guild"}],"name":"ShoukakuLink","longname":"ShoukakuLink","kind":"class","scope":"global","$longname":"ShoukakuLink","$kind":"constructor","$docmaLink":"?api#ShoukakuLink"}},{"comment":"/**\n * ShoukakuPlayer, used to control the player on a guild\n * @class ShoukakuPlayer\n * @extends {EventEmitter}\n */","meta":{"filename":"ShoukakuPlayer.js","lineno":10,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>ShoukakuPlayer, used to control the player on a guild</p>","kind":"class","name":"ShoukakuPlayer","augments":["EventEmitter"],"longname":"ShoukakuPlayer","scope":"global","$longname":"ShoukakuPlayer","$kind":"class","$docmaLink":"?api#ShoukakuPlayer","$members":[{"comment":"/**\n     * Clears all the filter applied on this player\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[14472,14702],"filename":"ShoukakuPlayer.js","lineno":377,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003574","name":"ShoukakuPlayer#clearFilters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Clears all the filter applied on this player</p>","memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"clearFilters","longname":"ShoukakuPlayer#clearFilters","kind":"function","scope":"instance","params":[],"async":true,"$longname":"ShoukakuPlayer#clearFilters","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#clearFilters"},{"comment":"/**\n     * Eventually Connects the Bot to the voice channel in the guild. This is used internally and must not be used to connect players. Use `<ShoukakuSocket>.joinVoiceChannel()` instead.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<void>}\n     */","meta":{"range":[4150,4228],"filename":"ShoukakuPlayer.js","lineno":111,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002801","name":"ShoukakuPlayer#connect","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"<p>Eventually Connects the Bot to the voice channel in the guild. This is used internally and must not be used to connect players. Use <code>&lt;ShoukakuSocket&gt;.joinVoiceChannel()</code> instead.</p>","memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<void>"]}}],"name":"connect","longname":"ShoukakuPlayer#connect","kind":"function","scope":"instance","params":[],"$longname":"ShoukakuPlayer#connect","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#connect"},{"comment":"/**\n     * Eventually Disconnects the VoiceConnection & Removes the player from a Guild. Could be also used to clean up player remnants from unexpected events.\n     * @memberOf ShoukakuPlayer\n     * @returns {void}\n     */","meta":{"range":[4460,4530],"filename":"ShoukakuPlayer.js","lineno":119,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002814","name":"ShoukakuPlayer#disconnect","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Eventually Disconnects the VoiceConnection &amp; Removes the player from a Guild. Could be also used to clean up player remnants from unexpected events.</p>","memberof":"ShoukakuPlayer","returns":[{"type":{"names":["void"]}}],"name":"disconnect","longname":"ShoukakuPlayer#disconnect","kind":"function","scope":"instance","params":[],"$longname":"ShoukakuPlayer#disconnect","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#disconnect"},{"comment":"/**\n     * Moves this Player & VoiceConnection to another lavalink node you specified.\n     * @param {string} name Name of the Node you want to move to.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[4774,5146],"filename":"ShoukakuPlayer.js","lineno":128,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002825","name":"ShoukakuPlayer#moveToNode","type":"MethodDefinition","paramnames":["name"]},"vars":{"":null}},"description":"<p>Moves this Player &amp; VoiceConnection to another lavalink node you specified.</p>","params":[{"type":{"names":["string"]},"description":"<p>Name of the Node you want to move to.</p>","name":"name"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"moveToNode","longname":"ShoukakuPlayer#moveToNode","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#moveToNode","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#moveToNode"},{"comment":"/**\n     * Plays a track.\n     * @param {string|ShoukakuTrack} track The Base64 track from the Lavalink Rest API or a ShoukakuTrack.\n     * @param {ShoukakuPlayOptions} [options] Used if you want to put a custom track start or end time.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[5474,6218],"filename":"ShoukakuPlayer.js","lineno":143,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002884","name":"ShoukakuPlayer#playTrack","type":"MethodDefinition","paramnames":["input","options"]},"vars":{"":null}},"description":"<p>Plays a track.</p>","params":[{"type":{"names":["string","ShoukakuTrack"]},"description":"<p>The Base64 track from the Lavalink Rest API or a ShoukakuTrack.</p>","name":"track"},{"type":{"names":["ShoukakuPlayOptions"]},"optional":true,"description":"<p>Used if you want to put a custom track start or end time.</p>","name":"options"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"playTrack","longname":"ShoukakuPlayer#playTrack","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#playTrack","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#playTrack"},{"comment":"/**\n     * Tries to resume your player, a use case for this is when you do <ShoukakuPlayer>.voiceConnection.attemptReconnect()\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<void>}\n     * @example\n     * <ShoukakuPlayer>.voiceConnection.attemptReconnect()\n     *     .then(() => <ShoukakuPlayer>.resume());\n     */","meta":{"range":[15036,15333],"filename":"ShoukakuPlayer.js","lineno":393,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003606","name":"ShoukakuPlayer#resume","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Tries to resume your player, a use case for this is when you do <ShoukakuPlayer>.voiceConnection.attemptReconnect()</p>","memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<void>"]}}],"examples":["<ShoukakuPlayer>.voiceConnection.attemptReconnect()\n    .then(() => <ShoukakuPlayer>.resume());"],"name":"resume","longname":"ShoukakuPlayer#resume","kind":"function","scope":"instance","params":[],"async":true,"$longname":"ShoukakuPlayer#resume","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#resume"},{"comment":"/**\n     * Seeks your player to the time you want\n     * @param {number} position position in MS you want to seek to.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[7206,7534],"filename":"ShoukakuPlayer.js","lineno":197,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003058","name":"ShoukakuPlayer#seekTo","type":"MethodDefinition","paramnames":["position"]},"vars":{"":null}},"description":"<p>Seeks your player to the time you want</p>","params":[{"type":{"names":["number"]},"description":"<p>position in MS you want to seek to.</p>","name":"position"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"seekTo","longname":"ShoukakuPlayer#seekTo","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#seekTo","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#seekTo"},{"comment":"/**\n     * Sets the distortion effect of your lavalink player\n     * @param {ShoukakuConstants#DistortionValue} [distortionValue] Distortion settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[12658,13177],"filename":"ShoukakuPlayer.js","lineno":339,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003493","name":"ShoukakuPlayer#setDistortion","type":"MethodDefinition","paramnames":["distortionValue"]},"vars":{"":null}},"description":"<p>Sets the distortion effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#DistortionValue"]},"optional":true,"description":"<p>Distortion settings for this playback</p>","name":"distortionValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setDistortion","longname":"ShoukakuPlayer#setDistortion","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setDistortion","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setDistortion"},{"comment":"/**\n     * Sets the equalizer of your lavalink player\n     * @param {Array<ShoukakuConstants#EqualizerBand>} bands An array of Lavalink bands.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[8273,8653],"filename":"ShoukakuPlayer.js","lineno":226,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003142","name":"ShoukakuPlayer#setEqualizer","type":"MethodDefinition","paramnames":["bands"]},"vars":{"":null}},"description":"<p>Sets the equalizer of your lavalink player</p>","params":[{"type":{"names":["Array.<ShoukakuConstants#EqualizerBand>"]},"description":"<p>An array of Lavalink bands.</p>","name":"bands"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setEqualizer","longname":"ShoukakuPlayer#setEqualizer","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setEqualizer","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setEqualizer"},{"comment":"/**\n     * Ability to set filters by group instead of 1 by 1\n     * @param {Object} [settings] object containing filter settings\n     * @param {Number} [settings.volume=1.0] volume of this filter\n     * @param {Array<ShoukakuConstants#EqualizerBand>} [settings.equalizer=[]] equalizer of this filter\n     * @param {ShoukakuConstants#KaraokeValue} [settings.karaoke] karaoke settings of this filter\n     * @param {ShoukakuConstants#TimescaleValue} [settings.timescale] timescale settings of this filter\n     * @param {ShoukakuConstants#TremoloValue} [settings.tremolo] tremolo settings of this filter\n     * @param {ShoukakuConstants#VibratoValue} [settings.vibrato] vibrato settings of this filter\n     * @param {ShoukakuConstants#RotationValue} [settings.rotation] rotation settings of this filter\n     * @param {ShoukakuConstants#DistortionValue} [settings.distortion] distortion settings of this filter\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[14174,14325],"filename":"ShoukakuPlayer.js","lineno":367,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003553","name":"ShoukakuPlayer#setGroupedFilters","type":"MethodDefinition","paramnames":["settings"]},"vars":{"":null}},"description":"<p>Ability to set filters by group instead of 1 by 1</p>","params":[{"type":{"names":["Object"]},"optional":true,"description":"<p>object containing filter settings</p>","name":"settings"},{"type":{"names":["Number"]},"optional":true,"defaultvalue":"1.0","description":"<p>volume of this filter</p>","name":"settings.volume"},{"type":{"names":["Array.<ShoukakuConstants#EqualizerBand>"]},"optional":true,"defaultvalue":"[]","description":"<p>equalizer of this filter</p>","name":"settings.equalizer"},{"type":{"names":["ShoukakuConstants#KaraokeValue"]},"optional":true,"description":"<p>karaoke settings of this filter</p>","name":"settings.karaoke"},{"type":{"names":["ShoukakuConstants#TimescaleValue"]},"optional":true,"description":"<p>timescale settings of this filter</p>","name":"settings.timescale"},{"type":{"names":["ShoukakuConstants#TremoloValue"]},"optional":true,"description":"<p>tremolo settings of this filter</p>","name":"settings.tremolo"},{"type":{"names":["ShoukakuConstants#VibratoValue"]},"optional":true,"description":"<p>vibrato settings of this filter</p>","name":"settings.vibrato"},{"type":{"names":["ShoukakuConstants#RotationValue"]},"optional":true,"description":"<p>rotation settings of this filter</p>","name":"settings.rotation"},{"type":{"names":["ShoukakuConstants#DistortionValue"]},"optional":true,"description":"<p>distortion settings of this filter</p>","name":"settings.distortion"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setGroupedFilters","longname":"ShoukakuPlayer#setGroupedFilters","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setGroupedFilters","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setGroupedFilters"},{"comment":"/**\n     * Sets the karaoke effect of your lavalink player\n     * @param {ShoukakuConstants#KaraokeValue} [karaokeValue] Karaoke settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[8900,9395],"filename":"ShoukakuPlayer.js","lineno":239,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003193","name":"ShoukakuPlayer#setKaraoke","type":"MethodDefinition","paramnames":["karaokeValue"]},"vars":{"":null}},"description":"<p>Sets the karaoke effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#KaraokeValue"]},"optional":true,"description":"<p>Karaoke settings for this playback</p>","name":"karaokeValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setKaraoke","longname":"ShoukakuPlayer#setKaraoke","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setKaraoke","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setKaraoke"},{"comment":"/**\n     * Pauses / Unpauses the player\n     * @param {boolean} [pause=true] true to pause, false to unpause\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[6757,6997],"filename":"ShoukakuPlayer.js","lineno":182,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003022","name":"ShoukakuPlayer#setPaused","type":"MethodDefinition","paramnames":["pause"]},"vars":{"":null}},"description":"<p>Pauses / Unpauses the player</p>","params":[{"type":{"names":["boolean"]},"optional":true,"defaultvalue":true,"description":"<p>true to pause, false to unpause</p>","name":"pause"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setPaused","longname":"ShoukakuPlayer#setPaused","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setPaused","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setPaused"},{"comment":"/**\n     * Sets the rotation effect of your lavalink player\n     * @param {ShoukakuConstants#RotationValue} [rotationValue] Rotation settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[11896,12399],"filename":"ShoukakuPlayer.js","lineno":319,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003433","name":"ShoukakuPlayer#setRotation","type":"MethodDefinition","paramnames":["rotationValue"]},"vars":{"":null}},"description":"<p>Sets the rotation effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#RotationValue"]},"optional":true,"description":"<p>Rotation settings for this playback</p>","name":"rotationValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setRotation","longname":"ShoukakuPlayer#setRotation","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setRotation","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setRotation"},{"comment":"/**\n     * Sets the timescale effect of your lavalink player\n     * @param {ShoukakuConstants#TimescaleValue} [timescaleValue] Timescale settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[9650,10161],"filename":"ShoukakuPlayer.js","lineno":259,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003253","name":"ShoukakuPlayer#setTimescale","type":"MethodDefinition","paramnames":["timescaleValue"]},"vars":{"":null}},"description":"<p>Sets the timescale effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#TimescaleValue"]},"optional":true,"description":"<p>Timescale settings for this playback</p>","name":"timescaleValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setTimescale","longname":"ShoukakuPlayer#setTimescale","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setTimescale","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setTimescale"},{"comment":"/**\n     * Sets the tremolo effect of your lavalink player\n     * @param {ShoukakuConstants#TremoloValue} [tremoloValue] Tremolo settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[10408,10903],"filename":"ShoukakuPlayer.js","lineno":279,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003313","name":"ShoukakuPlayer#setTremolo","type":"MethodDefinition","paramnames":["tremoloValue"]},"vars":{"":null}},"description":"<p>Sets the tremolo effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#TremoloValue"]},"optional":true,"description":"<p>Tremolo settings for this playback</p>","name":"tremoloValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setTremolo","longname":"ShoukakuPlayer#setTremolo","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setTremolo","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setTremolo"},{"comment":"/**\n     * Sets the vibrato effect of your lavalink player\n     * @param {ShoukakuConstants#VibratoValue} [vibratoValue] Vibrato settings for this playback\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[11150,11645],"filename":"ShoukakuPlayer.js","lineno":299,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003373","name":"ShoukakuPlayer#setVibrato","type":"MethodDefinition","paramnames":["vibratoValue"]},"vars":{"":null}},"description":"<p>Sets the vibrato effect of your lavalink player</p>","params":[{"type":{"names":["ShoukakuConstants#VibratoValue"]},"optional":true,"description":"<p>Vibrato settings for this playback</p>","name":"vibratoValue"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setVibrato","longname":"ShoukakuPlayer#setVibrato","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setVibrato","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setVibrato"},{"comment":"/**\n     * Sets the playback volume of your lavalink player\n     * @param {number} volume The new volume you want to set on the player.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[7761,8039],"filename":"ShoukakuPlayer.js","lineno":213,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100003097","name":"ShoukakuPlayer#setVolume","type":"MethodDefinition","paramnames":["volume"]},"vars":{"":null}},"description":"<p>Sets the playback volume of your lavalink player</p>","params":[{"type":{"names":["number"]},"description":"<p>The new volume you want to set on the player.</p>","name":"volume"}],"memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"setVolume","longname":"ShoukakuPlayer#setVolume","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuPlayer#setVolume","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#setVolume"},{"comment":"/**\n     * Stops the player from playing.\n     * @memberOf ShoukakuPlayer\n     * @returns {Promise<ShoukakuPlayer>}\n     */","meta":{"range":[6351,6557],"filename":"ShoukakuPlayer.js","lineno":168,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002991","name":"ShoukakuPlayer#stopTrack","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Stops the player from playing.</p>","memberof":"ShoukakuPlayer","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"name":"stopTrack","longname":"ShoukakuPlayer#stopTrack","kind":"function","scope":"instance","params":[],"async":true,"$longname":"ShoukakuPlayer#stopTrack","$kind":"method","$docmaLink":"?api#ShoukakuPlayer#stopTrack"},{"comment":"/**\n         * Current filter settings for this player\n         * @type {ShoukakuFilter}\n         */","meta":{"range":[1610,1645],"filename":"ShoukakuPlayer.js","lineno":46,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002795","name":"this.filters","type":"NewExpression","value":"","paramnames":[]}},"description":"<p>Current filter settings for this player</p>","type":{"names":["ShoukakuFilter"]},"name":"filters","longname":"ShoukakuPlayer#filters","kind":"member","memberof":"ShoukakuPlayer","scope":"instance","$longname":"ShoukakuPlayer#filters","$kind":"property","$docmaLink":"?api#ShoukakuPlayer#filters"},{"comment":"/**\n         * If this player is currently paused.\n         * @type {boolean}\n         */","meta":{"range":[1343,1362],"filename":"ShoukakuPlayer.js","lineno":36,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002783","name":"this.paused","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If this player is currently paused.</p>","type":{"names":["boolean"]},"name":"paused","longname":"ShoukakuPlayer#paused","kind":"member","memberof":"ShoukakuPlayer","scope":"instance","$longname":"ShoukakuPlayer#paused","$kind":"property","$docmaLink":"?api#ShoukakuPlayer#paused"},{"comment":"/**\n         * The current postion in ms of this player\n         * @type {number}\n         */","meta":{"range":[1474,1491],"filename":"ShoukakuPlayer.js","lineno":41,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002789","name":"this.position","type":"Literal","value":0,"paramnames":[]}},"description":"<p>The current postion in ms of this player</p>","type":{"names":["number"]},"name":"position","longname":"ShoukakuPlayer#position","kind":"member","memberof":"ShoukakuPlayer","scope":"instance","$longname":"ShoukakuPlayer#position","$kind":"property","$docmaLink":"?api#ShoukakuPlayer#position"},{"comment":"/**\n         * The Track that is currently being played by this player\n         * @type {?string}\n         */","meta":{"range":[1218,1235],"filename":"ShoukakuPlayer.js","lineno":31,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002777","name":"this.track","type":"Literal","value":null,"paramnames":[]}},"description":"<p>The Track that is currently being played by this player</p>","type":{"names":["string"]},"nullable":true,"name":"track","longname":"ShoukakuPlayer#track","kind":"member","memberof":"ShoukakuPlayer","scope":"instance","$longname":"ShoukakuPlayer#track","$kind":"property","$docmaLink":"?api#ShoukakuPlayer#track"},{"comment":"/**\n         * The Voice Connection of this Player.\n         * @type {ShoukakuLink}\n         */","meta":{"range":[1032,1090],"filename":"ShoukakuPlayer.js","lineno":26,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002767","name":"this.voiceConnection","type":"NewExpression","value":"","paramnames":[]}},"description":"<p>The Voice Connection of this Player.</p>","type":{"names":["ShoukakuLink"]},"name":"voiceConnection","longname":"ShoukakuPlayer#voiceConnection","kind":"member","memberof":"ShoukakuPlayer","scope":"instance","$longname":"ShoukakuPlayer#voiceConnection","$kind":"property","$docmaLink":"?api#ShoukakuPlayer#voiceConnection"},{"comment":"/**\n     * Emitted when the Lavalink Server sends a WebsocketClosedEvent, MUST BE HANDLED.\n     * @event ShoukakuPlayer#closed\n     * @param {Object} reason\n     * @memberOf ShoukakuPlayer\n     * @example\n     * // <Player> is your ShoukakuPlayer instance\n     * <Player>.on('closed', reason => console.log(reason) & <Player>.disconnect())\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":55,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when the Lavalink Server sends a WebsocketClosedEvent, MUST BE HANDLED.</p>","kind":"event","name":"closed","params":[{"type":{"names":["Object"]},"name":"reason"}],"memberof":"ShoukakuPlayer","examples":["// <Player> is your ShoukakuPlayer instance\n<Player>.on('closed', reason => console.log(reason) & <Player>.disconnect())"],"longname":"ShoukakuPlayer#event:closed","scope":"instance","$longname":"ShoukakuPlayer#event:closed","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:closed"},{"comment":"/**\n     * Emitted when the Lavalink Server sends a TrackEndEvent or TrackStuckEvent, MUST BE HANDLED.\n     * @event ShoukakuPlayer#end\n     * @param {Object} reason\n     * @memberOf ShoukakuPlayer\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":49,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when the Lavalink Server sends a TrackEndEvent or TrackStuckEvent, MUST BE HANDLED.</p>","kind":"event","name":"end","params":[{"type":{"names":["Object"]},"name":"reason"}],"memberof":"ShoukakuPlayer","longname":"ShoukakuPlayer#event:end","scope":"instance","$longname":"ShoukakuPlayer#event:end","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:end"},{"comment":"/**\n     * Emitted when this library encounters an internal error in ShoukakuPlayer or ShoukakuLink, MUST BE HANDLED.\n     * @event ShoukakuPlayer#error\n     * @param {ShoukakuError|Error} error The error encountered.\n     * @memberOf ShoukakuPlayer\n     * @example\n     * // <Player> is your ShoukakuPlayer instance\n     * <Player>.on('error', error => console.error(error) & <Player>.disconnect());\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":64,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when this library encounters an internal error in ShoukakuPlayer or ShoukakuLink, MUST BE HANDLED.</p>","kind":"event","name":"error","params":[{"type":{"names":["ShoukakuError","Error"]},"description":"<p>The error encountered.</p>","name":"error"}],"memberof":"ShoukakuPlayer","examples":["// <Player> is your ShoukakuPlayer instance\n<Player>.on('error', error => console.error(error) & <Player>.disconnect());"],"longname":"ShoukakuPlayer#event:error","scope":"instance","$longname":"ShoukakuPlayer#event:error","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:error"},{"comment":"/**\n     * Emitted when this player's node was disconnected, MUST BE HANDLED.\n     * @event ShoukakuPlayer#nodeDisconnect\n     * @param {string} name The name of the node that disconnected.\n     * @memberOf ShoukakuPlayer\n     * @example\n     * // <Player> is your ShoukakuPlayer instance\n     * <Player>.on('nodeDisconnect', name => console.log(`Node ${name} which governs this player disconnected`) & <Player>.disconnect());\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":73,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when this player's node was disconnected, MUST BE HANDLED.</p>","kind":"event","name":"nodeDisconnect","params":[{"type":{"names":["string"]},"description":"<p>The name of the node that disconnected.</p>","name":"name"}],"memberof":"ShoukakuPlayer","examples":["// <Player> is your ShoukakuPlayer instance\n<Player>.on('nodeDisconnect', name => console.log(`Node ${name} which governs this player disconnected`) & <Player>.disconnect());"],"longname":"ShoukakuPlayer#event:nodeDisconnect","scope":"instance","$longname":"ShoukakuPlayer#event:nodeDisconnect","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:nodeDisconnect"},{"comment":"/**\n     * Emitted when the Lavalink Server sends a PlayerUpdate OP, Optional.\n     * @event ShoukakuPlayer#playerUpdate\n     * @param {Object} data\n     * @memberOf ShoukakuPlayer\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":99,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when the Lavalink Server sends a PlayerUpdate OP, Optional.</p>","kind":"event","name":"playerUpdate","params":[{"type":{"names":["Object"]},"name":"data"}],"memberof":"ShoukakuPlayer","longname":"ShoukakuPlayer#event:playerUpdate","scope":"instance","$longname":"ShoukakuPlayer#event:playerUpdate","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:playerUpdate"},{"comment":"/**\n     * Emitted when this library managed to resume playing this player, Optional.\n     * @event ShoukakuPlayer#resumed\n     * @memberOf ShoukakuPlayer\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":94,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when this library managed to resume playing this player, Optional.</p>","kind":"event","name":"resumed","memberof":"ShoukakuPlayer","longname":"ShoukakuPlayer#event:resumed","scope":"instance","$longname":"ShoukakuPlayer#event:resumed","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:resumed"},{"comment":"/**\n     * Emitted when the Lavalink Server sends a TrackStartEvent, Optional.\n     * @event ShoukakuPlayer#start\n     * @param {Object} data\n     * @memberOf ShoukakuPlayer\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":82,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when the Lavalink Server sends a TrackStartEvent, Optional.</p>","kind":"event","name":"start","params":[{"type":{"names":["Object"]},"name":"data"}],"memberof":"ShoukakuPlayer","longname":"ShoukakuPlayer#event:start","scope":"instance","$longname":"ShoukakuPlayer#event:start","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:start"},{"comment":"/**\n     * Emitted when the Lavalink Server sends a TrackExceptionEvent, Automatically fires TrackEndEvent so handling this is optional, Optional.\n     * @event ShoukakuPlayer#trackException\n     * @param {Object} reason\n     * @memberOf ShoukakuPlayer\n     */","meta":{"filename":"ShoukakuPlayer.js","lineno":88,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{}},"description":"<p>Emitted when the Lavalink Server sends a TrackExceptionEvent, Automatically fires TrackEndEvent so handling this is optional, Optional.</p>","kind":"event","name":"trackException","params":[{"type":{"names":["Object"]},"name":"reason"}],"memberof":"ShoukakuPlayer","longname":"ShoukakuPlayer#event:trackException","scope":"instance","$longname":"ShoukakuPlayer#event:trackException","$kind":"event","$docmaLink":"?api#ShoukakuPlayer#event:trackException"}],"$constructor":{"comment":"/**\n     * @param  {ShoukakuSocket} node The node that governs this player\n     * @param  {Guild} guild A Discord.JS Guild Object\n     */","meta":{"range":[876,1652],"filename":"ShoukakuPlayer.js","lineno":20,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\guild","code":{"id":"astnode100002757","name":"ShoukakuPlayer","type":"MethodDefinition","paramnames":["node","guild"]},"vars":{"":null}},"params":[{"type":{"names":["ShoukakuSocket"]},"description":"<p>The node that governs this player</p>","name":"node"},{"type":{"names":["Guild"]},"description":"<p>A Discord.JS Guild Object</p>","name":"guild"}],"name":"ShoukakuPlayer","longname":"ShoukakuPlayer","kind":"class","scope":"global","$longname":"ShoukakuPlayer","$kind":"constructor","$docmaLink":"?api#ShoukakuPlayer"}},{"comment":"/**\n * ShoukakuRest, provides access to Lavalink REST API.\n * @class ShoukakuRest\n */","meta":{"filename":"ShoukakuRest.js","lineno":9,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{}},"description":"<p>ShoukakuRest, provides access to Lavalink REST API.</p>","kind":"class","name":"ShoukakuRest","longname":"ShoukakuRest","scope":"global","$longname":"ShoukakuRest","$kind":"class","$docmaLink":"?api#ShoukakuRest","$members":[{"comment":"/**\n     * Decodes the given base64 encoded track from lavalink.\n     * @param {string} track Base64 Encoded Track you got from the Lavalink API.\n     * @memberof ShoukakuRest\n     * @returns {Promise<Object>} The Lavalink Track details.\n     */","meta":{"range":[2558,2735],"filename":"ShoukakuRest.js","lineno":56,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005287","name":"ShoukakuRest#decode","type":"MethodDefinition","paramnames":["track"]},"vars":{"":null}},"description":"<p>Decodes the given base64 encoded track from lavalink.</p>","params":[{"type":{"names":["string"]},"description":"<p>Base64 Encoded Track you got from the Lavalink API.</p>","name":"track"}],"memberof":"ShoukakuRest","returns":[{"type":{"names":["Promise.<Object>"]},"description":"<p>The Lavalink Track details.</p>"}],"name":"decode","longname":"ShoukakuRest#decode","kind":"function","scope":"instance","$longname":"ShoukakuRest#decode","$kind":"method","$docmaLink":"?api#ShoukakuRest#decode"},{"comment":"/**\n     * Gets the status of the \"RoutePlanner API\" for this Lavalink node.\n     * @memberof ShoukakuRest\n     * @returns {Promise<Object>} Refer to `https://github.com/Frederikam/Lavalink/blob/master/IMPLEMENTATION.md#routeplanner-api`\n     */","meta":{"range":[2990,3071],"filename":"ShoukakuRest.js","lineno":65,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005315","name":"ShoukakuRest#getRoutePlannerStatus","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Gets the status of the &quot;RoutePlanner API&quot; for this Lavalink node.</p>","memberof":"ShoukakuRest","returns":[{"type":{"names":["Promise.<Object>"]},"description":"<p>Refer to <code>https://github.com/Frederikam/Lavalink/blob/master/IMPLEMENTATION.md#routeplanner-api</code></p>"}],"name":"getRoutePlannerStatus","longname":"ShoukakuRest#getRoutePlannerStatus","kind":"function","scope":"instance","params":[],"$longname":"ShoukakuRest#getRoutePlannerStatus","$kind":"method","$docmaLink":"?api#ShoukakuRest#getRoutePlannerStatus"},{"comment":"/**\n    * Resolves a identifier into a lavalink track.\n    * @param {string} identifier Anything you want for lavalink to search for\n    * @param {string} [search] Either `youtube` or `soundcloud` or `youtubemusic`. If specified, resolve will return search results.\n    * @memberof ShoukakuRest\n    * @returns {Promise<null|ShoukakuTrackList>} The parsed data from Lavalink rest\n    */","meta":{"range":[1910,2303],"filename":"ShoukakuRest.js","lineno":44,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005227","name":"ShoukakuRest#resolve","type":"MethodDefinition","paramnames":["identifier","search"]},"vars":{"":null}},"description":"<p>Resolves a identifier into a lavalink track.</p>","params":[{"type":{"names":["string"]},"description":"<p>Anything you want for lavalink to search for</p>","name":"identifier"},{"type":{"names":["string"]},"optional":true,"description":"<p>Either <code>youtube</code> or <code>soundcloud</code> or <code>youtubemusic</code>. If specified, resolve will return search results.</p>","name":"search"}],"memberof":"ShoukakuRest","returns":[{"type":{"names":["Promise.<(null|ShoukakuTrackList)>"]},"description":"<p>The parsed data from Lavalink rest</p>"}],"name":"resolve","longname":"ShoukakuRest#resolve","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuRest#resolve","$kind":"method","$docmaLink":"?api#ShoukakuRest#resolve"},{"comment":"/**\n     * Unmarks all the failed IP(s) in the \"RoutePlanner API\" on this Lavalink node.\n     * @memberof ShoukakuRest\n     * @returns {Promise<number>} Request status code\n     */","meta":{"range":[3616,3701],"filename":"ShoukakuRest.js","lineno":82,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005339","name":"ShoukakuRest#unmarkAllFailedAddress","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Unmarks all the failed IP(s) in the &quot;RoutePlanner API&quot; on this Lavalink node.</p>","memberof":"ShoukakuRest","returns":[{"type":{"names":["Promise.<number>"]},"description":"<p>Request status code</p>"}],"name":"unmarkAllFailedAddress","longname":"ShoukakuRest#unmarkAllFailedAddress","kind":"function","scope":"instance","params":[],"$longname":"ShoukakuRest#unmarkAllFailedAddress","$kind":"method","$docmaLink":"?api#ShoukakuRest#unmarkAllFailedAddress"},{"comment":"/**\n     * Unmarks a failed IP in the \"RoutePlanner API\" on this Lavalink node.\n     * @param {string} address The IP you want to unmark as failed.\n     * @memberof ShoukakuRest\n     * @returns {Promise<number>} Request status code\n     */","meta":{"range":[3320,3426],"filename":"ShoukakuRest.js","lineno":74,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005325","name":"ShoukakuRest#unmarkFailedAddress","type":"MethodDefinition","paramnames":["address"]},"vars":{"":null}},"description":"<p>Unmarks a failed IP in the &quot;RoutePlanner API&quot; on this Lavalink node.</p>","params":[{"type":{"names":["string"]},"description":"<p>The IP you want to unmark as failed.</p>","name":"address"}],"memberof":"ShoukakuRest","returns":[{"type":{"names":["Promise.<number>"]},"description":"<p>Request status code</p>"}],"name":"unmarkFailedAddress","longname":"ShoukakuRest#unmarkFailedAddress","kind":"function","scope":"instance","$longname":"ShoukakuRest#unmarkFailedAddress","$kind":"method","$docmaLink":"?api#ShoukakuRest#unmarkFailedAddress"},{"comment":"/**\n         * This Resolver Timeout before it decides to cancel the request.\n         * @type {number}\n         */","meta":{"range":[1342,1373],"filename":"ShoukakuRest.js","lineno":32,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005200","name":"this.timeout","type":"LogicalExpression","value":"","paramnames":[]}},"description":"<p>This Resolver Timeout before it decides to cancel the request.</p>","type":{"names":["number"]},"name":"timeout","longname":"ShoukakuRest#timeout","kind":"member","memberof":"ShoukakuRest","scope":"instance","$longname":"ShoukakuRest#timeout","$kind":"property","$docmaLink":"?api#ShoukakuRest#timeout"},{"comment":"/**\n        * URL of the host used by this resolver instance.\n        * @type {string}\n        */","meta":{"range":[1152,1208],"filename":"ShoukakuRest.js","lineno":27,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005184","name":"this.url","type":"TemplateLiteral","value":"","paramnames":[]}},"description":"<p>URL of the host used by this resolver instance.</p>","type":{"names":["string"]},"name":"url","longname":"ShoukakuRest#url","kind":"member","memberof":"ShoukakuRest","scope":"instance","$longname":"ShoukakuRest#url","$kind":"property","$docmaLink":"?api#ShoukakuRest#url"}],"$constructor":{"comment":"/**\n     * @param {string} host Your node host / ip address of where the lavalink is hosted.\n     * @param {string} port The Port Number of your lavalink instance.\n     * @param {string} auth The authentication key you set on your lavalink config.\n     * @param {string} userAgent User agent to use per request\n     * @param {number} [timeout=15000] Timeout before a request times out.\n     * @param {boolean} secure use secure protocol or no\n     */","meta":{"range":[978,1515],"filename":"ShoukakuRest.js","lineno":22,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\rest","code":{"id":"astnode100005173","name":"ShoukakuRest","type":"MethodDefinition","paramnames":["host","port","auth","userAgent","timeout","secure"]},"vars":{"":null}},"params":[{"type":{"names":["string"]},"description":"<p>Your node host / ip address of where the lavalink is hosted.</p>","name":"host"},{"type":{"names":["string"]},"description":"<p>The Port Number of your lavalink instance.</p>","name":"port"},{"type":{"names":["string"]},"description":"<p>The authentication key you set on your lavalink config.</p>","name":"auth"},{"type":{"names":["string"]},"description":"<p>User agent to use per request</p>","name":"userAgent"},{"type":{"names":["number"]},"optional":true,"defaultvalue":15000,"description":"<p>Timeout before a request times out.</p>","name":"timeout"},{"type":{"names":["boolean"]},"description":"<p>use secure protocol or no</p>","name":"secure"}],"name":"ShoukakuRest","longname":"ShoukakuRest","kind":"class","scope":"global","$longname":"ShoukakuRest","$kind":"constructor","$docmaLink":"?api#ShoukakuRest"}},{"comment":"/**\n * ShoukakuSocket, manages a single Lavalink WS connection.\n * @class ShoukakuSocket\n */","meta":{"filename":"ShoukakuSocket.js","lineno":10,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{}},"description":"<p>ShoukakuSocket, manages a single Lavalink WS connection.</p>","kind":"class","name":"ShoukakuSocket","longname":"ShoukakuSocket","scope":"global","$longname":"ShoukakuSocket","$kind":"class","$docmaLink":"?api#ShoukakuSocket","$members":[{"comment":"/**\n    * Connects this Socket.\n    * @param {string} id Your Bot's / Client user id.\n    * @param {boolean|string} resumable Determines if we should try to resume the connection.\n    * @memberof ShoukakuSocket\n    * @returns {void}\n    */","meta":{"range":[3752,4520],"filename":"ShoukakuSocket.js","lineno":114,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004289","name":"ShoukakuSocket#connect","type":"MethodDefinition","paramnames":["id","resumable"]},"vars":{"":null}},"description":"<p>Connects this Socket.</p>","params":[{"type":{"names":["string"]},"description":"<p>Your Bot's / Client user id.</p>","name":"id"},{"type":{"names":["boolean","string"]},"description":"<p>Determines if we should try to resume the connection.</p>","name":"resumable"}],"memberof":"ShoukakuSocket","returns":[{"type":{"names":["void"]}}],"name":"connect","longname":"ShoukakuSocket#connect","kind":"function","scope":"instance","$longname":"ShoukakuSocket#connect","$kind":"method","$docmaLink":"?api#ShoukakuSocket#connect"},{"comment":"/**\n     * Creates a player and connects your bot to the specified guild's voice channel\n     * @param {ShoukakuConstants#ShoukakuJoinOptions} options Join data to send.\n     * @memberof ShoukakuSocket\n     * @returns {Promise<ShoukakuPlayer>}\n     * @example\n     * <ShoukakuSocket>.joinVoiceChannel({ guildID: 'guild_id', voiceChannelID: 'voice_channel_id' })\n     *     .then((player) => player.playTrack('lavalink_track')); \n     */","meta":{"range":[4966,6059],"filename":"ShoukakuSocket.js","lineno":140,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004436","name":"ShoukakuSocket#joinVoiceChannel","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"<p>Creates a player and connects your bot to the specified guild's voice channel</p>","params":[{"type":{"names":["ShoukakuConstants#ShoukakuJoinOptions"]},"description":"<p>Join data to send.</p>","name":"options"}],"memberof":"ShoukakuSocket","returns":[{"type":{"names":["Promise.<ShoukakuPlayer>"]}}],"examples":["<ShoukakuSocket>.joinVoiceChannel({ guildID: 'guild_id', voiceChannelID: 'voice_channel_id' })\n    .then((player) => player.playTrack('lavalink_track')); "],"name":"joinVoiceChannel","longname":"ShoukakuSocket#joinVoiceChannel","kind":"function","scope":"instance","async":true,"$longname":"ShoukakuSocket#joinVoiceChannel","$kind":"method","$docmaLink":"?api#ShoukakuSocket#joinVoiceChannel"},{"comment":"/**\n     * Eventually Disconnects the VoiceConnection & Removes the Player from a Guild.\n     * @param {string} guildID The guild id of the player you want to remove.\n     * @memberOf ShoukakuSocket\n     * @returns {void}\n     */","meta":{"range":[6298,6440],"filename":"ShoukakuSocket.js","lineno":174,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004563","name":"ShoukakuSocket#leaveVoiceChannel","type":"MethodDefinition","paramnames":["guildID"]},"vars":{"":null}},"description":"<p>Eventually Disconnects the VoiceConnection &amp; Removes the Player from a Guild.</p>","params":[{"type":{"names":["string"]},"description":"<p>The guild id of the player you want to remove.</p>","name":"guildID"}],"memberof":"ShoukakuSocket","returns":[{"type":{"names":["void"]}}],"name":"leaveVoiceChannel","longname":"ShoukakuSocket#leaveVoiceChannel","kind":"function","scope":"instance","$longname":"ShoukakuSocket#leaveVoiceChannel","$kind":"method","$docmaLink":"?api#ShoukakuSocket#leaveVoiceChannel"},{"comment":"/**\n        * Group of this socket\n        * @type {?string}\n        */","meta":{"range":[2239,2262],"filename":"ShoukakuSocket.js","lineno":61,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004122","name":"this.group","type":"MemberExpression","value":"node.group","paramnames":[]}},"description":"<p>Group of this socket</p>","type":{"names":["string"]},"nullable":true,"name":"group","longname":"ShoukakuSocket#group","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#group","$kind":"property","$docmaLink":"?api#ShoukakuSocket#group"},{"comment":"/**\n        * Name of this Socket that you can use on .getNode() method of Shoukaku.\n        * @type {string}\n        */","meta":{"range":[2128,2149],"filename":"ShoukakuSocket.js","lineno":56,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004114","name":"this.name","type":"MemberExpression","value":"node.name","paramnames":[]}},"description":"<p>Name of this Socket that you can use on .getNode() method of Shoukaku.</p>","type":{"names":["string"]},"name":"name","longname":"ShoukakuSocket#name","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#name","$kind":"property","$docmaLink":"?api#ShoukakuSocket#name"},{"comment":"/**\n    * Penalties of this Socket. The higher the return number, the more loaded the server is.\n    * @type {number}\n    * @memberof ShoukakuSocket\n    */","meta":{"range":[3132,3503],"filename":"ShoukakuSocket.js","lineno":97,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004217","name":"ShoukakuSocket#penalties","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"<p>Penalties of this Socket. The higher the return number, the more loaded the server is.</p>","type":{"names":["number"]},"memberof":"ShoukakuSocket","name":"penalties","longname":"ShoukakuSocket#penalties","kind":"member","scope":"instance","params":[],"$longname":"ShoukakuSocket#penalties","$kind":"property","$docmaLink":"?api#ShoukakuSocket#penalties"},{"comment":"/**\n        * The active players in this socket/node.\n        * @type {Map<string, ShoukakuPlayer>}\n        */","meta":{"range":[1170,1194],"filename":"ShoukakuSocket.js","lineno":31,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004060","name":"this.players","type":"NewExpression","value":"","paramnames":[]}},"description":"<p>The active players in this socket/node.</p>","type":{"names":["Map.<string, ShoukakuPlayer>"]},"name":"players","longname":"ShoukakuSocket#players","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#players","$kind":"property","$docmaLink":"?api#ShoukakuSocket#players"},{"comment":"/**\n        * Attempted reconnects of this Socket. Resets to 0 when the socket opens properly.\n        * @type {number}\n        */","meta":{"range":[1963,1989],"filename":"ShoukakuSocket.js","lineno":51,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004108","name":"this.reconnectAttempts","type":"Literal","value":0,"paramnames":[]}},"description":"<p>Attempted reconnects of this Socket. Resets to 0 when the socket opens properly.</p>","type":{"names":["number"]},"name":"reconnectAttempts","longname":"ShoukakuSocket#reconnectAttempts","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#reconnectAttempts","$kind":"property","$docmaLink":"?api#ShoukakuSocket#reconnectAttempts"},{"comment":"/**\n        * The REST API of this Socket, mostly to load balance your REST requests instead of relying on a single node.\n        * @type {ShoukakuRest}\n        */","meta":{"range":[1376,1508],"filename":"ShoukakuSocket.js","lineno":36,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004067","name":"this.rest","type":"NewExpression","value":"","paramnames":[]}},"description":"<p>The REST API of this Socket, mostly to load balance your REST requests instead of relying on a single node.</p>","type":{"names":["ShoukakuRest"]},"name":"rest","longname":"ShoukakuSocket#rest","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#rest","$kind":"property","$docmaLink":"?api#ShoukakuSocket#rest"},{"comment":"/**\n        * If this socket was resumed\n        * @type {boolean}\n        */","meta":{"range":[2523,2543],"filename":"ShoukakuSocket.js","lineno":71,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004152","name":"this.resumed","type":"Literal","value":false,"paramnames":[]}},"description":"<p>If this socket was resumed</p>","type":{"names":["boolean"]},"name":"resumed","longname":"ShoukakuSocket#resumed","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#resumed","$kind":"property","$docmaLink":"?api#ShoukakuSocket#resumed"},{"comment":"/**\n        * The Instance of Shoukaku where this node initialization is called.\n        * @type {Shoukaku}\n        */","meta":{"range":[1017,1041],"filename":"ShoukakuSocket.js","lineno":26,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004054","name":"this.shoukaku","type":"Identifier","value":"shoukaku","paramnames":[]}},"description":"<p>The Instance of Shoukaku where this node initialization is called.</p>","type":{"names":["Shoukaku"]},"name":"shoukaku","longname":"ShoukakuSocket#shoukaku","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#shoukaku","$kind":"property","$docmaLink":"?api#ShoukakuSocket#shoukaku"},{"comment":"/**\n        * The state of this Socket.\n        * @type {ShoukakuConstants#ShoukakuStatus}\n        */","meta":{"range":[1628,1653],"filename":"ShoukakuSocket.js","lineno":41,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004096","name":"this.state","type":"Identifier","value":"DISCONNECTED","paramnames":[]}},"description":"<p>The state of this Socket.</p>","type":{"names":["ShoukakuConstants#ShoukakuStatus"]},"name":"state","longname":"ShoukakuSocket#state","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#state","$kind":"property","$docmaLink":"?api#ShoukakuSocket#state"},{"comment":"/**\n        * The current stats of this Socket.\n        * @type {ShoukakuConstants#ShoukakuNodeStats}\n        */","meta":{"range":[1784,1814],"filename":"ShoukakuSocket.js","lineno":46,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004102","name":"this.stats","type":"Identifier","value":"ShoukakuNodeStats","paramnames":[]}},"description":"<p>The current stats of this Socket.</p>","type":{"names":["ShoukakuConstants#ShoukakuNodeStats"]},"name":"stats","longname":"ShoukakuSocket#stats","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#stats","$kind":"property","$docmaLink":"?api#ShoukakuSocket#stats"},{"comment":"/**\n        * Websocket URL of this socket\n        * @type {string}\n        */","meta":{"range":[2359,2427],"filename":"ShoukakuSocket.js","lineno":66,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004130","name":"this.url","type":"TemplateLiteral","value":"","paramnames":[]}},"description":"<p>Websocket URL of this socket</p>","type":{"names":["string"]},"name":"url","longname":"ShoukakuSocket#url","kind":"member","memberof":"ShoukakuSocket","scope":"instance","$longname":"ShoukakuSocket#url","$kind":"property","$docmaLink":"?api#ShoukakuSocket#url"}],"$constructor":{"comment":"/**\n     * @extends {EventEmitter}\n     * @param  {Shoukaku} shoukaku Your Shoukaku Instance\n     * @param {ShoukakuOptions} node ShoukakuNodeOptions Options to initialize Shoukaku with\n     */","meta":{"range":[835,2626],"filename":"ShoukakuSocket.js","lineno":20,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\node","code":{"id":"astnode100004044","name":"ShoukakuSocket","type":"MethodDefinition","paramnames":["shoukaku","node"]},"vars":{"":null}},"augments":["EventEmitter"],"params":[{"type":{"names":["Shoukaku"]},"description":"<p>Your Shoukaku Instance</p>","name":"shoukaku"},{"type":{"names":["ShoukakuOptions"]},"description":"<p>ShoukakuNodeOptions Options to initialize Shoukaku with</p>","name":"node"}],"name":"ShoukakuSocket","longname":"ShoukakuSocket","kind":"class","scope":"global","$longname":"ShoukakuSocket","$kind":"constructor","$docmaLink":"?api#ShoukakuSocket"}},{"comment":"/**\n     * @param time Time limit of the request\n     */","meta":{"range":[160,327],"filename":"ShoukakuTimeout.js","lineno":9,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001267","name":"ShoukakuTimeout","type":"MethodDefinition","paramnames":["time"]},"vars":{"":null}},"params":[{"description":"<p>Time limit of the request</p>","name":"time"}],"name":"ShoukakuTimeout","longname":"ShoukakuTimeout","kind":"class","scope":"global","$longname":"ShoukakuTimeout","$kind":"constructor","$docmaLink":"?api#ShoukakuTimeout"},{"comment":"/**\n * Represents a track resolved from Lavalink's rest\n * @class ShoukakuTrack\n */","meta":{"filename":"ShoukakuTrack.js","lineno":1,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Represents a track resolved from Lavalink's rest</p>","kind":"class","name":"ShoukakuTrack","longname":"ShoukakuTrack","scope":"global","$longname":"ShoukakuTrack","$kind":"class","$docmaLink":"?api#ShoukakuTrack","$members":[{"comment":"/**\n         * Info about the track\n         * @type {Object}\n         */","meta":{"range":[462,1660],"filename":"ShoukakuTrack.js","lineno":19,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001316","name":"this.info","type":"ObjectExpression","value":"{\"identifier\":\"\",\"isSeekable\":\"\",\"author\":\"\",\"length\":\"\",\"isStream\":\"\",\"position\":\"\",\"title\":\"\",\"uri\":\"\"}","paramnames":[]}},"description":"<p>Info about the track</p>","type":{"names":["Object"]},"name":"info","longname":"ShoukakuTrack#info","kind":"member","memberof":"ShoukakuTrack","scope":"instance","$longname":"ShoukakuTrack#info","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info","$members":[{"comment":"/**\n             * The uploader or author of this track\n             * @type {?string}\n             */","meta":{"range":[901,924],"filename":"ShoukakuTrack.js","lineno":34,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001333","name":"author","type":"MemberExpression","value":"raw.info.author"}},"description":"<p>The uploader or author of this track</p>","type":{"names":["string"]},"nullable":true,"name":"author","longname":"ShoukakuTrack#info.author","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.author","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.author"},{"comment":"/**\n             * Identifier of this track\n             * @type {?string}\n             */","meta":{"range":[591,622],"filename":"ShoukakuTrack.js","lineno":24,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001321","name":"identifier","type":"MemberExpression","value":"raw.info.identifier"}},"description":"<p>Identifier of this track</p>","type":{"names":["string"]},"nullable":true,"name":"identifier","longname":"ShoukakuTrack#info.identifier","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.identifier","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.identifier"},{"comment":"/**\n             * If this track is seekable\n             * @type {?boolean}\n             */","meta":{"range":[741,772],"filename":"ShoukakuTrack.js","lineno":29,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001327","name":"isSeekable","type":"MemberExpression","value":"raw.info.isSeekable"}},"description":"<p>If this track is seekable</p>","type":{"names":["boolean"]},"nullable":true,"name":"isSeekable","longname":"ShoukakuTrack#info.isSeekable","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.isSeekable","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.isSeekable"},{"comment":"/**\n             * If this track is a livestream\n             * @type {?boolean}\n             */","meta":{"range":[1203,1230],"filename":"ShoukakuTrack.js","lineno":44,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001345","name":"isStream","type":"MemberExpression","value":"raw.info.isStream"}},"description":"<p>If this track is a livestream</p>","type":{"names":["boolean"]},"nullable":true,"name":"isStream","longname":"ShoukakuTrack#info.isStream","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.isStream","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.isStream"},{"comment":"/**\n             * The length of this track in milliseconds\n             * @type {?number}\n             */","meta":{"range":[1057,1080],"filename":"ShoukakuTrack.js","lineno":39,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001339","name":"length","type":"MemberExpression","value":"raw.info.length"}},"description":"<p>The length of this track in milliseconds</p>","type":{"names":["number"]},"nullable":true,"name":"length","longname":"ShoukakuTrack#info.length","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.length","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.length"},{"comment":"/**\n             * Start position of this track when played\n             * @type {?number}\n             */","meta":{"range":[1363,1390],"filename":"ShoukakuTrack.js","lineno":49,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001351","name":"position","type":"MemberExpression","value":"raw.info.position"}},"description":"<p>Start position of this track when played</p>","type":{"names":["number"]},"nullable":true,"name":"position","longname":"ShoukakuTrack#info.position","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.position","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.position"},{"comment":"/**\n             * Title of this track\n             * @type {?string}\n             */","meta":{"range":[1502,1523],"filename":"ShoukakuTrack.js","lineno":54,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001357","name":"title","type":"MemberExpression","value":"raw.info.title"}},"description":"<p>Title of this track</p>","type":{"names":["string"]},"nullable":true,"name":"title","longname":"ShoukakuTrack#info.title","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.title","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.title"},{"comment":"/**\n             * URL to this track\n             * @type {?string}\n             */","meta":{"range":[1633,1650],"filename":"ShoukakuTrack.js","lineno":59,"columnno":12,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001363","name":"uri","type":"MemberExpression","value":"raw.info.uri"}},"description":"<p>URL to this track</p>","type":{"names":["string"]},"nullable":true,"name":"uri","longname":"ShoukakuTrack#info.uri","kind":"member","memberof":"ShoukakuTrack#info","scope":"static","$longname":"ShoukakuTrack#info.uri","$kind":"property","$docmaLink":"?api#ShoukakuTrack#info.uri"}]},{"comment":"/**\n         * Base64 string from the resolved track from Lavalink rest. Used for playTrack()\n         * @type {string}\n         */","meta":{"range":[348,370],"filename":"ShoukakuTrack.js","lineno":14,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001308","name":"this.track","type":"MemberExpression","value":"raw.track","paramnames":[]}},"description":"<p>Base64 string from the resolved track from Lavalink rest. Used for playTrack()</p>","type":{"names":["string"]},"name":"track","longname":"ShoukakuTrack#track","kind":"member","memberof":"ShoukakuTrack","scope":"instance","$longname":"ShoukakuTrack#track","$kind":"property","$docmaLink":"?api#ShoukakuTrack#track"}],"$constructor":{"comment":"/**\n     * @param {Object} raw Raw data from Lavalink rest\n     */","meta":{"range":[181,1667],"filename":"ShoukakuTrack.js","lineno":9,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001302","name":"ShoukakuTrack","type":"MethodDefinition","paramnames":["raw"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"<p>Raw data from Lavalink rest</p>","name":"raw"}],"name":"ShoukakuTrack","longname":"ShoukakuTrack","kind":"class","scope":"global","$longname":"ShoukakuTrack","$kind":"constructor","$docmaLink":"?api#ShoukakuTrack"}},{"comment":"/**\n * Represents a list track resolved from Lavalink's rest\n * @class ShoukakuTrackList\n */","meta":{"filename":"ShoukakuTrackList.js","lineno":3,"columnno":0,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{}},"description":"<p>Represents a list track resolved from Lavalink's rest</p>","kind":"class","name":"ShoukakuTrackList","longname":"ShoukakuTrackList","scope":"global","$longname":"ShoukakuTrackList","$kind":"class","$docmaLink":"?api#ShoukakuTrackList","$members":[{"comment":"/**\n         * Name of this Playlist, defaults to null of the result is not a Playlist\n         * @type {?string}\n         */","meta":{"range":[788,874],"filename":"ShoukakuTrackList.js","lineno":21,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001412","name":"this.playlistName","type":"ConditionalExpression","value":"","paramnames":[]}},"description":"<p>Name of this Playlist, defaults to null of the result is not a Playlist</p>","type":{"names":["string"]},"nullable":true,"name":"playlistName","longname":"ShoukakuTrackList#playlistName","kind":"member","memberof":"ShoukakuTrackList","scope":"instance","$longname":"ShoukakuTrackList#playlistName","$kind":"property","$docmaLink":"?api#ShoukakuTrackList#playlistName"},{"comment":"/**\n         * Selected Track in this Playlist, defaults to 0 if not a playlist, or if the raw result is equal to -1\n         * @type {number}\n         */","meta":{"range":[1047,1181],"filename":"ShoukakuTrackList.js","lineno":26,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001431","name":"this.selectedTrack","type":"ConditionalExpression","value":"","paramnames":[]}},"description":"<p>Selected Track in this Playlist, defaults to 0 if not a playlist, or if the raw result is equal to -1</p>","type":{"names":["number"]},"name":"selectedTrack","longname":"ShoukakuTrackList#selectedTrack","kind":"member","memberof":"ShoukakuTrackList","scope":"instance","$longname":"ShoukakuTrackList#selectedTrack","$kind":"property","$docmaLink":"?api#ShoukakuTrackList#selectedTrack"},{"comment":"/**\n         * An array of tracks from this TrackList\n         * @type {Array<ShoukakuTrack>}\n         */","meta":{"range":[1305,1385],"filename":"ShoukakuTrackList.js","lineno":31,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001459","name":"this.tracks","type":"ConditionalExpression","value":"","paramnames":[]}},"description":"<p>An array of tracks from this TrackList</p>","type":{"names":["Array.<ShoukakuTrack>"]},"name":"tracks","longname":"ShoukakuTrackList#tracks","kind":"member","memberof":"ShoukakuTrackList","scope":"instance","$longname":"ShoukakuTrackList#tracks","$kind":"property","$docmaLink":"?api#ShoukakuTrackList#tracks"},{"comment":"/**\n         * Type of this list, can be PLAYLIST, TRACK or SEARCH. PLAYLIST and SEARCH can contain more than one tracks in tracks array while TRACK will contain a single track in the tracks array.\n         * @type {string}\n         */","meta":{"range":[613,644],"filename":"ShoukakuTrackList.js","lineno":16,"columnno":8,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001402","name":"this.type","type":"MemberExpression","value":"Types[undefined]","paramnames":[]}},"description":"<p>Type of this list, can be PLAYLIST, TRACK or SEARCH. PLAYLIST and SEARCH can contain more than one tracks in tracks array while TRACK will contain a single track in the tracks array.</p>","type":{"names":["string"]},"name":"type","longname":"ShoukakuTrackList#type","kind":"member","memberof":"ShoukakuTrackList","scope":"instance","$longname":"ShoukakuTrackList#type","$kind":"property","$docmaLink":"?api#ShoukakuTrackList#type"}],"$constructor":{"comment":"/**\n     * @param {Object} raw Raw data from Lavalink rest\n     */","meta":{"range":[342,1392],"filename":"ShoukakuTrackList.js","lineno":11,"columnno":4,"path":"D:\\Dev Works\\Shoukaku\\src\\constants","code":{"id":"astnode100001396","name":"ShoukakuTrackList","type":"MethodDefinition","paramnames":["raw"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"<p>Raw data from Lavalink rest</p>","name":"raw"}],"name":"ShoukakuTrackList","longname":"ShoukakuTrackList","kind":"class","scope":"global","$longname":"ShoukakuTrackList","$kind":"constructor","$docmaLink":"?api#ShoukakuTrackList"}},{"comment":"/**\n * Discord.JS Client\n * @external Client\n * @see {@link https://discord.js.org/#/docs/main/master/class/Client}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"D:\\Dev Works\\Shoukaku","code":{}},"description":"<p>Discord.JS Client</p>","kind":"external","name":"Client","see":["{@link https://discord.js.org/#/docs/main/master/class/Client}"],"longname":"external:Client","scope":"global","$longname":"external:Client","$kind":"external","$docmaLink":"?api#external:Client"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"D:\\Dev Works\\Shoukaku","code":{}},"description":"<p>Node.js Event Emitter</p>","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Discord.JS Guild\n * @external Guild\n * @see {@link https://discord.js.org/#/docs/main/master/class/Guild}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"D:\\Dev Works\\Shoukaku","code":{}},"description":"<p>Discord.JS Guild</p>","kind":"external","name":"Guild","see":["{@link https://discord.js.org/#/docs/main/master/class/Guild}"],"longname":"external:Guild","scope":"global","$longname":"external:Guild","$kind":"external","$docmaLink":"?api#external:Guild"}],"symbols":["external:Client","external:EventEmitter","external:Guild","Shoukaku","Shoukaku#addNode","Shoukaku#client","Shoukaku#event:close","Shoukaku#event:debug","Shoukaku#event:disconnected","Shoukaku#event:error","Shoukaku#event:ready","Shoukaku#getNode","Shoukaku#getPlayer","Shoukaku#id","Shoukaku#nodes","Shoukaku#players","Shoukaku#removeNode","Shoukaku#totalPlayers","ShoukakuConstants","ShoukakuConstants#DistortionValue","ShoukakuConstants#EqualizerBand","ShoukakuConstants#KaraokeValue","ShoukakuConstants#RotationValue","ShoukakuConstants#ShoukakuJoinOptions","ShoukakuConstants#ShoukakuNodeOptions","ShoukakuConstants#ShoukakuNodes","ShoukakuConstants#ShoukakuNodeStats","ShoukakuConstants#ShoukakuOptions","ShoukakuConstants#ShoukakuPlayOptions","ShoukakuConstants#ShoukakuStatus","ShoukakuConstants#TimescaleValue","ShoukakuConstants#TremoloValue","ShoukakuConstants#VibratoValue","ShoukakuError","ShoukakuFilter","ShoukakuFilter#distortion","ShoukakuFilter#equalizer","ShoukakuFilter#karaoke","ShoukakuFilter#rotation","ShoukakuFilter#timescale","ShoukakuFilter#tremolo","ShoukakuFilter#vibrato","ShoukakuFilter#volume","ShoukakuLink","ShoukakuLink#attemptReconnect","ShoukakuLink#channelMoved","ShoukakuLink#guildID","ShoukakuLink#lastVoiceChannelID","ShoukakuLink#node","ShoukakuLink#player","ShoukakuLink#reconnecting","ShoukakuLink#region","ShoukakuLink#selfDeaf","ShoukakuLink#selfMute","ShoukakuLink#sessionID","ShoukakuLink#state","ShoukakuLink#voiceChannelID","ShoukakuLink#voiceMoved","ShoukakuPlayer","ShoukakuPlayer#clearFilters","ShoukakuPlayer#connect","ShoukakuPlayer#disconnect","ShoukakuPlayer#event:closed","ShoukakuPlayer#event:end","ShoukakuPlayer#event:error","ShoukakuPlayer#event:nodeDisconnect","ShoukakuPlayer#event:playerUpdate","ShoukakuPlayer#event:resumed","ShoukakuPlayer#event:start","ShoukakuPlayer#event:trackException","ShoukakuPlayer#filters","ShoukakuPlayer#moveToNode","ShoukakuPlayer#paused","ShoukakuPlayer#playTrack","ShoukakuPlayer#position","ShoukakuPlayer#resume","ShoukakuPlayer#seekTo","ShoukakuPlayer#setDistortion","ShoukakuPlayer#setEqualizer","ShoukakuPlayer#setGroupedFilters","ShoukakuPlayer#setKaraoke","ShoukakuPlayer#setPaused","ShoukakuPlayer#setRotation","ShoukakuPlayer#setTimescale","ShoukakuPlayer#setTremolo","ShoukakuPlayer#setVibrato","ShoukakuPlayer#setVolume","ShoukakuPlayer#stopTrack","ShoukakuPlayer#track","ShoukakuPlayer#voiceConnection","ShoukakuRest","ShoukakuRest#decode","ShoukakuRest#getRoutePlannerStatus","ShoukakuRest#resolve","ShoukakuRest#timeout","ShoukakuRest#unmarkAllFailedAddress","ShoukakuRest#unmarkFailedAddress","ShoukakuRest#url","ShoukakuSocket","ShoukakuSocket#connect","ShoukakuSocket#group","ShoukakuSocket#joinVoiceChannel","ShoukakuSocket#leaveVoiceChannel","ShoukakuSocket#name","ShoukakuSocket#penalties","ShoukakuSocket#players","ShoukakuSocket#reconnectAttempts","ShoukakuSocket#rest","ShoukakuSocket#resumed","ShoukakuSocket#shoukaku","ShoukakuSocket#state","ShoukakuSocket#stats","ShoukakuSocket#url","ShoukakuTimeout","ShoukakuTrack","ShoukakuTrack#info","ShoukakuTrack#info.author","ShoukakuTrack#info.identifier","ShoukakuTrack#info.isSeekable","ShoukakuTrack#info.isStream","ShoukakuTrack#info.length","ShoukakuTrack#info.position","ShoukakuTrack#info.title","ShoukakuTrack#info.uri","ShoukakuTrack#track","ShoukakuTrackList","ShoukakuTrackList#playlistName","ShoukakuTrackList#selectedTrack","ShoukakuTrackList#tracks","ShoukakuTrackList#type"]}},"app":{"title":"Shoukaku | A Lavalink Library for Discord.JS v12","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Shoukaku/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Shoukaku","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/Deivu/Shoukaku"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false}));

!function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,/^[?&]/.test(e)&&(e=e.slice(1)),e||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title:          ",docma.app.title),docma.info("Routing Method:     ",docma.app.routing.method),docma.info("App Server:         ",docma.app.server),docma.info("Base Path:          ",docma.app.base),docma.info("Entrance Route ID:  ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}();