🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

angular-material-css-vars

Package Overview
Dependencies
Maintainers
1
Versions
64
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-material-css-vars - npm Package Compare versions

Comparing version

to
3.0.0

src/lib/_internal-helper.scss

2

angular-material-css-vars.d.ts
/**
* Generated bundle index. Do not edit.
*/
/// <amd-module name="angular-material-css-vars" />
export * from './public-api';
export { MATERIAL_CSS_VARS_CFG as ɵa } from './mat-css-config-token.const';

@@ -5,3 +5,3 @@ (function (global, factory) {

(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['angular-material-css-vars'] = {}, global.ng.core, global.tinycolor, global.ng.common));
}(this, (function (exports, i0, tinycolor, i1) { 'use strict';
}(this, (function (exports, i0, tinycolor, common) { 'use strict';

@@ -29,3 +29,2 @@ function _interopNamespace(e) {

var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);

@@ -532,13 +531,18 @@ exports.MatCssPalettePrefix = void 0;

MaterialCssVarsService.LIGHT_TEXT_VAR = '--light-primary-text';
MaterialCssVarsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function MaterialCssVarsService_Factory() { return new MaterialCssVarsService(i0__namespace.ɵɵinject(i0__namespace.RendererFactory2), i0__namespace.ɵɵinject(i1__namespace.DOCUMENT), i0__namespace.ɵɵinject(MATERIAL_CSS_VARS_CFG)); }, token: MaterialCssVarsService, providedIn: "root" });
MaterialCssVarsService.decorators = [
{ type: i0.Injectable, args: [{
providedIn: 'root'
},] }
];
MaterialCssVarsService.ctorParameters = function () { return [
{ type: i0.RendererFactory2 },
{ type: Document, decorators: [{ type: i0.Inject, args: [i1.DOCUMENT,] }] },
{ type: undefined, decorators: [{ type: i0.Inject, args: [MATERIAL_CSS_VARS_CFG,] }] }
]; };
MaterialCssVarsService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsService, deps: [{ token: i0__namespace.RendererFactory2 }, { token: common.DOCUMENT }, { token: MATERIAL_CSS_VARS_CFG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
MaterialCssVarsService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsService, providedIn: 'root' });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsService, decorators: [{
type: i0.Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () {
return [{ type: i0__namespace.RendererFactory2 }, { type: Document, decorators: [{
type: i0.Inject,
args: [common.DOCUMENT]
}] }, { type: undefined, decorators: [{
type: i0.Inject,
args: [MATERIAL_CSS_VARS_CFG]
}] }];
} });

@@ -556,10 +560,16 @@ var MaterialCssVarsModule = /** @class */ (function () {

}());
MaterialCssVarsModule.decorators = [
{ type: i0.NgModule, args: [{
declarations: [],
imports: [
i1.CommonModule
]
},] }
];
MaterialCssVarsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
MaterialCssVarsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsModule, imports: [common.CommonModule] });
MaterialCssVarsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsModule, imports: [[
common.CommonModule
]] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0__namespace, type: MaterialCssVarsModule, decorators: [{
type: i0.NgModule,
args: [{
declarations: [],
imports: [
common.CommonModule
]
}]
}] });

@@ -576,3 +586,2 @@ /*

exports.MaterialCssVarsService = MaterialCssVarsService;
exports.ɵa = MATERIAL_CSS_VARS_CFG;

@@ -579,0 +588,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

@@ -5,3 +5,2 @@ /**

export * from './public-api';
export { MATERIAL_CSS_VARS_CFG as ɵa } from './mat-css-config-token.const';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlcmlhbC1jc3MtdmFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWNzcy12YXJzL3NyYy9hbmd1bGFyLW1hdGVyaWFsLWNzcy12YXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge01BVEVSSUFMX0NTU19WQVJTX0NGRyBhcyDJtWF9IGZyb20gJy4vbWF0LWNzcy1jb25maWctdG9rZW4uY29uc3QnOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlcmlhbC1jc3MtdmFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWNzcy12YXJzL3NyYy9hbmd1bGFyLW1hdGVyaWFsLWNzcy12YXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MATERIAL_CSS_VARS_CFG } from '../mat-css-config-token.const';
import * as i0 from "@angular/core";
export class MaterialCssVarsModule {

@@ -12,10 +13,16 @@ static forRoot(config) {

}
MaterialCssVarsModule.decorators = [
{ type: NgModule, args: [{
declarations: [],
imports: [
CommonModule
]
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtY3NzLXZhcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtY3NzLXZhcnMvc3JjL2xpYi9tYXRlcmlhbC1jc3MtdmFycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBUXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUE0QztRQUN6RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixTQUFTLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUM7U0FDaEUsQ0FBQztJQUNKLENBQUM7OztZQVpGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdGVyaWFsQ3NzVmFyaWFibGVzQ29uZmlnfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7TUFURVJJQUxfQ1NTX1ZBUlNfQ0ZHfSBmcm9tICcuLi9tYXQtY3NzLWNvbmZpZy10b2tlbi5jb25zdCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbENzc1ZhcnNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBQYXJ0aWFsPE1hdGVyaWFsQ3NzVmFyaWFibGVzQ29uZmlnPik6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWF0ZXJpYWxDc3NWYXJzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNYXRlcmlhbENzc1ZhcnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogTUFURVJJQUxfQ1NTX1ZBUlNfQ0ZHLCB1c2VWYWx1ZTogY29uZmlnfV1cbiAgICB9O1xuICB9XG59XG4iXX0=
MaterialCssVarsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
MaterialCssVarsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, imports: [CommonModule] });
MaterialCssVarsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, imports: [[
CommonModule
]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, decorators: [{
type: NgModule,
args: [{
declarations: [],
imports: [
CommonModule
]
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtY3NzLXZhcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtY3NzLXZhcnMvc3JjL2xpYi9tYXRlcmlhbC1jc3MtdmFycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQVFwRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBNEM7UUFDekQsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDO1NBQ2hFLENBQUM7SUFDSixDQUFDOztrSEFOVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixZQUg5QixZQUFZO21IQUdILHFCQUFxQixZQUp2QjtZQUNQLFlBQVk7U0FDYjsyRkFFVSxxQkFBcUI7a0JBTmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0ZXJpYWxDc3NWYXJpYWJsZXNDb25maWd9IGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0IHtNQVRFUklBTF9DU1NfVkFSU19DRkd9IGZyb20gJy4uL21hdC1jc3MtY29uZmlnLXRva2VuLmNvbnN0JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQ3NzVmFyc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFBhcnRpYWw8TWF0ZXJpYWxDc3NWYXJpYWJsZXNDb25maWc+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxNYXRlcmlhbENzc1ZhcnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE1hdGVyaWFsQ3NzVmFyc01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBNQVRFUklBTF9DU1NfVkFSU19DRkcsIHVzZVZhbHVlOiBjb25maWd9XVxuICAgIH07XG4gIH1cbn1cbiJdfQ==

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

import { Inject, Injectable, RendererFactory2, RendererStyleFlags2 } from '@angular/core';
import { Inject, Injectable, RendererStyleFlags2 } from '@angular/core';
import { TinyColor } from '@ctrl/tinycolor';

@@ -8,4 +8,2 @@ import { MatCssPalettePrefix } from './model';

import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../mat-css-config-token.const";
// @see: https://github.com/angular/angular/issues/20351

@@ -301,13 +299,16 @@ /** @dynamic */

MaterialCssVarsService.LIGHT_TEXT_VAR = '--light-primary-text';
MaterialCssVarsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MaterialCssVarsService_Factory() { return new MaterialCssVarsService(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.MATERIAL_CSS_VARS_CFG)); }, token: MaterialCssVarsService, providedIn: "root" });
MaterialCssVarsService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
MaterialCssVarsService.ctorParameters = () => [
{ type: RendererFactory2 },
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: undefined, decorators: [{ type: Inject, args: [MATERIAL_CSS_VARS_CFG,] }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtY3NzLXZhcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWNzcy12YXJzL3NyYy9saWIvbWF0ZXJpYWwtY3NzLXZhcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQWtCLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFJTCxtQkFBbUIsRUFHcEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7O0FBT3BFLHdEQUF3RDtBQUN4RCxlQUFlO0FBSWYsTUFBTSxPQUFPLHNCQUFzQjtJQW1CakMsWUFDRSxlQUFpQyxFQUNQLFFBQWtCLEVBQ2IsR0FBK0I7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVA5QyxrQ0FBNkIsR0FBYSxLQUFLLENBQUM7UUFDaEQsaUNBQTRCLEdBQWEsS0FBSyxDQUFDO1FBQy9DLCtCQUEwQixHQUFhLEtBQUssQ0FBQztRQUM3QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQU9yQixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsbUNBQ0gsbUJBQW1CLEdBQ25CLEdBQUcsQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNB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Q0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWdCO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQztJQUNoRCxDQUFDOztBQTNWYyxzQ0FBZSxHQUFHLFdBQVcsQ0FBQztBQUM5QixvQ0FBYSxHQUFHLHFCQUFxQixDQUFDO0FBQ3RDLHFDQUFjLEdBQUcsc0JBQXNCLENBQUM7OztZQU54RCxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXZCc0MsZ0JBQWdCO1lBNkNmLFFBQVEsdUJBQTNDLE1BQU0sU0FBQyxRQUFROzRDQUNmLE1BQU0sU0FBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBSZW5kZXJlclN0eWxlRmxhZ3MyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TnVtYmVyaWZ5LCBSR0JBLCBUaW55Q29sb3J9IGZyb20gJ0BjdHJsL3Rpbnljb2xvcic7XG5pbXBvcnQge1xuICBIdWVWYWx1ZSxcbiAgTWF0Q3NzSHVlQ29sb3JDb250cmFzdE1hcEl0ZW0sXG4gIE1hdENzc0h1ZUNvbG9yTWFwSXRlbSxcbiAgTWF0Q3NzUGFsZXR0ZVByZWZpeCxcbiAgTWF0ZXJpYWxDc3NWYXJpYWJsZXMsXG4gIE1hdGVyaWFsQ3NzVmFyaWFibGVzQ29uZmlnXG59IGZyb20gJy4vbW9kZWwnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7REVGQVVMVF9NQVRfQ1NTX0NGR30gZnJvbSAnLi9kZWZhdWx0LWNmZy5jb25zdCc7XG5pbXBvcnQge01BVEVSSUFMX0NTU19WQVJTX0NGR30gZnJvbSAnLi4vbWF0LWNzcy1jb25maWctdG9rZW4uY29uc3QnO1xuXG5pbnRlcmZhY2UgQ3NzVmFyaWFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbDogc3RyaW5nO1xufVxuXG4vLyBAc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMDM1MVxuLyoqIEBkeW5hbWljICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgQ09OVFJBU1RfUFJFRklYID0gJ2NvbnRyYXN0LSc7XG4gIHByaXZhdGUgc3RhdGljIERBUktfVEVYVF9WQVIgPSAnLS1kYXJrLXByaW1hcnktdGV4dCc7XG4gIHByaXZhdGUgc3RhdGljIExJR0hUX1RFWFRfVkFSID0gJy0tbGlnaHQtcHJpbWFyeS10ZXh0JztcblxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG4gIHByaXZhdGUgUk9PVDogSFRNTEVsZW1lbnQ7XG5cbiAgLy8gVGhpcyBzaG91bGQgYmUgcmVhZG9ubHkgZnJvbSB0aGUgb3V0c2lkZVxuICBjZmc6IE1hdGVyaWFsQ3NzVmFyaWFibGVzQ29uZmlnO1xuICBwcmltYXJ5OiBzdHJpbmc7XG4gIGFjY2VudDogc3RyaW5nO1xuICB3YXJuOiBzdHJpbmc7XG4gIGlzRGFya1RoZW1lOiBib29sZWFuO1xuICBjb250cmFzdENvbG9yVGhyZXNob2xkUHJpbWFyeTogSHVlVmFsdWUgPSAnNDAwJztcbiAgY29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudDogSHVlVmFsdWUgPSAnNDAwJztcbiAgY29udHJhc3RDb2xvclRocmVzaG9sZFdhcm46IEh1ZVZhbHVlID0gJzQwMCc7XG4gIGlzQXV0b0NvbnRyYXN0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoTUFURVJJQUxfQ1NTX1ZBUlNfQ0ZHKSBjZmc6IE1hdGVyaWFsQ3NzVmFyaWFibGVzQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIHRoaXMuUk9PVCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgdGhpcy5jZmcgPSB7XG4gICAgICAuLi5ERUZBVUxUX01BVF9DU1NfQ0ZHLFxuICAgICAgLi4uY2ZnLFxuICAgIH07XG4gICAgdGhpcy5pc0F1dG9Db250cmFzdCA9IHRoaXMuY2ZnLmlzQXV0b0NvbnRyYXN0O1xuXG4gICAgaWYgKHRoaXMuY2ZnLmlzRGFya1RoZW1lKSB7XG4gICAgICB0aGlzLnNldERhcmtUaGVtZSh0aGlzLmNmZy5pc0RhcmtUaGVtZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNmZy5wcmltYXJ5KSB7XG4gICAgICB0aGlzLnNldFByaW1hcnlDb2xvcih0aGlzLmNmZy5wcmltYXJ5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2ZnLmFjY2VudCkge1xuICAgICAgdGhpcy5zZXRBY2NlbnRDb2xvcih0aGlzLmNmZy5hY2NlbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jZmcud2Fybikge1xuICAgICAgdGhpcy5zZXRXYXJuQ29sb3IodGhpcy5jZmcud2Fybik7XG4gICAgfVxuICB9XG5cbiAgc2V0UHJpbWFyeUNvbG9yKGhleDogc3RyaW5nKSB7XG4gICAgdGhpcy5wcmltYXJ5ID0gaGV4O1xuICAgIGNvbnN0IHZhclByZWZpeCA9IE1hdENzc1BhbGV0dGVQcmVmaXguUHJpbWFyeTtcbiAgICBjb25zdCBzdHlsZVByaW1hcnkgPSB0aGlzLl9jb21wdXRlUGFsZXR0ZUNvbG9ycyh2YXJQcmVmaXgsIHRoaXMucHJpbWFyeSk7XG4gICAgdGhpcy5fc2V0U3R5bGUoc3R5bGVQcmltYXJ5KTtcblxuICAgIGlmICh0aGlzLmlzQXV0b0NvbnRyYXN0KSB7XG4gICAgICB0aGlzLl9yZWNhbGN1bGF0ZUFuZFNldENvbnRyYXN0Q29sb3IodmFyUHJlZml4KTtcbiAgICB9XG4gIH1cblxuICBzZXRBY2NlbnRDb2xvcihoZXg6IHN0cmluZykge1xuICAgIHRoaXMuYWNjZW50ID0gaGV4O1xuICAgIGNvbnN0IHZhclByZWZpeCA9IE1hdENzc1BhbGV0dGVQcmVmaXguQWNjZW50O1xuICAgIGNvbnN0IHN0eWxlQWNjZW50ID0gdGhpcy5fY29tcHV0ZVBhbGV0dGVDb2xvcnModmFyUHJlZml4LCB0aGlzLmFjY2VudCk7XG4gICAgdGhpcy5fc2V0U3R5bGUoc3R5bGVBY2NlbnQpO1xuXG4gICAgaWYgKHRoaXMuaXNBdXRvQ29udHJhc3QpIHtcbiAgICAgIHRoaXMuX3JlY2FsY3VsYXRlQW5kU2V0Q29udHJhc3RDb2xvcih2YXJQcmVmaXgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFdhcm5Db2xvcihoZXg6IHN0cmluZykge1xuICAgIHRoaXMud2FybiA9IGhleDtcbiAgICBjb25zdCB2YXJQcmVmaXggPSBNYXRDc3NQYWxldHRlUHJlZml4Lldhcm47XG4gICAgY29uc3Qgc3R5bGVXYXJuID0gdGhpcy5fY29tcHV0ZVBhbGV0dGVDb2xvcnModmFyUHJlZml4LCB0aGlzLndhcm4pO1xuICAgIHRoaXMuX3NldFN0eWxlKHN0eWxlV2Fybik7XG5cbiAgICBpZiAodGhpcy5pc0F1dG9Db250cmFzdCkge1xuICAgICAgdGhpcy5fcmVjYWxjdWxhdGVBbmRTZXRDb250cmFzdENvbG9yKHZhclByZWZpeCk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFyaWFibGUoY3NzVmFyTmFtZTogTWF0ZXJpYWxDc3NWYXJpYWJsZXMsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZXRTdHlsZShbe1xuICAgICAgbmFtZTogY3NzVmFyTmFtZSxcbiAgICAgIHZhbDogdmFsdWUsXG4gICAgfV0pO1xuICB9XG5cbiAgc2V0RGFya1RoZW1lKGlzRGFyazogYm9vbGVhbikge1xuICAgIGlmIChpc0RhcmspIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2ZnLmxpZ2h0VGhlbWVDbGFzcyk7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCh0aGlzLmNmZy5kYXJrVGhlbWVDbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2ZnLmRhcmtUaGVtZUNsYXNzKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoaXMuY2ZnLmxpZ2h0VGhlbWVDbGFzcyk7XG4gICAgfVxuICAgIHRoaXMuaXNEYXJrVGhlbWUgPSBpc0Rhcms7XG4gIH1cblxuICBzZXRBdXRvQ29udHJhc3RFbmFibGVkKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNBdXRvQ29udHJhc3QgPSB2YWw7XG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5fcmVjYWxjdWxhdGVBbmRTZXRDb250cmFzdENvbG9yKE1hdENzc1BhbGV0dGVQcmVmaXguUHJpbWFyeSk7XG4gICAgICB0aGlzLl9yZWNhbGN1bGF0ZUFuZFNldENvbnRyYXN0Q29sb3IoTWF0Q3NzUGFsZXR0ZVByZWZpeC5BY2NlbnQpO1xuICAgICAgdGhpcy5fcmVjYWxjdWxhdGVBbmRTZXRDb250cmFzdENvbG9yKE1hdENzc1BhbGV0dGVQcmVmaXguV2Fybik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkodGhpcy5jb250cmFzdENvbG9yVGhyZXNob2xkUHJpbWFyeSk7XG4gICAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRBY2NlbnQodGhpcy5jb250cmFzdENvbG9yVGhyZXNob2xkQWNjZW50KTtcbiAgICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4odGhpcy5jb250cmFzdENvbG9yVGhyZXNob2xkV2Fybik7XG4gICAgfVxuICB9XG5cbiAgc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkodGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkgPSB0aHJlc2hvbGQ7XG4gICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkKHRocmVzaG9sZCwgTWF0Q3NzUGFsZXR0ZVByZWZpeC5QcmltYXJ5KTtcbiAgfVxuXG4gIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRBY2NlbnQodGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudCA9IHRocmVzaG9sZDtcbiAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGQodGhyZXNob2xkLCBNYXRDc3NQYWxldHRlUHJlZml4LkFjY2VudCk7XG4gIH1cblxuICBzZXRDb250cmFzdENvbG9yVGhyZXNob2xkV2Fybih0aHJlc2hvbGQ6IEh1ZVZhbHVlKSB7XG4gICAgdGhpcy5jb250cmFzdENvbG9yVGhyZXNob2xkV2FybiA9IHRocmVzaG9sZDtcbiAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGQodGhyZXNob2xkLCBNYXRDc3NQYWxldHRlUHJlZml4Lldhcm4pO1xuICB9XG5cbiAgc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZCh0aHJlc2hvbGQ6IEh1ZVZhbHVlLCBwYWxldHRlUHJlZml4OiBNYXRDc3NQYWxldHRlUHJlZml4KSB7XG4gICAgbGV0IGNvbG9yID0gTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5EQVJLX1RFWFRfVkFSO1xuICAgIGNvbnN0IHVwZGF0ZXMgPSB0aGlzLmNmZy5zb3J0ZWRIdWVzLm1hcCgoaHVlKSA9PiB7XG4gICAgICBpZiAoaHVlID09PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgY29sb3IgPSBNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlLkxJR0hUX1RFWFRfVkFSO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsOiB0aGlzLl9nZXRDc3NWYXJWYWx1ZShjb2xvciksXG4gICAgICAgIG5hbWU6IGAke3BhbGV0dGVQcmVmaXggKyBNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlLkNPTlRSQVNUX1BSRUZJWH0ke2h1ZX1gLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLl9zZXRTdHlsZSh1cGRhdGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBwYWxldHRlIGNvbG9yIGJhc2VkIG9uIHRyYWRpdGlvbmFsIHZhbHVlc1xuICAgKi9cbiAgc2V0QWx0ZXJuYXRpdmVDb2xvckFsZ29yaXRobSh0cmFkaXRpb25hbDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2ZnLmlzQWx0ZXJuYXRpdmVDb2xvckFsZ29yaXRobSA9IHRyYWRpdGlvbmFsO1xuICAgIHRoaXMuc2V0UHJpbWFyeUNvbG9yKHRoaXMucHJpbWFyeSk7XG4gICAgdGhpcy5zZXRBY2NlbnRDb2xvcih0aGlzLmFjY2VudCk7XG4gICAgdGhpcy5zZXRXYXJuQ29sb3IodGhpcy53YXJuKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2Ugc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkgaW5zdGVhZCAqL1xuICBjaGFuZ2VDb250cmFzdENvbG9yVGhyZXNob2xkUHJpbWFyeSh0aHJlc2hvbGQ6IEh1ZVZhbHVlKSB7XG4gICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkUHJpbWFyeSh0aHJlc2hvbGQpO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBzZXRDb250cmFzdENvbG9yVGhyZXNob2xkQWNjZW50IGluc3RlYWQgKi9cbiAgY2hhbmdlQ29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudCh0aHJlc2hvbGQ6IEh1ZVZhbHVlKSB7XG4gICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkQWNjZW50KHRocmVzaG9sZCk7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRXYXJuIGluc3RlYWQgKi9cbiAgY2hhbmdlQ29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4odGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4odGhyZXNob2xkKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2Ugc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZCBpbnN0ZWFkICovXG4gIGNoYW5nZUNvbnRyYXN0Q29sb3JUaHJlc2hvbGQodGhyZXNob2xkOiBIdWVWYWx1ZSwgcGFsZXR0ZVByZWZpeDogTWF0Q3NzUGFsZXR0ZVByZWZpeCkge1xuICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZCh0aHJlc2hvbGQsIHBhbGV0dGVQcmVmaXgpO1xuICB9XG5cbiAgZ2V0UGFsZXR0ZUZvckNvbG9yKGhleDogc3RyaW5nKTogTWF0Q3NzSHVlQ29sb3JNYXBJdGVtW10ge1xuICAgIGlmICh0aGlzLmNmZy5pc0FsdGVybmF0aXZlQ29sb3JBbGdvcml0aG0pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRyYWRpdGlvbmFsUGFsZXR0ZUZvckNvbG9yKGhleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbnN0YW50aW5QYWxldHRlRm9yQ29sb3IoaGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRyYWRpdGlvbmFsUGFsZXR0ZUZvckNvbG9yKGhleDogc3RyaW5nKTogTWF0Q3NzSHVlQ29sb3JNYXBJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNmZy5jb2xvck1hcC5tYXAoaXRlbSA9PiB7XG4gICAgICBjb25zdCBtYXBwZWRDb2xvciA9IG5ldyBUaW55Q29sb3IoaGV4KVxuICAgICAgICAubGlnaHRlbihpdGVtLm1hcFswXSlcbiAgICAgICAgLmRhcmtlbihpdGVtLm1hcFsxXSlcbiAgICAgICAgLnNhdHVyYXRlKGl0ZW0ubWFwWzJdKTtcbiAgICAgIGNvbnN0IGMgPSBuZXcgVGlueUNvbG9yKG1hcHBlZENvbG9yKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGh1ZTogaXRlbS5uYW1lLFxuICAgICAgICBpc0xpZ2h0OiBjLmlzTGlnaHQoKSxcbiAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAuLi5jLnRvUmdiKCksXG4gICAgICAgICAgc3RyOiBgcmdiKCR7Yy50b1JnYigpLnJ9LCR7Yy50b1JnYigpLmd9LCR7Yy50b1JnYigpLmJ9KWBcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uc3RhbnRpblBhbGV0dGVGb3JDb2xvcihoZXg6IHN0cmluZyk6IE1hdENzc0h1ZUNvbG9yTWFwSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5jZmcuY29sb3JNYXAubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb21wdXRlUGFsbGV0VHJpYWQoaGV4LCBpdGVtLm5hbWUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHVlOiBpdGVtLm5hbWUsXG4gICAgICAgIGlzTGlnaHQ6IGMuaXNMaWdodCxcbiAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAuLi5jLnJnYixcbiAgICAgICAgICBzdHI6IGByZ2IoJHtjLnJnYi5yfSwke2MucmdiLmd9LCR7Yy5yZ2IuYn0pYFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGFsZXR0ZVdpdGhDb250cmFzdEZvckNvbG9yKGhleDogc3RyaW5nKTogTWF0Q3NzSHVlQ29sb3JDb250cmFzdE1hcEl0ZW1bXSB7XG4gICAgY29uc3QgbGlnaHRUZXh0ID0gdGhpcy5fZ2V0Q3NzVmFyVmFsdWUoTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5MSUdIVF9URVhUX1ZBUik7XG4gICAgY29uc3QgZGFya1RleHQgPSB0aGlzLl9nZXRDc3NWYXJWYWx1ZShNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlLkRBUktfVEVYVF9WQVIpO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLmdldFBhbGV0dGVGb3JDb2xvcihoZXgpO1xuXG4gICAgLy8gVE9ETyBoYW5kbGUgbm9uIGF1dG8gY2FzZVxuICAgIHJldHVybiBwYWxldHRlLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgY29udHJhc3RTdHIgPSBpdGVtLmlzTGlnaHRcbiAgICAgICAgPyBsaWdodFRleHRcbiAgICAgICAgOiBkYXJrVGV4dDtcblxuICAgICAgY29uc3Qgc0xpZ2h0ID0gY29udHJhc3RTdHIuc3BsaXQoJywnKS5tYXAodiA9PiArdik7XG4gICAgICBjb25zdCBjY28gPSB7cjogc0xpZ2h0WzBdLCBnOiBzTGlnaHRbMV0sIGI6IHNMaWdodFsyXSwgYTogMX07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICBjb250cmFzdDoge1xuICAgICAgICAgIC4uLmNjbyxcbiAgICAgICAgICBzdHI6IGAke2Njby5yfSwke2Njby5nfSwke2Njby5ifWBcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wdXRlUGFsZXR0ZUNvbG9ycyhwcmVmaXg6IE1hdENzc1BhbGV0dGVQcmVmaXgsIGhleDogc3RyaW5nKTogQ3NzVmFyaWFibGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFsZXR0ZUZvckNvbG9yKGhleCkubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgYyA9IGl0ZW0uY29sb3I7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBgJHtwcmVmaXh9JHtpdGVtLmh1ZX1gLFxuICAgICAgICB2YWw6IGAke2Mucn0sICR7Yy5nfSwgJHtjLmJ9YFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlY2FsY3VsYXRlQW5kU2V0Q29udHJhc3RDb2xvcihwYWxldHRlUHJlZml4OiBNYXRDc3NQYWxldHRlUHJlZml4KSB7XG4gICAgY29uc3QgdXBkYXRlcyA9IHRoaXMuX2NhbGN1bGF0ZUNvbnRyYXN0Q29sb3JzRm9yQ3VycmVudFZhbHVlcyhwYWxldHRlUHJlZml4KVxuICAgICAgLm1hcCgoe2NvbnRyYXN0Q29sb3JWYXIsIGh1ZX0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWw6IHRoaXMuX2dldENzc1ZhclZhbHVlKGNvbnRyYXN0Q29sb3JWYXIpLFxuICAgICAgICAgIG5hbWU6IGAke3BhbGV0dGVQcmVmaXggKyBNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlLkNPTlRSQVNUX1BSRUZJWH0ke2h1ZX1gLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgdGhpcy5fc2V0U3R5bGUodXBkYXRlcyk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb250cmFzdENvbG9yc0ZvckN1cnJlbnRWYWx1ZXMocGFsZXR0ZVByZWZpeDogTWF0Q3NzUGFsZXR0ZVByZWZpeCk6XG4gICAgeyBjb250cmFzdENvbG9yVmFyOiBzdHJpbmcsIGh1ZTogSHVlVmFsdWUgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5jZmcuc29ydGVkSHVlcy5tYXAoKGh1ZSkgPT4ge1xuICAgICAgY29uc3QgaHVlVmFyVmFsID0gdGhpcy5fZ2V0Q3NzVmFyVmFsdWUoYCR7cGFsZXR0ZVByZWZpeH0ke2h1ZX1gKTtcbiAgICAgIGNvbnN0IGMgPSBuZXcgVGlueUNvbG9yKGByZ2IoJHtodWVWYXJWYWx9KWApO1xuICAgICAgY29uc3QgY29udHJhc3RDb2xvclZhciA9IGMuaXNEYXJrKClcbiAgICAgICAgPyBNYXRlcmlhbENzc1ZhcnNTZXJ2aWNlLkxJR0hUX1RFWFRfVkFSXG4gICAgICAgIDogTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5EQVJLX1RFWFRfVkFSO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udHJhc3RDb2xvclZhcixcbiAgICAgICAgaHVlLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFN0eWxlKHZhcnM6IENzc1ZhcmlhYmxlW10pIHtcbiAgICB2YXJzLmZvckVhY2gocyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuUk9PVCwgcy5uYW1lLCBzLnZhbCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5EYXNoQ2FzZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDc3NWYXJWYWx1ZSh2OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHRoaXMuUk9PVCkuZ2V0UHJvcGVydHlWYWx1ZSh2KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHBhbGxldCBjb2xvcnMgYmFzZWQgb24gYSBUcmlhZCAoQ29uc3RhbnRpbilcbiAgICogc2VlOiBodHRwczovL2dpdGh1Yi5jb20vbWJpdHNvbi9tY2dcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZVBhbGxldFRyaWFkKGhleDogc3RyaW5nLCBodWU6IEh1ZVZhbHVlKSB7XG4gICAgY29uc3QgYmFzZUxpZ2h0ID0gbmV3IFRpbnlDb2xvcignI2ZmZmZmZicpO1xuICAgIGNvbnN0IGJhc2VEYXJrID0gdGhpcy5tdWx0aXBseShuZXcgVGlueUNvbG9yKGhleCkudG9SZ2IoKSwgbmV3IFRpbnlDb2xvcihoZXgpLnRvUmdiKCkpO1xuICAgIGNvbnN0IGJhc2VUcmlhZCA9IG5ldyBUaW55Q29sb3IoaGV4KS50ZXRyYWQoKTtcbiAgICBsZXQgY29sb3I6IHsgcmdiOiBOdW1iZXJpZnk8UkdCQT4sIGlzTGlnaHQ6IGJvb2xlYW4gfTtcblxuICAgIHN3aXRjaCAoaHVlKSB7XG4gICAgICBjYXNlICc1MCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlTGlnaHQubWl4KGhleCwgMTIpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcxMDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZUxpZ2h0Lm1peChoZXgsIDMwKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMjAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VMaWdodC5taXgoaGV4LCA1MCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzMwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlTGlnaHQubWl4KGhleCwgNzApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc0MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZUxpZ2h0Lm1peChoZXgsIDg1KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNTAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VMaWdodC5taXgoaGV4LCAxMDApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc2MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGhleCwgODcpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc3MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGhleCwgNzApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc4MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGhleCwgNTQpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICc5MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGhleCwgMjUpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBMTAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChiYXNlVHJpYWRbNF0sIDE1KS5zYXR1cmF0ZSg4MCkubGlnaHRlbig2NSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0EyMDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGJhc2VUcmlhZFs0XSwgMTUpLnNhdHVyYXRlKDgwKS5saWdodGVuKDU1KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQTQwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlRGFyay5taXgoYmFzZVRyaWFkWzRdLCAxNSkuc2F0dXJhdGUoMTAwKS5saWdodGVuKDQ1KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQTcwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlRGFyay5taXgoYmFzZVRyaWFkWzRdLCAxNSkuc2F0dXJhdGUoMTAwKS5saWdodGVuKDQwKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxuXG4gIHByaXZhdGUgbXVsdGlwbHkocmdiMTogTnVtYmVyaWZ5PFJHQkE+LCByZ2IyOiBOdW1iZXJpZnk8UkdCQT4pOiBUaW55Q29sb3Ige1xuICAgIHJnYjEuYiA9IE1hdGguZmxvb3IocmdiMS5iICogcmdiMi5iIC8gMjU1KTtcbiAgICByZ2IxLmcgPSBNYXRoLmZsb29yKHJnYjEuZyAqIHJnYjIuZyAvIDI1NSk7XG4gICAgcmdiMS5yID0gTWF0aC5mbG9vcihyZ2IxLnIgKiByZ2IyLnIgLyAyNTUpO1xuICAgIHJldHVybiBuZXcgVGlueUNvbG9yKCdyZ2LCoCcgKyByZ2IxLnIgKyAnwqAnICsgcmdiMS5nICsgJ8KgJyArIHJnYjEuYik7XG4gIH1cblxuICBwcml2YXRlIGdldENvbG9yT2JqZWN0KHZhbHVlOiBUaW55Q29sb3IpIHtcbiAgICBjb25zdCBjID0gbmV3IFRpbnlDb2xvcih2YWx1ZSk7XG4gICAgcmV0dXJuIHtyZ2I6IGMudG9SZ2IoKSwgaXNMaWdodDogYy5pc0xpZ2h0KCl9O1xuICB9XG5cbn1cbiJdfQ==
MaterialCssVarsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }, { token: MATERIAL_CSS_VARS_CFG }], target: i0.ɵɵFactoryTarget.Injectable });
MaterialCssVarsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }, { type: undefined, decorators: [{
type: Inject,
args: [MATERIAL_CSS_VARS_CFG]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtY3NzLXZhcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWNzcy12YXJzL3NyYy9saWIvbWF0ZXJpYWwtY3NzLXZhcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBK0IsbUJBQW1CLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFrQixTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBSUwsbUJBQW1CLEVBR3BCLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPcEUsd0RBQXdEO0FBQ3hELGVBQWU7QUFJZixNQUFNLE9BQU8sc0JBQXNCO0lBbUJqQyxZQUNFLGVBQWlDLEVBQ1AsUUFBa0IsRUFDYixHQUErQjtRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUDlDLGtDQUE2QixHQUFhLEtBQUssQ0FBQztRQUNoRCxpQ0FBNEIsR0FBYSxLQUFLLENBQUM7UUFDL0MsK0JBQTBCLEdBQWEsS0FBSyxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBT3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUUxQyxJQUFJLENBQUMsR0FBRyxtQ0FDSCxtQkFBbUIsR0FDbkIsR0FBRyxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUks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RyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBZ0I7UUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDO0lBQ2hELENBQUM7O0FBM1ZjLHNDQUFlLEdBQUcsV0FBVyxDQUFDO0FBQzlCLG9DQUFhLEdBQUcscUJBQXFCLENBQUM7QUFDdEMscUNBQWMsR0FBRyxzQkFBc0IsQ0FBQzttSEFINUMsc0JBQXNCLGtEQXFCdkIsUUFBUSxhQUNSLHFCQUFxQjt1SEF0QnBCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7eUZBc0J1QyxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiwgUmVuZGVyZXJTdHlsZUZsYWdzMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge051bWJlcmlmeSwgUkdCQSwgVGlueUNvbG9yfSBmcm9tICdAY3RybC90aW55Y29sb3InO1xuaW1wb3J0IHtcbiAgSHVlVmFsdWUsXG4gIE1hdENzc0h1ZUNvbG9yQ29udHJhc3RNYXBJdGVtLFxuICBNYXRDc3NIdWVDb2xvck1hcEl0ZW0sXG4gIE1hdENzc1BhbGV0dGVQcmVmaXgsXG4gIE1hdGVyaWFsQ3NzVmFyaWFibGVzLFxuICBNYXRlcmlhbENzc1ZhcmlhYmxlc0NvbmZpZ1xufSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RFRkFVTFRfTUFUX0NTU19DRkd9IGZyb20gJy4vZGVmYXVsdC1jZmcuY29uc3QnO1xuaW1wb3J0IHtNQVRFUklBTF9DU1NfVkFSU19DRkd9IGZyb20gJy4uL21hdC1jc3MtY29uZmlnLXRva2VuLmNvbnN0JztcblxuaW50ZXJmYWNlIENzc1ZhcmlhYmxlIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWw6IHN0cmluZztcbn1cblxuLy8gQHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjAzNTFcbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxDc3NWYXJzU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIENPTlRSQVNUX1BSRUZJWCA9ICdjb250cmFzdC0nO1xuICBwcml2YXRlIHN0YXRpYyBEQVJLX1RFWFRfVkFSID0gJy0tZGFyay1wcmltYXJ5LXRleHQnO1xuICBwcml2YXRlIHN0YXRpYyBMSUdIVF9URVhUX1ZBUiA9ICctLWxpZ2h0LXByaW1hcnktdGV4dCc7XG5cbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcml2YXRlIFJPT1Q6IEhUTUxFbGVtZW50O1xuXG4gIC8vIFRoaXMgc2hvdWxkIGJlIHJlYWRvbmx5IGZyb20gdGhlIG91dHNpZGVcbiAgY2ZnOiBNYXRlcmlhbENzc1ZhcmlhYmxlc0NvbmZpZztcbiAgcHJpbWFyeTogc3RyaW5nO1xuICBhY2NlbnQ6IHN0cmluZztcbiAgd2Fybjogc3RyaW5nO1xuICBpc0RhcmtUaGVtZTogYm9vbGVhbjtcbiAgY29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnk6IEh1ZVZhbHVlID0gJzQwMCc7XG4gIGNvbnRyYXN0Q29sb3JUaHJlc2hvbGRBY2NlbnQ6IEh1ZVZhbHVlID0gJzQwMCc7XG4gIGNvbnRyYXN0Q29sb3JUaHJlc2hvbGRXYXJuOiBIdWVWYWx1ZSA9ICc0MDAnO1xuICBpc0F1dG9Db250cmFzdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBASW5qZWN0KE1BVEVSSUFMX0NTU19WQVJTX0NGRykgY2ZnOiBNYXRlcmlhbENzc1ZhcmlhYmxlc0NvbmZpZyxcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLlJPT1QgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIHRoaXMuY2ZnID0ge1xuICAgICAgLi4uREVGQVVMVF9NQVRfQ1NTX0NGRyxcbiAgICAgIC4uLmNmZyxcbiAgICB9O1xuICAgIHRoaXMuaXNBdXRvQ29udHJhc3QgPSB0aGlzLmNmZy5pc0F1dG9Db250cmFzdDtcblxuICAgIGlmICh0aGlzLmNmZy5pc0RhcmtUaGVtZSkge1xuICAgICAgdGhpcy5zZXREYXJrVGhlbWUodGhpcy5jZmcuaXNEYXJrVGhlbWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jZmcucHJpbWFyeSkge1xuICAgICAgdGhpcy5zZXRQcmltYXJ5Q29sb3IodGhpcy5jZmcucHJpbWFyeSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNmZy5hY2NlbnQpIHtcbiAgICAgIHRoaXMuc2V0QWNjZW50Q29sb3IodGhpcy5jZmcuYWNjZW50KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2ZnLndhcm4pIHtcbiAgICAgIHRoaXMuc2V0V2FybkNvbG9yKHRoaXMuY2ZnLndhcm4pO1xuICAgIH1cbiAgfVxuXG4gIHNldFByaW1hcnlDb2xvcihoZXg6IHN0cmluZykge1xuICAgIHRoaXMucHJpbWFyeSA9IGhleDtcbiAgICBjb25zdCB2YXJQcmVmaXggPSBNYXRDc3NQYWxldHRlUHJlZml4LlByaW1hcnk7XG4gICAgY29uc3Qgc3R5bGVQcmltYXJ5ID0gdGhpcy5fY29tcHV0ZVBhbGV0dGVDb2xvcnModmFyUHJlZml4LCB0aGlzLnByaW1hcnkpO1xuICAgIHRoaXMuX3NldFN0eWxlKHN0eWxlUHJpbWFyeSk7XG5cbiAgICBpZiAodGhpcy5pc0F1dG9Db250cmFzdCkge1xuICAgICAgdGhpcy5fcmVjYWxjdWxhdGVBbmRTZXRDb250cmFzdENvbG9yKHZhclByZWZpeCk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWNjZW50Q29sb3IoaGV4OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFjY2VudCA9IGhleDtcbiAgICBjb25zdCB2YXJQcmVmaXggPSBNYXRDc3NQYWxldHRlUHJlZml4LkFjY2VudDtcbiAgICBjb25zdCBzdHlsZUFjY2VudCA9IHRoaXMuX2NvbXB1dGVQYWxldHRlQ29sb3JzKHZhclByZWZpeCwgdGhpcy5hY2NlbnQpO1xuICAgIHRoaXMuX3NldFN0eWxlKHN0eWxlQWNjZW50KTtcblxuICAgIGlmICh0aGlzLmlzQXV0b0NvbnRyYXN0KSB7XG4gICAgICB0aGlzLl9yZWNhbGN1bGF0ZUFuZFNldENvbnRyYXN0Q29sb3IodmFyUHJlZml4KTtcbiAgICB9XG4gIH1cblxuICBzZXRXYXJuQ29sb3IoaGV4OiBzdHJpbmcpIHtcbiAgICB0aGlzLndhcm4gPSBoZXg7XG4gICAgY29uc3QgdmFyUHJlZml4ID0gTWF0Q3NzUGFsZXR0ZVByZWZpeC5XYXJuO1xuICAgIGNvbnN0IHN0eWxlV2FybiA9IHRoaXMuX2NvbXB1dGVQYWxldHRlQ29sb3JzKHZhclByZWZpeCwgdGhpcy53YXJuKTtcbiAgICB0aGlzLl9zZXRTdHlsZShzdHlsZVdhcm4pO1xuXG4gICAgaWYgKHRoaXMuaXNBdXRvQ29udHJhc3QpIHtcbiAgICAgIHRoaXMuX3JlY2FsY3VsYXRlQW5kU2V0Q29udHJhc3RDb2xvcih2YXJQcmVmaXgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhcmlhYmxlKGNzc1Zhck5hbWU6IE1hdGVyaWFsQ3NzVmFyaWFibGVzLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2V0U3R5bGUoW3tcbiAgICAgIG5hbWU6IGNzc1Zhck5hbWUsXG4gICAgICB2YWw6IHZhbHVlLFxuICAgIH1dKTtcbiAgfVxuXG4gIHNldERhcmtUaGVtZShpc0Rhcms6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEYXJrKSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNmZy5saWdodFRoZW1lQ2xhc3MpO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodGhpcy5jZmcuZGFya1RoZW1lQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNmZy5kYXJrVGhlbWVDbGFzcyk7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCh0aGlzLmNmZy5saWdodFRoZW1lQ2xhc3MpO1xuICAgIH1cbiAgICB0aGlzLmlzRGFya1RoZW1lID0gaXNEYXJrO1xuICB9XG5cbiAgc2V0QXV0b0NvbnRyYXN0RW5hYmxlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzQXV0b0NvbnRyYXN0ID0gdmFsO1xuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMuX3JlY2FsY3VsYXRlQW5kU2V0Q29udHJhc3RDb2xvcihNYXRDc3NQYWxldHRlUHJlZml4LlByaW1hcnkpO1xuICAgICAgdGhpcy5fcmVjYWxjdWxhdGVBbmRTZXRDb250cmFzdENvbG9yKE1hdENzc1BhbGV0dGVQcmVmaXguQWNjZW50KTtcbiAgICAgIHRoaXMuX3JlY2FsY3VsYXRlQW5kU2V0Q29udHJhc3RDb2xvcihNYXRDc3NQYWxldHRlUHJlZml4Lldhcm4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRQcmltYXJ5KHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkpO1xuICAgICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkQWNjZW50KHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudCk7XG4gICAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRXYXJuKHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRQcmltYXJ5KHRocmVzaG9sZDogSHVlVmFsdWUpIHtcbiAgICB0aGlzLmNvbnRyYXN0Q29sb3JUaHJlc2hvbGRQcmltYXJ5ID0gdGhyZXNob2xkO1xuICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZCh0aHJlc2hvbGQsIE1hdENzc1BhbGV0dGVQcmVmaXguUHJpbWFyeSk7XG4gIH1cblxuICBzZXRDb250cmFzdENvbG9yVGhyZXNob2xkQWNjZW50KHRocmVzaG9sZDogSHVlVmFsdWUpIHtcbiAgICB0aGlzLmNvbnRyYXN0Q29sb3JUaHJlc2hvbGRBY2NlbnQgPSB0aHJlc2hvbGQ7XG4gICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkKHRocmVzaG9sZCwgTWF0Q3NzUGFsZXR0ZVByZWZpeC5BY2NlbnQpO1xuICB9XG5cbiAgc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4odGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuY29udHJhc3RDb2xvclRocmVzaG9sZFdhcm4gPSB0aHJlc2hvbGQ7XG4gICAgdGhpcy5zZXRDb250cmFzdENvbG9yVGhyZXNob2xkKHRocmVzaG9sZCwgTWF0Q3NzUGFsZXR0ZVByZWZpeC5XYXJuKTtcbiAgfVxuXG4gIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGQodGhyZXNob2xkOiBIdWVWYWx1ZSwgcGFsZXR0ZVByZWZpeDogTWF0Q3NzUGFsZXR0ZVByZWZpeCkge1xuICAgIGxldCBjb2xvciA9IE1hdGVyaWFsQ3NzVmFyc1NlcnZpY2UuREFSS19URVhUX1ZBUjtcbiAgICBjb25zdCB1cGRhdGVzID0gdGhpcy5jZmcuc29ydGVkSHVlcy5tYXAoKGh1ZSkgPT4ge1xuICAgICAgaWYgKGh1ZSA9PT0gdGhyZXNob2xkKSB7XG4gICAgICAgIGNvbG9yID0gTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5MSUdIVF9URVhUX1ZBUjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbDogdGhpcy5fZ2V0Q3NzVmFyVmFsdWUoY29sb3IpLFxuICAgICAgICBuYW1lOiBgJHtwYWxldHRlUHJlZml4ICsgTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5DT05UUkFTVF9QUkVGSVh9JHtodWV9YCxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5fc2V0U3R5bGUodXBkYXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgcGFsZXR0ZSBjb2xvciBiYXNlZCBvbiB0cmFkaXRpb25hbCB2YWx1ZXNcbiAgICovXG4gIHNldEFsdGVybmF0aXZlQ29sb3JBbGdvcml0aG0odHJhZGl0aW9uYWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNmZy5pc0FsdGVybmF0aXZlQ29sb3JBbGdvcml0aG0gPSB0cmFkaXRpb25hbDtcbiAgICB0aGlzLnNldFByaW1hcnlDb2xvcih0aGlzLnByaW1hcnkpO1xuICAgIHRoaXMuc2V0QWNjZW50Q29sb3IodGhpcy5hY2NlbnQpO1xuICAgIHRoaXMuc2V0V2FybkNvbG9yKHRoaXMud2Fybik7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRQcmltYXJ5IGluc3RlYWQgKi9cbiAgY2hhbmdlQ29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkodGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZFByaW1hcnkodGhyZXNob2xkKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2Ugc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudCBpbnN0ZWFkICovXG4gIGNoYW5nZUNvbnRyYXN0Q29sb3JUaHJlc2hvbGRBY2NlbnQodGhyZXNob2xkOiBIdWVWYWx1ZSkge1xuICAgIHRoaXMuc2V0Q29udHJhc3RDb2xvclRocmVzaG9sZEFjY2VudCh0aHJlc2hvbGQpO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBzZXRDb250cmFzdENvbG9yVGhyZXNob2xkV2FybiBpbnN0ZWFkICovXG4gIGNoYW5nZUNvbnRyYXN0Q29sb3JUaHJlc2hvbGRXYXJuKHRocmVzaG9sZDogSHVlVmFsdWUpIHtcbiAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGRXYXJuKHRocmVzaG9sZCk7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIHNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGQgaW5zdGVhZCAqL1xuICBjaGFuZ2VDb250cmFzdENvbG9yVGhyZXNob2xkKHRocmVzaG9sZDogSHVlVmFsdWUsIHBhbGV0dGVQcmVmaXg6IE1hdENzc1BhbGV0dGVQcmVmaXgpIHtcbiAgICB0aGlzLnNldENvbnRyYXN0Q29sb3JUaHJlc2hvbGQodGhyZXNob2xkLCBwYWxldHRlUHJlZml4KTtcbiAgfVxuXG4gIGdldFBhbGV0dGVGb3JDb2xvcihoZXg6IHN0cmluZyk6IE1hdENzc0h1ZUNvbG9yTWFwSXRlbVtdIHtcbiAgICBpZiAodGhpcy5jZmcuaXNBbHRlcm5hdGl2ZUNvbG9yQWxnb3JpdGhtKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFkaXRpb25hbFBhbGV0dGVGb3JDb2xvcihoZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb25zdGFudGluUGFsZXR0ZUZvckNvbG9yKGhleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFkaXRpb25hbFBhbGV0dGVGb3JDb2xvcihoZXg6IHN0cmluZyk6IE1hdENzc0h1ZUNvbG9yTWFwSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5jZmcuY29sb3JNYXAubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgbWFwcGVkQ29sb3IgPSBuZXcgVGlueUNvbG9yKGhleClcbiAgICAgICAgLmxpZ2h0ZW4oaXRlbS5tYXBbMF0pXG4gICAgICAgIC5kYXJrZW4oaXRlbS5tYXBbMV0pXG4gICAgICAgIC5zYXR1cmF0ZShpdGVtLm1hcFsyXSk7XG4gICAgICBjb25zdCBjID0gbmV3IFRpbnlDb2xvcihtYXBwZWRDb2xvcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBodWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgaXNMaWdodDogYy5pc0xpZ2h0KCksXG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgLi4uYy50b1JnYigpLFxuICAgICAgICAgIHN0cjogYHJnYigke2MudG9SZ2IoKS5yfSwke2MudG9SZ2IoKS5nfSwke2MudG9SZ2IoKS5ifSlgXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnN0YW50aW5QYWxldHRlRm9yQ29sb3IoaGV4OiBzdHJpbmcpOiBNYXRDc3NIdWVDb2xvck1hcEl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuY2ZnLmNvbG9yTWFwLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgYyA9IHRoaXMuY29tcHV0ZVBhbGxldFRyaWFkKGhleCwgaXRlbS5uYW1lKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGh1ZTogaXRlbS5uYW1lLFxuICAgICAgICBpc0xpZ2h0OiBjLmlzTGlnaHQsXG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgLi4uYy5yZ2IsXG4gICAgICAgICAgc3RyOiBgcmdiKCR7Yy5yZ2Iucn0sJHtjLnJnYi5nfSwke2MucmdiLmJ9KWBcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBhbGV0dGVXaXRoQ29udHJhc3RGb3JDb2xvcihoZXg6IHN0cmluZyk6IE1hdENzc0h1ZUNvbG9yQ29udHJhc3RNYXBJdGVtW10ge1xuICAgIGNvbnN0IGxpZ2h0VGV4dCA9IHRoaXMuX2dldENzc1ZhclZhbHVlKE1hdGVyaWFsQ3NzVmFyc1NlcnZpY2UuTElHSFRfVEVYVF9WQVIpO1xuICAgIGNvbnN0IGRhcmtUZXh0ID0gdGhpcy5fZ2V0Q3NzVmFyVmFsdWUoTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5EQVJLX1RFWFRfVkFSKTtcbiAgICBjb25zdCBwYWxldHRlID0gdGhpcy5nZXRQYWxldHRlRm9yQ29sb3IoaGV4KTtcblxuICAgIC8vIFRPRE8gaGFuZGxlIG5vbiBhdXRvIGNhc2VcbiAgICByZXR1cm4gcGFsZXR0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyYXN0U3RyID0gaXRlbS5pc0xpZ2h0XG4gICAgICAgID8gbGlnaHRUZXh0XG4gICAgICAgIDogZGFya1RleHQ7XG5cbiAgICAgIGNvbnN0IHNMaWdodCA9IGNvbnRyYXN0U3RyLnNwbGl0KCcsJykubWFwKHYgPT4gK3YpO1xuICAgICAgY29uc3QgY2NvID0ge3I6IHNMaWdodFswXSwgZzogc0xpZ2h0WzFdLCBiOiBzTGlnaHRbMl0sIGE6IDF9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgY29udHJhc3Q6IHtcbiAgICAgICAgICAuLi5jY28sXG4gICAgICAgICAgc3RyOiBgJHtjY28ucn0sJHtjY28uZ30sJHtjY28uYn1gXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcHV0ZVBhbGV0dGVDb2xvcnMocHJlZml4OiBNYXRDc3NQYWxldHRlUHJlZml4LCBoZXg6IHN0cmluZyk6IENzc1ZhcmlhYmxlW10ge1xuICAgIHJldHVybiB0aGlzLmdldFBhbGV0dGVGb3JDb2xvcihoZXgpLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGMgPSBpdGVtLmNvbG9yO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogYCR7cHJlZml4fSR7aXRlbS5odWV9YCxcbiAgICAgICAgdmFsOiBgJHtjLnJ9LCAke2MuZ30sICR7Yy5ifWBcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWNhbGN1bGF0ZUFuZFNldENvbnRyYXN0Q29sb3IocGFsZXR0ZVByZWZpeDogTWF0Q3NzUGFsZXR0ZVByZWZpeCkge1xuICAgIGNvbnN0IHVwZGF0ZXMgPSB0aGlzLl9jYWxjdWxhdGVDb250cmFzdENvbG9yc0ZvckN1cnJlbnRWYWx1ZXMocGFsZXR0ZVByZWZpeClcbiAgICAgIC5tYXAoKHtjb250cmFzdENvbG9yVmFyLCBodWV9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsOiB0aGlzLl9nZXRDc3NWYXJWYWx1ZShjb250cmFzdENvbG9yVmFyKSxcbiAgICAgICAgICBuYW1lOiBgJHtwYWxldHRlUHJlZml4ICsgTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5DT05UUkFTVF9QUkVGSVh9JHtodWV9YCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIHRoaXMuX3NldFN0eWxlKHVwZGF0ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ29udHJhc3RDb2xvcnNGb3JDdXJyZW50VmFsdWVzKHBhbGV0dGVQcmVmaXg6IE1hdENzc1BhbGV0dGVQcmVmaXgpOlxuICAgIHsgY29udHJhc3RDb2xvclZhcjogc3RyaW5nLCBodWU6IEh1ZVZhbHVlIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMuY2ZnLnNvcnRlZEh1ZXMubWFwKChodWUpID0+IHtcbiAgICAgIGNvbnN0IGh1ZVZhclZhbCA9IHRoaXMuX2dldENzc1ZhclZhbHVlKGAke3BhbGV0dGVQcmVmaXh9JHtodWV9YCk7XG4gICAgICBjb25zdCBjID0gbmV3IFRpbnlDb2xvcihgcmdiKCR7aHVlVmFyVmFsfSlgKTtcbiAgICAgIGNvbnN0IGNvbnRyYXN0Q29sb3JWYXIgPSBjLmlzRGFyaygpXG4gICAgICAgID8gTWF0ZXJpYWxDc3NWYXJzU2VydmljZS5MSUdIVF9URVhUX1ZBUlxuICAgICAgICA6IE1hdGVyaWFsQ3NzVmFyc1NlcnZpY2UuREFSS19URVhUX1ZBUjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRyYXN0Q29sb3JWYXIsXG4gICAgICAgIGh1ZSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRTdHlsZSh2YXJzOiBDc3NWYXJpYWJsZVtdKSB7XG4gICAgdmFycy5mb3JFYWNoKHMgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLlJPT1QsIHMubmFtZSwgcy52YWwsIFJlbmRlcmVyU3R5bGVGbGFnczIuRGFzaENhc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q3NzVmFyVmFsdWUodjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLlJPT1QpLmdldFByb3BlcnR5VmFsdWUodik7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSBwYWxsZXQgY29sb3JzIGJhc2VkIG9uIGEgVHJpYWQgKENvbnN0YW50aW4pXG4gICAqIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL21iaXRzb24vbWNnXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVQYWxsZXRUcmlhZChoZXg6IHN0cmluZywgaHVlOiBIdWVWYWx1ZSkge1xuICAgIGNvbnN0IGJhc2VMaWdodCA9IG5ldyBUaW55Q29sb3IoJyNmZmZmZmYnKTtcbiAgICBjb25zdCBiYXNlRGFyayA9IHRoaXMubXVsdGlwbHkobmV3IFRpbnlDb2xvcihoZXgpLnRvUmdiKCksIG5ldyBUaW55Q29sb3IoaGV4KS50b1JnYigpKTtcbiAgICBjb25zdCBiYXNlVHJpYWQgPSBuZXcgVGlueUNvbG9yKGhleCkudGV0cmFkKCk7XG4gICAgbGV0IGNvbG9yOiB7IHJnYjogTnVtYmVyaWZ5PFJHQkE+LCBpc0xpZ2h0OiBib29sZWFuIH07XG5cbiAgICBzd2l0Y2ggKGh1ZSkge1xuICAgICAgY2FzZSAnNTAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZUxpZ2h0Lm1peChoZXgsIDEyKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMTAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VMaWdodC5taXgoaGV4LCAzMCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzIwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlTGlnaHQubWl4KGhleCwgNTApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICczMDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZUxpZ2h0Lm1peChoZXgsIDcwKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNDAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VMaWdodC5taXgoaGV4LCA4NSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzUwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlTGlnaHQubWl4KGhleCwgMTAwKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNjAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChoZXgsIDg3KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnNzAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChoZXgsIDcwKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnODAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChoZXgsIDU0KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnOTAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChoZXgsIDI1KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQTEwMCc6XG4gICAgICAgIGNvbG9yID0gdGhpcy5nZXRDb2xvck9iamVjdChiYXNlRGFyay5taXgoYmFzZVRyaWFkWzRdLCAxNSkuc2F0dXJhdGUoODApLmxpZ2h0ZW4oNjUpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBMjAwJzpcbiAgICAgICAgY29sb3IgPSB0aGlzLmdldENvbG9yT2JqZWN0KGJhc2VEYXJrLm1peChiYXNlVHJpYWRbNF0sIDE1KS5zYXR1cmF0ZSg4MCkubGlnaHRlbig1NSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0E0MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGJhc2VUcmlhZFs0XSwgMTUpLnNhdHVyYXRlKDEwMCkubGlnaHRlbig0NSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0E3MDAnOlxuICAgICAgICBjb2xvciA9IHRoaXMuZ2V0Q29sb3JPYmplY3QoYmFzZURhcmsubWl4KGJhc2VUcmlhZFs0XSwgMTUpLnNhdHVyYXRlKDEwMCkubGlnaHRlbig0MCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3I7XG4gIH1cblxuICBwcml2YXRlIG11bHRpcGx5KHJnYjE6IE51bWJlcmlmeTxSR0JBPiwgcmdiMjogTnVtYmVyaWZ5PFJHQkE+KTogVGlueUNvbG9yIHtcbiAgICByZ2IxLmIgPSBNYXRoLmZsb29yKHJnYjEuYiAqIHJnYjIuYiAvIDI1NSk7XG4gICAgcmdiMS5nID0gTWF0aC5mbG9vcihyZ2IxLmcgKiByZ2IyLmcgLyAyNTUpO1xuICAgIHJnYjEuciA9IE1hdGguZmxvb3IocmdiMS5yICogcmdiMi5yIC8gMjU1KTtcbiAgICByZXR1cm4gbmV3IFRpbnlDb2xvcigncmdiwqAnICsgcmdiMS5yICsgJ8KgJyArIHJnYjEuZyArICfCoCcgKyByZ2IxLmIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xvck9iamVjdCh2YWx1ZTogVGlueUNvbG9yKSB7XG4gICAgY29uc3QgYyA9IG5ldyBUaW55Q29sb3IodmFsdWUpO1xuICAgIHJldHVybiB7cmdiOiBjLnRvUmdiKCksIGlzTGlnaHQ6IGMuaXNMaWdodCgpfTtcbiAgfVxuXG59XG4iXX0=
import * as i0 from '@angular/core';
import { InjectionToken, RendererStyleFlags2, Injectable, RendererFactory2, Inject, NgModule } from '@angular/core';
import { InjectionToken, RendererStyleFlags2, Injectable, Inject, NgModule } from '@angular/core';
import { TinyColor } from '@ctrl/tinycolor';
import * as i1 from '@angular/common';
import { DOCUMENT, CommonModule } from '@angular/common';

@@ -500,13 +499,16 @@

MaterialCssVarsService.LIGHT_TEXT_VAR = '--light-primary-text';
MaterialCssVarsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MaterialCssVarsService_Factory() { return new MaterialCssVarsService(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(MATERIAL_CSS_VARS_CFG)); }, token: MaterialCssVarsService, providedIn: "root" });
MaterialCssVarsService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
MaterialCssVarsService.ctorParameters = () => [
{ type: RendererFactory2 },
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: undefined, decorators: [{ type: Inject, args: [MATERIAL_CSS_VARS_CFG,] }] }
];
MaterialCssVarsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }, { token: MATERIAL_CSS_VARS_CFG }], target: i0.ɵɵFactoryTarget.Injectable });
MaterialCssVarsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }, { type: undefined, decorators: [{
type: Inject,
args: [MATERIAL_CSS_VARS_CFG]
}] }]; } });

