@dotglitch/ngx-common 1.0.48 → 1.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Inject, Injectable, InjectionToken } from '@angular/core';
2
2
  import { ComponentResolveStrategy } from './types';
3
- import { stringToSlug, Logger } from '../../utils';
3
+ import { stringToSlug, ConsoleLogger } from '../../utils';
4
4
  import * as i0 from "@angular/core";
5
5
  // Monkey-patch the type of these symbols.
6
6
  const $id = Symbol("id");
@@ -15,7 +15,7 @@ export class LazyLoaderService {
15
15
  LazyLoaderService.configure(config);
16
16
  }
17
17
  static configure(config) {
18
- const { log, warn, err } = Logger("ngx-lazy-loader", "#009688");
18
+ const { log, warn, err } = ConsoleLogger("ngx-lazy-loader", "#009688");
19
19
  this.config = {
20
20
  componentResolveStrategy: ComponentResolveStrategy.PickFirst,
21
21
  logger: {
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
212
212
  type: Inject,
213
213
  args: [NGX_LAZY_LOADER_CONFIG]
214
214
  }] }]; } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQTRELHdCQUF3QixFQUFnRCxNQUFNLFNBQVMsQ0FBQztBQUMzSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFbkQsMENBQTBDO0FBQzFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQWtCLENBQUM7QUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBa0IsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsbUJBQW1CLENBQUMsQ0FBQztBQUtuRyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLElBQVksR0FBRyxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLElBQVksR0FBRyxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLElBQVksSUFBSSxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBU25FLFlBQTRDLFNBQThCLEVBQUU7UUFDeEUsb0ZBQW9GO1FBQ3BGLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxNQUFNLEVB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LE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBYyxDQUFDLENBQUM7YUFDbEU7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQzs7QUFyUEQsaURBQWlEO0FBQ2xDLDBCQUFRLEdBRW5CLEVBQUUsQ0FBQzs4R0FSRSxpQkFBaUIsa0JBWU4sc0JBQXNCO2tIQVpqQyxpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWFnQixNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21waWxlZENvbXBvbmVudCwgQ29tcGlsZWRNb2R1bGUsIENvbXBvbmVudFJlZ2lzdHJhdGlvbiwgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5LCBEeW5hbWljUmVnaXN0cmF0aW9uQXJncywgTmd4TGF6eUxvYWRlckNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgc3RyaW5nVG9TbHVnLCBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbi8vIE1vbmtleS1wYXRjaCB0aGUgdHlwZSBvZiB0aGVzZSBzeW1ib2xzLlxuY29uc3QgJGlkID0gU3ltYm9sKFwiaWRcIikgYXMgYW55IGFzIHN0cmluZztcbmNvbnN0ICRncm91cCA9IFN5bWJvbChcImdyb3VwXCIpIGFzIGFueSBhcyBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBOR1hfTEFaWV9MT0FERVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE5neExhenlMb2FkZXJDb25maWc+KCdsYXp5bG9hZGVyLWNvbmZpZycpO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExhenlMb2FkZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGdldCBlcnIoKSB7IHJldHVybiBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLmVycjsgfVxuICAgIHByaXZhdGUgZ2V0IGxvZygpIHsgcmV0dXJuIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIubG9nOyB9XG4gICAgcHJpdmF0ZSBnZXQgd2FybigpIHsgcmV0dXJuIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIud2FybjsgfVxuXG4gICAgLy8gQSBwcm94aWVkIHJlZ2lzdHJ5IHRoYXQgbXV0YXRlcyByZWZlcmVuY2Uga2V5c1xuICAgIHByaXZhdGUgc3RhdGljIHJlZ2lzdHJ5OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IENvbXBvbmVudFJlZ2lzdHJhdGlvbltdO1xuICAgIH0gPSB7fTtcblxuICAgIHB1YmxpYyBzdGF0aWMgY29uZmlnOiBOZ3hMYXp5TG9hZGVyQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChOR1hfTEFaWV9MT0FERVJfQ09ORklHKSBjb25maWc6IE5neExhenlMb2FkZXJDb25maWcgPSB7fSkge1xuICAgICAgICAvLyBFbnN1cmUgdGhpcyBpcyBzaW5nbGV0b24gYW5kIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygc3BlY2lhbCBpbnN0YW5jaW5nIHJlcXVpcmVtZW50cy5cbiAgICAgICAgTGF6eUxvYWRlclNlcnZpY2UuY29uZmlndXJlKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29uZmlndXJlKGNvbmZpZzogTmd4TGF6eUxvYWRlckNvbmZpZykge1xuICAgICAgICBjb25zdCB7IGxvZywgd2FybiwgZXJyIH0gPSBMb2dnZXIoXCJuZ3gtbGF6eS1sb2FkZXJcIiwgXCIjMDA5Njg4XCIpO1xuXG4gICAgICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgICAgICAgY29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5OiBDb21wb25lbnRSZXNvbHZlU3RyYXRlZ3kuUGlja0ZpcnN0LFxuICAgICAgICAgICAgbG9nZ2VyOiB7XG4gICAgICAgICAgICAgICAgbG9nLFxuICAgICAgICAgICAgICAgIHdhcm4sXG4gICAgICAgICAgICAgICAgZXJyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uY29uZmlnXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uZmlnLmVudHJpZXM/LmZvckVhY2goZSA9PiB0aGlzLmFkZENvbXBvbmVudFRvUmVnaXN0cnkoZSkpXG5cbiAgICAgICAgLy8gSWYgYSBjdXN0b20gcmVzb2x1dGlvbiBzdHJhdGVneSBpcyBwcm92aWRlZCBidXQgbm8gcmVzb2x1dGlvbiBmdW5jdGlvbiBpcyBwYXNzZWQsXG4gICAgICAgIC8vIHdlIHRocm93IGFuIGVycm9yXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmNvbXBvbmVudFJlc29sdmVTdHJhdGVneSA9PSBDb21wb25lbnRSZXNvbHZlU3RyYXRlZ3kuQ3VzdG9tICYmXG4gICAgICAgICAgICAhdGhpcy5jb25maWcuY3VzdG9tUmVzb2x2ZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgaW5pdGlhbGl6ZS4gQ29uZmlndXJhdGlvbiBzcGVjaWZpZXMgYSBjdXN0b20gcmVzb2x2ZSBtYXRjaGVyIGJ1dCBub25lIHdhcyBwcm92aWRlZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sb2FkZXJEaXN0cmFjdG9yQ29tcG9uZW50ICYmIHRoaXMuY29uZmlnLmxvYWRlckRpc3RyYWN0b3JUZW1wbGF0ZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXZlIGJvdGggYSBDb21wb25lbnQgYW5kIFRlbXBsYXRlIGZvciBEaXN0cmFjdG9yIHZpZXcuXCIpXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5lcnJvckNvbXBvbmVudCAmJiB0aGlzLmNvbmZpZy5lcnJvclRlbXBsYXRlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGhhdmUgYm90aCBhIENvbXBvbmVudCBhbmQgVGVtcGxhdGUgZm9yIEVycm9yIHZpZXcuXCIpXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5ub3RGb3VuZENvbXBvbmVudCAmJiB0aGlzLmNvbmZpZy5ub3RGb3VuZFRlbXBsYXRlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGhhdmUgYm90aCBhIENvbXBvbmVudCBhbmQgVGVtcGxhdGUgZm9yIE5vdEZvdW5kIHZpZXcuXCIpXG5cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhZGRDb21wb25lbnRUb1JlZ2lzdHJ5KHJlZ2lzdHJhdGlvbjogQ29tcG9uZW50UmVnaXN0cmF0aW9uKSB7XG4gICAgICAgIGlmICghcmVnaXN0cmF0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFkZCA8dW5kZWZpbmVkPiBjb21wb25lbnQgaW50byByZWdpc3RyeS5cIik7XG5cbiAgICAgICAgLy8gQ2xvbmUgdGhlIG9iamVjdCBpbnRvIG91ciByZXBvc2l0b3J5IGFuZCB0cmFuc2ZlciB0aGUgaWQgaW50byBhIHN0YW5kYXJkaXplZCBzbHVnIGZvcm1hdFxuXG4gICAgICAgIGNvbnN0IGlkID0gc3RyaW5nVG9TbHVnKHJlZ2lzdHJhdGlvbi5pZCA/PyBEYXRlLm5vdygpLnRvU3RyaW5nKCkpOyAvLyBwdXJnZSBub24tYmFzaWMgQVNDSUkgY2hhcnNcbiAgICAgICAgY29uc3QgZ3JvdXAgPSByZWdpc3RyYXRpb24uZ3JvdXAgfHwgXCJkZWZhdWx0XCI7XG5cbiAgICAgICAgcmVnaXN0cmF0aW9uWyRpZF0gPSBpZDtcbiAgICAgICAgcmVnaXN0cmF0aW9uWyRncm91cF0gPSBpZDtcblxuXG4gICAgICAgIGlmICghdGhpcy5yZWdpc3RyeVtncm91cF0pXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdHJ5W2dyb3VwXSA9IFtdO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHdlIGFscmVhZHkgaGF2ZSBhIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGNvbXBvbmVudFxuICAgICAgICAvLyBpZiAodGhpcy5yZWdpc3RyeVtncm91cF0gJiYgdHlwZW9mIHRoaXMucmVnaXN0cnlbZ3JvdXBdWydsb2FkJ10gPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vICAgICAvLyBXYXJuIHRoZSBkZXZlbG9wZXIgdGhhdCB0aGUgc3RhdGUgaXMgcHJvYmxlbWF0aWNcbiAgICAgICAgLy8gICAgIHRoaXMuY29uZmlnLmxvZ2dlci53YXJuKFxuICAgICAgICAvLyAgICAgICAgIGBBIHByZXZpb3VzIGVudHJ5IGFscmVhZHkgZXhpc3RzIGZvciAke2lkfSEgVGhlIG9sZCByZWdpc3RyYXRpb24gd2lsbCBiZSBvdmVycmlkZGVuLmAgK1xuICAgICAgICAvLyAgICAgICAgIGBQbGVhc2UgZW5zdXJlIHlvdSB1c2UgZ3JvdXBzIGlmIHlvdSBpbnRlbmQgdG8gaGF2ZSBkdXBsaWNhdGUgY29tcG9uZW50IGlkcy4gYCArXG4gICAgICAgIC8vICAgICAgICAgYElmIHRoaXMgd2FzIGludGVudGlvbmFsLCBmaXJzdCByZW1vdmUgdGhlIG9sZCBjb21wb25lbnQgZnJvbSB0aGUgcmVnaXN0cnkgYmVmb3JlIGFkZGluZyBhIG5ldyBpbnN0YW5jZWBcbiAgICAgICAgLy8gICAgICk7XG5cbiAgICAgICAgLy8gICAgIC8vIElmIHdlJ3JlIGluIGRldiBtb2RlLCBicmVhayB0aGUgbG9hZGVyIHN1cmZhY2VcbiAgICAgICAgLy8gICAgIGlmIChpc0Rldk1vZGUoKSlcbiAgICAgICAgLy8gICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIH1cblxuICAgICAgICB0aGlzLnJlZ2lzdHJ5W2dyb3VwXS5wdXNoKHJlZ2lzdHJhdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYW4gQW5ndWxhciBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0gaWQgaWRlbnRpZmllciB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSB0aGUgY29tcG9uZW50XG4gICAgICogQHBhcmFtIGdyb3VwXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCBBbmd1bGFyIENvbXBvbmVudCBDbGFzcyBjb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlckNvbXBvbmVudDxUIGV4dGVuZHMgeyBuZXcoLi4uYXJnczogYW55W10pOiBJbnN0YW5jZVR5cGU8VD47IH0+KGFyZ3M6IER5bmFtaWNSZWdpc3RyYXRpb25BcmdzPFQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ29tcG9uZW50UmVnaXN0ZXJlZChhcmdzLmlkLCBhcmdzLmdyb3VwKSkge1xuICAgICAgICAgICAgdGhpcy5sb2coYFdpbGwgbm90IHJlLXJlZ2lzdGVyIGNvbXBvbmVudCAnJHthcmdzLmlkfScgaW4gZ3JvdXAgJyR7YXJncy5ncm91cCB8fCAnZGVmYXVsdCd9JyBgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIExhenlMb2FkZXJTZXJ2aWNlLmFkZENvbXBvbmVudFRvUmVnaXN0cnkoe1xuICAgICAgICAgICAgaWQ6IHN0cmluZ1RvU2x1ZyhhcmdzLmlkKSxcbiAgICAgICAgICAgIG1hdGNoZXI6IGFyZ3MubWF0Y2hlcixcbiAgICAgICAgICAgIGdyb3VwOiBzdHJpbmdUb1NsdWcoYXJncy5ncm91cCB8fCBcImRlZmF1bHRcIiksXG4gICAgICAgICAgICBsb2FkOiBhcmdzLmxvYWQgfHwgKCgpID0+IGFyZ3MuY29tcG9uZW50KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZFxuICAgICAqIEBwYXJhbSBncm91cFxuICAgICAqL1xuICAgIHB1YmxpYyB1bnJlZ2lzdGVyQ29tcG9uZW50KGlkOiBzdHJpbmcsIGdyb3VwID0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgY29uc3QgX2lkID0gc3RyaW5nVG9TbHVnKGlkKTtcbiAgICAgICAgY29uc3QgX2dyb3VwID0gc3RyaW5nVG9TbHVnKGdyb3VwKTtcblxuICAgICAgICBpZiAoIXRoaXMucmVzb2x2ZVJlZ2lzdHJhdGlvbkVudHJ5KGlkLCBncm91cCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdW5yZWdpc3RlciBjb21wb25lbnQgJHt9ISBDb21wb25lbnQgaXMgbm90IHByZXNlbnQgaW4gcmVnaXN0cnlcIilcblxuICAgICAgICAvLyBUT0RPOiBoYW5kbGUgY2xlYXJpbmcgcnVubmluZyBpbnN0YW5jZXNcbiAgICAgICAgZGVsZXRlIExhenlMb2FkZXJTZXJ2aWNlLnJlZ2lzdHJ5W19ncm91cF1bX2lkXTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgcmVnaXN0cmF0aW9uIGVudHJ5IGZvciBhIGNvbXBvbmVudC5cbiAgICAgKiBSZXR1cm5zIG51bGwgaWYgY29tcG9uZW50IGlzIG5vdCBpbiB0aGUgcmVnaXN0cnkuXG4gICAgICovXG4gICAgcHVibGljIHJlc29sdmVSZWdpc3RyYXRpb25FbnRyeSh2YWx1ZTogc3RyaW5nLCBncm91cCA9IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgIGNvbnN0IF9pZCA9IHN0cmluZ1RvU2x1Zyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IF9ncm91cCA9IHN0cmluZ1RvU2x1Zyhncm91cCk7XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0R3JvdXAgPSAoTGF6eUxvYWRlclNlcnZpY2UucmVnaXN0cnlbX2dyb3VwXSB8fCBbXSk7XG5cbiAgICAgICAgbGV0IGl0ZW1zID0gdGFyZ2V0R3JvdXAuZmlsdGVyKHQgPT4ge1xuICAgICAgICAgICAgaWYgKCF0KSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIE5vIG1hdGNoZXIsIGNoZWNrIGlkXG4gICAgICAgICAgICBpZiAoIXQubWF0Y2hlcilcbiAgICAgICAgICAgICAgICByZXR1cm4gdFskaWRdID09IF9pZDtcblxuICAgICAgICAgICAgLy8gTWF0Y2hlciBpcyByZWdleFxuICAgICAgICAgICAgaWYgKHQubWF0Y2hlciBpbnN0YW5jZW9mIFJlZ0V4cClcbiAgICAgICAgICAgICAgICByZXR1cm4gdC5tYXRjaGVyLnRlc3QoX2lkKSB8fCB0Lm1hdGNoZXIudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIC8vIE1hdGNoZXIgaXMgc3RyaW5nID0+IHJlZ2V4XG4gICAgICAgICAgICBpZiAodHlwZW9mIHQubWF0Y2hlciA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCh0Lm1hdGNoZXIsICd1aScpO1xuICAgICAgICAgICAgICAgIHJldHVybiByeC50ZXN0KF9pZCkgfHwgcngudGVzdCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1hdGNoZXIgaXMgYXJyYXlcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHQubWF0Y2hlcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISF0Lm1hdGNoZXIuZmluZChlID0+IHN0cmluZ1RvU2x1ZyhlKSA9PSBfaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDdXN0b20gbWF0Y2hlciBmdW5jdGlvblxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0Lm1hdGNoZXIgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHJldHVybiB0Lm1hdGNoZXIoX2lkKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy53YXJuKFwiUmVzb2x2ZWQgbXVsdGlwbGUgY29tcG9uZW50cyBmb3IgdGhlIHByb3ZpZGVkIGBbY29tcG9uZW50XWAgYmluZGluZy4gVGhpcyBtYXkgY2F1c2UgVUkgY29uZmxpY3RzLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3V0ID0gaXRlbXNbMF07XG5cbiAgICAgICAgaWYgKG91dC5tYXRjaGVyIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBfaWQubWF0Y2gob3V0Lm1hdGNoZXIpIHx8IHZhbHVlLm1hdGNoKG91dC5tYXRjaGVyKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbnRyeTogb3V0LFxuICAgICAgICAgICAgICAgIG1hdGNoR3JvdXBzOiByZXN1bHQ/Lmdyb3Vwc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGVudHJ5OiBvdXQgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGNvbXBvbmVudCBpcyBjdXJyZW50bHkgcmVnaXN0ZXJlZFxuICAgICAqIENhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIHJlZ2V4IG1hdGNoZXJzIGFuZCBhbGlhc2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0NvbXBvbmVudFJlZ2lzdGVyZWQodmFsdWU6IHN0cmluZywgZ3JvdXAgPSBcImRlZmF1bHRcIikge1xuICAgICAgICByZXR1cm4gISF0aGlzLnJlc29sdmVSZWdpc3RyYXRpb25FbnRyeSh2YWx1ZSwgZ3JvdXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGJ1bmRsZVxuICAgICAqIEByZXR1cm5zIFRoZSBjb21wb25lbnQgYE9iamVjdGAgaWYgYSBjb21wb25lbnQgd2FzIHJlc29sdmVkLCBgbnVsbGAgaWYgbm8gY29tcG9uZW50IHdhcyBmb3VuZFxuICAgICAqIGBmYWxzZWAgaWYgdGhlIHNwZWNpZmllZCBzdHJhdGVneSB3YXMgYW4gaW52YWxpZCBzZWxlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzb2x2ZUNvbXBvbmVudChpZDogc3RyaW5nLCBncm91cDogc3RyaW5nLCBtb2R1bGVzOiAoQ29tcGlsZWRDb21wb25lbnQgfCBDb21waWxlZE1vZHVsZSlbXSk6IE9iamVjdCB8IG51bGwgfCBmYWxzZSB7XG5cbiAgICAgICAgc3dpdGNoIChMYXp5TG9hZGVyU2VydmljZS5jb25maWcuY29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5KSB7XG4gICAgICAgICAgICBjYXNlIENvbXBvbmVudFJlc29sdmVTdHJhdGVneS5QaWNrRmlyc3Q6IHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGVzWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFeGFjdCBpZCAtPiBjbGFzc25hbWUgbWF0Y2hcbiAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5Lk1hdGNoSWRUb0NsYXNzTmFtZToge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPVxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGsgPT4gay5uYW1lID09IGlkKTtcblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRnV6enkgaWQgLT4gY2xhc3NuYW1lIG1hdGNoXG4gICAgICAgICAgICBjYXNlIENvbXBvbmVudFJlc29sdmVTdHJhdGVneS5GdXp6eUlkQ2xhc3NOYW1lOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgX2lkID0gaWQucmVwbGFjZSgvW15hLXowLTlfXFwtXS9pZywgJycpO1xuXG4gICAgICAgICAgICAgICAgaWYgKF9pZC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLmVycihcIkZ1enp5IGNsYXNzbmFtZSBtYXRjaGluZyBzdHJpcHBlZCBhbGwgc3ltYm9scyBmcm9tIHRoZSBJRCBzcGVjaWZpZWQhXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcnggPSBuZXcgUmVnRXhwKGBeJHtpZH0oY29tcG9uZW50fG1vZHVsZSk/JGAsIFwiaVwiKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBtb2R1bGVzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobW9kID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBraWQgPSBtb2QubmFtZS5yZXBsYWNlKC9bXmEtejAtOV9cXC1dL2lnLCAnJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByeC50ZXN0KGtpZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLmVycihcIkZ1enp5IGNsYXNzbmFtZSBtYXRjaGluZyByZXNvbHZlZCBtdWx0aXBsZSB0YXJnZXRzIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIuZXJyKFwiRnV6enkgY2xhc3NuYW1lIG1hdGNoaW5nIHJlc29sdmVkIG5vIHRhcmdldHMhXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5LkN1c3RvbToge1xuICAgICAgICAgICAgICAgIHJldHVybiBMYXp5TG9hZGVyU2VydmljZS5jb25maWcuY3VzdG9tUmVzb2x2ZXIobW9kdWxlcyBhcyBhbnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQTRELHdCQUF3QixFQUFnRCxNQUFNLFNBQVMsQ0FBQztBQUMzSixPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFMUQsMENBQTBDO0FBQzFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQWtCLENBQUM7QUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBa0IsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsbUJBQW1CLENBQUMsQ0FBQztBQUtuRyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLElBQVksR0FBRyxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLElBQVksR0FBRyxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLElBQVksSUFBSSxLQUFLLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBU25FLFlBQTRDLFNBQThCLEVBQUU7UUFDeEUsb0ZBQW9GO1FBQ3BGLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxNQUFNLEVB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LE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBYyxDQUFDLENBQUM7YUFDbEU7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQzs7QUFyUEQsaURBQWlEO0FBQ2xDLDBCQUFRLEdBRW5CLEVBQUUsQ0FBQzs4R0FSRSxpQkFBaUIsa0JBWU4sc0JBQXNCO2tIQVpqQyxpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWFnQixNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21waWxlZENvbXBvbmVudCwgQ29tcGlsZWRNb2R1bGUsIENvbXBvbmVudFJlZ2lzdHJhdGlvbiwgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5LCBEeW5hbWljUmVnaXN0cmF0aW9uQXJncywgTmd4TGF6eUxvYWRlckNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgc3RyaW5nVG9TbHVnLCBDb25zb2xlTG9nZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG4vLyBNb25rZXktcGF0Y2ggdGhlIHR5cGUgb2YgdGhlc2Ugc3ltYm9scy5cbmNvbnN0ICRpZCA9IFN5bWJvbChcImlkXCIpIGFzIGFueSBhcyBzdHJpbmc7XG5jb25zdCAkZ3JvdXAgPSBTeW1ib2woXCJncm91cFwiKSBhcyBhbnkgYXMgc3RyaW5nO1xuXG5leHBvcnQgY29uc3QgTkdYX0xBWllfTE9BREVSX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hMYXp5TG9hZGVyQ29uZmlnPignbGF6eWxvYWRlci1jb25maWcnKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZGVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSBnZXQgZXJyKCkgeyByZXR1cm4gTGF6eUxvYWRlclNlcnZpY2UuY29uZmlnLmxvZ2dlci5lcnI7IH1cbiAgICBwcml2YXRlIGdldCBsb2coKSB7IHJldHVybiBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLmxvZzsgfVxuICAgIHByaXZhdGUgZ2V0IHdhcm4oKSB7IHJldHVybiBMYXp5TG9hZGVyU2VydmljZS5jb25maWcubG9nZ2VyLndhcm47IH1cblxuICAgIC8vIEEgcHJveGllZCByZWdpc3RyeSB0aGF0IG11dGF0ZXMgcmVmZXJlbmNlIGtleXNcbiAgICBwcml2YXRlIHN0YXRpYyByZWdpc3RyeToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBDb21wb25lbnRSZWdpc3RyYXRpb25bXTtcbiAgICB9ID0ge307XG5cbiAgICBwdWJsaWMgc3RhdGljIGNvbmZpZzogTmd4TGF6eUxvYWRlckNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdYX0xBWllfTE9BREVSX0NPTkZJRykgY29uZmlnOiBOZ3hMYXp5TG9hZGVyQ29uZmlnID0ge30pIHtcbiAgICAgICAgLy8gRW5zdXJlIHRoaXMgaXMgc2luZ2xldG9uIGFuZCB3b3JrcyByZWdhcmRsZXNzIG9mIHNwZWNpYWwgaW5zdGFuY2luZyByZXF1aXJlbWVudHMuXG4gICAgICAgIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZ3VyZShjb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNvbmZpZ3VyZShjb25maWc6IE5neExhenlMb2FkZXJDb25maWcpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIHdhcm4sIGVyciB9ID0gQ29uc29sZUxvZ2dlcihcIm5neC1sYXp5LWxvYWRlclwiLCBcIiMwMDk2ODhcIik7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZXNvbHZlU3RyYXRlZ3k6IENvbXBvbmVudFJlc29sdmVTdHJhdGVneS5QaWNrRmlyc3QsXG4gICAgICAgICAgICBsb2dnZXI6IHtcbiAgICAgICAgICAgICAgICBsb2csXG4gICAgICAgICAgICAgICAgd2FybixcbiAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi5jb25maWdcbiAgICAgICAgfTtcblxuICAgICAgICBjb25maWcuZW50cmllcz8uZm9yRWFjaChlID0+IHRoaXMuYWRkQ29tcG9uZW50VG9SZWdpc3RyeShlKSlcblxuICAgICAgICAvLyBJZiBhIGN1c3RvbSByZXNvbHV0aW9uIHN0cmF0ZWd5IGlzIHByb3ZpZGVkIGJ1dCBubyByZXNvbHV0aW9uIGZ1bmN0aW9uIGlzIHBhc3NlZCxcbiAgICAgICAgLy8gd2UgdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5jb25maWcuY29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5ID09IENvbXBvbmVudFJlc29sdmVTdHJhdGVneS5DdXN0b20gJiZcbiAgICAgICAgICAgICF0aGlzLmNvbmZpZy5jdXN0b21SZXNvbHZlclxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBpbml0aWFsaXplLiBDb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGN1c3RvbSByZXNvbHZlIG1hdGNoZXIgYnV0IG5vbmUgd2FzIHByb3ZpZGVkXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvYWRlckRpc3RyYWN0b3JDb21wb25lbnQgJiYgdGhpcy5jb25maWcubG9hZGVyRGlzdHJhY3RvclRlbXBsYXRlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGhhdmUgYm90aCBhIENvbXBvbmVudCBhbmQgVGVtcGxhdGUgZm9yIERpc3RyYWN0b3Igdmlldy5cIilcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmVycm9yQ29tcG9uZW50ICYmIHRoaXMuY29uZmlnLmVycm9yVGVtcGxhdGUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgaGF2ZSBib3RoIGEgQ29tcG9uZW50IGFuZCBUZW1wbGF0ZSBmb3IgRXJyb3Igdmlldy5cIilcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm5vdEZvdW5kQ29tcG9uZW50ICYmIHRoaXMuY29uZmlnLm5vdEZvdW5kVGVtcGxhdGUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgaGF2ZSBib3RoIGEgQ29tcG9uZW50IGFuZCBUZW1wbGF0ZSBmb3IgTm90Rm91bmQgdmlldy5cIilcblxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGFkZENvbXBvbmVudFRvUmVnaXN0cnkocmVnaXN0cmF0aW9uOiBDb21wb25lbnRSZWdpc3RyYXRpb24pIHtcbiAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYWRkIDx1bmRlZmluZWQ+IGNvbXBvbmVudCBpbnRvIHJlZ2lzdHJ5LlwiKTtcblxuICAgICAgICAvLyBDbG9uZSB0aGUgb2JqZWN0IGludG8gb3VyIHJlcG9zaXRvcnkgYW5kIHRyYW5zZmVyIHRoZSBpZCBpbnRvIGEgc3RhbmRhcmRpemVkIHNsdWcgZm9ybWF0XG5cbiAgICAgICAgY29uc3QgaWQgPSBzdHJpbmdUb1NsdWcocmVnaXN0cmF0aW9uLmlkID8/IERhdGUubm93KCkudG9TdHJpbmcoKSk7IC8vIHB1cmdlIG5vbi1iYXNpYyBBU0NJSSBjaGFyc1xuICAgICAgICBjb25zdCBncm91cCA9IHJlZ2lzdHJhdGlvbi5ncm91cCB8fCBcImRlZmF1bHRcIjtcblxuICAgICAgICByZWdpc3RyYXRpb25bJGlkXSA9IGlkO1xuICAgICAgICByZWdpc3RyYXRpb25bJGdyb3VwXSA9IGlkO1xuXG5cbiAgICAgICAgaWYgKCF0aGlzLnJlZ2lzdHJ5W2dyb3VwXSlcbiAgICAgICAgICAgIHRoaXMucmVnaXN0cnlbZ3JvdXBdID0gW107XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcmVnaXN0cmF0aW9uIGZvciB0aGUgY29tcG9uZW50XG4gICAgICAgIC8vIGlmICh0aGlzLnJlZ2lzdHJ5W2dyb3VwXSAmJiB0eXBlb2YgdGhpcy5yZWdpc3RyeVtncm91cF1bJ2xvYWQnXSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgLy8gICAgIC8vIFdhcm4gdGhlIGRldmVsb3BlciB0aGF0IHRoZSBzdGF0ZSBpcyBwcm9ibGVtYXRpY1xuICAgICAgICAvLyAgICAgdGhpcy5jb25maWcubG9nZ2VyLndhcm4oXG4gICAgICAgIC8vICAgICAgICAgYEEgcHJldmlvdXMgZW50cnkgYWxyZWFkeSBleGlzdHMgZm9yICR7aWR9ISBUaGUgb2xkIHJlZ2lzdHJhdGlvbiB3aWxsIGJlIG92ZXJyaWRkZW4uYCArXG4gICAgICAgIC8vICAgICAgICAgYFBsZWFzZSBlbnN1cmUgeW91IHVzZSBncm91cHMgaWYgeW91IGludGVuZCB0byBoYXZlIGR1cGxpY2F0ZSBjb21wb25lbnQgaWRzLiBgICtcbiAgICAgICAgLy8gICAgICAgICBgSWYgdGhpcyB3YXMgaW50ZW50aW9uYWwsIGZpcnN0IHJlbW92ZSB0aGUgb2xkIGNvbXBvbmVudCBmcm9tIHRoZSByZWdpc3RyeSBiZWZvcmUgYWRkaW5nIGEgbmV3IGluc3RhbmNlYFxuICAgICAgICAvLyAgICAgKTtcblxuICAgICAgICAvLyAgICAgLy8gSWYgd2UncmUgaW4gZGV2IG1vZGUsIGJyZWFrIHRoZSBsb2FkZXIgc3VyZmFjZVxuICAgICAgICAvLyAgICAgaWYgKGlzRGV2TW9kZSgpKVxuICAgICAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHRoaXMucmVnaXN0cnlbZ3JvdXBdLnB1c2gocmVnaXN0cmF0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhbiBBbmd1bGFyIGNvbXBvbmVudFxuICAgICAqIEBwYXJhbSBpZCBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byByZXNvbHZlIHRoZSBjb21wb25lbnRcbiAgICAgKiBAcGFyYW0gZ3JvdXBcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50IEFuZ3VsYXIgQ29tcG9uZW50IENsYXNzIGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyB7IG5ldyguLi5hcmdzOiBhbnlbXSk6IEluc3RhbmNlVHlwZTxUPjsgfT4oYXJnczogRHluYW1pY1JlZ2lzdHJhdGlvbkFyZ3M8VD4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb21wb25lbnRSZWdpc3RlcmVkKGFyZ3MuaWQsIGFyZ3MuZ3JvdXApKSB7XG4gICAgICAgICAgICB0aGlzLmxvZyhgV2lsbCBub3QgcmUtcmVnaXN0ZXIgY29tcG9uZW50ICcke2FyZ3MuaWR9JyBpbiBncm91cCAnJHthcmdzLmdyb3VwIHx8ICdkZWZhdWx0J30nIGApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgTGF6eUxvYWRlclNlcnZpY2UuYWRkQ29tcG9uZW50VG9SZWdpc3RyeSh7XG4gICAgICAgICAgICBpZDogc3RyaW5nVG9TbHVnKGFyZ3MuaWQpLFxuICAgICAgICAgICAgbWF0Y2hlcjogYXJncy5tYXRjaGVyLFxuICAgICAgICAgICAgZ3JvdXA6IHN0cmluZ1RvU2x1ZyhhcmdzLmdyb3VwIHx8IFwiZGVmYXVsdFwiKSxcbiAgICAgICAgICAgIGxvYWQ6IGFyZ3MubG9hZCB8fCAoKCkgPT4gYXJncy5jb21wb25lbnQpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkXG4gICAgICogQHBhcmFtIGdyb3VwXG4gICAgICovXG4gICAgcHVibGljIHVucmVnaXN0ZXJDb21wb25lbnQoaWQ6IHN0cmluZywgZ3JvdXAgPSBcImRlZmF1bHRcIikge1xuICAgICAgICBjb25zdCBfaWQgPSBzdHJpbmdUb1NsdWcoaWQpO1xuICAgICAgICBjb25zdCBfZ3JvdXAgPSBzdHJpbmdUb1NsdWcoZ3JvdXApO1xuXG4gICAgICAgIGlmICghdGhpcy5yZXNvbHZlUmVnaXN0cmF0aW9uRW50cnkoaWQsIGdyb3VwKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB1bnJlZ2lzdGVyIGNvbXBvbmVudCAke30hIENvbXBvbmVudCBpcyBub3QgcHJlc2VudCBpbiByZWdpc3RyeVwiKVxuXG4gICAgICAgIC8vIFRPRE86IGhhbmRsZSBjbGVhcmluZyBydW5uaW5nIGluc3RhbmNlc1xuICAgICAgICBkZWxldGUgTGF6eUxvYWRlclNlcnZpY2UucmVnaXN0cnlbX2dyb3VwXVtfaWRdO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSByZWdpc3RyYXRpb24gZW50cnkgZm9yIGEgY29tcG9uZW50LlxuICAgICAqIFJldHVybnMgbnVsbCBpZiBjb21wb25lbnQgaXMgbm90IGluIHRoZSByZWdpc3RyeS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzb2x2ZVJlZ2lzdHJhdGlvbkVudHJ5KHZhbHVlOiBzdHJpbmcsIGdyb3VwID0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgY29uc3QgX2lkID0gc3RyaW5nVG9TbHVnKHZhbHVlKTtcbiAgICAgICAgY29uc3QgX2dyb3VwID0gc3RyaW5nVG9TbHVnKGdyb3VwKTtcblxuICAgICAgICBjb25zdCB0YXJnZXRHcm91cCA9IChMYXp5TG9hZGVyU2VydmljZS5yZWdpc3RyeVtfZ3JvdXBdIHx8IFtdKTtcblxuICAgICAgICBsZXQgaXRlbXMgPSB0YXJnZXRHcm91cC5maWx0ZXIodCA9PiB7XG4gICAgICAgICAgICBpZiAoIXQpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgLy8gTm8gbWF0Y2hlciwgY2hlY2sgaWRcbiAgICAgICAgICAgIGlmICghdC5tYXRjaGVyKVxuICAgICAgICAgICAgICAgIHJldHVybiB0WyRpZF0gPT0gX2lkO1xuXG4gICAgICAgICAgICAvLyBNYXRjaGVyIGlzIHJlZ2V4XG4gICAgICAgICAgICBpZiAodC5tYXRjaGVyIGluc3RhbmNlb2YgUmVnRXhwKVxuICAgICAgICAgICAgICAgIHJldHVybiB0Lm1hdGNoZXIudGVzdChfaWQpIHx8IHQubWF0Y2hlci50ZXN0KHZhbHVlKTtcblxuICAgICAgICAgICAgLy8gTWF0Y2hlciBpcyBzdHJpbmcgPT4gcmVnZXhcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdC5tYXRjaGVyID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcnggPSBuZXcgUmVnRXhwKHQubWF0Y2hlciwgJ3VpJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJ4LnRlc3QoX2lkKSB8fCByeC50ZXN0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWF0Y2hlciBpcyBhcnJheVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodC5tYXRjaGVyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXQubWF0Y2hlci5maW5kKGUgPT4gc3RyaW5nVG9TbHVnKGUpID09IF9pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEN1c3RvbSBtYXRjaGVyIGZ1bmN0aW9uXG4gICAgICAgICAgICBpZiAodHlwZW9mIHQubWF0Y2hlciA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHQubWF0Y2hlcihfaWQpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLndhcm4oXCJSZXNvbHZlZCBtdWx0aXBsZSBjb21wb25lbnRzIGZvciB0aGUgcHJvdmlkZWQgYFtjb21wb25lbnRdYCBiaW5kaW5nLiBUaGlzIG1heSBjYXVzZSBVSSBjb25mbGljdHMuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdXQgPSBpdGVtc1swXTtcblxuICAgICAgICBpZiAob3V0Lm1hdGNoZXIgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IF9pZC5tYXRjaChvdXQubWF0Y2hlcikgfHwgdmFsdWUubWF0Y2gob3V0Lm1hdGNoZXIpO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGVudHJ5OiBvdXQsXG4gICAgICAgICAgICAgICAgbWF0Y2hHcm91cHM6IHJlc3VsdD8uZ3JvdXBzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgZW50cnk6IG91dCB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgY29tcG9uZW50IGlzIGN1cnJlbnRseSByZWdpc3RlcmVkXG4gICAgICogQ2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgcmVnZXggbWF0Y2hlcnMgYW5kIGFsaWFzZXMuXG4gICAgICovXG4gICAgcHVibGljIGlzQ29tcG9uZW50UmVnaXN0ZXJlZCh2YWx1ZTogc3RyaW5nLCBncm91cCA9IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZVJlZ2lzdHJhdGlvbkVudHJ5KHZhbHVlLCBncm91cCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVuZGxlXG4gICAgICogQHJldHVybnMgVGhlIGNvbXBvbmVudCBgT2JqZWN0YCBpZiBhIGNvbXBvbmVudCB3YXMgcmVzb2x2ZWQsIGBudWxsYCBpZiBubyBjb21wb25lbnQgd2FzIGZvdW5kXG4gICAgICogYGZhbHNlYCBpZiB0aGUgc3BlY2lmaWVkIHN0cmF0ZWd5IHdhcyBhbiBpbnZhbGlkIHNlbGVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZXNvbHZlQ29tcG9uZW50KGlkOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcsIG1vZHVsZXM6IChDb21waWxlZENvbXBvbmVudCB8IENvbXBpbGVkTW9kdWxlKVtdKTogT2JqZWN0IHwgbnVsbCB8IGZhbHNlIHtcblxuICAgICAgICBzd2l0Y2ggKExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5jb21wb25lbnRSZXNvbHZlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5LlBpY2tGaXJzdDoge1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZXNbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEV4YWN0IGlkIC0+IGNsYXNzbmFtZSBtYXRjaFxuICAgICAgICAgICAgY2FzZSBDb21wb25lbnRSZXNvbHZlU3RyYXRlZ3kuTWF0Y2hJZFRvQ2xhc3NOYW1lOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9XG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoayA9PiBrLm5hbWUgPT0gaWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGdXp6eSBpZCAtPiBjbGFzc25hbWUgbWF0Y2hcbiAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50UmVzb2x2ZVN0cmF0ZWd5LkZ1enp5SWRDbGFzc05hbWU6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBfaWQgPSBpZC5yZXBsYWNlKC9bXmEtejAtOV9cXC1dL2lnLCAnJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoX2lkLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIuZXJyKFwiRnV6enkgY2xhc3NuYW1lIG1hdGNoaW5nIHN0cmlwcGVkIGFsbCBzeW1ib2xzIGZyb20gdGhlIElEIHNwZWNpZmllZCFcIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByeCA9IG5ldyBSZWdFeHAoYF4ke2lkfShjb21wb25lbnR8bW9kdWxlKT8kYCwgXCJpXCIpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG1vZHVsZXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihtb2QgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGtpZCA9IG1vZC5uYW1lLnJlcGxhY2UoL1teYS16MC05X1xcLV0vaWcsICcnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ4LnRlc3Qoa2lkKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5sb2dnZXIuZXJyKFwiRnV6enkgY2xhc3NuYW1lIG1hdGNoaW5nIHJlc29sdmVkIG11bHRpcGxlIHRhcmdldHMhXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgTGF6eUxvYWRlclNlcnZpY2UuY29uZmlnLmxvZ2dlci5lcnIoXCJGdXp6eSBjbGFzc25hbWUgbWF0Y2hpbmcgcmVzb2x2ZWQgbm8gdGFyZ2V0cyFcIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBDb21wb25lbnRSZXNvbHZlU3RyYXRlZ3kuQ3VzdG9tOiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIExhenlMb2FkZXJTZXJ2aWNlLmNvbmZpZy5jdXN0b21SZXNvbHZlcihtb2R1bGVzIGFzIGFueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -50,4 +50,5 @@ export * from './components/tabulator/tabulator.component';
50
50
  export * from './components/vscode/vscode.component';
51
51
  export * from './components/react-magic-wrapper/react-magic-wrapper.component';
52
52
  export * from './components/types';
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFFeEM7O0VBRUU7QUFDRixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLG9EQUFvRDtBQUVwRDs7RUFFRTtBQUNGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0M7O0VBRUU7QUFDRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlDQUFpQyxDQUFDO0FBSWhELGNBQWMsZ0RBQWdELENBQUM7QUFDL0Qsc0VBQXNFO0FBQ3RFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHBhY2thZ2VcbiAqL1xuXG4vKipcbiAqKiBUeXBlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9wb3B1cCc7XG5cbi8qKlxuICoqIERpcmVjdGl2ZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9tZW51LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICoqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvaHRtbC1ieXBhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3Jlc291cmNlLWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2NyaXB0LWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc3R5bGUtYnlwYXNzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy91cmwtYnlwYXNzLnBpcGUnO1xuXG4vKipcbioqIFNlcnZpY2VzXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kZXBlbmRlbmN5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZldGNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9rZXlib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NlcnZpY2V3b3JrZXIuc2VydmljZSc7XG5cbi8qKlxuKiogTGF6eSBsb2FkZXIgY29tcG9uZW50ICYgc2VydmljZVxuKi9cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvdHlwZXMnO1xuXG4vKipcbioqIFNlcnZpY2VzXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC9keW5hbWljLWh0bWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1odG1sL2R5bmFtaWMtaHRtbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC9keW5hbWljLWh0bWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWh0bWwvdHlwZXMnO1xuXG5cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbXVzaWMtbGlicmFyeS9tdXNpYy1saWJyYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFidWxhdG9yL3RhYnVsYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ZzY29kZS92c2NvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1tYWdpYy13cmFwcGVyL3JlYWN0LW1hZ2ljLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90eXBlcyc7XG4iXX0=
53
+ export { ConsoleLogger, LogIcon } from './utils/index';
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFFeEM7O0VBRUU7QUFDRixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLG9EQUFvRDtBQUVwRDs7RUFFRTtBQUNGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0NBQWdDLENBQUM7QUFFL0M7O0VBRUU7QUFDRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlDQUFpQyxDQUFDO0FBSWhELGNBQWMsZ0RBQWdELENBQUM7QUFDL0Qsc0VBQXNFO0FBQ3RFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0JBQW9CLENBQUM7QUFHbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHBhY2thZ2VcbiAqL1xuXG4vKipcbiAqKiBUeXBlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL21lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9wb3B1cCc7XG5cbi8qKlxuICoqIERpcmVjdGl2ZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9tZW51LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICoqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvaHRtbC1ieXBhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3Jlc291cmNlLWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2NyaXB0LWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc3R5bGUtYnlwYXNzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy91cmwtYnlwYXNzLnBpcGUnO1xuXG4vKipcbioqIFNlcnZpY2VzXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kZXBlbmRlbmN5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZldGNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9rZXlib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NlcnZpY2V3b3JrZXIuc2VydmljZSc7XG5cbi8qKlxuKiogTGF6eSBsb2FkZXIgY29tcG9uZW50ICYgc2VydmljZVxuKi9cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvdHlwZXMnO1xuXG4vKipcbioqIFNlcnZpY2VzXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC9keW5hbWljLWh0bWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1odG1sL2R5bmFtaWMtaHRtbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC9keW5hbWljLWh0bWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWh0bWwvdHlwZXMnO1xuXG5cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbXVzaWMtbGlicmFyeS9tdXNpYy1saWJyYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFidWxhdG9yL3RhYnVsYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ZzY29kZS92c2NvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1tYWdpYy13cmFwcGVyL3JlYWN0LW1hZ2ljLXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90eXBlcyc7XG5cblxuZXhwb3J0IHsgQ29uc29sZUxvZ2dlciwgTG9nSWNvbiB9IGZyb20gJy4vdXRpbHMvaW5kZXgnO1xuIl19
@@ -1,10 +1,10 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { Logger } from '../utils';
2
+ import { ConsoleLogger } from '../utils';
3
3
  import { LazyLoaderComponent } from '../components/lazy-loader/lazy-loader.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/material/dialog";
6
6
  import * as i2 from "../components/lazy-loader/lazy-loader.service";
7
- const { log, warn, err } = Logger("DialogService", "#607d8b");
7
+ const { log, warn, err } = ConsoleLogger("DialogService", "#607d8b");
8
8
  export class DialogService {
9
9
  constructor(dialog, lazyLoader) {
10
10
  this.dialog = dialog;
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
66
66
  providedIn: 'root'
67
67
  }]
68
68
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.LazyLoaderService }]; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7OztBQUd0RixNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBcUI5RCxNQUFNLE9BQU8sYUFBYTtJQUl0QixZQUNZLE1BQWlCLEVBQ2pCLFVBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFKakMsWUFBTyxHQUFpQyxFQUFFLENBQUM7SUFNbkQsQ0FBQztJQU1ELElBQUksQ0FBQyxJQUFZLEVBQUUsY0FBb0IsRUFBRSxPQUFzQixFQUFFO1FBQzdELE1BQU0sS0FBSyxHQUFHLE9BQU8sY0FBYyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0UsSUFBSSxPQUFPLGNBQWMsSUFBSSxRQUFRO1lBQ2pDLElBQUksR0FBRyxjQUFjLENBQUM7UUFFMUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUVuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsWUFBWTtnQkFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsK0JBQStCLENBQUMsQ0FBQyxDQUFDO1lBR2pHLE1BQU0sSUFBSSxHQUFHO2dCQUNULGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUU7b0JBQ0YsRUFBRSxFQUFFLElBQUk7b0JBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtvQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2Y7Z0JBQ0QsVUFBVSxFQUFFO29CQUNSLFNBQVMsR0FBRyxJQUFJO29CQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDbEY7YUFDSixDQUFDO1lBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNwQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsS0FBSyxDQUFDLElBQVk7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7OzBHQXBFUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMYXp5TG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF6eUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuXG5jb25zdCB7IGxvZywgd2FybiwgZXJyIH0gPSBMb2dnZXIoXCJEaWFsb2dTZXJ2aWNlXCIsIFwiIzYwN2Q4YlwiKTtcblxuZXhwb3J0IHR5cGUgRGlhbG9nT3B0aW9ucyA9IFBhcnRpYWw8T21pdDxNYXREaWFsb2dDb25maWc8YW55PiwgJ2RhdGEnPiAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHByb3BlcnRpZXMgdG8gYmUgcHJvdmlkZWQgdG8gQElucHV0KCkgaW5qZWN0b3JzXG4gICAgICovXG4gICAgaW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgcHJvcGVydGllcyB0byBiZSBwcm92aWRlZCB0byBASW5wdXQoKSBpbmplY3RvcnNcbiAgICAgKi9cbiAgICBvdXRwdXRzOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0sXG4gICAgLyoqXG4gICAgICogQ29udGV4dCBpbiB3aGljaCB0byBleGVjdXRlIGNhbGxiYWNrcyBmcm9tIHRoZSBgb3V0cHV0c2AgcHJvcGVydHkgdmlhXG4gICAgICogQE91dHB1dCgpIGV2ZW50IEVtaXR0ZXJzXG4gICAgICovXG4gICAgcGFyZW50OiBhbnlcbn0+O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBkaWFsb2dzOiBNYXREaWFsb2dSZWY8dW5rbm93biwgYW55PltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSBsYXp5TG9hZGVyOiBMYXp5TG9hZGVyU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG9wZW4obmFtZTogc3RyaW5nKVxuICAgIG9wZW4obmFtZTogc3RyaW5nLCBvcHRzOiBEaWFsb2dPcHRpb25zKVxuICAgIG9wZW4obmFtZTogc3RyaW5nLCBncm91cDogc3RyaW5nKVxuICAgIG9wZW4obmFtZTogc3RyaW5nLCBncm91cDogc3RyaW5nLCBvcHRzOiBEaWFsb2dPcHRpb25zKVxuICAgIG9wZW4obmFtZTogc3RyaW5nLCBncm91cE9yT3B0aW9ucz86IGFueSwgb3B0czogRGlhbG9nT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSB0eXBlb2YgZ3JvdXBPck9wdGlvbnMgPT0gXCJzdHJpbmdcIiA/IGdyb3VwT3JPcHRpb25zIDogJ2RlZmF1bHQnO1xuICAgICAgICBpZiAodHlwZW9mIGdyb3VwT3JPcHRpb25zID09ICdvYmplY3QnKVxuICAgICAgICAgICAgb3B0cyA9IGdyb3VwT3JPcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IHRoaXMubGF6eUxvYWRlci5yZXNvbHZlUmVnaXN0cmF0aW9uRW50cnkobmFtZSwgZ3JvdXApO1xuICAgICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoXCJDYW5ub3Qgb3BlbiBkaWFsb2cgZm9yIFwiICsgbmFtZSArIFwiLiBDb3VsZCBub3QgZmluZCBpbiByZWdpc3RyeS5cIikpO1xuXG5cbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiByZWdpc3RyYXRpb25bJ3dpZHRoJ10sXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZWdpc3RyYXRpb25bJ2hlaWdodCddLFxuICAgICAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBpZDogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiBvcHRzLmlucHV0cyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0czogb3B0cy5vdXRwdXRzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICBncm91cDogZ3JvdXBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJkaWFsb2ctXCIgKyBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShvcHRzLnBhbmVsQ2xhc3MpID8gb3B0cy5wYW5lbENsYXNzIDogW29wdHMucGFuZWxDbGFzc10gfHwgW10pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oTGF6eUxvYWRlckNvbXBvbmVudCwgYXJncyk7XG5cbiAgICAgICAgICAgIGRpYWxvZ1snaWR4J10gPSBuYW1lO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dzLnB1c2goZGlhbG9nKTtcblxuICAgICAgICAgICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgbG9nKFwiRGlhbG9nIGNsb3NlZCBcIiArIG5hbWUsIHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIENsb3NlIGFsbCBkaWFsb2dzIG1hdGNoaW5nIHRoZSBnaXZlbiBuYW1lXG4gICAgY2xvc2UobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ3MgPSB0aGlzLmRpYWxvZ3MuZmlsdGVyKGQgPT4gZFsnaWR4J10gPT0gbmFtZSk7XG4gICAgICAgIGRpYWxvZ3MuZm9yRWFjaChkaWFsb2cgPT4gZGlhbG9nLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBjbG9zZSBfYWxsXyBkaWFsb2dzLlxuICAgICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS5cbiAgICAgKi9cbiAgICBjbGVhckRpYWxvZygpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dzLmZvckVhY2goZGlhbG9nID0+IGRpYWxvZy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgY29uZmlybWF0aW9uIGRpYWxvZy4gV2lsbCByZWplY3QgaWYgYSBjYW5jZWwgb2NjdXJzLlxuICAgICAqIEBwYXJhbSB0aXRsZSB0aXRsZSBvZiB0aGUgZGlhbG9nXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgbWFpbiBxdWVzdGlvbiB0aGF0IGEgdXNlciBuZWVkcyB0byBjb25maXJtL2RlbnlcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIC8vIGNvbmZpcm1BY3Rpb24odGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAvLyAgICAgICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XG4gICAgLy8gICAgICAgICAgICAgbWF4SGVpZ2h0OiBcIjkwdmhcIixcbiAgICAvLyAgICAgICAgICAgICBtYXhXaWR0aDogXCI5MHZ3XCIsXG4gICAgLy8gICAgICAgICAgICAgcGFuZWxDbGFzczogW1wiZGlhbG9nLWNvbmZpcm1hdGlvblwiXSxcbiAgICAvLyAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAvLyAgICAgICAgICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgLy8gICAgICAgICAgICAgZGF0YToge3RpdGxlLCBtZXNzYWdlfVxuICAgIC8vICAgICAgICAgfSk7XG5cbiAgICAvLyAgICAgICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgIC8vICAgICAgICAgICAgIHJlc3VsdCA9PSB0cnVlID8gcmVzKCkgOiByZWooKTtcbiAgICAvLyAgICAgICAgIH0pO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7OztBQUd0RixNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBcUJyRSxNQUFNLE9BQU8sYUFBYTtJQUl0QixZQUNZLE1BQWlCLEVBQ2pCLFVBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFKakMsWUFBTyxHQUFpQyxFQUFFLENBQUM7SUFNbkQsQ0FBQztJQU1ELElBQUksQ0FBQyxJQUFZLEVBQUUsY0FBb0IsRUFBRSxPQUFzQixFQUFFO1FBQzdELE1BQU0sS0FBSyxHQUFHLE9BQU8sY0FBYyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0UsSUFBSSxPQUFPLGNBQWMsSUFBSSxRQUFRO1lBQ2pDLElBQUksR0FBRyxjQUFjLENBQUM7UUFFMUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUVuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsWUFBWTtnQkFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsK0JBQStCLENBQUMsQ0FBQyxDQUFDO1lBR2pHLE1BQU0sSUFBSSxHQUFHO2dCQUNULGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDNUIsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUU7b0JBQ0YsRUFBRSxFQUFFLElBQUk7b0JBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtvQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2Y7Z0JBQ0QsVUFBVSxFQUFFO29CQUNSLFNBQVMsR0FBRyxJQUFJO29CQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDbEY7YUFDSixDQUFDO1lBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNwQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsS0FBSyxDQUFDLElBQVk7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7OzBHQXBFUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb25zb2xlTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcblxuY29uc3QgeyBsb2csIHdhcm4sIGVyciB9ID0gQ29uc29sZUxvZ2dlcihcIkRpYWxvZ1NlcnZpY2VcIiwgXCIjNjA3ZDhiXCIpO1xuXG5leHBvcnQgdHlwZSBEaWFsb2dPcHRpb25zID0gUGFydGlhbDxPbWl0PE1hdERpYWxvZ0NvbmZpZzxhbnk+LCAnZGF0YSc+ICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgcHJvcGVydGllcyB0byBiZSBwcm92aWRlZCB0byBASW5wdXQoKSBpbmplY3RvcnNcbiAgICAgKi9cbiAgICBpbnB1dHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBwcm9wZXJ0aWVzIHRvIGJlIHByb3ZpZGVkIHRvIEBJbnB1dCgpIGluamVjdG9yc1xuICAgICAqL1xuICAgIG91dHB1dHM6IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfSxcbiAgICAvKipcbiAgICAgKiBDb250ZXh0IGluIHdoaWNoIHRvIGV4ZWN1dGUgY2FsbGJhY2tzIGZyb20gdGhlIGBvdXRwdXRzYCBwcm9wZXJ0eSB2aWFcbiAgICAgKiBAT3V0cHV0KCkgZXZlbnQgRW1pdHRlcnNcbiAgICAgKi9cbiAgICBwYXJlbnQ6IGFueVxufT47XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGRpYWxvZ3M6IE1hdERpYWxvZ1JlZjx1bmtub3duLCBhbnk+W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgb3BlbihuYW1lOiBzdHJpbmcpXG4gICAgb3BlbihuYW1lOiBzdHJpbmcsIG9wdHM6IERpYWxvZ09wdGlvbnMpXG4gICAgb3BlbihuYW1lOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcpXG4gICAgb3BlbihuYW1lOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcsIG9wdHM6IERpYWxvZ09wdGlvbnMpXG4gICAgb3BlbihuYW1lOiBzdHJpbmcsIGdyb3VwT3JPcHRpb25zPzogYW55LCBvcHRzOiBEaWFsb2dPcHRpb25zID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBncm91cCA9IHR5cGVvZiBncm91cE9yT3B0aW9ucyA9PSBcInN0cmluZ1wiID8gZ3JvdXBPck9wdGlvbnMgOiAnZGVmYXVsdCc7XG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBPck9wdGlvbnMgPT0gJ29iamVjdCcpXG4gICAgICAgICAgICBvcHRzID0gZ3JvdXBPck9wdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5sYXp5TG9hZGVyLnJlc29sdmVSZWdpc3RyYXRpb25FbnRyeShuYW1lLCBncm91cCk7XG4gICAgICAgICAgICBpZiAoIXJlZ2lzdHJhdGlvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIkNhbm5vdCBvcGVuIGRpYWxvZyBmb3IgXCIgKyBuYW1lICsgXCIuIENvdWxkIG5vdCBmaW5kIGluIHJlZ2lzdHJ5LlwiKSk7XG5cblxuICAgICAgICAgICAgY29uc3QgYXJncyA9IHtcbiAgICAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlZ2lzdHJhdGlvblsnd2lkdGgnXSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlZ2lzdHJhdGlvblsnaGVpZ2h0J10sXG4gICAgICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IG9wdHMuaW5wdXRzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRzOiBvcHRzLm91dHB1dHMgfHwge30sXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwOiBncm91cFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogW1xuICAgICAgICAgICAgICAgICAgICBcImRpYWxvZy1cIiArIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG9wdHMucGFuZWxDbGFzcykgPyBvcHRzLnBhbmVsQ2xhc3MgOiBbb3B0cy5wYW5lbENsYXNzXSB8fCBbXSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihMYXp5TG9hZGVyQ29tcG9uZW50LCBhcmdzKTtcblxuICAgICAgICAgICAgZGlhbG9nWydpZHgnXSA9IG5hbWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ3MucHVzaChkaWFsb2cpO1xuXG4gICAgICAgICAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBsb2coXCJEaWFsb2cgY2xvc2VkIFwiICsgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgYWxsIGRpYWxvZ3MgbWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWVcbiAgICBjbG9zZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlhbG9ncyA9IHRoaXMuZGlhbG9ncy5maWx0ZXIoZCA9PiBkWydpZHgnXSA9PSBuYW1lKTtcbiAgICAgICAgZGlhbG9ncy5mb3JFYWNoKGRpYWxvZyA9PiBkaWFsb2cuY2xvc2UoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGNsb3NlIF9hbGxfIGRpYWxvZ3MuXG4gICAgICogU2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LlxuICAgICAqL1xuICAgIGNsZWFyRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ3MuZm9yRWFjaChkaWFsb2cgPT4gZGlhbG9nLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gYSBjb25maXJtYXRpb24gZGlhbG9nLiBXaWxsIHJlamVjdCBpZiBhIGNhbmNlbCBvY2N1cnMuXG4gICAgICogQHBhcmFtIHRpdGxlIHRpdGxlIG9mIHRoZSBkaWFsb2dcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBtYWluIHF1ZXN0aW9uIHRoYXQgYSB1c2VyIG5lZWRzIHRvIGNvbmZpcm0vZGVueVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgLy8gY29uZmlybUFjdGlvbih0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgIC8vICAgICAgICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25Db21wb25lbnQsIHtcbiAgICAvLyAgICAgICAgICAgICBtYXhIZWlnaHQ6IFwiOTB2aFwiLFxuICAgIC8vICAgICAgICAgICAgIG1heFdpZHRoOiBcIjkwdndcIixcbiAgICAvLyAgICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJkaWFsb2ctY29uZmlybWF0aW9uXCJdLFxuICAgIC8vICAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgIC8vICAgICAgICAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcbiAgICAvLyAgICAgICAgICAgICBkYXRhOiB7dGl0bGUsIG1lc3NhZ2V9XG4gICAgLy8gICAgICAgICB9KTtcblxuICAgIC8vICAgICAgICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0ID09IHRydWUgPyByZXMoKSA6IHJlaigpO1xuICAgIC8vICAgICAgICAgfSk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { BehaviorSubject } from 'rxjs';
3
- import { Logger } from '../utils';
3
+ import { ConsoleLogger } from '../utils';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../public-api";
6
- const { log, warn, err } = Logger("NavigationService", "#ff9800");
6
+ const { log, warn, err } = ConsoleLogger("NavigationService", "#ff9800");
7
7
  export class NavigationService {
8
8
  constructor(lazyLoader) {
9
9
  this.lazyLoader = lazyLoader;
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
46
46
  providedIn: 'root'
47
47
  }]
48
48
  }], ctorParameters: function () { return [{ type: i1.LazyLoaderService }]; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUdsQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFhbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUNxQixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUgzQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUtqRSxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFO1FBRS9DLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLHNEQUFzRDtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdqQixHQUFHLENBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLEVBQUUsTUFBYTtZQUNyQixJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQTNDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuY29uc3QgeyBsb2csIHdhcm4sIGVyciB9ID0gTG9nZ2VyKFwiTmF2aWdhdGlvblNlcnZpY2VcIiwgXCIjZmY5ODAwXCIpO1xuXG50eXBlIE5hdmlnYXRpb25Bcmd1bWVudHMgPSB7XG4gICAgcm9vdDogc3RyaW5nLFxuICAgIGNodW5rczogW3N0cmluZywgLi4uc3RyaW5nW11dLFxuICAgIGFyZ3M6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gICAgcHVibGljIHZpcnR1YWxQYXRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmF2aWdhdGlvbkFyZ3VtZW50cz4obnVsbCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsYXp5TG9hZGVyOiBMYXp5TG9hZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICB3aW5kb3cub25oYXNoY2hhbmdlID0gKCkgPT4gdGhpcy5sb2FkUm9vdFBhZ2VGcm9tVXJsKCk7XG4gICAgICAgIHRoaXMubG9hZFJvb3RQYWdlRnJvbVVybCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJvb3RQYWdlRnJvbVVybCgpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGxvY2F0aW9uLmhhc2guc3BsaXQoXCI/XCIpWzBdO1xuXG4gICAgICAgIC8vIElmIHRoZSBVUkwgaXMgaW1wcmVjaXNlbHkgc2V0LCB3ZSByZXN0b3JlIGl0IHRvIHRoZSBsYW5kaW5nIHBhZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhenlMb2FkZXIuaXNDb21wb25lbnRSZWdpc3RlcmVkKGhhc2gpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFJvb3RQYWdlKFwiIy9MYW5kaW5nXCIpO1xuXG4gICAgICAgIHRoaXMubG9hZFJvb3RQYWdlKGxvY2F0aW9uLmhhc2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJvb3RQYWdlKHVybDogc3RyaW5nLCBkYXRhOiBPYmplY3QgPSB7fSkge1xuXG4gICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB1cmwuc3BsaXQoJz8nKTtcbiAgICAgICAgY29uc3QgaGFzaCA9IHBhdGgucmVwbGFjZSgvXlxcLz8jXFwvPy8sICcnKTtcbiAgICAgICAgY29uc3QgY2h1bmtzID0gaGFzaC5zcGxpdCgnLycpO1xuXG4gICAgICAgIC8vIEdldCBxdWVyeSBwYXJhbXMgYW5kIHBhc3MgdGhlbSBhcyBASW5wdXQgYXJndW1lbnRzLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSBxdWVyeT8uc3BsaXQoJyYnKVxuICAgICAgICAgICAgLnJlZHVjZSgocGFycywgcGFyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFyLnNwbGl0KFwiPVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBwYXJzW2tleV0gPSBkZWNvZGVkO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG5cbiAgICAgICAgbG9nKGBSb290IHBhZ2UgbmF2aWdhdGUgdG8gJyR7aGFzaH0nYCwgeyBwYXJhbXMsIGNodW5rcyB9KTtcblxuICAgICAgICB0aGlzLnZpcnR1YWxQYXRoJC5uZXh0KHtcbiAgICAgICAgICAgIHJvb3Q6IGNodW5rc1swXSxcbiAgICAgICAgICAgIGNodW5rczogY2h1bmtzIGFzIGFueSxcbiAgICAgICAgICAgIGFyZ3M6IHBhcmFtc1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUd6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFhekUsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUNxQixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUgzQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUtqRSxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFO1FBRS9DLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLHNEQUFzRDtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdqQixHQUFHLENBQUMsMEJBQTBCLElBQUksR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLEVBQUUsTUFBYTtZQUNyQixJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQTNDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uc29sZUxvZ2dlciB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbmNvbnN0IHsgbG9nLCB3YXJuLCBlcnIgfSA9IENvbnNvbGVMb2dnZXIoXCJOYXZpZ2F0aW9uU2VydmljZVwiLCBcIiNmZjk4MDBcIik7XG5cbnR5cGUgTmF2aWdhdGlvbkFyZ3VtZW50cyA9IHtcbiAgICByb290OiBzdHJpbmcsXG4gICAgY2h1bmtzOiBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sXG4gICAgYXJnczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlIHtcbiAgICBwdWJsaWMgdmlydHVhbFBhdGgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOYXZpZ2F0aW9uQXJndW1lbnRzPihudWxsKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHdpbmRvdy5vbmhhc2hjaGFuZ2UgPSAoKSA9PiB0aGlzLmxvYWRSb290UGFnZUZyb21VcmwoKTtcbiAgICAgICAgdGhpcy5sb2FkUm9vdFBhZ2VGcm9tVXJsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUm9vdFBhZ2VGcm9tVXJsKCkge1xuICAgICAgICBjb25zdCBoYXNoID0gbG9jYXRpb24uaGFzaC5zcGxpdChcIj9cIilbMF07XG5cbiAgICAgICAgLy8gSWYgdGhlIFVSTCBpcyBpbXByZWNpc2VseSBzZXQsIHdlIHJlc3RvcmUgaXQgdG8gdGhlIGxhbmRpbmcgcGFnZVxuICAgICAgICBpZiAoIXRoaXMubGF6eUxvYWRlci5pc0NvbXBvbmVudFJlZ2lzdGVyZWQoaGFzaCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkUm9vdFBhZ2UoXCIjL0xhbmRpbmdcIik7XG5cbiAgICAgICAgdGhpcy5sb2FkUm9vdFBhZ2UobG9jYXRpb24uaGFzaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUm9vdFBhZ2UodXJsOiBzdHJpbmcsIGRhdGE6IE9iamVjdCA9IHt9KSB7XG5cbiAgICAgICAgY29uc3QgW3BhdGgsIHF1ZXJ5XSA9IHVybC5zcGxpdCgnPycpO1xuICAgICAgICBjb25zdCBoYXNoID0gcGF0aC5yZXBsYWNlKC9eXFwvPyNcXC8/LywgJycpO1xuICAgICAgICBjb25zdCBjaHVua3MgPSBoYXNoLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgLy8gR2V0IHF1ZXJ5IHBhcmFtcyBhbmQgcGFzcyB0aGVtIGFzIEBJbnB1dCBhcmd1bWVudHMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5Py5zcGxpdCgnJicpXG4gICAgICAgICAgICAucmVkdWNlKChwYXJzLCBwYXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYXIuc3BsaXQoXCI9XCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICAgICAgICAgIHBhcnNba2V5XSA9IGRlY29kZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnM7XG4gICAgICAgICAgICB9LCB7fSkgfHwge307XG5cblxuICAgICAgICBsb2coYFJvb3QgcGFnZSBuYXZpZ2F0ZSB0byAnJHtoYXNofSdgLCB7IHBhcmFtcywgY2h1bmtzIH0pO1xuXG4gICAgICAgIHRoaXMudmlydHVhbFBhdGgkLm5leHQoe1xuICAgICAgICAgICAgcm9vdDogY2h1bmtzWzBdLFxuICAgICAgICAgICAgY2h1bmtzOiBjaHVua3MgYXMgYW55LFxuICAgICAgICAgICAgYXJnczogcGFyYW1zXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -10,24 +10,133 @@ export const saveObjectAsFile = (name, data) => {
10
10
  a.click();
11
11
  a.remove();
12
12
  };
13
+ class Emoticon {
14
+ constructor(icon) {
15
+ this.icon = icon;
16
+ }
17
+ }
18
+ /**
19
+ * authorization 🔐 \
20
+ * user 🪪 \
21
+ * security 🛡 \
22
+ * system 🖥 \
23
+ * toolbox 🧰 \
24
+ * chore ⚙ \
25
+ * config 🛠 \
26
+ * renderer 📐 \
27
+ * package 📦 \
28
+ * time ⏳ \
29
+ * download 📥 \
30
+ * upload 📤 \
31
+ * bug 🦠 \
32
+ * bomb 💣 \
33
+ * tnt 🧨 \
34
+ * warning ⚠️ \
35
+ * chart 📊 \
36
+ * chart_up 📈 \
37
+ * chart_down 📉 \
38
+ * circle_red 🔴 \
39
+ * circle_orange 🟠 \
40
+ * circle_yellow 🟡 \
41
+ * circle_green 🟢 \
42
+ * circle_blue 🔵 \
43
+ * circle_violet 🟣 \
44
+ * circle_black ⚫️ \
45
+ * circle_white ⚪️ \
46
+ * circle_brown 🟤 \
47
+ * square_red 🟥 \
48
+ * square_orange 🟧 \
49
+ * square_yellow 🟨 \
50
+ * square_green 🟩 \
51
+ * square_blue 🟦 \
52
+ * square_violet 🟪 \
53
+ * square_black ⬛️ \
54
+ * square_white ⬜️ \
55
+ * square_brown 🟫
56
+ */
57
+ export const LogIcon = {
58
+ authorization: new Emoticon("🔐"),
59
+ user: new Emoticon("🪪"),
60
+ security: new Emoticon("🛡"),
61
+ system: new Emoticon("🖥"),
62
+ toolbox: new Emoticon("🧰"),
63
+ chore: new Emoticon("⚙"),
64
+ config: new Emoticon("🛠"),
65
+ renderer: new Emoticon("📐"),
66
+ package: new Emoticon("📦"),
67
+ time: new Emoticon("⏳"),
68
+ download: new Emoticon("📥"),
69
+ upload: new Emoticon("📤"),
70
+ bug: new Emoticon("🦠"),
71
+ bomb: new Emoticon("💣"),
72
+ tnt: new Emoticon("🧨"),
73
+ warning: new Emoticon("⚠️"),
74
+ chart: new Emoticon("📊"),
75
+ chart_up: new Emoticon("📈"),
76
+ chart_down: new Emoticon("📉"),
77
+ circle_red: new Emoticon("🔴"),
78
+ circle_orange: new Emoticon("🟠"),
79
+ circle_yellow: new Emoticon("🟡"),
80
+ circle_green: new Emoticon("🟢"),
81
+ circle_blue: new Emoticon("🔵"),
82
+ circle_violet: new Emoticon("🟣"),
83
+ circle_black: new Emoticon("⚫️"),
84
+ circle_white: new Emoticon("⚪️"),
85
+ circle_brown: new Emoticon("🟤"),
86
+ square_red: new Emoticon("🟥"),
87
+ square_orange: new Emoticon("🟧"),
88
+ square_yellow: new Emoticon("🟨"),
89
+ square_green: new Emoticon("🟩"),
90
+ square_blue: new Emoticon("🟦"),
91
+ square_violet: new Emoticon("🟪"),
92
+ square_black: new Emoticon("⬛️"),
93
+ square_white: new Emoticon("⬜️"),
94
+ square_brown: new Emoticon("🟫")
95
+ };
96
+ class Log {
97
+ constructor(context, contextColor, textColor) {
98
+ this.context = context;
99
+ this.contextColor = contextColor;
100
+ this.textColor = textColor;
101
+ }
102
+ log(iconOrMessage, messageText, ...args) {
103
+ if (iconOrMessage instanceof Emoticon) {
104
+ console.log(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
105
+ }
106
+ else {
107
+ console.log(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
108
+ }
109
+ }
110
+ warn(iconOrMessage, messageText, ...args) {
111
+ if (iconOrMessage instanceof Emoticon) {
112
+ console.warn(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
113
+ }
114
+ else {
115
+ console.warn(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
116
+ }
117
+ }
118
+ err(iconOrMessage, messageText, ...args) {
119
+ if (iconOrMessage instanceof Emoticon) {
120
+ console.error(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
121
+ }
122
+ else {
123
+ console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
124
+ }
125
+ }
126
+ error(iconOrMessage, messageText, ...args) {
127
+ if (iconOrMessage instanceof Emoticon) {
128
+ console.error(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
129
+ }
130
+ else {
131
+ console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
132
+ }
133
+ }
134
+ }
13
135
  /**
14
136
  * Formatted logger that will print a bit of context before the message.
15
137
  * @returns
16
138
  */
17
- export const Logger = (context, contextColor, textColor = "#03a9f4") => ({
18
- log: (message, ...args) => {
19
- console.log(`%c[${context}] %c${message}`, 'color: ' + contextColor, 'color: ' + textColor, ...args);
20
- },
21
- warn: (message, ...args) => {
22
- console.warn(`%c[${context}] %c${message}`, 'color: ' + contextColor, 'color: ' + textColor, ...args);
23
- },
24
- err: (message, ...args) => {
25
- console.error(`%c[${context}] %c${message}`, 'color: ' + contextColor, 'color: ' + textColor, ...args);
26
- },
27
- error: (message, ...args) => {
28
- console.error(`%c[${context}] %c${message}`, 'color: ' + contextColor, 'color: ' + textColor, ...args);
29
- }
30
- });
139
+ export const ConsoleLogger = (context, contextColor, textColor = "#03a9f4") => new Log(context, contextColor, textColor);
31
140
  /**
32
141
  * Convert a string `fooBAR baz_160054''"1]"` into a slug: `foobar-baz-1600541`
33
142
  */
@@ -36,4 +145,52 @@ export const stringToSlug = (text) => (text || '')
36
145
  .toLowerCase()
37
146
  .replace(/[\-_+ ]/g, '-')
38
147
  .replace(/[^a-z0-9\-]/g, '');
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQWUsRUFBRSxZQUFvQixFQUFFLFlBQW9CLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RixHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sT0FBTyxPQUFPLE9BQU8sRUFBRSxFQUFFLFNBQVMsR0FBRyxZQUFZLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sT0FBTyxPQUFPLE9BQU8sRUFBRSxFQUFFLFNBQVMsR0FBRyxZQUFZLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFDRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sT0FBTyxPQUFPLE9BQU8sRUFBRSxFQUFFLFNBQVMsR0FBRyxZQUFZLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sT0FBTyxPQUFPLE9BQU8sRUFBRSxFQUFFLFNBQVMsR0FBRyxZQUFZLEVBQUUsU0FBUyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNHLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3pDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztLQUNQLElBQUksRUFBRTtLQUNOLFdBQVcsRUFBRTtLQUNiLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO0tBQ3hCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2xlZXAgPSBtcyA9PiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKTtcblxuLyoqXG4gKiBQcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSBhIGpzb24gZmlsZSBvZiB0aGUgZ2l2ZW4gb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3Qgc2F2ZU9iamVjdEFzRmlsZSA9IChuYW1lOiBzdHJpbmcsIGRhdGE6IE9iamVjdCkgPT4ge1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICBjb25zdCBmaWxlID0gbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KGRhdGEpXSwgeyB0eXBlOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9KTtcbiAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuICAgIGEuZG93bmxvYWQgPSBuYW1lO1xuICAgIGEuY2xpY2soKTtcbiAgICBhLnJlbW92ZSgpO1xufTtcblxuLyoqXG4gKiBGb3JtYXR0ZWQgbG9nZ2VyIHRoYXQgd2lsbCBwcmludCBhIGJpdCBvZiBjb250ZXh0IGJlZm9yZSB0aGUgbWVzc2FnZS5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBMb2dnZXIgPSAoY29udGV4dDogc3RyaW5nLCBjb250ZXh0Q29sb3I6IHN0cmluZywgdGV4dENvbG9yOiBzdHJpbmcgPSBcIiMwM2E5ZjRcIikgPT4gKHtcbiAgICBsb2c6IChtZXNzYWdlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAlY1ske2NvbnRleHR9XSAlYyR7bWVzc2FnZX1gLCAnY29sb3I6ICcgKyBjb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgfSxcbiAgICB3YXJuOiAobWVzc2FnZSwgLi4uYXJncykgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oYCVjWyR7Y29udGV4dH1dICVjJHttZXNzYWdlfWAsICdjb2xvcjogJyArIGNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICB9LFxuICAgIGVycjogKG1lc3NhZ2UsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgJWNbJHtjb250ZXh0fV0gJWMke21lc3NhZ2V9YCwgJ2NvbG9yOiAnICsgY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgIH0sXG4gICAgZXJyb3I6IChtZXNzYWdlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCVjWyR7Y29udGV4dH1dICVjJHttZXNzYWdlfWAsICdjb2xvcjogJyArIGNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICB9XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIGBmb29CQVIgYmF6XzE2MDA1NCcnXCIxXVwiYCBpbnRvIGEgc2x1ZzogYGZvb2Jhci1iYXotMTYwMDU0MWBcbiAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZ1RvU2x1ZyA9ICh0ZXh0OiBzdHJpbmcpID0+XG4gICAgKHRleHQgfHwgJycpXG4gICAgICAgIC50cmltKClcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXC1fKyBdL2csICctJylcbiAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XFwtXS9nLCAnJyk7XG5cbiJdfQ==
148
+ /**
149
+ * Helper to update the page URL.
150
+ * @param page component page ID to load.
151
+ * @param data string or JSON data for query params.
152
+ */
153
+ export const updateUrl = (page, data = {}, replaceState = false) => {
154
+ const [oldHash, qstring] = location.hash.split('?');
155
+ if (!page)
156
+ page = oldHash.split('/')[1];
157
+ const hash = `#/${page}`;
158
+ // Convert the data object to JSON.
159
+ if (data instanceof URLSearchParams) {
160
+ data = [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});
161
+ }
162
+ const query = new URLSearchParams(data);
163
+ const prevParams = new URLSearchParams(qstring);
164
+ // If the hash is the same, retain params.
165
+ if (hash == oldHash) {
166
+ replaceState = true;
167
+ for (const [key, value] of prevParams.entries())
168
+ if (!query.has(key))
169
+ query.set(key, prevParams.get(key));
170
+ }
171
+ for (const [key, val] of query.entries()) {
172
+ if (val == null ||
173
+ val == undefined ||
174
+ val == '' ||
175
+ val == 'null' ||
176
+ Number.isNaN(val) ||
177
+ val == 'NaN')
178
+ query.delete(key);
179
+ }
180
+ if (!(hash.toLowerCase() == "#/frame") || data['id'] == -1)
181
+ query.delete('id');
182
+ const strQuery = query.toString();
183
+ console.log(data, hash, strQuery);
184
+ if (replaceState) {
185
+ window.history.replaceState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));
186
+ }
187
+ else {
188
+ window.history.pushState(data, '', hash + (strQuery ? ('?' + strQuery) : ''));
189
+ }
190
+ };
191
+ export const getUrlData = (source = window.location.hash) => {
192
+ const [hash, query] = source.split('?');
193
+ let data = new URLSearchParams(query);
194
+ return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});
195
+ };
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUTtJQUNWLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUUsQ0FBQztDQUN0QztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNuQixhQUFhLEVBQUUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxJ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QUMsQ0FBQztLQUNqRjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxJQUFJLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQVEsQ0FBQztJQUM3QyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNsZWVwID0gbXMgPT4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7XG5cbi8qKlxuICogUHJvbXB0IHRoZSB1c2VyIHRvIHNhdmUgYSBqc29uIGZpbGUgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVPYmplY3RBc0ZpbGUgPSAobmFtZTogc3RyaW5nLCBkYXRhOiBPYmplY3QpID0+IHtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShkYXRhKV0sIHsgdHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSk7XG4gICAgYS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICBhLmRvd25sb2FkID0gbmFtZTtcbiAgICBhLmNsaWNrKCk7XG4gICAgYS5yZW1vdmUoKTtcbn07XG5cbmNsYXNzIEVtb3RpY29uIHtcbiAgICBjb25zdHJ1Y3RvciAocHVibGljIGljb246IHN0cmluZyl7fVxufVxuXG4vKipcbiAqIGF1dGhvcml6YXRpb24g8J+UkCBcXFxuICogdXNlciDwn6qqIFxcXG4gKiBzZWN1cml0eSDwn5uhIFxcXG4gKiBzeXN0ZW0g8J+WpSBcXFxuICogdG9vbGJveCDwn6ewIFxcXG4gKiBjaG9yZSDimpkgXFxcbiAqIGNvbmZpZyDwn5ugIFxcXG4gKiByZW5kZXJlciDwn5OQIFxcXG4gKiBwYWNrYWdlIPCfk6YgXFxcbiAqIHRpbWUg4o+zIFxcXG4gKiBkb3dubG9hZCDwn5OlIFxcXG4gKiB1cGxvYWQg8J+TpCBcXFxuICogYnVnIPCfpqAgXFxcbiAqIGJvbWIg8J+SoyBcXFxuICogdG50IPCfp6ggXFxcbiAqIHdhcm5pbmcg4pqg77iPIFxcXG4gKiBjaGFydCDwn5OKIFxcXG4gKiBjaGFydF91cCDwn5OIIFxcXG4gKiBjaGFydF9kb3duIPCfk4kgXFxcbiAqIGNpcmNsZV9yZWQg8J+UtCBcXFxuICogY2lyY2xlX29yYW5nZSDwn5+gIFxcXG4gKiBjaXJjbGVfeWVsbG93IPCfn6EgXFxcbiAqIGNpcmNsZV9ncmVlbiDwn5+iIFxcXG4gKiBjaXJjbGVfYmx1ZSDwn5S1IFxcXG4gKiBjaXJjbGVfdmlvbGV0IPCfn6MgXFxcbiAqIGNpcmNsZV9ibGFjayDimqvvuI8gXFxcbiAqIGNpcmNsZV93aGl0ZSDimqrvuI8gXFxcbiAqIGNpcmNsZV9icm93biDwn5+kIFxcXG4gKiBzcXVhcmVfcmVkIPCfn6UgXFxcbiAqIHNxdWFyZV9vcmFuZ2Ug8J+fpyBcXFxuICogc3F1YXJlX3llbGxvdyDwn5+oIFxcXG4gKiBzcXVhcmVfZ3JlZW4g8J+fqSBcXFxuICogc3F1YXJlX2JsdWUg8J+fpiBcXFxuICogc3F1YXJlX3Zpb2xldCDwn5+qIFxcXG4gKiBzcXVhcmVfYmxhY2sg4qyb77iPIFxcXG4gKiBzcXVhcmVfd2hpdGUg4qyc77iPIFxcXG4gKiBzcXVhcmVfYnJvd24g8J+fq1xuICovXG5leHBvcnQgY29uc3QgTG9nSWNvbiA9IHtcbiAgICBhdXRob3JpemF0aW9uOiBuZXcgRW1vdGljb24oXCLwn5SQXCIpLFxuICAgIHVzZXI6IG5ldyBFbW90aWNvbihcIvCfqqpcIiksXG4gICAgc2VjdXJpdHk6IG5ldyBFbW90aWNvbihcIvCfm6FcIiksXG4gICAgc3lzdGVtOiBuZXcgRW1vdGljb24oXCLwn5alXCIpLFxuICAgIHRvb2xib3g6IG5ldyBFbW90aWNvbihcIvCfp7BcIiksXG4gICAgY2hvcmU6IG5ldyBFbW90aWNvbihcIuKamVwiKSxcbiAgICBjb25maWc6IG5ldyBFbW90aWNvbihcIvCfm6BcIiksXG4gICAgcmVuZGVyZXI6IG5ldyBFbW90aWNvbihcIvCfk5BcIiksXG4gICAgcGFja2FnZTogbmV3IEVtb3RpY29uKFwi8J+TplwiKSxcbiAgICB0aW1lOiBuZXcgRW1vdGljb24oXCLij7NcIiksXG4gICAgZG93bmxvYWQ6IG5ldyBFbW90aWNvbihcIvCfk6VcIiksXG4gICAgdXBsb2FkOiBuZXcgRW1vdGljb24oXCLwn5OkXCIpLFxuICAgIGJ1ZzogbmV3IEVtb3RpY29uKFwi8J+moFwiKSxcbiAgICBib21iOiBuZXcgRW1vdGljb24oXCLwn5KjXCIpLFxuICAgIHRudDogbmV3IEVtb3RpY29uKFwi8J+nqFwiKSxcbiAgICB3YXJuaW5nOiBuZXcgRW1vdGljb24oXCLimqDvuI9cIiksXG4gICAgY2hhcnQ6IG5ldyBFbW90aWNvbihcIvCfk4pcIiksXG4gICAgY2hhcnRfdXA6IG5ldyBFbW90aWNvbihcIvCfk4hcIiksXG4gICAgY2hhcnRfZG93bjogbmV3IEVtb3RpY29uKFwi8J+TiVwiKSxcblxuICAgIGNpcmNsZV9yZWQ6IG5ldyBFbW90aWNvbihcIvCflLRcIiksXG4gICAgY2lyY2xlX29yYW5nZTogbmV3IEVtb3RpY29uKFwi8J+foFwiKSxcbiAgICBjaXJjbGVfeWVsbG93OiBuZXcgRW1vdGljb24oXCLwn5+hXCIpLFxuICAgIGNpcmNsZV9ncmVlbjogbmV3IEVtb3RpY29uKFwi8J+folwiKSxcbiAgICBjaXJjbGVfYmx1ZTogbmV3IEVtb3RpY29uKFwi8J+UtVwiKSxcbiAgICBjaXJjbGVfdmlvbGV0OiBuZXcgRW1vdGljb24oXCLwn5+jXCIpLFxuICAgIGNpcmNsZV9ibGFjazogbmV3IEVtb3RpY29uKFwi4pqr77iPXCIpLFxuICAgIGNpcmNsZV93aGl0ZTogbmV3IEVtb3RpY29uKFwi4pqq77iPXCIpLFxuICAgIGNpcmNsZV9icm93bjogbmV3IEVtb3RpY29uKFwi8J+fpFwiKSxcbiAgICBzcXVhcmVfcmVkOiBuZXcgRW1vdGljb24oXCLwn5+lXCIpLFxuICAgIHNxdWFyZV9vcmFuZ2U6IG5ldyBFbW90aWNvbihcIvCfn6dcIiksXG4gICAgc3F1YXJlX3llbGxvdzogbmV3IEVtb3RpY29uKFwi8J+fqFwiKSxcbiAgICBzcXVhcmVfZ3JlZW46IG5ldyBFbW90aWNvbihcIvCfn6lcIiksXG4gICAgc3F1YXJlX2JsdWU6IG5ldyBFbW90aWNvbihcIvCfn6ZcIiksXG4gICAgc3F1YXJlX3Zpb2xldDogbmV3IEVtb3RpY29uKFwi8J+fqlwiKSxcbiAgICBzcXVhcmVfYmxhY2s6IG5ldyBFbW90aWNvbihcIuKsm++4j1wiKSxcbiAgICBzcXVhcmVfd2hpdGU6IG5ldyBFbW90aWNvbihcIuKsnO+4j1wiKSxcbiAgICBzcXVhcmVfYnJvd246IG5ldyBFbW90aWNvbihcIvCfn6tcIilcbn1cblxuY2xhc3MgTG9nIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0OiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgY29udGV4dENvbG9yOiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgdGV4dENvbG9yOiBzdHJpbmdcbiAgICApIHsgfVxuXG4gICAgbG9nKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgbG9nKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBsb2coaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7aWNvbk9yTWVzc2FnZX0gJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7bWVzc2FnZVRleHR9YCwgJ2NvbG9yOiAnICsgdGhpcy5jb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRoaXMudGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAlY1ske3RoaXMuY29udGV4dH1dICVjJHtpY29uT3JNZXNzYWdlfWAsICdjb2xvcjogJyArIHRoaXMuY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0aGlzLnRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3YXJuKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgd2FybihpY29uT3JNZXNzYWdlOiBFbW90aWNvbiB8IHN0cmluZywgbWVzc2FnZVRleHQ6IHN0cmluZywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWNvbk9yTWVzc2FnZSBpbnN0YW5jZW9mIEVtb3RpY29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7aWNvbk9yTWVzc2FnZX0gJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7bWVzc2FnZVRleHR9YCwgJ2NvbG9yOiAnICsgdGhpcy5jb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRoaXMudGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXJyKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgZXJyKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnIoaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXJyb3IoaWNvbjogRW1vdGljb24sIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgZXJyb3IoaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm1hdHRlZCBsb2dnZXIgdGhhdCB3aWxsIHByaW50IGEgYml0IG9mIGNvbnRleHQgYmVmb3JlIHRoZSBtZXNzYWdlLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IENvbnNvbGVMb2dnZXIgPSAoY29udGV4dDogc3RyaW5nLCBjb250ZXh0Q29sb3I6IHN0cmluZywgdGV4dENvbG9yOiBzdHJpbmcgPSBcIiMwM2E5ZjRcIikgPT5cbiAgICBuZXcgTG9nKGNvbnRleHQsIGNvbnRleHRDb2xvciwgdGV4dENvbG9yKTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIGBmb29CQVIgYmF6XzE2MDA1NCcnXCIxXVwiYCBpbnRvIGEgc2x1ZzogYGZvb2Jhci1iYXotMTYwMDU0MWBcbiAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZ1RvU2x1ZyA9ICh0ZXh0OiBzdHJpbmcpID0+XG4gICAgKHRleHQgfHwgJycpXG4gICAgICAgIC50cmltKClcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXC1fKyBdL2csICctJylcbiAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XFwtXS9nLCAnJyk7XG5cblxuLyoqXG4qIEhlbHBlciB0byB1cGRhdGUgdGhlIHBhZ2UgVVJMLlxuKiBAcGFyYW0gcGFnZSBjb21wb25lbnQgcGFnZSBJRCB0byBsb2FkLlxuKiBAcGFyYW0gZGF0YSBzdHJpbmcgb3IgSlNPTiBkYXRhIGZvciBxdWVyeSBwYXJhbXMuXG4qL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVVybCA9IChwYWdlPzogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfCBzdHJpbmdbXVtdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiB8IFVSTFNlYXJjaFBhcmFtcyA9IHt9LCByZXBsYWNlU3RhdGUgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IFtvbGRIYXNoLCBxc3RyaW5nXSA9IGxvY2F0aW9uLmhhc2guc3BsaXQoJz8nKTtcblxuICAgIGlmICghcGFnZSlcbiAgICAgICAgcGFnZSA9IG9sZEhhc2guc3BsaXQoJy8nKVsxXTtcblxuICAgIGNvbnN0IGhhc2ggPSBgIy8ke3BhZ2V9YDtcblxuICAgIC8vIENvbnZlcnQgdGhlIGRhdGEgb2JqZWN0IHRvIEpTT04uXG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgZGF0YSA9IFsuLi4oZGF0YSBhcyBhbnkpLmVudHJpZXMoKV0ubWFwKChbaywgdl0pID0+ICh7IFtrXTogdiB9KSkucmVkdWNlKChhLCBiKSA9PiAoeyAuLi5hLCAuLi5iIH0pLCB7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGRhdGEgYXMgYW55KSBhcyBhbnk7XG4gICAgY29uc3QgcHJldlBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXN0cmluZykgYXMgYW55O1xuXG4gICAgLy8gSWYgdGhlIGhhc2ggaXMgdGhlIHNhbWUsIHJldGFpbiBwYXJhbXMuXG4gICAgaWYgKGhhc2ggPT0gb2xkSGFzaCkge1xuICAgICAgICByZXBsYWNlU3RhdGUgPSB0cnVlO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBwcmV2UGFyYW1zLmVudHJpZXMoKSlcbiAgICAgICAgICAgIGlmICghcXVlcnkuaGFzKGtleSkpXG4gICAgICAgICAgICAgICAgcXVlcnkuc2V0KGtleSwgcHJldlBhcmFtcy5nZXQoa2V5KSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIHF1ZXJ5LmVudHJpZXMoKSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWwgPT0gbnVsbCB8fFxuICAgICAgICAgICAgdmFsID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgdmFsID09ICcnIHx8XG4gICAgICAgICAgICB2YWwgPT0gJ251bGwnIHx8XG4gICAgICAgICAgICBOdW1iZXIuaXNOYU4odmFsKSB8fFxuICAgICAgICAgICAgdmFsID09ICdOYU4nXG4gICAgICAgIClcbiAgICAgICAgICAgIHF1ZXJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIGlmICghKGhhc2gudG9Mb3dlckNhc2UoKSA9PSBcIiMvZnJhbWVcIikgfHwgZGF0YVsnaWQnXSA9PSAtMSlcbiAgICAgICAgcXVlcnkuZGVsZXRlKCdpZCcpO1xuXG5cbiAgICBjb25zdCBzdHJRdWVyeSA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc29sZS5sb2coZGF0YSwgaGFzaCwgc3RyUXVlcnkpO1xuICAgIGlmIChyZXBsYWNlU3RhdGUpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGRhdGEsICcnLCBoYXNoICsgKHN0clF1ZXJ5ID8gKCc/JyArIHN0clF1ZXJ5KSA6ICcnKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoZGF0YSwgJycsIGhhc2ggKyAoc3RyUXVlcnkgPyAoJz8nICsgc3RyUXVlcnkpIDogJycpKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXJsRGF0YSA9IChzb3VyY2UgPSB3aW5kb3cubG9jYXRpb24uaGFzaCkgPT4ge1xuICAgIGNvbnN0IFtoYXNoLCBxdWVyeV0gPSBzb3VyY2Uuc3BsaXQoJz8nKTtcbiAgICBsZXQgZGF0YSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnkpIGFzIGFueTtcbiAgICByZXR1cm4gWy4uLmRhdGEuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gKHsgW2tdOiB2IH0pKS5yZWR1Y2UoKGEsIGIpID0+ICh7IC4uLmEsIC4uLmIgfSksIHt9KTtcbn07XG4iXX0=