@draggable/i18n 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
 
2
2
  /**
3
3
  @draggable/i18n - https://github.com/Draggable/i18n
4
- Version: 1.0.5
4
+ Version: 1.0.6
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
8
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={},t=Object.freeze({method:"GET",body:""});const s=(e,t)=>{const s=[];e.on("data",(e=>s.push(e))),e.on("end",(()=>{const n=Buffer.concat(s),a={ok:e.statusCode>=200&&e.statusCode<300,status:e.statusCode,statusText:e.statusMessage,headers:new Map(Object.entries(e.headers)),body:n,arrayBuffer:()=>Promise.resolve(n),json:()=>Promise.resolve(JSON.parse(n.toString()))};t(a)}))},n={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class a{constructor(e=n){this.langs=Object.create(null),this.loaded=[],this.processConfig(e)}processConfig(e){const{location:t,...s}={...n,...e},a=t.replace(/\/?$/,"/");this.config={location:a,...s};const{override:o,preloaded:r={}}=this.config,i=Object.entries(this.langs).concat(Object.entries(o||r));this.langs=i.reduce(((e,[t,s])=>(e[t]=this.applyLanguage(t,s),e)),{}),this.locale=this.config.locale||this.config.langs[0]}init(e){return this.processConfig({...this.config,...e}),this.setCurrent(this.locale)}addLanguage(e,t={}){t="string"==typeof t?a.processFile(t):t,this.applyLanguage(e,t),this.config.langs.push("locale")}getValue(e,t=this.locale){var s;return(null==(s=this.langs[t])?void 0:s[e])||this.getFallbackValue(e)}getFallbackValue(e){const t=Object.values(this.langs).find((t=>t[e]));return null==t?void 0:t[e]}makeSafe(e){const t={"{":"\\{","}":"\\}","|":"\\|"};return e=e.replace(/[{}|]/g,(e=>t[e])),new RegExp(e,"g")}put(e,t){return this.current[e]=t,t}get(e,t){const s=this;let n=this.getValue(e);if(!n)return;const a=n.match(/\{[^}]+?\}/g);if(t&&a)if("object"==typeof t)for(const o of a){const e=o.substring(1,o.length-1);n=n.replace(s.makeSafe(o),t[e]||"")}else n=n.replace(/\{[^}]+?\}/g,t);return n}static processFile(e){return a.fromFile(e.replace(/\n\n/g,"\n"))}static fromFile(e){const t=e.split("\n"),s={};for(let n,a=0;a<t.length;a++){n=/^(.+?) *?= *?([^\n]+)/.exec(t[a]),n&&(s[n[1]]=n[2].replace(/(^\s+|\s+$)/g,""))}return s}loadLang(n,a=!0){const o=this;return new Promise((function(r,i){if(-1!==o.loaded.indexOf(n)&&a)return o.applyLanguage(o.langs[n]),r(o.langs[n]);return function(n,a={}){const o={...t,...a},r=(n.startsWith("https"),e);return new Promise(((e,t)=>{const a=r.request(n,o,(t=>{s(t,e)}));a.on("error",(e=>t(new Error(e.message)))),(null==o?void 0:o.body)&&a.write(o.body),a.end()}))}([o.config.location,n,o.config.extension].join("")).then((({data:e})=>{const t=o.processFile(e);return o.applyLanguage(n,t),o.loaded.push(n),r(o.langs[n])})).catch((()=>{const e=o.applyLanguage(n);r(e)}))}))}applyLanguage(e,t={}){const s=this.config.override[e]||{},n=this.langs[e]||{};return this.langs[e]={...n,...t,...s},this.langs[e]}get getLangs(){return this.config.langs}async setCurrent(e="en-US"){return await this.loadLang(e),this.locale=e,this.current=this.langs[e],this.current}}const o=new a;exports.I18N=a,exports.default=o;
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5janMubWluLmpzIiwic291cmNlcyI6WyIuLi9fX3ZpdGUtYnJvd3Nlci1leHRlcm5hbCIsIi4uL3NyYy9mZXRjaC5qcyIsIi4uL3NyYy9taTE4bi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7fSIsImltcG9ydCBodHRwcyBmcm9tICdodHRwcydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7IG1ldGhvZDogJ0dFVCcsIGJvZHk6ICcnIH0pXG4vKipcbiAqIEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBuZXR3b3JrLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGZldGNoLlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnM9e31dIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmZXRjaCByZXF1ZXN0LlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnMuaGVhZGVyc10gLSBIZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZldGNoT3B0aW9ucy5tZXRob2RdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSAoZS5nLiwgJ0dFVCcsICdQT1NUJykuXG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IFtmZXRjaE9wdGlvbnMuYm9keV0gLSBUaGUgYm9keSBvZiB0aGUgcmVxdWVzdC5cbiAqIEByZXR1cm4ge1Byb21pc2U8T2JqZWN0Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybi5vayAtIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugc3RhdHVzIGlzIGluIHRoZSByYW5nZSAyMDAtMjk5LlxuICogQHJldHVybiB7bnVtYmVyfSByZXR1cm4uc3RhdHVzIC0gVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7c3RyaW5nfSByZXR1cm4uc3RhdHVzVGV4dCAtIFRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge01hcDxzdHJpbmcsIHN0cmluZz59IHJldHVybi5oZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7QnVmZmVyfSByZXR1cm4uYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBhIEJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8QnVmZmVyPn0gcmV0dXJuLmFycmF5QnVmZmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBhcyBhbiBBcnJheUJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8T2JqZWN0Pn0gcmV0dXJuLmpzb24gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IHBhcnNlZCBhcyBKU09OLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2godXJsLCBmZXRjaE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4uZmV0Y2hPcHRpb25zIH1cbiAgY29uc3QgaGFuZGxlciA9IHVybC5zdGFydHNXaXRoKCdodHRwcycpID8gaHR0cHMgOiBodHRwXG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gaGFuZGxlci5yZXF1ZXN0KHVybCwgb3B0aW9ucywgcmVzcG9uc2UgPT4ge1xuICAgICAgcHJvY2Vzc1Jlc3BvbnNlKHJlc3BvbnNlLCByZXNvbHZlKVxuICAgIH0pXG5cbiAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIGVycm9yID0+IHJlamVjdChuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSkpKVxuICAgIGlmIChvcHRpb25zPy5ib2R5KSByZXF1ZXN0LndyaXRlKG9wdGlvbnMuYm9keSlcbiAgICByZXF1ZXN0LmVuZCgpXG4gIH0pXG59XG5cbmNvbnN0IHByb2Nlc3NSZXNwb25zZSA9IChyZXNwb25zZSwgb25FbmQpID0+IHtcbiAgY29uc3QgZGF0YSA9IFtdXG4gIHJlc3BvbnNlLm9uKCdkYXRhJywgY2h1bmsgPT4gZGF0YS5wdXNoKGNodW5rKSlcbiAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICBjb25zdCBib2R5QnVmZmVyID0gQnVmZmVyLmNvbmNhdChkYXRhKVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIG9rOiByZXNwb25zZS5zdGF0dXNDb2RlID49IDIwMCAmJiByZXNwb25zZS5zdGF0dXNDb2RlIDwgMzAwLFxuICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzTWVzc2FnZSxcbiAgICAgIGhlYWRlcnM6IG5ldyBNYXAoT2JqZWN0LmVudHJpZXMocmVzcG9uc2UuaGVhZGVycykpLFxuICAgICAgYm9keTogYm9keUJ1ZmZlcixcbiAgICAgIGFycmF5QnVmZmVyOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoYm9keUJ1ZmZlciksXG4gICAgICBqc29uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoSlNPTi5wYXJzZShib2R5QnVmZmVyLnRvU3RyaW5nKCkpKSxcbiAgICB9XG4gICAgb25FbmQocmVzdWx0KVxuICB9KVxufVxuIiwiaW1wb3J0IHsgZmV0Y2ggfSBmcm9tICcuL2ZldGNoLmpzJ1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgZXh0ZW5zaW9uOiAnLmxhbmcnLFxuICAvLyBsb2NhbCBvciByZW1vdGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGFuZ3VhZ2UgZmlsZXNcbiAgbG9jYXRpb246ICdhc3NldHMvbGFuZy8nLFxuICAvLyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLCBoYW5keSBmb3IgcG9wdWxhdGluZyBzZWxlY3Rvci5cbiAgbGFuZ3M6IFsnZW4tVVMnXSxcbiAgbG9jYWxlOiAnZW4tVVMnLCAvLyBpbml0IHdpdGggdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZVxuICBvdmVycmlkZToge30sXG59XG5cbi8qKlxuICogTWFpbiBpMThuIGNsYXNzXG4gKiBAY2xhc3MgSTE4TlxuICogQGNsYXNzZGVzYyBtZXRob2RzIGFuZCBkYXRhIHN0b3JlIGZvciBpMThuXG4gKi9cbmV4cG9ydCBjbGFzcyBJMThOIHtcbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3B0aW9ucyBhbmQgc3RhcnQgdGhlIG1vZHVsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IERFRkFVTFRfQ09ORklHKSB7XG4gICAgdGhpcy5sYW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICB0aGlzLmxvYWRlZCA9IFtdXG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogcGFyc2UgYW5kIGZvcm1hdCBjb25maWdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIHByb2Nlc3NDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH0gPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH1cbiAgICBjb25zdCBwYXJzZWRMb2NhdGlvbiA9IGxvY2F0aW9uLnJlcGxhY2UoL1xcLz8kLywgJy8nKVxuICAgIHRoaXMuY29uZmlnID0geyBsb2NhdGlvbjogcGFyc2VkTG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH1cbiAgICBjb25zdCB7IG92ZXJyaWRlLCBwcmVsb2FkZWQgPSB7fSB9ID0gdGhpcy5jb25maWdcbiAgICBjb25zdCBhbGxMYW5ncyA9IE9iamVjdC5lbnRyaWVzKHRoaXMubGFuZ3MpLmNvbmNhdChPYmplY3QuZW50cmllcyhvdmVycmlkZSB8fCBwcmVsb2FkZWQpKVxuICAgIHRoaXMubGFuZ3MgPSBhbGxMYW5ncy5yZWR1Y2UoKGFjYywgW2xvY2FsZSwgbGFuZ10pID0+IHtcbiAgICAgIGFjY1tsb2NhbGVdID0gdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7fSlcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuY29uZmlnLmxvY2FsZSB8fCB0aGlzLmNvbmZpZy5sYW5nc1swXVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgbGFuZ3VhZ2UgYW5kIHNldCBkZWZhdWx0XG4gICAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICAgcmVzb2x2ZXMgbGFuZ3VhZ2VcbiAgICovXG4gIGluaXQob3B0aW9ucykge1xuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyh7IC4uLnRoaXMuY29uZmlnLCAuLi5vcHRpb25zIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0Q3VycmVudCh0aGlzLmxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbGFuZ3VhZ2UgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gbGFuZ1xuICAgKi9cbiAgYWRkTGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBsYW5nID0gdHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnID8gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKSA6IGxhbmdcbiAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgIHRoaXMuY29uZmlnLmxhbmdzLnB1c2goJ2xvY2FsZScpXG4gIH1cblxuICAvKipcbiAgICogZ2V0IGEgc3RyaW5nIGZyb20gYSBsb2FkZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgLSB0aGUga2V5IGZvciB0aGUgc3RyaW5nIHdlIGFyZSB0cnlpbmcgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgLSBsb2NhbGUgdG8gY2hlY2sgZm9yIHZhbHVlXG4gICAqIEByZXR1cm4ge1N0cmluZ30gbGFuZ3VhZ2Ugc3RyaW5nIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0VmFsdWUoa2V5LCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5sYW5nc1tsb2NhbGVdPy5ba2V5XVxuICAgIHJldHVybiB2YWx1ZSB8fCB0aGlzLmdldEZhbGxiYWNrVmFsdWUoa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSBsYW5ndWFnZSB0aGF0IGhhcyBkZXNpcmVkIGtleVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IHZhbHVlIGtleVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGZvdW5kIHZhbHVlIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RmFsbGJhY2tWYWx1ZShrZXkpIHtcbiAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3MpLmZpbmQobGFuZyA9PiBsYW5nW2tleV0pXG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZz8uW2tleV1cbiAgfVxuXG4gIC8qKlxuICAgKiBFc2NhcGUgdmFyaWFibGUgc3ludGF4XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIGVzY2FwZWQgc3RyXG4gICAqL1xuICBtYWtlU2FmZShzdHIpIHtcbiAgICBjb25zdCBtYXBPYmogPSB7XG4gICAgICAneyc6ICdcXFxceycsXG4gICAgICAnfSc6ICdcXFxcfScsXG4gICAgICAnfCc6ICdcXFxcfCcsXG4gICAgfVxuXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1t7fXxdL2csIG1hdGNoZWQgPT4gbWFwT2JqW21hdGNoZWRdKVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoc3RyLCAnZycpXG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgcHV0IGEgc3RyaW5nIGludG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgbGFuZ3VhZ2VcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXlcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybiB7U3RyaW5nfSBzdHJpbmcgaW4gY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgcHV0KGtleSwgc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50W2tleV0gPSBzdHJpbmdcblxuICAgIHJldHVybiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhcmd1bWVudHMgZm9yIHRoZSByZXF1ZXN0ZWQgc3RyaW5nXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICB0aGUga2V5IHdlIHVzZSB0byBsb29rdXAgb3VyIHRyYW5zbGF0aW9uXG4gICAqIEBwYXJhbSAge211bHRpfSAgYXJncyAgc3RyaW5nLCBudW1iZXIgb3Igb2JqZWN0IGNvbnRhaW5pbmcgb3VyIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICAgdXBkYXRlZCBzdHJpbmcgdHJhbnNsYXRpb25cbiAgICovXG4gIGdldChrZXksIGFyZ3MpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSlcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSB2YWx1ZS5tYXRjaCgvXFx7W159XSs/XFx9L2cpXG5cbiAgICBpZiAoYXJncyAmJiB0b2tlbnMpIHtcbiAgICAgIGlmICgnb2JqZWN0JyA9PT0gdHlwZW9mIGFyZ3MpIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSlcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoX3RoaXMubWFrZVNhZmUodG9rZW4pLCBhcmdzW2tleV0gfHwgJycpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFx7W159XSs/XFx9L2csIGFyZ3MpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogUHJvY2VzcyBhIGxhbmd1YWdlIGZpbGUgZnJvbSByYXcgdGV4dFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJlc3BvbnNlXG4gICAqIEByZXR1cm4ge09iamVjdH0gcHJvY2Vzc2VkIGxhbmd1YWdlXG4gICAqL1xuICBzdGF0aWMgcHJvY2Vzc0ZpbGUocmVzcG9uc2UpIHtcbiAgICByZXR1cm4gSTE4Ti5mcm9tRmlsZShyZXNwb25zZS5yZXBsYWNlKC9cXG5cXG4vZywgJ1xcbicpKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFR1cm4gcmF3IHRleHQgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZXMgaW50byBmYW5jeSBKU09OXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmF3VGV4dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGNvbnZlcnRlZCBsYW5ndWFnZSBmaWxlXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGUocmF3VGV4dCkge1xuICAgIGNvbnN0IGxpbmVzID0gcmF3VGV4dC5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBsYW5nID0ge31cblxuICAgIGZvciAobGV0IG1hdGNoZXMsIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14oLis/KSAqPz0gKj8oW15cXG5dKykvXG4gICAgICBtYXRjaGVzID0gcmVnZXguZXhlYyhsaW5lc1tpXSlcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIGxhbmdbbWF0Y2hlc1sxXV0gPSBtYXRjaGVzWzJdLnJlcGxhY2UoLyheXFxzK3xcXHMrJCkvZywgJycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGEgcmVtb3RlbHkgc3RvcmVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtICB7Qm9vbGVhbn0gdXNlQ2FjaGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgcmVzb2x2ZXMgcmVzcG9uc2VcbiAgICovXG4gIGxvYWRMYW5nKGxvY2FsZSwgdXNlQ2FjaGUgPSB0cnVlKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGlmIChfdGhpcy5sb2FkZWQuaW5kZXhPZihsb2NhbGUpICE9PSAtMSAmJiB1c2VDYWNoZSkge1xuICAgICAgICBfdGhpcy5hcHBseUxhbmd1YWdlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICAgIHJldHVybiByZXNvbHZlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBsYW5nRmlsZSA9IFtfdGhpcy5jb25maWcubG9jYXRpb24sIGxvY2FsZSwgX3RoaXMuY29uZmlnLmV4dGVuc2lvbl0uam9pbignJylcbiAgICAgICAgcmV0dXJuIGZldGNoKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKCh7IGRhdGE6IGxhbmcgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IF90aGlzLnByb2Nlc3NGaWxlKGxhbmcpXG4gICAgICAgICAgICBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgcHJvY2Vzc2VkRmlsZSlcbiAgICAgICAgICAgIF90aGlzLmxvYWRlZC5wdXNoKGxvY2FsZSlcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZyA9IF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlKVxuICAgICAgICAgICAgcmVzb2x2ZShsYW5nKVxuICAgICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBhcHBsaWVzIG92ZXJyaWRlcyBmcm9tIGNvbmZpZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBsYW5nXG4gICAqIEByZXR1cm4ge09iamVjdH0gb3ZlcnJpZGVuIGxhbmd1YWdlXG4gICAqL1xuICBhcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZVtsb2NhbGVdIHx8IHt9XG4gICAgY29uc3QgZXhpc3RpbmdMYW5nID0gdGhpcy5sYW5nc1tsb2NhbGVdIHx8IHt9XG4gICAgdGhpcy5sYW5nc1tsb2NhbGVdID0geyAuLi5leGlzdGluZ0xhbmcsIC4uLmxhbmcsIC4uLm92ZXJyaWRlIH1cbiAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGN1cnJlbnRseSBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEByZXR1cm4ge09iamVjdH0gYWxsIGNvbmZpZ3VyZWQgbGFuZ3VhZ2VzXG4gICAqL1xuICBnZXQgZ2V0TGFuZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmxhbmdzXG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdCB0byBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdG8gdGhlIGxvY2FsIHByb3ZpZGVkXG4gICAqIEBwYXJhbSB7U3RyaW5nfSAgIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBsYW5ndWFnZVxuICAgKi9cbiAgYXN5bmMgc2V0Q3VycmVudChsb2NhbGUgPSAnZW4tVVMnKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkTGFuZyhsb2NhbGUpXG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmxhbmdzW2xvY2FsZV1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgSTE4TigpXG4iXSwibmFtZXMiOlsiaHR0cCIsImRlZmF1bHRPcHRpb25zIiwiT2JqZWN0IiwiZnJlZXplIiwibWV0aG9kIiwiYm9keSIsInByb2Nlc3NSZXNwb25zZSIsInJlc3BvbnNlIiwib25FbmQiLCJkYXRhIiwib24iLCJjaHVuayIsInB1c2giLCJib2R5QnVmZmVyIiwiQnVmZmVyIiwiY29uY2F0IiwicmVzdWx0Iiwib2siLCJzdGF0dXNDb2RlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInN0YXR1c01lc3NhZ2UiLCJoZWFkZXJzIiwiTWFwIiwiZW50cmllcyIsImFycmF5QnVmZmVyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJqc29uIiwiSlNPTiIsInBhcnNlIiwidG9TdHJpbmciLCJERUZBVUxUX0NPTkZJRyIsImV4dGVuc2lvbiIsImxvY2F0aW9uIiwibGFuZ3MiLCJsb2NhbGUiLCJvdmVycmlkZSIsIkkxOE4iLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJ0aGlzIiwiY3JlYXRlIiwibG9hZGVkIiwicHJvY2Vzc0NvbmZpZyIsInJlc3RPcHRpb25zIiwicGFyc2VkTG9jYXRpb24iLCJyZXBsYWNlIiwiY29uZmlnIiwicHJlbG9hZGVkIiwiYWxsTGFuZ3MiLCJyZWR1Y2UiLCJhY2MiLCJsYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJzZXRDdXJyZW50IiwiYWRkTGFuZ3VhZ2UiLCJwcm9jZXNzRmlsZSIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJleGVjIiwibG9hZExhbmciLCJ1c2VDYWNoZSIsInJlamVjdCIsImluZGV4T2YiLCJ1cmwiLCJmZXRjaE9wdGlvbnMiLCJoYW5kbGVyIiwic3RhcnRzV2l0aCIsImh0dHBzIiwicmVxdWVzdCIsImVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwid3JpdGUiLCJlbmQiLCJmZXRjaCIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRHQUFBLE1BQWVBLEVBQUEsQ0FBQSxFQ0dUQyxFQUFpQkMsT0FBT0MsT0FBTyxDQUFFQyxPQUFRLE1BQU9DLEtBQU0sS0FpQzVELE1BQU1DLEVBQWtCLENBQUNDLEVBQVVDLEtBQ2pDLE1BQU1DLEVBQU8sR0FDYkYsRUFBU0csR0FBRyxRQUFRQyxHQUFTRixFQUFLRyxLQUFLRCxLQUM5QkosRUFBQUcsR0FBRyxPQUFPLEtBQ1gsTUFBQUcsRUFBYUMsT0FBT0MsT0FBT04sR0FDM0JPLEVBQVMsQ0FDYkMsR0FBSVYsRUFBU1csWUFBYyxLQUFPWCxFQUFTVyxXQUFhLElBQ3hEQyxPQUFRWixFQUFTVyxXQUNqQkUsV0FBWWIsRUFBU2MsY0FDckJDLFFBQVMsSUFBSUMsSUFBSXJCLE9BQU9zQixRQUFRakIsRUFBU2UsVUFDekNqQixLQUFNUSxFQUNOWSxZQUFhLElBQU1DLFFBQVFDLFFBQVFkLEdBQ25DZSxLQUFNLElBQU1GLFFBQVFDLFFBQVFFLEtBQUtDLE1BQU1qQixFQUFXa0IsY0FFcER2QixFQUFNUSxFQUFNLEdBQ2IsRUNqREdnQixFQUFpQixDQUNyQkMs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
8
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class t{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},a=n.replace(/\/?$/,"/");this.config={location:a,...s};const{override:o,preloaded:r={}}=this.config,i=Object.entries(this.langs).concat(Object.entries(o||r));this.langs=i.reduce(((e,[t,n])=>(e[t]=this.applyLanguage(t,n),e)),{}),this.locale=this.config.locale||this.config.langs[0]}init(e){return this.processConfig({...this.config,...e}),this.setCurrent(this.locale)}addLanguage(e,n={}){n="string"==typeof n?t.processFile(n):n,this.applyLanguage(e,n),this.config.langs.push("locale")}getValue(e,t=this.locale){var n;return(null==(n=this.langs[t])?void 0:n[e])||this.getFallbackValue(e)}getFallbackValue(e){const t=Object.values(this.langs).find((t=>t[e]));return null==t?void 0:t[e]}makeSafe(e){const t={"{":"\\{","}":"\\}","|":"\\|"};return e=e.replace(/[{}|]/g,(e=>t[e])),new RegExp(e,"g")}put(e,t){return this.current[e]=t,t}get(e,t){const n=this;let s=this.getValue(e);if(!s)return;const a=s.match(/\{[^}]+?\}/g);if(t&&a)if("object"==typeof t)for(const o of a){const e=o.substring(1,o.length-1);s=s.replace(n.makeSafe(o),t[e]||"")}else s=s.replace(/\{[^}]+?\}/g,t);return s}static processFile(e){return t.fromFile(e.replace(/\n\n/g,"\n"))}static fromFile(e){const t=e.split("\n"),n={};for(let s,a=0;a<t.length;a++){s=/^(.+?) *?= *?([^\n]+)/.exec(t[a]),s&&(n[s[1]]=s[2].replace(/(^\s+|\s+$)/g,""))}return n}loadLang(e,n=!0){const s=this;return new Promise((function(a,o){if(-1!==s.loaded.indexOf(e)&&n)return s.applyLanguage(s.langs[e]),a(s.langs[e]);return async function(e){try{const t=await fetch(e);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);const n=e.endsWith(".lang")?"text":"json";return await t[n]()}catch(t){throw t}}([s.config.location,e,s.config.extension].join("")).then((n=>{const o=t.processFile(n);return s.applyLanguage(e,o),s.loaded.push(e),a(s.langs[e])})).catch((t=>{const n=s.applyLanguage(e);a(n)}))}))}applyLanguage(e,t={}){const n=this.config.override[e]||{},s=this.langs[e]||{};return this.langs[e]={...s,...t,...n},this.langs[e]}get getLangs(){return this.config.langs}async setCurrent(e="en-US"){return await this.loadLang(e),this.locale=e,this.current=this.langs[e],this.current}}const n=new t;exports.I18N=t,exports.default=n;
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5janMubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5cbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5leHBvcnQgY2xhc3MgSTE4TiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5yZXBsYWNlKC9cXC8/JC8sICcvJylcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG4gICAgY29uc3QgeyBvdmVycmlkZSwgcHJlbG9hZGVkID0ge30gfSA9IHRoaXMuY29uZmlnXG4gICAgY29uc3QgYWxsTGFuZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLmxhbmdzKS5jb25jYXQoT2JqZWN0LmVudHJpZXMob3ZlcnJpZGUgfHwgcHJlbG9hZGVkKSlcbiAgICB0aGlzLmxhbmdzID0gYWxsTGFuZ3MucmVkdWNlKChhY2MsIFtsb2NhbGUsIGxhbmddKSA9PiB7XG4gICAgICBhY2NbbG9jYWxlXSA9IHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKCdsb2NhbGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiAnXFxcXHsnLFxuICAgICAgJ30nOiAnXFxcXH0nLFxuICAgICAgJ3wnOiAnXFxcXHwnLFxuICAgIH1cblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKHN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgaWYgKGFyZ3MgJiYgdG9rZW5zKSB7XG4gICAgICBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmdzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKF90aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1trZXldIHx8ICcnKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZSgvXFxuXFxuL2csICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS5yZXBsYWNlKC8oXlxccyt8XFxzKyQpL2csICcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBpZiAoX3RoaXMubG9hZGVkLmluZGV4T2YobG9jYWxlKSAhPT0gLTEgJiYgdXNlQ2FjaGUpIHtcbiAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFuZ0ZpbGUgPSBbX3RoaXMuY29uZmlnLmxvY2F0aW9uLCBsb2NhbGUsIF90aGlzLmNvbmZpZy5leHRlbnNpb25dLmpvaW4oJycpXG4gICAgICAgIHJldHVybiBmZXRjaERhdGEobGFuZ0ZpbGUpXG4gICAgICAgICAgLnRoZW4obGFuZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICAgICAgICBfdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICAgICAgICAgIHJlc29sdmUobGFuZylcbiAgICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEkxOE4oKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJJMThOIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwicmVwbGFjZSIsImNvbmZpZyIsInByZWxvYWRlZCIsImFsbExhbmdzIiwiZW50cmllcyIsImNvbmNhdCIsInJlZHVjZSIsImFjYyIsImxhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsInByb2Nlc3NGaWxlIiwicHVzaCIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJyZXNwb25zZSIsImZyb21GaWxlIiwicmF3VGV4dCIsImxpbmVzIiwic3BsaXQiLCJtYXRjaGVzIiwiaSIsImV4ZWMiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJpbmRleE9mIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZW5kc1dpdGgiLCJlcnJvciIsImZldGNoRGF0YSIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRHQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBUVAsTUFBTUMsRUFLWCxXQUFBQyxDQUFZQyxFQUFVUixHQUNmUyxLQUFBTixNQUFlTyxPQUFBQyxPQUFPLE1BQzNCRixLQUFLRyxPQUFTLEdBQ2RILEtBQUtJLGNBQWNMLEVBQ3BCLENBTUQsYUFBQUssQ0FBY0wsR0FDTixNQUFBTixTQUFFQSxLQUFhWSxHQUFnQixJQUFLZCxLQUFtQlEsR0FDdkRPLEVBQWlCYixFQUFTYyxRQUFRLE9BQVEsS0FDaERQLEtBQUtRLE9BQVMsQ0FBRWYsU0FBVWEsS0FBbUJELEdBQzdDLE1BQU1ULFNBQUVBLEVBQVVhLFVBQUFBLEVBQVksQ0FBQSxHQUFPVCxLQUFLUSxPQUNwQ0UsRUFBV1QsT0FBT1UsUUFBUVgsS0FBS04sT0FBT2tCLE9BQU9YLE9BQU9VLFFBQVFmLEdBQVlhLElBQ3pFVCxLQUFBTixNQUFRZ0IsRUFBU0csUUFBTyxDQUFDQyxHQUFNbkIsRUFBUW9CLE1BQzFDRCxFQUFJbkIsR0FBVUssS0FBS2dCLGNBQWNyQixFQUFRb0IsR0FDbENELElBQ04sSUFDSGQsS0FBS0wsT0FBU0ssS0FBS1EsT0FBT2IsUUFBVUss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
Binary file
@@ -1,41 +1,24 @@
1
1
 
2
2
  /**
3
3
  @draggable/i18n - https://github.com/Draggable/i18n
4
- Version: 1.0.5
4
+ Version: 1.0.6
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
8
- const http = {};
9
- const defaultOptions = Object.freeze({ method: "GET", body: "" });
10
- function fetch(url, fetchOptions = {}) {
11
- const options = { ...defaultOptions, ...fetchOptions };
12
- const handler = url.startsWith("https") ? http : http;
13
- return new Promise((resolve, reject) => {
14
- const request = handler.request(url, options, (response) => {
15
- processResponse(response, resolve);
16
- });
17
- request.on("error", (error) => reject(new Error(error.message)));
18
- if (options == null ? void 0 : options.body) request.write(options.body);
19
- request.end();
20
- });
8
+ async function fetchData(url) {
9
+ try {
10
+ const response = await fetch(url);
11
+ if (!response.ok) {
12
+ throw new Error(`HTTP error! status: ${response.status}`);
13
+ }
14
+ const handler = url.endsWith(".lang") ? "text" : "json";
15
+ const data = await response[handler]();
16
+ return data;
17
+ } catch (error) {
18
+ console.error("There has been a problem with your fetch operation:", error);
19
+ throw error;
20
+ }
21
21
  }
22
- const processResponse = (response, onEnd) => {
23
- const data = [];
24
- response.on("data", (chunk) => data.push(chunk));
25
- response.on("end", () => {
26
- const bodyBuffer = Buffer.concat(data);
27
- const result = {
28
- ok: response.statusCode >= 200 && response.statusCode < 300,
29
- status: response.statusCode,
30
- statusText: response.statusMessage,
31
- headers: new Map(Object.entries(response.headers)),
32
- body: bodyBuffer,
33
- arrayBuffer: () => Promise.resolve(bodyBuffer),
34
- json: () => Promise.resolve(JSON.parse(bodyBuffer.toString()))
35
- };
36
- onEnd(result);
37
- });
38
- };
39
22
  const DEFAULT_CONFIG = {
40
23
  extension: ".lang",
41
24
  // local or remote directory containing language files
@@ -199,12 +182,13 @@ class I18N {
199
182
  return resolve(_this.langs[locale]);
200
183
  } else {
201
184
  const langFile = [_this.config.location, locale, _this.config.extension].join("");
202
- return fetch(langFile).then(({ data: lang }) => {
203
- const processedFile = _this.processFile(lang);
185
+ return fetchData(langFile).then((lang) => {
186
+ const processedFile = I18N.processFile(lang);
204
187
  _this.applyLanguage(locale, processedFile);
205
188
  _this.loaded.push(locale);
206
189
  return resolve(_this.langs[locale]);
207
- }).catch(() => {
190
+ }).catch((err) => {
191
+ console.error(err);
208
192
  const lang = _this.applyLanguage(locale);
209
193
  resolve(lang);
210
194
  });
@@ -247,4 +231,4 @@ export {
247
231
  I18N,
248
232
  mi18n as default
249
233
  };
250
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5lcy5taW4uanMiLCJzb3VyY2VzIjpbIi4uL19fdml0ZS1icm93c2VyLWV4dGVybmFsIiwiLi4vc3JjL2ZldGNoLmpzIiwiLi4vc3JjL21pMThuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHt9IiwiaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJ1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCdcblxuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaCh1cmwsIGZldGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5mZXRjaE9wdGlvbnMgfVxuICBjb25zdCBoYW5kbGVyID0gdXJsLnN0YXJ0c1dpdGgoJ2h0dHBzJykgPyBodHRwcyA6IGh0dHBcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBoYW5kbGVyLnJlcXVlc3QodXJsLCBvcHRpb25zLCByZXNwb25zZSA9PiB7XG4gICAgICBwcm9jZXNzUmVzcG9uc2UocmVzcG9uc2UsIHJlc29sdmUpXG4gICAgfSlcblxuICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgZXJyb3IgPT4gcmVqZWN0KG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKSkpXG4gICAgaWYgKG9wdGlvbnM/LmJvZHkpIHJlcXVlc3Qud3JpdGUob3B0aW9ucy5ib2R5KVxuICAgIHJlcXVlc3QuZW5kKClcbiAgfSlcbn1cblxuY29uc3QgcHJvY2Vzc1Jlc3BvbnNlID0gKHJlc3BvbnNlLCBvbkVuZCkgPT4ge1xuICBjb25zdCBkYXRhID0gW11cbiAgcmVzcG9uc2Uub24oJ2RhdGEnLCBjaHVuayA9PiBkYXRhLnB1c2goY2h1bmspKVxuICByZXNwb25zZS5vbignZW5kJywgKCkgPT4ge1xuICAgIGNvbnN0IGJvZHlCdWZmZXIgPSBCdWZmZXIuY29uY2F0KGRhdGEpXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgb2s6IHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1c0NvZGUgPCAzMDAsXG4gICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNNZXNzYWdlLFxuICAgICAgaGVhZGVyczogbmV3IE1hcChPYmplY3QuZW50cmllcyhyZXNwb25zZS5oZWFkZXJzKSksXG4gICAgICBib2R5OiBib2R5QnVmZmVyLFxuICAgICAgYXJyYXlCdWZmZXI6ICgpID0+IFByb21pc2UucmVzb2x2ZShib2R5QnVmZmVyKSxcbiAgICAgIGpzb246ICgpID0+IFByb21pc2UucmVzb2x2ZShKU09OLnBhcnNlKGJvZHlCdWZmZXIudG9TdHJpbmcoKSkpLFxuICAgIH1cbiAgICBvbkVuZChyZXN1bHQpXG4gIH0pXG59XG4iLCJpbXBvcnQgeyBmZXRjaCB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOE4ge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgvXFwvPyQvLCAnLycpXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuICAgIGNvbnN0IHsgb3ZlcnJpZGUsIHByZWxvYWRlZCA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuICAgIGNvbnN0IGFsbExhbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5sYW5ncykuY29uY2F0KE9iamVjdC5lbnRyaWVzKG92ZXJyaWRlIHx8IHByZWxvYWRlZCkpXG4gICAgdGhpcy5sYW5ncyA9IGFsbExhbmdzLnJlZHVjZSgoYWNjLCBbbG9jYWxlLCBsYW5nXSkgPT4ge1xuICAgICAgYWNjW2xvY2FsZV0gPSB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaCgnbG9jYWxlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogJ1xcXFx7JyxcbiAgICAgICd9JzogJ1xcXFx9JyxcbiAgICAgICd8JzogJ1xcXFx8JyxcbiAgICB9XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChzdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIGlmIChhcmdzICYmIHRva2Vucykge1xuICAgICAgaWYgKCdvYmplY3QnID09PSB0eXBlb2YgYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShfdGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3Nba2V5XSB8fCAnJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2UoL1xcblxcbi9nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0ucmVwbGFjZSgvKF5cXHMrfFxccyskKS9nLCAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKF90aGlzLmxvYWRlZC5pbmRleE9mKGxvY2FsZSkgIT09IC0xICYmIHVzZUNhY2hlKSB7XG4gICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhbmdGaWxlID0gW190aGlzLmNvbmZpZy5sb2NhdGlvbiwgbG9jYWxlLCBfdGhpcy5jb25maWcuZXh0ZW5zaW9uXS5qb2luKCcnKVxuICAgICAgICByZXR1cm4gZmV0Y2gobGFuZ0ZpbGUpXG4gICAgICAgICAgLnRoZW4oKHsgZGF0YTogbGFuZyB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gX3RoaXMucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgICAgICAgX3RoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5nID0gX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgICAgICAgICByZXNvbHZlKGxhbmcpXG4gICAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBJMThOKClcbiJdLCJuYW1lcyI6WyJodHRwcyIsImtleSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBZSxPQUFBLENBQUE7QUNHZixNQUFNLGlCQUFpQixPQUFPLE9BQU8sRUFBRSxRQUFRLE9BQU8sTUFBTSxJQUFJO0FBa0J6RCxTQUFTLE1BQU0sS0FBSyxlQUFlLElBQUk7QUFDNUMsUUFBTSxVQUFVLEVBQUUsR0FBRyxnQkFBZ0IsR0FBRyxhQUFjO0FBQ3RELFFBQU0sVUFBVSxJQUFJLFdBQVcsT0FBTyxJQUFJQSxPQUFRO0FBRWxELFNBQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQ3RDLFVBQU0sVUFBVSxRQUFRLFFBQVEsS0FBSyxTQUFTLGNBQVk7QUFDeEQsc0JBQWdCLFVBQVUsT0FBTztBQUFBLElBQ3ZDLENBQUs7QUFFRCxZQUFRLEdBQUcsU0FBUyxXQUFTLE9BQU8sSUFBSSxNQUFNLE1BQU0sT0FBTyxDQUFDLENBQUM7QUFDN0QsUUFBSSxtQ0FBUyxLQUFNLFNBQVEsTUFBTSxRQUFRLElBQUk7QUFDN0MsWUFBUSxJQUFLO0FBQUEsRUFDakIsQ0FBRztBQUNIO0FBRUEsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLFVBQVU7QUFDM0MsUUFBTSxPQUFPLENBQUU7QUFDZixXQUFTLEdBQUcsUUFBUSxXQUFTLEtBQUssS0FBSyxLQUFLLENBQUM7QUFDN0MsV0FBUyxHQUFHLE9BQU8sTUFBTTtBQUN2QixVQUFNLGFBQWEsT0FBTyxPQUFPLElBQUk7QUFDckMsVUFBTSxTQUFTO0FBQUEsTUFDYixJQUFJLFNBQVMsY0FBYyxPQUFPLFNBQVMsYUFBYTtBQUFBLE1BQ3hELFFBQVEsU0FBUztB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
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5lcy5taW4uanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9mZXRjaC5qcyIsIi4uL3NyYy9taTE4bi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoeyBtZXRob2Q6ICdHRVQnLCBib2R5OiAnJyB9KVxuLyoqXG4gKiBGZXRjaGVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgbmV0d29yay5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBmZXRjaC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zPXt9XSAtIFRoZSBvcHRpb25zIGZvciB0aGUgZmV0Y2ggcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zLmhlYWRlcnNdIC0gSGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtmZXRjaE9wdGlvbnMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UgKGUuZy4sICdHRVQnLCAnUE9TVCcpLlxuICogQHBhcmFtIHtzdHJpbmd8QnVmZmVyfSBbZmV0Y2hPcHRpb25zLmJvZHldIC0gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJuIHtQcm9taXNlPE9iamVjdD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBvYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm4ub2sgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHN0YXR1cyBpcyBpbiB0aGUgcmFuZ2UgMjAwLTI5OS5cbiAqIEByZXR1cm4ge251bWJlcn0gcmV0dXJuLnN0YXR1cyAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gcmV0dXJuLnN0YXR1c1RleHQgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtNYXA8c3RyaW5nLCBzdHJpbmc+fSByZXR1cm4uaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge0J1ZmZlcn0gcmV0dXJuLmJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgYXMgYSBCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPEJ1ZmZlcj59IHJldHVybi5hcnJheUJ1ZmZlciAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPE9iamVjdD59IHJldHVybi5qc29uIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBwYXJzZWQgYXMgSlNPTi5cbiAqL1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hEYXRhKHVybCkge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICAgIH1cbiAgICBjb25zdCBoYW5kbGVyID0gdXJsLmVuZHNXaXRoKCcubGFuZycpID8gJ3RleHQnIDogJ2pzb24nXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlW2hhbmRsZXJdKClcbiAgICByZXR1cm4gZGF0YVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGhhcyBiZWVuIGEgcHJvYmxlbSB3aXRoIHlvdXIgZmV0Y2ggb3BlcmF0aW9uOicsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiIsImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOE4ge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgvXFwvPyQvLCAnLycpXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuICAgIGNvbnN0IHsgb3ZlcnJpZGUsIHByZWxvYWRlZCA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuICAgIGNvbnN0IGFsbExhbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5sYW5ncykuY29uY2F0KE9iamVjdC5lbnRyaWVzKG92ZXJyaWRlIHx8IHByZWxvYWRlZCkpXG4gICAgdGhpcy5sYW5ncyA9IGFsbExhbmdzLnJlZHVjZSgoYWNjLCBbbG9jYWxlLCBsYW5nXSkgPT4ge1xuICAgICAgYWNjW2xvY2FsZV0gPSB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaCgnbG9jYWxlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogJ1xcXFx7JyxcbiAgICAgICd9JzogJ1xcXFx9JyxcbiAgICAgICd8JzogJ1xcXFx8JyxcbiAgICB9XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChzdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIGlmIChhcmdzICYmIHRva2Vucykge1xuICAgICAgaWYgKCdvYmplY3QnID09PSB0eXBlb2YgYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShfdGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3Nba2V5XSB8fCAnJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2UoL1xcblxcbi9nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0ucmVwbGFjZSgvKF5cXHMrfFxccyskKS9nLCAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKF90aGlzLmxvYWRlZC5pbmRleE9mKGxvY2FsZSkgIT09IC0xICYmIHVzZUNhY2hlKSB7XG4gICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhbmdGaWxlID0gW190aGlzLmNvbmZpZy5sb2NhdGlvbiwgbG9jYWxlLCBfdGhpcy5jb25maWcuZXh0ZW5zaW9uXS5qb2luKCcnKVxuICAgICAgICByZXR1cm4gZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKGxhbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgICAgICAgX3RoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICBjb25zdCBsYW5nID0gX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgICAgICAgICByZXNvbHZlKGxhbmcpXG4gICAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBJMThOKClcbiJdLCJuYW1lcyI6WyJrZXkiXSwibWFwcGluZ3MiOiJBQW1CTyxlQUFlLFVBQVUsS0FBSztBQUNuQyxNQUFJO0FBQ0YsVUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHO0FBQ2hDLFFBQUksQ0FBQyxTQUFTLElBQUk7QUFDaEIsWUFBTSxJQUFJLE1BQU0sdUJBQXVCLFNBQVMsTUFBTSxFQUFFO0FBQUEsSUFDekQ7QUFDRCxVQUFNLFVBQVUsSUFBSSxTQUFTLE9BQU8sSUFBSSxTQUFTO0FBQ2pELFVBQU0sT0FBTyxNQUFNLFNBQVMsT0FBTyxFQUFHO0FBQ3RDLFdBQU87QUFBQSxFQUNSLFNBQVEsT0FBTztBQUNkLFlBQVEsTUFBTSx1REFBdUQsS0FBSztBQUMxRSxVQUFNO0FBQUEsRUFDUDtBQUNIO0FDOUJBLE1BQU0saUJBQWlCO0FBQUEsRUFDckIsV0FBVztBQUFBO0FBQUEsRUFFWCxVQUFVO0FBQUE7QUFBQSxFQUVWLE9BQU8sQ0FBQyxPQUFPO0FBQUEsRUFDZixRQUFRO0FBQUE7QUFBQSxFQUNSLFVBQVUsQ0FBRTtBQUNkO0FBT08sTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtoQixZQUFZLFVBQVUsZ0JBQWdCO0FBQ3BDLFNBQUssUUFB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
Binary file
@@ -1,9 +1,9 @@
1
1
 
2
2
  /**
3
3
  @draggable/i18n - https://github.com/Draggable/i18n
4
- Version: 1.0.5
4
+ Version: 1.0.6
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
8
- var i18n=function(e){"use strict";const t={},s=Object.freeze({method:"GET",body:""});const n=(e,t)=>{const s=[];e.on("data",(e=>s.push(e))),e.on("end",(()=>{const n=Buffer.concat(s),a={ok:e.statusCode>=200&&e.statusCode<300,status:e.statusCode,statusText:e.statusMessage,headers:new Map(Object.entries(e.headers)),body:n,arrayBuffer:()=>Promise.resolve(n),json:()=>Promise.resolve(JSON.parse(n.toString()))};t(a)}))},a={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class o{constructor(e=a){this.langs=Object.create(null),this.loaded=[],this.processConfig(e)}processConfig(e){const{location:t,...s}={...a,...e},n=t.replace(/\/?$/,"/");this.config={location:n,...s};const{override:o,preloaded:r={}}=this.config,i=Object.entries(this.langs).concat(Object.entries(o||r));this.langs=i.reduce(((e,[t,s])=>(e[t]=this.applyLanguage(t,s),e)),{}),this.locale=this.config.locale||this.config.langs[0]}init(e){return this.processConfig({...this.config,...e}),this.setCurrent(this.locale)}addLanguage(e,t={}){t="string"==typeof t?o.processFile(t):t,this.applyLanguage(e,t),this.config.langs.push("locale")}getValue(e,t=this.locale){var s;return(null==(s=this.langs[t])?void 0:s[e])||this.getFallbackValue(e)}getFallbackValue(e){const t=Object.values(this.langs).find((t=>t[e]));return null==t?void 0:t[e]}makeSafe(e){const t={"{":"\\{","}":"\\}","|":"\\|"};return e=e.replace(/[{}|]/g,(e=>t[e])),new RegExp(e,"g")}put(e,t){return this.current[e]=t,t}get(e,t){const s=this;let n=this.getValue(e);if(!n)return;const a=n.match(/\{[^}]+?\}/g);if(t&&a)if("object"==typeof t)for(const o of a){const e=o.substring(1,o.length-1);n=n.replace(s.makeSafe(o),t[e]||"")}else n=n.replace(/\{[^}]+?\}/g,t);return n}static processFile(e){return o.fromFile(e.replace(/\n\n/g,"\n"))}static fromFile(e){const t=e.split("\n"),s={};for(let n,a=0;a<t.length;a++){n=/^(.+?) *?= *?([^\n]+)/.exec(t[a]),n&&(s[n[1]]=n[2].replace(/(^\s+|\s+$)/g,""))}return s}loadLang(e,a=!0){const o=this;return new Promise((function(r,i){if(-1!==o.loaded.indexOf(e)&&a)return o.applyLanguage(o.langs[e]),r(o.langs[e]);return function(e,a={}){const o={...s,...a},r=(e.startsWith("https"),t);return new Promise(((t,s)=>{const a=r.request(e,o,(e=>{n(e,t)}));a.on("error",(e=>s(new Error(e.message)))),(null==o?void 0:o.body)&&a.write(o.body),a.end()}))}([o.config.location,e,o.config.extension].join("")).then((({data:t})=>{const s=o.processFile(t);return o.applyLanguage(e,s),o.loaded.push(e),r(o.langs[e])})).catch((()=>{const t=o.applyLanguage(e);r(t)}))}))}applyLanguage(e,t={}){const s=this.config.override[e]||{},n=this.langs[e]||{};return this.langs[e]={...n,...t,...s},this.langs[e]}get getLangs(){return this.config.langs}async setCurrent(e="en-US"){return await this.loadLang(e),this.locale=e,this.current=this.langs[e],this.current}}const r=new o;return e.I18N=o,e.default=r,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),e}({});
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5paWZlLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vX192aXRlLWJyb3dzZXItZXh0ZXJuYWwiLCIuLi9zcmMvZmV0Y2guanMiLCIuLi9zcmMvbWkxOG4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge30iLCJpbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnXG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJ1xuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoeyBtZXRob2Q6ICdHRVQnLCBib2R5OiAnJyB9KVxuLyoqXG4gKiBGZXRjaGVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgbmV0d29yay5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBmZXRjaC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zPXt9XSAtIFRoZSBvcHRpb25zIGZvciB0aGUgZmV0Y2ggcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zLmhlYWRlcnNdIC0gSGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtmZXRjaE9wdGlvbnMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UgKGUuZy4sICdHRVQnLCAnUE9TVCcpLlxuICogQHBhcmFtIHtzdHJpbmd8QnVmZmVyfSBbZmV0Y2hPcHRpb25zLmJvZHldIC0gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJuIHtQcm9taXNlPE9iamVjdD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBvYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm4ub2sgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHN0YXR1cyBpcyBpbiB0aGUgcmFuZ2UgMjAwLTI5OS5cbiAqIEByZXR1cm4ge251bWJlcn0gcmV0dXJuLnN0YXR1cyAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gcmV0dXJuLnN0YXR1c1RleHQgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtNYXA8c3RyaW5nLCBzdHJpbmc+fSByZXR1cm4uaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge0J1ZmZlcn0gcmV0dXJuLmJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgYXMgYSBCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPEJ1ZmZlcj59IHJldHVybi5hcnJheUJ1ZmZlciAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPE9iamVjdD59IHJldHVybi5qc29uIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBwYXJzZWQgYXMgSlNPTi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZldGNoKHVybCwgZmV0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdE9wdGlvbnMsIC4uLmZldGNoT3B0aW9ucyB9XG4gIGNvbnN0IGhhbmRsZXIgPSB1cmwuc3RhcnRzV2l0aCgnaHR0cHMnKSA/IGh0dHBzIDogaHR0cFxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGhhbmRsZXIucmVxdWVzdCh1cmwsIG9wdGlvbnMsIHJlc3BvbnNlID0+IHtcbiAgICAgIHByb2Nlc3NSZXNwb25zZShyZXNwb25zZSwgcmVzb2x2ZSlcbiAgICB9KVxuXG4gICAgcmVxdWVzdC5vbignZXJyb3InLCBlcnJvciA9PiByZWplY3QobmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpKSlcbiAgICBpZiAob3B0aW9ucz8uYm9keSkgcmVxdWVzdC53cml0ZShvcHRpb25zLmJvZHkpXG4gICAgcmVxdWVzdC5lbmQoKVxuICB9KVxufVxuXG5jb25zdCBwcm9jZXNzUmVzcG9uc2UgPSAocmVzcG9uc2UsIG9uRW5kKSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBbXVxuICByZXNwb25zZS5vbignZGF0YScsIGNodW5rID0+IGRhdGEucHVzaChjaHVuaykpXG4gIHJlc3BvbnNlLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgY29uc3QgYm9keUJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoZGF0YSlcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBvazogcmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDMwMCxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c01lc3NhZ2UsXG4gICAgICBoZWFkZXJzOiBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHJlc3BvbnNlLmhlYWRlcnMpKSxcbiAgICAgIGJvZHk6IGJvZHlCdWZmZXIsXG4gICAgICBhcnJheUJ1ZmZlcjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGJvZHlCdWZmZXIpLFxuICAgICAganNvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKEpTT04ucGFyc2UoYm9keUJ1ZmZlci50b1N0cmluZygpKSksXG4gICAgfVxuICAgIG9uRW5kKHJlc3VsdClcbiAgfSlcbn1cbiIsImltcG9ydCB7IGZldGNoIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5cbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5leHBvcnQgY2xhc3MgSTE4TiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5yZXBsYWNlKC9cXC8/JC8sICcvJylcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG4gICAgY29uc3QgeyBvdmVycmlkZSwgcHJlbG9hZGVkID0ge30gfSA9IHRoaXMuY29uZmlnXG4gICAgY29uc3QgYWxsTGFuZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLmxhbmdzKS5jb25jYXQoT2JqZWN0LmVudHJpZXMob3ZlcnJpZGUgfHwgcHJlbG9hZGVkKSlcbiAgICB0aGlzLmxhbmdzID0gYWxsTGFuZ3MucmVkdWNlKChhY2MsIFtsb2NhbGUsIGxhbmddKSA9PiB7XG4gICAgICBhY2NbbG9jYWxlXSA9IHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKCdsb2NhbGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiAnXFxcXHsnLFxuICAgICAgJ30nOiAnXFxcXH0nLFxuICAgICAgJ3wnOiAnXFxcXHwnLFxuICAgIH1cblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKHN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgaWYgKGFyZ3MgJiYgdG9rZW5zKSB7XG4gICAgICBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmdzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKF90aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1trZXldIHx8ICcnKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZSgvXFxuXFxuL2csICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS5yZXBsYWNlKC8oXlxccyt8XFxzKyQpL2csICcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBpZiAoX3RoaXMubG9hZGVkLmluZGV4T2YobG9jYWxlKSAhPT0gLTEgJiYgdXNlQ2FjaGUpIHtcbiAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFuZ0ZpbGUgPSBbX3RoaXMuY29uZmlnLmxvY2F0aW9uLCBsb2NhbGUsIF90aGlzLmNvbmZpZy5leHRlbnNpb25dLmpvaW4oJycpXG4gICAgICAgIHJldHVybiBmZXRjaChsYW5nRmlsZSlcbiAgICAgICAgICAudGhlbigoeyBkYXRhOiBsYW5nIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGUgPSBfdGhpcy5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICAgICAgICBfdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICAgICAgICAgIHJlc29sdmUobGFuZylcbiAgICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEkxOE4oKVxuIl0sIm5hbWVzIjpbImh0dHAiLCJkZWZhdWx0T3B0aW9ucyIsIk9iamVjdCIsImZyZWV6ZSIsIm1ldGhvZCIsImJvZHkiLCJwcm9jZXNzUmVzcG9uc2UiLCJyZXNwb25zZSIsIm9uRW5kIiwiZGF0YSIsIm9uIiwiY2h1bmsiLCJwdXNoIiwiYm9keUJ1ZmZlciIsIkJ1ZmZlciIsImNvbmNhdCIsInJlc3VsdCIsIm9rIiwic3RhdHVzQ29kZSIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJzdGF0dXNNZXNzYWdlIiwiaGVhZGVycyIsIk1hcCIsImVudHJpZXMiLCJhcnJheUJ1ZmZlciIsIlByb21pc2UiLCJyZXNvbHZlIiwianNvbiIsIkpTT04iLCJwYXJzZSIsInRvU3RyaW5nIiwiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJJMThOIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwicmVwbGFjZSIsImNvbmZpZyIsInByZWxvYWRlZCIsImFsbExhbmdzIiwicmVkdWNlIiwiYWNjIiwibGFuZyIsImFwcGx5TGFuZ3VhZ2UiLCJpbml0Iiwic2V0Q3VycmVudCIsImFkZExhbmd1YWdlIiwicHJvY2Vzc0ZpbGUiLCJnZXRWYWx1ZSIsImtleSIsIl9hIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImZhbGxiYWNrTGFuZyIsInZhbHVlcyIsImZpbmQiLCJtYWtlU2FmZSIsInN0ciIsIm1hcE9iaiIsIm1hdGNoZWQiLCJSZWdFeHAiLCJwdXQiLCJzdHJpbmciLCJjdXJyZW50IiwiZ2V0IiwiYXJncyIsIl90aGlzIiwidmFsdWUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZnJvbUZpbGUiLCJyYXdUZXh0IiwibGluZXMiLCJzcGxpdCIsIm1hdGNoZXMiLCJpIiwiZXhlYyIsImxvYWRMYW5nIiwidXNlQ2FjaGUiLCJyZWplY3QiLCJpbmRleE9mIiwidXJsIiwiZmV0Y2hPcHRpb25zIiwiaGFuZGxlciIsInN0YXJ0c1dpdGgiLCJodHRwcyIsInJlcXVlc3QiLCJlcnJvciIsIkVycm9yIiwibWVzc2FnZSIsIndyaXRlIiwiZW5kIiwiZmV0Y2giLCJqb2luIiwidGhlbiIsInByb2Nlc3NlZEZpbGUiLCJjYXRjaCIsImV4aXN0aW5nTGFuZyIsImdldExhbmdzIiwibWkxOG4iXSwibWFwcGluZ3MiOiJrQ0FBZSxNQUFBQSxFQUFBLENBQUEsRUNHVEMsRUFBaUJDLE9BQU9DLE9BQU8sQ0FBRUMsT0FBUSxNQUFPQyxLQUFNLEtBaUN0RCxNQUFBQyxFQUFrQixDQUFDQyxFQUFVQyxLQUNqQyxNQUFNQyxFQUFPLEdBQ2JGLEVBQVNHLEdBQUcsUUFBUUMsR0FBU0YsRUFBS0csS0FBS0QsS0FDOUJKLEVBQUFHLEdBQUcsT0FBTyxLQUNYLE1BQUFHLEVBQWFDLE9BQU9DLE9BQU9OLEdBQzNCTyxFQUFTLENBQ2JDLEdBQUlWLEVBQVNXLFlBQWMsS0FBT1gsRUFBU1csV0FBYSxJQUN4REMsT0FBUVosRUFBU1csV0FDakJFLFdBQVliLEVBQVNjLGNBQ3JCQyxRQUFTLElBQUlDLElBQUlyQixPQUFPc0IsUUFBUWpCLEVBQVNlLFVBQ3pDakIsS0FBTVEsRUFDTlksWUFBYSxJQUFNQyxRQUFRQyxRQUFRZCxHQUNuQ2UsS0FBTSxJQUFNRixRQUFRQyxRQUFRRSxLQUFLQyxNQUFNakIsRUFBV2tCLGNBRXBEdkIsRUFBTVEsRUFBTSxHQUNiLEVDakRHZ0IsRUFBaUIsQ0FDckJD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
8
+ var i18n=function(t){"use strict";const e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class n{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},a=n.replace(/\/?$/,"/");this.config={location:a,...s};const{override:i,preloaded:r={}}=this.config,o=Object.entries(this.langs).concat(Object.entries(i||r));this.langs=o.reduce(((t,[e,n])=>(t[e]=this.applyLanguage(e,n),t)),{}),this.locale=this.config.locale||this.config.langs[0]}init(t){return this.processConfig({...this.config,...t}),this.setCurrent(this.locale)}addLanguage(t,e={}){e="string"==typeof e?n.processFile(e):e,this.applyLanguage(t,e),this.config.langs.push("locale")}getValue(t,e=this.locale){var n;return(null==(n=this.langs[e])?void 0:n[t])||this.getFallbackValue(t)}getFallbackValue(t){const e=Object.values(this.langs).find((e=>e[t]));return null==e?void 0:e[t]}makeSafe(t){const e={"{":"\\{","}":"\\}","|":"\\|"};return t=t.replace(/[{}|]/g,(t=>e[t])),new RegExp(t,"g")}put(t,e){return this.current[t]=e,e}get(t,e){const n=this;let s=this.getValue(t);if(!s)return;const a=s.match(/\{[^}]+?\}/g);if(e&&a)if("object"==typeof e)for(const i of a){const t=i.substring(1,i.length-1);s=s.replace(n.makeSafe(i),e[t]||"")}else s=s.replace(/\{[^}]+?\}/g,e);return s}static processFile(t){return n.fromFile(t.replace(/\n\n/g,"\n"))}static fromFile(t){const e=t.split("\n"),n={};for(let s,a=0;a<e.length;a++){s=/^(.+?) *?= *?([^\n]+)/.exec(e[a]),s&&(n[s[1]]=s[2].replace(/(^\s+|\s+$)/g,""))}return n}loadLang(t,e=!0){const s=this;return new Promise((function(a,i){if(-1!==s.loaded.indexOf(t)&&e)return s.applyLanguage(s.langs[t]),a(s.langs[t]);return async function(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=t.endsWith(".lang")?"text":"json";return await e[n]()}catch(e){throw e}}([s.config.location,t,s.config.extension].join("")).then((e=>{const i=n.processFile(e);return s.applyLanguage(t,i),s.loaded.push(t),a(s.langs[t])})).catch((e=>{const n=s.applyLanguage(t);a(n)}))}))}applyLanguage(t,e={}){const n=this.config.override[t]||{},s=this.langs[t]||{};return this.langs[t]={...s,...e,...n},this.langs[t]}get getLangs(){return this.config.langs}async setCurrent(t="en-US"){return await this.loadLang(t),this.locale=t,this.current=this.langs[t],this.current}}const s=new n;return t.I18N=n,t.default=s,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),t}({});
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5paWZlLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL21pMThuLmpzIiwiLi4vc3JjL2ZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOE4ge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgvXFwvPyQvLCAnLycpXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuICAgIGNvbnN0IHsgb3ZlcnJpZGUsIHByZWxvYWRlZCA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuICAgIGNvbnN0IGFsbExhbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5sYW5ncykuY29uY2F0KE9iamVjdC5lbnRyaWVzKG92ZXJyaWRlIHx8IHByZWxvYWRlZCkpXG4gICAgdGhpcy5sYW5ncyA9IGFsbExhbmdzLnJlZHVjZSgoYWNjLCBbbG9jYWxlLCBsYW5nXSkgPT4ge1xuICAgICAgYWNjW2xvY2FsZV0gPSB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaCgnbG9jYWxlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogJ1xcXFx7JyxcbiAgICAgICd9JzogJ1xcXFx9JyxcbiAgICAgICd8JzogJ1xcXFx8JyxcbiAgICB9XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChzdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIGlmIChhcmdzICYmIHRva2Vucykge1xuICAgICAgaWYgKCdvYmplY3QnID09PSB0eXBlb2YgYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShfdGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3Nba2V5XSB8fCAnJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2UoL1xcblxcbi9nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0ucmVwbGFjZSgvKF5cXHMrfFxccyskKS9nLCAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKF90aGlzLmxvYWRlZC5pbmRleE9mKGxvY2FsZSkgIT09IC0xICYmIHVzZUNhY2hlKSB7XG4gICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhbmdGaWxlID0gW190aGlzLmNvbmZpZy5sb2NhdGlvbiwgbG9jYWxlLCBfdGhpcy5jb25maWcuZXh0ZW5zaW9uXS5qb2luKCcnKVxuICAgICAgICByZXR1cm4gZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKGxhbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgICAgICAgX3RoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICBjb25zdCBsYW5nID0gX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgICAgICAgICByZXNvbHZlKGxhbmcpXG4gICAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBJMThOKClcbiIsImNvbnN0IGRlZmF1bHRPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7IG1ldGhvZDogJ0dFVCcsIGJvZHk6ICcnIH0pXG4vKipcbiAqIEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBuZXR3b3JrLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGZldGNoLlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnM9e31dIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmZXRjaCByZXF1ZXN0LlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnMuaGVhZGVyc10gLSBIZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZldGNoT3B0aW9ucy5tZXRob2RdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSAoZS5nLiwgJ0dFVCcsICdQT1NUJykuXG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IFtmZXRjaE9wdGlvbnMuYm9keV0gLSBUaGUgYm9keSBvZiB0aGUgcmVxdWVzdC5cbiAqIEByZXR1cm4ge1Byb21pc2U8T2JqZWN0Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybi5vayAtIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugc3RhdHVzIGlzIGluIHRoZSByYW5nZSAyMDAtMjk5LlxuICogQHJldHVybiB7bnVtYmVyfSByZXR1cm4uc3RhdHVzIC0gVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7c3RyaW5nfSByZXR1cm4uc3RhdHVzVGV4dCAtIFRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge01hcDxzdHJpbmcsIHN0cmluZz59IHJldHVybi5oZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7QnVmZmVyfSByZXR1cm4uYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBhIEJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8QnVmZmVyPn0gcmV0dXJuLmFycmF5QnVmZmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBhcyBhbiBBcnJheUJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8T2JqZWN0Pn0gcmV0dXJuLmpzb24gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IHBhcnNlZCBhcyBKU09OLlxuICovXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEodXJsKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gICAgfVxuICAgIGNvbnN0IGhhbmRsZXIgPSB1cmwuZW5kc1dpdGgoJy5sYW5nJykgPyAndGV4dCcgOiAnanNvbidcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2VbaGFuZGxlcl0oKVxuICAgIHJldHVybiBkYXRhXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignVGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtIHdpdGggeW91ciBmZXRjaCBvcGVyYXRpb246JywgZXJyb3IpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfQ09ORklHIiwiZXh0ZW5zaW9uIiwibG9jYXRpb24iLCJsYW5ncyIsImxvY2FsZSIsIm92ZXJyaWRlIiwiSTE4TiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsInRoaXMiLCJPYmplY3QiLCJjcmVhdGUiLCJsb2FkZWQiLCJwcm9jZXNzQ29uZmlnIiwicmVzdE9wdGlvbnMiLCJwYXJzZWRMb2NhdGlvbiIsInJlcGxhY2UiLCJjb25maWciLCJwcmVsb2FkZWQiLCJhbGxMYW5ncyIsImVudHJpZXMiLCJjb25jYXQiLCJyZWR1Y2UiLCJhY2MiLCJsYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJzZXRDdXJyZW50IiwiYWRkTGFuZ3VhZ2UiLCJwcm9jZXNzRmlsZSIsInB1c2giLCJnZXRWYWx1ZSIsImtleSIsIl9hIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImZhbGxiYWNrTGFuZyIsInZhbHVlcyIsImZpbmQiLCJtYWtlU2FmZSIsInN0ciIsIm1hcE9iaiIsIm1hdGNoZWQiLCJSZWdFeHAiLCJwdXQiLCJzdHJpbmciLCJjdXJyZW50IiwiZ2V0IiwiYXJncyIsIl90aGlzIiwidmFsdWUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwicmVzcG9uc2UiLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJleGVjIiwibG9hZExhbmciLCJ1c2VDYWNoZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiaW5kZXhPZiIsImFzeW5jIiwidXJsIiwiZmV0Y2giLCJvayIsIkVycm9yIiwic3RhdHVzIiwiaGFuZGxlciIsImVuZHNXaXRoIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJqb2luIiwidGhlbiIsInByb2Nlc3NlZEZpbGUiLCJjYXRjaCIsImVyciIsImV4aXN0aW5nTGFuZyIsImdldExhbmdzIiwibWkxOG4iXSwibWFwcGluZ3MiOiJrQ0FFQSxNQUFNQSxFQUFpQixDQUNyQkMsVUFBVyxRQUVYQyxTQUFVLGVBRVZDLE1BQU8sQ0FBQyxTQUNSQyxPQUFRLFFBQ1JDLFNBQVUsQ0FBRSxHQVFQLE1BQU1DLEVBS1gsV0FBQUMsQ0FBWUMsRUFBVVIsR0FDZlMsS0FBQU4sTUFBZU8sT0FBQUMsT0FBTyxNQUMzQkYsS0FBS0csT0FBUyxHQUNkSCxLQUFLSSxjQUFjTCxFQUNwQixDQU1ELGFBQUFLLENBQWNMLEdBQ04sTUFBQU4sU0FBRUEsS0FBYVksR0FBZ0IsSUFBS2QsS0FBbUJRLEdBQ3ZETyxFQUFpQmIsRUFBU2MsUUFBUSxPQUFRLEtBQ2hEUCxLQUFLUSxPQUFTLENBQUVmLFNBQVVhLEtBQW1CRCxHQUM3QyxNQUFNVCxTQUFFQSxFQUFVYSxVQUFBQSxFQUFZLENBQUEsR0FBT1QsS0FBS1EsT0FDcENFLEVBQVdULE9BQU9VLFFBQVFYLEtBQUtOLE9BQU9rQixPQUFPWCxPQUFPVSxRQUFRZixHQUFZYSxJQUN6RVQsS0FBQU4sTUFBUWdCLEVBQVNHLFFBQU8sQ0FBQ0MsR0FBTW5CLEVBQVFvQixNQUMxQ0QsRUFBSW5CLEdBQVVLLEtBQUtnQixjQUFjckIsRUFBUW9CLEdBQ2xDRCxJQUNOLElBQ0hkLEtBQUtMLE9BQVNLLEtBQUtRLE9BQU9iLFFBQVVL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
Binary file
@@ -1,9 +1,9 @@
1
1
 
2
2
  /**
3
3
  @draggable/i18n - https://github.com/Draggable/i18n
4
- Version: 1.0.5
4
+ Version: 1.0.6
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
8
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).i18n={})}(this,(function(e){"use strict";const t={},n=Object.freeze({method:"GET",body:""});const s=(e,t)=>{const n=[];e.on("data",(e=>n.push(e))),e.on("end",(()=>{const s=Buffer.concat(n),o={ok:e.statusCode>=200&&e.statusCode<300,status:e.statusCode,statusText:e.statusMessage,headers:new Map(Object.entries(e.headers)),body:s,arrayBuffer:()=>Promise.resolve(s),json:()=>Promise.resolve(JSON.parse(s.toString()))};t(o)}))},o={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class a{constructor(e=o){this.langs=Object.create(null),this.loaded=[],this.processConfig(e)}processConfig(e){const{location:t,...n}={...o,...e},s=t.replace(/\/?$/,"/");this.config={location:s,...n};const{override:a,preloaded:i={}}=this.config,r=Object.entries(this.langs).concat(Object.entries(a||i));this.langs=r.reduce(((e,[t,n])=>(e[t]=this.applyLanguage(t,n),e)),{}),this.locale=this.config.locale||this.config.langs[0]}init(e){return this.processConfig({...this.config,...e}),this.setCurrent(this.locale)}addLanguage(e,t={}){t="string"==typeof t?a.processFile(t):t,this.applyLanguage(e,t),this.config.langs.push("locale")}getValue(e,t=this.locale){var n;return(null==(n=this.langs[t])?void 0:n[e])||this.getFallbackValue(e)}getFallbackValue(e){const t=Object.values(this.langs).find((t=>t[e]));return null==t?void 0:t[e]}makeSafe(e){const t={"{":"\\{","}":"\\}","|":"\\|"};return e=e.replace(/[{}|]/g,(e=>t[e])),new RegExp(e,"g")}put(e,t){return this.current[e]=t,t}get(e,t){const n=this;let s=this.getValue(e);if(!s)return;const o=s.match(/\{[^}]+?\}/g);if(t&&o)if("object"==typeof t)for(const a of o){const e=a.substring(1,a.length-1);s=s.replace(n.makeSafe(a),t[e]||"")}else s=s.replace(/\{[^}]+?\}/g,t);return s}static processFile(e){return a.fromFile(e.replace(/\n\n/g,"\n"))}static fromFile(e){const t=e.split("\n"),n={};for(let s,o=0;o<t.length;o++){s=/^(.+?) *?= *?([^\n]+)/.exec(t[o]),s&&(n[s[1]]=s[2].replace(/(^\s+|\s+$)/g,""))}return n}loadLang(e,o=!0){const a=this;return new Promise((function(i,r){if(-1!==a.loaded.indexOf(e)&&o)return a.applyLanguage(a.langs[e]),i(a.langs[e]);return function(e,o={}){const a={...n,...o},i=(e.startsWith("https"),t);return new Promise(((t,n)=>{const o=i.request(e,a,(e=>{s(e,t)}));o.on("error",(e=>n(new Error(e.message)))),(null==a?void 0:a.body)&&o.write(a.body),o.end()}))}([a.config.location,e,a.config.extension].join("")).then((({data:t})=>{const n=a.processFile(t);return a.applyLanguage(e,n),a.loaded.push(e),i(a.langs[e])})).catch((()=>{const t=a.applyLanguage(e);i(t)}))}))}applyLanguage(e,t={}){const n=this.config.override[e]||{},s=this.langs[e]||{};return this.langs[e]={...s,...t,...n},this.langs[e]}get getLangs(){return this.config.langs}async setCurrent(e="en-US"){return await this.loadLang(e),this.locale=e,this.current=this.langs[e],this.current}}const i=new a;e.I18N=a,e.default=i,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwic291cmNlcyI6WyIuLi9fX3ZpdGUtYnJvd3Nlci1leHRlcm5hbCIsIi4uL3NyYy9mZXRjaC5qcyIsIi4uL3NyYy9taTE4bi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7fSIsImltcG9ydCBodHRwcyBmcm9tICdodHRwcydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7IG1ldGhvZDogJ0dFVCcsIGJvZHk6ICcnIH0pXG4vKipcbiAqIEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBuZXR3b3JrLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGZldGNoLlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnM9e31dIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmZXRjaCByZXF1ZXN0LlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnMuaGVhZGVyc10gLSBIZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZldGNoT3B0aW9ucy5tZXRob2RdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSAoZS5nLiwgJ0dFVCcsICdQT1NUJykuXG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IFtmZXRjaE9wdGlvbnMuYm9keV0gLSBUaGUgYm9keSBvZiB0aGUgcmVxdWVzdC5cbiAqIEByZXR1cm4ge1Byb21pc2U8T2JqZWN0Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybi5vayAtIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugc3RhdHVzIGlzIGluIHRoZSByYW5nZSAyMDAtMjk5LlxuICogQHJldHVybiB7bnVtYmVyfSByZXR1cm4uc3RhdHVzIC0gVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7c3RyaW5nfSByZXR1cm4uc3RhdHVzVGV4dCAtIFRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge01hcDxzdHJpbmcsIHN0cmluZz59IHJldHVybi5oZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7QnVmZmVyfSByZXR1cm4uYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBhIEJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8QnVmZmVyPn0gcmV0dXJuLmFycmF5QnVmZmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBhcyBhbiBBcnJheUJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8T2JqZWN0Pn0gcmV0dXJuLmpzb24gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IHBhcnNlZCBhcyBKU09OLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2godXJsLCBmZXRjaE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4uZmV0Y2hPcHRpb25zIH1cbiAgY29uc3QgaGFuZGxlciA9IHVybC5zdGFydHNXaXRoKCdodHRwcycpID8gaHR0cHMgOiBodHRwXG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gaGFuZGxlci5yZXF1ZXN0KHVybCwgb3B0aW9ucywgcmVzcG9uc2UgPT4ge1xuICAgICAgcHJvY2Vzc1Jlc3BvbnNlKHJlc3BvbnNlLCByZXNvbHZlKVxuICAgIH0pXG5cbiAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIGVycm9yID0+IHJlamVjdChuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSkpKVxuICAgIGlmIChvcHRpb25zPy5ib2R5KSByZXF1ZXN0LndyaXRlKG9wdGlvbnMuYm9keSlcbiAgICByZXF1ZXN0LmVuZCgpXG4gIH0pXG59XG5cbmNvbnN0IHByb2Nlc3NSZXNwb25zZSA9IChyZXNwb25zZSwgb25FbmQpID0+IHtcbiAgY29uc3QgZGF0YSA9IFtdXG4gIHJlc3BvbnNlLm9uKCdkYXRhJywgY2h1bmsgPT4gZGF0YS5wdXNoKGNodW5rKSlcbiAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICBjb25zdCBib2R5QnVmZmVyID0gQnVmZmVyLmNvbmNhdChkYXRhKVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIG9rOiByZXNwb25zZS5zdGF0dXNDb2RlID49IDIwMCAmJiByZXNwb25zZS5zdGF0dXNDb2RlIDwgMzAwLFxuICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzTWVzc2FnZSxcbiAgICAgIGhlYWRlcnM6IG5ldyBNYXAoT2JqZWN0LmVudHJpZXMocmVzcG9uc2UuaGVhZGVycykpLFxuICAgICAgYm9keTogYm9keUJ1ZmZlcixcbiAgICAgIGFycmF5QnVmZmVyOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoYm9keUJ1ZmZlciksXG4gICAgICBqc29uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoSlNPTi5wYXJzZShib2R5QnVmZmVyLnRvU3RyaW5nKCkpKSxcbiAgICB9XG4gICAgb25FbmQocmVzdWx0KVxuICB9KVxufVxuIiwiaW1wb3J0IHsgZmV0Y2ggfSBmcm9tICcuL2ZldGNoLmpzJ1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgZXh0ZW5zaW9uOiAnLmxhbmcnLFxuICAvLyBsb2NhbCBvciByZW1vdGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGFuZ3VhZ2UgZmlsZXNcbiAgbG9jYXRpb246ICdhc3NldHMvbGFuZy8nLFxuICAvLyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLCBoYW5keSBmb3IgcG9wdWxhdGluZyBzZWxlY3Rvci5cbiAgbGFuZ3M6IFsnZW4tVVMnXSxcbiAgbG9jYWxlOiAnZW4tVVMnLCAvLyBpbml0IHdpdGggdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZVxuICBvdmVycmlkZToge30sXG59XG5cbi8qKlxuICogTWFpbiBpMThuIGNsYXNzXG4gKiBAY2xhc3MgSTE4TlxuICogQGNsYXNzZGVzYyBtZXRob2RzIGFuZCBkYXRhIHN0b3JlIGZvciBpMThuXG4gKi9cbmV4cG9ydCBjbGFzcyBJMThOIHtcbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3B0aW9ucyBhbmQgc3RhcnQgdGhlIG1vZHVsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IERFRkFVTFRfQ09ORklHKSB7XG4gICAgdGhpcy5sYW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICB0aGlzLmxvYWRlZCA9IFtdXG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogcGFyc2UgYW5kIGZvcm1hdCBjb25maWdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIHByb2Nlc3NDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH0gPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH1cbiAgICBjb25zdCBwYXJzZWRMb2NhdGlvbiA9IGxvY2F0aW9uLnJlcGxhY2UoL1xcLz8kLywgJy8nKVxuICAgIHRoaXMuY29uZmlnID0geyBsb2NhdGlvbjogcGFyc2VkTG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH1cbiAgICBjb25zdCB7IG92ZXJyaWRlLCBwcmVsb2FkZWQgPSB7fSB9ID0gdGhpcy5jb25maWdcbiAgICBjb25zdCBhbGxMYW5ncyA9IE9iamVjdC5lbnRyaWVzKHRoaXMubGFuZ3MpLmNvbmNhdChPYmplY3QuZW50cmllcyhvdmVycmlkZSB8fCBwcmVsb2FkZWQpKVxuICAgIHRoaXMubGFuZ3MgPSBhbGxMYW5ncy5yZWR1Y2UoKGFjYywgW2xvY2FsZSwgbGFuZ10pID0+IHtcbiAgICAgIGFjY1tsb2NhbGVdID0gdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7fSlcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuY29uZmlnLmxvY2FsZSB8fCB0aGlzLmNvbmZpZy5sYW5nc1swXVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgbGFuZ3VhZ2UgYW5kIHNldCBkZWZhdWx0XG4gICAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICAgcmVzb2x2ZXMgbGFuZ3VhZ2VcbiAgICovXG4gIGluaXQob3B0aW9ucykge1xuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyh7IC4uLnRoaXMuY29uZmlnLCAuLi5vcHRpb25zIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0Q3VycmVudCh0aGlzLmxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbGFuZ3VhZ2UgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gbGFuZ1xuICAgKi9cbiAgYWRkTGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBsYW5nID0gdHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnID8gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKSA6IGxhbmdcbiAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgIHRoaXMuY29uZmlnLmxhbmdzLnB1c2goJ2xvY2FsZScpXG4gIH1cblxuICAvKipcbiAgICogZ2V0IGEgc3RyaW5nIGZyb20gYSBsb2FkZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgLSB0aGUga2V5IGZvciB0aGUgc3RyaW5nIHdlIGFyZSB0cnlpbmcgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgLSBsb2NhbGUgdG8gY2hlY2sgZm9yIHZhbHVlXG4gICAqIEByZXR1cm4ge1N0cmluZ30gbGFuZ3VhZ2Ugc3RyaW5nIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0VmFsdWUoa2V5LCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5sYW5nc1tsb2NhbGVdPy5ba2V5XVxuICAgIHJldHVybiB2YWx1ZSB8fCB0aGlzLmdldEZhbGxiYWNrVmFsdWUoa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSBsYW5ndWFnZSB0aGF0IGhhcyBkZXNpcmVkIGtleVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IHZhbHVlIGtleVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGZvdW5kIHZhbHVlIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RmFsbGJhY2tWYWx1ZShrZXkpIHtcbiAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3MpLmZpbmQobGFuZyA9PiBsYW5nW2tleV0pXG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZz8uW2tleV1cbiAgfVxuXG4gIC8qKlxuICAgKiBFc2NhcGUgdmFyaWFibGUgc3ludGF4XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIGVzY2FwZWQgc3RyXG4gICAqL1xuICBtYWtlU2FmZShzdHIpIHtcbiAgICBjb25zdCBtYXBPYmogPSB7XG4gICAgICAneyc6ICdcXFxceycsXG4gICAgICAnfSc6ICdcXFxcfScsXG4gICAgICAnfCc6ICdcXFxcfCcsXG4gICAgfVxuXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1t7fXxdL2csIG1hdGNoZWQgPT4gbWFwT2JqW21hdGNoZWRdKVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoc3RyLCAnZycpXG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgcHV0IGEgc3RyaW5nIGludG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgbGFuZ3VhZ2VcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXlcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybiB7U3RyaW5nfSBzdHJpbmcgaW4gY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgcHV0KGtleSwgc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50W2tleV0gPSBzdHJpbmdcblxuICAgIHJldHVybiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhcmd1bWVudHMgZm9yIHRoZSByZXF1ZXN0ZWQgc3RyaW5nXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICB0aGUga2V5IHdlIHVzZSB0byBsb29rdXAgb3VyIHRyYW5zbGF0aW9uXG4gICAqIEBwYXJhbSAge211bHRpfSAgYXJncyAgc3RyaW5nLCBudW1iZXIgb3Igb2JqZWN0IGNvbnRhaW5pbmcgb3VyIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICAgdXBkYXRlZCBzdHJpbmcgdHJhbnNsYXRpb25cbiAgICovXG4gIGdldChrZXksIGFyZ3MpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSlcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSB2YWx1ZS5tYXRjaCgvXFx7W159XSs/XFx9L2cpXG5cbiAgICBpZiAoYXJncyAmJiB0b2tlbnMpIHtcbiAgICAgIGlmICgnb2JqZWN0JyA9PT0gdHlwZW9mIGFyZ3MpIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSlcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoX3RoaXMubWFrZVNhZmUodG9rZW4pLCBhcmdzW2tleV0gfHwgJycpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFx7W159XSs/XFx9L2csIGFyZ3MpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogUHJvY2VzcyBhIGxhbmd1YWdlIGZpbGUgZnJvbSByYXcgdGV4dFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJlc3BvbnNlXG4gICAqIEByZXR1cm4ge09iamVjdH0gcHJvY2Vzc2VkIGxhbmd1YWdlXG4gICAqL1xuICBzdGF0aWMgcHJvY2Vzc0ZpbGUocmVzcG9uc2UpIHtcbiAgICByZXR1cm4gSTE4Ti5mcm9tRmlsZShyZXNwb25zZS5yZXBsYWNlKC9cXG5cXG4vZywgJ1xcbicpKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFR1cm4gcmF3IHRleHQgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZXMgaW50byBmYW5jeSBKU09OXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmF3VGV4dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGNvbnZlcnRlZCBsYW5ndWFnZSBmaWxlXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGUocmF3VGV4dCkge1xuICAgIGNvbnN0IGxpbmVzID0gcmF3VGV4dC5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBsYW5nID0ge31cblxuICAgIGZvciAobGV0IG1hdGNoZXMsIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14oLis/KSAqPz0gKj8oW15cXG5dKykvXG4gICAgICBtYXRjaGVzID0gcmVnZXguZXhlYyhsaW5lc1tpXSlcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIGxhbmdbbWF0Y2hlc1sxXV0gPSBtYXRjaGVzWzJdLnJlcGxhY2UoLyheXFxzK3xcXHMrJCkvZywgJycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGEgcmVtb3RlbHkgc3RvcmVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtICB7Qm9vbGVhbn0gdXNlQ2FjaGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgcmVzb2x2ZXMgcmVzcG9uc2VcbiAgICovXG4gIGxvYWRMYW5nKGxvY2FsZSwgdXNlQ2FjaGUgPSB0cnVlKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGlmIChfdGhpcy5sb2FkZWQuaW5kZXhPZihsb2NhbGUpICE9PSAtMSAmJiB1c2VDYWNoZSkge1xuICAgICAgICBfdGhpcy5hcHBseUxhbmd1YWdlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICAgIHJldHVybiByZXNvbHZlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBsYW5nRmlsZSA9IFtfdGhpcy5jb25maWcubG9jYXRpb24sIGxvY2FsZSwgX3RoaXMuY29uZmlnLmV4dGVuc2lvbl0uam9pbignJylcbiAgICAgICAgcmV0dXJuIGZldGNoKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKCh7IGRhdGE6IGxhbmcgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IF90aGlzLnByb2Nlc3NGaWxlKGxhbmcpXG4gICAgICAgICAgICBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgcHJvY2Vzc2VkRmlsZSlcbiAgICAgICAgICAgIF90aGlzLmxvYWRlZC5wdXNoKGxvY2FsZSlcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKF90aGlzLmxhbmdzW2xvY2FsZV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZyA9IF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlKVxuICAgICAgICAgICAgcmVzb2x2ZShsYW5nKVxuICAgICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBhcHBsaWVzIG92ZXJyaWRlcyBmcm9tIGNvbmZpZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBsYW5nXG4gICAqIEByZXR1cm4ge09iamVjdH0gb3ZlcnJpZGVuIGxhbmd1YWdlXG4gICAqL1xuICBhcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZVtsb2NhbGVdIHx8IHt9XG4gICAgY29uc3QgZXhpc3RpbmdMYW5nID0gdGhpcy5sYW5nc1tsb2NhbGVdIHx8IHt9XG4gICAgdGhpcy5sYW5nc1tsb2NhbGVdID0geyAuLi5leGlzdGluZ0xhbmcsIC4uLmxhbmcsIC4uLm92ZXJyaWRlIH1cbiAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGN1cnJlbnRseSBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEByZXR1cm4ge09iamVjdH0gYWxsIGNvbmZpZ3VyZWQgbGFuZ3VhZ2VzXG4gICAqL1xuICBnZXQgZ2V0TGFuZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmxhbmdzXG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdCB0byBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdG8gdGhlIGxvY2FsIHByb3ZpZGVkXG4gICAqIEBwYXJhbSB7U3RyaW5nfSAgIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBsYW5ndWFnZVxuICAgKi9cbiAgYXN5bmMgc2V0Q3VycmVudChsb2NhbGUgPSAnZW4tVVMnKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkTGFuZyhsb2NhbGUpXG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmxhbmdzW2xvY2FsZV1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgSTE4TigpXG4iXSwibmFtZXMiOlsiaHR0cCIsImRlZmF1bHRPcHRpb25zIiwiT2JqZWN0IiwiZnJlZXplIiwibWV0aG9kIiwiYm9keSIsInByb2Nlc3NSZXNwb25zZSIsInJlc3BvbnNlIiwib25FbmQiLCJkYXRhIiwib24iLCJjaHVuayIsInB1c2giLCJib2R5QnVmZmVyIiwiQnVmZmVyIiwiY29uY2F0IiwicmVzdWx0Iiwib2siLCJzdGF0dXNDb2RlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInN0YXR1c01lc3NhZ2UiLCJoZWFkZXJzIiwiTWFwIiwiZW50cmllcyIsImFycmF5QnVmZmVyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJqc29uIiwiSlNPTiIsInBhcnNlIiwidG9TdHJpbmciLCJERUZBVUxUX0NPTkZJRyIsImV4dGVuc2lvbiIsImxvY2F0aW9uIiwibGFuZ3MiLCJsb2NhbGUiLCJvdmVycmlkZSIsIkkxOE4iLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJ0aGlzIiwiY3JlYXRlIiwibG9hZGVkIiwicHJvY2Vzc0NvbmZpZyIsInJlc3RPcHRpb25zIiwicGFyc2VkTG9jYXRpb24iLCJyZXBsYWNlIiwiY29uZmlnIiwicHJlbG9hZGVkIiwiYWxsTGFuZ3MiLCJyZWR1Y2UiLCJhY2MiLCJsYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJzZXRDdXJyZW50IiwiYWRkTGFuZ3VhZ2UiLCJwcm9jZXNzRmlsZSIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJleGVjIiwibG9hZExhbmciLCJ1c2VDYWNoZSIsInJlamVjdCIsImluZGV4T2YiLCJ1cmwiLCJmZXRjaE9wdGlvbnMiLCJoYW5kbGVyIiwic3RhcnRzV2l0aCIsImh0dHBzIiwicmVxdWVzdCIsImVycm9yIiwiRXJyb3IiLCJtZXNzYWdlIiwid3JpdGUiLCJlbmQiLCJmZXRjaCIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRPQUFlLE1BQUFBLEVBQUEsQ0FBQSxFQ0dUQyxFQUFpQkMsT0FBT0MsT0FBTyxDQUFFQyxPQUFRLE1BQU9DLEtBQU0sS0FpQ3RELE1BQUFDLEVBQWtCLENBQUNDLEVBQVVDLEtBQ2pDLE1BQU1DLEVBQU8sR0FDYkYsRUFBU0csR0FBRyxRQUFRQyxHQUFTRixFQUFLRyxLQUFLRCxLQUM5QkosRUFBQUcsR0FBRyxPQUFPLEtBQ1gsTUFBQUcsRUFBYUMsT0FBT0MsT0FBT04sR0FDM0JPLEVBQVMsQ0FDYkMsR0FBSVYsRUFBU1csWUFBYyxLQUFPWCxFQUFTVyxXQUFhLElBQ3hEQyxPQUFRWixFQUFTVyxXQUNqQkUsV0FBWWIsRUFBU2MsY0FDckJDLFFBQVMsSUFBSUMsSUFBSXJCLE9BQU9zQixRQUFRakIsRUFBU2UsVUFDekNqQixLQUFNUSxFQUNOWSxZQUFhLElBQU1DLFFBQVFDLFFBQVFkLEdBQ25DZSxLQUFNLElBQU1GLFFBQVFDLFFBQVFFLEtBQUtDLE1BQU1qQixFQUFXa0IsY0FFcER2QixFQUFNUSxFQUFNLEdBQ2IsRUNqREdnQixFQUFpQixDQUNyQkMs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
8
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).i18n={})}(this,(function(e){"use strict";const t={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class n{constructor(e=t){this.langs=Object.create(null),this.loaded=[],this.processConfig(e)}processConfig(e){const{location:n,...s}={...t,...e},a=n.replace(/\/?$/,"/");this.config={location:a,...s};const{override:i,preloaded:o={}}=this.config,l=Object.entries(this.langs).concat(Object.entries(i||o));this.langs=l.reduce(((e,[t,n])=>(e[t]=this.applyLanguage(t,n),e)),{}),this.locale=this.config.locale||this.config.langs[0]}init(e){return this.processConfig({...this.config,...e}),this.setCurrent(this.locale)}addLanguage(e,t={}){t="string"==typeof t?n.processFile(t):t,this.applyLanguage(e,t),this.config.langs.push("locale")}getValue(e,t=this.locale){var n;return(null==(n=this.langs[t])?void 0:n[e])||this.getFallbackValue(e)}getFallbackValue(e){const t=Object.values(this.langs).find((t=>t[e]));return null==t?void 0:t[e]}makeSafe(e){const t={"{":"\\{","}":"\\}","|":"\\|"};return e=e.replace(/[{}|]/g,(e=>t[e])),new RegExp(e,"g")}put(e,t){return this.current[e]=t,t}get(e,t){const n=this;let s=this.getValue(e);if(!s)return;const a=s.match(/\{[^}]+?\}/g);if(t&&a)if("object"==typeof t)for(const i of a){const e=i.substring(1,i.length-1);s=s.replace(n.makeSafe(i),t[e]||"")}else s=s.replace(/\{[^}]+?\}/g,t);return s}static processFile(e){return n.fromFile(e.replace(/\n\n/g,"\n"))}static fromFile(e){const t=e.split("\n"),n={};for(let s,a=0;a<t.length;a++){s=/^(.+?) *?= *?([^\n]+)/.exec(t[a]),s&&(n[s[1]]=s[2].replace(/(^\s+|\s+$)/g,""))}return n}loadLang(e,t=!0){const s=this;return new Promise((function(a,i){if(-1!==s.loaded.indexOf(e)&&t)return s.applyLanguage(s.langs[e]),a(s.langs[e]);return async function(e){try{const t=await fetch(e);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);const n=e.endsWith(".lang")?"text":"json";return await t[n]()}catch(t){throw t}}([s.config.location,e,s.config.extension].join("")).then((t=>{const i=n.processFile(t);return s.applyLanguage(e,i),s.loaded.push(e),a(s.langs[e])})).catch((t=>{const n=s.applyLanguage(e);a(n)}))}))}applyLanguage(e,t={}){const n=this.config.override[e]||{},s=this.langs[e]||{};return this.langs[e]={...s,...t,...n},this.langs[e]}get getLangs(){return this.config.langs}async setCurrent(e="en-US"){return await this.loadLang(e),this.locale=e,this.current=this.langs[e],this.current}}const s=new n;e.I18N=n,e.default=s,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5cbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5leHBvcnQgY2xhc3MgSTE4TiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5yZXBsYWNlKC9cXC8/JC8sICcvJylcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG4gICAgY29uc3QgeyBvdmVycmlkZSwgcHJlbG9hZGVkID0ge30gfSA9IHRoaXMuY29uZmlnXG4gICAgY29uc3QgYWxsTGFuZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLmxhbmdzKS5jb25jYXQoT2JqZWN0LmVudHJpZXMob3ZlcnJpZGUgfHwgcHJlbG9hZGVkKSlcbiAgICB0aGlzLmxhbmdzID0gYWxsTGFuZ3MucmVkdWNlKChhY2MsIFtsb2NhbGUsIGxhbmddKSA9PiB7XG4gICAgICBhY2NbbG9jYWxlXSA9IHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKCdsb2NhbGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiAnXFxcXHsnLFxuICAgICAgJ30nOiAnXFxcXH0nLFxuICAgICAgJ3wnOiAnXFxcXHwnLFxuICAgIH1cblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKHN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgaWYgKGFyZ3MgJiYgdG9rZW5zKSB7XG4gICAgICBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmdzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKF90aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1trZXldIHx8ICcnKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZSgvXFxuXFxuL2csICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS5yZXBsYWNlKC8oXlxccyt8XFxzKyQpL2csICcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBpZiAoX3RoaXMubG9hZGVkLmluZGV4T2YobG9jYWxlKSAhPT0gLTEgJiYgdXNlQ2FjaGUpIHtcbiAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFuZ0ZpbGUgPSBbX3RoaXMuY29uZmlnLmxvY2F0aW9uLCBsb2NhbGUsIF90aGlzLmNvbmZpZy5leHRlbnNpb25dLmpvaW4oJycpXG4gICAgICAgIHJldHVybiBmZXRjaERhdGEobGFuZ0ZpbGUpXG4gICAgICAgICAgLnRoZW4obGFuZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICAgICAgICBfdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICAgICAgICAgIHJlc29sdmUobGFuZylcbiAgICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEkxOE4oKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJJMThOIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwicmVwbGFjZSIsImNvbmZpZyIsInByZWxvYWRlZCIsImFsbExhbmdzIiwiZW50cmllcyIsImNvbmNhdCIsInJlZHVjZSIsImFjYyIsImxhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsInByb2Nlc3NGaWxlIiwicHVzaCIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJyZXNwb25zZSIsImZyb21GaWxlIiwicmF3VGV4dCIsImxpbmVzIiwic3BsaXQiLCJtYXRjaGVzIiwiaSIsImV4ZWMiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJpbmRleE9mIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZW5kc1dpdGgiLCJlcnJvciIsImZldGNoRGF0YSIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRPQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBUVAsTUFBTUMsRUFLWCxXQUFBQyxDQUFZQyxFQUFVUixHQUNmUyxLQUFBTixNQUFlTyxPQUFBQyxPQUFPLE1BQzNCRixLQUFLRyxPQUFTLEdBQ2RILEtBQUtJLGNBQWNMLEVBQ3BCLENBTUQsYUFBQUssQ0FBY0wsR0FDTixNQUFBTixTQUFFQSxLQUFhWSxHQUFnQixJQUFLZCxLQUFtQlEsR0FDdkRPLEVBQWlCYixFQUFTYyxRQUFRLE9BQVEsS0FDaERQLEtBQUtRLE9BQVMsQ0FBRWYsU0FBVWEsS0FBbUJELEdBQzdDLE1BQU1ULFNBQUVBLEVBQVVhLFVBQUFBLEVBQVksQ0FBQSxHQUFPVCxLQUFLUSxPQUNwQ0UsRUFBV1QsT0FBT1UsUUFBUVgsS0FBS04sT0FBT2tCLE9BQU9YLE9BQU9VLFFBQVFmLEdBQVlhLElBQ3pFVCxLQUFBTixNQUFRZ0IsRUFBU0csUUFBTyxDQUFDQyxHQUFNbkIsRUFBUW9CLE1BQzFDRCxFQUFJbkIsR0FBVUssS0FBS2dCLGNBQWNyQixFQUFRb0IsR0FDbENELElBQ04sSUFDSGQsS0FBS0wsT0FBU0ssS0FBS1EsT0FBT2IsUUFBVUss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
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draggable/i18n",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "A simple yet robust i18n solution for universal JavaScript apps.",
5
5
  "main": "dist/i18n.es.min.js",
6
6
  "type": "module",