@@ -521,10 +523,16 @@ class MaterialCssVarsModule {

}
MaterialCssVarsModule.decorators = [
{ type: NgModule, args: [{
declarations: [],
imports: [
CommonModule
]
},] }
];
MaterialCssVarsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
MaterialCssVarsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, imports: [CommonModule] });
MaterialCssVarsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, imports: [[
CommonModule
]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: MaterialCssVarsModule, decorators: [{
type: NgModule,
args: [{
declarations: [],
imports: [
CommonModule
]
}]
}] });

@@ -539,3 +547,3 @@ /*

export { MatCssPalettePrefix, MaterialCssVariables, MaterialCssVarsModule, MaterialCssVarsService, MATERIAL_CSS_VARS_CFG as ɵa };
export { MatCssPalettePrefix, MaterialCssVariables, MaterialCssVarsModule, MaterialCssVarsService };
//# sourceMappingURL=angular-material-css-vars.js.map
import { ModuleWithProviders } from '@angular/core';
import { MaterialCssVariablesConfig } from './model';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export declare class MaterialCssVarsModule {
static forRoot(config?: Partial<MaterialCssVariablesConfig>): ModuleWithProviders<MaterialCssVarsModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialCssVarsModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialCssVarsModule, never, [typeof i1.CommonModule], never>;
static ɵinj: i0.ɵɵInjectorDeclaration<MaterialCssVarsModule>;
}
import { RendererFactory2 } from '@angular/core';
import { HueValue, MatCssHueColorContrastMapItem, MatCssHueColorMapItem, MatCssPalettePrefix, MaterialCssVariables, MaterialCssVariablesConfig } from './model';
import * as i0 from "@angular/core";
/** @dynamic */

@@ -59,2 +60,4 @@ export declare class MaterialCssVarsService {

private getColorObject;
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialCssVarsService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<MaterialCssVarsService>;
}
{
"name": "angular-material-css-vars",
"version": "2.1.2",
"version": "3.0.0",
"description": "Little library to use css variables for @angular/material",

@@ -21,9 +21,9 @@ "author": "johannesjo <contact@super-productivity.com> (http://super-productivity.com)",

"peerDependencies": {
"@angular/common": ">=12",
"@angular/core": ">=12",
"@angular/material": ">=12"
"@angular/common": ">=13",
"@angular/core": ">=13",
"@angular/material": ">=13"
},
"dependencies": {
"@ctrl/tinycolor": "^2.6.0",
"tslib": "^2.0.0"
"@ctrl/tinycolor": "^3.4.0",
"tslib": "^2.3.0"
},

@@ -36,4 +36,3 @@ "main": "bundles/angular-material-css-vars.umd.js",

"typings": "angular-material-css-vars.d.ts",
"metadata": "angular-material-css-vars.metadata.json",
"sideEffects": false
}

@@ -175,7 +175,16 @@ <p align="center"><img alt="logo" src="logo.png"></p>

## upgrading to angular v12
Angular material v12 interoduces some big changes, which leaves you with two options when upgrading to ng12: You can either stay at angular material v11 and angular-material-css-vars v1.2.0 or you can use v2+ which thanks to @pedrojrivera adds full support for the new version.
## angular material v11 or lower
Use v1.2.0 of this lib.
## Credit...
...goes to @zbirizdo [project](https://github.com/zbirizdo/material-css-vars) on which parts of this are based which is in turn supposedly based on [this gist](https://gist.github.com/shprink/c7f333e3ad51830f14a6383f3ab35439).
...and to @pedrojrivera without whom there would be no support for @angular/material v12.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet