com.phloxui
Version:
PhloxUI Ng2+ Framework
446 lines (445 loc) • 37.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
var MIMETypeService = /** @class */ (function () {
function MIMETypeService() {
this.MIMETypeModel = [
{
"name": 'text/plain',
"displayName": 'plain'
},
{
"name": 'text/html',
"displayName": 'html'
},
{
"name": 'text/css',
"displayName": 'css'
},
{
"name": 'text/javascript',
"displayName": 'javascript'
},
{
"name": 'image/gif',
"displayName": 'gif'
},
{
"name": 'image/png',
"displayName": 'png'
},
{
"name": 'image/jpeg',
"displayName": 'jpeg'
},
{
"name": 'image/bmp',
"displayName": 'bmp'
},
{
"name": 'image/webp',
"displayName": 'webp'
},
{
"name": 'x-image/icon',
"displayName": 'icon'
},
{
"name": 'image/vnd.microsoft.icon',
"displayName": 'vnd.microsoft.icon'
},
{
"name": 'audio/midi',
"displayName": 'midi'
},
{
"name": 'audio/mpeg',
"displayName": 'mpeg'
},
{
"name": 'audio/webm',
"displayName": 'webm'
},
{
"name": 'audio/ogg',
"displayName": 'ogg'
},
{
"name": 'audio/wav',
"displayName": 'wav'
},
{
"name": 'video/webm',
"displayName": 'webm'
},
{
"name": 'video/ogg',
"displayName": 'ogg'
},
{
"name": 'application/javascript',
"displayName": 'javascript'
},
{
"name": 'application/octet-stream',
"displayName": 'octet-stream'
},
{
"name": 'application/pkcs12',
"displayName": 'pkcs12'
},
{
"name": 'application/vnd.mspowerpoint',
"displayName": 'vnd.mspowerpoint'
},
{
"name": 'application/xhtml+xml',
"displayName": 'xhtml+xml'
},
{
"name": 'application/xml',
"displayName": 'xml'
},
{
"name": 'application/pdf ',
"displayName": 'PDF '
},
{
"name": 'application/msword',
"displayName": 'doc'
},
{
"name": 'application/msword',
"displayName": 'dot'
},
{
"name": 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
"displayName": 'docx'
},
{
"name": 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
"displayName": 'dotx'
},
{
"name": 'application/vnd.ms-word.document.macroEnabled.12',
"displayName": 'docm'
},
{
"name": 'application/vnd.ms-word.template.macroEnabled.12',
"displayName": 'dotm'
},
{
"name": 'application/vnd.ms-excel',
"displayName": 'xls'
},
{
"name": 'application/vnd.ms-excel',
"displayName": 'xlt'
},
{
"name": 'application/vnd.ms-excel',
"displayName": 'xla'
},
{
"name": 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
"displayName": 'xlsx'
},
{
"name": 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
"displayName": 'xltx'
},
{
"name": 'application/vnd.ms-excel.sheet.macroEnabled.12',
"displayName": 'xlsm'
},
{
"name": 'application/vnd.ms-excel.template.macroEnabled.12',
"displayName": 'xltm'
},
{
"name": 'application/vnd.ms-excel.addin.macroEnabled.12',
"displayName": 'xlam'
},
{
"name": 'application/vnd.ms-excel.sheet.binary.macroEnabled.12.xlsb; Dhivehi;',
"displayName": 'xlsb'
},
{
"name": 'application/Dutch; vnd.ms-powerpoint',
"displayName": 'ppt'
},
{
"name": 'application/vnd.ms-powerpoint',
"displayName": 'pot'
},
{
"name": 'application/Modern vnd.ms-powerpoint',
"displayName": 'pps'
},
{
"name": 'application/vnd.ms-powerpoint',
"displayName": 'ppa'
},
{
"name": 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
"displayName": 'pptx'
},
{
"name": 'application/vnd.openxmlformats-officedocument.presentationml.template',
"displayName": 'potx'
},
{
"name": 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
"displayName": 'ppsx'
},
{
"name": 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
"displayName": 'ppam'
},
{
"name": 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
"displayName": 'pptm'
},
{
"name": 'application/vnd.ms-powerpoint.template.macroEnabled.12',
"displayName": 'potm'
},
{
"name": 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
"displayName": 'ppsm'
}
];
}
/**
* @return {?}
*/
MIMETypeService.prototype.loadNameMIMEType = /**
* @return {?}
*/
function () {
// ! TODO: Edit this on PRODUCTION
return null;
};
/**
* @return {?}
*/
MIMETypeService.prototype.reloadNameMIMEType = /**
* @return {?}
*/
function () {
this.MIMETypeModel = null;
return this.getNameMIMEType();
};
/**
* @return {?}
*/
MIMETypeService.prototype.loadDisplayNameMIMEType = /**
* @return {?}
*/
function () {
// ! TODO: Edit this on PRODUCTION
return null;
};
/**
* @return {?}
*/
MIMETypeService.prototype.reloadDisplayNameMIMEType = /**
* @return {?}
*/
function () {
this.MIMETypeModel = null;
return this.getDisplayNameMIMEType();
};
/**
* @return {?}
*/
MIMETypeService.prototype.loadTypeMIMEType = /**
* @return {?}
*/
function () {
// ! TODO: Edit this on PRODUCTION
return null;
};
/**
* @return {?}
*/
MIMETypeService.prototype.reloadTypeMIMEType = /**
* @return {?}
*/
function () {
this.MIMETypeModel = null;
return this.getTypeMIMEType();
};
/**
* @return {?}
*/
MIMETypeService.prototype.getNameMIMEType = /**
* @return {?}
*/
function () {
var _this = this;
if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') {
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel));
var /** @type {?} */ getName = [];
try {
for (var MIMETypes_1 = tslib_1.__values(MIMETypes), MIMETypes_1_1 = MIMETypes_1.next(); !MIMETypes_1_1.done; MIMETypes_1_1 = MIMETypes_1.next()) {
var MIMEType = MIMETypes_1_1.value;
getName.push(MIMEType.name);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (MIMETypes_1_1 && !MIMETypes_1_1.done && (_a = MIMETypes_1.return)) _a.call(MIMETypes_1);
}
finally { if (e_1) throw e_1.error; }
}
return Promise.resolve(getName);
}
else {
return this.loadNameMIMEType().then(function (result) {
_this.MIMETypeModel = result;
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(_this.MIMETypeModel));
var /** @type {?} */ getName = [];
try {
for (var MIMETypes_2 = tslib_1.__values(MIMETypes), MIMETypes_2_1 = MIMETypes_2.next(); !MIMETypes_2_1.done; MIMETypes_2_1 = MIMETypes_2.next()) {
var MIMEType = MIMETypes_2_1.value;
getName.push(MIMEType.name);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (MIMETypes_2_1 && !MIMETypes_2_1.done && (_a = MIMETypes_2.return)) _a.call(MIMETypes_2);
}
finally { if (e_2) throw e_2.error; }
}
return Promise.resolve(getName);
var e_2, _a;
});
}
var e_1, _a;
};
/**
* @return {?}
*/
MIMETypeService.prototype.getDisplayNameMIMEType = /**
* @return {?}
*/
function () {
var _this = this;
if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') {
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel));
var /** @type {?} */ getDisplayName = [];
try {
for (var MIMETypes_3 = tslib_1.__values(MIMETypes), MIMETypes_3_1 = MIMETypes_3.next(); !MIMETypes_3_1.done; MIMETypes_3_1 = MIMETypes_3.next()) {
var MIMEType = MIMETypes_3_1.value;
getDisplayName.push(MIMEType.displayName);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (MIMETypes_3_1 && !MIMETypes_3_1.done && (_a = MIMETypes_3.return)) _a.call(MIMETypes_3);
}
finally { if (e_3) throw e_3.error; }
}
return Promise.resolve(getDisplayName);
}
else {
return this.loadDisplayNameMIMEType().then(function (result) {
_this.MIMETypeModel = result;
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(_this.MIMETypeModel));
var /** @type {?} */ getDisplayName = [];
try {
for (var MIMETypes_4 = tslib_1.__values(MIMETypes), MIMETypes_4_1 = MIMETypes_4.next(); !MIMETypes_4_1.done; MIMETypes_4_1 = MIMETypes_4.next()) {
var MIMEType = MIMETypes_4_1.value;
getDisplayName.push(MIMEType.displayName);
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (MIMETypes_4_1 && !MIMETypes_4_1.done && (_a = MIMETypes_4.return)) _a.call(MIMETypes_4);
}
finally { if (e_4) throw e_4.error; }
}
return Promise.resolve(getDisplayName);
var e_4, _a;
});
}
var e_3, _a;
};
/**
* @return {?}
*/
MIMETypeService.prototype.getTypeMIMEType = /**
* @return {?}
*/
function () {
var _this = this;
if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') {
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel));
var /** @type {?} */ getType = [];
try {
for (var MIMETypes_5 = tslib_1.__values(MIMETypes), MIMETypes_5_1 = MIMETypes_5.next(); !MIMETypes_5_1.done; MIMETypes_5_1 = MIMETypes_5.next()) {
var type = MIMETypes_5_1.value;
var /** @type {?} */ typeName = type.name.split("/");
getType.push(typeName[0]);
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (MIMETypes_5_1 && !MIMETypes_5_1.done && (_a = MIMETypes_5.return)) _a.call(MIMETypes_5);
}
finally { if (e_5) throw e_5.error; }
}
return Promise.resolve(getType);
}
else {
return this.loadTypeMIMEType().then(function (result) {
_this.MIMETypeModel = result;
var /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(_this.MIMETypeModel));
var /** @type {?} */ getType = [];
try {
for (var MIMETypes_6 = tslib_1.__values(MIMETypes), MIMETypes_6_1 = MIMETypes_6.next(); !MIMETypes_6_1.done; MIMETypes_6_1 = MIMETypes_6.next()) {
var type = MIMETypes_6_1.value;
var /** @type {?} */ typeName = type.name.split("/");
getType.push(typeName[0]);
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (MIMETypes_6_1 && !MIMETypes_6_1.done && (_a = MIMETypes_6.return)) _a.call(MIMETypes_6);
}
finally { if (e_6) throw e_6.error; }
}
return Promise.resolve(getType);
var e_6, _a;
});
}
var e_5, _a;
};
MIMETypeService.decorators = [
{ type: Injectable },
];
return MIMETypeService;
}());
export { MIMETypeService };
function MIMETypeService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MIMETypeService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MIMETypeService.ctorParameters;
/** @type {?} */
MIMETypeService.prototype.MIMETypeModel;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUlNRVR5cGVTZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL01JTUVUeXBlU2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OzZCQVVWO1lBQ3pCO2dCQUNJLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixhQUFhLEVBQUUsT0FBTzthQUN6QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixhQUFhLEVBQUUsTUFBTTthQUN4QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixhQUFhLEVBQUUsS0FBSzthQUN2QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLGFBQWEsRUFBRSxZQUFZO2FBQzlCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLGFBQWEsRUFBRSxLQUFLO2FBQ3ZCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLGFBQWEsRUFBRSxLQUFLO2FBQ3ZCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLGFBQWEsRUFBRSxNQUFNO2FBQ3hCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLGFBQWEsRUFBRSxLQUFLO2FBQ3ZCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLGFBQWEsRUFBRSxNQUFNO2FBQ3hCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLGFBQWEsRUFBRSxNQUFNO2FBQ3hCO1lBQ0Q7Z0JBQ0ksTUFBTSxFQUFFLDBCQUEwQjtnQkFDbEMsYUFBYSxFQUFFLG9CQUFvQjthQUN0QztZQUNEO2dCQUNJLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixhQUFhLEVBQUUsTUFBTTthQUN4QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixh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QU8sQ0FBQyxDQUFDOzthQUNuQyxDQUFDLENBQUM7U0FDTjs7OztnQkFyVFIsVUFBVTs7MEJBSFg7O1NBSWEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1JTUVUeXBlTW9kZWwgfSBmcm9tICcuLi9jb21wb25lbnQvbW9kZWwvbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1JTUVUeXBlU2VydmljZSB7XG5cbiAgICAvLyAhIFRPRE86IEVkaXQgdGhpcyBvbiBQUk9EVUNUSU9OXG4gICAgLy8gcHJpdmF0ZSBNSU1FVHlwZU1vZGVsOiBNSU1FVHlwZU1vZGVsW107XG5cbiAgICAvLyAhIFRPRE86IEZPUiBURVNUXG4gICAgcHJpdmF0ZSBNSU1FVHlwZU1vZGVsOiBhbnkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAndGV4dC9wbGFpbicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BsYWluJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAndGV4dC9odG1sJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnaHRtbCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ3RleHQvY3NzJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnY3NzJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAndGV4dC9qYXZhc2NyaXB0JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnamF2YXNjcmlwdCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL2dpZicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2dpZidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL3BuZycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BuZydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL2pwZWcnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdqcGVnJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnaW1hZ2UvYm1wJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnYm1wJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnaW1hZ2Uvd2VicCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3dlYnAnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICd4LWltYWdlL2ljb24nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdpY29uJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAndm5kLm1pY3Jvc29mdC5pY29uJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXVkaW8vbWlkaScsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ21pZGknXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhdWRpby9tcGVnJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnbXBlZydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2F1ZGlvL3dlYm0nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd3ZWJtJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXVkaW8vb2dnJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnb2dnJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXVkaW8vd2F2JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnd2F2J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAndmlkZW8vd2VibScsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3dlYm0nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICd2aWRlby9vZ2cnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdvZ2cnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnamF2YXNjcmlwdCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ29jdGV0LXN0cmVhbSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3BrY3MxMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BrY3MxMidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tc3Bvd2VycG9pbnQnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd2bmQubXNwb3dlcnBvaW50J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGh0bWwreG1sJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24veG1sJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneG1sJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vcGRmICcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ1BERiAnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdkb2MnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnZG90J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdkb2N4J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdkb3R4J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnZG9jbSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2RvdG0nIFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hscydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsdCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsYSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGxzeCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGx0eCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd4bHNtJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsdG0nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGxhbSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLjEyLnhsc2I7IERoaXZlaGk7JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGxzYidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9EdXRjaDsgdm5kLm1zLXBvd2VycG9pbnQnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcHQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwb3QnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9Nb2Rlcm4gdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHBzJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHBhJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BwdHgnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwb3R4J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3Bwc3gnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5hZGRpbi5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcGFtJ1x0IFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcHRtJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncG90bSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcHNtJ1x0XG4gICAgICAgIH0gXG4gICAgXTsgXG5cbiAgICBwcml2YXRlIGxvYWROYW1lTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgLy8gISBUT0RPOiBFZGl0IHRoaXMgb24gUFJPRFVDVElPTlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkTmFtZU1JTUVUeXBlKCk6IFByb21pc2U8TUlNRVR5cGVNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmFtZU1JTUVUeXBlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRGlzcGxheU5hbWVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICAvLyAhIFRPRE86IEVkaXQgdGhpcyBvbiBQUk9EVUNUSU9OXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWREaXNwbGF5TmFtZU1JTUVUeXBlKCk6IFByb21pc2U8TUlNRVR5cGVNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheU5hbWVNSU1FVHlwZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFR5cGVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICAvLyAhIFRPRE86IEVkaXQgdGhpcyBvbiBQUk9EVUNUSU9OXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWRUeXBlTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgdGhpcy5NSU1FVHlwZU1vZGVsID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlTUlNRVR5cGUoKTtcbiAgICB9IFxuXG4gICAgcHVibGljIGdldE5hbWVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICBpZiAodGhpcy5NSU1FVHlwZU1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLk1JTUVUeXBlTW9kZWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICBsZXQgZ2V0TmFtZTogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGZvcihsZXQgTUlNRVR5cGUgb2YgTUlNRVR5cGVzKXsgXG4gICAgICAgICAgICAgICAgZ2V0TmFtZS5wdXNoKE1JTUVUeXBlLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXROYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWROYW1lTUlNRVR5cGUoKS50aGVuKChyZXN1bHQ6IE1JTUVUeXBlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICAgICAgbGV0IGdldE5hbWU6IGFueVtdID0gW107XG4gICAgICAgICAgICAgICAgZm9yKGxldCBNSU1FVHlwZSBvZiBNSU1FVHlwZXMpeyBcbiAgICAgICAgICAgICAgICAgICAgZ2V0TmFtZS5wdXNoKE1JTUVUeXBlLm5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGdldE5hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGlzcGxheU5hbWVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICBpZiAodGhpcy5NSU1FVHlwZU1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLk1JTUVUeXBlTW9kZWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICBsZXQgZ2V0RGlzcGxheU5hbWU6IGFueVtdID0gW107XG4gICAgICAgICAgICBmb3IobGV0IE1JTUVUeXBlIG9mIE1JTUVUeXBlcyl7IFxuICAgICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lLnB1c2goTUlNRVR5cGUuZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXREaXNwbGF5TmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheU5hbWVNSU1FVHlwZSgpLnRoZW4oKHJlc3VsdDogTUlNRVR5cGVNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5NSU1FVHlwZU1vZGVsID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIGxldCBNSU1FVHlwZXM6IGFueVtdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLk1JTUVUeXBlTW9kZWwpKTtcbiAgICAgICAgICAgICAgICBsZXQgZ2V0RGlzcGxheU5hbWU6IGFueVtdID0gW107XG4gICAgICAgICAgICAgICAgZm9yKGxldCBNSU1FVHlwZSBvZiBNSU1FVHlwZXMpeyBcbiAgICAgICAgICAgICAgICAgICAgZ2V0RGlzcGxheU5hbWUucHVzaChNSU1FVHlwZS5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0RGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VHlwZU1JTUVUeXBlKCk6IFByb21pc2U8TUlNRVR5cGVNb2RlbFtdPiB7XG4gICAgICAgIGlmICh0aGlzLk1JTUVUeXBlTW9kZWwgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuTUlNRVR5cGVNb2RlbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGxldCBNSU1FVHlwZXM6IGFueVtdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLk1JTUVUeXBlTW9kZWwpKTtcbiAgICAgICAgICAgIGxldCBnZXRUeXBlOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yKGxldCB0eXBlIG9mIE1JTUVUeXBlcyl7XG4gICAgICAgICAgICAgICAgbGV0IHR5cGVOYW1lID0gdHlwZS5uYW1lLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgICAgICBnZXRUeXBlLnB1c2godHlwZU5hbWVbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXRUeXBlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRUeXBlTUlNRVR5cGUoKS50aGVuKChyZXN1bHQ6IE1JTUVUeXBlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICAgICAgbGV0IGdldFR5cGU6IGFueVtdID0gW107XG4gICAgICAgICAgICAgICAgZm9yKGxldCB0eXBlIG9mIE1JTUVUeXBlcyl7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0eXBlTmFtZSA9IHR5cGUubmFtZS5zcGxpdChcIi9cIik7XG4gICAgICAgICAgICAgICAgICAgIGdldFR5cGUucHVzaCh0eXBlTmFtZVswXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0VHlwZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==