Socket
Socket
Sign inDemoInstall

angular-l10n

Package Overview
Dependencies
Maintainers
1
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-l10n - npm Package Compare versions

Comparing version 10.0.0 to 10.0.1

2

bundles/angular-l10n.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("angular-l10n",["exports","@angular/core","rxjs","rxjs/operators","@angular/router","@angular/common","@angular/forms"],e):e((t=t||self)["angular-l10n"]={},t.ng.core,t.rxjs,t.rxjs.operators,t.ng.router,t.ng.common,t.ng.forms)}(this,(function(t,e,r,n,a,o,i){"use strict";var u=new e.InjectionToken("L10N_CONFIG"),s=new e.InjectionToken("L10N_LOCALE"),l=function(t,e){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function c(t,e){function r(){this.constructor=t}l(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function p(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(t);a<n.length;a++)e.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(r[n[a]]=t[n[a]])}return r}function f(t,e,r,n){return new(r||(r=Promise))((function(a,o){function i(t){try{s(n.next(t))}catch(t){o(t)}}function u(t){try{s(n.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,u)}s((n=n.apply(t,e||[])).next())}))}function h(t,e){var r,n,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(a=2&o[0]?n.return:o[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;switch(n=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,n=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=e.call(t,i)}catch(t){o=[6,t],n=0}finally{r=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,u])}}}Object.create;function d(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,a,o=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(t){a={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function y(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(g(arguments[e]));return t}Object.create;function v(t,e){return"angular-l10n ("+t.name+"): "+e}function m(t){return new RegExp(/^([a-z]{2,3})(\-[A-Z][a-z]{3})?(\-[A-Z]{2})?(-u.+)?$/).test(t)}function b(t,e){if(null==t||""===t)return"";if(!m(t))throw v(b,"Invalid language");var r=g(t.match(/^([a-z]{2,3})(\-[A-Z][a-z]{3})?(\-[A-Z]{2})?/)||[],4),n=r[1],a=void 0===n?"":n,o=r[2],i=void 0===o?"":o,u=r[3],s=void 0===u?"":u;switch(e){case"language":return a;case"language-script":return a+i;case"language-region":return a+s;case"language-script-region":return a+i+s}}function L(t,e,r){return t.find((function(t){return b(t.locale.language,r)===e}))}function I(t,e,r){return e?r?t.split(r).reduce((function(t,e){return t&&t[e]||null}),e):e[t]:null}function x(t,e){return t.replace(/{{\s?([^{}\s]*)\s?}}/g,(function(t,r){var n=e[r];return void 0!==n?n:t}))}function P(t,e){var r=Object.assign({},t);return M(t)&&M(e)&&Object.keys(e).forEach((function(n){var a,o;M(e[n])?n in t?r[n]=P(t[n],e[n]):Object.assign(r,((a={})[n]=e[n],a)):Object.assign(r,((o={})[n]=e[n],o))})),r}function T(){return"object"==typeof Intl&&!!Intl}function j(){return T()&&Intl.hasOwnProperty("DateTimeFormat")}function D(){return T()&&Intl.hasOwnProperty("NumberFormat")}function w(){if(T()&&j()){try{new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles"}).format(new Date)}catch(t){return!1}return!0}return!1}function N(){return T()&&Intl.hasOwnProperty("RelativeTimeFormat")}function O(){return T()&&Intl.hasOwnProperty("Collator")}function A(){return T()&&Intl.hasOwnProperty("PluralRules")}function V(){return T()&&Intl.hasOwnProperty("ListFormat")}function R(t){return"string"!=typeof t||isNaN(+t-parseFloat(t))?t:+t}function S(t){if(_(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),!isNaN(t-parseFloat(t)))return new Date(parseFloat(t));if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var e=g(t.split("-").map((function(t){return+t})),3),r=e[0],n=e[1],a=e[2];return new Date(r,n-1,a)}var o=t.match(/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/);if(o)return function(t){var e=new Date(0),r=0,n=0,a=t[8]?e.setUTCFullYear:e.setFullYear,o=t[8]?e.setUTCHours:e.setHours;t[9]&&(r=Number(t[9]+t[10]),n=Number(t[9]+t[11]));a.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));var i=Number(t[4]||0)-r,u=Number(t[5]||0)-n,s=Number(t[6]||0),l=Math.round(1e3*parseFloat("0."+(t[7]||0)));return o.call(e,i,u,s,l),e}(o)}var i=new Date(t);if(!_(i))throw v(S,"Invalid date");return i}var C={full:{weekday:"long",year:"numeric",month:"long",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric"},medium:{year:"numeric",month:"short",day:"numeric"},short:{year:"2-digit",month:"numeric",day:"numeric"}},E={full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"long"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},short:{hour:"numeric",minute:"numeric"}};function F(t){var e=t.match(/^(\d+)?\.((\d+)(\-(\d+))?)?$/);if(null==e)throw v(F,"Invalid digits");return{minimumIntegerDigits:e[1]?parseInt(e[1]):void 0,minimumFractionDigits:e[3]?parseInt(e[3]):void 0,maximumFractionDigits:e[5]?parseInt(e[5]):void 0}}function M(t){return"object"==typeof t&&!Array.isArray(t)}function _(t){return t instanceof Date&&!isNaN(t.valueOf())}var k=function(){function t(){this.cache={}}return t.prototype.read=function(t,e){if(this.cache[t])return this.cache[t];var r=e.pipe(n.shareReplay(1));return this.cache[t]=r,r},t}();k.decorators=[{type:e.Injectable}];var H=function(){};H.decorators=[{type:e.Injectable}];var z=function(){function t(){}return t.prototype.read=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){return[2,Promise.resolve(null)]}))}))},t.prototype.write=function(t){return f(this,void 0,void 0,(function(){return h(this,(function(t){return[2]}))}))},t}();z.decorators=[{type:e.Injectable}];var Z=function(){};Z.decorators=[{type:e.Injectable}];var U=function(){function t(t){this.config=t}return t.prototype.get=function(){var t=null;if(void 0!==navigator&&navigator.language)switch(this.config.format){case"language":t=navigator.language.split("-")[0];break;case"language-region":t=navigator.language}return Promise.resolve(t)},t}();U.decorators=[{type:e.Injectable}],U.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]}]};var $=function(){};$.decorators=[{type:e.Injectable}];var q=function(){function t(){}return t.prototype.get=function(e,n){return n.asset[e]?r.of(n.asset[e]):r.throwError(v(t,"Asset not found"))},t}();q.decorators=[{type:e.Injectable}];var G=function(){};G.decorators=[{type:e.Injectable}];var B=function(){function t(t,e,r){this.config=t,this.cache=e,this.translationLoader=r}return t.prototype.get=function(t,e){var r,n,a=[],o=t.match(/-?[a-zA-z]+/g)||[],i="";try{for(var u=d(o),s=u.next();!s.done;s=u.next()){i+=s.value,this.config.cache?a.push(this.cache.read(e.name+"-"+i,this.translationLoader.get(i,e))):a.push(this.translationLoader.get(i,e))}}catch(t){r={error:t}}finally{try{s&&!s.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}return a},t}();B.decorators=[{type:e.Injectable}],B.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:k},{type:$}]};var Y=function(){};Y.decorators=[{type:e.Injectable}];var X=function(){function t(){}return t.prototype.parseValue=function(t,e,r){return e?x(r,e):r},t}();X.decorators=[{type:e.Injectable}];var J=function(){};J.decorators=[{type:e.Injectable}];var K=function(){function t(){}return t.prototype.handle=function(t){return t},t}();K.decorators=[{type:e.Injectable}];var Q=function(){function t(t,e,n,a,o,i,u,s,l){this.config=t,this.locale=e,this.cache=n,this.storage=a,this.userLanguage=o,this.translationFallback=i,this.translationLoader=u,this.translationHandler=s,this.missingTranslationHandler=l,this.data={},this.translation=new r.BehaviorSubject(this.locale),this.error=new r.BehaviorSubject(null)}return t.prototype.getLocale=function(){return this.locale},t.prototype.setLocale=function(t){return f(this,void 0,void 0,(function(){return h(this,(function(e){switch(e.label){case 0:return[4,this.loadTranslation(this.config.providers,t)];case 1:return e.sent(),[2]}}))}))},t.prototype.onChange=function(){return this.translation.asObservable()},t.prototype.onError=function(){return this.error.asObservable()},t.prototype.translate=function(t,e,r){var n,a;if(void 0===r&&(r=this.locale.language),r=b(r,this.config.format),Array.isArray(t)){var o={};try{for(var i=d(t),u=i.next();!u.done;u=i.next()){var s=u.value;o[s]=this.translate(s,e,r)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}return o}var l=I(t,this.data[r],this.config.keySeparator);return l?this.translationHandler.parseValue(t,e,l):this.missingTranslationHandler.handle(t)},t.prototype.has=function(t,e){return void 0===e&&(e=this.locale.language),e=b(e,this.config.format),null!==I(t,this.data[e],this.config.keySeparator)},t.prototype.getLanguageDirection=function(t){void 0===t&&(t=this.locale.language);var e=L(this.config.schema,t,this.config.format);if(e)return e.dir},t.prototype.getAvailableLanguages=function(){var t=this;return this.config.schema.map((function(e){return b(e.locale.language,t.config.format)}))},t.prototype.init=function(){return f(this,void 0,void 0,(function(){var t,e,r;return h(this,(function(n){switch(n.label){case 0:return this.locale.language?[2,Promise.resolve()]:[4,this.storage.read()];case 1:return null!=(t=n.sent())?[3,3]:[4,this.userLanguage.get()];case 2:(e=n.sent())&&(r=L(this.config.schema,e,this.config.format))&&(t=r.locale),n.label=3;case 3:return null==t&&(t=this.config.defaultLocale),[4,this.loadTranslation(this.config.providers,t)];case 4:return n.sent(),[2]}}))}))},t.prototype.loadTranslation=function(t,e){return void 0===t&&(t=this.config.providers),void 0===e&&(e=this.locale),f(this,void 0,void 0,(function(){var n,a=this;return h(this,(function(o){return t.forEach((function(t){a.config.providers.find((function(e){return e.name===t.name}))||a.config.providers.push(t)})),null==(n=b(e.language,this.config.format))||""===n?[2,Promise.resolve()]:[2,new Promise((function(o){r.concat.apply(void 0,y(a.getTranslation(t,n))).subscribe({next:function(t){return a.addData(t,n)},error:function(t){a.handleError(t),o()},complete:function(){a.releaseTranslation(e),o()}})}))]}))}))},t.prototype.addData=function(t,e){this.data[e]=void 0!==this.data[e]?P(this.data[e],t):t},t.prototype.getTranslation=function(t,e){var n,a,o=[],i=[];try{for(var u=d(t),s=u.next();!s.done;s=u.next()){var l=s.value;this.config.fallback?i=i.concat(this.translationFallback.get(e,l)):this.config.cache?o.push(this.cache.read(l.name+"-"+e,this.translationLoader.get(e,l))):o.push(this.translationLoader.get(e,l))}}catch(t){n={error:t}}finally{try{s&&!s.done&&(a=u.return)&&a.call(u)}finally{if(n)throw n.error}}return i.push(r.merge.apply(void 0,y(o))),i},t.prototype.handleError=function(t){this.error.next(t)},t.prototype.releaseTranslation=function(t){Object.assign(this.locale,t),this.translation.next(this.locale),this.storage.write(this.locale)},t}();Q.decorators=[{type:e.Injectable}],Q.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:k},{type:H},{type:Z},{type:G},{type:$},{type:Y},{type:J}]};var W=function(){function t(t,e){var r=this;this.translation=t,this.cdr=e,this.onChanges=this.translation.onChange().subscribe({next:function(){return r.cdr.markForCheck()}})}return t.prototype.ngOnDestroy=function(){this.onChanges&&this.onChanges.unsubscribe()},t}();function tt(t){return function(t){var e,r,n,a=[],o=0,i=1;a.push(t);for(;a.length>0&&o<=10;){if(n=a.splice(0,1)[0],void 0!==(c=n)&&3===c.nodeType&&null!=c.nodeValue&&""!==c.nodeValue.trim())return n;if(o<10&&n.childNodes)try{for(var u=(e=void 0,d(Array.from(n.childNodes))),s=u.next();!s.done;s=u.next()){var l=s.value;et(l)&&a.push(l)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(r=u.return)&&r.call(u)}finally{if(e)throw e.error}}0==--i&&(o++,i=a.length)}var c;return t}(t)}W.decorators=[{type:e.Injectable}],W.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef}]};function et(t){var e,r;if(void 0!==t&&1===t.nodeType&&t.attributes)try{for(var n=d(Array.from(t.attributes)),a=n.next();!a.done;a=n.next()){var o=a.value;if(o&&/^l10n|translate/.test(o.name))return!1}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return!0}var rt=function(){function t(t,e,n){this.el=t,this.renderer=e,this.translation=n,this.destroy=new r.Subject}return t.prototype.ngAfterViewInit=function(){this.el&&this.el.nativeElement&&(this.element=this.el.nativeElement,this.renderNode=tt(this.element),this.text=this.getText(),this.attributes=this.getAttributes(),this.addTextListener(),this.language?(this.replaceText(),this.replaceAttributes()):this.addTranslationListener())},t.prototype.ngOnChanges=function(){this.text&&(null!=this.nodeValue&&""!==this.nodeValue||(this.value?this.text=this.value:this.innerHTML&&(this.text=this.innerHTML)),this.replaceText()),this.attributes&&this.attributes.length>0&&this.replaceAttributes()},t.prototype.ngOnDestroy=function(){this.destroy.next(!0),this.removeTextListener()},t.prototype.getText=function(){var t="";return this.element.childNodes.length>0?t=this.getNodeValue():this.value?t=this.value:this.innerHTML&&(t=this.innerHTML),t},t.prototype.getNodeValue=function(){return this.nodeValue=null!=this.renderNode&&null!=this.renderNode.nodeValue?this.renderNode.nodeValue:"",this.nodeValue?this.nodeValue.trim():""},t.prototype.getAttributes=function(){var t,e,r=[];if(this.element.attributes){var n=function(t){if(t&&t.name){var e=g(t.name.match(/^l10n-(.+)$/)||[],2)[1],n=void 0===e?"":e;if(n){var o=Array.from(a.element.attributes).find((function(t){return t.name===n}));o&&r.push({name:o.name,value:o.value})}}},a=this;try{for(var o=d(Array.from(this.element.attributes)),i=o.next();!i.done;i=o.next()){n(i.value)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}}return r},t.prototype.addTextListener=function(){var t=this;"undefined"!=typeof MutationObserver&&(this.textObserver=new MutationObserver((function(){t.renderNode=tt(t.element),t.text=t.getText(),t.replaceText()})),this.textObserver.observe(this.renderNode,{subtree:!0,characterData:!0}))},t.prototype.removeTextListener=function(){void 0!==this.textObserver&&this.textObserver.disconnect()},t.prototype.addTranslationListener=function(){var t=this;this.translation.onChange().pipe(n.takeUntil(this.destroy)).subscribe({next:function(){t.replaceText(),t.replaceAttributes()}})},t.prototype.replaceText=function(){this.text&&this.setText(this.getValue(this.text))},t.prototype.replaceAttributes=function(){this.attributes.length>0&&this.setAttributes(this.getAttributesValues())},t.prototype.setText=function(t){t&&(this.nodeValue&&this.text?(this.removeTextListener(),this.renderer.setValue(this.renderNode,this.nodeValue.replace(this.text,t)),this.addTextListener()):this.value?this.renderer.setAttribute(this.element,"value",t):this.innerHTML&&this.renderer.setProperty(this.element,"innerHTML",t))},t.prototype.setAttributes=function(t){var e,r;try{for(var n=d(this.attributes),a=n.next();!a.done;a=n.next()){var o=a.value;this.renderer.setAttribute(this.element,o.name,t[o.value])}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}},t.prototype.getAttributesValues=function(){var t,e,r=this.attributes.map((function(t){return t.value})),n={};try{for(var a=d(r),o=a.next();!o.done;o=a.next()){var i=o.value;n[i]=this.getValue(i)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}return n},t}();rt.decorators=[{type:e.Directive}],rt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q}]},rt.propDecorators={value:[{type:e.Input}],innerHTML:[{type:e.Input}],language:[{type:e.Input}]};var nt=function(){function t(t){this.translation=t}return t.prototype.resolve=function(t,e){return f(this,void 0,void 0,(function(){return h(this,(function(e){switch(e.label){case 0:return[4,this.translation.init()];case 1:return e.sent(),[4,this.translation.loadTranslation(t.data.l10nProviders)];case 2:return e.sent(),[2]}}))}))},t}();nt.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new nt(e.ɵɵinject(Q))},token:nt,providedIn:"root"}),nt.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],nt.ctorParameters=function(){return[{type:Q}]};var at=function(){function t(t,e,r,n){this.config=t,this.locale=e,this.translation=r,this.injector=n}return Object.defineProperty(t.prototype,"router",{get:function(){return this.injector.get(a.Router)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"location",{get:function(){return this.injector.get(o.Location)},enumerable:!1,configurable:!0}),t.prototype.init=function(){return f(this,void 0,void 0,(function(){var t,e=this;return h(this,(function(r){switch(r.label){case 0:return this.router.events.pipe(n.filter((function(t){return t instanceof a.NavigationStart}))).subscribe({next:function(t){e.redirectToPath(t.url,"popstate"===t.navigationTrigger||1===t.id)}}),this.router.events.pipe(n.filter((function(t){return t instanceof a.NavigationEnd}))).subscribe({next:function(t){var r=t.url&&"/"!==t.url&&t.url===t.urlAfterRedirects?t.url:t.urlAfterRedirects;e.replacePath(e.locale,r)}}),this.translation.onChange().subscribe({next:function(t){return e.replacePath(t)}}),t=this.location.path(!0),[4,this.parsePath(t)];case 1:return r.sent(),[2]}}))}))},t.prototype.parsePath=function(t){return f(this,void 0,void 0,(function(){var e,r,n;return h(this,(function(a){switch(a.label){case 0:return t?null==(e=this.getLocalizedSegment(t))?[3,2]:(r=e.replace(/\//g,""),(n=L(this.config.schema,r,this.config.format))?[4,this.translation.setLocale(n.locale)]:[3,2]):[2,Promise.resolve()];case 1:a.sent(),a.label=2;case 2:return[2]}}))}))},t.prototype.redirectToPath=function(t,e){var r=this.getLocalizedSegment(t);if(null!=r){var n=t.replace(r,"/");this.router.navigateByUrl(n,{skipLocationChange:e})}},t.prototype.replacePath=function(t,e){if(""!==t.language){var r=b(t.language,this.config.format);if(e)this.isDefaultRouting()||this.location.replaceState(this.getLocalizedPath(r,e));else{e=this.location.path(!0);var n=this.getLocalizedSegment(e);null!=n&&(e=e.replace(n,"/"),this.isDefaultRouting()&&this.location.replaceState(e)),this.isDefaultRouting()||this.location.replaceState(this.getLocalizedPath(r,e))}}},t.prototype.getLocalizedSegment=function(t){var e,r;try{for(var n=d(this.config.schema),a=n.next();!a.done;a=n.next()){var o=b(a.value.locale.language,this.config.format),i=new RegExp("(/"+o+"/)|(/"+o+"$)"),u=t.match(i);if(null!=u)return u[0]}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return null},t.prototype.getLocalizedPath=function(t,e){var r=this.getLocalizedSegment(e);return null!=r&&r.includes(t)?e:o.Location.stripTrailingSlash("/"+t+e)},t.prototype.isDefaultRouting=function(){return!!this.config.defaultRouting&&b(this.locale.language,this.config.format)===b(this.config.defaultLocale.language,this.config.format)},t}();at.decorators=[{type:e.Injectable}],at.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:Q},{type:e.Injector}]};var ot=function(){};ot.decorators=[{type:e.Injectable}];var it=function(){function t(t){this.translation=t}return t.prototype.init=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){switch(t.label){case 0:return[4,this.translation.init()];case 1:return t.sent(),[2]}}))}))},t}();it.decorators=[{type:e.Injectable}],it.ctorParameters=function(){return[{type:Q}]};var ut=function(){function t(t,e){this.routing=t,this.translation=e}return t.prototype.init=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){switch(t.label){case 0:return[4,this.routing.init()];case 1:return t.sent(),[4,this.translation.init()];case 2:return t.sent(),[2]}}))}))},t}();ut.decorators=[{type:e.Injectable}],ut.ctorParameters=function(){return[{type:at},{type:Q}]};var st=function(){function t(t){this.translation=t}return t.prototype.transform=function(t,e,r){return null==t||""===t?null:this.translation.translate(t,r,e)},t}();st.decorators=[{type:e.Pipe,args:[{name:"translate",pure:!0}]}],st.ctorParameters=function(){return[{type:Q}]};var lt=function(t){function e(e,r){var n=t.call(this,e,r)||this;return n.translation=e,n.cdr=r,n}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.translation.translate(t,e,r)},e}(W);lt.decorators=[{type:e.Pipe,args:[{name:"translateAsync",pure:!1}]}],lt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef}]};var ct=function(t){function e(e,r,n){var a=t.call(this,e,r,n)||this;return a.el=e,a.renderer=r,a.translation=n,a}return c(e,t),Object.defineProperty(e.prototype,"l10nTranslate",{set:function(t){this.params=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"translate",{set:function(t){this.params=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.translation.translate(t,this.params,this.language)},e}(rt);ct.decorators=[{type:e.Directive,args:[{selector:"[l10nTranslate],[translate]"}]}],ct.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q}]},ct.propDecorators={l10nTranslate:[{type:e.Input}],translate:[{type:e.Input}],params:[{type:e.Input}]};var pt=function(){function t(){}return t.forRoot=function(e,r){return void 0===r&&(r={}),{ngModule:t,providers:[Q,k,{provide:u,useValue:e},{provide:s,useValue:{language:""}},{provide:H,useClass:r.storage||z},{provide:Z,useClass:r.userLanguage||U},{provide:G,useClass:r.translationFallback||B},{provide:$,useClass:r.translationLoader||q},{provide:Y,useClass:r.translationHandler||X},{provide:J,useClass:r.missingTranslationHandler||K},{provide:ot,useClass:it}]}},t}();pt.decorators=[{type:e.NgModule,args:[{declarations:[st,lt,ct],exports:[st,lt,ct]}]}];var ft=function(){function t(t,e){this.locale=t,this.translation=e}return t.prototype.formatDate=function(t,e,r,n){if(void 0===r&&(r=this.locale.dateLanguage||this.locale.language),void 0===n&&(n=this.locale.timeZone),!j()||null==r||""===r)return t;t=S(t);var a={};if(e&&e){var o=e.dateStyle,i=e.timeStyle,u=p(e,["dateStyle","timeStyle"]);o&&(a=Object.assign(Object.assign({},a),C[o])),i&&(a=Object.assign(Object.assign({},a),E[i])),a=Object.assign(Object.assign({},a),u)}return w()&&n&&(a.timeZone=n),new Intl.DateTimeFormat(r,a).format(t)},t.prototype.formatNumber=function(t,e,r,n){if(void 0===r&&(r=this.locale.numberLanguage||this.locale.language),void 0===n&&(n=this.locale.currency),!D()&&e&&"currency"===e.style)return t+" "+n;if(!D()||null==r||""===r)return t;t=R(t);var a={};if(e){var o=e.digits,i=p(e,["digits"]);o&&(a=Object.assign(Object.assign({},a),F(o))),a=Object.assign(Object.assign({},a),i)}return n&&(a.currency=n),new Intl.NumberFormat(r,a).format(t)},t.prototype.formatRelativeTime=function(t,e,r,n){return void 0===n&&(n=this.locale.dateLanguage||this.locale.language),N()&&null!=n&&""!==n?(t=R(t),new Intl.RelativeTimeFormat(n,r).format(t,e)):t},t.prototype.getCurrencySymbol=function(t){void 0===t&&(t=this.locale);var e=t.currency;if(D()){var r=this.formatNumber(0,{digits:"1.0-0"},t.numberLanguage||t.language);e=(e=this.formatNumber(0,{digits:"1.0-0",style:"currency",currencyDisplay:"symbol"},t.numberLanguage||t.language,t.currency).replace(r,"")).trim()}return e},t.prototype.compare=function(t,e,r,n){if(void 0===n&&(n=this.locale.language),!O()||null==n||""===n)return 0;var a=this.translation.translate(t),o=this.translation.translate(e);return new Intl.Collator(n,r).compare(a,o)},t.prototype.plural=function(t,e,r){if(void 0===r&&(r=this.locale.language),!A()||null==r||""===r)return t.toString();var n=new Intl.PluralRules(r,e).select(t);return this.translation.has(n)?this.translation.translate(n):n},t.prototype.list=function(t,e,r){var n=this;void 0===r&&(r=this.locale.language);var a=t.map((function(t){return n.translation.translate(t)}));return V()&&null!=r&&""!==r?new Intl.ListFormat(r,e).format(a):a.toString()},t}();ft.decorators=[{type:e.Injectable}],ft.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:Q}]};var ht=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatDate(t,r,e,n)},t}();ht.decorators=[{type:e.Pipe,args:[{name:"l10nDate",pure:!0}]}],ht.ctorParameters=function(){return[{type:ft}]};var dt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.intl.formatDate(t,e,r)},e}(W);dt.decorators=[{type:e.Pipe,args:[{name:"l10nDateAsync",pure:!1}]}],dt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var gt=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatNumber(t,r,e,n)},t}();gt.decorators=[{type:e.Pipe,args:[{name:"l10nNumber",pure:!0}]}],gt.ctorParameters=function(){return[{type:ft}]};var yt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.intl.formatNumber(t,e,r)},e}(W);yt.decorators=[{type:e.Pipe,args:[{name:"l10nNumberAsync",pure:!1}]}],yt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var vt=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatRelativeTime(t,r,n,e)},t}();vt.decorators=[{type:e.Pipe,args:[{name:"l10nTimeAgo",pure:!0}]}],vt.ctorParameters=function(){return[{type:ft}]};var mt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatRelativeTime(t,e,r,n)},e}(W);mt.decorators=[{type:e.Pipe,args:[{name:"l10nTimeAgoAsync",pure:!1}]}],mt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var bt=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nDate",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatDate(t,this.options,this.language)},e}(rt);bt.decorators=[{type:e.Directive,args:[{selector:"[l10nDate]"}]}],bt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},bt.propDecorators={l10nDate:[{type:e.Input}],options:[{type:e.Input}]};var Lt=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nNumber",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatNumber(t,this.options,this.language)},e}(rt);Lt.decorators=[{type:e.Directive,args:[{selector:"[l10nNumber]"}]}],Lt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},Lt.propDecorators={l10nNumber:[{type:e.Input}],options:[{type:e.Input}]};var It=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nTimeAgo",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatRelativeTime(t,this.unit,this.options,this.language)},e}(rt);It.decorators=[{type:e.Directive,args:[{selector:"[l10nTimeAgo]"}]}],It.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},It.propDecorators={l10nTimeAgo:[{type:e.Input}],unit:[{type:e.Input}],options:[{type:e.Input}]};var xt=function(){};xt.decorators=[{type:e.NgModule,args:[{declarations:[ht,gt,vt,dt,yt,mt,bt,Lt,It],exports:[ht,gt,vt,dt,yt,mt,bt,Lt,It],providers:[ft]}]}];var Pt=function(){};Pt.decorators=[{type:e.Injectable}];var Tt=function(){function t(t){this.locale=t}return t.prototype.parseNumber=function(t,e,r){return void 0===r&&(r=this.locale.numberLanguage||this.locale.language),null},t.prototype.parseDate=function(t,e,r){return void 0===r&&(r=this.locale.dateLanguage||this.locale.language),null},t}();function jt(t,e,r,n,a){void 0===r&&(r=Number.MIN_VALUE),void 0===n&&(n=Number.MAX_VALUE);return function(o){if(""===o.value||null==o.value)return null;var i=t.parseNumber(o.value,e,a);return null!=i?i<r?{minValue:!0}:i>n?{maxValue:!0}:null:{format:!0}}}Tt.decorators=[{type:e.Injectable}],Tt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[s]}]}]};var Dt=function(){function t(t){this.validation=t}return Object.defineProperty(t.prototype,"l10nValidateNumber",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.validator=jt(this.validation,this.options,this.minValue,this.maxValue,this.language)},t.prototype.ngOnChanges=function(){this.validator=jt(this.validation,this.options,this.minValue,this.maxValue,this.language)},t.prototype.validate=function(t){return this.validator(t)},t}();function wt(t,e,r,n,a){return function(o){if(""===o.value||null==o.value)return null;var i=t.parseDate(o.value,e,a);return null!=i?r&&i<r?{mindate:!0}:n&&i>n?{maxDate:!0}:null:{format:!0}}}Dt.decorators=[{type:e.Directive,args:[{selector:"[l10nValidateNumber][ngModel],[l10nValidateNumber][formControl],[l10nValidateNumber][formControlName]",providers:[{provide:i.NG_VALIDATORS,useExisting:e.forwardRef((function(){return Dt})),multi:!0}]}]}],Dt.ctorParameters=function(){return[{type:Pt}]},Dt.propDecorators={l10nValidateNumber:[{type:e.Input}],options:[{type:e.Input}],minValue:[{type:e.Input}],maxValue:[{type:e.Input}],language:[{type:e.Input}]};var Nt=function(){function t(t){this.validation=t}return Object.defineProperty(t.prototype,"l10nValidateDate",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.validator=wt(this.validation,this.options,this.minDate,this.maxDate,this.language)},t.prototype.ngOnChanges=function(){this.validator=wt(this.validation,this.options,this.minDate,this.maxDate,this.language)},t.prototype.validate=function(t){return this.validator(t)},t}();Nt.decorators=[{type:e.Directive,args:[{selector:"[l10nValidateDate][ngModel],[l10nValidateDate][formControl],[l10nValidateDate][formControlName]",providers:[{provide:i.NG_VALIDATORS,useExisting:e.forwardRef((function(){return Nt})),multi:!0}]}]}],Nt.ctorParameters=function(){return[{type:Pt}]},Nt.propDecorators={l10nValidateDate:[{type:e.Input}],options:[{type:e.Input}],minDate:[{type:e.Input}],maxDate:[{type:e.Input}],language:[{type:e.Input}]};var Ot=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:Pt,useClass:e.validation||Tt}]}},t}();Ot.decorators=[{type:e.NgModule,args:[{declarations:[Dt,Nt],exports:[Dt,Nt]}]}];var At=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[at,{provide:ot,useClass:ut}]}},t}();At.decorators=[{type:e.NgModule,args:[{}]}],t.L10N_CONFIG=u,t.L10N_LOCALE=s,t.L10nAsyncPipe=W,t.L10nCache=k,t.L10nDateAsyncPipe=dt,t.L10nDateDirective=bt,t.L10nDatePipe=ht,t.L10nDirective=rt,t.L10nIntlModule=xt,t.L10nIntlService=ft,t.L10nLoader=ot,t.L10nMissingTranslationHandler=J,t.L10nNumberAsyncPipe=yt,t.L10nNumberDirective=Lt,t.L10nNumberPipe=gt,t.L10nResolver=nt,t.L10nRoutingModule=At,t.L10nRoutingService=at,t.L10nStorage=H,t.L10nTimeAgoAsyncPipe=mt,t.L10nTimeAgoDirective=It,t.L10nTimeAgoPipe=vt,t.L10nTranslateAsyncPipe=lt,t.L10nTranslateDirective=ct,t.L10nTranslatePipe=st,t.L10nTranslationFallback=G,t.L10nTranslationHandler=Y,t.L10nTranslationLoader=$,t.L10nTranslationModule=pt,t.L10nTranslationService=Q,t.L10nUserLanguage=Z,t.L10nValidateDateDirective=Nt,t.L10nValidateNumberDirective=Dt,t.L10nValidation=Pt,t.L10nValidationModule=Ot,t.PARSE_DATE_STYLE=C,t.PARSE_TIME_STYLE=E,t.formatLanguage=b,t.getBrowserLanguage=function(){var t=null;return void 0!==navigator&&navigator.language&&(t=navigator.language.split("-")[0]),t},t.getSchema=L,t.getValue=I,t.handleParams=x,t.hasCollator=O,t.hasDateTimeFormat=j,t.hasIntl=T,t.hasListFormat=V,t.hasNumberFormat=D,t.hasPluralRules=A,t.hasRelativeTimeFormat=N,t.hasTimeZone=w,t.l10nValidateDate=wt,t.l10nValidateNumber=jt,t.mergeDeep=P,t.parseDigits=F,t.parseLanguage=function t(e){var r=e.match(/^([a-z]{2,3})(\-([A-Z][a-z]{3}))?(\-([A-Z]{2}))?(-u.+)?$/);if(null==r)throw v(t,"Invalid language");return{language:r[1],script:r[3],region:r[5],extension:r[6]}},t.toDate=S,t.toNumber=R,t.validateLanguage=m,t.ɵa=z,t.ɵb=U,t.ɵc=B,t.ɵd=q,t.ɵe=X,t.ɵf=K,t.ɵg=it,t.ɵh=ut,t.ɵi=Tt,Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("angular-l10n",["exports","@angular/core","rxjs","rxjs/operators","@angular/router","@angular/common","@angular/forms"],e):e((t=t||self)["angular-l10n"]={},t.ng.core,t.rxjs,t.rxjs.operators,t.ng.router,t.ng.common,t.ng.forms)}(this,(function(t,e,r,n,a,o,i){"use strict";var u=new e.InjectionToken("L10N_CONFIG"),s=new e.InjectionToken("L10N_LOCALE"),l=function(t,e){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function c(t,e){function r(){this.constructor=t}l(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function p(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(t);a<n.length;a++)e.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(r[n[a]]=t[n[a]])}return r}function f(t,e,r,n){return new(r||(r=Promise))((function(a,o){function i(t){try{s(n.next(t))}catch(t){o(t)}}function u(t){try{s(n.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,u)}s((n=n.apply(t,e||[])).next())}))}function h(t,e){var r,n,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(a=2&o[0]?n.return:o[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;switch(n=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,n=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=e.call(t,i)}catch(t){o=[6,t],n=0}finally{r=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,u])}}}Object.create;function d(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,a,o=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(t){a={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function y(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(g(arguments[e]));return t}Object.create;function v(t,e){return"angular-l10n ("+t.name+"): "+e}function m(t){return new RegExp(/^([a-z]{2,3})(\-[A-Z][a-z]{3})?(\-[A-Z]{2})?(-u.+)?$/).test(t)}function b(t,e){if(null==t||""===t)return"";if(!m(t))throw v(b,"Invalid language");var r=g(t.match(/^([a-z]{2,3})(\-[A-Z][a-z]{3})?(\-[A-Z]{2})?/)||[],4),n=r[1],a=void 0===n?"":n,o=r[2],i=void 0===o?"":o,u=r[3],s=void 0===u?"":u;switch(e){case"language":return a;case"language-script":return a+i;case"language-region":return a+s;case"language-script-region":return a+i+s}}function L(t,e,r){return t.find((function(t){return b(t.locale.language,r)===e}))}function I(t,e,r){return e?r?t.split(r).reduce((function(t,e){return t&&t[e]||null}),e):e[t]:null}function x(t,e){return t.replace(/{{\s?([^{}\s]*)\s?}}/g,(function(t,r){var n=e[r];return void 0!==n?n:t}))}function P(t,e){var r=Object.assign({},t);return M(t)&&M(e)&&Object.keys(e).forEach((function(n){var a,o;M(e[n])?n in t?r[n]=P(t[n],e[n]):Object.assign(r,((a={})[n]=e[n],a)):Object.assign(r,((o={})[n]=e[n],o))})),r}function T(){return"object"==typeof Intl&&!!Intl}function j(){return T()&&Intl.hasOwnProperty("DateTimeFormat")}function D(){return T()&&Intl.hasOwnProperty("NumberFormat")}function w(){if(T()&&j()){try{new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles"}).format(new Date)}catch(t){return!1}return!0}return!1}function N(){return T()&&Intl.hasOwnProperty("RelativeTimeFormat")}function O(){return T()&&Intl.hasOwnProperty("Collator")}function A(){return T()&&Intl.hasOwnProperty("PluralRules")}function V(){return T()&&Intl.hasOwnProperty("ListFormat")}function R(t){return"string"!=typeof t||isNaN(+t-parseFloat(t))?t:+t}function S(t){if(_(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),!isNaN(t-parseFloat(t)))return new Date(parseFloat(t));if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var e=g(t.split("-").map((function(t){return+t})),3),r=e[0],n=e[1],a=e[2];return new Date(r,n-1,a)}var o=t.match(/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/);if(o)return function(t){var e=new Date(0),r=0,n=0,a=t[8]?e.setUTCFullYear:e.setFullYear,o=t[8]?e.setUTCHours:e.setHours;t[9]&&(r=Number(t[9]+t[10]),n=Number(t[9]+t[11]));a.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));var i=Number(t[4]||0)-r,u=Number(t[5]||0)-n,s=Number(t[6]||0),l=Math.round(1e3*parseFloat("0."+(t[7]||0)));return o.call(e,i,u,s,l),e}(o)}var i=new Date(t);if(!_(i))throw v(S,"Invalid date");return i}var C={full:{weekday:"long",year:"numeric",month:"long",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric"},medium:{year:"numeric",month:"short",day:"numeric"},short:{year:"2-digit",month:"numeric",day:"numeric"}},E={full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"long"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},short:{hour:"numeric",minute:"numeric"}};function F(t){var e=t.match(/^(\d+)?\.((\d+)(\-(\d+))?)?$/);if(null==e)throw v(F,"Invalid digits");return{minimumIntegerDigits:e[1]?parseInt(e[1]):void 0,minimumFractionDigits:e[3]?parseInt(e[3]):void 0,maximumFractionDigits:e[5]?parseInt(e[5]):void 0}}function M(t){return"object"==typeof t&&!Array.isArray(t)}function _(t){return t instanceof Date&&!isNaN(t.valueOf())}var k=function(){function t(){this.cache={}}return t.prototype.read=function(t,e){if(this.cache[t])return this.cache[t];var r=e.pipe(n.shareReplay(1));return this.cache[t]=r,r},t}();k.decorators=[{type:e.Injectable}];var H=function(){};H.decorators=[{type:e.Injectable}];var z=function(){function t(){}return t.prototype.read=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){return[2,Promise.resolve(null)]}))}))},t.prototype.write=function(t){return f(this,void 0,void 0,(function(){return h(this,(function(t){return[2]}))}))},t}();z.decorators=[{type:e.Injectable}];var Z=function(){};Z.decorators=[{type:e.Injectable}];var U=function(){function t(t){this.config=t}return t.prototype.get=function(){var t=null;if("undefined"!=typeof navigator&&navigator.language)switch(this.config.format){case"language":t=navigator.language.split("-")[0];break;case"language-region":t=navigator.language}return Promise.resolve(t)},t}();U.decorators=[{type:e.Injectable}],U.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]}]};var $=function(){};$.decorators=[{type:e.Injectable}];var q=function(){function t(){}return t.prototype.get=function(e,n){return n.asset[e]?r.of(n.asset[e]):r.throwError(v(t,"Asset not found"))},t}();q.decorators=[{type:e.Injectable}];var G=function(){};G.decorators=[{type:e.Injectable}];var B=function(){function t(t,e,r){this.config=t,this.cache=e,this.translationLoader=r}return t.prototype.get=function(t,e){var r,n,a=[],o=t.match(/-?[a-zA-z]+/g)||[],i="";try{for(var u=d(o),s=u.next();!s.done;s=u.next()){i+=s.value,this.config.cache?a.push(this.cache.read(e.name+"-"+i,this.translationLoader.get(i,e))):a.push(this.translationLoader.get(i,e))}}catch(t){r={error:t}}finally{try{s&&!s.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}return a},t}();B.decorators=[{type:e.Injectable}],B.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:k},{type:$}]};var Y=function(){};Y.decorators=[{type:e.Injectable}];var X=function(){function t(){}return t.prototype.parseValue=function(t,e,r){return e?x(r,e):r},t}();X.decorators=[{type:e.Injectable}];var J=function(){};J.decorators=[{type:e.Injectable}];var K=function(){function t(){}return t.prototype.handle=function(t){return t},t}();K.decorators=[{type:e.Injectable}];var Q=function(){function t(t,e,n,a,o,i,u,s,l){this.config=t,this.locale=e,this.cache=n,this.storage=a,this.userLanguage=o,this.translationFallback=i,this.translationLoader=u,this.translationHandler=s,this.missingTranslationHandler=l,this.data={},this.translation=new r.BehaviorSubject(this.locale),this.error=new r.BehaviorSubject(null)}return t.prototype.getLocale=function(){return this.locale},t.prototype.setLocale=function(t){return f(this,void 0,void 0,(function(){return h(this,(function(e){switch(e.label){case 0:return[4,this.loadTranslation(this.config.providers,t)];case 1:return e.sent(),[2]}}))}))},t.prototype.onChange=function(){return this.translation.asObservable()},t.prototype.onError=function(){return this.error.asObservable()},t.prototype.translate=function(t,e,r){var n,a;if(void 0===r&&(r=this.locale.language),r=b(r,this.config.format),Array.isArray(t)){var o={};try{for(var i=d(t),u=i.next();!u.done;u=i.next()){var s=u.value;o[s]=this.translate(s,e,r)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}return o}var l=I(t,this.data[r],this.config.keySeparator);return l?this.translationHandler.parseValue(t,e,l):this.missingTranslationHandler.handle(t)},t.prototype.has=function(t,e){return void 0===e&&(e=this.locale.language),e=b(e,this.config.format),null!==I(t,this.data[e],this.config.keySeparator)},t.prototype.getLanguageDirection=function(t){void 0===t&&(t=this.locale.language);var e=L(this.config.schema,t,this.config.format);if(e)return e.dir},t.prototype.getAvailableLanguages=function(){var t=this;return this.config.schema.map((function(e){return b(e.locale.language,t.config.format)}))},t.prototype.init=function(){return f(this,void 0,void 0,(function(){var t,e,r;return h(this,(function(n){switch(n.label){case 0:return null!=(t=this.locale.language?this.locale:null)?[3,2]:[4,this.storage.read()];case 1:t=n.sent(),n.label=2;case 2:return null!=t?[3,4]:[4,this.userLanguage.get()];case 3:(e=n.sent())&&(r=L(this.config.schema,e,this.config.format))&&(t=r.locale),n.label=4;case 4:return null==t&&(t=this.config.defaultLocale),[4,this.loadTranslation(this.config.providers,t)];case 5:return n.sent(),[2]}}))}))},t.prototype.loadTranslation=function(t,e){return void 0===t&&(t=this.config.providers),void 0===e&&(e=this.locale),f(this,void 0,void 0,(function(){var n,a=this;return h(this,(function(o){return t.forEach((function(t){a.config.providers.find((function(e){return e.name===t.name}))||a.config.providers.push(t)})),null==(n=b(e.language,this.config.format))||""===n?[2,Promise.resolve()]:[2,new Promise((function(o){r.concat.apply(void 0,y(a.getTranslation(t,n))).subscribe({next:function(t){return a.addData(t,n)},error:function(t){a.handleError(t),o()},complete:function(){a.releaseTranslation(e),o()}})}))]}))}))},t.prototype.addData=function(t,e){this.data[e]=void 0!==this.data[e]?P(this.data[e],t):t},t.prototype.getTranslation=function(t,e){var n,a,o=[],i=[];try{for(var u=d(t),s=u.next();!s.done;s=u.next()){var l=s.value;this.config.fallback?i=i.concat(this.translationFallback.get(e,l)):this.config.cache?o.push(this.cache.read(l.name+"-"+e,this.translationLoader.get(e,l))):o.push(this.translationLoader.get(e,l))}}catch(t){n={error:t}}finally{try{s&&!s.done&&(a=u.return)&&a.call(u)}finally{if(n)throw n.error}}return i.push(r.merge.apply(void 0,y(o))),i},t.prototype.handleError=function(t){this.error.next(t)},t.prototype.releaseTranslation=function(t){Object.assign(this.locale,t),this.translation.next(this.locale),this.storage.write(this.locale)},t}();Q.decorators=[{type:e.Injectable}],Q.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:k},{type:H},{type:Z},{type:G},{type:$},{type:Y},{type:J}]};var W=function(){function t(t,e){var r=this;this.translation=t,this.cdr=e,this.onChanges=this.translation.onChange().subscribe({next:function(){return r.cdr.markForCheck()}})}return t.prototype.ngOnDestroy=function(){this.onChanges&&this.onChanges.unsubscribe()},t}();function tt(t){return function(t){var e,r,n,a=[],o=0,i=1;a.push(t);for(;a.length>0&&o<=10;){if(n=a.splice(0,1)[0],void 0!==(c=n)&&3===c.nodeType&&null!=c.nodeValue&&""!==c.nodeValue.trim())return n;if(o<10&&n.childNodes)try{for(var u=(e=void 0,d(Array.from(n.childNodes))),s=u.next();!s.done;s=u.next()){var l=s.value;et(l)&&a.push(l)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(r=u.return)&&r.call(u)}finally{if(e)throw e.error}}0==--i&&(o++,i=a.length)}var c;return t}(t)}W.decorators=[{type:e.Injectable}],W.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef}]};function et(t){var e,r;if(void 0!==t&&1===t.nodeType&&t.attributes)try{for(var n=d(Array.from(t.attributes)),a=n.next();!a.done;a=n.next()){var o=a.value;if(o&&/^l10n|translate/.test(o.name))return!1}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return!0}var rt=function(){function t(t,e,n){this.el=t,this.renderer=e,this.translation=n,this.destroy=new r.Subject}return t.prototype.ngAfterViewInit=function(){this.el&&this.el.nativeElement&&(this.element=this.el.nativeElement,this.renderNode=tt(this.element),this.text=this.getText(),this.attributes=this.getAttributes(),this.addTextListener(),this.language?(this.replaceText(),this.replaceAttributes()):this.addTranslationListener())},t.prototype.ngOnChanges=function(){this.text&&(null!=this.nodeValue&&""!==this.nodeValue||(this.value?this.text=this.value:this.innerHTML&&(this.text=this.innerHTML)),this.replaceText()),this.attributes&&this.attributes.length>0&&this.replaceAttributes()},t.prototype.ngOnDestroy=function(){this.destroy.next(!0),this.removeTextListener()},t.prototype.getText=function(){var t="";return this.element.childNodes.length>0?t=this.getNodeValue():this.value?t=this.value:this.innerHTML&&(t=this.innerHTML),t},t.prototype.getNodeValue=function(){return this.nodeValue=null!=this.renderNode&&null!=this.renderNode.nodeValue?this.renderNode.nodeValue:"",this.nodeValue?this.nodeValue.trim():""},t.prototype.getAttributes=function(){var t,e,r=[];if(this.element.attributes){var n=function(t){if(t&&t.name){var e=g(t.name.match(/^l10n-(.+)$/)||[],2)[1],n=void 0===e?"":e;if(n){var o=Array.from(a.element.attributes).find((function(t){return t.name===n}));o&&r.push({name:o.name,value:o.value})}}},a=this;try{for(var o=d(Array.from(this.element.attributes)),i=o.next();!i.done;i=o.next()){n(i.value)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}}return r},t.prototype.addTextListener=function(){var t=this;"undefined"!=typeof MutationObserver&&(this.textObserver=new MutationObserver((function(){t.renderNode=tt(t.element),t.text=t.getText(),t.replaceText()})),this.textObserver.observe(this.renderNode,{subtree:!0,characterData:!0}))},t.prototype.removeTextListener=function(){void 0!==this.textObserver&&this.textObserver.disconnect()},t.prototype.addTranslationListener=function(){var t=this;this.translation.onChange().pipe(n.takeUntil(this.destroy)).subscribe({next:function(){t.replaceText(),t.replaceAttributes()}})},t.prototype.replaceText=function(){this.text&&this.setText(this.getValue(this.text))},t.prototype.replaceAttributes=function(){this.attributes.length>0&&this.setAttributes(this.getAttributesValues())},t.prototype.setText=function(t){t&&(this.nodeValue&&this.text?(this.removeTextListener(),this.renderer.setValue(this.renderNode,this.nodeValue.replace(this.text,t)),this.addTextListener()):this.value?this.renderer.setAttribute(this.element,"value",t):this.innerHTML&&this.renderer.setProperty(this.element,"innerHTML",t))},t.prototype.setAttributes=function(t){var e,r;try{for(var n=d(this.attributes),a=n.next();!a.done;a=n.next()){var o=a.value;this.renderer.setAttribute(this.element,o.name,t[o.value])}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}},t.prototype.getAttributesValues=function(){var t,e,r=this.attributes.map((function(t){return t.value})),n={};try{for(var a=d(r),o=a.next();!o.done;o=a.next()){var i=o.value;n[i]=this.getValue(i)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}return n},t}();rt.decorators=[{type:e.Directive}],rt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q}]},rt.propDecorators={value:[{type:e.Input}],innerHTML:[{type:e.Input}],language:[{type:e.Input}]};var nt=function(){function t(t){this.translation=t}return t.prototype.resolve=function(t,e){return f(this,void 0,void 0,(function(){return h(this,(function(e){switch(e.label){case 0:return[4,this.translation.loadTranslation(t.data.l10nProviders)];case 1:return e.sent(),[2]}}))}))},t}();nt.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new nt(e.ɵɵinject(Q))},token:nt,providedIn:"root"}),nt.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],nt.ctorParameters=function(){return[{type:Q}]};var at=function(){function t(t,e,r,n){this.config=t,this.locale=e,this.translation=r,this.injector=n}return Object.defineProperty(t.prototype,"router",{get:function(){return this.injector.get(a.Router)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"location",{get:function(){return this.injector.get(o.Location)},enumerable:!1,configurable:!0}),t.prototype.init=function(){return f(this,void 0,void 0,(function(){var t,e=this;return h(this,(function(r){switch(r.label){case 0:return this.router.events.pipe(n.filter((function(t){return t instanceof a.NavigationStart}))).subscribe({next:function(t){e.redirectToPath(t.url,"popstate"===t.navigationTrigger||1===t.id)}}),this.router.events.pipe(n.filter((function(t){return t instanceof a.NavigationEnd}))).subscribe({next:function(t){var r=t.url&&"/"!==t.url&&t.url===t.urlAfterRedirects?t.url:t.urlAfterRedirects;e.replacePath(e.locale,r)}}),this.translation.onChange().subscribe({next:function(t){return e.replacePath(t)}}),t=this.location.path(!0),[4,this.parsePath(t)];case 1:return r.sent(),[2]}}))}))},t.prototype.parsePath=function(t){return f(this,void 0,void 0,(function(){var e,r,n;return h(this,(function(a){switch(a.label){case 0:return t?null==(e=this.getLocalizedSegment(t))?[3,2]:(r=e.replace(/\//g,""),(n=L(this.config.schema,r,this.config.format))?[4,this.translation.setLocale(n.locale)]:[3,2]):[2,Promise.resolve()];case 1:a.sent(),a.label=2;case 2:return[2]}}))}))},t.prototype.redirectToPath=function(t,e){var r=this.getLocalizedSegment(t);if(null!=r){var n=t.replace(r,"/");this.router.navigateByUrl(n,{skipLocationChange:e})}},t.prototype.replacePath=function(t,e){if(""!==t.language){var r=b(t.language,this.config.format);if(e)this.isDefaultRouting()||this.location.replaceState(this.getLocalizedPath(r,e));else{e=this.location.path(!0);var n=this.getLocalizedSegment(e);null!=n&&(e=e.replace(n,"/"),this.isDefaultRouting()&&this.location.replaceState(e)),this.isDefaultRouting()||this.location.replaceState(this.getLocalizedPath(r,e))}}},t.prototype.getLocalizedSegment=function(t){var e,r;try{for(var n=d(this.config.schema),a=n.next();!a.done;a=n.next()){var o=b(a.value.locale.language,this.config.format),i=new RegExp("(/"+o+"/)|(/"+o+"$)"),u=t.match(i);if(null!=u)return u[0]}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return null},t.prototype.getLocalizedPath=function(t,e){var r=this.getLocalizedSegment(e);return null!=r&&r.includes(t)?e:o.Location.stripTrailingSlash("/"+t+e)},t.prototype.isDefaultRouting=function(){return!!this.config.defaultRouting&&b(this.locale.language,this.config.format)===b(this.config.defaultLocale.language,this.config.format)},t}();at.decorators=[{type:e.Injectable}],at.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[u]}]},{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:Q},{type:e.Injector}]};var ot=function(){};ot.decorators=[{type:e.Injectable}];var it=function(){function t(t){this.translation=t}return t.prototype.init=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){switch(t.label){case 0:return[4,this.translation.init()];case 1:return t.sent(),[2]}}))}))},t}();it.decorators=[{type:e.Injectable}],it.ctorParameters=function(){return[{type:Q}]};var ut=function(){function t(t,e){this.routing=t,this.translation=e}return t.prototype.init=function(){return f(this,void 0,void 0,(function(){return h(this,(function(t){switch(t.label){case 0:return[4,this.routing.init()];case 1:return t.sent(),[4,this.translation.init()];case 2:return t.sent(),[2]}}))}))},t}();ut.decorators=[{type:e.Injectable}],ut.ctorParameters=function(){return[{type:at},{type:Q}]};var st=function(){function t(t){this.translation=t}return t.prototype.transform=function(t,e,r){return null==t||""===t?null:this.translation.translate(t,r,e)},t}();st.decorators=[{type:e.Pipe,args:[{name:"translate",pure:!0}]}],st.ctorParameters=function(){return[{type:Q}]};var lt=function(t){function e(e,r){var n=t.call(this,e,r)||this;return n.translation=e,n.cdr=r,n}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.translation.translate(t,e,r)},e}(W);lt.decorators=[{type:e.Pipe,args:[{name:"translateAsync",pure:!1}]}],lt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef}]};var ct=function(t){function e(e,r,n){var a=t.call(this,e,r,n)||this;return a.el=e,a.renderer=r,a.translation=n,a}return c(e,t),Object.defineProperty(e.prototype,"l10nTranslate",{set:function(t){this.params=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"translate",{set:function(t){this.params=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.translation.translate(t,this.params,this.language)},e}(rt);ct.decorators=[{type:e.Directive,args:[{selector:"[l10nTranslate],[translate]"}]}],ct.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q}]},ct.propDecorators={l10nTranslate:[{type:e.Input}],translate:[{type:e.Input}],params:[{type:e.Input}]};var pt=function(){function t(){}return t.forRoot=function(e,r){return void 0===r&&(r={}),{ngModule:t,providers:[Q,k,{provide:u,useValue:e},{provide:s,useValue:{language:""}},{provide:H,useClass:r.storage||z},{provide:Z,useClass:r.userLanguage||U},{provide:G,useClass:r.translationFallback||B},{provide:$,useClass:r.translationLoader||q},{provide:Y,useClass:r.translationHandler||X},{provide:J,useClass:r.missingTranslationHandler||K},{provide:ot,useClass:it}]}},t}();pt.decorators=[{type:e.NgModule,args:[{declarations:[st,lt,ct],exports:[st,lt,ct]}]}];var ft=function(){function t(t,e){this.locale=t,this.translation=e}return t.prototype.formatDate=function(t,e,r,n){if(void 0===r&&(r=this.locale.dateLanguage||this.locale.language),void 0===n&&(n=this.locale.timeZone),!j()||null==r||""===r)return t;t=S(t);var a={};if(e&&e){var o=e.dateStyle,i=e.timeStyle,u=p(e,["dateStyle","timeStyle"]);o&&(a=Object.assign(Object.assign({},a),C[o])),i&&(a=Object.assign(Object.assign({},a),E[i])),a=Object.assign(Object.assign({},a),u)}return w()&&n&&(a.timeZone=n),new Intl.DateTimeFormat(r,a).format(t)},t.prototype.formatNumber=function(t,e,r,n){if(void 0===r&&(r=this.locale.numberLanguage||this.locale.language),void 0===n&&(n=this.locale.currency),!D()&&e&&"currency"===e.style)return t+" "+n;if(!D()||null==r||""===r)return t;t=R(t);var a={};if(e){var o=e.digits,i=p(e,["digits"]);o&&(a=Object.assign(Object.assign({},a),F(o))),a=Object.assign(Object.assign({},a),i)}return n&&(a.currency=n),new Intl.NumberFormat(r,a).format(t)},t.prototype.formatRelativeTime=function(t,e,r,n){return void 0===n&&(n=this.locale.dateLanguage||this.locale.language),N()&&null!=n&&""!==n?(t=R(t),new Intl.RelativeTimeFormat(n,r).format(t,e)):t},t.prototype.getCurrencySymbol=function(t){void 0===t&&(t=this.locale);var e=t.currency;if(D()){var r=this.formatNumber(0,{digits:"1.0-0"},t.numberLanguage||t.language);e=(e=this.formatNumber(0,{digits:"1.0-0",style:"currency",currencyDisplay:"symbol"},t.numberLanguage||t.language,t.currency).replace(r,"")).trim()}return e},t.prototype.compare=function(t,e,r,n){if(void 0===n&&(n=this.locale.language),!O()||null==n||""===n)return 0;var a=this.translation.translate(t),o=this.translation.translate(e);return new Intl.Collator(n,r).compare(a,o)},t.prototype.plural=function(t,e,r){if(void 0===r&&(r=this.locale.language),!A()||null==r||""===r)return t.toString();var n=new Intl.PluralRules(r,e).select(t);return this.translation.has(n)?this.translation.translate(n):n},t.prototype.list=function(t,e,r){var n=this;void 0===r&&(r=this.locale.language);var a=t.map((function(t){return n.translation.translate(t)}));return V()&&null!=r&&""!==r?new Intl.ListFormat(r,e).format(a):a.toString()},t}();ft.decorators=[{type:e.Injectable}],ft.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[s]}]},{type:Q}]};var ht=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatDate(t,r,e,n)},t}();ht.decorators=[{type:e.Pipe,args:[{name:"l10nDate",pure:!0}]}],ht.ctorParameters=function(){return[{type:ft}]};var dt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.intl.formatDate(t,e,r)},e}(W);dt.decorators=[{type:e.Pipe,args:[{name:"l10nDateAsync",pure:!1}]}],dt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var gt=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatNumber(t,r,e,n)},t}();gt.decorators=[{type:e.Pipe,args:[{name:"l10nNumber",pure:!0}]}],gt.ctorParameters=function(){return[{type:ft}]};var yt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r){return null==t||""===t?null:this.intl.formatNumber(t,e,r)},e}(W);yt.decorators=[{type:e.Pipe,args:[{name:"l10nNumberAsync",pure:!1}]}],yt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var vt=function(){function t(t){this.intl=t}return t.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatRelativeTime(t,r,n,e)},t}();vt.decorators=[{type:e.Pipe,args:[{name:"l10nTimeAgo",pure:!0}]}],vt.ctorParameters=function(){return[{type:ft}]};var mt=function(t){function e(e,r,n){var a=t.call(this,e,r)||this;return a.translation=e,a.cdr=r,a.intl=n,a}return c(e,t),e.prototype.transform=function(t,e,r,n){return null==t||""===t?null:this.intl.formatRelativeTime(t,e,r,n)},e}(W);mt.decorators=[{type:e.Pipe,args:[{name:"l10nTimeAgoAsync",pure:!1}]}],mt.ctorParameters=function(){return[{type:Q},{type:e.ChangeDetectorRef},{type:ft}]};var bt=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nDate",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatDate(t,this.options,this.language)},e}(rt);bt.decorators=[{type:e.Directive,args:[{selector:"[l10nDate]"}]}],bt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},bt.propDecorators={l10nDate:[{type:e.Input}],options:[{type:e.Input}]};var Lt=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nNumber",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatNumber(t,this.options,this.language)},e}(rt);Lt.decorators=[{type:e.Directive,args:[{selector:"[l10nNumber]"}]}],Lt.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},Lt.propDecorators={l10nNumber:[{type:e.Input}],options:[{type:e.Input}]};var It=function(t){function e(e,r,n,a){var o=t.call(this,e,r,n)||this;return o.el=e,o.renderer=r,o.translation=n,o.intl=a,o}return c(e,t),Object.defineProperty(e.prototype,"l10nTimeAgo",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),e.prototype.getValue=function(t){return this.intl.formatRelativeTime(t,this.unit,this.options,this.language)},e}(rt);It.decorators=[{type:e.Directive,args:[{selector:"[l10nTimeAgo]"}]}],It.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer2},{type:Q},{type:ft}]},It.propDecorators={l10nTimeAgo:[{type:e.Input}],unit:[{type:e.Input}],options:[{type:e.Input}]};var xt=function(){};xt.decorators=[{type:e.NgModule,args:[{declarations:[ht,gt,vt,dt,yt,mt,bt,Lt,It],exports:[ht,gt,vt,dt,yt,mt,bt,Lt,It],providers:[ft]}]}];var Pt=function(){};Pt.decorators=[{type:e.Injectable}];var Tt=function(){function t(t){this.locale=t}return t.prototype.parseNumber=function(t,e,r){return void 0===r&&(r=this.locale.numberLanguage||this.locale.language),null},t.prototype.parseDate=function(t,e,r){return void 0===r&&(r=this.locale.dateLanguage||this.locale.language),null},t}();function jt(t,e,r,n,a){void 0===r&&(r=Number.MIN_VALUE),void 0===n&&(n=Number.MAX_VALUE);return function(o){if(""===o.value||null==o.value)return null;var i=t.parseNumber(o.value,e,a);return null!=i?i<r?{minValue:!0}:i>n?{maxValue:!0}:null:{format:!0}}}Tt.decorators=[{type:e.Injectable}],Tt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[s]}]}]};var Dt=function(){function t(t){this.validation=t}return Object.defineProperty(t.prototype,"l10nValidateNumber",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.validator=jt(this.validation,this.options,this.minValue,this.maxValue,this.language)},t.prototype.ngOnChanges=function(){this.validator=jt(this.validation,this.options,this.minValue,this.maxValue,this.language)},t.prototype.validate=function(t){return this.validator(t)},t}();function wt(t,e,r,n,a){return function(o){if(""===o.value||null==o.value)return null;var i=t.parseDate(o.value,e,a);return null!=i?r&&i<r?{mindate:!0}:n&&i>n?{maxDate:!0}:null:{format:!0}}}Dt.decorators=[{type:e.Directive,args:[{selector:"[l10nValidateNumber][ngModel],[l10nValidateNumber][formControl],[l10nValidateNumber][formControlName]",providers:[{provide:i.NG_VALIDATORS,useExisting:e.forwardRef((function(){return Dt})),multi:!0}]}]}],Dt.ctorParameters=function(){return[{type:Pt}]},Dt.propDecorators={l10nValidateNumber:[{type:e.Input}],options:[{type:e.Input}],minValue:[{type:e.Input}],maxValue:[{type:e.Input}],language:[{type:e.Input}]};var Nt=function(){function t(t){this.validation=t}return Object.defineProperty(t.prototype,"l10nValidateDate",{set:function(t){this.options=t},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.validator=wt(this.validation,this.options,this.minDate,this.maxDate,this.language)},t.prototype.ngOnChanges=function(){this.validator=wt(this.validation,this.options,this.minDate,this.maxDate,this.language)},t.prototype.validate=function(t){return this.validator(t)},t}();Nt.decorators=[{type:e.Directive,args:[{selector:"[l10nValidateDate][ngModel],[l10nValidateDate][formControl],[l10nValidateDate][formControlName]",providers:[{provide:i.NG_VALIDATORS,useExisting:e.forwardRef((function(){return Nt})),multi:!0}]}]}],Nt.ctorParameters=function(){return[{type:Pt}]},Nt.propDecorators={l10nValidateDate:[{type:e.Input}],options:[{type:e.Input}],minDate:[{type:e.Input}],maxDate:[{type:e.Input}],language:[{type:e.Input}]};var Ot=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:Pt,useClass:e.validation||Tt}]}},t}();Ot.decorators=[{type:e.NgModule,args:[{declarations:[Dt,Nt],exports:[Dt,Nt]}]}];var At=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[at,{provide:ot,useClass:ut}]}},t}();At.decorators=[{type:e.NgModule,args:[{}]}],t.L10N_CONFIG=u,t.L10N_LOCALE=s,t.L10nAsyncPipe=W,t.L10nCache=k,t.L10nDateAsyncPipe=dt,t.L10nDateDirective=bt,t.L10nDatePipe=ht,t.L10nDirective=rt,t.L10nIntlModule=xt,t.L10nIntlService=ft,t.L10nLoader=ot,t.L10nMissingTranslationHandler=J,t.L10nNumberAsyncPipe=yt,t.L10nNumberDirective=Lt,t.L10nNumberPipe=gt,t.L10nResolver=nt,t.L10nRoutingModule=At,t.L10nRoutingService=at,t.L10nStorage=H,t.L10nTimeAgoAsyncPipe=mt,t.L10nTimeAgoDirective=It,t.L10nTimeAgoPipe=vt,t.L10nTranslateAsyncPipe=lt,t.L10nTranslateDirective=ct,t.L10nTranslatePipe=st,t.L10nTranslationFallback=G,t.L10nTranslationHandler=Y,t.L10nTranslationLoader=$,t.L10nTranslationModule=pt,t.L10nTranslationService=Q,t.L10nUserLanguage=Z,t.L10nValidateDateDirective=Nt,t.L10nValidateNumberDirective=Dt,t.L10nValidation=Pt,t.L10nValidationModule=Ot,t.PARSE_DATE_STYLE=C,t.PARSE_TIME_STYLE=E,t.formatLanguage=b,t.getBrowserLanguage=function(){var t=null;return"undefined"!=typeof navigator&&navigator.language&&(t=navigator.language.split("-")[0]),t},t.getSchema=L,t.getValue=I,t.handleParams=x,t.hasCollator=O,t.hasDateTimeFormat=j,t.hasIntl=T,t.hasListFormat=V,t.hasNumberFormat=D,t.hasPluralRules=A,t.hasRelativeTimeFormat=N,t.hasTimeZone=w,t.l10nValidateDate=wt,t.l10nValidateNumber=jt,t.mergeDeep=P,t.parseDigits=F,t.parseLanguage=function t(e){var r=e.match(/^([a-z]{2,3})(\-([A-Z][a-z]{3}))?(\-([A-Z]{2}))?(-u.+)?$/);if(null==r)throw v(t,"Invalid language");return{language:r[1],script:r[3],region:r[5],extension:r[6]}},t.toDate=S,t.toNumber=R,t.validateLanguage=m,t.ɵa=z,t.ɵb=U,t.ɵc=B,t.ɵd=q,t.ɵe=X,t.ɵf=K,t.ɵg=it,t.ɵh=ut,t.ɵi=Tt,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=angular-l10n.umd.min.js.map

@@ -36,3 +36,3 @@ import { l10nError } from './l10n-error';

let browserLanguage = null;
if (navigator !== undefined && navigator.language) {
if (typeof navigator !== 'undefined' && navigator.language) {
browserLanguage = navigator.language.split('-')[0];

@@ -195,2 +195,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWwxMG4vc3JjL2xpYi9tb2RlbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNsRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFrQjtJQUMvRCxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxLQUFLLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQUUsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFckYsTUFBTSxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pILFFBQVEsTUFBTSxFQUFFO1FBQ1osS0FBSyxVQUFVO1lBQ1gsT0FBTyxRQUFRLENBQUM7UUFDcEIsS0FBSyxpQkFBaUI7WUFDbEIsT0FBTyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQzdCLEtBQUssaUJBQWlCO1lBQ2xCLE9BQU8sUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUM3QixLQUFLLHdCQUF3QjtZQUN6QixPQUFPLFFBQVEsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO0tBQ3pDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxh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SyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDeEM7SUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN6QyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUN4QyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMMTBuRm9ybWF0LCBMMTBuU2NoZW1hIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGwxMG5FcnJvciB9IGZyb20gJy4vbDEwbi1lcnJvcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKC9eKFthLXpdezIsM30pKFxcLVtBLVpdW2Etel17M30pPyhcXC1bQS1aXXsyfSk/KC11LispPyQvKTtcclxuICAgIHJldHVybiByZWdFeHAudGVzdChsYW5ndWFnZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nLCBmb3JtYXQ6IEwxMG5Gb3JtYXQpOiBzdHJpbmcge1xyXG4gICAgaWYgKGxhbmd1YWdlID09IG51bGwgfHwgbGFuZ3VhZ2UgPT09ICcnKSByZXR1cm4gJyc7XHJcbiAgICBpZiAoIXZhbGlkYXRlTGFuZ3VhZ2UobGFuZ3VhZ2UpKSB0aHJvdyBsMTBuRXJyb3IoZm9ybWF0TGFuZ3VhZ2UsICdJbnZhbGlkIGxhbmd1YWdlJyk7XHJcblxyXG4gICAgY29uc3QgWywgTEFOR1VBR0UgPSAnJywgU0NSSVBUID0gJycsIFJFR0lPTiA9ICcnXSA9IGxhbmd1YWdlLm1hdGNoKC9eKFthLXpdezIsM30pKFxcLVtBLVpdW2Etel17M30pPyhcXC1bQS1aXXsyfSk/LykgfHwgW107XHJcbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xyXG4gICAgICAgIGNhc2UgJ2xhbmd1YWdlJzpcclxuICAgICAgICAgICAgcmV0dXJuIExBTkdVQUdFO1xyXG4gICAgICAgIGNhc2UgJ2xhbmd1YWdlLXNjcmlwdCc6XHJcbiAgICAgICAgICAgIHJldHVybiBMQU5HVUFHRSArIFNDUklQVDtcclxuICAgICAgICBjYXNlICdsYW5ndWFnZS1yZWdpb24nOlxyXG4gICAgICAgICAgICByZXR1cm4gTEFOR1VBR0UgKyBSRUdJT047XHJcbiAgICAgICAgY2FzZSAnbGFuZ3VhZ2Utc2NyaXB0LXJlZ2lvbic6XHJcbiAgICAgICAgICAgIHJldHVybiBMQU5HVUFHRSArIFNDUklQVCArIFJFR0lPTjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgY29uc3QgZ3JvdXBzID0gbGFuZ3VhZ2UubWF0Y2goL14oW2Etel17MiwzfSkoXFwtKFtBLVpdW2Etel17M30pKT8oXFwtKFtBLVpdezJ9KSk/KC11LispPyQvKTtcclxuICAgIGlmIChncm91cHMgPT0gbnVsbCkgdGhyb3cgbDEwbkVycm9yKHBhcnNlTGFuZ3VhZ2UsICdJbnZhbGlkIGxhbmd1YWdlJyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBsYW5ndWFnZTogZ3JvdXBzWzFdLFxyXG4gICAgICAgIHNjcmlwdDogZ3JvdXBzWzNdLFxyXG4gICAgICAgIHJlZ2lvbjogZ3JvdXBzWzVdLFxyXG4gICAgICAgIGV4dGVuc2lvbjogZ3JvdXBzWzZdXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgbGV0IGJyb3dzZXJMYW5ndWFnZSA9IG51bGw7XHJcbiAgICBpZiAobmF2aWdhdG9yICE9PSB1bmRlZmluZWQgJiYgbmF2aWdhdG9yLmxhbmd1YWdlKSB7XHJcbiAgICAgICAgYnJvd3Nlckxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnJvd3Nlckxhbmd1YWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hKHNjaGVtYTogTDEwblNjaGVtYVtdLCBsYW5ndWFnZTogc3RyaW5nLCBmb3JtYXQ6IEwxMG5Gb3JtYXQpOiBMMTBuU2NoZW1hIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBzY2hlbWEuZmluZChpdGVtID0+IGZvcm1hdExhbmd1YWdlKGl0ZW0ubG9jYWxlLmxhbmd1YWdlLCBmb3JtYXQpID09PSBsYW5ndWFnZSk7XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlKGtleTogc3RyaW5nLCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBrZXlTZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB8IGFueSB8IG51bGwge1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgICBpZiAoa2V5U2VwYXJhdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBrZXkuc3BsaXQoa2V5U2VwYXJhdG9yKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjICYmIGFjY1tjdXJdKSB8fCBudWxsLCBkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlUGFyYW1zKHZhbHVlOiBzdHJpbmcsIHBhcmFtczogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJlcGxhY2VkVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC97e1xccz8oW157fVxcc10qKVxccz99fS9nLCAoc3Vic3RyaW5nOiBzdHJpbmcsIHBhcnNlZEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVwbGFjZXIgPSBwYXJhbXNbcGFyc2VkS2V5XTtcclxuICAgICAgICByZXR1cm4gcmVwbGFjZXIgIT09IHVuZGVmaW5lZCA/IHJlcGxhY2VyIDogc3Vic3RyaW5nO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVwbGFjZWRWYWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIHNvdXJjZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IGFueSB7XHJcbiAgICBjb25zdCBvdXRwdXQgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQpO1xyXG5cclxuICAgIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShrZXkgaW4gdGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvdXRwdXQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRsKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaXNBdmFpbGFibGUgPSB0eXBlb2YgSW50bCA9PT0gJ29iamVjdCcgJiYgISFJbnRsO1xyXG4gICAgcmV0dXJuIGlzQXZhaWxhYmxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzRGF0ZVRpbWVGb3JtYXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaGFzSW50bCgpICYmIEludGwuaGFzT3duUHJvcGVydHkoJ0RhdGVUaW1lRm9ybWF0Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNOdW1iZXJGb3JtYXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaGFzSW50bCgpICYmIEludGwuaGFzT3duUHJvcGVydHkoJ051bWJlckZvcm1hdCcpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzVGltZVpvbmUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaGFzSW50bCgpICYmIGhhc0RhdGVUaW1lRm9ybWF0KCkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7IHRpbWVab25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSkuZm9ybWF0KG5ldyBEYXRlKCkpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc1JlbGF0aXZlVGltZUZvcm1hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBoYXNJbnRsKCkgJiYgSW50bC5oYXNPd25Qcm9wZXJ0eSgnUmVsYXRpdmVUaW1lRm9ybWF0Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNDb2xsYXRvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBoYXNJbnRsKCkgJiYgSW50bC5oYXNPd25Qcm9wZXJ0eSgnQ29sbGF0b3InKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc1BsdXJhbFJ1bGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGhhc0ludGwoKSAmJiBJbnRsLmhhc093blByb3BlcnR5KCdQbHVyYWxSdWxlcycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzTGlzdEZvcm1hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBoYXNJbnRsKCkgJiYgSW50bC5oYXNPd25Qcm9wZXJ0eSgnTGlzdEZvcm1hdCcpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWU6IGFueSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIWlzTmFOKCt2YWx1ZSAtIHBhcnNlRmxvYXQodmFsdWUpKSA/ICt2YWx1ZSA6IHZhbHVlO1xyXG4gICAgcmV0dXJuIHBhcnNlZFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRlKHZhbHVlOiBhbnkpOiBEYXRlIHtcclxuICAgIGlmIChpc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcclxuICAgICAgICBpZiAoIWlzTmFOKHZhbHVlIC0gcGFyc2VGbG9hdCh2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZUZsb2F0KHZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgvXihcXGR7NH0tXFxkezEsMn0tXFxkezEsMn0pJC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHksIG0gLSAxLCBkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXihcXGR7NH0pLT8oXFxkXFxkKS0/KFxcZFxcZCkoPzpUKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlxcLihcXGQrKSk/KT8pPyhafChbKy1dKShcXGRcXGQpOj8oXFxkXFxkKSk/KT8kLyk7XHJcbiAgICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpc29TdHJpbmdUb0RhdGUobWF0Y2gpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUgYXMgYW55KTtcclxuICAgIGlmICghaXNEYXRlKGRhdGUpKSB7XHJcbiAgICAgICAgdGhyb3cgbDEwbkVycm9yKHRvRGF0ZSwgJ0ludmFsaWQgZGF0ZScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQVJTRV9EQVRFX1NUWUxFOiB7IFtmb3JtYXQ6IHN0cmluZ106IGFueSB9ID0ge1xyXG4gICAgZnVsbDogeyB3ZWVrZGF5OiAnbG9uZycsIHllYXI6ICdudW1lcmljJywgbW9udGg6ICdsb25nJywgZGF5OiAnbnVtZXJpYycgfSxcclxuICAgIGxvbmc6IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJ2xvbmcnLCBkYXk6ICdudW1lcmljJyB9LFxyXG4gICAgbWVkaXVtOiB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0sXHJcbiAgICBzaG9ydDogeyB5ZWFyOiAnMi1kaWdpdCcsIG1vbnRoOiAnbnVtZXJpYycsIGRheTogJ251bWVyaWMnIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJTRV9USU1FX1NUWUxFOiB7IFtmb3JtYXQ6IHN0cmluZ106IGFueSB9ID0ge1xyXG4gICAgZnVsbDogeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnLCBzZWNvbmQ6ICdudW1lcmljJywgdGltZVpvbmVOYW1lOiAnbG9uZycgfSxcclxuICAgIGxvbmc6IHsgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJywgc2Vjb25kOiAnbnVtZXJpYycsIHRpbWVab25lTmFtZTogJ3Nob3J0JyB9LFxyXG4gICAgbWVkaXVtOiB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYycsIHNlY29uZDogJ251bWVyaWMnIH0sXHJcbiAgICBzaG9ydDogeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnIH1cclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURpZ2l0cyhkaWdpdHM6IHN0cmluZykge1xyXG4gICAgY29uc3QgZ3JvdXBzID0gZGlnaXRzLm1hdGNoKC9eKFxcZCspP1xcLigoXFxkKykoXFwtKFxcZCspKT8pPyQvKTtcclxuICAgIGlmIChncm91cHMgPT0gbnVsbCkgdGhyb3cgbDEwbkVycm9yKHBhcnNlRGlnaXRzLCAnSW52YWxpZCBkaWdpdHMnKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzOiBncm91cHNbMV0gPyBwYXJzZUludChncm91cHNbMV0pIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogZ3JvdXBzWzNdID8gcGFyc2VJbnQoZ3JvdXBzWzNdKSA6IHVuZGVmaW5lZCxcclxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IGdyb3Vwc1s1XSA/IHBhcnNlSW50KGdyb3Vwc1s1XSkgOiB1bmRlZmluZWQsXHJcbiAgICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc09iamVjdChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRGF0ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0ZSB7XHJcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTih2YWx1ZS52YWx1ZU9mKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydHMgYSBkYXRlIGluIElTTyA4NjAxIHRvIGEgRGF0ZS5cclxuICovXHJcbmZ1bmN0aW9uIGlzb1N0cmluZ1RvRGF0ZShtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSk6IERhdGUge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApO1xyXG4gICAgbGV0IHR6SG91ciA9IDA7XHJcbiAgICBsZXQgdHpNaW4gPSAwO1xyXG4gICAgY29uc3QgZGF0ZVNldHRlciA9IG1hdGNoWzhdID8gZGF0ZS5zZXRVVENGdWxsWWVhciA6IGRhdGUuc2V0RnVsbFllYXI7XHJcbiAgICBjb25zdCB0aW1lU2V0dGVyID0gbWF0Y2hbOF0gPyBkYXRlLnNldFVUQ0hvdXJzIDogZGF0ZS5zZXRIb3VycztcclxuICAgIGlmIChtYXRjaFs5XSkge1xyXG4gICAgICAgIHR6SG91ciA9IE51bWJlcihtYXRjaFs5XSArIG1hdGNoWzEwXSk7XHJcbiAgICAgICAgdHpNaW4gPSBOdW1iZXIobWF0Y2hbOV0gKyBtYXRjaFsxMV0pO1xyXG4gICAgfVxyXG4gICAgZGF0ZVNldHRlci5jYWxsKGRhdGUsIE51bWJlcihtYXRjaFsxXSksIE51bWJlcihtYXRjaFsyXSkgLSAxLCBOdW1iZXIobWF0Y2hbM10pKTtcclxuICAgIGNvbnN0IGggPSBOdW1iZXIobWF0Y2hbNF0gfHwgMCkgLSB0ekhvdXI7XHJcbiAgICBjb25zdCBtID0gTnVtYmVyKG1hdGNoWzVdIHx8IDApIC0gdHpNaW47XHJcbiAgICBjb25zdCBzID0gTnVtYmVyKG1hdGNoWzZdIHx8IDApO1xyXG4gICAgY29uc3QgbXMgPSBNYXRoLnJvdW5kKHBhcnNlRmxvYXQoJzAuJyArIChtYXRjaFs3XSB8fCAwKSkgKiAxMDAwKTtcclxuICAgIHRpbWVTZXR0ZXIuY2FsbChkYXRlLCBoLCBtLCBzLCBtcyk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWwxMG4vc3JjL2xpYi9tb2RlbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNsRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFrQjtJQUMvRCxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxLQUFLLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQUUsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFckYsTUFBTSxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pILFFBQVEsTUFBTSxFQUFFO1FBQ1osS0FBSyxVQUFVO1lBQ1gsT0FBTyxRQUFRLENBQUM7UUFDcEIsS0FBSyxpQkFBaUI7WUFDbEIsT0FBTyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQzdCLEtBQUssaUJBQWlCO1lBQ2xCLE9BQU8sUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUM3QixLQUFLLHdCQUF3QjtZQUN6QixPQUFPLFFBQVEsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO0tBQ3pDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxh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RyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN4QztJQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEwxMG5Gb3JtYXQsIEwxMG5TY2hlbWEgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgbDEwbkVycm9yIH0gZnJvbSAnLi9sMTBuLWVycm9yJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAoL14oW2Etel17MiwzfSkoXFwtW0EtWl1bYS16XXszfSk/KFxcLVtBLVpdezJ9KT8oLXUuKyk/JC8pO1xyXG4gICAgcmV0dXJuIHJlZ0V4cC50ZXN0KGxhbmd1YWdlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcsIGZvcm1hdDogTDEwbkZvcm1hdCk6IHN0cmluZyB7XHJcbiAgICBpZiAobGFuZ3VhZ2UgPT0gbnVsbCB8fCBsYW5ndWFnZSA9PT0gJycpIHJldHVybiAnJztcclxuICAgIGlmICghdmFsaWRhdGVMYW5ndWFnZShsYW5ndWFnZSkpIHRocm93IGwxMG5FcnJvcihmb3JtYXRMYW5ndWFnZSwgJ0ludmFsaWQgbGFuZ3VhZ2UnKTtcclxuXHJcbiAgICBjb25zdCBbLCBMQU5HVUFHRSA9ICcnLCBTQ1JJUFQgPSAnJywgUkVHSU9OID0gJyddID0gbGFuZ3VhZ2UubWF0Y2goL14oW2Etel17MiwzfSkoXFwtW0EtWl1bYS16XXszfSk/KFxcLVtBLVpdezJ9KT8vKSB8fCBbXTtcclxuICAgIHN3aXRjaCAoZm9ybWF0KSB7XHJcbiAgICAgICAgY2FzZSAnbGFuZ3VhZ2UnOlxyXG4gICAgICAgICAgICByZXR1cm4gTEFOR1VBR0U7XHJcbiAgICAgICAgY2FzZSAnbGFuZ3VhZ2Utc2NyaXB0JzpcclxuICAgICAgICAgICAgcmV0dXJuIExBTkdVQUdFICsgU0NSSVBUO1xyXG4gICAgICAgIGNhc2UgJ2xhbmd1YWdlLXJlZ2lvbic6XHJcbiAgICAgICAgICAgIHJldHVybiBMQU5HVUFHRSArIFJFR0lPTjtcclxuICAgICAgICBjYXNlICdsYW5ndWFnZS1zY3JpcHQtcmVnaW9uJzpcclxuICAgICAgICAgICAgcmV0dXJuIExBTkdVQUdFICsgU0NSSVBUICsgUkVHSU9OO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBncm91cHMgPSBsYW5ndWFnZS5tYXRjaCgvXihbYS16XXsyLDN9KShcXC0oW0EtWl1bYS16XXszfSkpPyhcXC0oW0EtWl17Mn0pKT8oLXUuKyk/JC8pO1xyXG4gICAgaWYgKGdyb3VwcyA9PSBudWxsKSB0aHJvdyBsMTBuRXJyb3IocGFyc2VMYW5ndWFnZSwgJ0ludmFsaWQgbGFuZ3VhZ2UnKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhbmd1YWdlOiBncm91cHNbMV0sXHJcbiAgICAgICAgc2NyaXB0OiBncm91cHNbM10sXHJcbiAgICAgICAgcmVnaW9uOiBncm91cHNbNV0sXHJcbiAgICAgICAgZXh0ZW5zaW9uOiBncm91cHNbNl1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBsZXQgYnJvd3Nlckxhbmd1YWdlID0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IubGFuZ3VhZ2UpIHtcclxuICAgICAgICBicm93c2VyTGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcclxuICAgIH1cclxuICAgIHJldHVybiBicm93c2VyTGFuZ3VhZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2hlbWEoc2NoZW1hOiBMMTBuU2NoZW1hW10sIGxhbmd1YWdlOiBzdHJpbmcsIGZvcm1hdDogTDEwbkZvcm1hdCk6IEwxMG5TY2hlbWEgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHNjaGVtYS5maW5kKGl0ZW0gPT4gZm9ybWF0TGFuZ3VhZ2UoaXRlbS5sb2NhbGUubGFuZ3VhZ2UsIGZvcm1hdCkgPT09IGxhbmd1YWdlKTtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsdWUoa2V5OiBzdHJpbmcsIGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGtleVNlcGFyYXRvcjogc3RyaW5nKTogc3RyaW5nIHwgYW55IHwgbnVsbCB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgIGlmIChrZXlTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGtleS5zcGxpdChrZXlTZXBhcmF0b3IpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2MgJiYgYWNjW2N1cl0pIHx8IG51bGwsIGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0YVtrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVQYXJhbXModmFsdWU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcmVwbGFjZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3t7XFxzPyhbXnt9XFxzXSopXFxzP319L2csIChzdWJzdHJpbmc6IHN0cmluZywgcGFyc2VkS2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCByZXBsYWNlciA9IHBhcmFtc1twYXJzZWRLZXldO1xyXG4gICAgICAgIHJldHVybiByZXBsYWNlciAhPT0gdW5kZWZpbmVkID8gcmVwbGFjZXIgOiBzdWJzdHJpbmc7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXBsYWNlZFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgc291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogYW55IHtcclxuICAgIGNvbnN0IG91dHB1dCA9IE9iamVjdC5hc3NpZ24oe30sIHRhcmdldCk7XHJcblxyXG4gICAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghKGtleSBpbiB0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRba2V5XSA9IG1lcmdlRGVlcCh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG91dHB1dDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGwoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc0F2YWlsYWJsZSA9IHR5cGVvZiBJbnRsID09PSAnb2JqZWN0JyAmJiAhIUludGw7XHJcbiAgICByZXR1cm4gaXNBdmFpbGFibGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNEYXRlVGltZUZvcm1hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBoYXNJbnRsKCkgJiYgSW50bC5oYXNPd25Qcm9wZXJ0eSgnRGF0ZVRpbWVGb3JtYXQnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc051bWJlckZvcm1hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBoYXNJbnRsKCkgJiYgSW50bC5oYXNPd25Qcm9wZXJ0eSgnTnVtYmVyRm9ybWF0Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNUaW1lWm9uZSgpOiBib29sZWFuIHtcclxuICAgIGlmIChoYXNJbnRsKCkgJiYgaGFzRGF0ZVRpbWVGb3JtYXQoKSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHsgdGltZVpvbmU6ICdBbWVyaWNhL0xvc19BbmdlbGVzJyB9KS5mb3JtYXQobmV3IERhdGUoKSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVsYXRpdmVUaW1lRm9ybWF0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGhhc0ludGwoKSAmJiBJbnRsLmhhc093blByb3BlcnR5KCdSZWxhdGl2ZVRpbWVGb3JtYXQnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbGxhdG9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGhhc0ludGwoKSAmJiBJbnRsLmhhc093blByb3BlcnR5KCdDb2xsYXRvcicpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzUGx1cmFsUnVsZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaGFzSW50bCgpICYmIEludGwuaGFzT3duUHJvcGVydHkoJ1BsdXJhbFJ1bGVzJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNMaXN0Rm9ybWF0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGhhc0ludGwoKSAmJiBJbnRsLmhhc093blByb3BlcnR5KCdMaXN0Rm9ybWF0Jyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b051bWJlcih2YWx1ZTogYW55KTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNOYU4oK3ZhbHVlIC0gcGFyc2VGbG9hdCh2YWx1ZSkpID8gK3ZhbHVlIDogdmFsdWU7XHJcbiAgICByZXR1cm4gcGFyc2VkVmFsdWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodmFsdWU6IGFueSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGF0ZSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xyXG4gICAgICAgIGlmICghaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHBhcnNlRmxvYXQodmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKC9eKFxcZHs0fS1cXGR7MSwyfS1cXGR7MSwyfSkkLy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgICAgICBjb25zdCBbeSwgbSwgZF0gPSB2YWx1ZS5zcGxpdCgnLScpLm1hcCgodmFsOiBzdHJpbmcpID0+ICt2YWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoeSwgbSAtIDEsIGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eKFxcZHs0fSktPyhcXGRcXGQpLT8oXFxkXFxkKSg/OlQoXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86XFwuKFxcZCspKT8pPyk/KFp8KFsrLV0pKFxcZFxcZCk6PyhcXGRcXGQpKT8pPyQvKTtcclxuICAgICAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzb1N0cmluZ1RvRGF0ZShtYXRjaCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSBhcyBhbnkpO1xyXG4gICAgaWYgKCFpc0RhdGUoZGF0ZSkpIHtcclxuICAgICAgICB0aHJvdyBsMTBuRXJyb3IodG9EYXRlLCAnSW52YWxpZCBkYXRlJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlNFX0RBVEVfU1RZTEU6IHsgW2Zvcm1hdDogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICBmdWxsOiB7IHdlZWtkYXk6ICdsb25nJywgeWVhcjogJ251bWVyaWMnLCBtb250aDogJ2xvbmcnLCBkYXk6ICdudW1lcmljJyB9LFxyXG4gICAgbG9uZzogeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnbG9uZycsIGRheTogJ251bWVyaWMnIH0sXHJcbiAgICBtZWRpdW06IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycgfSxcclxuICAgIHNob3J0OiB7IHllYXI6ICcyLWRpZ2l0JywgbW9udGg6ICdudW1lcmljJywgZGF5OiAnbnVtZXJpYycgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlNFX1RJTUVfU1RZTEU6IHsgW2Zvcm1hdDogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICBmdWxsOiB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYycsIHNlY29uZDogJ251bWVyaWMnLCB0aW1lWm9uZU5hbWU6ICdsb25nJyB9LFxyXG4gICAgbG9uZzogeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnLCBzZWNvbmQ6ICdudW1lcmljJywgdGltZVpvbmVOYW1lOiAnc2hvcnQnIH0sXHJcbiAgICBtZWRpdW06IHsgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJywgc2Vjb25kOiAnbnVtZXJpYycgfSxcclxuICAgIHNob3J0OiB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYycgfVxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGlnaXRzKGRpZ2l0czogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBncm91cHMgPSBkaWdpdHMubWF0Y2goL14oXFxkKyk/XFwuKChcXGQrKShcXC0oXFxkKykpPyk/JC8pO1xyXG4gICAgaWYgKGdyb3VwcyA9PSBudWxsKSB0aHJvdyBsMTBuRXJyb3IocGFyc2VEaWdpdHMsICdJbnZhbGlkIGRpZ2l0cycpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHM6IGdyb3Vwc1sxXSA/IHBhcnNlSW50KGdyb3Vwc1sxXSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBncm91cHNbM10gPyBwYXJzZUludChncm91cHNbM10pIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogZ3JvdXBzWzVdID8gcGFyc2VJbnQoZ3JvdXBzWzVdKSA6IHVuZGVmaW5lZCxcclxuICAgIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzT2JqZWN0KGl0ZW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNEYXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRlIHtcclxuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLnZhbHVlT2YoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhIGRhdGUgaW4gSVNPIDg2MDEgdG8gYSBEYXRlLlxyXG4gKi9cclxuZnVuY3Rpb24gaXNvU3RyaW5nVG9EYXRlKG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5KTogRGF0ZSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XHJcbiAgICBsZXQgdHpIb3VyID0gMDtcclxuICAgIGxldCB0ek1pbiA9IDA7XHJcbiAgICBjb25zdCBkYXRlU2V0dGVyID0gbWF0Y2hbOF0gPyBkYXRlLnNldFVUQ0Z1bGxZZWFyIDogZGF0ZS5zZXRGdWxsWWVhcjtcclxuICAgIGNvbnN0IHRpbWVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDSG91cnMgOiBkYXRlLnNldEhvdXJzO1xyXG4gICAgaWYgKG1hdGNoWzldKSB7XHJcbiAgICAgICAgdHpIb3VyID0gTnVtYmVyKG1hdGNoWzldICsgbWF0Y2hbMTBdKTtcclxuICAgICAgICB0ek1pbiA9IE51bWJlcihtYXRjaFs5XSArIG1hdGNoWzExXSk7XHJcbiAgICB9XHJcbiAgICBkYXRlU2V0dGVyLmNhbGwoZGF0ZSwgTnVtYmVyKG1hdGNoWzFdKSwgTnVtYmVyKG1hdGNoWzJdKSAtIDEsIE51bWJlcihtYXRjaFszXSkpO1xyXG4gICAgY29uc3QgaCA9IE51bWJlcihtYXRjaFs0XSB8fCAwKSAtIHR6SG91cjtcclxuICAgIGNvbnN0IG0gPSBOdW1iZXIobWF0Y2hbNV0gfHwgMCkgLSB0ek1pbjtcclxuICAgIGNvbnN0IHMgPSBOdW1iZXIobWF0Y2hbNl0gfHwgMCk7XHJcbiAgICBjb25zdCBtcyA9IE1hdGgucm91bmQocGFyc2VGbG9hdCgnMC4nICsgKG1hdGNoWzddIHx8IDApKSAqIDEwMDApO1xyXG4gICAgdGltZVNldHRlci5jYWxsKGRhdGUsIGgsIG0sIHMsIG1zKTtcclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcbiJdfQ==

@@ -12,3 +12,2 @@ import { __awaiter } from "tslib";

return __awaiter(this, void 0, void 0, function* () {
yield this.translation.init();
yield this.translation.loadTranslation(route.data.l10nProviders);

@@ -27,2 +26,2 @@ });

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbDEwbi9zcmMvbGliL3NlcnZpY2VzL2wxMG4tcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUFvQixXQUFtQztRQUFuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7SUFBSSxDQUFDO0lBRXRELE9BQU8sQ0FBQyxLQUE2QixFQUFFLEtBQTBCOztZQUNuRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7S0FBQTs7OztZQVZKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBSlEsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXNvbHZlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEwxMG5UcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuL2wxMG4tdHJhbnNsYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEwxMG5SZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8UHJvbWlzZTx2b2lkPj4ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb246IEwxMG5UcmFuc2xhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICAgIGFzeW5jIHJlc29sdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvbi5pbml0KCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvbi5sb2FkVHJhbnNsYXRpb24ocm91dGUuZGF0YS5sMTBuUHJvdmlkZXJzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbDEwbi9zcmMvbGliL3NlcnZpY2VzL2wxMG4tcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUFvQixXQUFtQztRQUFuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7SUFBSSxDQUFDO0lBRXRELE9BQU8sQ0FBQyxLQUE2QixFQUFFLEtBQTBCOztZQUNuRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckUsQ0FBQztLQUFBOzs7O1lBVEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFKUSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlc29sdmUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgTDEwblRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4vbDEwbi10cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTDEwblJlc29sdmVyIGltcGxlbWVudHMgUmVzb2x2ZTxQcm9taXNlPHZvaWQ+PiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGlvbjogTDEwblRyYW5zbGF0aW9uU2VydmljZSkgeyB9XHJcblxyXG4gICAgYXN5bmMgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uLmxvYWRUcmFuc2xhdGlvbihyb3V0ZS5kYXRhLmwxMG5Qcm92aWRlcnMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==

@@ -106,6 +106,8 @@ import { __awaiter } from "tslib";

return __awaiter(this, void 0, void 0, function* () {
if (this.locale.language)
return Promise.resolve();
// Checks whether the L10nRoutingService has already initialized the locale.
let locale = this.locale.language ? this.locale : null;
// Tries to get the locale from the storage.
let locale = yield this.storage.read();
if (locale == null) {
locale = yield this.storage.read();
}
// Tries to get the locale through the user language.

@@ -212,2 +214,2 @@ if (locale == null) {

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi10cmFuc2xhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1sMTBuL3NyYy9saWIvc2VydmljZXMvbDEwbi10cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLFdBQVcsRUFBYyxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQVc3QyxZQUNpQyxNQUFrQixFQUNsQixNQUFrQixFQUN2QyxLQUFnQixFQUNoQixPQUFvQixFQUNwQixZQUE4QixFQUM5QixtQkFBNEMsRUFDNUMsaUJBQXdDLEVBQ3hDLGtCQUEwQyxFQUMxQyx5QkFBd0Q7UUFSbkMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtR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QkFDTDtxQkFBTTtvQkFDSCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ3BFO2FBQ0o7U0FDSjtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQWtCO1FBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OztZQTlNSixVQUFVOzs7NENBWUYsTUFBTSxTQUFDLFdBQVc7NENBQ2xCLE1BQU0sU0FBQyxXQUFXO1lBckJsQixTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIscUJBQXFCO1lBQ3JCLHNCQUFzQjtZQUN0Qiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgY29uY2F0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBMMTBuTG9jYWxlLCBMMTBuUHJvdmlkZXIgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xyXG5pbXBvcnQgeyBMMTBOX0NPTkZJRywgTDEwbkNvbmZpZywgTDEwTl9MT0NBTEUgfSBmcm9tICcuLi9tb2RlbHMvbDEwbi1jb25maWcnO1xyXG5pbXBvcnQgeyBmb3JtYXRMYW5ndWFnZSwgZ2V0U2NoZW1hLCBnZXRWYWx1ZSwgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vbW9kZWxzL3V0aWxzJztcclxuaW1wb3J0IHsgTDEwbkNhY2hlIH0gZnJvbSAnLi9sMTBuLWNhY2hlJztcclxuaW1wb3J0IHsgTDEwblN0b3JhZ2UgfSBmcm9tICcuL2wxMG4tc3RvcmFnZSc7XHJcbmltcG9ydCB7IEwxMG5Vc2VyTGFuZ3VhZ2UgfSBmcm9tICcuL2wxMG4tdXNlci1sYW5ndWFnZSc7XHJcbmltcG9ydCB7IEwxMG5UcmFuc2xhdGlvbkZhbGxiYWNrIH0gZnJvbSAnLi9sMTBuLXRyYW5zbGF0aW9uLWZhbGxiYWNrJztcclxuaW1wb3J0IHsgTDEwblRyYW5zbGF0aW9uTG9hZGVyIH0gZnJvbSAnLi9sMTBuLXRyYW5zbGF0aW9uLWxvYWRlcic7XHJcbmltcG9ydCB7IEwxMG5UcmFuc2xhdGlvbkhhbmRsZXIgfSBmcm9tICcuL2wxMG4tdHJhbnNsYXRpb24taGFuZGxlcic7XHJcbmltcG9ydCB7IEwxMG5NaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIH0gZnJvbSAnLi9sMTBuLW1pc3NpbmctdHJhbnNsYXRpb24taGFuZGxlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpIGV4cG9ydCBjbGFzcyBMMTBuVHJhbnNsYXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0cmFuc2xhdGlvbiBkYXRhOiB7bGFuZ3VhZ2U6IHtrZXk6IHZhbHVlfX1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMMTBuTG9jYWxlPih0aGlzLmxvY2FsZSk7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEwxME5fQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTDEwbkNvbmZpZyxcclxuICAgICAgICBASW5qZWN0KEwxME5fTE9DQUxFKSBwcml2YXRlIGxvY2FsZTogTDEwbkxvY2FsZSxcclxuICAgICAgICBwcml2YXRlIGNhY2hlOiBMMTBuQ2FjaGUsXHJcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlOiBMMTBuU3RvcmFnZSxcclxuICAgICAgICBwcml2YXRlIHVzZXJMYW5ndWFnZTogTDEwblVzZXJMYW5ndWFnZSxcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uRmFsbGJhY2s6IEwxMG5UcmFuc2xhdGlvbkZhbGxiYWNrLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRpb25Mb2FkZXI6IEwxMG5UcmFuc2xhdGlvbkxvYWRlcixcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uSGFuZGxlcjogTDEwblRyYW5zbGF0aW9uSGFuZGxlcixcclxuICAgICAgICBwcml2YXRlIG1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXI6IEwxMG5NaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudCBsb2NhbGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRMb2NhbGUoKTogTDEwbkxvY2FsZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlcyB0aGUgY3VycmVudCBsb2NhbGUgYW5kIGxvYWQgdGhlIHRyYW5zbGF0aW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBuZXcgbG9jYWxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBzZXRMb2NhbGUobG9jYWxlOiBMMTBuTG9jYWxlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb24odGhpcy5jb25maWcucHJvdmlkZXJzLCBsb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlyZWQgZXZlcnkgdGltZSB0aGUgdHJhbnNsYXRpb24gZGF0YSBoYXMgYmVlbiBsb2FkZWQuIFJldHVybnMgdGhlIGxvY2FsZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ2hhbmdlKCk6IE9ic2VydmFibGU8TDEwbkxvY2FsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdHJhbnNsYXRpb24gZGF0YSBjb3VsZCBub3QgYmVlbiBsb2FkZWQuIFJldHVybnMgdGhlIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25FcnJvcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNsYXRlcyBhIGtleSBvciBhbiBhcnJheSBvZiBrZXlzLlxyXG4gICAgICogQHBhcmFtIGtleXMgVGhlIGtleSBvciBhbiBhcnJheSBvZiBrZXlzIHRvIGJlIHRyYW5zbGF0ZWRcclxuICAgICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBjb250YWluZWQgaW4gdGhlIGtleVxyXG4gICAgICogQHBhcmFtIGxhbmd1YWdlIFRoZSBjdXJyZW50IGxhbmd1YWdlXHJcbiAgICAgKiBAcmV0dXJuIFRoZSB0cmFuc2xhdGVkIHZhbHVlIG9yIGFuIG9iamVjdDoge2tleTogdmFsdWV9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2xhdGUoXHJcbiAgICAgICAga2V5czogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICAgICAgcGFyYW1zPzogYW55LFxyXG4gICAgICAgIGxhbmd1YWdlID0gdGhpcy5sb2NhbGUubGFuZ3VhZ2VcclxuICAgICk6IHN0cmluZyB8IGFueSB7XHJcbiAgICAgICAgbGFuZ3VhZ2UgPSBmb3JtYXRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5cykpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSB0aGlzLnRyYW5zbGF0ZShrZXksIHBhcmFtcywgbGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZShrZXlzLCB0aGlzLmRhdGFbbGFuZ3VhZ2VdLCB0aGlzLmNvbmZpZy5rZXlTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLnRyYW5zbGF0aW9uSGFuZGxlci5wYXJzZVZhbHVlKGtleXMsIHBhcmFtcywgdmFsdWUpIDogdGhpcy5taXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLmhhbmRsZShrZXlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiBhIHRyYW5zbGF0aW9uIGV4aXN0cy5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBiZSB0ZXN0ZWRcclxuICAgICAqIEBwYXJhbSBsYW5ndWFnZSBUaGUgY3VycmVudCBsYW5ndWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFzKGtleTogc3RyaW5nLCBsYW5ndWFnZSA9IHRoaXMubG9jYWxlLmxhbmd1YWdlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGFuZ3VhZ2UgPSBmb3JtYXRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGdldFZhbHVlKGtleSwgdGhpcy5kYXRhW2xhbmd1YWdlXSwgdGhpcy5jb25maWcua2V5U2VwYXJhdG9yKSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGxhbmd1YWdlIGRpcmVjdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldExhbmd1YWdlRGlyZWN0aW9uKGxhbmd1YWdlID0gdGhpcy5sb2NhbGUubGFuZ3VhZ2UpOiAnbHRyJyB8ICdydGwnIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSBnZXRTY2hlbWEodGhpcy5jb25maWcuc2NoZW1hLCBsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuICAgICAgICBpZiAoc2NoZW1hKSByZXR1cm4gc2NoZW1hLmRpcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYXZhaWxhYmxlIGxhbmd1YWdlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuc2NoZW1hLm1hcChpdGVtID0+IGZvcm1hdExhbmd1YWdlKGl0ZW0ubG9jYWxlLmxhbmd1YWdlLCB0aGlzLmNvbmZpZy5mb3JtYXQpKTtcclxuICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlcnZpY2UgaW5zdGFuY2UgaXMgY3JlYXRlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlLmxhbmd1YWdlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcblxyXG4gICAgICAgIC8vIFRyaWVzIHRvIGdldCB0aGUgbG9jYWxlIGZyb20gdGhlIHN0b3JhZ2UuXHJcbiAgICAgICAgbGV0IGxvY2FsZSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZWFkKCk7XHJcbiAgICAgICAgLy8gVHJpZXMgdG8gZ2V0IHRoZSBsb2NhbGUgdGhyb3VnaCB0aGUgdXNlciBsYW5ndWFnZS5cclxuICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlID0gYXdhaXQgdGhpcy51c2VyTGFuZ3VhZ2UuZ2V0KCk7XHJcbiAgICAgICAgICAgIGlmIChicm93c2VyTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IGdldFNjaGVtYSh0aGlzLmNvbmZpZy5zY2hlbWEsIGJyb3dzZXJMYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuICAgICAgICAgICAgICAgIGlmIChzY2hlbWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBzY2hlbWEubG9jYWxlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEdldHMgdGhlIGRlZmF1bHQgbG9jYWxlLlxyXG4gICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0TG9jYWxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTG9hZHMgdHJhbnNsYXRpb24gZGF0YS5cclxuICAgICAgICBhd2FpdCB0aGlzLmxvYWRUcmFuc2xhdGlvbih0aGlzLmNvbmZpZy5wcm92aWRlcnMsIGxvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYW4gYmUgY2FsbGVkIGF0IGV2ZXJ5IHRyYW5zbGF0aW9uIGNoYW5nZS5cclxuICAgICAqIEBwYXJhbSBwcm92aWRlcnMgQW4gYXJyYXkgb2YgTDEwblByb3ZpZGVyXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBjdXJyZW50IGxvY2FsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgbG9hZFRyYW5zbGF0aW9uKHByb3ZpZGVyczogTDEwblByb3ZpZGVyW10gPSB0aGlzLmNvbmZpZy5wcm92aWRlcnMsIGxvY2FsZSA9IHRoaXMubG9jYWxlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gVXBkYXRlcyBwcm92aWRlcnNcclxuICAgICAgICBwcm92aWRlcnMuZm9yRWFjaChwcm92aWRlciA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcucHJvdmlkZXJzLmZpbmQocCA9PiBwLm5hbWUgPT09IHByb3ZpZGVyLm5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5wcm92aWRlcnMucHVzaChwcm92aWRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBmb3JtYXRMYW5ndWFnZShsb2NhbGUubGFuZ3VhZ2UsIHRoaXMuY29uZmlnLmZvcm1hdCk7XHJcblxyXG4gICAgICAgIGlmIChsYW5ndWFnZSA9PSBudWxsIHx8IGxhbmd1YWdlID09PSAnJykgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgY29uY2F0KC4uLnRoaXMuZ2V0VHJhbnNsYXRpb24ocHJvdmlkZXJzLCBsYW5ndWFnZSkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4gdGhpcy5hZGREYXRhKGRhdGEsIGxhbmd1YWdlKSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGVhc2VUcmFuc2xhdGlvbihsb2NhbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYW4gYmUgY2FsbGVkIHRvIGFkZCB0cmFuc2xhdGlvbiBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGEgVGhlIHRyYW5zbGF0aW9uIGRhdGEge2tleTogdmFsdWV9XHJcbiAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgVGhlIGxhbmd1YWdlIHRvIGFkZCBkYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGREYXRhKGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGxhbmd1YWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRhdGFbbGFuZ3VhZ2VdID0gdGhpcy5kYXRhW2xhbmd1YWdlXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gbWVyZ2VEZWVwKHRoaXMuZGF0YVtsYW5ndWFnZV0sIGRhdGEpXHJcbiAgICAgICAgICAgIDogZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFRyYW5zbGF0aW9uKHByb3ZpZGVyczogTDEwblByb3ZpZGVyW10sIGxhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT5bXSB7XHJcbiAgICAgICAgY29uc3QgbGF6eUxvYWRlcnM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgbGV0IGxvYWRlcnM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5mYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgbG9hZGVycyA9IGxvYWRlcnMuY29uY2F0KHRoaXMudHJhbnNsYXRpb25GYWxsYmFjay5nZXQobGFuZ3VhZ2UsIHByb3ZpZGVyKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcuY2FjaGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXp5TG9hZGVycy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlLnJlYWQoYCR7cHJvdmlkZXIubmFtZX0tJHtsYW5ndWFnZX1gLCB0aGlzLnRyYW5zbGF0aW9uTG9hZGVyLmdldChsYW5ndWFnZSwgcHJvdmlkZXIpKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhenlMb2FkZXJzLnB1c2godGhpcy50cmFuc2xhdGlvbkxvYWRlci5nZXQobGFuZ3VhZ2UsIHByb3ZpZGVyKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbG9hZGVycy5wdXNoKG1lcmdlKC4uLmxhenlMb2FkZXJzKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBsb2FkZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWxlYXNlVHJhbnNsYXRpb24obG9jYWxlOiBMMTBuTG9jYWxlKTogdm9pZCB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmxvY2FsZSwgbG9jYWxlKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLm5leHQodGhpcy5sb2NhbGUpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS53cml0ZSh0aGlzLmxvY2FsZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi10cmFuc2xhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1sMTBuL3NyYy9saWIvc2VydmljZXMvbDEwbi10cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLFdBQVcsRUFBYyxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQVc3QyxZQUNpQyxNQUFrQixFQUNsQixNQUFrQixFQUN2QyxLQUFnQixFQUNoQixPQUFvQixFQUNwQixZQUE4QixFQUM5QixtQkFBNEMsRUFDNUMsaUJBQXdDLEVBQ3hDLGtCQUEwQyxFQUMxQyx5QkFBd0Q7UUFSbkMsV0FBTSxHQUFOLE1BQU0sQ0FBWTtR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LEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FDbEcsQ0FBQztpQkFDTDtxQkFBTTtvQkFDSCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ3BFO2FBQ0o7U0FDSjtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQWtCO1FBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OztZQWpOSixVQUFVOzs7NENBWUYsTUFBTSxTQUFDLFdBQVc7NENBQ2xCLE1BQU0sU0FBQyxXQUFXO1lBckJsQixTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIscUJBQXFCO1lBQ3JCLHNCQUFzQjtZQUN0Qiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgY29uY2F0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBMMTBuTG9jYWxlLCBMMTBuUHJvdmlkZXIgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xyXG5pbXBvcnQgeyBMMTBOX0NPTkZJRywgTDEwbkNvbmZpZywgTDEwTl9MT0NBTEUgfSBmcm9tICcuLi9tb2RlbHMvbDEwbi1jb25maWcnO1xyXG5pbXBvcnQgeyBmb3JtYXRMYW5ndWFnZSwgZ2V0U2NoZW1hLCBnZXRWYWx1ZSwgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vbW9kZWxzL3V0aWxzJztcclxuaW1wb3J0IHsgTDEwbkNhY2hlIH0gZnJvbSAnLi9sMTBuLWNhY2hlJztcclxuaW1wb3J0IHsgTDEwblN0b3JhZ2UgfSBmcm9tICcuL2wxMG4tc3RvcmFnZSc7XHJcbmltcG9ydCB7IEwxMG5Vc2VyTGFuZ3VhZ2UgfSBmcm9tICcuL2wxMG4tdXNlci1sYW5ndWFnZSc7XHJcbmltcG9ydCB7IEwxMG5UcmFuc2xhdGlvbkZhbGxiYWNrIH0gZnJvbSAnLi9sMTBuLXRyYW5zbGF0aW9uLWZhbGxiYWNrJztcclxuaW1wb3J0IHsgTDEwblRyYW5zbGF0aW9uTG9hZGVyIH0gZnJvbSAnLi9sMTBuLXRyYW5zbGF0aW9uLWxvYWRlcic7XHJcbmltcG9ydCB7IEwxMG5UcmFuc2xhdGlvbkhhbmRsZXIgfSBmcm9tICcuL2wxMG4tdHJhbnNsYXRpb24taGFuZGxlcic7XHJcbmltcG9ydCB7IEwxMG5NaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIH0gZnJvbSAnLi9sMTBuLW1pc3NpbmctdHJhbnNsYXRpb24taGFuZGxlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpIGV4cG9ydCBjbGFzcyBMMTBuVHJhbnNsYXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0cmFuc2xhdGlvbiBkYXRhOiB7bGFuZ3VhZ2U6IHtrZXk6IHZhbHVlfX1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMMTBuTG9jYWxlPih0aGlzLmxvY2FsZSk7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEwxME5fQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTDEwbkNvbmZpZyxcclxuICAgICAgICBASW5qZWN0KEwxME5fTE9DQUxFKSBwcml2YXRlIGxvY2FsZTogTDEwbkxvY2FsZSxcclxuICAgICAgICBwcml2YXRlIGNhY2hlOiBMMTBuQ2FjaGUsXHJcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlOiBMMTBuU3RvcmFnZSxcclxuICAgICAgICBwcml2YXRlIHVzZXJMYW5ndWFnZTogTDEwblVzZXJMYW5ndWFnZSxcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uRmFsbGJhY2s6IEwxMG5UcmFuc2xhdGlvbkZhbGxiYWNrLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRpb25Mb2FkZXI6IEwxMG5UcmFuc2xhdGlvbkxvYWRlcixcclxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uSGFuZGxlcjogTDEwblRyYW5zbGF0aW9uSGFuZGxlcixcclxuICAgICAgICBwcml2YXRlIG1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXI6IEwxMG5NaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudCBsb2NhbGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRMb2NhbGUoKTogTDEwbkxvY2FsZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlcyB0aGUgY3VycmVudCBsb2NhbGUgYW5kIGxvYWQgdGhlIHRyYW5zbGF0aW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBuZXcgbG9jYWxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBzZXRMb2NhbGUobG9jYWxlOiBMMTBuTG9jYWxlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb24odGhpcy5jb25maWcucHJvdmlkZXJzLCBsb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlyZWQgZXZlcnkgdGltZSB0aGUgdHJhbnNsYXRpb24gZGF0YSBoYXMgYmVlbiBsb2FkZWQuIFJldHVybnMgdGhlIGxvY2FsZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ2hhbmdlKCk6IE9ic2VydmFibGU8TDEwbkxvY2FsZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdHJhbnNsYXRpb24gZGF0YSBjb3VsZCBub3QgYmVlbiBsb2FkZWQuIFJldHVybnMgdGhlIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25FcnJvcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNsYXRlcyBhIGtleSBvciBhbiBhcnJheSBvZiBrZXlzLlxyXG4gICAgICogQHBhcmFtIGtleXMgVGhlIGtleSBvciBhbiBhcnJheSBvZiBrZXlzIHRvIGJlIHRyYW5zbGF0ZWRcclxuICAgICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBjb250YWluZWQgaW4gdGhlIGtleVxyXG4gICAgICogQHBhcmFtIGxhbmd1YWdlIFRoZSBjdXJyZW50IGxhbmd1YWdlXHJcbiAgICAgKiBAcmV0dXJuIFRoZSB0cmFuc2xhdGVkIHZhbHVlIG9yIGFuIG9iamVjdDoge2tleTogdmFsdWV9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2xhdGUoXHJcbiAgICAgICAga2V5czogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICAgICAgcGFyYW1zPzogYW55LFxyXG4gICAgICAgIGxhbmd1YWdlID0gdGhpcy5sb2NhbGUubGFuZ3VhZ2VcclxuICAgICk6IHN0cmluZyB8IGFueSB7XHJcbiAgICAgICAgbGFuZ3VhZ2UgPSBmb3JtYXRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5cykpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSB0aGlzLnRyYW5zbGF0ZShrZXksIHBhcmFtcywgbGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZShrZXlzLCB0aGlzLmRhdGFbbGFuZ3VhZ2VdLCB0aGlzLmNvbmZpZy5rZXlTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLnRyYW5zbGF0aW9uSGFuZGxlci5wYXJzZVZhbHVlKGtleXMsIHBhcmFtcywgdmFsdWUpIDogdGhpcy5taXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLmhhbmRsZShrZXlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiBhIHRyYW5zbGF0aW9uIGV4aXN0cy5cclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBiZSB0ZXN0ZWRcclxuICAgICAqIEBwYXJhbSBsYW5ndWFnZSBUaGUgY3VycmVudCBsYW5ndWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFzKGtleTogc3RyaW5nLCBsYW5ndWFnZSA9IHRoaXMubG9jYWxlLmxhbmd1YWdlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGFuZ3VhZ2UgPSBmb3JtYXRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGdldFZhbHVlKGtleSwgdGhpcy5kYXRhW2xhbmd1YWdlXSwgdGhpcy5jb25maWcua2V5U2VwYXJhdG9yKSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGxhbmd1YWdlIGRpcmVjdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldExhbmd1YWdlRGlyZWN0aW9uKGxhbmd1YWdlID0gdGhpcy5sb2NhbGUubGFuZ3VhZ2UpOiAnbHRyJyB8ICdydGwnIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSBnZXRTY2hlbWEodGhpcy5jb25maWcuc2NoZW1hLCBsYW5ndWFnZSwgdGhpcy5jb25maWcuZm9ybWF0KTtcclxuICAgICAgICBpZiAoc2NoZW1hKSByZXR1cm4gc2NoZW1hLmRpcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYXZhaWxhYmxlIGxhbmd1YWdlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuc2NoZW1hLm1hcChpdGVtID0+IGZvcm1hdExhbmd1YWdlKGl0ZW0ubG9jYWxlLmxhbmd1YWdlLCB0aGlzLmNvbmZpZy5mb3JtYXQpKTtcclxuICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlcnZpY2UgaW5zdGFuY2UgaXMgY3JlYXRlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIEwxMG5Sb3V0aW5nU2VydmljZSBoYXMgYWxyZWFkeSBpbml0aWFsaXplZCB0aGUgbG9jYWxlLlxyXG4gICAgICAgIGxldCBsb2NhbGU6IEwxMG5Mb2NhbGUgfCBudWxsID0gdGhpcy5sb2NhbGUubGFuZ3VhZ2UgPyB0aGlzLmxvY2FsZSA6IG51bGw7XHJcblxyXG4gICAgICAgIC8vIFRyaWVzIHRvIGdldCB0aGUgbG9jYWxlIGZyb20gdGhlIHN0b3JhZ2UuXHJcbiAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxvY2FsZSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5yZWFkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRyaWVzIHRvIGdldCB0aGUgbG9jYWxlIHRocm91Z2ggdGhlIHVzZXIgbGFuZ3VhZ2UuXHJcbiAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZXJMYW5ndWFnZSA9IGF3YWl0IHRoaXMudXNlckxhbmd1YWdlLmdldCgpO1xyXG4gICAgICAgICAgICBpZiAoYnJvd3Nlckxhbmd1YWdlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzY2hlbWEgPSBnZXRTY2hlbWEodGhpcy5jb25maWcuc2NoZW1hLCBicm93c2VyTGFuZ3VhZ2UsIHRoaXMuY29uZmlnLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gc2NoZW1hLmxvY2FsZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBHZXRzIHRoZSBkZWZhdWx0IGxvY2FsZS5cclxuICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxlID0gdGhpcy5jb25maWcuZGVmYXVsdExvY2FsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIExvYWRzIHRyYW5zbGF0aW9uIGRhdGEuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHJhbnNsYXRpb24odGhpcy5jb25maWcucHJvdmlkZXJzLCBsb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FuIGJlIGNhbGxlZCBhdCBldmVyeSB0cmFuc2xhdGlvbiBjaGFuZ2UuXHJcbiAgICAgKiBAcGFyYW0gcHJvdmlkZXJzIEFuIGFycmF5IG9mIEwxMG5Qcm92aWRlclxyXG4gICAgICogQHBhcmFtIGxvY2FsZSBUaGUgY3VycmVudCBsb2NhbGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGxvYWRUcmFuc2xhdGlvbihwcm92aWRlcnM6IEwxMG5Qcm92aWRlcltdID0gdGhpcy5jb25maWcucHJvdmlkZXJzLCBsb2NhbGUgPSB0aGlzLmxvY2FsZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIC8vIFVwZGF0ZXMgcHJvdmlkZXJzXHJcbiAgICAgICAgcHJvdmlkZXJzLmZvckVhY2gocHJvdmlkZXIgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVycy5maW5kKHAgPT4gcC5uYW1lID09PSBwcm92aWRlci5uYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGxhbmd1YWdlID0gZm9ybWF0TGFuZ3VhZ2UobG9jYWxlLmxhbmd1YWdlLCB0aGlzLmNvbmZpZy5mb3JtYXQpO1xyXG5cclxuICAgICAgICBpZiAobGFuZ3VhZ2UgPT0gbnVsbCB8fCBsYW5ndWFnZSA9PT0gJycpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbmNhdCguLi50aGlzLmdldFRyYW5zbGF0aW9uKHByb3ZpZGVycywgbGFuZ3VhZ2UpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHRoaXMuYWRkRGF0YShkYXRhLCBsYW5ndWFnZSksXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxlYXNlVHJhbnNsYXRpb24obG9jYWxlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FuIGJlIGNhbGxlZCB0byBhZGQgdHJhbnNsYXRpb24gZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSB0cmFuc2xhdGlvbiBkYXRhIHtrZXk6IHZhbHVlfVxyXG4gICAgICogQHBhcmFtIGxhbmd1YWdlIFRoZSBsYW5ndWFnZSB0byBhZGQgZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkRGF0YShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kYXRhW2xhbmd1YWdlXSA9IHRoaXMuZGF0YVtsYW5ndWFnZV0gIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IG1lcmdlRGVlcCh0aGlzLmRhdGFbbGFuZ3VhZ2VdLCBkYXRhKVxyXG4gICAgICAgICAgICA6IGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbihwcm92aWRlcnM6IEwxMG5Qcm92aWRlcltdLCBsYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+W10ge1xyXG4gICAgICAgIGNvbnN0IGxhenlMb2FkZXJzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgICAgIGxldCBsb2FkZXJzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmFsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgIGxvYWRlcnMgPSBsb2FkZXJzLmNvbmNhdCh0aGlzLnRyYW5zbGF0aW9uRmFsbGJhY2suZ2V0KGxhbmd1YWdlLCBwcm92aWRlcikpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNhY2hlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGF6eUxvYWRlcnMucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZS5yZWFkKGAke3Byb3ZpZGVyLm5hbWV9LSR7bGFuZ3VhZ2V9YCwgdGhpcy50cmFuc2xhdGlvbkxvYWRlci5nZXQobGFuZ3VhZ2UsIHByb3ZpZGVyKSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXp5TG9hZGVycy5wdXNoKHRoaXMudHJhbnNsYXRpb25Mb2FkZXIuZ2V0KGxhbmd1YWdlLCBwcm92aWRlcikpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxvYWRlcnMucHVzaChtZXJnZSguLi5sYXp5TG9hZGVycykpO1xyXG5cclxuICAgICAgICByZXR1cm4gbG9hZGVycztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVycm9yLm5leHQoZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVsZWFzZVRyYW5zbGF0aW9uKGxvY2FsZTogTDEwbkxvY2FsZSk6IHZvaWQge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5sb2NhbGUsIGxvY2FsZSk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbi5uZXh0KHRoaXMubG9jYWxlKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2Uud3JpdGUodGhpcy5sb2NhbGUpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=

@@ -17,3 +17,3 @@ import { Injectable, Inject } from '@angular/core';

let browserLanguage = null;
if (navigator !== undefined && navigator.language) {
if (typeof navigator !== 'undefined' && navigator.language) {
switch (this.config.format) {

@@ -37,2 +37,2 @@ case 'language':

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi11c2VyLWxhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1sMTBuL3NyYy9saWIvc2VydmljZXMvbDEwbi11c2VyLWxhbmd1YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRTs7R0FFRztBQUNXLE1BQU0sT0FBZ0IsZ0JBQWdCOzs7WUFBbkQsVUFBVTs7QUFVRyxNQUFNLE9BQU8sdUJBQXVCO0lBRTlDLFlBQXlDLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFBSSxDQUFDO0lBRXpELEdBQUc7UUFDTixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDL0MsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsS0FBSyxVQUFVO29CQUNYLGVBQWUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkQsTUFBTTtnQkFDVixLQUFLLGlCQUFpQjtvQkFDbEIsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLE1BQU07YUFDYjtTQUNKO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OztZQWpCSixVQUFVOzs7NENBRU0sTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEwxME5fQ09ORklHLCBMMTBuQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2wxMG4tY29uZmlnJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnQgdGhpcyBjbGFzcy1pbnRlcmZhY2UgdG8gZ2V0IHRoZSB1c2VyIGxhbmd1YWdlLlxyXG4gKi9cclxuQEluamVjdGFibGUoKSBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTDEwblVzZXJMYW5ndWFnZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGNvbnRhaW4gdGhlIGxvZ2ljIHRvIGdldCB0aGUgdXNlciBsYW5ndWFnZS5cclxuICAgICAqIEByZXR1cm4gVGhlIHVzZXIgbGFuZ3VhZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGdldCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKSBleHBvcnQgY2xhc3MgTDEwbkRlZmF1bHRVc2VyTGFuZ3VhZ2UgaW1wbGVtZW50cyBMMTBuVXNlckxhbmd1YWdlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEwxME5fQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTDEwbkNvbmZpZykgeyB9XHJcblxyXG4gICAgcHVibGljIGdldCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcclxuICAgICAgICBsZXQgYnJvd3Nlckxhbmd1YWdlID0gbnVsbDtcclxuICAgICAgICBpZiAobmF2aWdhdG9yICE9PSB1bmRlZmluZWQgJiYgbmF2aWdhdG9yLmxhbmd1YWdlKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jb25maWcuZm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsYW5ndWFnZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgYnJvd3Nlckxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsYW5ndWFnZS1yZWdpb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJMYW5ndWFnZSA9IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGJyb3dzZXJMYW5ndWFnZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDEwbi11c2VyLWxhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1sMTBuL3NyYy9saWIvc2VydmljZXMvbDEwbi11c2VyLWxhbmd1YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRTs7R0FFRztBQUNXLE1BQU0sT0FBZ0IsZ0JBQWdCOzs7WUFBbkQsVUFBVTs7QUFVRyxNQUFNLE9BQU8sdUJBQXVCO0lBRTlDLFlBQXlDLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFBSSxDQUFDO0lBRXpELEdBQUc7UUFDTixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUN4RCxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUN4QixLQUFLLFVBQVU7b0JBQ1gsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxNQUFNO2dCQUNWLEtBQUssaUJBQWlCO29CQUNsQixlQUFlLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztvQkFDckMsTUFBTTthQUNiO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7O1lBakJKLFVBQVU7Ozs0Q0FFTSxNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTDEwTl9DT05GSUcsIEwxMG5Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvbDEwbi1jb25maWcnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudCB0aGlzIGNsYXNzLWludGVyZmFjZSB0byBnZXQgdGhlIHVzZXIgbGFuZ3VhZ2UuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMMTBuVXNlckxhbmd1YWdlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIG11c3QgY29udGFpbiB0aGUgbG9naWMgdG8gZ2V0IHRoZSB1c2VyIGxhbmd1YWdlLlxyXG4gICAgICogQHJldHVybiBUaGUgdXNlciBsYW5ndWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0KCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XHJcblxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpIGV4cG9ydCBjbGFzcyBMMTBuRGVmYXVsdFVzZXJMYW5ndWFnZSBpbXBsZW1lbnRzIEwxMG5Vc2VyTGFuZ3VhZ2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTDEwTl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMMTBuQ29uZmlnKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0KCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgICAgIGxldCBicm93c2VyTGFuZ3VhZ2UgPSBudWxsO1xyXG4gICAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IubGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNvbmZpZy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xhbmd1YWdlJzpcclxuICAgICAgICAgICAgICAgICAgICBicm93c2VyTGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xhbmd1YWdlLXJlZ2lvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgYnJvd3Nlckxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYnJvd3Nlckxhbmd1YWdlKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19

@@ -56,3 +56,3 @@ import { InjectionToken, Injectable, Inject, ChangeDetectorRef, Directive, ElementRef, Renderer2, Input, ɵɵdefineInjectable, ɵɵinject, Injector, Pipe, NgModule, forwardRef } from '@angular/core';

let browserLanguage = null;
if (navigator !== undefined && navigator.language) {
if (typeof navigator !== 'undefined' && navigator.language) {
browserLanguage = navigator.language.split('-')[0];

@@ -268,3 +268,3 @@ }

let browserLanguage = null;
if (navigator !== undefined && navigator.language) {
if (typeof navigator !== 'undefined' && navigator.language) {
switch (this.config.format) {

@@ -482,6 +482,8 @@ case 'language':

return __awaiter(this, void 0, void 0, function* () {
if (this.locale.language)
return Promise.resolve();
// Checks whether the L10nRoutingService has already initialized the locale.
let locale = this.locale.language ? this.locale : null;
// Tries to get the locale from the storage.
let locale = yield this.storage.read();
if (locale == null) {
locale = yield this.storage.read();
}
// Tries to get the locale through the user language.

@@ -817,3 +819,2 @@ if (locale == null) {

return __awaiter(this, void 0, void 0, function* () {
yield this.translation.init();
yield this.translation.loadTranslation(route.data.l10nProviders);

@@ -820,0 +821,0 @@ });

{
"name": "angular-l10n",
"version": "10.0.0",
"version": "10.0.1",
"author": "Roberto Simonetti",

@@ -5,0 +5,0 @@ "description": "An Angular library to translate texts, dates and numbers",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc